C#ATIA

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

KCL

手抜きマクロ起動用メニュー2

こちらの続きです。 手抜きマクロ起動用メニュー1 - C#ATIACATVBAプロジェクトにマクロのモジュールを追加するだけで、 メニューボタンを自動的に追加します。但し、追加するモジュールにボタンとなる情報を追記する 必要が有り、以下 [タグ] と表記して説明します。 〇ファイルの構成 同一のプ…

手抜きマクロ起動用メニュー1

CATIAのマクロを実行する際、こちらの前半に記載した方法で ツールバーに登録して使っているのですがマクロを高速に実行させる(非公式) - C#ATIA正直な所、登録が面倒です。 (何処で見たか忘れましたが、全てのファイルを閉じた状態で ツールバーを新規に作成すると、ワークベン…

ProductTree の リオーダー2

こちらの続きです。 ProductTree の リオーダー - C#ATIAサンプル用のマクロを用意していたのですが、Product用のマクロを持っていない為、 以前の物を修正し、インスタンス名でソートするマクロに変更しました。 'vba sample_ReOrder_Product ver0.0.1 using-'KCL0.0.12' by Kantoku …

1つのPartからBody毎にしたProductを作り出す2

予め、お伝えしておきます。 KCLを更新しました。 非常に個人的なCATVBA用ライブラリ - C#ATIAリンクの画面やカタログ等を開いた状態でマクロを実行すると、 エラーで止まってしまうのを防ぎたかったので。 こちらの続きです。 1つのPartからBody毎にしたProductを作り出す -…

Bodyの穴っぽい部分に点を作成

業務上欲しくなったので、久々にCATIAのマクロを作成しました。穴あけ加工をCAMで作る際、Space-eでは穴位置となる点が 欲しかったので、こちらのマクロをかなり前に作成しました。 指定した平面から、穴の中心点を作成する1 - C#ATIA 本来であれば、3Dの形状から…

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

こちらの続きです。 http://kantoku.hatenablog.com/entry/2016/11/24/173743 http://kantoku.hatenablog.com/entry/2017/07/19/190425原因を突き止め切れていないのですが、結果が総当りと 一致するようになりました。まずは、本マクロのエントリーポイントを持つ標準モ…

アクティブCATPartを、Igesファイルにバッチ変換

ちょっと業務上欲しくなったので、CATPartファイルをIgesに変換する為の マクロを作成しました。" マクロにする必要ある? " と思った方、正解です。単に変換するだけであれば、必要性を感じないのですが、オプションの こちらの部分を変更しソリッドとサーフェスで二回変換してます…

スピードテスト5

一応、こちらの続きです。 http://kantoku.hatenablog.com/entry/2015/04/15/195513前回のコメントで、"HybridShapeクラスのComputeメソッドでもアップデート出来るよ" と imihitoさんに教えていただき、少し速くなりそうな気がしたので、 こちらのコードを元に試してみまし…

クリックした面に3Dな矢印と注記を作る

こちらの続きです。 3Dな注記の位置を制御出来ているっぽい(条件付き) - C#ATIAやっと完成しました。 注記位置については前回通り、条件付となりますが結構満足してます。 'vba sample_CreateArrow_ver0.0.3 using-'ver0.0.10' 'クリックした面に矢印を作成-注記…

クリックした面に3Dな矢印を作る

タイトルが異なりますが、こちらの続きです。 クリックした面に法線を作成する - C#ATIAこちらでコメント頂いている矢の部分ですが、 昨日自宅で、どの様な定義をすれば良いのか思いついたので コードを作成してみました。 (このような事は案外、PCの前に居ない時に思いつ…

マクロで干渉レポートを作成する

こちらのコメントに記載した、マクロで干渉レポートを作成するサンプルを 作成しました。 クリックした面に法線を作成する - C#ATIA コードはこちら。 'vba sample_ClashReport_ver0.01 using-'ver0.0.10' '指定した2つのプロダクトの干渉チェックをします Option Explicit Sub CATMain…

クリックした面に法線を作成する

こちらでコメント頂いたのですが、時間がナカナカ確保できずに サンプルを作れませんでした。3Dの文字モデリングマクロ8 - C#ATIA正直な所、完成した状態がイメージし切れていないため、クリックした 面のクリックした位置に法線を作成するマクロを作成してみました。 'vba sample_Cre…

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

こちらの続きですが、タイトル名がふさわしくないです。サーフェスの色をボディに反映する - C#ATIAtakashiさんからコメントを頂き、早速ご要望を反映してみました。 'vba sample_ApplyColor_ver0.0.2 using-'KCL0.0.10' '指定した形状セット(ボディ)の面の色をボディ(形状セット)…

選択した円弧の長さを表示2

こちらの続きです。 選択した円弧の長さを表示1 - C#ATIAもう一つ方法があり、パラメータと式を利用した方法です。 'vba test_Circle_Length_Formula 'using-'KCL0.0.10' '円弧の長さを表示-式利用 Option Explicit Sub CATMain() 'ドキュメントのチェック If Not CanExec…

選択した円弧の長さを表示1

