Home  Previous Next

命令 (MEL/Python)

MGPickerView

跳转到: MEL概要. Python概要. 返回值. 标签. MEL例子. Python例子.

MEL概要

MGPickerView [-activate] [-addPanel] [-activePanelIndex] [-author] [-close] [-clearSelection] [-email] [-exportPathToNode] [-exist] [-fileVersion] [-getIdFromName] [-listLinks] [-list] [-mirrorSelection] [-message] [-namespaceChangedCommand] [-namespace] [-pickerDirPath] [-pickerEnterCommand] [-pickerFilePath] [-pickerLoadCommand] [-removeAll] [-remove] [-saveAs] [-saveAsSceneNode] [-saveAsTemplate] [-setClean] [-select] [-selectPickerButtons] [-selectMode] [-selectPanelButtons] [-selectPanelIndexButtons] [-syncPickerValue] [-saveToFolder] [-saveWithinSceneFolder] [-tabLabel][-updateSceneBoundary] [-website] viewIDString

Python概要

MGPickerView (viewIDString, [activate=boolean], [addPanel=string, string],[activePanelIndex=int], [author=string], [close=boolean], [clearSelection=boolean], [email=string], [exportPathToNode=[string, string]], [exist=boolean],[fileVersion=boolean],[getIdFromName=string], [listLinks=string], [list=string],[mirrorSelection=int], [message=string], [namespaceChangedCommand=[string, string]], [namespace=string], [pickerDirPath=boolean],[pickerEnterCommand=string, string], [pickerFilePath=boolean], [pickerLoadCommand=[string, string]], [removeAll=boolean], [remove=string], [saveAs=string], [saveAsSceneNode=[string, boolean], [saveAsTemplate=string], [setClean=string], [select=string], [selectPickerButtons=int],[selectMode=int], [selectPanelButtons=int], [selectPanelIndexButtons=[int, int]], [syncPickerValue=boolean], [saveToFolder=string], [saveWithinSceneFolder=boolean], [tabLabel=string], [updateSceneBoundary=boolean],  [website=string])

MGPickerView不可撤消, 可以查询且可以编辑
这个命令查询或编辑文档级别的属性/状态,或关于程序本身的一些属性/状态。
需要指定要查询或编辑的picker视图id。如果没有指定,则是针对当前激活的picker视图进行查询或编辑。
可以通过下面命令之一获得id:

   MGPicker -q -currentPickerView;        // 获取当前所执行的脚本所属于的视图的id,如picker的加载命令和鼠标进入命令。仅脚本执行过程中可获取。

   MGPicker -q -activePickerView;         // 获取当前激活视图的id.

   MGPicker -q -findPickerView  "pickerNodeOrFileName"  1 "namespace";             // 通过指定picker节点或文件名来查找特定的picker视图id.

   MGPicker -q -listAllPickerViews;          // 列出所有打开的picker视图的id.

   MGPicker -e -createTempPicker;     // 创建一个临时picker视图并返回其id.

   MGPicker -e -createPicker "pickerName" "namespace" "filePath" "nodeName";        //创建一个picker视图并返回其id.

   MGPicker -e -readPickerNode "nodeName";       // 读取场景picker节点并返回其所打开的picker视图的id.

   MGPicker -e -readScenePicker "nodeName" "pickerName" "namespace" "pickerDataString";       // 读取场景picker节点并返回其所打开的picker视图的id.

   MGPicker -e -readPickerFile "pickerFilePath" 1;         // 读取picker文件并返回其所打开的picker视图的id.

返回值

取决于使用的标签,可能返回布尔,字符窜等类型的返回值。

标签

activate, addPanel, activePanelIndex, author, close, clearSelection, email, exportPathToNode, exist, fileVersion, getIdFromName, listLinks, list, mirrorSelection, message, namespaceChangedCommand, namespace, pickerDirPath, pickerEnterCommand, pickerFilePath, pickerLoadCommand, removeAll, remove, saveAs, saveAsSceneNode,saveAsTemplate, setClean, select, selectPickerButtons, selectMode, selectPanelButtons, selectPanelIndexButtons, syncPickerValue, saveToFolder, saveWithinSceneFolder, tabLabel, updateSceneBoundary, website

 

 

长名 (短名)

参数类型

属性

-activate(-act)

 

queryedit

 

在查询模式,这个标签返回该picker视图是否当前被激活。在编辑模式则是激活该picker视图。

-addPanel(-ap)

string string

edit

 

指定一个面板的标签字符窜,及面板布局:"horizontal" 或 "vertical", 来创建一个新picker面板,并返回该面板id字符窜。

-activePanelIndex(-api)

int

edit

 

指定一个面板的索引,则picker视图会自动平移并缩放以显示那个索引所代表的picker面板。每个picker面板在标题栏都有显示一个[数字],这个数字就是该面板的索引。

-author(-ath)

string

queryedit

 

在查询模式下,这个标签返回picker设计者的名字,编辑模式则指定picker的作者。

-close(-cl)

boolean

edit

 

关闭picker视图, 指定一个0~1布尔值来决定是否强制关闭,即使它有未保存的编辑。

注意在动画师模式下,该参数被忽略,因为在动画师模式下总是不会提示任何未保存的picker编辑而是直接关闭。

-clearSelection(-csl)

 

edit

 

去选picker视图的所有对象。

-email(-eml)

string

queryedit

 

在查询模式下,这个标签返回picker设计者的邮箱,编辑模式则指定picker的作者邮箱以便使用picker的人可以反馈picker使用意见。

-exportPathToNode(-epn)

string string

edit


导出Picker文件路径为picker节点,即保存路径为picker节点的pickerFilePath属性。

当Picker节点被加载时,对应的picker文件将被加载,路径支持由$ 或${}表示的环境变量。

需要指定要导出或编辑的Picker节点名称,及Picker文件路径。

-exist(-ex)

 

query


用于查询指定的picker视图是否存在。

-fileVersion(-fv)

 

query

 

只能用于查询。用来返回picker视图的文件版本。

-getIdFromName(-gin)

string

query

 

只能用于查询。指定一个名字字符窜,将返回所有取这个名字的picker对象的id数组。

如果只有一个对象名字匹配到,它仍将返回一个只包含一个id的数组,你之后可以取第一个元素来作为该对象的id。没找到任何对象则返回空数组。这个标签主要用来避免在picker过程中硬写这些picker对象的id.

-listLinks(-ll)

string

query


只能用在查询模式下,用来返回特定类型的连接ID的字符窜数组,以 "源对象ID > 目标对象ID" 的格式。

指定一个连接类型字符窜,可用的值有"parentlink", "attributelink"(不区分大小写),你可以指定空字符窜或者 "parentlink|attributelink" 来返回所有类型的连接id

-list(-ls)

string

query


只能用在查询模式下,用来返回特定类型的Picker对象ID的字符窜数组。

指定一个Picker对象类型字符窜,可用的值有 "selectButton", "commandButton",  "attributeButton", "slider", "sliderHandle", "text", "panel",(不区分大小写),如果是空字符窜,将返回所有类型的Picker对象ID。

类型字符窜也支持组合,比如你想要列出所有的选择按钮及命令按钮,可以指定"selectButton|commandButton"。

-mirrorSelection(-ms)

int

edit

 

利用picker对象的镜象关系,来镜象场景里的选择:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-message(-msg)

string

edit

 

用在查询模式下,这个标签返回picker设计者的信息,编辑模式则指定picker的作者给picker使用者的信息。

-namespaceChangedCommand(-ncc)

string script

queryedit

 

查询/编辑picker文档/节点的命名空间改变命令。该命令在每次你修改picker视图的命名空间后被执行。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。

在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。

-namespace(-ns)

string

queryedit

 

用在查询模式则返回picker的namespace, 编辑模式则指定picker的命名空间。

指定的命名空间字符窜要符合maya命名空间的规范,不合法的字符会自动被转成下划线。

-pickerDirPath(-pdp)

 

query

 

这个标签只能用于查询模式来查询picker文件所在的目录。

-pickerEnterCommand(-pec)

string script

queryedit

 

查询/编辑picker文档/节点的进入命令。进入命令在每次鼠标进入picker视图时被执行。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。

在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。

-pickerFilePath(-pfp)

 

query

 

这个标签只能用于查询模式来查询picker文件完整路径。

-pickerLoadCommand(-plc)

string script

queryedit

 

查询/编辑picker文档/节点的加载命令。加载命令在picker被加载后会立即被执行。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。

在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。

-removeAll(-ra)

 

edit

 

只能用在编辑模式,用来将场景所有picker对象删除清空。

-remove(-rm)

string

editmultiuse

 

只用于编辑,来删除指定picker对象。需要指定是删除的对象id。可多重使用。

-saveAs(-sa)

string boolean

edit

 

这个标签只能用于编辑模式来将当前picker另存为一个指定picker名称的外部picker文件,还需要指定一个是否覆盖已存在的布尔值。另存的文件将存放在maya的用户程序目录/MG_PickerData下当前picker工程目录里。

注意这个行为不会改变picker视图的id。

-saveAsSceneNode(-sas)

string boolean

edit


这个标签只能用于编辑模式来将picker文件/节点另存为当前场景指定的节点。

指定一个0~1布尔值来决定是否改变当前picker文件/节点状态为所保存的节点。0相当于导出一个picker节点,1相当于另存为picker节点。即使节点已经存在,也将被覆盖。

注意这个行为不会改变picker视图的id。

-saveAsTemplate(-sat)

string boolean

edit


这个标签只能用于编辑模式来将picker文件/节点另存为picker模板,必须指定一个模板名及一个布值决定是否覆盖已存在的模板,如果指定空字符窜,则采用自动生成的模板名。即使同名模板已经存在,也将被覆盖。

注意这个行为不会改变picker视图的id。

-setClean(-sc)

 

edit

 

这个标签只能用于编辑模式来把picker标记为干净没有未保存操作的状态。当您编写picker转换器时,你最后可能用这个标签来将当前picker标记成干净的状态,

这样这个picker的tab就会是绿色的点而不是红色的,并且它的所有撤消重做历史被清空。

-select(-sel)

string

queryeditmultiuse

 

在查询下将返回当前picker视图所选择的picker按钮的id数组。在编辑模式下将选择对应的picker按钮,注意是用来选择picker对象本身而不是maya节点,您必须指定picker按钮的id字符窜数组来执行相应的选择。

通常配合-selectMode来指定是加选,去选还是反选等。

-selectPickerButtons(-skb)

int

edit

 

这个标签只能用于编辑模式来选择picker里所有面板里所有的选择按钮成员节点。常用于“选择全部”命令按钮。

使用0~3的整数来指定选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-selectMode(-spb)

int

edit

 

这个标签只能用于编辑模式来选择picker对象。注意是用来选择picker对象本身而不是maya节点。

使用0~3的整数来指定选择模式:0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-selectPanelButtons(-spb)

int

edit

 

这个标签只能用于编辑模式来选择picker面板里所有的选择按钮成员节点。常用于“选择全部”命令按钮。

在判断哪个是当前picker面板时,工具使用当前鼠标位置来判断,处于鼠标下的picker面板即是当前picker面板。

使用0~3的整数来指定选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-selectPanelIndexButtons(-spi)

int int

edit

 

这个标签只能用于编辑模式来选择特定面板索引的picker面板里所有的选择按钮成员节点。常用于“选择全部”命令按钮。

使用0~3的整数来指定选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

你需要为第二个标签指定一个合法的面板索引整数值。

-syncPickerValue(-spv)


edit

 

这个标签只能用于编辑模式来更新picker的属性按钮及滑条的数值, 并且当场景有新的节点被创建,可以用这个来启动监视。

通常在maya属性值变动时picker会同步变动更新,不需要手动执行这个动作。

-saveToFolder(-stf)

string boolean

edit


这个标签只能用于编辑模式来将picker文件/节点存到指定的目标目录。存储后的picker文件将在目标目录/picker名称目录下面。

还需要指定布尔值以控制是否覆盖已存在的文件。注意这个行为不会改变picker视图的id。

-saveWithinSceneFolder(-sws)

boolean

edit


这个标签只能用于编辑模式来将picker文件/节点存到当前场景目录 / pickers目录下面。这个目录在加载相关picker会被自动搜索。

还需要指定布尔值以控制是否覆盖已存在的文件。注意这个行为不会改变picker视图的id。

-tabLabel(-tl)

string

queryedit


查询模式下用来返回Picker视图的标签页的标签。

编辑模式下用来编辑Picker视图的标签页的标签及Picker视图的名称。

-updateSceneBoundary(-usb)

 

edit

 

用来更新picker的显示范围,以便所有picker内容被显示。基本上用途只在写转换器时,在所有picker对象被生成后,使用这个标签来刷新一下。

-website(-www)

string

query

 

在查询模式下,这个标签返回picker设计者的网站,编辑模式则指定picker的作者网站以便使用picker的人可以了解picker设计者更多。





create 标签可以在创建模式中使用

edit 标签可以在编辑模式中使用

query 标签可以在查询模式中使用

multiuse 标签可以在一条命令中多次使用

MEL例子

// create a new picker named "myPicker"

string $view = `MGPicker -e -createPicker "myPicker" "wrongNamespace" "" ""`;   //it is a untitled picker, not refer to a picker file / node.

MGPickerView -e -namespace "rightNamespace" $view;          //edit the namespace of the picker.

 

//To-Do: use MGPickerItem command to created picker items.

//....

//if you does create any picker items, this picker view will be completely empty.

MGPickerView -e -author "Miguel" 

         -website "http://twincodes.com" 

         -email "mgpickerstudio@gmail.com"

         -message "Feel free to send feedback to me!" 

         $view;  //edit the meta info of the current picker file.

 

MGPickerView -e -updateSceneBoundary $view;  //update the scene boundary to show all the picker items.

MGPickerView -e -setClean $view;   //set the picker we just created clean.

Python例子

import maya.cmds as cmd
#Create a new picker named "myPicker"
#it is a untitled picker, not refer to a picker file / node.
viewId = cmds.MGPicker (edit=True,createPicker=("myPicker","wrongNamespace","",""))
cmds.MGPickerView(viewId, edit=True,namespace="rightNamespace")    #edit the namespace of the picker.

#To-Do: use MGPickerItem command to created picker items.
#....
#if you does create any picker items, this picker view will be completely empty.
cmds.MGPickerView(viewId, edit=True, author="Miguel",
                 website="http://twincodes.com",
                 email="mgpickerstudio@gmail.com",
                 message="Feel free to send feedback to me!")  #edit the meta info of the current picker file.
cmds.MGPickerView(viewId, edit=True, updateSceneBoundary=True)  #update the scene boundary to show all the picker items.
cmds.MGPickerView(viewId, edit=True, setClean=True)   #set the picker we just created clean.

 

 

Home Previous Next