Fusion 360 verfügt über einen Befehl ** Punkte entlang des Pfads **. .. Dies ist eine Aufzeichnung von Drehungen und Wendungen, die versucht werden, dies mit der Fusion 360-API zu erreichen.
Geben Sie ** ConstructionPointInput Object ** an, um anzugeben, wie mit der Fusion 360-API ein Konstruktionspunkt erstellt werden soll bd66-b1138536767f) wird verwendet. Die Methoden im Referenzhandbuch, die mit ** setBy ** beginnen, entsprechen jedem Befehl in der Benutzeroberfläche. Suchen Sie daher nach "Punkten entlang des Pfads". ** setByCenter **> Kreis / Kugel / Stier-Mittelpunkt ** setByEdgePlane **> Punkte auf Kanten und Ebenen //help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-BF8B03C7-6E09-44E3-A641-E310E3E53FF1) ** setByPoint **> [Top Point](https: // help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-0513EE5B-3A28-425E-AE34-E9E0BFF7D8D1) ** setByThreePlanes **> Punkte, durch die die drei Ebenen verlaufen ** setByTwoEdges **> Passing Point für zwei Kanten //help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-C0483AF3-AD6E-48C5-8BA7-0443C8AB4D65) Das···? ?? ?? Gibt es eine Methode, die der Linie entlang des Pfades entspricht? ?? ??
Mit einem Befehl ähnlich einem Punkt entlang des Pfads [** Ebene entlang des Pfads ](https://help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-4ED5A7DB-8EAE-466E- Es gibt A860-8A8968BDD3F8). Aus irgendeinem Grund scheint es eine [ ConstructionPlaneInput.setByDistanceOnPath-Methode **] zu geben (http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-46dd5f0a-e384-4707-b431-37c0e596f328). ist. Warum gibt es eine flache Oberfläche, aber keine Punkte? Es gibt nichts, was nicht vorhanden ist. Deshalb habe ich beschlossen, wieder zu öffnen und eine Alternative in Betracht zu ziehen.
Erstellen einer Ebene entlang des Pfads> Verwenden Sie die Fusion 360-API, um den Schnittpunkt der Ebene und des Pfads zu erstellen.
Dies ist das Verfahren zum Erstellen gekrümmter Punkte in einer Skizze.
import adsk.core, adsk.fusion, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
design = app.activeProduct
# Get the root component of the active design.
rootComp = design.rootComponent
#
#Fügen Sie hier Code hinzu
#
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
Holen Sie sich den Spline in Skizze 1 und weisen Sie ihn crvPath zu
#Holen Sie sich Skizze 1 in Skizze>Holen Sie sich die Spline-Kurve in Skizze 1
sketch1 = rootComp.sketches.item(0)
crvPath = sketch1.sketchCurves.sketchFittedSplines.item(0)
Verwenden Sie setByDistanceOnPath, um ein Gesicht entlang des Pfads zu erstellen. Ich gebe einen Wert von 0 bis 1 mit 0 als Startpunkt und 1 als Endpunkt an, aber anstatt den numerischen Wert direkt einzugeben, ** ValueInput ** / ENU /? Guid = GUID-bdeb52e0-a6af-4909-93e8-3b13acd0e39c) Muss im Objekt angegeben werden.
#Holen Sie sich das ConstructionPlanes-Objekt
planes = rootComp.constructionPlanes
#Holen Sie sich das ConstructionPlaneInput-Objekt
planeInput = planes.createInput()
#Erstellen Sie eine Ebene entlang des Pfades
distance = adsk.core.ValueInput.createByReal(0.4)
planeInput.setByDistanceOnPath(crvPath, distance)
plane = planes.add(planeInput)
Fusion 360 verfügt nicht über einen Befehl zum Erstellen eines Schnittpunkts einer Ebene und eines Pfads, sondern über die ** Sketch.intersectWithSketchPlane-Methode ** Mit -7250-4694-A253-582B395AB234) können Sie den Schnittpunkt der Skizzierebene und der Kurve erstellen. Selbst wenn der angegebene Pfad eine einzelne Kurve ist, scheint es sich um ein Array zu handeln. Hier wird "crvPath" zu dem Array mit dem Namen "entity" hinzugefügt und in das Argument der intersectWithSketchPlane-Methode eingefügt.
#Neue Skizze hinzufügen
sketch2 = rootComp.sketches.add(plane)
#Erstellen Sie den Schnittpunkt der Skizzierebene und des Pfads
entities = []
entities.append(crvPath)
skPoints = sketch2.intersectWithSketchPlane(entities)
Wenn ich dieses Skript ausführe, sieht es so aus
Es war schön, es tun zu können, aber es war viel Arbeit und es war ziemlich mühsam. Ich habe diesen Code mit der schwachen Erwartung gezeichnet und ausgeführt, dass pointInput.setByDistanceOnPath tatsächlich verwendet werden kann, nur weil er nicht in der Referenz aufgeführt ist ... aber ich habe einen Fehler erhalten und es hat nicht funktioniert!
# Get construction points
points = rootComp.constructionPoints
# Create construction point input
pointInput = points.createInput()
# Add construction point by distance on path
distance = adsk.core.ValueInput.createByReal(0.4)
pointInput.setByDistanceOnPath(crvPath, distance)
point = points.add(pointInput)
Ich möchte, dass es so schnell wie möglich in der API implementiert wird!
Recommended Posts