C#ATIA

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

VBA

イナーシャの取得

イナーシャが欲しいのですが、ササっと検索してもProductばかり見つかったのですが だったのですが、サーフェスで欲しいです。結局、全部入りのサイトがありました。 Measuring Mass and Inertia | CATIA V5 Automation消えてしまうと困るので、お借りする。…

VBE.CommandBars

VBA

こんなの知らなかった・・・。 'vba Option Explicit Sub commandBar_test() Dim vbe As Object Set vbe = Application.vbe 'CommandBar Dim cBar As Object Set cBar = get_commandBar("Custom1") 'CommandControl Dim myControl For Each myControl In cBa…

VBAのリスト問題5

VBA

こちらの続きです。 VBAのリスト問題4 - C#ATIAいよいよ先人の方々が作られたものを試す事にします。 githubで見ても、結構な数が公開されていますね。いかに他の方々も 悩まれているというか、不満に思っているかが分かります。多すぎて、とても全ては試せ…

VBAのリスト問題4

VBA

こちらの続きです。 VBAのリスト問題3 - C#ATIA 進みが悪い・・・。続いて動的配列です。Long型だけで比べるとこんな感じです。 **可変長配列** Long 代入:0.0234375s 呼出:0.0234375s **可変長配列 Preserve** Long 代入:0.9375s 呼出:0.0234375s呼び出しは…

VBAのリスト問題3

VBA

こちらの続きです。 VBAのリスト問題2 - C#ATIAあぁ配列試す前に、書くべきでした・・・・。 ところで、お気付きでしょうか?(何が?) コレクションの結果(やる度に結果は変わります)のLong型を 扱ったものですが、 **コレクション-キー無し** Long 代入:0…

VBAのリスト問題2

VBA

こちらの続きです。 VBAのリスト問題1 - C#ATIA続いては固定長配列です。もう、やらなくてもこれが一番速いのが 分かっているのですが、指標的な意味合いです。 Private Sub test3( _ ByVal Count As Long) Dim ary(50000) As Long Dim i As Long For i = 0 …

VBAのリスト問題1

VBA

"VBAのリスト"としましたが、使うなら配列か?コレクションか? と言う事です。 多くの先人の方々が、実測し答えも出ているような気もしますが、 githubで公開されているものや自作も含め、そろそろ自分の中での 答えを出したい気持ちがあります。 (配列と…

リファクタリング

VBA

昨年末の予想通りすっかり余裕が無く、更新していませんでした。あまり書ける事が無いものの、Bingチャット(Copilot)は チョロチョロ試しています。 ある処理でもうちょっと良い方法が無いものかと思い、 試した所、ソコソコの長さのものが一つの関数で出力…

コレクション内のオブジェクトのプロパティを利用したソート2

VBA

こちらの続きです。 C#ATIABingチャットも良いのですが、こちらのコメント欄に記載した phindと言うサービスの存在を知りました。 Bingチャットでコードレビュー - C#ATIAコーディングに関してはGPT-4を上回ると言う事らしいですが、 それ以上にBingチャット…

コレクション内のオブジェクトのプロパティを利用したソート1

VBA

あけましておめでとうございます。 本年もマイペースでやっていきます。年明け早々、あの様な震災があったり、それに伴った人災(航空機の接触)と 心痛む出来事の連続で唖然としつつ、普通に正月を迎えられることが 非常に幸せな事なのだと感じております・・…

Bingチャットでコードレビュー

VBA

正式な名称は”Bingチャット”では無く、"ウェブ版Copilot"かも知れない・・・ ※Copilotが付くサービスが多すぎてわからないChatGPTでは無くBingチャットを利用したのは、無料のChatGPTは GPT-3.5なのに対し、BingチャットはGPT-4だと言う単調な理由です。 GPT…

ソリッドをサーフェス化

ソリッドをサーフェス化したい場面はそれ程多くないとは 思いますが、忘れつつあるのでテストしました。 'vba Option Explicit Sub main() Dim pDoc As partDocument Set pDoc = CATIA.ActiveDocument Dim pt As Part Set pt = pDoc.Part Dim bdy As Body Se…

VBAで.gitignoreを読み込み、判断する

VBA

VBAで".gitignore"ファイルを読み込み、判断したいんです。 ".gitignore"ファイルはgitで監視対象から無視するためのファイルです。 (わかりにくい表現ですね。調べて下さい・・・)".gitignore"ファイルでは、フォルダーの指定も出来るのですが、 VBAのプ…

形状セットの深さを表示

この様な形状セットがあります。 このPart3の深さを示すための文字列を作りたいです。 こんな感じの文字列です。 Product3\Product2\Part3あぁ¥マークが変わっちゃう・・・。こんな感じにしました。 'vba Option Explicit Sub CATMain() Dim pDoc As partDo…

VBAエディタの取得

VBA

タイトル異なりますが、こちらの続きです。 CATVBAの標準モジュールをマクロで削除したい (希望)2 - C#ATIA もう、7年も前の話だ・・・。 ちょっと先々の事を考えて、VBAのエディターを操作したくなる 気がしたので、復習がてらExcelでも利用出来るようにと考えてお…

自作2Dの点とベクトル

VBA

前にも作ったのですが、やっぱり必要性を感じるので少し育てました。catiaのクラス名とバッティングする為、アンダーバーを入れることにしました。点クラスです。トレランス付きの一致を追加しています。 'vba Point_2D Option Explicit Private x_ As Doubl…

Period

また書きかけているのに放置してますね・・・。ちょっと疑問に思った事がありまして、試しました。まず、このような円や円弧をDrawで描きます。 続いてこんなマクロ(VBA)を作成しました。 'vba Option Explicit Sub CATMain() Dim sel As Variant 'Selection…

"プロパティをリセット"コマンドをマクロで実行3

こちらの続きです。 "プロパティをリセット"コマンドをマクロで実行2 - C#ATIApythonではイマイチだった為、vbaに戻って再挑戦。 vbaの場合は、UI Automationを使います・・・デバッグしにくい。こちらを参照しながら、もがき苦しんだ末、出来たものがこちらです。 …

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

こちらの続きです。 ボディの体積をダンプする4 - C#ATIA中途半端な状態で止まっていましたが、やっと取り組めました。 ・CATIAの場合、体積が単純なプロパティでは取得出来ない ・VBAのクラスに拡張プロパティのような考えが無い を考慮すると、 ソート関数…

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

こちらの続きです。 ボディの体積をダンプする3 - C#ATIAソート関数等って恐らくVBA自体には無いですよね・・・。 ExcelのRangeであればメソッドがあるようですが、純粋なVBAには無さそう。アルゴリズムの勉強と言う意味では、ソートを自作するのも 少しだけ…

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

ちょっと、やろうとした事の手前で、苦戦しました。CATIA V5でPart内の全てのボディの体積をダンプさせてみました。 'vba Option Explicit Sub CATMain() Dim doc As partDocument Set doc = CATIA.ActiveDocument Dim pt As Part Set pt = doc.Part Dim spa…

お手軽に言語判定を行いたい2(正しい方法)

こちらの続きです。 お手軽に言語判定を行いたい - C#ATIA珍しく、Little Cthulhu氏がガッツリ公開してます。 Language Setting info - DASSAULT: CATIA products - Eng-Tips僕は玉砕・・・。BuildPathメソッド知らなかったですね。フォルダ階層のセパレータ…

ライセンス無しでStepをエクスポートする

コンセプト的には、こちらの2個を足して2で割ったようなものです。 ライセンス無しでSTLをCATIAに取り込む3(STLだけじゃない) - C#ATIA D&DでStep<->Iges相互変換するVBScript - C#ATIA えー経緯から申し上げると、弊社は予算の都合上、長年StepとParaSolid の受…

コマンドIDの調べ方

ひょっとしたら、僕が勘違いしているかも知れません。CATIA V5のマクロの"StartCommand"メソッドでコマンドを呼び出す際の コマンドIDですが、調べる方法の一つはマウスカーソルを該当する アイコン上に持っていくことです。 もう一つは、メニューの"表示"の…

ライセンス無しでSTLをCATIAに取り込む3(STLだけじゃない)

こちらの続きですが ライセンス無しでSTLをCATIAに取り込む2 - C#ATIA どちらかと言うと、こっちかな? ライセンス無しでSTLをCATIAに取り込む - C#ATIA 続mayo - C#ATIA作ろうと思ってすっかり忘れていたのですが、先日見つけたmayo経由で メッシュファイルを開くマク…

プロジェクト内のモジュール類を全てエクスポート2

こちらの続きです。 プロジェクト内のモジュール類を全てエクスポート1 - C#ATIAプロジェクト毎にエクスポートする事すら面倒な方(僕)用に、 VBAエディタに含まれている全てのプロジェクトの全ての モジュールをエクスポートするように変更しました。 'vba …

プロジェクト内のモジュール類を全てエクスポート1

VBA

CATIA V5のマクロ(VBA)は、”catvba”ファイルはExcelと異なり単体ファイル なので、バックアップが楽は楽なのですが、バイナリファイルの為、中身の 確認が出来なくて心細いです。そこで、VBA自体で根こそぎエクスポート出来ないのかな?と思い調べたところ …

Treeの子を"新しいウィンドウで開く"

タイトルが日本語として怪しいのですが、CATIA V5です。データがこんな状態だとします。 ここから、Treeで一番最初の子を単独の新しいウィンドウとして 開きます。このコマンドですね。 ちょっと調べてみましたが見つからなかったのですが、調べる前から "CA…

"プロパティをリセット"コマンドをマクロで実行1

表題のコマンドは、ボディのコンテキストメニューの深い位置にある このコマンドです。 要は、ボディの色をリセットしたいんです。以前も探した時は見つからなかったのですが、こちらにありました。 Farbe zurücksetzen (Dassault Systemes - PLM Solutions/…

青い問題2

時間が経過していますが、こちらの続きです。 青い問題 - C#ATIA青色部分を動かす方法がやっと分かりました。 こちらがかなりヒントになりました。(答え?) COE : Forums : Some stuff about the BLUE PROBLEM!まず、この様なサンプルを用意しました。 ア…