创建二维对象
图形对象创建于ModelSpace集合、PaperSpace集合或Block对象中。
import win32com.client
AcadApp = win32com.client.Dispatch("AutoCAD.Application.19")
ActiveDocument = AcadApp.ActiveDocument
ModelSpace = ActiveDocument.ModelSpace
Utility = ActiveDocument.Utility
Documents = AcadApp.Documents
def vtPnt(x, y, z=0):
"""坐标点转化为浮点数"""
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))
def vtObj(obj):
"""转化为对象数组"""
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)
def vtFloat(list):
"""列表转化为浮点数"""
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, list)
def vtInt(list):
"""列表转化为整数"""
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, list)
def vtVariant(list):
"""列表转化为变体"""
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, list)
创建直线
创建直线,可使用以下方法中的一种:
AddLine # 通过两点创建线;
AddLightweightPolyline # 通过顶点的列表创建二维细多段线;
AddMLine # 创建复线
AddPolyline # 创建二维或三维多段线
AddRay # 创建通过两个唯一点的射线
AddXline # 创建通过两个指定点构造线(无限长线)
代码示例
# 创建直线
startpoint = vtPnt(100, 800)
stoppoint = vtPnt(100, 100)
pointobj = ModelSpace.Add