読者です 読者をやめる 読者になる 読者になる

C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA

端点一致を探る、組み合わせテスト8

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト7 - C#ATIA 残されたもう一つのバグがわかりました。 今後の事を考え、オリジナルとは異なる処理をさせていた部分の 渡すべき引数を間違えていました・・・。 "符号なしInt を Long型で代用" とか "右ビットシフト関…

端点一致を探る、組み合わせテスト7

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト6 - C#ATIA 一ヶ所だけバグを発見しました。 こちらのコードですが 端点一致を探る、組み合わせテスト3 - C#ATIAGetPointElem関数内のGet3DMortonNumber関数を利用する際の引数部分の 計算式を CByte((p(0…

端点一致を探る、組み合わせテスト6

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト5 - C#ATIA 説明をきちんと読んでませんでした。>"分割レベルL=2 最小を16番 最大を23番" では >"親空間の2番" なのですが、実行すると "親空間の3番" に・・・。と前回は書いたのですが、" 3 " が戻ってき…

単独な3D曲線の取得する1

こちらの続きです。 端点一致を探る、組み合わせテスト5 - C#ATIA とりあえず、機能するものを先に作りました。 'vba test_FindSingle3DCurve Ver0.0.1 using-'KCL0.08' '単独な3D曲線の取得 Option Explicit '*** 設定 *** Private Const Tolerance = 0.001…

10進数の数値を2進数表記の文字列に変換

VBA

こちらに関係してます。 端点一致を探る、組み合わせテスト5 - C#ATIA段々業務が忙しくなってきたので、思うように取り組めません・・・。どうしても2進数が直ぐにはイメージ出来ない為、確認用の関数を 探してみました。 10進数の値を2進数に変換する(Excei2000以…

端点一致を探る、組み合わせテスト5

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト4 - C#ATIA最初は対象が端点なので、点で考えれば良いと思っていたのですが、 点ではなくボリューム(立方体)として空間分割し、登録しなければ ならない気がしてます。 上手く行かなく苦しんでます。ボリューム…

端点一致を探る、組み合わせテスト4

こちらの続きです。 端点一致を探る、組み合わせテスト3 - C#ATIA 前々回 "このアルゴリズムでの問題点も、ある程度認識してはいるつもり" と 書いたのですが、これについて自分なりの解釈と方向性だけ示しておきたいと 思います。このアルゴリズムで最大の効果を発…

端点一致を探る、組み合わせテスト3

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト2 - C#ATIA一応、取り組んでますが、全くCATIAとは無関係な状態です。 'vba 'モートン順序を利用した8分木空間分割の為のクズコード Option Explicit Sub CATMain() Dim min: min = Array(-12#, -34#, -56#) '…

端点一致を探る、組み合わせテスト2

こちらの続きですが、コード無しで作戦だけです。 端点一致を探る、組み合わせテスト1 - C#ATIA 現在挑戦しているご相談頂いた内容は、 "バラバラの3D曲線が存在し、端点部分が一致しない孤立している 曲線を見つけたい" といった内容のものです。 実は最初にお…

3D曲線の端点座標値を取得3

こちらの続きです。 3D曲線の端点座標値を取得2 - C#ATIA 未だにこだわっているのですが、何とかもうちょっと速くしたいので。3D曲線を取得するコードを書くのが面倒だったので、検索で済ませていたのですが 真面目にHybridShapesから探し出すように修正してみ…

3D曲線の端点座標値を取得2

こちらの続きです。 3D曲線の端点座標値を取得 - C#ATIA SPAWorkbenchで端点を取得する方法が、桁違いに速い事はわかったのですが 実際テストしてみると体感的にかなり遅いんです。 その為、形状セットを指定した後の時間を測定するように変更してみました。 'vba …

選択セットを利用し、再選択を高速化

こちらの続きです。 選択セットを利用する - C#ATIA 通勤中に "ひょっとしたら今回使うかも" と思ったので、 選択セットを利用した "再選択の高速化" をテストしてみました。選択セットを作成する際、事前に選択状態にしなければならない為 一度だけでは無意味です。 一…

端点一致を探る、組み合わせテスト1

前回の応用です。 3D曲線の端点座標値を取得 - C#ATIA 3D曲線の端点座標一致を探し出す、組み合わせテストコードを作りました。 予め書いておくと、何も考えずに単純に作っているので全くダメのものです。 少ない量であれば、まぁ大丈夫ですが 数が多いと最悪CATIA…

3D曲線の端点座標値を取得

ご相談頂いた内容を実現する為に、テストコードを作成しました。 3D曲線の端点部分の座標値の取得は、ほぼやったことがありません。2Dの直線であれば、こちらで端点座標を取得しています。 Drawingの直線を移動する2 - C#ATIA 実は、2Dと異なり3Dの場合はプロパティ…

"エリア フィルを修正" コマンドに挑戦

「マクロで "エリア フィルを修正" コマンドを」と御相談を頂いたのですが、難しいです。よくわかっていない物をマクロ化する際に最初に利用するのが、個人的なライブラリ "KCL" のCATMainにしているマクロです。 選択されたものをローカルウィンドウでみて見ると、エリアフィルではなく、Drawing…

OSG エンドミル ケース

普段、OSGのエンドミルを使わないのですが、R0.5 0.5°首下30 シャンクΦ4の テーパーネックエンドミルが欲しかったので、買いました。シャンクΦ6だと結構あるのですが、Φ6だとあまり奥まで加工できないので 何度か購入しましたが、諦めました。Φ4はナカナカ無いん…

精度過剰による弊害

予め書いておきますが、今回は非常に個人的な意見で単なる愚痴です。 CATIA V5のCADとしてのトレランスは0.001mmだと言うことは、何となく知っては いるのですがSpace-eのトレランスは幾つなのか知りません。一つだけ目安になりそうな方法が、エクスポートしたIgesのヘッダー(ク…

二つのボディ/形状セットを比較して、差分を抽出する

前回のマクロでは、2つを比較して色を反映させましたが、同一の面を認識 = 異なる面を認識なので、2つを比較して異なる面を抽出するマクロを作りました。 'vba sample_GetChangeArea_ver0.01 using-'KCL0.08' '2つのボディ/形状セットの異なる面を抽出 Option Explici…

非常に個人的なCATVBA用ライブラリ "KCL" をVer0.07にしました

こちらで公開している非常に個人的なCATVBA用ライブラリ "KCL" を 修正・追加しました。 非常に個人的なCATVBA用ライブラリ - C#ATIA 公開しているサンプルマクロでも特にSelectItem関数を利用しているのですが、 今まではこんな記載方法をしていました。 ・・・ Dim HB As…

サーフェスの色をボディに反映する

昔と異なり最近は、客先から3DCADデータを受け取って作業を行うことが 殆どなのですが、当然全ての客先がCATIAを使っているわけでは無い為、 中間フォーマット(Parasolid,Acis,Step,Iges)で受け取る事が殆どです。 (メーカーさんがCATIAでも、間に数社はいるとCATIAでも…

指定した要素の周囲要素を取得する3

こちらの続きです。 指定した要素の周囲要素を取得する2 - C#ATIA前回は無意味だったので、結局素直に距離を測り判断します。 リフレームオンと検索でHitした要素だけの距離測定のため、全部の要素に 対して行うより短時間で済むはずです。 'vba sample_Get_Outskir…

指定した要素の周囲要素を取得する2

こちらの続きです。指定した要素の周囲要素を取得する1 - C#ATIA "周囲要素を取得する" と書いておきながら、画面に表示されたものを 取得している為、遠くに有るのに "周囲の要素" を判断されている事は 昨日の時点で気が付いていました・・・。これを改善…

指定した要素の周囲要素を取得する1

"指定した要素の周囲の要素を取得したい" とご質問を頂きました。すんなり行う機能がCATIAには無いような気がするので、"リフレーム オン" と "検索" を利用します。 'vba sample_Get_Outskirt_Items using-'KCL' '指定した要素(GSD)の周囲要素を取得 Option Explic…

PowerMILLのVortex

ちょっとした機会で、PowerMILLのデモを見せてもらいました。気になるのは粗加工のVortex。 今時だと当たり前なのでしょうか? ストックモデルを利用する事も可能なようです。但し、見るからにちょっとガッカリしました。 わかり易くしたかったので Web上で画像をちょ…

Space-e D&Dでファイル変換するスプリクト

気が付いたら、今月は一度もブログを書いていませんでした。 (案外、業務以外の事が忙しい・・・) 以前、CATIA V5でD&Dでファイル変換するスプリクトを作成しました。 D&DでIgesファイルを変換する(オマケ付き) - C#ATIA 業務では他にSpace-eと言うCADCAMを利用しているの…

小さな線や面を非表示にし、リネームする

こちらの続きです。 小さな線や面を削除する - C#ATIA基本的に前回のコードを改造したものです。 'catvba sample_Hide_Rename_SmallShape '指定した形状セット内の微少要素の削除 Private Const SmallLength = 0.01 '微少長さ 単位mm Private Const SmallArea = 0…

AP

加工屋の場合の "AP" と言えば切り込み量ですが 今時の世間では一般的にこれだろうと思います。マッキーじゃ、刺さらないだろうな・・・。デカールは抜けるっぽいです。

小さな線や面を削除する

久々のCatVBAです。 'catvba sample_DeleteSmallShape '指定した形状セット内の微少要素の削除 Private Const SmallLength = 0.01 '微少長さ 単位mm Private Const SmallArea = 0.0000000001 '微少面積 単位m^2 Private SmallShapes As Collection '削除要素 Pr…

CATIA V5 ファイルのアイコンの関連付け

使用しているPCには複数のCATIAのリリースをインストールしています。 (受け取り可能なフォーマットで、CATIA V5 としている以上、 最新のリリースもインストールしておきたい為です)近々R2015になるので、不要なリリースのものをアンインストールしました。 アンインストールするとCATIA V5 ファイルの関連付け…

選択した面の周辺の面も、選択状態にする2

こちらの続きです。選択した面の周辺の面も、選択状態にする1 - C#ATIAPythonの内包表記、For文の前に記述するのは他の言語には見られない 異様さを最初は感じたものの、案外書きやすくて使いまくってますが、 処理速度がちょっと気になったので、時間も測定…

選択した面の周辺の面も、選択状態にする1

Fusion360は一つの面から、周辺の面を取得することが可能なんですね。面を選択し、選択した面とその面に接する面を選択した状態で 終了するスプリクトです。(言葉で表現するとわかりにくい・・・) #FusionAPI_python #Author-kantoku #Description-Surface_Around_S…

面の境界を取得する

面の境界を取得する際、やはり曲線になる場合があるためスケッチで作るしか 方法が無さそうです。 #FusionAPI_python #Author-kantoku #Description-GetBoundaryCurves #指定した面の境界を取得 import adsk.core, adsk.fusion, traceback _app = adsk.core.Appl…

曲面上を2点クリックし直線を作りたい

今後の事を考え、スプリクトで曲面上に線を作成したいと思っていました。Fusion360の3D空間で点・線・面を表現するには、"コンストラクション" が 一番相応しい気がしているのですが、"コンストラクション" で表現できるのは こちらの選択フィルタを見ても Help"点" "軸" "平面" だけな…

スプリクトで2要素間の距離測定をしたい5

こちらの続きです。 スプリクトで2要素間の距離測定をしたい4 - C#ATIA あちらのスクリプトをコマンドダイアログ(?)仕様に修正しました。 #FusionAPI_python #Author-kantoku #Description-GetExtremumPoint ver0.04 #曲線の指定方向の最大・最小位置に点を作成します。 im…

スケッチ作業中を判断する

CATIAの場合はワークベンチを判断すればわかるのですが、Fusion360の場合は ワークスペースをチェックしても、判断できません。 Fusion360はスケッチオブジェクトを指定して、そこに線を書いているので "スケッチワークスペース" なんて存在しないんですね。そこで思いついたのが、 "スケッチ停止"…

クリックした位置に点を作成する

前から "マウスでクリックした位置をワールド座標で取得したい" と思っていたのですが、 ガッカリするほど簡単に出来ました。実は、こちらのスクリーン座標からワールド座標に計算しなきゃダメかな? って思っていたんです。 MouseMoveEvent サンプル - C#ATIA Fusion360のウィンドウサイス…

スプリクトで2要素間の距離測定をしたい4

こちらの続きです。 スプリクトで2要素間の距離測定をしたい3 - C#ATIA やっと極値コマンド代わりのスプリクトが出来ました。 予め書いておきますが、イマイチな部分が多々ありますので。先にコードです。 #FusionAPI_python #Author-kantoku #Description-GetExtremumPoint v…

スプリクトで2要素間の距離測定をしたい3

こちらの続きです。 スプリクトで2要素間の距離測定をしたい2 - C#ATIA 昨日の計測コマンドの頼りなさを考えると、別の方法で考えます。 色々とHelp調べていると(Help見飽きました・・・)、 点-曲線の最短となる位置の曲線のパラメータが取得できる事がわかりました。こち…

スプリクトで2要素間の距離測定をしたい2

こちらの続きです。 スプリクトで2要素間の距離測定をしたい1 - C#ATIA 昨日文章にしたことを、手動で試してみてガッカリしました。 歪んだ局面に穴をあけ、ある程度遠いところに平面を作成しました。 この平面と穴部分の距離を測ったのですが、 32.304mmです。 …

スプリクトで2要素間の距離測定をしたい1

スプリクトで2要素間の距離測定をしたいのですが、見つかりません。実はこちらの問題をスプリクトで解決できるかな? と考えています。 形状面の穴の高点 低点 - Autodesk CommunityCATIAであれば単純に '極値' コマンドで解決するのですがFusion360には 無いですね。そ…

手探り

こちらで断念しかかったタイムラインの操作 素人のぼやき - C#ATIA昨日マウスのイベントが出来たので、キーボードも似たようなもんだろうと 思い再度挑戦しました。 再生・逆再生・一時停止がキーボード操作で出来たのですが、 さらに機能を付け足し再度実行すると、原因不明で…

MouseMoveEvent サンプル

やっと出来た・・・この程度?ってレベルなんですけど。FusionAPIはイベントが利用できるのですが、海外のフォーラムを見ても 後ろ向きな回答ばかり。 Mouse Click Event - Autodesk CommunitySolved: How to use KeyDownEvent - Autodesk Community (tomo1230さん すごい…

素人のぼやき

色々と試したものの上手く出来なくて、結果として何もしていないに 等しい・・・。 同じ事を2度試さないための覚書です。 これ、スクリプトで出来るだろうと思ってました。 解決済み: Fusion 360の履歴自動再生を途中でやめたい - Autodesk Community タイムラインの再…

パラメトリックな正十二面体

こちらの質問は解決しているのですが、読んでいたらサイズ変更が可能(パラメトリック)な 正十二面体をFusion360で作ってみたくなりました。解決済み: 平面を作成できない - Autodesk CommunityCATIAでは、正四面体、正六面体、正八面体、正十二面体、正二十面体を 作…

履歴を残したままコピペを行う

最近Fusion360ネタしか書いてないです。すいません。 何かご要望・ネタ等頂ければ、CATIAのマクロを書きますので、よろしくお願いします。先日のスクリプトを作った際に気が付いたので、間違った情報を修正しておきます。 Fusion360のダイレクトモデリング - C#ATIA こ…

指定したボディの重心に点を作成する

元ネタはこちら解決済み: ボディの中心(重心?)を基準に尺度変更したい - Autodesk Community悩みに悩んで出来ました。 何となく後には引けない気がしたので。 #FusionAPI_python #Author-kantoku #Description-Create_Body_COGPoint ver0.02 import adsk.…

Fusion360 選択したオブジェクトのタイプを表示

やっとCATVBAのSelectElement2のような処理を行う、Fusion360APIのサンプルを 見つけました。 早速流用して開発向けのスクリプトを作成してみました。 #GetGeometryObjectType by kantoku #fusionAPI_python import adsk.core, adsk.fusion, traceback def run(cont…

Fusion360CAM ポストコンフィグをイジル

CAMソフトで結構手間取るのが、ポスト処理を行うためのファイル。 (Fusion360CAM ポストコンフィグって呼ぶんですね)ちょっとした改良をしようと思ってファイルの中を見ても…想像以上にプログラムチック。 JavaScriptのようです。フォーラム見ても、盛んに 「カスタムポストにつきましては、弊社…

加工時間の実績を取る

Fusion360CAMにも、ソフト上で加工時間を確認する機能があるのですが、 正直なところ目安程度ですよね。 恐らくどのソフトでも。こちらの方も。 機械加工時間予測 | 技術の森 過去ログ | 挑戦する製造業のために/NCネットワーク予測される原因はこちらに詳しく記…

Fusion360CAM ポスト処理(オマケ)

こちらの続きです。 Fusion360CAM ポスト処理 - C#ATIA 2工程目の粗加工も結局、Fusionで作りました。 で、完成です。(右側は本物) 今考えると、普通に粗加工しても良かったな とは思ってます。 寸法的にはこんな感じです。 実はこれ、こちらの「4.」のところ…