C#ATIA

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

VBA

DrawのテーブルをCSVファイルとしてエクスポートする

久々にCATIAです。DrawのテーブルをCSVファイルとしてエクスポートするを、以前は作って いたのですが、あまりに使わないので紛失しました・・・。 仕方が無い為、急遽作成。こんな感じのテーブルが有ります。 これを、こんな感じで 実際は、Excelに取り込み…

ProductのCGRファイルを差し替える

CATIA V5です。 ちょっとやったことが無かったので試してみました。データの状態はこんな感じです。 "test1"はCGRファイルです。やる気満々なネーミングでスイマセン。こちらを "C:\temp\test2.cgr" のCGRファイルと差し替えます。 'vba Option Explicit Sub…

穴寸法テーブルを修正する

CATIA V5です。ちょっとこちらに挑戦しました。 Macro for editing tables. - DASSAULT: CATIA products - Eng-Tips 折角なので、あちらに投げるのは止めておきます。雰囲気的に・・・。要はタップ穴を含めた穴寸法テーブルを作成した際に、タップ穴が 下穴…

Drawファイルの背景図の全ての文字を抜き出す

CATIA V5です。 自分もあまり経験が無いのですが、CATIA V5はバッチ処理が可能です。 バッチ起動(通常のGUI画面なし)させマクロで処理させる事が可能です。過去に1個だけ公開していましたが、今回新たに CATDrawingファイルをVBScriptファイルにD&Dする事で…

CSVファイルからテーブルをマクロで作成

CATIA V5です。予めお伝えしておくと僕も知ってます。 Drawにこちらのコマンドが有る事を。 次のサンプルは、指定したCSVファイルを読み込み、アクティブなビューの 原点付近にテーブルを作ります。 'vba Option Explicit Sub CATMain() Dim dDoc As Drawing…

形状セット内の全ての曲線の中間点を作成する2

こちらの続きです。 形状セット内の全ての曲線の中間点を作成する1 - C#ATIAこちらの下の方にCatScript版を記載しました。 Macro to look inside a geometrical set and generate a mid point on all the curves. - DASSAULT: CATIA products - Eng-TipsCatS…

お掃除する

これも無駄になった・・・。"gDustBox" と言う名のグローバルなコレクション内の要素を ひたすら削除するclean_up関数です! Private gDustBox As Collection Private Sub clean_up() Dim pt As Part Set pt = CATIA.ActiveDocument.Part Dim fact As Hybrid…

三次元ベクトル演算

CATIA V5用の自作ライブラリっぽいものを こちらで公開していますが、 GitHub - kantoku-code/KCL: CATIA Library for personal CATVBA (CATIA macro) 不覚にも三次元ベクトル演算類が入ってません・・・。 前々から入れたいとは思っていたのですが。使うか…

リンク付きDrawの丸の座標を取得する

CATIA V5です。こちらに挑戦しました。 Find the circle - DASSAULT: CATIA products - Eng-Tipsリンク付きDrawの丸い形状の中心座標を取得したいとの事ですが、 3Dのリンク付きのビューからは取得する事が出来ません。 これは手動で検索しても実感できます…

図の生成モードをラスタに切り替える

CATIA V5です。こちらに挑戦しました。 Raster mode visualization "shading" - DASSAULT: CATIA products - Eng-TipsDrawの生成モードの際、通常は何なのか分かりませんが少なくても ラスタでは無いはずです。(寸法付けられないし・・・) あぁビューのプ…

形状セット内の全ての曲線の中間点を作成する1

CATIA V5です。こちらに挑戦しました。 Macro to look inside a geometrical set and generate a mid point on all the curves. - DASSAULT: CATIA products - Eng-Tips指定した形状セット内から曲線を選び出し、中間点を作成しています。 ※形状セット内の形…

バルーンに参照されている寸法値の取得

CATIA V5です。こちらに挑戦しました。 Macro to read value dimension associate at Baloon - DASSAULT: CATIA products - Eng-Tips質問されていた時期が2月だったので、もう解決済みの可能性も 有りましたが、今年散々バルーンを扱ったので心当たりがあり…

隣接面を取得する

CATIAです。こちらに隣接面を取得するサンプルを作りました。 Adjazente/Benachbarte Faces finden (Dassault Systemes - PLM Solutions/CATIA V5 Programmierung) - Foren auf CAD.deドイツ語です。初めて利用してみました。 迷惑メールに入っていたので気…

Fusion360を言語を指定して起動する1

こちらに挑んでます。 言語を指定して起動する方法 - Autodesk Community そうです、僕が欲しいんです。で、xmlを書き換える方向性でやってます。 Sub Main() path = "C:\temp\NMachineSpecificOptions.xml" '本番は"C:\Users\<PCアカウント>\AppData\Roaming\Autodesk\Neu</pcアカウント>…

ChatGPT様にCATIA V5のマクロを書かせてみる

こちらに刺激を受け、CATIA V5のマクロを書かせてみました。 ChatGPTを使ってFusion 360の3Dモデリングのスクリプトをつくってもらう方法|神原 友徳 tomo1230|note呪文1 CATIA V5のVBAで星型をつくるマクロを教えてください返答1 Sub CreateStar() Dim oD…

