避けては通れないNURBS曲線のスプリクト作成ですが、
困った程にサンプルが見当たりませんでした。
手探りまくりでようやくこのようなコードが出来上がりました。
#FusionAPI_python #Author-kantoku #Description-NurbsCurve3D_Test1 #Nurbsカーブ作成テスト import adsk.core, adsk.fusion, traceback _app = adsk.core.Application.get() _ui = _app.userInterface def run(context): try: global _app, _ui des = adsk.fusion.Design.cast(_app.activeProduct) comp = des.rootComponent #NURBSカーブ作成準備 poles = [adsk.core.Point3D.create(10, 0, 70), adsk.core.Point3D.create(7, 50, 7), adsk.core.Point3D.create(3, -30, 8), adsk.core.Point3D.create(10, -20, 7)] degree = 2 knots = [0.0, 0.0, 0.0, 1.0, 2.0, 2.0, 2.0] weights = [1.0, 1.2, 1.0, 1.0] #NURBSカーブ作成 - 画面上には出来ない nc = adsk.core.NurbsCurve3D.createRational(poles, degree, knots, weights, False) #スケッチ作成 sk = comp.sketches.add(comp.xYConstructionPlane) #スケッチにNURBSカーブ挿入 fs = sk.sketchCurves.sketchFittedSplines.addByNurbsCurve(nc) #NURBSカーブ固定 fs.isFixed = True #不要な制御点を削除 for skp in sk.sketchPoints: print(skp.deleteMe()) _ui.messageBox('done') except: if _ui: _ui.messageBox('エラー\n{}'.format(traceback.format_exc()))
実行結果はこちら
何とか出来たのですが、画像上の赤印部の点を消したいのですが
削除出来ません。(手動でも)
忘れてしまいそうなので、簡単な手順を覚書
・各パラメータに基づいたNURBSカーブ作成
↓
・スケッチに取り込み(.sketchCurves.sketchFittedSplines.addByNurbsCurve)
↓
・NURBSカーブ固定(これを行わないと、スケッチで修正した際おかしくなる)
↓
・不要な制御点を削除 ← ここが不完全?
ここまで来るのに本当に苦労しました。 他の方法があるものでしょうか?
Sketch.include(NurbsCurve)の様な方法は、過去に試しましたが出来なかったです。
(ご存知の方教えて頂けると助かります。)