python編寫maya腳本
1. 使用File菜單下的LoadScript載入.py腳本文顫碰件的內容,然後在備敏編輯器中執行代碼(或者修改代碼後執行);
2. 使用FileSourceScript直接載入並執行.py文件。
不過,這是軟體提供的固定功能,當你需要在maya開啟後快速執行某些腳本時,路徑的重復指定會顯得繁瑣不友好。尤其是當你打算自己編寫一個窗體,包含茄滾談多個外部腳本調用的時候。
2. 如何在maya啟動時自動載入python腳本
.strcipt?虛肆沒看過這樣的後綴。Maya的script是用Mel或Python編寫的,Maya的埋譽搭scripting只支持這兩種語言的。
試試把Script 文件轉換為.mel結尾的文件(怎麼轉我不知道,我沒用過Gamebryo。或者直接把後綴改掉?)放在我的文檔\Maya\版本號(8.5、2009之類的)\scripts文件夾中,是可用的插件的話一般在Maya啟動時就會自動載入。
不行的話可試試:打開Maya後,點擊shelf一欄最左邊的黑色小三角,選load shelf,然後把彎拿script文件(mel後綴的)打開,就能在菜單欄見到插件。
3. 怎麼實現通過python語言啟動maya
直接寫昌洞一個bat文件,例如start_maya.bat裡面的內容是"C:\Program Files\Autodesk\Maya2018\bin\maya.exe"耐租枯
然後弄一個py文件例如start_maya.py裡面的內型碧容是
import subprocess
subprocess.check_call(['start', ../start_maya.bat], shell=True)
我的微.信.公.眾.號.CGPipeline里每周都會有干貨
4. 如何在Maya表達式中使用Python腳本
在腳本編輯器的python下輸入執行代碼,來進行需讓李亂要的操作。
至於怎麼寫代碼,那坦檔就得慢慢學習和練習。擾源
可以加191294594交流一下。
5. 開發Maya 插件,使用 MEL,Python 或是 C++ 語言有哪些優劣
MEL 是maya的腳本語言,語法類似C語言,學起來相對簡單,maya自帶大量用mel寫的腳本,學起來資源比較多,最吸引人的地方就是你在maya中每運行一個命令都能在腳本窗口看到該命令的mel版本,建議製作動畫綁定學mel
Python 很簡潔高效的語言,運行速度比MEL稍快,擴展性很好,有很多的第三方庫可以安裝調用。基本賣盯上mel可以實現的,python都可以,而且現在大多數的技術美工都在使用python,python也有Maya API。maya python最大的優勢是讓系統和maya無縫結合。
PyMel 這個我沒怎麼用,不怎麼熟悉,是mel和python的結合,聽說其概念容易理解中枝和,使用起來效率蠻高的
C++ 可以直接調用maya api,可以實現任何你想要的功能,是maya的底層開發。優點當然就是運行速度快,有保密性,缺點是開發效率低,搭螞熟悉起來難度大,學習周期較長。
6. 求教一個MAYA的Mel或Python的小腳本,內容如下:
import maya.cmds as cmds
ds = cmds.ls(cameras=True)
po=[u'frontShape'運汪, u'perspShape', u'sideShape', u'譽讓topShape']
print ds
for i in ds:
if i in po:
continue
else:
cmds.setAttr(i+".backgroundColor"旁虛仔,1,1,1,type="double3")
#注意縮進
7. 用Python寫的Maya插件,如何安裝和運行
MAYA_PLUG_IN_PATH = d:\mayaPlugin\
這樣Maya就會將該路徑加入到插件的目錄當中。可以從該目錄載入插件。
然後很爽的一點是Maya的mel有卸載和載入插件的函數:
unloadPlugin "ModelTranslator.py";
loadPlugin "ModelTranslator.py";
8. 怎樣編寫maya腳本
1,打開script editor:Windows->General editors->Script editor 或者,點擊右下角的圖標,如下圖:
9. 怎麼實現通過python語言啟動maya
對於各種驅動介面,Python來編寫測試用例的好處是:由於Python不需要編譯,你所執行的也就是你所編寫的,當發生異常的時候,你無須打開集成開發環境,載入測試工程、並調試,你能夠很方便的看到python測試腳本的內容,什麼地方出了異常可以立刻發現,例如:
from ctypes import *
rc =c_int(-12345);
dll = windll.LoadLibrary("dmodbc.dll");#載入被測試組件
#=================#
SQLHANDLE_env = pointer(c_long(0));
SQLHANDLE_cnn = pointer(c_long(0));
SQLHANDLE_stmt = pointer(c_long(0));
pdns = c_char_p("FASTDB");
puid = c_char_p("SYSDBA");
ppwd = c_char_p("SYSDBA");
#env handle
rc = dll.SQLAllocHandle(1,None,byref(SQLHANDLE_env));
print "result of henv handle alloc :%d" %rc;
#cnn handle
rc = dll.SQLAllocHandle(2,SQLHANDLE_env,byref(SQLHANDLE_cnn));
print "result of cnn handle alloc :%d" %rc;
#connect!
rc = dll.SQLConnect(SQLHANDLE_cnn,pdns,-3,puid,-3,ppwd,-3)
print "result of connect :%d" %rc;
#stmt handle
rc = dll.SQLAllocHandle(3,SQLHANDLE_cnn,byref(SQLHANDLE_stmt));
print "result of stmt handle alloc:%d" %rc;
#exec
rc = dll.SQLExecDirect(SQLHANDLE_stmt,"insert into t values(1)",-3);
print "result of exec:%d" %rc;
#free========================
rc = dll.SQLFreeHandle(3, SQLHANDLE_stmt);
print rc;
rc = dll.SQLDisconnect(SQLHANDLE_cnn);
print rc;
rc = dll.SQLFreeHandle(2, SQLHANDLE_cnn);
print rc;
rc = dll.SQLFreeHandle(1, SQLHANDLE_env);
print rc;
在上面我們可以看到,Python調用c/c++介面是十分容易的,只需要把動態庫載入進來,然後把這個動態庫當作一個對象實例來使用就可以了。下面將是一個使用ado.net介面的例子:
import System;
from Dm import *#Dm是DMDBMS提供的ado.Net的DataProvider
#print dir(Dm.DmCommand);
i =0;
cnn = Dm.DmConnection("server = 127.0.0.1; User ID = SYSDBA; PWD = SYSDBA; Database = SYSTEM; port = 12345");
cmd = Dm.DmCommand();
cmd.Connection = cnn;
cmd.CommandText = "insert into t values(1);";
cnn.Open();
i=cmd.ExecuteNonQuery();
print i;
cmd.Dispose();
cnn.Close();
可以看到,.net對象的使用與在VisualStdio上進行開發幾乎沒有任何區別。
通過使用Python進行測試用例的開發,最大的好處莫過於:學習成本非常低,測試工程師只需要學習Python,對於其他語言稍有了解就可以了。同時只需要少量的測試開發工程師對Python測試框架進行維護。
這樣的好處就是便於測試人員將精力專精在一個方向,免於「什麼都會一點,但什麼都不精」的情況。當然測試人員具備廣闊的知識面,會使用各種常見的開發工具與平台是好事情,並且也是必要的,不過在短時間內要求迅速能夠勝任大多數任務也是企業在人才培養上的期望目標。
10. maya checkBox。用Python編寫checkBox時。當checkBox勾上時能得到返回值為。以做下面函數的進一步運算
#導入CMDS模塊
importmaya.cmdsascmds
#窗口函數
defcreateWin_test():
#創建窗口
cmds.window()
#主布局
cmds.flowLayout()
#控制項
cmds.checkBox('checkBox_test',l='test',v=1,cc='checkBox_button()')
#顯示窗口
cmds.showWindow()
#執行窗口函數
createWin_test()
#主函數
defcheckBox_button():
#查詢checkBox是否勾選,賦予變數Num
Num=cmds.checkBox('checkBox_test',q=True,v=True)
#如果Num等於1
ifNum==1:
#顯示「已經勾選!!」
print'已經勾選!!'
#否則
else:
#顯示「已取消勾選」
print'已取消勾選!!'
###########################################
復制以上代碼在maya腳本編輯器的Python模塊下執行~
上面的腳本標注應該已經夠詳細了吧,有問題歡迎追問~