maya_mel语言中多边形点的提取和遍历操作方法
生活随笔
收集整理的這篇文章主要介紹了
maya_mel语言中多边形点的提取和遍历操作方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、問(wèn)題分析:
有老同事問(wèn)我,向用maya mel語(yǔ)言為模型上的選擇單獨(dú)點(diǎn),做沿著法向方向的移動(dòng)。如下圖:
并使用了如下代碼操作單個(gè)定點(diǎn),成功了,:
之后,又同時(shí)選擇多個(gè)點(diǎn)操作,出現(xiàn)了如下錯(cuò)誤。
點(diǎn)不再沿著法線移動(dòng)而是垂直向上了。
二、解決方法:
分析研究后法線,maya對(duì)元素點(diǎn)線面的選擇時(shí),會(huì)以一種集合方式操作。必須使用 filterExpand 命令來(lái)轉(zhuǎn)化為獨(dú)立的單個(gè)元素,才能在for循環(huán)里調(diào)用:
用editplus文本編輯器,批量文件搜索工具在maya官方scripts腳本中查找filterExpand 用法:如下圖:
發(fā)現(xiàn)了各類(lèi)元素的分解方法:
看看多邊形點(diǎn)的分解方式:
以上程序可以把選擇多邊形元素轉(zhuǎn)換為獨(dú)立點(diǎn)集合。之后在用for就可以操作了。秀給一下如上的代碼再測(cè)試一下:
string $pp[]; string $v; $pp =` getVerts `;for ($v in $pp) { select -cl;select $v;move -r -cs -ls -wd 1 0 0 ; }成功了!阿彌陀佛
三、官方的filterExpand 命令文檔如下:
命令 (MEL) 過(guò)濾器展開(kāi) 在類(lèi)別中: 建模, NURBS 無(wú)幀轉(zhuǎn)到:劇情簡(jiǎn)介。返回值。相關(guān)。標(biāo)志。MEL 示例。概要 filterExpand [-expand boolean] [-fullPath boolean] [-selectionMask int] [-symActive] [-symNegative] [-symPositive] [-symSeam]filterExpand 是不可操作、不可查詢(xún)且不可編輯的。根據(jù)選定的組件(或在命令行上指定的組件),命令將篩選和/或擴(kuò)展給定選項(xiàng)的列表。返回包含所有匹配選擇項(xiàng)的字符串?dāng)?shù)組。選擇蒙版如下所示: 對(duì)象類(lèi)型 面具 處理 0 努爾斯曲線 9 努爾布斯表面 10 努爾布斯曲面曲線 11 多邊形 12 定位器 XYZ 22 方向定位器 23 紫外線定位器 24 控制頂點(diǎn) (CV) 28 編輯點(diǎn) 30 多邊形頂點(diǎn) 31 多邊形邊 32 多邊形面 34 多邊形 UV 35 細(xì)分網(wǎng)格點(diǎn) 36 細(xì)分網(wǎng)格邊 37 細(xì)分網(wǎng)格面 38 曲線參數(shù)點(diǎn) 39 曲線結(jié) 40 曲面參數(shù)點(diǎn) 41 表面結(jié) 42 表面范圍 43 修剪表面邊緣 44 表面等臂 45 晶格點(diǎn) 46 粒子 47 縮放透視表 49 旋轉(zhuǎn)樞軸 50 選擇手柄 51 細(xì)分曲面 68 多邊形頂點(diǎn)面 70 NURBS 表面面 72 細(xì)分網(wǎng)格 UV 73 返回值 字符串[] 命令結(jié)果 相關(guān) 選擇類(lèi)型 標(biāo)志 expand, fullPath, selectionMask, symActive, symNegative, symPositive, symSeam 長(zhǎng)名稱(chēng)(短名稱(chēng)) 參數(shù)類(lèi)型 性能 -expand(-ex) boolean 創(chuàng)造 如果這是真的,則每個(gè)項(xiàng)目都是一個(gè)實(shí)體。默認(rèn)值為 true。 -fullPath(-fp) boolean 創(chuàng)造 如果為 true 并且選擇項(xiàng)是 DAG 對(duì)象,則僅當(dāng)此值為 false 時(shí),才返回其完整的選擇路徑,而不是對(duì)象的名稱(chēng)。默認(rèn)值為 false。 -selectionMask(-sm) int 創(chuàng)造多用途 指定選擇蒙版 -symActive(-sma) 創(chuàng)造 如果啟用了對(duì)稱(chēng)性,則僅返回對(duì)象活動(dòng)對(duì)稱(chēng)側(cè)的組件。如果對(duì)稱(chēng)性不處于活動(dòng)狀態(tài),則此標(biāo)志不起作用。 -symNegative(-smn) 創(chuàng)造 如果啟用了對(duì)稱(chēng)性,則僅返回對(duì)象負(fù)側(cè)相對(duì)于當(dāng)前對(duì)稱(chēng)平面的分量。如果對(duì)稱(chēng)性不處于活動(dòng)狀態(tài),則此標(biāo)志不起作用。 -symPositive(-smp) 創(chuàng)造 If symmetry is enabled only return the components on the positive side of the object relative to the current symmetry plane. This flag has no effect if symmetry is not active. -symSeam(-sms) create If symmetry is enabled only return the components that lie equally on both sides of the object relative to the current symmetry plane. This flag has no effect if symmetry is not active.Flag can appear in Create mode of command Flag can appear in Edit mode of commandFlag can appear in Query mode of command Flag can be used more than once in a command. MEL examples // Returns any selected isoparms (mask 45) as individual items // (because of "-ex true"). filterExpand -ex true -sm 45;// Returns any selected CVs (mask 28) as compact items. For example, // if curve.cv[0:3] is selected, then "curve.cv[0:3]" is returned. // If "-ex true", then four items are returned, one for each CV. filterExpand -ex false -sm 28;// Returns any selected CVs (mask 28) and edit points (mask 30). filterExpand -sm 28 -sm 30;// Returns any selected nurbs curves. filterExpand -sm 9;// Returns any selected nurbs curves-on-surface. filterExpand -sm 11;// return the poly faces (mask 34) from the specified arguments filterExpand -sm 34 "pCube1.f[1]" "pCube1.f[4]" "pCube1.vtx[0:3]";南無(wú)阿彌陀佛,哈哈哈。
總結(jié)
以上是生活随笔為你收集整理的maya_mel语言中多边形点的提取和遍历操作方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python天天向上和天天向下代码解析_
- 下一篇: 一口气Ping1000个IP地址,会发生