C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

Fusion360API

開発者向けアドイン15

こちらの続きです。 開発者向けアドイン14 - C#ATIA先日Fusion360のUpdateがありましたが、起動しなくなる状況になりました。 って言うのがこちらです。 Fusion360が起動しなくなる - C#ATIAどのアドインかな?と思って探した所、直ぐに犯人は分かりました。…

メッシュのテクスチャマッピング

試していないのですが、これ結構すごいと思っています。 Texture Mapping with Meshes - Autodesk CommunityFusion360APIでテクスチャを扱うメソッド類は、かなり初期から あったのですが、実際は機能していませんでした。 かなり以前に試した事があったので…

プロファイルの入れ子問題4

こちらの続きです。 プロファイルの入れ子問題3 - C#ATIA今回はちょっと説明を。 最初に感じたのは、プロファイルが1個置きに必要だと感じました。 仮に配列の様にプロファイルを並べる事が出来れば、必要となる プロファイルは奇数番目となる・・・どうやっ…

プロファイルの入れ子問題3

こちらの続きです。 プロファイルの入れ子問題2 - C#ATIA上手く行かない原因が分かりました。詳しく説明すると 途中で睡魔に負けそうなのでサラっと記載しておきますが、 findBRepUsingRayメソッドは1枚の面に対しては1度しか Hitしていないようです。それが…

プロファイルの入れ子問題2

こちらの続きです。 プロファイルの入れ子問題1 - C#ATIA えーまだ解決していないのですが、原因調査中です。実は、プロファイル上に点を配置して処理を行っているのですが、 その点がプロファイルの境界上に作成されているものが失敗の ではないかと疑って…

プロファイルの入れ子問題1

こちらで面白そうで難しい問題を見つけました。 Extrude DXF which has a lot of details - Autodesk Community ChatGPTで書かせたスクリプトが上手く行かない との事です。 イヤイヤ、結構書けていると思いますよ。(記載のコードは未実行)結論としては、押…

APIで干渉チェックする

Fusion360のCAMは昨年の4月に桁違いに強化され、今では自動化するための 機能が十分備わった状態になっていると思ってます。そんな中、干渉チェックをAPIで行いたい とちょっと面白そうなテーマを 見つけました。CAMソフトによっては、ツールパスを計算した…

自身のフォルダパス

pythonで実行中のファイルのフォルダパスが欲しい時が結構あります。 設定ファイルや一時的なファイルを保管したり等です。"os.getcwd()"で取得する方法もあるのですが、個人的には ”標準モジュールでpathlibあるんだから、そっち使えよ!”派です。 (使いこ…

外周エッジを取得する

少し前ですが、こんな感じで複数の面から構成されているボディ(サーフェス) の外周の境界の線を取得したかった際に、ちょっと迷ったのでご紹介を。 CATIA V5の場合であれば、境界コマンドで簡単に作れます。 ・・・厳密に言えば、外周の境界線から線を作る…

複数のボディをカットする

ちょっとボリュームありそうだと思いつつ、こちらに挑戦しました。 Cutting multiple bodies with single tool body - Autodesk Communityボディ(ソリッド)の結合の切り取りを大量のボディで行いたいようです。 本来の機能の場合は、 赤のターゲットボディ…

Fusion360APIでnumpy

過去に何度か書いているけど、忘れる。 アドインのフォルダに入れる形で一つだけ使ったけど、Updateで今は動かない。これが一番良い方法っぽい。 (実行時にDLさせている。起動時にちょっと時間がかかるよって事らしい) Solved: Re: How to use modules lik…

表示されているボディ毎にセットアップを作る

最近はがんばってAPIフォーラムで答えています。こちらで回答したものをそのまま転載ですが、表示されている ボディ毎にセットアップとNCプログラムを作成します。 # Fusion360API Python script import traceback import adsk.core as core import adsk.fus…

Fusion360からVSCodeが起動できない時の対策

どうも、VSCodeのms_python拡張のバージョニング問題らしいの ですが、「編集」からVSCodeが起動しないっぽいです。自分は普通に起動しますが、確認してみると・・・ 結構古い。こちらに対処方法が記載されていました。 Solved: Cannot launch VSCode by "Sc…

addTransparentメソッド

少し前のUpdateでパレットを作成するメソッドにaddTransparentメソッドが 追加されていました。 Fusion Helpパレットの背景を透明に出来るようです。今までだと、ボディ上にダイアログを持ってくると、当然ボディが見えなく なります。 addTransparentメソッ…

オペレーション名に工具径を追記する

久々にAPIフォーラムの質問?要望?に挑戦してみました。最初は要望の意味が分からず・・・苦戦した上で作ったものが こちらに添付したものです。Solved: Re: fast rename dont work properly - Page 2 - Autodesk Community選択した”ドリル”(オペレーショ…

ユーザーパラメータが何に使用されているかを知る

久々にこちらを答えてみました。 Solved: Re: How can I delete a parameter? - Autodesk Community ・・・後から気が付きましたが、”興味が無い”と答えられました。で、同じ方が議論していたので、こちらも答えてみました。 Re: Is there a way to find out…

点で面に接する平面

ネタ切れですが、ムリムリ書きます。先日お答えしたこちら Solved: Can not create a plane by setByTangentAtPoint in design history - Autodesk Community"点で面に接する平面"をAPIで行った際に、履歴付きと履歴無しで 結果だ違う と言うものです。(履…

選択セットを作る

ここ数ヶ月、あまりFusion360のAPIを触っていなかったので、 意識的に触るようにしてます。・・・忘れそうなので。ちょっと前に答えたものですが、こちらのお話です。 Solved: SelectionSet.add - unable to get this working - Autodesk Community 選択セッ…

アクティブなコンフィギュレーション名

昨年の後半だったかな? Fusion360にコンフィギュレーションと言う機能が追加されました。 デモの状態の時から知っていて "おぉすごい" と思っていたのですが、 使い方を知らず・・・と言いますか、試してもいませんでした。ざっくりですが、どんな機能か?…

BrowserCommandInputへ初期値の受け渡し

久々にFusion360です。 こちらを答えてみました。 How to create a `BrowserCommandInput` and populate it with initial data from Fusion? - Autodesk Community"ダイアログを表示する時にBrowserCommandInputに初期値を渡したい” と言う質問だと受け止め…

スクリプトから別のスクリプトを呼び出したい3

こちらの続きです。 スクリプトから別のスクリプトを呼び出したい2 - C#ATIA前回の最後に "スクリプトランチャ的なアドインを試しに作成したのですが、" と記述したのですが、探したところ奇跡的に以前のものが 残っていました。色々と修正が必要だったもの…

スクリプトから別のスクリプトを呼び出したい2

やらなければならない事が有るのは承知しておりますが、 しばらく何もやっていなかったため、リハビリです。 恐らくこちらの続きです。 スクリプトから別のスクリプトを呼び出したい - C#ATIA以前行った方法は、スクリプトをモジュールとして読み込み実行し…

穴テンプレートのオペレーション部を考える2

時間が経ちましたが、こちらの続きです。 穴テンプレートのオペレーション部を考える1 - C#ATIA穴テンプレートのオペレーション部のこちら <holeData operationType="drill" toolDiameterRatio="1.000000" version="1.0"> <holeMapping> <segment index="2"/> </holeMapping> </holeData> operationType部分の文字を取得する関数を作成しました。 def get_hole_data_operation_type( ope: cam.Operati…

ボディの体積をダンプする3

こちらの続きです。 ボディの体積をダンプする2 - C#ATIA前回は単純にルートコンポーネントのボディを取得した順番に 体積をダンプしました。 目的によりますが取得した順番で処理を行うより、ソートされた 状態で処理を行った方が効率が良い場面が、結構あ…

ボディの体積をダンプする2

こちらの続きです。 ボディの体積をダンプする1 - C#ATIA比較の為に、Fusion360でボディの体積をダンプします。 # Fusion360API Python script import traceback import adsk.core as core import adsk.fusion as fusion def run(context): ui: core.UserInt…

穴テンプレートのオペレーション部を考える1

本題の前に、誤った情報の修正です。 API以外で"穴テンプレート"と"テンプレート"の違いを見つけられない ような記述を以前しましたが、テンプレートライブラリで見分けられる ことが分かりました。 同じ工程を"穴テンプレート"と"テンプレート"を作りました…

穴テンプレートのトーラスを考える4

こちらの続きです。 穴テンプレートのトーラスを考える3 - C#ATIAテストする形状を少し複雑にしました。 ザグリ部分に面取り(赤)を付け、面取りの両側にR面(緑)を付けました。 面取り両側のR面は凸ですが、元々付けていた黄色のR面は凹です。 恐らく、こ…

穴テンプレートのトーラスを考える3

こちらの続きです。 穴テンプレートのトーラスを考える2 - C#ATIA誤った結果となる原因の一つの "円弧の始点終点では無く、穴の軸方向を元に三次元座標の上下で判断" を組み込みつつ、出力結果を下6桁に修正しました。 # Fusion360API Python script import …

穴テンプレートのトーラスを考える2

こちらの続きです。 穴テンプレートのトーラスを考える1 - C#ATIA取りあえず、現状の理解の下に確認スクリプトを作成しました。 トーラス(R面取り等)を選択すると、それっぽい情報を出力します。 # Fusion360API Python script import traceback import ad…

穴テンプレートのトーラスを考える1

ん~フォーマットがわからない。単純なものから考えます。これは穴の断面です。 赤印部分はこんな感じです。 <segment bottomAngle="-0.000000" isConvex="1" isExpanding="Contracting" sweepAngle="-1.570796" topAngle="1.570796" type="Torus"/> 緑部分はこんな感じです。 </segment>