| Beschreibung |
|---|
| In eine Slicing-Software für 3D-Drucker exportieren, basierend auf einem ähnlichen Makro von cae2100. Exportiert eine einzelne STL-Datei für jedes sichtbare Teil in dasselbe Verzeichnis wie die ursprüngliche Designdatei und öffnet sie dann in der Slicing-Software. Wenn dieser Code ausgeführt wird, exportiert er das aktuell geöffnete Design in mehrere STL-Dateien, die nach den Bezeichnungen der Teile benannt sind, und öffnet sie in der von Ihnen verwendeten Slicing-Software. Das Makro sucht nach „Cura” im Pfad, aber es kann jede andere Slicing-Software hinzufügt werden, indem die Zeichenfolge im Makro geändert wird. Versionsmakro : 1.1 Datum der letzten Änderung : 2020-10-30 FreeCAD version : Alle Herunterladen : Werkzeugleisten-Symbol Autor: WayofWood |
| Autor |
| WayofWood |
| Herunterladen |
| Werkzeugleisten-Symbol |
| Links |
| Makros Rezepte Wie man Makros installiert Symbolleisten anpassen |
| Macro-Version |
| 1.1 |
| Datum der letzten Änderung |
| 2020-10-30 |
| FreeCAD-Version(s) |
| Alle |
| Standardverknüpfung |
| None |
| Siehe auch |
| Makro 3D-Drucker-Slicer |
Wenn dieser Code ausgeführt wird, exportiert er die sichtbaren Körper auf der obersten Ebene (Körper, die tiefer in der Baumstruktur liegen, werden ignoriert) des aktuell geöffneten Entwurfs in einzelne STL-Dateien und öffnet diese in der verwendeten Slicing-Software. Dieses Makro sucht standardmäßig nach Cura, durch Ändern der Variable SLICERAPP im Quellcode kann ein beliebiger anderen Slicer ausgewählt werden.
Am besten erstellt man einen Link zum Makro in der Symbolleiste. Zum Schneiden des Objekts, einfach darauf klicken, und die Objekte, wie sie in FreeCAD auf dem Bildschirm angezeigt werden, erscheinen in der Benutzeroberfläche der Slicer-Software und sind bereit zum Slicen. Außerdem werden mehrere STL-Dateien mit dem gleichen Dateinamen wie die Konstruktionsdatei und der Teilebezeichnung im gleichen Verzeichnis wie die Konstruktionsdatei erstellt.
Die Variable SLICERAPP kann auf jede beliebige Slicing-Software der Wahl geändert werden. Wenn ein bestimmtes Objekt nicht exportiert wird, muss möglicherweise der entsprechende Typ zum doexport-Array hinzufügt werden.
Macro_3d_Printer_Slicer_Individual_Parts.py
import FreeCAD
import Mesh
import sys
import math
import os
import subprocess
SLICERAPP= "cura" # Put your Slicer program here
# some fuctions
def getPlacement(quat,vect,obj):
if quat[3] > -1 and quat[3] < 1:
delta = math.acos(quat[3])*2.0
scale = math.sin(delta/2)
rx = quat[0]/scale
ry = quat[1]/scale
rz = quat[2]/scale
else:
delta = 0
rx = 0
ry = 0
rz = 1
info0 = "translation "+str(vect.x)+" "+str(vect.y)+" "+str(vect.z)
info1 = "rotation "+str(rx)+" "+str(ry)+" "+str(rz)+" "+str(delta)
return info0+" "+info1
# some definitions
placement = App.Placement(App.Vector(0,0,0),App.Rotation(0,0,0,1))
# user need to set this directory where slicing software is located
OutDir = FreeCAD.ActiveDocument.FileName.replace(".FCStd", "--")
visible_objs = []
# Get Objects in document
doc = App.ActiveDocument
objs = doc.Objects
stlFile = ""
stlFiles = [ SLICERAPP ]
# hide all
for obj in objs:
print(obj.Label + "//" + obj.TypeId)
print(len(obj.InList))
if obj.ViewObject.isVisible() and hasattr(obj, 'Shape') and (len(obj.InList) <= 1):
visible_objs.append(obj)
for obj in visible_objs:
stlFile = OutDir+str(obj.Label)+".stl"
Mesh.export([obj],stlFile)
stlFiles.append(stlFile)
print ("Exporting " + stlFile + "\n")
print ("Calling subprocess: " + str(stlFiles)+"\n")
subprocess.Popen(stlFiles)
Dank an cae2100 für die Entwicklung des originalen Makro-Codes - ebenfalls hier verfügbar.
Dank an Wmayer für seine Hilfe beim Schreiben dieses Skripts.
Originaler Foren-Beitrag: https://forum.freecad.org/viewtopic.php?f=10&t=4686