import importSVG import Draft import FreeCAD # -------- MODIFICATION DE LA MACRO "exportSketchEnMasse-SVG" de Gauthier Brière -------- # def exportSketch(sketchList): outputRacine = App.activeDocument().getFileName().rpartition('.')[0] for __O__ in sketchList: __obj__ = [] __obj__.append(__O__) print('Export SVG de : ' + __obj__[0].Label) oldPlace = __obj__[0].Placement __obj__[0].Placement=App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(1,0,0),0), App.Vector(0,0,0)) fichierSVG = u"" + outputRacine + '--' + __obj__[0].Label + '.svg' importSVG.export(__obj__, fichierSVG) __obj__[0].Placement = oldPlace App.ActiveDocument.removeObject(__O__.Label) App.activeDocument().recompute() # -------- END -------- # def quickSVGExport(): sketchList = [] for selectedObject in Gui.Selection.getSelectionEx(): try: if hasattr(selectedObject.Object, 'Dir'): sv0 = Draft.make_shape2dview(selectedObject.Object, FreeCAD.Vector(selectedObject.Object.Dir)) elif hasattr(selectedObject.Object, 'Objects'): for child in selectedObject.Object.Objects: if hasattr(child, 'Dir'): sv0 = Draft.make_shape2dview(selectedObject.Object, FreeCAD.Vector(child.Dir)) break print("FAILURE IF") FreeCAD.ActiveDocument.recompute() sk = Draft.make_sketch(sv0, autoconstraints=True) sk.ViewObject.LineColor = (1.0, 0.0, 0.0) FreeCAD.ActiveDocument.recompute() sketchList.append(sk) if hasattr(sv0, 'Name'): App.ActiveDocument.removeObject(sv0.Name) except: print("FAILURE TRY") exportSketch(sketchList) if __name__ == '__main__': quickSVGExport()