Freiform-Oberfläche scannen/gravieren - Fusion 360
Freiform-Oberfläche scannen/gravieren - Fusion 360
Moin,
in EstlCAM ist es sehr einfach eine Freiform-Oberfläche zu scannen (Zeilen und Spalten) und anschließend zu gravieren.
https://www.youtube.com/watch?v=ApBfHW7AhsM
Mit simCNC geht das nicht, hier muss man den Umweg über eine CAD/CAM-Software gehen.
Das Scannen der Oberfläche bekomme ich mit einem kleinen Python-Skript in simCNC hin.
Die Punkte (x,y,z) der gescannten Oberfläche könnte ich dann auch in einer csv-Datei speichern.
Weiß jemand wie man in Fusion 360 so eine Datei importiert und in ein Fläche (oder Körper) umwandelt?
Oder kennt jemand eine freie Software die so was kann?
Bisher habe ich nur ein Python-Skript in Fusion entdeckt (Dienstprogramme->Zusatzmodule->Beispielskripte->ImportSplineCSV) mit der Punkte einer Zeile als Spline importiert werden könnten.
Dieses Skript lässt sich bestimmt so ändern, dass man auch mehrere Zeilen aus dem Scan importieren kann. Diese müssten dann aber noch über "Erhebung" verbunden werden. Das ist aber insgesamt alles etwas umständlich.
VG
in EstlCAM ist es sehr einfach eine Freiform-Oberfläche zu scannen (Zeilen und Spalten) und anschließend zu gravieren.
https://www.youtube.com/watch?v=ApBfHW7AhsM
Mit simCNC geht das nicht, hier muss man den Umweg über eine CAD/CAM-Software gehen.
Das Scannen der Oberfläche bekomme ich mit einem kleinen Python-Skript in simCNC hin.
Die Punkte (x,y,z) der gescannten Oberfläche könnte ich dann auch in einer csv-Datei speichern.
Weiß jemand wie man in Fusion 360 so eine Datei importiert und in ein Fläche (oder Körper) umwandelt?
Oder kennt jemand eine freie Software die so was kann?
Bisher habe ich nur ein Python-Skript in Fusion entdeckt (Dienstprogramme->Zusatzmodule->Beispielskripte->ImportSplineCSV) mit der Punkte einer Zeile als Spline importiert werden könnten.
Dieses Skript lässt sich bestimmt so ändern, dass man auch mehrere Zeilen aus dem Scan importieren kann. Diese müssten dann aber noch über "Erhebung" verbunden werden. Das ist aber insgesamt alles etwas umständlich.
VG
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi
https://www.youtube.com/@boessi
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Hi Anton,
also bei Inventor kann man in einer Skizze Punkte mit einer Excel Tabelle einfügen. Vielleicht geht das bei Fusion360 auch.
Dann kann man ja aus diesen Punkte eine Fläche erzeugen.
also bei Inventor kann man in einer Skizze Punkte mit einer Excel Tabelle einfügen. Vielleicht geht das bei Fusion360 auch.
Dann kann man ja aus diesen Punkte eine Fläche erzeugen.
Gruß Daniel
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Hallo Daniel,
bisher habe ich zu Fusion nur das gefunden:
https://knowledge.autodesk.com/de/suppo ... lines.html
Erzeugt Dir Inventor aus den Punkten automatische eine Fläche - wahrscheinlich nicht oder!?
In Fusion brauche ich einen Körper oder oder eine Fläche um eine Gravur draufzulegen.
Vielleicht versuche ich mal den Weg über eine per Skript erzeugte STL-Datei - wenn ich mal viel Zeit habe:).
VG
Anton
bisher habe ich zu Fusion nur das gefunden:
https://knowledge.autodesk.com/de/suppo ... lines.html
Erzeugt Dir Inventor aus den Punkten automatische eine Fläche - wahrscheinlich nicht oder!?
In Fusion brauche ich einen Körper oder oder eine Fläche um eine Gravur draufzulegen.
Vielleicht versuche ich mal den Weg über eine per Skript erzeugte STL-Datei - wenn ich mal viel Zeit habe:).
VG
Anton
Zuletzt geändert von Anton am 13.03.2023, 22:08, insgesamt 1-mal geändert.
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi
https://www.youtube.com/@boessi
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Ah das scheint die gleiche Funktion zu sein. Hatte das bisher nur einmal in Verbindung mit Splines gebraucht.
Gruß Daniel
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Moin,
ich habe Python-Skript für Fusion 360 erstellt, welches Punkte aus eines CSV-Datei liest, daraus Splines erzeugt und diese durch eine Erhebung (Loft) zu einer Fläche verbindet. Die CSV-Datei soll bei mir über einen Oberflächen-Scan auf der Fräse mit einem 3D-Taster befüllt werden.
Durch Projektion der Eckpunkte auf eine Skizze unterhalb der Freiformfläche erhält man ein Rechteck, mit dem man durch Extrusion bis auf die Freiformfläche (Objekt) einen Körper erstellt.
Nachdem der 3-D-Körper nun vorliegt kann eine Schrift durch Extrusion Teile des Körpers ausschneiden wie z.B. hie gezeigt:
https://www.youtube.com/watch?v=dNWUQ0gUV7s
Im Cam von Fusion können dann die 3D-Routinen genutzt werden.
Leider kann ich hier keine Textdateien wie z.B. .csv oder .py hochladen, deshalb hier der Quellcode der Datei ImportSplineCSV_Boes.py:
ich habe Python-Skript für Fusion 360 erstellt, welches Punkte aus eines CSV-Datei liest, daraus Splines erzeugt und diese durch eine Erhebung (Loft) zu einer Fläche verbindet. Die CSV-Datei soll bei mir über einen Oberflächen-Scan auf der Fräse mit einem 3D-Taster befüllt werden.
Durch Projektion der Eckpunkte auf eine Skizze unterhalb der Freiformfläche erhält man ein Rechteck, mit dem man durch Extrusion bis auf die Freiformfläche (Objekt) einen Körper erstellt.
Nachdem der 3-D-Körper nun vorliegt kann eine Schrift durch Extrusion Teile des Körpers ausschneiden wie z.B. hie gezeigt:
https://www.youtube.com/watch?v=dNWUQ0gUV7s
Im Cam von Fusion können dann die 3D-Routinen genutzt werden.
Leider kann ich hier keine Textdateien wie z.B. .csv oder .py hochladen, deshalb hier der Quellcode der Datei ImportSplineCSV_Boes.py:
Code: Alles auswählen
#Author- Bös
#Description- Generate Splines, the Splines lofted to a surface
import adsk.core, adsk.fusion, traceback
import io
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
# Get all components in the active design.
product = app.activeProduct
design = adsk.fusion.Design.cast(product)
rootComp = design.rootComponent
sketch = rootComp.sketches.add(rootComp.xYConstructionPlane)
title = 'Import Spline csv'
if not design:
ui.messageBox('No active Fusion design', title)
return
dlg = ui.createFileDialog()
dlg.title = 'Open CSV File'
dlg.filter = 'Comma Separated Values (*.csv);;All Files (*.*)'
if dlg.showOpen() != adsk.core.DialogResults.DialogOK :
return
filename = dlg.filename
with io.open(filename, 'r', encoding='utf-8-sig') as f:
points = adsk.core.ObjectCollection.create()
splines = adsk.core.ObjectCollection.create()
line = f.readline()
data = []
while line:
pntStrArr = line.split(',')
for pntStr in pntStrArr:
try:
data.append(float(pntStr))
except:
break
if len(data) >= 3 :
point = adsk.core.Point3D.create(data[0], data[1], data[2])
points.add(point)
data.clear()
line = f.readline()
# ui.messageBox(line)
if line.startswith('createSpline'):
#ui.messageBox("Create Spline")
#root = design.rootComponent
splines.add(sketch.sketchCurves.sketchFittedSplines.add(points))
points.clear()
line = f.readline()
# Create loft feature input
loftFeats = rootComp.features.loftFeatures
loftInput = loftFeats.createInput(adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
loftSectionsObj = loftInput.loftSections
for spline in splines:
loftSectionsObj.add(spline)
loftInput.isSolid = False
loftInput.isClosed = False
loftInput.isTangentEdgesMerged = True
# Create loft feature
loftFeats.add(loftInput)
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
- Dateianhänge
-
- _0CSV_DateiBeispiel.JPG (29.63 KiB) 7743 mal betrachtet
-
- _6Scriptauswahl.JPG (30.11 KiB) 7743 mal betrachtet
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi
https://www.youtube.com/@boessi
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Krass...einfach mal schnell ein script programmiert.
Ich wünschte ich könnte auch bissl Python programmieren.
Aber sehr gut wer weiß für was man das mal gebrauchen kann.
Ich wünschte ich könnte auch bissl Python programmieren.
Aber sehr gut wer weiß für was man das mal gebrauchen kann.
Gruß Daniel
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi
https://www.youtube.com/@boessi
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Moin,
bin gerade dabei den Surface Scan in simCNC einzubauen.
Hier schon mal ein Filmchen zur GUI.
https://www.youtube.com/embed/unPx1o5FfoM
Die Skripte, die den G-Code für das Abtasten erzeugen gibt´s im nächsten Filmchen.
Danach noch ein Filmchen zur Erzeugung eines Körpers aus den Abtastdaten und das Anbringen einer 3D Gravur auf diesen Körper.
Den Screen und die Skripte werde ich demnächst hier einstellen.
VG
bin gerade dabei den Surface Scan in simCNC einzubauen.
Hier schon mal ein Filmchen zur GUI.
https://www.youtube.com/embed/unPx1o5FfoM
Die Skripte, die den G-Code für das Abtasten erzeugen gibt´s im nächsten Filmchen.
Danach noch ein Filmchen zur Erzeugung eines Körpers aus den Abtastdaten und das Anbringen einer 3D Gravur auf diesen Körper.
Den Screen und die Skripte werde ich demnächst hier einstellen.
VG
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi
https://www.youtube.com/@boessi
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Hey Anton super Arbeit! Das mit dem Flächen abtasten kommt wie gerufen.
Gruß Daniel
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear
Re: Freiform-Oberfläche scannen/gravieren - Fusion 360
Moin,
hier findet Ihr das Filmchen zum Skript surfaceScan.py:
https://www.youtube.com/watch?v=5roFQ9pYijQ
Und hier den Python-Code:
M42 führt an der Position (X,Y) ein Probing durch und speichert den Tastpunkt in der Datei points.csv.
M43 wird am Ende einer Abtastzeile ausgeführt und schreibt "createSpline" in die Datei points.csv.
Ein Skript in Fusion liest die Datei points.csv und erzeugt daraus die abgetastete Oberfläche.
So sieht der erzeugte G-Code für
xStart 0, xEnde 5, anzahlPunkteX 6
yStart 0, yEnde 4, anzahlPunkteY 5
VG
hier findet Ihr das Filmchen zum Skript surfaceScan.py:
https://www.youtube.com/watch?v=5roFQ9pYijQ
Und hier den Python-Code:
Code: Alles auswählen
import math
import sys
xStart = d.getMachineParam(190)
xEnde = d.getMachineParam(191)
if xEnde < xStart:
temp = xEnde
xEnde = xStart
xStart = temp
print("xStart = " +str(xStart) )
print("xEnde = " +str(xEnde) )
xDelta = abs(xStart - xEnde)
#print("Delta X = " + str(xDelta))
xAnzahlPunkte = d.getMachineParam(192)
#print("Anzahl Punkte x = " +str(xAnzahlPunkte) )
yStart = d.getMachineParam(193)
yEnde = d.getMachineParam(194)
if yEnde < yStart:
temp = yEnde
yEnde = yStart
yStart = temp
#print("yStart = " +str(yStart) )
#print("yEnde = " +str(yEnde) )
yDelta = abs(yStart - yEnde)
#print("Delta Y = " + str(yDelta))
yAnzahlPunkte = d.getMachineParam(195)
#print("Anzahl Punkte y = " +str(yAnzahlPunkte) )
sichereHoehe = d.getMachineParam(199)
#print("Sichere Höhe = " + str(sichereHoehe))
vorschubXY = d.getMachineParam(198)
#print("Voschub XY = " + str(vorschubXY))
vorschubZplus = d.getMachineParam(196)
#print("Voschub Zplus = " + str(vorschubZplus))
x=xStart
y=yStart
G_Code = "G90 G17 G80\n"
G_Code += "G21\n" #Unit mm
G_Code += "G90 G49\n" #Tool length compensation off
#go to Startposition
G_Code += "G01 Z" + str(sichereHoehe) + " F"+str(vorschubZplus)+"\n"
G_Code += "x"+str(xStart) + " y" + str(yStart) + " F"+str(vorschubXY)+"\n"
counterX = 0;
counterY = 0;
while x <= xEnde:
while y <= yEnde:
G_Code += "M42\n"
counterY +=1;
y= yStart + counterY * yDelta / (yAnzahlPunkte - 1)
if y <= yEnde: #nicht in y weiterfahren, wenn yEnde erreicht
G_Code += "G01 Y"+ str(y) + " F" + str(vorschubXY)+"\n"
G_Code +="M43 \n" #M43 write createSpline to File
y=yStart
counterY = 0
counterX += 1;
x = xStart + counterX * xDelta / (xAnzahlPunkte -1)
if x <= xEnde: #nicht in x weiterfahren, falls xEnde erreicht
G_Code += "G01 Y" + str(y) +"\n"
print("x=" + str(x))
G_Code += "G01 X" + str(x) + " F" + str(vorschubXY)+"\n"
# Filepathe for points.csv
File_path = gui.scanTXTfileGcode.getText() ;
try:
File = open(File_path, "w+")
except IOError:
sys.exit("\n No access to file !!!\n" + File_path)
# Write String G_Code to file
try:
File.write(G_Code)
File.close()
# load G-Code from file
d.openGCodeFile(File_path)
print("--- CNC program successfully created! ---")
print(">>> click on Yes (reload G-code) <<<\n")
except IOError:
File.close()
sys.exit("\n File write error !!!")
#print(G_Code)
M42 führt an der Position (X,Y) ein Probing durch und speichert den Tastpunkt in der Datei points.csv.
M43 wird am Ende einer Abtastzeile ausgeführt und schreibt "createSpline" in die Datei points.csv.
Ein Skript in Fusion liest die Datei points.csv und erzeugt daraus die abgetastete Oberfläche.
So sieht der erzeugte G-Code für
xStart 0, xEnde 5, anzahlPunkteX 6
yStart 0, yEnde 4, anzahlPunkteY 5
Code: Alles auswählen
G90 G17 G80
G21
G90 G49
G01 Z0.0 F3000.0
x0.0 y0.0 F2000.0
M42
G01 Y1.0 F2000.0
M42
G01 Y2.0 F2000.0
M42
G01 Y3.0 F2000.0
M42
G01 Y4.0 F2000.0
M42
M43
G01 Y0.0
G01 X1.0 F2000.0
M42
G01 Y1.0 F2000.0
M42
G01 Y2.0 F2000.0
M42
G01 Y3.0 F2000.0
M42
G01 Y4.0 F2000.0
M42
M43
G01 Y0.0
G01 X2.0 F2000.0
M42
G01 Y1.0 F2000.0
M42
G01 Y2.0 F2000.0
M42
G01 Y3.0 F2000.0
M42
G01 Y4.0 F2000.0
M42
M43
G01 Y0.0
G01 X3.0 F2000.0
M42
G01 Y1.0 F2000.0
M42
G01 Y2.0 F2000.0
M42
G01 Y3.0 F2000.0
M42
G01 Y4.0 F2000.0
M42
M43
G01 Y0.0
G01 X4.0 F2000.0
M42
G01 Y1.0 F2000.0
M42
G01 Y2.0 F2000.0
M42
G01 Y3.0 F2000.0
M42
G01 Y4.0 F2000.0
M42
M43
G01 Y0.0
G01 X5.0 F2000.0
M42
G01 Y1.0 F2000.0
M42
G01 Y2.0 F2000.0
M42
G01 Y3.0 F2000.0
M42
G01 Y4.0 F2000.0
M42
M43
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi
https://www.youtube.com/@boessi
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste