2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Fusion 360 を Pythonで動かそう その8 スケッチのフィレットとオフセット

Last updated at Posted at 2020-07-25

#はじめに
Fusion360 のAPIの理解を深めるために公式ドキュメント内のサンプルコード Sketch fillet and offset API Sample (スケッチのフィレットとオフセット APIサンプル) の内容からドキュメントを読み込んでみたメモ書きです
スケッチでのフィレットを作成し、その結果を元にオフセットします。

#スクリプトの内容を確認する

##最初と最後のおまじないとスケッチの作成まで
最初と最後のこの辺りはFusion360 APIのお決まりのパターンです。その5で触れたので説明を省略します。

import adsk.core, adsk.fusion, traceback

def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()
        ui  = app.userInterface
        
        doc = app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
        design = app.activeProduct
        
        # Get the root component of the active design.
        rootComp = design.rootComponent

        # Create a new sketch on the xy plane.
        sketches = rootComp.sketches
        xyPlane = rootComp.xYConstructionPlane
        sketch = sketches.add(xyPlane)

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

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

二つのつながった線を描く

        # Draw two connected lines.
        lines = sketch.sketchCurves.sketchLines
        line1 = lines.addByTwoPoints(adsk.core.Point3D.create(0, 0, 0), adsk.core.Point3D.create(3, 1, 0))
        line2 = lines.addByTwoPoints(line1.endSketchPoint, adsk.core.Point3D.create(1, 4, 0))        

ここはその4にも出てきた内容なので説明は省略
image.png

##SketchArcs.addFillet メソッドでフィレットを作成

        # Add a fillet.
        arc = sketch.sketchCurves.sketchArcs.addFillet(
                        line1, line1.endSketchPoint.geometry, 
                        line2, line2.startSketchPoint.geometry, 1)

SketchArcs.addFillet メソッドarcという名前の SketchArc オブジェクトを作成。
パラメーターにはline1とline1の終点、line2とLine2の終点、フィレットの半径を指定している
image.png

##line1につながっている曲線を見つける

        # Add the geometry to a collection. This uses a utility function that
        # automatically finds the connected curves and returns a collection.
        curves = sketch.findConnectedCurves(line1)

Sketch.findConnectedCurves メソッドで line1 につながっている曲線を見つける。結果は ObjectCollection オブジェクトが得られるのでそれを curves に代入する

##オフセットカーブを描く

        # Create the offset.
        dirPoint = adsk.core.Point3D.create(0, .5, 0)
        offsetCurves = sketch.offset(curves, dirPoint, 0.25)

Sketch.offset メソッドでオフセットカーブを作成。
パラメータは3つ
curves:端部がつながった曲線のセットをObjectCollectionで指定する
directionPoint:入力曲線のどちら側でオフセットを作成するかPoint3Dで指定する
offset:曲線をオフセットする距離を cm 単位で指定する

image.png

#まとめ
直線一本だけをオフセットしようと思い line1 を Sketch.offset メソッドに入れてみたがエラーが出た。ちゃんと ObjectCollection にしないといけないってことかな?

前の記事 Fusion 360 を Pythonで動かそう その7 点を通過するスプライン作成
次の記事 Fusion 360 を Pythonで動かそう その9 スケッチの交差

参考

Fusion 360 API Reference Manual

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?