C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

VBA

SubList

こちらの質問の意味がわかり、回答を知っていたので答えてみました。 Speed up 'Component Activation State' parameter setting - DASSAULT: CATIA products - Eng-Tipsアクティブなファイルが複雑なデータ程、パラメータへのアクセスが重くなり 結果的に質…

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

こちらの続きです。 手抜きマクロ起動用メニュー3 - C#ATIAGrabCADにUpしていましたが、管理が出来ない為Githubに 移動しました。 GitHub - kantoku-code/CATIA_V5_SimpleMacroMenu: Form buttons for calling macros created for each module are created dynamica…

MSAPC.Apc

手元にこちらのコードがあったので、 実行中のプロジェクト名とパス取得する - C#ATIAこちらに投げてみました。 CATIA VBA - Active Macro Path - DASSAULT: CATIA products - Eng-Tips意外でした、あのLittle Cthulhu氏が知らなかったなんて・・・。 Eng-TipsのC…

PartNumberをファイル名に書き換える

久々のCATIAなのですが、ちょっと残念な奴です。Productの際、ぶら下がったPartNumberをファイル名に書き換える と言う、今さら感の強いやつです。 'vba Assy_ProductReNamem_ver0.0.1 using-'KCL0.1.0' by Kantoku Option Explicit Private mFSO As Object …

2Dの曲線を選択した際、近い側の端点を取得

「2Dの曲線を選択した際、近い側の端点を取得したい」との相談を 頂きました。通常要素の選択であれば、Selection.SelectElement2が殆どなのですが、 今回の場合は、Selection.IndicateOrSelectElement2Dを使用します。 理由は単純で、クリックした位置の座…

Drawの曲線をオフセットする

「Drawの曲線のオフセットをマクロで行いたい」との相談を頂きました。Drawは非常に難しいです。 過去のこちらを流用し行おうとしていたようなのですが、 Drawingの直線を移動する2 - C#ATIA こちらもすんなりと行ったものではない為、何ともならないのが本…

パラメータの「リンクの結果として」

こちら気になったのでササッと作ってみました。 Copy Parameters from product to part - DASSAULT: CATIA products - Eng-Tips 'catvba Sub CATMain() 'copy Dim copyDoc As PartDocument Set copyDoc = CATIA.Documents.Item("Part1.CATPart") Dim copySel…

青い問題

CATProductで作業時にPart(PartDocument)を取得したいって 解釈したのですが・・・ Working in a CATPart in a CATProduct VBA - DASSAULT: CATIA products - Eng-Tipsこれ "青い問題" と言う名称が付いているようです。こちらの状態でPart2を取得したい場…

KCLのソースコードをGithubに移行しました

こちらでソースコードを管理していたのですが、 非常に個人的なCATVBA用ライブラリ - C#ATIA Githubで管理することにしました。 GitHub - kantoku-code/KCL: Library for personal CATVBA (CATIA macro)ついでに、Ver0.1.0としており破壊的な変更です。 Ver0.0.x…

Drawの2点間距離を求める

「Drawの二つの点の距離を求めたい」と御相談頂きました。過去に必要になった場合は、座標値から計算して求めていたのですが、 確かに他の方法を調べた事が有りませんでした。 まず、元にするデータですがアクティブなビューに点を 二つだけ作っておきます。…

Drawのスプラインを描く3

こちらの続きです。 Drawのスプラインを描く2 - C#ATIA前回の記録を録ったマクロを、Drawで流用する事を考慮し修正します。一番欲しいのはスプラインの作成部分ですが、コントロールポイントも必要と なる事が前回わかりましたので、それも含めて関数化して…

Drawのスプラインを描く1

「マクロでDrawのスプラインを描きたい」と御相談頂きました。 実は、以前取り組んだことが有ります。図面の変更前と後で変更部分にスプラインで 目立つように印を付ける為です。(恐らく一部の関連企業だけだろうと思います) 先にお伝えしておくと、スプラ…

’サーフェス上' に点を持つ面の面積の取得

久々にCATIAのマクロです。こちらの問題に取り組んで見ました。 Point on face - accessing face from point - DASSAULT: CATIA products - Eng-Tips質問者さんが記載していますが、「サーフェス上の点」には どの面上に点を作ったかを示すSurfaceプロパティ…

ビュー名のテキストを追加する

こちらで記載した事の確認です。 複数のビュー名とリンクした状態のテキストを新作 - C#ATIA属性リンクを持ったテキストの作成は非常に面倒なのですが、 (しかも確認する手段が無い)単純にビュー名とリンクした状態の テキストの作成であれば単純です。 日…

複数のビュー名とリンクした状態のテキストを新作

恐らく、こちらの2つの目的を一体化したものがお望みだろうと 思われる質問を頂きました。 カレントビューの角度や生成スタイルの取得2 - C#ATIA 検索したテキストの文字を、指定したテキストに追記する - C#ATIA言葉にすると・・・ 「複数のビュー名とリン…

検索したテキストの文字を、指定したテキストに追記する

御質問頂いた内容を正しく理解できているかわからないのですが、 「Drawで検索してHitしたテキストの文字を、他のテキストに追記したい」 と理解しました。テストするものは、このような感じにしました。 コードはこちら。 'vba Sub CATMain() 'ドキュメント Dim …

カレントビューの角度や生成スタイルの取得2

こちらの続きです。 カレントビューの角度や生成スタイルの取得 - C#ATIA前回「IDやSuffixが関係してくると、もうちょっとややこしいです。」と書いた ビュー名辺りのお話です。こんな状態のデータです。 ここでこちらのコードを実行します。 'vba Sub CATMa…

サーフェスの重心をDrawのテーブルに書き込む2

こちらの続きです。 サーフェスの重心をDrawのテーブルに書き込む - C#ATIAちょっとお望みの状態では無かった様で、修正しました。 'Drawからマクロをスタートし、Partのサーフェスを指定 'Drawにテーブルを新作し、重心位置を書き込む2 Option Explicit Sub CATMa…

サーフェスの重心をDrawのテーブルに書き込む

御相談頂いた、サーフェスの重心をDrawのテーブルに書き込むサンプルです。Drawからスタートし、途中でPartに切り替えて何かを指定しなければならない マクロの場合、SelectElement4を使用する必要が有ります。(他の手法は知りません) 'vba 'Drawからマク…

カレントビューの角度や生成スタイルの取得

「ビューの角度や生成スタイルの変更」について、御質問頂きました。変更についてのサンプルコードは書きにくいため、カレントビュー情報を 幾つか表示するサンプルコードを作ってみました。 Sub CATMain() Dim msg As String Dim pi As Double: pi = 4 * At…

カレントビュー内のテキスト・寸法全てを削除する

「Drawのカレントビュー内のテキストと寸法を削除したいが、 最初の1個しか削除されない」 とのご相談を頂きました。とりあえず、検索の現行選択でテキストと寸法を選択するマクロの記録をし、 不要そうな部分を削除しつつ、変数名を修正したものがこちらで…

指定した要素を新たなPartにコピペして保存

久々のCATIAのマクロです。アクティブなPartファイル上で指定した要素を、新たなPartに ”結果として” で コピペし保存します。 'vba NewPart_CopyAndPasteResult using-'KCL0.0.13' by Kantoku '指定した要素を新たなPartファイルに"結果として"でコピペする…

ディテールシートの未使用のビューを削除

図面を作成する際、面倒なので新規のDrawファイルからでは無くて 他のファイルを流用して作りますよね?(・・・違うかな) 最大の理由はカタログから呼び出した際、分離してディテールシートに 残しているのですが、再度同じものをカタログから呼び出すのが…

指定ビュー内の2Dコンポーネントを削除する

「ビュー内の2Dコンポーネントを削除する方法」について御質問頂きました。2Dコンポーネントについては、DrawingView内のComponentsプロパティの コレクションが所有した状態になっています。 'vba 指定ビュー内の2Dコンポーネントを削除する Option Explicit Sub CATMain() Dim dD…

Drawビューの原点を変更する1

3Dを元に2Dを作成する際、単に平面を指定すると3Dの原点が 2Dの各ビューの原点になりますが、任意の座標系を2Dの原点としたい場合 座標系を選択した上で平面を指定すればOKですよね? (言葉では表現しにくいですね)こんな3Dデータだとします。 オレンジ色…

Win64

内容的にはこちらに記載した内容の続きです。 ファイル間リンクの取得10 - C#ATIAVBA7はVBAのバージョンだとわかるのですが、Win64って何だろう? と思い調べました。 コンパイラ定数 (VBA) | Microsoft Docs 正直に書くと以前は 「OSが64bitだよ」 って思ってまし…

オプションの設定を切り替える(発見手順)

最近こそ業務の依頼として頂くので、CATIAで2D図を使うようになったのですが 以前からあまり好きではなく、他の2DCADで構わないのであれば他のCADを 使っていました。その理由のひとつが(3Dから投影したもの以外の)線を ドラッグした際動いちゃう事なんで…

Select Case True

覚書です。 'vba Select Case True 知った際に結構衝撃的だったのですが、先にTrueを条件にしてしまい イロイロと異なる条件を元に判断してしまうのに利用しています。 (雰囲気的にYesマンみたいなイメージです)この記法は結構独特なのかと思っていたのですが…

2D属性リンクを扱いたい8

こちらの続きです。 2D属性リンクを扱いたい7 - C#ATIAこちらの「GetLinksInfo.bas」でリンク情報が手に入ったので、 セルのオブジェクト名を書き込むのをやめて、リンク情報を書き込む ことにします。 ファイル間リンクの取得9 - C#ATIA 'vba CheckAttributeLink V…

ファイル間リンクの取得9

こちらの続きです。 ファイル間リンクの取得8 - C#ATIAここがゴールでは無いのですが、ファイル間リンク情報をVBAで取得出来るようになりました。 こちらは、リンク情報を取得するだけのものです。 WinAPIを利用している為、標準モジュールで作成してください。 'vba GetLinksInfo…