星期一, 11月 10, 2014

把 Eclipse 拿來當 3dsMAX Python IDE 的設定方式

3dsMAX 在 2014總算是有了 python,雖然很令人覺得難過…它的執行方式要透過 maxscript,但總也是好過沒有、或是自己還要另外安裝(Blur 的 Py3dsmax
另一個令人垢病的地方在於一直以來都沒有一個比較好用的 IDE 可以讓 TA 在開發時可以少死一點腦細胞。看看 Maxscript 的 debuger 就說明了這一切。所以大家無不想盡辦法使用其他的 IDE 來替代。
以 maxscript 而言,眾 max user 早就受其茶毒很久了, max 9 之前沒有語法提示,2008之後換成新一代以 SciTE 時大家眼淚都流下來了(再見了 mxscom.com ~, 再見了 N++ ~)
但是這種情況在 3dsMAX 2014 又再次上演了。
提供了 Python 卻不提供相對應的語法提示和語法上色的功能…(2008 的 dotnet 我們就不計較了…)
所以網路上就出現了拿 sublime 或是 pycharm 設定為外部開發工具的教學。
但是 pycharm 要錢才有 remote debug,sublime 本來就沒有我想要的 remote debug。所以我就用回了我比較熟悉的 Eclipse。

安裝 Eclipse

官網找一下,用標準版的就行了。下載完成之後解壓縮,放在你想放的地方。看要在 C:\ 或是 D:\ 都可以。


安裝 SmartGit/Hg

(你要用 MyGit 當然也是 ok ~ 請由此去)
一樣我們到官網去把東西抓下來安裝即可
(可能要裝一下 JRE ,就不多寫這一步驟了)


安裝相關 Python 模組

接著就可以用 SmartGit/Hg 來安裝我們所須要的模組了。好佳在,其實最難的事有人已經幫我們做好了,就是怎麼跟已經開啟的 3dsMAX 連結。

請至下面這個網址 https://github.com/arturleao/YCDIVFX_MaxPlus 在右下方有個 HTTPS clone URL ,把這裡的網址複制下來。
打開 SmartGit/Hg

選 File 下的 Clone

把剛剛的網址貼上
看要放在那個位置

PyDev

好~ 再來是 eclipse 的部份。 在 eclipse 要安裝 PyDev 這個 Python 開發外掛。

打開  Eclipse 到 Help 下


執行 Install software




按下 add,在 Name 的欄位寫個名字(自由發揮)
Location請打上 http://pydev.org/updates
就可以按 ok 鈕了


把找到的二個項打勾,按下 next 安裝吧,安裝過程中會要求你接受他們的授權。多按個幾次按鈕(next)就把他裝完了。

設定專案

東西都裝完了,可以開始測試我們想要的 Remote Debug 了
開啟新的 Python 專案

先把我們的 Python 環境設定好,按上圖中藍色部份的連結



按下 Add 把 max 的 python 設定加入



按下 New 把 max 的 python 設定加入



加入相關的 Lib



按下 New Folder,加入 YCDIVFX_MaxPlus 這個我們之前藉由 smartGit 安裝的模組。
還有另一個重要路徑也要加入的是 3dsMax 2014 安裝的根目錄。




這樣我們就可以在專案設定時選用我們剛剛建立的 Python 直譯器設定


Pydevd 模組

到 windows \ preferences 裡的  Pydev \ Interpreter \ Python Interpreter 下選好 3dsMax 2014 ,再下方的 Libraries 頁標下按 New Folder 按鈕,把 pydev 套件的位置加入,我的位置路徑如下(僅供參考)D:\‧‧‧‧\eclipse\plugins\org.python.pydev_3.6.0.xxxxxxxxxxxxx\pysrc



加在這裡主要是讓 Eclipse 不會跳出找不到模組訊息的警告,而且也有自動完成可以用。
在寫程式的時後還是要再加入 sys.path 中。因為我們最後是 max 要跑的,不會是用 Eclipse 來執行的。

建立一個 PY 檔,我們就叫他 test.py 好了,內容簡單一點,就像下面這樣就好了
import sys
sys.path.append(r'D:\Dropbox\green software\eclipse\plugins\org.python.pydev_3.6.0.201406232321\pysrc')
import pydevd
import MaxPlus
pydevd.settrace()
print MaxPlus
之後跳到 debug perspective 開啟 debug server

可以直接按下右上角的那個小蟲子打開 debug perspective

再來按下上方工具列的 start the pydev server

到下方的 console 找他回報的 port 號碼,沒意外的話應該是 5678 這數字

debug 頁標裡的內容多了 Debug server 了 XD


再回頭來把程試碼加寫一些東西

pydevd.settrace()
改成
pydevd.settrace(host='local_ip', port=5678, suspend=True )
那個 local ip 請自已替換成你的 ip 如 192.168.0.2 之類的

Link To Existing Source

為了讓他可以在 max 裡跑我們要借重上面提到的 YCDIVFX_MaxPlus 模組,這時應該已經抓下來了才是,但是為了在目前的專案可以引用我們還要跟 Eclipse 說一下它在哪裡。

在 explorer 視窗中對專案按下右鍵,依圖示選至 link to existing source
再來選取相關位置(圖裡的路徑供參考)

再來就可以設定 RUN 了,利用 run 指令只是為了讓 Eclipse 幫我們快速的做出一個 configuration,還要再去改裡的設定,


利用run ,快速的做出 configuration (圖做的有點誤差,是上面那個指令)

再選擇 run configurtaions 進入設定視窗

把第一個頁標的 Main Module 的檔案路徑改到第二頁去,前綴 -f


再把本來的  Main Module 改成 YCDIVFX_MaxPlus 目錄裡的 run.py
現在真的可以 run了~
確定一下 debug server 有開,切到 debug perspective
恭喜,你現在可以在 debug perspective 裡一步一步的執行程式碼了~


看右邊那滿滿的執行時期資訊完全是 maxscript 辦不到的啊~  > U <

後記:自己做的時後很快,但是要寫出來就花了很長的時間,而且還要一直來回勘錯 冏…

沒有留言: