Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import FreeCAD
- import FreeCADGui as Gui
- import Part
- import DraftGeomUtils
- import area
- def makeAreaVertex(seg):
- if seg.ShapeType =='Edge':
- if isinstance(seg.Curve,Part.Circle):
- segtype = 1 #0=line,1=ccw arc,-1=cw arc
- vertex = area.Vertex(segtype, area.Point(seg.valueAt(seg.LastParameter)[0],seg.valueAt(seg.LastParameter)[1]), area.Point(seg.Curve.Center.x, seg.Curve.Center.y))
- elif isinstance(seg.Curve,Part.Line):
- point1 = seg.valueAt(seg.FirstParameter)[0],seg.valueAt(seg.FirstParameter)[1]
- point2 = seg.valueAt(seg.LastParameter)[0],seg.valueAt(seg.LastParameter)[1]
- segtype = 0
- vertex = area.Point(seg.valueAt(seg.LastParameter)[0],seg.valueAt(seg.LastParameter)[1])
- else:
- pass
- return vertex
- def makeAreaCurve(curveobj,edges):
- wire = Part.Wire(edges)
- seglist = DraftGeomUtils.sortEdges(edges)
- firstedge = seglist[0]
- if wire.isClosed()==False:
- curveobj.append(area.Point(firstedge.valueAt(firstedge.FirstParameter)[0],firstedge.valueAt(firstedge.FirstParameter)[1]))
- for s in seglist:
- curveobj.append(makeAreaVertex(s))
- wire = Part.Wire(seglist)
- if wire.isClosed():
- curveobj.append(area.Point(firstedge.valueAt(firstedge.LastParameter)[0],firstedge.valueAt(firstedge.LastParameter)[1]))
- #return curveobj
- #tests:
- edges = Gui.Selection.getSelectionEx()[0].SubObjects
- c= area.Curve()
- makeAreaCurve(c,edges)
- c.Reverse()
- for vertex in c.getVertices():
- print vertex.p.x, " ,",vertex.p.y
- edges2 = Gui.Selection.getSelectionEx()[0].SubObjects
- import sys
- sys.path.append("/home/danfalck/Documents/freecad/path_experiments/")
- import PathKurveFuncs
- clearance = float(5)
- rapid_safety_space = float(2)
- start_depth = float(0)
- step_down = float(1)
- final_depth = float(-1)
- tool_diameter = float(.25)
- cutting_edge_angle = float(0)
- roll_radius = float(2)
- offset_extra = 0
- roll_on = 'auto'
- roll_off = 'auto'
- #roll_on = None
- roll_off = None
- extend_at_start= 0
- extend_at_end= 0
- lead_in_line_len= 0
- lead_out_line_len= 0
- PathKurveFuncs.profile(c, 'left', tool_diameter/2, offset_extra, roll_radius, roll_on, roll_off, rapid_safety_space, clearance, start_depth, step_down, final_depth,extend_at_start,extend_at_end,lead_in_line_len,lead_out_line_len )
- PathKurveFuncs.profile(c, 'on', tool_diameter/2, offset_extra, roll_radius, roll_on, roll_off, rapid_safety_space, clearance, start_depth, step_down, final_depth,extend_at_start,extend_at_end,lead_in_line_len,lead_out_line_len )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement