49 lines
1.5 KiB
Plaintext
49 lines
1.5 KiB
Plaintext
import importSVG
|
|
import Draft
|
|
import FreeCAD
|
|
|
|
outputRacine = App.activeDocument().getFileName().rpartition('.')[0]
|
|
|
|
# -------- REPRISE DE LA MACRO "exportSketchEnMasse-SVG" de Gauthier Brière -------- #
|
|
|
|
def exportSketch(sketchList):
|
|
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 -------- #
|
|
|
|
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) |