0
我想通過COM Interop DLL使用IronPython在某些CAD軟件MicroStation中執行一些自動操作。當我嘗試從一個對象中獲得'自定義類型'時,它會拋出ValueErrors。我快速的代碼如下:IronPython映射到託管值類
import sys, clr, System, os
sys.path.append("C:\\Program Files (x86)\\Bentley\\MicroStation V8i (SELECTseries)\\MicroStation\\assemblies")
clr.AddReferenceToFile("bentley.interop.microstationdgn.dll")
from Bentley.Interop.MicroStationDGN import Application, Point2d, Point3d, TextElement
t = System.Type.GetTypeFromProgID("MicroStationDGN.Application")
ms = System.Activator.CreateInstance(t)
elem = ms.ActiveDesignFile.GetElementByID64(509)
coord = elem.Origin
ValueError異常:指定的記錄無法映射到託管值類。
elem.Origin應該給我一個三維點對象...
但是,如果我這樣做:
>>> test = Point3d()
>>> Point3d.X.SetValue(test, 1)
>>> Point3d.Y.SetValue(test, 1)
>>> elem.Origin = test
>>> elem.Rewrite()
我能「設置」元素的原始值。 (並且我可以在CAD軟件中驗證元素的原點已經移動)。
我相信我錯過了一些簡單的COM/IronPython的事情,但我已經看過了文檔,沒有東西跳出來對我。
任何幫助,將不勝感激!