def TDPyTest(): path = os.path.dirname(os.path.abspath(__file__)) print('TDPy path: ' + path) FreeCAD.newDocument("TDPy") FreeCAD.setActiveDocument("TDPy") FreeCAD.ActiveDocument = FreeCAD.getDocument("TDPy") direction = FreeCAD.Vector(0.0, 1.0, 0.0) box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box") result = TechDraw.project( box.Shape, direction) #visible hard & smooth, hidden hard & smooth print("project result: {0}".format(result)) # Part.show(result[0]) result = TechDraw.projectEx( box.Shape, direction) #visible & hidden hard, smooth, seam, outline, iso print("projectEx result: {0}".format(result)) # Part.show(result[0]) SVGResult = TechDraw.projectToSVG(box.Shape, direction, "ShowHiddenLines", 0.10) #SVG string print("SVG result: {0}".format(SVGResult)) result = TechDraw.projectToDXF(box.Shape, direction) #DXF string print("DXF result: {0}".format(result)) result = TechDraw.removeSvgTags(SVGResult) print("remove tags result: {0}".format(result))
def getProjected(self,obj,shape,direction): "returns projected edges from a shape and a direction" import Part, TechDraw, DraftGeomUtils edges = [] _groups = TechDraw.projectEx(shape, direction) for g in _groups[0:5]: if g: edges.append(g) if hasattr(obj,"HiddenLines"): if obj.HiddenLines: for g in _groups[5:]: edges.append(g) edges = self.cleanExcluded(obj,edges) #return Part.makeCompound(edges) if hasattr(obj,"Tessellation") and obj.Tessellation: return DraftGeomUtils.cleanProjection(Part.makeCompound(edges), obj.Tessellation, obj.SegmentLength) else: return Part.makeCompound(edges)