ちょっと相談?を頂いたので、久々にCATIAのマクロを書いてみました。選択した3D円弧の長さを表示するだけのものです。 極端な話、こちらの物を流用しただけです。 線を選択しつつ、合計長さを表示する - C#ATIA 'vba test_Circle_Length 'using-'KCL0.0.10' '円…

PowerMillに同位置の作業平面を作る

加工する際、世の中の方々は加工原点をどうやって決めているんでしょうか? 部品の原点が決まっているようであれば、そこを原点にするのかも知れない のですが、基準まで加工して作る場合は・・・バイスを使用していたら材料の 上側の左奥(か、右奥・・・わかりにくい…

Drawのテキストサイズを変更する

"Drawのテキストサイズを変更したけど反映されない?" のような ご相談を頂きましたが、ちょっと状況がわからないので、 現象を再現できないでいます。クリックしたテキストのサイズを2倍にするだけのテストコードです。 'vba test_DrawTextSize_Double 'using-'KCL0.0.10' 'DrawTe…

2Dコンポーネントを展開する

こちらの続きです。 指定した2D要素を、指定した原点位置でコピペする - C#ATIA 予告していた、2Dコンポーネント(2D構成要素)を展開するマクロです。アクティブなDrawシート全てのビュー内(メイン・背景・ロック・非表示)にある 2Dコンポーネントが対象です。 'vba sample_Comp2DExplode ver…

2D曲線の折れ線化を利用し、重複線の選択2

こちらの続きです。 2D曲線の折れ線化を利用し、重複線の選択1 - C#ATIA 昨日の4分木ライブラリを利用して、前回の重複線を選択した状態にする マクロを改良しました。 'vba test_Select_Overlap_Curve2D ver0.0.2 'using-'KCL0.09' -'KCL_Quadtree0.0.1' '指定ビュー…

流用して、4分木る 3

こちらの続きです。 流用して、4分木る 2 - C#ATIAやっと、2度と見たくない程の汚いコードになってしまいましたが 組み合わせの効率化を促す、線形4分木が出来ました。"KCL_Quadtree.bas" と言う名称の標準モジュールとします。 'KCL' と、先日のDotNET Framework …

指定した2D要素を、指定した原点位置でコピペする

DXF(2D)データを受け取って3Dにモデリングする作業は、ほぼ無いのですが 大まかな形状を作成したい時が偶にあり、行います。DXFをインポートして手っ取り早く、3Dに貼り付けたいのですが困るのが 原点合わせです。 Draw側で原点をあわせて3Dにベタッと貼り付けるか? 3D…

インプロセス実行時、一部をアウトプロセスで実行 2

こちらの続きです。 インプロセス実行時、一部をアウトプロセスで実行 - C#ATIA 呼び出すだけではなく、戻り値も取得できるものか? 確認して いなかったので前回のコードを修正し、テストすることにしました。 'vba using-'KCL0.09' Sub CATMain() '*** VBE準備 *** Dim VbPj…

インプロセス実行時、一部をアウトプロセスで実行

KCLには言語判定の関数 "GetLanguage" 関数を入れているのですが、 最近になって打率が悪いことに気が付きました。 判定できない原因の一つが、マクロ自身をインプロセスで実行した際に ステータスバーの文字を取得する前に、判定しているような気がしています。その為、イン…

2D曲線の折れ線化を利用し、重複線の選択1

こちらの続きです。 2D曲線の折れ線化 - スプライン - C#ATIA 2DCADであれば比較的、重複線削除の機能を持ったものもあると思います。 AutoCADであればこんな機能です。 OVERKILL[重複オブジェクト削除] (コマンド) | AutoCAD | Autodesk Knowledge Network僕が…

2D曲線の折れ線化 - スプライン

こちらの続きです。 2D曲線の折れ線化 - 円弧 - C#ATIA 前回のもののスプライン版です。円弧版同様に、3DからリンクしたものはNGです。 'vba test_Curve2Polyline using-'KCL0.09' '2Dスプラインの折れ線化 Option Explicit '*** 設定 *** Private Const m_PolyTol = 0.…

2D曲線の折れ線化 - 円弧

過去に作った2Dの重複線削除マクロを修正して、再度Upする意欲が 出て来たので、しばらくはこれに取り組みたいと思っています。昔のコードに4分木を適用するのが結構面倒な事になりそうな為、 ほぼ作り直しです。 当時、重複線を判断する際、直線・円弧は何となく…

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

こちらの続きです。 単独な3D曲線の取得する1 - C#ATIA 前回は総当りの非常に効率の悪い物でしたが、線形8分木による スクリーニング処理を利用し単独な3D曲線を検索するように修正しました。まずはCATMainを持つ標準モジュール "FindSingle3DCurve.bas" です。 'vba F…

不覚にも、KCLのご利用をお考えの方へ

非常に個人的に作成している CATVBA用ライブラリ なのですが、サンプルとして 掲載しているマクロを利用する際には必要となる為、今更ながらご説明です。例えばこちらの場合ですが、 単独な3D曲線の取得する1 - C#ATIA サンプルコードのヘッダ部分を確認してください。 (忘れ…

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

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

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

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