diff --git a/Calepinage/Calepinage.ui b/Calepinage/Calepinage.ui deleted file mode 100644 index 0addf89..0000000 --- a/Calepinage/Calepinage.ui +++ /dev/null @@ -1,141 +0,0 @@ - - - Calepinage - - - Qt::WindowModal - - - - 0 - 0 - 400 - 200 - - - - Calepinage - - - - - - - - - Longueur du plateau (mm) : - - - - - - - 999999.000000000000000 - - - 50.000000000000000 - - - - - - - Largeur du plateau (mm) : - - - - - - - 999999.000000000000000 - - - 50.000000000000000 - - - - - - - Espacement (mm) : - - - - - - - 999999.000000000000000 - - - 5.000000000000000 - - - - - - - Epaisseur du laser (mm) : - - - - - - - 999999.000000000000000 - - - 5.000000000000000 - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Calepinage - - - Qt::AlignVCenter - - - - 0 - 50 - - - - - - - - Export en .svg -(sans calepinage) - - - Qt::AlignVCenter - - - - 0 - 50 - - - - - - - - - diff --git a/Calepinage.FCMacro b/MultiExport.FCMacro similarity index 78% rename from Calepinage.FCMacro rename to MultiExport.FCMacro index fa8463a..a93fab3 100755 --- a/Calepinage.FCMacro +++ b/MultiExport.FCMacro @@ -3,17 +3,27 @@ import FreeCAD import FreeCADGui import Draft import os +import svgpathtools +from svgpathtools import svg2paths +from shapely.geometry import LineString +from lxml import etree +from shapely.ops import unary_union +import Mesh + + class WindowDialog(): def __init__(self): - self.ui_file = os.path.join(FreeCAD.getUserMacroDir(True), 'Calepinage/Calepinage.ui') + self.ui_file = os.path.join(FreeCAD.getUserMacroDir(True), 'MultiExport/MultiExport.ui') self.form = FreeCADGui.PySideUic.loadUi(self.ui_file) self._connect_widgets() self.form.show() def _connect_widgets(self): - self.form.pushButtonSVG.pressed.connect(lambda: self.export(False)) - self.form.pushButtonCalepinage.pressed.connect(lambda: self.export(True)) + self.form.pushButtonSVG.pressed.connect(lambda: self.exportSVG(False)) + self.form.pushButtonCalepinage.pressed.connect(lambda: self.exportSVG(True)) + self.form.pushButtonSTLSingle.pressed.connect(lambda: self.exportSTL(True)) + self.form.pushButtonSTLMulti.pressed.connect(lambda: self.exportSTL(False)) # -------- MODIFICATION DE LA MACRO "exportSketchEnMasse-SVG" de Gauthier Brière -------- # @@ -126,7 +136,7 @@ class WindowDialog(): # -------- MODIFICATION DE MA MACRO "QuickSVGExport" -------- # - def export(self, isCalepinage): + def exportSVG(self, isCalepinage): plateLength = self.form.doubleSpinBoxLength.value() plateWidth = self.form.doubleSpinBoxWidth.value() spacing = self.form.doubleSpinBoxSpacing.value() @@ -156,6 +166,28 @@ class WindowDialog(): # -------- END -------- # + def exportSTL(self, singleMode): + outputRacine = App.activeDocument().getFileName().rpartition('.')[0] + __obj__ = [] + for selectedObject in FreeCADGui.Selection.getSelectionEx(): + __obj__.append(selectedObject.Object) + if not singleMode: + filename = u"" + outputRacine + '--' + __obj__[0].Label + '.stl' + if hasattr(Mesh, "exportOptions"): + options = Mesh.exportOptions(outputRacine) + Mesh.export(__obj__, filename, options) + else: + Mesh.export(__obj__, filename) + __obj__.clear() + if singleMode: + filename = u"" + outputRacine + '--' + __obj__[0].Label + '.stl' if len(__obj__) == 1 else u"" + outputRacine + '.stl' + if hasattr(Mesh, "exportOptions"): + options = Mesh.exportOptions(outputRacine) + Mesh.export(__obj__, filename, options) + else: + Mesh.export(__obj__, filename) + del __obj__ + if __name__ == '__main__': try: diff --git a/MultiExport/MultiExport.ui b/MultiExport/MultiExport.ui new file mode 100644 index 0000000..de8679c --- /dev/null +++ b/MultiExport/MultiExport.ui @@ -0,0 +1,207 @@ + + + MultiExport + + + Qt::WindowModal + + + + 0 + 0 + 300 + 250 + + + + Multi Exporting + + + + + + + 0 + + + + Export SVG + + + + + + + + + Longueur du plateau (mm) : + + + + + + + 999999.000000000000000 + + + 50.000000000000000 + + + + + + + Largeur du plateau (mm) : + + + + + + + 999999.000000000000000 + + + 50.000000000000000 + + + + + + + Espacement (mm) : + + + + + + + 999999.000000000000000 + + + 5.000000000000000 + + + + + + + Epaisseur du laser (mm) : + + + + + + + 999999.000000000000000 + + + 5.000000000000000 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Export en .svg (calepinage) + + + Qt::AlignVCenter + + + + 0 + 50 + + + + + + + + Export en .svg (sans calepinage) + + + Qt::AlignVCenter + + + + 0 + 50 + + + + + + + + + Export STL + + + + + + Export en .stl (single) + + + Qt::AlignVCenter + + + + 0 + 50 + + + + + + + + Export en .stl (multi) + + + Qt::AlignVCenter + + + + 0 + 50 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + \ No newline at end of file