C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)※記載されている内容は個人の意見であり、所属する団体等を代表する意見では御座いません・・・・よ!

VBA

Cellsが謎

VBA

すっかり更新してませんでした・・・。最近Excel VBAを書いていたのですが、相変わらず難しい・・・。 まずこんな感じでシートに値を入れておきます。 マクロでこんな感じで奇数の値を持つセルを探し出します。 Option Explicit Sub Test() '対象範囲 Dim rn…

マクロのメニュー

githubでこちらを見つけました。 GitHub - verysolecd/Macro_menu: catia宏菜单程序CATIA V5のマクロ用のメニューのようです。 って 恐らく、こちらの仕組みを使っているようです。 GitHub - kantoku-code/CATIA_V5_SimpleMacroMenu: Form buttons for calli…

何故、Goなのか?

あぁブログ書いてちゃ勉強出来ないんだよな・・・。 最近になってGo言語が気になっちゃっているのですが、メジャー言語の中では 不人気な気はしてます。活躍の場が裏方さんのような気もするのでそこが原因じゃないかと 勝手に思ってます。きっかけですが、CA…

VSCodeでVBAのモジュールの文字化け

VBA

毎回設定するのが面倒なのでsetting.json書いておけば良いのですが、 setting.jsonになんて書くのかを忘れ、毎回調べているので覚書です。 { "[bas]": { "files.encoding": "shiftjis" }, "[cls]": { "files.encoding": "shiftjis" }, "[frm]": { "files.enc…

DictionaryをDumpしたい2

VBA

こちらの続きです。 DictionaryをDumpしたい1 - C#ATIA タイトルは"Dictionary"が入ってますが、今回は"Collection”です。調べたところ、キー付きのCollectionは、キーを列挙する方法が 無いんですね。と言う事で、Collectionもダンプさせるように 変更しま…

DictionaryをDumpしたい1

VBA

実は、Dictionary・・・好きなんですよ。 分かる方には分かると思います。但し、VBAを扱う人でDictionaryを避ける人の気持ちも分かります。 ブレークポイントでチェックするとですね・・・ "値"の所で表示されるのはKeyです。Valueについてはローカルウィン…

VBA-JSONのエスケープシーエンス

VBA

VBAでjsonファイルを扱う際、調べるとVBA-JSON一択のような気がしてます。 GitHub - VBA-tools/VBA-JSON: JSON conversion and parsing for 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メソッド知らなかったですね。フォルダ階層のセパレータ…