From 541f7aebbad65ebc5215bb25695d1f1e9519ab00 Mon Sep 17 00:00:00 2001 From: pgp <pgp@localhost.localdomain> Date: Fri, 10 Jan 2025 17:13:39 +0100 Subject: [PATCH] first commit --- exportSketchEnMasse-SVG.FCMacro | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 exportSketchEnMasse-SVG.FCMacro diff --git a/exportSketchEnMasse-SVG.FCMacro b/exportSketchEnMasse-SVG.FCMacro new file mode 100644 index 0000000..1c0f0bb --- /dev/null +++ b/exportSketchEnMasse-SVG.FCMacro @@ -0,0 +1,55 @@ +# Exporte en SVG de plusieurs Sketchs + +# On charge le module d'importation/exportation SVG : +import importSVG + +# Racine des noms de fichiers SVG, les nom de fichiers de sortie seront construits +# sous la forme : outputRacine + '--<Sketch_Label>.svg. +# Ou <Sketch_Label> est le label du Sketch exporté. +outputRacine = App.activeDocument().getFileName().rpartition('.')[0] + +# Initialise la liste des objets à exporter +__objets__ = [] + +''' +On peux également n'exporter qu'une liste de label définis comme ceci : +Remplacer la boucle "for __O__ in App.ActiveDocument.findObjects('Sketcher::SketchObject'):" +par le bloc ci dessous: +''' +''' +# Retrouve les objets Sketch FreeCAD à partir d'une liste de labels +for __label__ in ["fond", "hauteur", "largeur", "carton-blanc", "plot"]: + for __obj__ in App.ActiveDocument.getObjectsByLabel(__label__): + __objets__.append(__obj__) + +# Boucle sur la liste des objets trouvés : +for __obj__ in __objets__: +''' + +# Boucle sur tous les objets Sketch du fichier : +for __O__ in App.ActiveDocument.findObjects('Sketcher::SketchObject'): + + __obj__ = [] + __obj__.append(__O__) + + print('Export SVG de : ' + __obj__[0].Label) + + # Mémorise le placement du Sketch + oldPlace = __obj__[0].Placement + + # Force le Sketch dans le plan XY, l'export SVG ne fonctionne que dans ce plan ! + __obj__[0].Placement=App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(1,0,0),0), App.Vector(0,0,0)) + + # Construction du nom de fichier + fichierSVG = u"" + outputRacine + '--' + __obj__[0].Label + '.svg' + + # Exporte en SVG + importSVG.export(__obj__, fichierSVG) + + # Restore la position du Sketch + __obj__[0].Placement = oldPlace + +# Force un recalcul de tous les objets du fichier +# après réinitialisation des positions des Sketchs +App.activeDocument().recompute() +