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