Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #############################################
- ### HeeksCNC related scripting
- #############################################
- import Part,Drawing,FreeCADGui,FreeCAD
- from FreeCAD import Base
- edges=[]
- s=Gui.Selection.getSelectionEx()
- for i in s:
- for e in i.SubElementNames:
- edges.append(getattr(i.Object.Shape,e))
- S3 =Part
- S4 = S3.__sortEdges__(edges)
- w1 = Part.Wire(S4)
- #check to see if shape is closed
- #w1.isClosed()
- #make an offset
- #o1 = w1.makeOffset(10)
- #Part.show(o1)
- if (S4[0].Vertexes[0].X == S4[1].Vertexes[1].X) and (S4[0].Vertexes[0].Y == S4[1].Vertexes[1].Y):
- print 'curve = area.Curve()\n' \
- +'curve.append(area.Point(' +str(S4[0].Vertexes[1].X) + ',' + str(S4[0].Vertexes[1].Y)+'))\n'\
- +'curve.append(area.Point(' +str(S4[0].Vertexes[0].X) + ',' + str(S4[0].Vertexes[0].Y)+'))\n'
- else:
- print 'curve = area.Curve()\n' \
- +'curve.append(area.Point(' +str(S4[0].Vertexes[0].X) + ',' + str(S4[0].Vertexes[0].Y)+'))\n'\
- +'curve.append(area.Point(' +str(S4[0].Vertexes[1].X) + ',' + str(S4[0].Vertexes[1].Y)+'))\n'
- inx = 1
- while (inx <len(S4)):
- if (S4[inx].Curve.__class__.__name__ == 'GeomCircle'):
- if S4[inx].Closed:
- print '#--Warning->Circle--'
- #print "center pt: X "+str(S4[inx].Curve.Center.x)+', Y '+str(S4[inx].Curve.Center.y)\
- #+" Radius: "+str(S4[inx].Curve.Radius)
- else:
- if (S4[inx-1].Vertexes[0].X == S4[inx].Vertexes[1].X) and (S4[inx-1].Vertexes[0].Y == S4[inx].Vertexes[1].Y):
- print 'curve.append(area.Vertex('+str(int(1*(S4[inx].Curve.Axis[2])))+', area.Point('+str(S4[inx].Vertexes[0].X)+', '+str(S4[inx].Vertexes[0].Y)\
- +'), area.Point('+str(S4[inx].Curve.Center.x)+', '+str(S4[inx].Curve.Center.y)\
- +')))\n'
- #+" Radius: "+str(S4[inx].Curve.Radius)\
- #+" Direction: "+str(S4[inx].Curve.Axis)
- else:
- print 'curve.append(area.Vertex('+str(1*(int(S4[inx].Curve.Axis[2])))+', area.Point('+str(S4[inx].Vertexes[1].X)+', '+str(S4[inx].Vertexes[1].Y)\
- +'), area.Point('+str(S4[inx].Curve.Center.x)+', '+str(S4[inx].Curve.Center.y)\
- +')))\n'
- else:
- #print '--Line--'
- if (S4[inx-1].Vertexes[0].X == S4[inx].Vertexes[1].X) and (S4[inx-1].Vertexes[0].Y == S4[inx].Vertexes[1].Y):
- print 'curve.append(area.Point(' +str(S4[inx].Vertexes[0].X) + ',' + str(S4[inx].Vertexes[0].Y)+'))\n'
- else:
- print 'curve.append(area.Point(' +str(S4[inx].Vertexes[1].X) + ',' + str(S4[inx].Vertexes[1].Y)+'))\n'
- inx = inx+1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement