ironpython使用opencv_如何在Dynamo(PythonScript中导入第三方模块)
歡迎加入BIM行業(yè)開(kāi)發(fā)交流1群 群號(hào):711844216
一、背景
小伙伴們?cè)谑褂胐ynamo中的PythonScript節(jié)點(diǎn)時(shí),為了豐富PythonScript節(jié)點(diǎn)的功能,那么就需要引入第三方模塊。首先,我們得明白,PythonScirpt節(jié)點(diǎn)是基于IronPython的,因此模塊的導(dǎo)入方式與python是不一樣的。本文就介紹如何在IronPython中導(dǎo)入第三方模塊。
二、思路
首先,這種模塊必須是支持IronPython,而不是只支持Python
接著我們需要區(qū)分兩種模塊。
第一種是IronPython自帶的模塊
比如Math模塊,直接 import math就可以使用了
第二種是在.net中寫(xiě)好,為IronPython準(zhǔn)備好的模塊
對(duì)于這種,其實(shí)又包含兩種情況
2.1.第一種,使用revit中準(zhǔn)備好的模塊,比如RevitAPI
2.2.第二種,導(dǎo)入自定義模塊/第三方模塊,實(shí)例可以參看在dynamo中導(dǎo)入矩陣運(yùn)算
對(duì)于這兩大類,三種情況,就用下面的代碼進(jìn)行說(shuō)明
三、代碼
1.導(dǎo)入IronPython自帶模塊
import math #導(dǎo)入自身的數(shù)學(xué)庫(kù)模塊
import clr #導(dǎo)入自身對(duì).net dll引用的功能模塊,不管是revit中定義好的模塊,還是自定義/第三方模塊,都需要先引入這個(gè)模塊,然后再通過(guò)這個(gè)模塊方法進(jìn)行導(dǎo)入1
2
2.1導(dǎo)入revit中準(zhǔn)備好的模塊
import clr #導(dǎo)入自身對(duì).net dll引用的功能模塊
# 導(dǎo)入Revit自身的模塊 RevitAPI.dll 和 RevitAPIUI.dll
clr.AddReference("RevitAPI") #導(dǎo)入RevitAPI.dll文件,文件后綴.dll可以省略
clr.AddReference("RevitAPIUI")#導(dǎo)入RevitAPIUI.dll文件,文件后綴.dll可以省略
import Autodesk #導(dǎo)入Autodesk命名空間
from Autodesk.Revit.DB import * #再?gòu)木唧w的命名空間下引入模塊
from Autodesk.Revit.UI import * #再?gòu)木唧w的命名空間下引入模塊1
2
3
4
5
6
7
2.2導(dǎo)入自定義模塊/第三方模塊
import clr #導(dǎo)入自身對(duì).net dll引用的功能模塊
import sys #導(dǎo)入系統(tǒng)功能的模塊,下面主要用于指定dll路徑
sys.path.append(r"dll文件所在的地址") # 指定dll文件所在的地址,前面有r轉(zhuǎn)義字符,直接復(fù)制粘貼地址就行
clr.AddReference ("xxx.dll") # 需要導(dǎo)入的dll名稱
import xxxNamspace # 導(dǎo)入這個(gè)dll文件中,我們需要使用到的函數(shù)的命名空間
#上面這些操作的簡(jiǎn)便寫(xiě)法如下:
import clr
clr.AddReferenceToFileAndPath(r"dll文件所在的地址\xxx.dll")
import xxxNamspace # 導(dǎo)入這個(gè)dll文件中,我們需要使用到的函數(shù)的命名空間1
2
3
4
5
6
7
8
9
四、注意事項(xiàng)
1.在IronPython中導(dǎo)入.net下寫(xiě)好的dll與python導(dǎo)入模塊是有區(qū)別的。
2.對(duì)于導(dǎo)入IronPython自身,或者revit寫(xiě)好的模塊是不需要指定路徑的(IronPython,dynamo已經(jīng)幫我們做好了)。
3.對(duì)于導(dǎo)入自定義/外部模塊是需要我們?cè)诔绦蛑刑砑雍寐窂降摹?/p>
4.如果小伙伴們有需要,筆者會(huì)出一個(gè)自定義模塊的教程。
5.大家好,我是黑夜の騎士,歡迎大家關(guān)注我的博客,筆者將持續(xù)輸出revit二次開(kāi)發(fā)以及編程干貨。
總結(jié)
以上是生活随笔為你收集整理的ironpython使用opencv_如何在Dynamo(PythonScript中导入第三方模块)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: unicode 字符集环境下的mfc 读
- 下一篇: python中常用模块_工作中用过的Py