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的事情,但我已经看过了文档,没有东西跳出来对我。
任何帮助,将不胜感激!