MultiExport-FreeCAD/QuickSVGExport.FCMacro

52 lines
1.6 KiB
Plaintext

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()