| Descrizione |
|---|
| Esporta in un software di slicing per stampanti 3D basato su una macro simile di cae2100. Esporta un singolo file STL per ogni parte visibile nella stessa directory del file di disegno originale, quindi lo apre nel software di slicing. Questo codice, una volta eseguito, esporterà il disegno attualmente aperto in diversi file STL, denominati in base alle etichette delle parti e aprirlo nel software di slicing che utilizzi. La macro sta cercando 'Cura' nel percorso ma è possibile aggiungere qualsiasi altra suddivisione modificando la stringa nella macro. Versione macro: 1.1 Ultima modifica: 2020-10-30 Versione FreeCAD: All Download: ToolBar Icon Autore: WayofWood |
| Autore |
| WayofWood |
| Download |
| ToolBar Icon |
| Link |
| Raccolta di macro Come installare le macro Personalizzare la toolbar |
| Versione macro |
| 1.1 |
| Data ultima modifica |
| 2020-10-30 |
| Versioni di FreeCAD |
| All |
| Scorciatoia |
| Nessuna |
| Vedere anche |
| Macro 3d Printer Slicer |
Questo codice, quando viene eseguito, esporta i corpi visibili al livello superiore (i corpi più in profondità nell'albero verranno ignorati) del progetto attualmente aperto in singoli file STL e li apre nel software di slicing che si utilizza. Questa macro cerca Cura come impostazione predefinita, ma è possibile cambiarla con qualsiasi altro slicer modificando la variabile SLICERAPP nel codice sorgente.
Viene utilizzato al meglio creando un collegamento alla macro sulla barra degli strumenti e quando si è pronti per affettare l'oggetto, fare clic su di esso e gli oggetti, come appaiono sullo schermo in FreeCAD, appariranno sull'interfaccia del tuo software di slicing, pronti per lo slicing. Crea anche diversi file STL con lo stesso nome file del file di progetto e l'etichetta della parte nella stessa directory del file di disegno.
La variabile SLICERAPP può essere modificata per qualsiasi software di slicing si scelga. Se un oggetto specifico non viene esportato, potrebbe essere necessario aggiungere il rispettivo tipo all'array doexport.
Icona della barra degli strumenti
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)
Grazie a cae2100 per aver sviluppato il codice macro originale - disponibile anche qui.
Grazie a Wmayer per il suo aiuto nella scrittura di questo script.
Topic originario nel forum: https://forum.freecad.org/viewtopic.php?f=10&t=4686