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