From 55e586bcc641db20ffe4ad2b2139da64d063d138 Mon Sep 17 00:00:00 2001 From: Thomas-Alexandre Moreau Date: Wed, 7 May 2025 11:02:57 +0200 Subject: [PATCH] added date (format HH:MM:SS) on exported files --- MultiExport.FCMacro | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/MultiExport.FCMacro b/MultiExport.FCMacro index 8cb5c4f..d2fad34 100755 --- a/MultiExport.FCMacro +++ b/MultiExport.FCMacro @@ -90,8 +90,8 @@ class WindowDialog(): break - def _createFolder(self): - folderPath = f"{FreeCAD.activeDocument().getFileName().rpartition('.')[0]}-{datetime.today().strftime('%Y-%m-%d')}-Exports/" + def _createFolder(self, date): + folderPath = f"{FreeCAD.activeDocument().getFileName().rpartition('.')[0]}-{date}-Exports/" if not os.path.exists(folderPath): os.makedirs(folderPath) @@ -101,20 +101,20 @@ class WindowDialog(): # -------- MODIFICATION DE LA MACRO "exportSketchEnMasse-SVG" de Gauthier Brière -------- # - def _exportSketchBasic(self, sketchList): + def _exportSketchBasic(self, sketchList, date): for __O__ in sketchList: __obj__ = [] __obj__.append(__O__) print('Export SVG de : ' + __obj__[0].Label) - fichierSVG = u"" + self.outputRacine + __obj__[0].Label + '.svg' + fichierSVG = u"" + self.outputRacine + __obj__[0].Label + '-' + date + '.svg' importSVG.export(__obj__, fichierSVG) FreeCAD.ActiveDocument.removeObject(__O__.Label) FreeCAD.activeDocument().recompute() - def _exportSketchCalepinage(self, sketchList, plateLength, plateWidth, spacing): + def _exportSketchCalepinage(self, sketchList, plateLength, plateWidth, spacing, date): copy_sketchList = sketchList[:] __obj__ = [] currentX = 0.0 @@ -178,8 +178,8 @@ class WindowDialog(): FreeCAD.activeDocument().recompute() if listSize <= 0 or isSVGFull: - fichierSVG = u"" + self.outputRacine + 'CALEPINAGE-' + str(SVGNameCounter) + '.svg' - print('Export SVG de : ' + u"" + str(os.path.basename(self.outputRacine)) + 'CALEPINAGE-' + str(SVGNameCounter) + '.svg') + fichierSVG = u"" + self.outputRacine + 'CALEPINAGE-' + str(SVGNameCounter) + '-' + date + '.svg' + print('Export SVG de : ' + u"" + str(os.path.basename(self.outputRacine)) + 'CALEPINAGE-' + str(SVGNameCounter) + '-' + date + '.svg') importSVG.export(__obj__, fichierSVG) for __i__ in __obj__: FreeCAD.ActiveDocument.removeObject(__i__.Label) @@ -202,7 +202,7 @@ class WindowDialog(): # -------- END -------- # - def exportSVG(self, isCalepinage): + def exportSVG(self, isCalepinage, date): plateLength = self.form.doubleSpinBoxLength.value() plateWidth = self.form.doubleSpinBoxWidth.value() spacing = self.form.doubleSpinBoxSpacing.value() @@ -240,15 +240,15 @@ class WindowDialog(): FreeCAD.ActiveDocument.removeObject(sv0.Name) if isCalepinage: - self._exportSketchCalepinage(sketchList, plateLength, plateWidth, spacing) + self._exportSketchCalepinage(sketchList, plateLength, plateWidth, spacing, date) else: - self._exportSketchBasic(sketchList) + self._exportSketchBasic(sketchList, date) self._populate_selector_list() - def exportSTL(self, singleMode): + def exportSTL(self, singleMode, date): objects_to_export = [] for obj in FreeCADGui.Selection.getSelection(): @@ -271,7 +271,7 @@ class WindowDialog(): if not singleMode: for obj, label, i in objects_to_export: - filename = os.path.join(self.outputRacine, f"{label}_{i}.stl") + filename = os.path.join(self.outputRacine, f"{label}_{i}-{date}.stl") Mesh.export([obj], filename) print(f"Exported STL: {filename}") FreeCAD.ActiveDocument.removeObject(obj.Name) @@ -279,7 +279,7 @@ class WindowDialog(): export_objs = [obj for obj, _, _ in objects_to_export] if export_objs: label = FreeCAD.activeDocument().Name - filename = os.path.join(self.outputRacine, f"{label}.stl") + filename = os.path.join(self.outputRacine, f"{label}-{date}.stl") Mesh.export(export_objs, filename) print(f"Exported merged STL: {filename}") for obj in export_objs: @@ -293,10 +293,13 @@ class WindowDialog(): isCalepinage = self.form.checkBoxCalepinage.isChecked() isCombine = self.form.checkBoxCombine.isChecked() - self.outputRacine = self._createFolder() + dateFolder = datetime.today().strftime('%Y-%m-%d') + dateFiles = datetime.today().strftime('%H:%M:%S') - self.exportSVG(isCalepinage) - self.exportSTL(isCombine) + self.outputRacine = self._createFolder(dateFolder) + + self.exportSVG(isCalepinage, dateFiles) + self.exportSTL(isCombine, dateFiles) if __name__ == '__main__':