123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- from pyautocad import Autocad, APoint
- acad = Autocad(create_if_not_exists = True)
- acad.prompt("Hello, Autocad from Python\n")
- print(acad.doc.Name)
- def drawPoints(points):
- for point in points:
- acad.model.AddCircle(APoint(point[0],point[1]), 50)
- def drawLines(includePoints):
- if(len(includePoints)>1):
- for item in range(len(includePoints)):
- if(item>0):
- acad.model.AddLine(APoint(includePoints[item-1][0],includePoints[item-1][1]),APoint(includePoints[item][0],includePoints[item][1]))
- def getDoorBeginAndModuleUsePointDistince(x0,y0,width,height,x,y):
- points = [(x,y),(x0-width/2,y0-height/2),(x0-width/2,y0+height/2),(x0+width/2,y0-height/2),(x0+width/2,y0+height/2),(x0,y0)]
- drawPoints(points)
- includePoints = [(x,y)]
- if x<x0-width/2:
- if y>y0+height/2:
- includePoints.append((x0-width/2,y0+height/2))
- elif y>y0-height/2:
- includePoints.append((x0-width/2,y))
- else:
- includePoints.append((x0-width/2,y0-height/2))
- elif x<x0+width/2:
- if y>y0+height/2:
- includePoints.append((x,y0+height/2))
- elif y>y0-height/2:
- pass
- else:
- includePoints.append((x,y0-height/2))
- else:
- if y>y0+height/2:
- includePoints.append((x0+width/2,y0+height/2))
- elif y>y0-height/2:
- includePoints.append((x0+width/2,y))
- else:
- includePoints.append((x0+width/2,y0-height/2))
- drawLines(includePoints)
- def getMovePath(x0,y0,width,height,x,y,x1,y1):
- points = [(x,y),(x0-width/2,y0-height/2),(x0-width/2,y0+height/2),(x0+width/2,y0-height/2),(x0+width/2,y0+height/2),(x0,y0),(x1,y1)]
- drawPoints(points)
- includePoints = [(x,y)]
-
- if y1 == y0-height/2:
- includePoints.append((x1,y1))
-
- elif x1 == x0+width/2:
- if x>x0+width/2:
- includePoints.append((x1,y1))
- else:
- includePoints.append((x0+width/2,y0-height/2))
- includePoints.append((x1,y1))
-
- elif y1 == y0+height/2:
- if x<x0-width/2:
- includePoints.append((x0-width/2,y0+height/2))
- includePoints.append((x1,y1))
- else:
- includePoints.append((x0-width/2,y0-height/2))
- includePoints.append((x0-width/2,y0+height/2))
- includePoints.append((x1,y1))
-
- else:
- if x<x0-width/2:
- includePoints.append((x1,y1))
- else:
- includePoints.append((x0-width/2,y0-height/2))
- includePoints.append((x1,y1))
-
- return includePoints
- def getMovePath2(x0,y0,width,height,x,y,x1,y1):
- includePoints = [(x,y)]
- bottom = y0-height/2
- right = x0+width/2
- top = y0+height/2
- left = x0-width/2
- points = [(x,y),(left,bottom),(left,top),(right,bottom),(right,top),(x0,y0),(x1,y1)]
- drawPoints(points)
-
- if y1 == top:
- if y>=top:
- includePoints.append((x1,y1))
- elif x<=left:
- includePoints.append((left,top))
- includePoints.append((x1,y1))
- elif x>=right:
- includePoints.append((right,top))
- includePoints.append((x1,y1))
- elif x+x1<=2*x0:
- includePoints.append((left,bottom))
- includePoints.append((left,top))
- includePoints.append((x1,y1))
- else:
- includePoints.append((right,bottom))
- includePoints.append((right,top))
- includePoints.append((x1,y1))
- elif y1 == bottom:
- if y<=bottom:
- includePoints.append((x1,y1))
- elif x<=left:
- includePoints.append((left,bottom))
- includePoints.append((x1,y1))
- elif x>=right:
- includePoints.append((right,bottom))
- includePoints.append((x1,y1))
- elif x+x1<=2*x0:
- includePoints.append((left,top))
- includePoints.append((left,bottom))
- includePoints.append((x1,y1))
- else:
- includePoints.append((right,top))
- includePoints.append((right,bottom))
- includePoints.append((x1,y1))
- elif x1 == left:
- if x<=left:
- includePoints.append((x1,y1))
- elif y>=top:
- includePoints.append((left,top))
- includePoints.append((x1,y1))
- elif y<=bottom:
- includePoints.append((left,bottom))
- includePoints.append((x1,y1))
- elif y+y1<=2*y0:
- includePoints.append((right,bottom))
- includePoints.append((left,bottom))
- includePoints.append((x1,y1))
- else:
- includePoints.append((right,top))
- includePoints.append((left,top))
- includePoints.append((x1,y1))
- else:
- if x>=right:
- includePoints.append((x1,y1))
- elif y>=top:
- includePoints.append((right,top))
- includePoints.append((x1,y1))
- elif y<=bottom:
- includePoints.append((right,bottom))
- includePoints.append((x1,y1))
- elif y+y1<=2*y0:
- includePoints.append((left,bottom))
- includePoints.append((right,bottom))
- includePoints.append((x1,y1))
- else:
- includePoints.append((left,top))
- includePoints.append((right,top))
- includePoints.append((x1,y1))
- drawLines(includePoints)
- return includePoints
- def getModuleMovePath(x10,y10,width1,height1,x1,y1,x20,y20,width2,height2,x2,y2):
- includePoints1 = getMovePath(x10,y10,width1,height1,x2,y2,x1,y1)
- includePoints2 = getMovePath(x20,y20,width2,height2,x1,y1,x2,y2)
- includePoints = []
- for item in range(len(includePoints1)):
- if(item>0):
- includePoints.append(includePoints1[item])
- for item in range(len(includePoints2)):
- if(item>0):
- includePoints.insert(0,includePoints2[item])
- print(includePoints)
- drawLines(includePoints)
- return includePoints
- def testAppend():
- score = []
- for i in range(100):
- s = []
- s.append(i)
- score.append(s)
- print(score)
- def testRange():
- for i in range(3,10,2):
- print(i)
- testRange()
|