Fusion 360 a une commande ** Points le long du chemin ** .. Ceci est un record de rebondissements essayant d'y parvenir avec l'API Fusion 360.
Pour spécifier comment créer un point de construction avec l'API Fusion 360, spécifiez [** ConstructionPointInput Object **](http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-b3ffae9a-d7d7-48ee- bd66-b1138536767f) est utilisé. Les méthodes du manuel de référence qui commencent par ** setBy ** correspondent à chaque commande de l'interface utilisateur, cherchez donc des "points le long du chemin". ** setByCenter **> Point central Circle / Sphere / Taurus ** setByEdgePlane **> Points sur les arêtes et les plans //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 **> Points par lesquels passent les trois avions ** setByTwoEdges **> Two Edges Passing Point //help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-C0483AF3-AD6E-48C5-8BA7-0443C8AB4D65) cette···? ?? ?? Existe-t-il une méthode qui correspond à la ligne le long du chemin? ?? ??
Avec une commande similaire à un point le long du chemin [** Plan le long du chemin **](https://help.autodesk.com/view/NINVFUS/JPN/?guid=GUID-4ED5A7DB-8EAE-466E- Il y a A860-8A8968BDD3F8). Pour une raison quelconque, il semble y avoir ** méthode ConstructionPlaneInput.setByDistanceOnPath **. est. Pourquoi y a-t-il une surface plane mais pas de points? Il n'y a rien qui n'existe pas, j'ai donc décidé de rouvrir et d'envisager une alternative.
Créer un plan le long du chemin> Utilisons l'API Fusion 360 pour créer l'intersection du plan et du chemin.
Il s'agit de la procédure de création de points courbes dans une esquisse.
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
#
#Ajoutez le code ici
#
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
Obtenez la spline dans l'esquisse 1 et affectez-la à crvPath
#Obtenez Sketch 1 dans Sketch>Obtenir la courbe spline dans l'esquisse 1
sketch1 = rootComp.sketches.item(0)
crvPath = sketch1.sketchCurves.sketchFittedSplines.item(0)
Utilisez setByDistanceOnPath pour créer une face le long du chemin. Je spécifie une valeur de 0 à 1 avec 0 comme point de départ et 1 comme point final, mais au lieu de saisir directement la valeur numérique, ** ValueInput ** / ENU /? Guid = GUID-bdeb52e0-a6af-4909-93e8-3b13acd0e39c) Doit être spécifié dans l'objet.
#Obtenir l'objet constructionPlanes
planes = rootComp.constructionPlanes
#Obtenir l'objet ConstructionPlaneInput
planeInput = planes.createInput()
#Créer un plan le long du chemin
distance = adsk.core.ValueInput.createByReal(0.4)
planeInput.setByDistanceOnPath(crvPath, distance)
plane = planes.add(planeInput)
Fusion 360 n'a pas de commande pour créer une intersection d'un plan et d'une trajectoire, mais la [** méthode Sketch.intersectWithSketchPlane **](http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-1EB28A55 -7250-4694-A253-582B395AB234) vous permet de créer l'intersection du plan d'esquisse et de la courbe. Même si le chemin spécifié est une seule courbe, il semble qu'il doit s'agir d'un tableau. Ici, nous ajoutons crvPath
au tableau ʻentities` et le mettons dans l'argument de la méthode intersectWithSketchPlane.
#Ajouter une nouvelle esquisse
sketch2 = rootComp.sketches.add(plane)
#Créer l'intersection du plan d'esquisse et de la trajectoire
entities = []
entities.append(crvPath)
skPoints = sketch2.intersectWithSketchPlane(entities)
Quand je lance ce script, ça ressemble à ceci
C'était bien de pouvoir le faire, mais c'était beaucoup de travail et c'était assez gênant. J'ai dessiné et exécuté ce code avec une faible attente que pointInput.setByDistanceOnPath pourrait en fait être utilisé simplement parce qu'il n'est pas répertorié dans la référence ... mais j'ai eu une erreur et cela n'a pas fonctionné!
# 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)
Je souhaite qu'il soit implémenté dans l'API dès que possible!
Recommended Posts