
import pythoncom
import array,math
import numpy as np
import comtypes.client,win32com.client
from pyautocad import APoint,Autocad
Dispatch_w32c = win32com.client.Dispatch("AutoCAD.Application")
doc=Dispatch_w32c.ActiveDocument
ms = doc.ModelSpace
print(doc.Name)
def vtpt(x,y,z=0):
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x,y,z))
def vtfloat(lst):
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, lst)
def vtobj(obj):
return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)
def draw_line(point1 = vtpt(0,0),point2 = vtpt(280,0)):
point0=ms.AddPoint(point1)
line = ms.AddLine(point1, point2)
Circle0=ms.AddCircle(point1,50)
def draw_fang():
pnts = [100+150, -50, 0,
100+150, 50, 0,
-100+150, 50, 0,
-100+150, -50, 0,
-120+150,-60,0]
pnts = vtfloat(pnts)
obj = ms.AddPolyLine(pnts)
obj.Closed = True
return obj
def draw_Circledraw(center2 = vtpt(40, 0, 0),radius2 = 10):
"""
画图
:param center2:
:param radius2:
:return:
"""
obj = ms.AddCircle(center2, radius2)
return obj
def draw_hatch(obj):
"""
填充
:param obj:
:return:
"""
outerLoop2=[]
outerLoop2.append (obj)
outerLoop2 = vtobj(outerLoop2)
patternName = "ANSI31"
PatternType = 0
bAssociativity = True
hatchObj2 = ms.AddHatch(PatternType, patternName, bAssociativity)
hatchObj2.AppendOuterLoop (outerLoop2)
hatchObj2.Evaluate()
def main():
draw_line()
center2 = vtpt(0, 0, 0)
radius2 = 10
obj = draw_Circledraw(center2, radius2)
draw_hatch(obj)
center2 = vtpt(33, 0, 0)
radius2 = 10
obj=draw_Circledraw(center2,radius2)
draw_hatch(obj)
obj=draw_fang()
draw_hatch(obj)
f __name__ == '__main__':
main()