Pythhon이 Fusion 360을 시작하도록 합니다. API가 11개의 경로를 따라가지 않았기 때문에 대체 방안을 고려했습니다.

개시하다


Fusion 360에는 명령경로를 따르는 점이 있습니다.Fusion 360 API를 통해 구현하려는 우여곡절 기록입니다.

참고 수첩을 찾아보세요.


ConstructionPointInput Object를 사용하여 Fusion 360 API를 사용하여 구성 점을 생성하는 방법을 지정합니다.매뉴얼을 참조하는 방법은 setBy로 시작하는 해당 UI의 명령을 참조하여 "경로상의 점"을 찾습니다.

setByCenter > 원/구/트라스의 중심점
setByEdgePlane > 모서리 및 평면상의 점
setByPoint > 정점
setByThreePlanes > 세 평면이 통과하는 점
setByTwoEdges > 두 가장자리의 통과점
어???경로를 따라가는 선에 대응할 방법이 없다???

"경로를 따르는 점"은 없지만 "경로를 따르는 평면"은 있습니다!


경로를 따라 있는 점과 비슷한 명령경로를 따라 평면이 있습니다.

왠지 여기 멀쩡한 것 같아ConstructionPlaneInput.setByDistanceOnPath 메서드.평면이 있는데도 점이 없는 것은 왜 그런가!그렇게 말하지만 없는 게 없기에 대안을 다시 생각해보기로 했다.
경로를 따라 평면 > Fusion 360 API를 사용하여 평면과 경로의 교차점을 만들려면

절차.


스케치에서 커브 점을 생성하려면

처음과 마지막 주문부터 중도까지

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

        # 
        # ここにコードを追加していく 
        # 

    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

스케치 중의 곡선 스플라인을 얻다


스케치 1의 사이다 대입 crvPath 얻기
        # スケッチの中のスケッチ1を取得 > スケッチ1の中のスプラインカーブを取得
        sketch1 = rootComp.sketches.item(0)
        crvPath = sketch1.sketchCurves.sketchFittedSplines.item(0)

경로를 따라 평면 생성하기


setByDistanceOnPath를 사용하여 경로를 따라 평면을 생성합니다.시작점이 0이고 끝점이 1인 0~1의 값을 지정하지만 직접 값을 입력하지 않고 ValueInput 객체로 지정해야 합니다.
        # constructionPlanes オブジェクトを取得
        planes = rootComp.constructionPlanes

        # ConstructionPlaneInput オブジェクトを取得
        planeInput = planes.createInput()

        # パスに沿った平面を作成
        distance = adsk.core.ValueInput.createByReal(0.4)
        planeInput.setByDistanceOnPath(crvPath, distance)
        plane = planes.add(planeInput)

구조 평면과 경로의 교점


Fusion 360에는 평면과 경로의 교차점을 만드는 명령이 없지만 Sketch.intersectWithSketchPlane 방법에 스케치 평면과 커브의 교차점을 생성할 수 있습니다.지정된 경로는 커브 하나라도 정렬해야 합니다.여기entities의 배열에crvPathintersectWithSketchPrince 방법의 매개 변수를 추가합니다.
        # 新しいスケッチを追加
        sketch2 = rootComp.sketches.add(plane)

        # スケッチ平面とパスとの交点を作成
        entities = []
        entities.append(crvPath)
        skPoints = sketch2.intersectWithSketchPlane(entities)
이 스크립트를 실행하면 이렇게 됩니다.

총결산


다 하면 되지만 수속이 많아서 귀찮아요.pointInput.setBy Distance OnPath는 "참고서에 기재되지 않은 것만으로도 실제로 사용할 수 있을 것"이라는 잔잔한 기대를 안고 이런 코드를 그려보며 실행을 시도했지만... 오류, 안 돼!
        # 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)
API에서 빨리 이루어졌으면 좋겠어요!

좋은 웹페이지 즐겨찾기