全ての寸法に番号バルーンを付ける6

こちらの続きです。 全ての寸法に番号バルーンを付ける5 - C#ATIA もう、十分な牛歩戦術。 作成するバルーンの先頭番号を入力させますが、当然 自然数でなければNGの為、該当しない入力時は赤文字に切り替え OKボタンはグレーアウトにする ぐらいの実装は、 …

全ての寸法に番号バルーンを付ける5

こちらの続きです。 全ての寸法に番号バルーンを付ける4 - C#ATIA大して進んでいませんが、嫌いなのですがフォーム作ります。 頑張っても綺麗にならないと思っているのですが、 こちらで説明されているフッターのアイデアはお借りました。 VBA 見栄えの良い…

VBAをVSCodeで開発

VBA

VBAをVSCodeで開発したくありませんか?僕はしたいです。検索すると幾らかヒットします。 一つは、いげ太さんが公開した "vbac.wsf" を使う方法。 もう一つは、VSCodeの拡張 "XVBA" を使う方法。ExcelでXVBAを試しましたが、すごいですね。マクロの実行が 出…

全ての寸法に番号バルーンを付ける4

こちらの続きです。 全ての寸法に番号バルーンを付ける3 - C#ATIAもう一つ、大きな機能を追加したかったので実装しました。 実務としては、バルーンを配置して図面を作成するだけではなく、 このバルーンの番号と寸法をExcelに書き出しています。 想像通り、…

小数点以下の桁数を取得する

VBAです。ちょっと検索したのですが、小数点以下の桁数を取得する簡単な方法が あるのかどうかイマイチ分かりませんでした。 目的はRoundさせる際の引数として渡したいだけなのですが・・・。 (Roundで良いのかどうかは別のお話ですが、今回はRoundで)結果…

全ての寸法に番号バルーンを付ける3

こちらの続きです。 全ての寸法に番号バルーンを付ける2 - C#ATIA 時間がかかりましたね・・・。前回の物を実行するとこんな感じです。 確かに寸法上にバルーンが配置されています。 しかし、バルーンのテキスト部分が、全て同じような右上方向ですよね? こ…

VBAの静的クラス

こちらの続きです。 2次元のバウンダリボックス - C#ATIA前回のものとこちら2つも含め、githubで公開しました。 2次元の点オブジェクト - C#ATIA 2次元のベクトルオブジェクト - C#ATIAGitHub - kantoku-code/CATIA_V5_Geometry_used_for_balloon_adjustment…

2次元のバウンダリボックス

こちらの続きです。 2次元のベクトルオブジェクト - C#ATIA最後に欲しかったバウンダリボックスです。 'vba BBox2D.cls Option Explicit Private points_ As Variant Private center_ As Pnt2D Private Sub Class_Initialize() points_ = Empty End Sub Priv…

ビューの名前変更をツリー上でも即反映する

こちらのサンプルを実行しても、ツリーのビュー名が変更されない とコメント頂きました。 カレントビューの角度や生成スタイルの取得2 - C#ATIA実際に試した所、ビュー名をテキストは変更が反映されていますが、 ツリー上のビュー名は反映されていませんでし…

選択したボディのエッジの両端点座標の取得

CATIA V5です。選択したボディのエッジの両端点座標をメッセージボックスで 表示させるサンプルです。 'vba Option Explicit Sub CATMain() '選択 Dim selElm As SelectedElement Set selElm = select_element("select edge", Array("Edge")) '両端点相当の…

2次元のベクトルオブジェクト

こちらの続きです。 2次元の点オブジェクト - C#ATIA引き続きベクトルオブジェクトです。 機能的にかなり不足していますが、とりあえず使いたい用途では これで十分な気がします。クラスモジュールです。 'vba Vec2D.cls Option Explicit Private x_ As Doub…

2次元の点オブジェクト

こちらを進めていく上で限界を感じました。 全ての寸法に番号バルーンを付ける2 - C#ATIA座標値を配列で管理する事に混乱してきましたので、 自作の2次元の点オブジェクトのクラスを作る事に。幸い、Fusion360のAPIにPoint2Dオブジェクトがあり、 何のプロパ…

配列のDebug.Assert

CATIA V5と言うより、VBAなお話です。ちょっと行き詰まるところと申しますか、限界を感じたのでクラスを 作って対応しようと思っているところなのですが、作る以上単体テスト っぽい事を行い、安全性を確認・確保しようと思っています。ところが、これ自体で…

ビューのサイズで四角を描く

ここの所、連日CATIA V5です。 さすがに、VBAエディタにも慣れてきましたが・・・やっぱり辛い。では本題。DrawのViewのサイズを取得し絶対座標で四角を描きます。 もちろん四角を描くのが目的ではなく、最終的にはビューの中心を 取得したいです。 'vba Opt…

配列でベクトル演算

ちょっと先を考えてのテストです。VBAでベクトルを扱いたいのですが、それっぽいクラスが 無いんですよね・・。 他の言語の場合、手っ取り早くやりたい場合は複素数を使って 計算させているようなのですが、生憎VBAには無いです。クラスを作るべきとは重々感…