我刚刚开始尝试使用win32com.client模块,尝试编写一个使用COM接口来控制MicroStation的Python程序,就像我过去在MicroStation中控制MicroStation的方式一样。
我遇到的问题是创建一个在COM库中定义的类型的对象,一个com_record,在我的例子中是一个Point3d。Point3d基本上是3个双X,Y,Z的C结构。
struct Point3d {
double X;
double Y;
double Z;
}在Excel中,在引用MicrostationDGN库之后,我可以访问Point3d数据类型,并可以使用Dim newpoint As Point3d轻松定义新变量
我如何在Python中做同样的事情?
谢谢,
PS。我曾尝试创建一个C结构,但出现了一个错误
from ctypes import Structure, c_double
class Point3d(Structure):
_fields_ = [('X', c_double),
('Y', c_double)]
startPoint = Point3d()
startPoint.X = 1
startPoint.Y = 1
TypeError: Only com_record objects can be used as records发布于 2017-12-21 09:14:51
发布于 2017-12-23 05:17:28
我从图书馆的作者那里发现了这个:
r = win32com.client.Record("RecordName", object)对象,其中"RecordName“是记录的名称,”
“是&在同一类型库中定义的任何* COM对象。
https://mail.python.org/pipermail/python-list/2003-August/214888.html
我找不到该类型的对象来实例化所述的com_record,但我设法找到了返回所需对象的函数。
startPoint = MS.Point3dFromXYZ(2.0,2.0,0.0)https://stackoverflow.com/questions/47916231
复制相似问题