C#ATIA

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

CATIA_V5

Excelフォームボタンからマクロの起動 (未確認)

「Excelのフォームのボタンを押したら、指定した座標系を元に XYZの値を入力した位置に、点を作成したい」 と言う内容の御質問を頂きました。生憎、古いExcelしかインストールされていないため(マクロ動かない) 完全には再現できませんが、近い事はしてみたい…

手抜きマクロ起動用メニュー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 …

実行中のプロジェクト名とパス取得する

今まで気が付かなかったのですが・・・。VBA実行中にプロジェクト名やプロジェクトのファイルパスが欲しいなぁ と、思った事がありましたがあまり調べていませんでした。ちょっと試しているうちに発見しました。 'vba 実行中のプロジェクト名とパス取得 Option Explicit Sub CA…

mixiにあった質問

mixiに質問があったので挑戦してみましたが、 言葉だけだったのでこれで良いものかどうか 判断できません。こちらに mixi.catpart と言うファイルでUpしました。 GrabCAD - CAD library こちらにも記載したのですが CATIAのマクロの質問 - C#ATIA閉鎖的なサ…

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

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

Treeの順番を取得したい

Partで、このような状態でルート?のTreeにぶら下がっているものを 見た目の順番通りに取得したいのですが、方法がわかりません。Bodyだけなら順番通りに取得できます。 形容セットだけでも同様。 Bodyと形状セット(や時系列形状セット)が混合していた場合、 個別の…

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

タイトルの日本語が怪しいのですが、要はこちらのコマンドで Assy → Part にしたものを、再度Assy状態にしたい と言うことです。CATProductからCATPartを作成 | CATIAの小技このコマンドは古いリリースでは表側に無く、裏コマンドだったんですよね。 "データを軽くして客先に支…

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

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

3Dの点をリンク付きでスケッチ投影

COEでこちらの記述を見て、作ってみました。 http://www.coe.org/p/fo/st/thread=29815レスしたものはインデントが消えてしまっているので Sub CATMain() 'HybridBody-Points Dim HBdy As HybridBody Set HBdy = SelectItem("Select a HybridBody : ESC = Cancel",…

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

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

差分を抽出マクロ修正中

こちらの続きです。 マクロを直したい(愚痴) - C#ATIA少しづつ時間が確保出来たので、修正しているのですが・・・。 こちらのマクロの問題点は、互いの面を総当りで比較している と言う点です。 二つのボディ/形状セットを比較して、差分を抽出する - C#ATIA過去に作った…

滑らかさを手に入れる

最近忙しかったのですが、一山だけ超えました。二番目の原因が、リバースエンジニアリングな仕事のマネキンのモデリングです。 3Dスキャンしたものからサーフェス化したものの一部(背中)がこちらフリースタイルなライセンスが無い為、ゼブラ表示が出来ません。 代わりに "サーフェスの曲率 - 屈折領域" …

CATPart内エラー時のUpdateObject

こちらでコメント頂いた 「GetMeasurableはUpdate出来ないと長さも取得できそうにありません」 について、解決されたようですが、試しているうちに知らなかった事に 出くわした為、記載しておきます。 選択した円弧の長さを表示1 - C#ATIA テストしたデータはこん…

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

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

ThickOnTheFly1

こちらでクリックした際、肉厚を取得しました。 クリックした面に3Dな矢印と注記を作る - C#ATIAこちらの方法を流用して ボディの外側をマクロで判断する - C#ATIA動的に肉厚を取得できないかなぁ? と思い挑戦中です。画面左下のステータスバーの位置に、測定した肉厚の値を表…

UpdateObjectとComputeの違い

こちらで教えて頂いた、Computeメソッド UpdateとUpdateObject - C#ATIAこちらで試した際は気が付かなかったのですが、 スピードテスト5 - C#ATIAPartクラスのUpdateObjectメソッドは各HybridShapeクラスのComputeメソッドを 呼び出しているだけなのかな? と思っていたので…

ボディの外側をマクロで判断する

以前、3次元測定機の測定結果(CSV)をCATIAに取り込み、 実物とCADデータを差を調整しながらモデリングを行った事があったのですが、 大量の点をイチイチ測定する手間が非現実的なため、誤差を測定する為の マクロを作成し作業をしたことが有ります。単に 点 - ボディ 間の…

スピードテスト5

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

UpdateとUpdateObject

"マクロで作成した面の色を変更したけど、上手く反映されない" と言った内容の御質問を頂きました。このような状態のデータで、オフセット面を作成する操作の マクロを記録しました。 'vba Sub CATMain() Dim partDocument1 As PartDocument Set partDocument1 = CATIA.Ac…

DrawをPDFでエクスポート (未解決)

こちらの記載を見てみると、DrawをPDFに高速で変換する方法を お探しのようでした。Fastest way to convert CATDrawing to PDF - DASSAULT: CATIA products - Eng-Tips添付されているマクロを見ても、結局開いてPDFとして保存してました。 恐らくそれしか方法無…

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

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

3Dな注記の位置を制御出来ているっぽい(条件付き)

こちらの続きです。 3Dな注記の位置を制御したい - C#ATIA前回はX軸が縦になった状態の場合、注記が意図しない位置に 出来上がってしまいました。 最後に "一瞬だけ画面を動かせば" と書いたのですが、 実際に取り入れたところ、上手く行っているように感じ…

3Dな注記の位置を制御したい

こちらの続きです。 クリックした面に3Dな矢印を作る - C#ATIA 注記の追加に取り掛かっているのですが、やはり注記の位置を制御 するのに困っています。未完成の為、コード無しですがこのような感じまでは出来ています。 動画の最初の操作では、意図した位置に出来…

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

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

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

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

Viewpoint3Dで表示を動かす2

こちらのコメントで御質問頂いた "画面中心に表示させる" 方法のサンプルです。 クリックした面に法線を作成する - C#ATIA と言っても、過去にテストしたコードを64bitで動くように 修正しただけなのですが・・・ Viewpoint3Dで表示を動かす - C#ATIA 'vba test_Viewpoint3D ver…

読み取り専用でファイルを開く2

昨日、imihitoさんからのアドバイスを利用するために書き換えてみました。 読み取り専用でファイルを開く1 - C#ATIAVBA.FileSystem.SetAttr/GetAttr関数を利用して進めていたのですが、 ファイルの存在をチェックや拡張子を取得する関数類がVBA.FileSystemには 存在していな…

読み取り専用でファイルを開く1

"読み取り専用でファイルを開きたい" と御質問を頂きました。 過去に探した事が有り、"Unofficial CATIA User Forum" にも 記載したのですが・・・ 生憎、ソースコードの管理が悪く サンプルが見つかりませんでした。結論としては、CATIAのマクロでドウコウでは無く、FileSystemOb…