Es scheint, dass der "Fusion 360 Extrude Competition" (Details in einem anderen Blog-Beitrag ()) auch in diesem Jahr beginnen wird. Gerüchte sind geflossen. Fusion 360 verfügt über eine makroähnliche Funktion, die als Skript bezeichnet wird. Wenn Sie diesen Kerl benutzen, werden Sie definitiv gewinnen! ?? Deshalb habe ich es versucht.
So erstellen Sie ein neues Skript oder bearbeiten ein vorhandenes Skript Bitte lesen Sie den folgenden Artikel. Er hat die offizielle Hilfe ins Japanische übersetzt.
Fusion360-Skripte und Add-Ins erstellen
"Bearbeiten" Sie das von Anfang an enthaltene Beispielskript (achten Sie darauf, es nicht zu überschreiben!) Sie können auch den Inhalt überprüfen. Auch (obwohl es schmerzhaft ist, nur Englisch zu haben) auf der offiziellen Hilfeskriptseite Es gab verschiedene Proben, daher war es sehr hilfreich. Die folgenden Links führen verschiedene Extrusionen durch.
Extrude Feature API Sample API Sample
Zeichnen Sie einen Kreis mit einer Skizze und extrudieren Sie ihn, zeichnen Sie dann einen anderen Kreis darauf und extrudieren Sie ihn und wiederholen Sie den Vorgang. Daten zur Teilungshöhe (= jede Extrusionshöhe), zur Position des Kreises und zum Durchmesser Wenn Sie es als CSV-Datei laden, wird es automatisch herausgeschoben.
Ich habe es geschafft, es zum Laufen zu bringen, indem ich verschiedene Beispiele kombiniert habe. Im Folgenden werde ich den Code mit einer kleinen Pause erklären. Es sollte funktionieren, wenn Sie alles in der richtigen Reihenfolge anschließen, aber bitte korrigieren Sie es nach Bedarf.
import adsk.core, adsk.fusion, traceback, math, 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)
# Get the root component of the active design
rootComp = design.rootComponent
# Get extrude features
extrudes = rootComp.features.extrudeFeatures
title = 'Import csv file'
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
Bis zu diesem Punkt wurde der Bildschirm zur Auswahl der Grundeinstellungen und der CSV-Datei ausgeführt. Es ist fast das gleiche wie das Beispielskript.
# Set 1st-sketch plane
sketches = rootComp.sketches
sketch = sketches.add(rootComp.xZConstructionPlane)
cnt = 0
# Read the csv file.
with io.open(filename, 'r', encoding='utf-8-sig') as f:
line = f.readline()
data = []
while line:
pntStrArr = line.split(',')
for pntStr in pntStrArr:
try:
data.append(float(pntStr))
except:
break
# csv file line 1 is pitch of extrude
if cnt == 0:
distance = adsk.core.ValueInput.createByReal(data[0]/10)
Zeichnen Sie eine Skizze in der XZ-Ebene und extrudieren Sie sie in Y-Richtung. Lesen Sie die CSV-Datei Zeile für Zeile. Stellen Sie die zu stapelnde Teilungshöhe (= jede Extrusionshöhe) ein, die die Daten der ersten Zeile sind.
# csv file after line 2 are sketch of extrude
elif cnt == 1:
sketchCircles = sketch.sketchCurves.sketchCircles
centerPoint = adsk.core.Point3D.create(data[0]/10, data[1]/10, 0)
circle = sketchCircles.addByCenterRadius(centerPoint, data[2]/10)
prof = sketch.profiles.item(0)
extrude = extrudes.addSimple(prof, distance, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
else:
sketch = sketches.addWithoutEdges(extrude.endFaces.item(0) )
sketchCircles = sketch.sketchCurves.sketchCircles
centerPoint = adsk.core.Point3D.create(data[0]/10, data[1]/10, 0)
circle = sketchCircles.addByCenterRadius(centerPoint, data[2]/10)
prof = sketch.profiles.item(0)
extrude = extrudes.addSimple(prof, distance, adsk.fusion.FeatureOperations.JoinFeatureOperation)
line = f.readline()
data.clear()
cnt += 1
ui.messageBox('Finished')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
Lesen Sie die Mittelpositionen X, Y und den Durchmesser des Kreises ab, die die Daten aus der zweiten Zeile der CSV-Datei sind. Zeichnen Sie auf eine Skizze und extrudieren Sie mit der festgelegten Tonhöhe. Zeichnen Sie in der ersten Phase eine Skizze auf der XY-Ebene und extrudieren Sie sie mit einem neuen Körper. Zeichnen Sie ab der zweiten Stufe eine Skizze auf der Ebene des Körpers und extrudieren Sie sie durch Verbinden. Wiederholen Sie diesen Vorgang bis zum Ende der CSV-Datei.
Wenn eine Schaltfläche "Aufzeichnen" wie ein Excel-Makro vorhanden ist, wird auch die API-Analyse fortgesetzt. Es gibt nicht viele Informationen auf Japanisch und es gibt viele Dinge, die ich nicht verstehe. Es mag ein unordentlicher Code sein, aber bitte vergib mir.
Neben dem perfekten Kreis konnte ich eine Ellipse (Sketch Ellipses) zeichnen. Ich weiß nicht, wie man ein Quadrat zeichnet, indem man gerade Linien kombiniert.
Ich wollte wirklich damit beginnen, eine beliebige Ebene anstelle der XY-Ebene zu wählen. Ich habe das auch nicht verstanden, also würde ich es begrüßen, wenn Sie es mich wissen lassen könnten.
Zusätzlich zu den im Artikel vorgestellten Artikeln habe ich auch auf den folgenden Qiita-Artikel verwiesen. Es wurde in einer Reihe serialisiert und war leicht zu verstehen, da es sorgfältig erklärt wurde. Vielen Dank!
Lassen Sie uns Fusion 360 mit Python Teil 1 ausführen. Erstellen Sie ein neues Skript
Übrigens wurde diesmal im Extrusionswettbewerb 2020 klargestellt, dass "Skripte usw. nicht verwendet werden können". Bitte beachten Sie, dass es ein Foul ist, wenn Sie es verwenden (lachen)
Recommended Posts