読者です 読者をやめる 読者になる 読者になる

C#ATIA

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

曲線と戦ってみる2

こちらの続きです。 曲線と戦ってみる1 - C#ATIA 最後にどなたかは忘れてしまいましたが、「このようにすれば、 もっと良いんじゃない?」と言うコードです。 'vbs - Type3 Option Explicit Dim CATIA Dim icd(500, 2), pnt_onCrv(500) Dim icd1(2), icd2(2), …

曲線と戦ってみる1

タイトルを付けたもののゴールを決めていない為、どんな結果になるのか? 何にたどり着くのか? 自分でもわかっていません。かなり以前の話ですが、"Unofficial CATIA User Forum" で、 y4yamaさんが三次元曲線の円弧近似マクロを公開してくれていました。 手元にコード…

RefreshDisplay

「マクロで面を作成し、確認を求める為メッセージボックスをさせた際 画面上に面が表示されない」 との質問を頂きました。(言葉ではわかりにくいのですが)実はこの現象、最初は再現できなかったです。 まず、マクロ側の手間を省きたかった為、形状セットを作成し XY平面上にス…

ProductTree の リオーダー

今日までは暇なので、こちらの動画を見ていました。 www.youtube.com Productのリオーダーをマクロでどうやるのか知らなかったのですが、 動画に表示されているコードを見ると、単にカット&ペーストで処理するだけ なんですね。(動画のReorder_Tree関数部分)単純にTreeを逆…

シルエット(事前選択+CATIA.StartCommand)

こちらの続きです。 マクロの活用例?2 - C#ATIA動画の最初の20秒ぐらいまでの処理を真似てみました。 'VBA シルエット-スプリットテスト Private Const SilhouetteCommand = "シルエット" Sub CATMain() 'Body Dim BaseBody As Body Set BaseBody = SelectItem("Bodyを選択し…

マクロの活用例?2

こちらの続きっぽい感じです。 マクロの活用例? - C#ATIA 少し時間が出来たので、この方の動画を見ていました。 Tere Padayhag - YouTube 僕のマクロとは桁違いにパワフルです。 よく見ると、日本語表示されている動画もあります。 (ファソテックさん辺りの女性…

形状セット内の線の長さをExcelシートに出力する

こちらの続きです。 形状セット内の線の長さを表示する - C#ATIA 前回の結果を「Excelのシートに出力したい」と言うことなので コードを変更しました。 'vba GetCurvesLength_ToExcel Sub CATMain() '選択 Dim Msg$: Msg = "形状セットを選択して下さい" Dim SelItem As…

選択セットを利用する

普段選択セットを利用しないのですが、何となくマクロで操作できるものか 調べてみました。 無いんですよね、サンプルが。SelectionSetsクラスが存在しているのは判るのですが、どうやって取得 すれば良いのか全く不明だったのですが、こちらに記載されていました。 COE …

形状セット内の線の長さを表示する

「形状セット内の、線のみの長さを取得したい」と言う質問を頂きました。 早速コードです。(「選択」部分付近のコードが正しくなかった為、修正しました) 'vba GetCurvesLength Sub CATMain() '選択 Dim Msg$: Msg = "形状セットを選択して下さい" Dim SelItem As Sele…

ライセンスの無いコマンドを使用する

"Unofficial CATIA User Forum" の常連さんの所で記載した際、 既にご存知の方も居たのですが、ちょっぴりグレーなネタです。 将来的には、ひょっとしたら今回の分は削除するかもしれません。ライセンスが無くワークベンチ自体が利用できないものについては、ムリだと 思うの…

CATIAで3次ベジェ曲線が描けたよ

何となく?こちらの続きです。 CATIAでベジェ曲線(2次・3次)を描きたい - C#ATIA 以前、「R2013のGSDの新コマンド "方程式の曲線を定義" で、ベジェ曲線が 描けないかな? でも、コマンドの使い方がわからないなぁ」 のような事を書いたのですが、やっぱり描けたので…

CATIA V5 FreeなViewer2

こちらの続きです。 CATIA V5 FreeなViewer - C#ATIA もう一個だけ見つけました。 ○A360 Viewer A360 Viewer | Free Online File Viewer | Autodesk こちらは本当にビューワです。 要登録です。 2Dファイルも対応して いるのですがやっぱり、CATDrawingファイルは見れな…

今更ながら、ボディからMinimumBoxを作成する(Sketch&Pad)

少し前にMinimumBoxで検索された方がいらっしゃったので マクロ版として作ってみました。 "Unofficial CATIA User Forum" でここなさんがパワーコピーの サンプルとしてUpされていましたし、確かy4yamaさんがマクロ版として Upしていました。(中身は見なかったです・・・)折…

スケッチをクローズする

スケッチのマクロはあまり見かけないのですが、スケッチャーに入るところから 抜けるまでの操作をすれば、記録が取れます。 但し、スケッチのマクロを開発する際に困る事があります。 SketchクラスのOpenEdition関数からCloseEdition関数まで処理が 出来ていれば問題ないのですが、エ…

2つのサーフェス郡の最短距離を取得する

個人的にはGWまでに完成出来たつもりなのですが、世間はGWですね・・・。 タイトルが異なりますが、内容的には前回の続きです。 技術的なオブジェクト?1 - C#ATIA 最近得た知識から、思い付いたサンプルが出来ました。 同一Partファイル内の、異なる形状セットのサーフェス郡の最短…

技術的なオブジェクト?1

最近になりイロイロと調べていたら、Productクラスの GetTechnologicalObject関数にたどり着きました。 この関数は使った事が無く、存在も知りませんでした。GetTechnologicalObject関数の引数はString型(文字列)なのですが、 引数String型の場合、何を渡したら良い…

D&DでIgesファイルを変換する(オマケ付き)

バッチモード起動を利用したマクロが完成しました。 IgesファイルをD&Dすることで、レイヤー毎の形状セットに分かれた状態で CATPartファイルに変換します。 要はこちらのマクロを組み込んだものです。 レイヤーの扱いを考える5 - C#ATIA コードが少し長くなった為、こちらにUpしました…

やっぱりスケッチ サポートを変更は出来ないと思う

また、よく読んでなかったので気が付いたのですが、これ。 How to use the StartCommand method | CATIA V5 Automation "CATIA.StartCommand" についての記載なのですが、 サンプルコードをよく見ると、二番目の事例が "スケッチサポートの変更" に なっているじゃないで…

Viewpoint3Dで表示を動かす

こちらのマクロを視野に入れて、カメラ関係のテストをしてみました。 Productの構成要素の表示/非表示 - C#ATIA カメラ関係の処理をやった事が無いので。テストをしているうちにアニメーションっぽい事が出来そうな気が してきたので、そんなサンプルになりました。 'vba Private Decl…

外部のマクロを実行する3

こちらの続きです。 外部のマクロを実行する2 - C#ATIA 外部のマクロを実行する方法がもう一つありました。 同じSystemServiceクラスのEvaluate関数です。 AutomationManualの感じから、 「ソースコードの文字列を、マクロとして実行する」 ようで、サンプルが記載されており、そ…

外部のマクロを実行する2

こちらの続きです。 外部のマクロを実行する1 - C#ATIA 前回はCATVBAからCATScriptを呼び出す処理でしたが、 今度はCATVBAからCATVBAを呼び出します。まず、「C:\temp」フォルダにVBAプロジェクトのライブラリ 「Outside_Macro_Test1」を作りモジュール名「AddHBody」 のモジュール…

外部のマクロを実行する1

VBAから外部のプログラムを起動して、処理したいことが偶にあります。 Excelであればこんな感じです。 他アプリを起動する:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug 過去にブログに記載したものでも、実際にWscript.Shellを使いました。 (GetLinkR…

スイープコマンドのロー

バッチモードで何か実益の有るものを作りたいのですが、 思うように出来ていないため、気分転換に別のことを。こちらに「ロー」について触れたのですが CATIA V5 の サーフェステキスト - C#ATIA 「ロー」って使ってますか? 僕は業務では1・2回ぐらいしか 使って事ありません…

起動中のCATIAから環境設定パスを取得

内容的にはこちらの続きです。 バッチモードでCATScriptを実行する - C#ATIA 前回はバッチモード起動の際のパラメータがよく分らず、ショートカットから 拾い出しましたが、マクロから環境設定パスを取得できないか 試してみました。念の為、環境設定とは 「Environment Editer XXXX…

InternalNameテスト

内容的にはショボイのですが、実績が少ないのでInternalNameの テストを行いました。まずはこんな感じのデータを作りました。 点を5個作成しただけです。 続いてこんなコードを作成し実行します。 'vba Sub InternalName_Test() Dim Doc As PartDocument Set Doc = CAT…

ユーザーサイドのCATIA 関連サイト4

こちらの続きです。 ユーザーサイドのCATIA 関連サイト3 - C#ATIA ○Inoffiziellen CATIA Hilfeseite(海外) Inoffizielle Catia Hilfeseite 前々回紹介した "Foren auf CAD.de" の常連さんが個人で 集約したサイトのようです。 「Catia FAQ」-「Programmierung」の…

バッチモードでCATScriptを実行する

以前、ユーザーサイドのCATIA 関連サイトとして紹介した "CATIA V5 Automation" のこちらの記載ですが、 Executing CATIA scripts in batch mode | CATIA V5 Automationよく読んでいませんでした。 要は "CATIAをバッチモードで起動して、マクロの処理をするとビックリする程速…

選択要素からドキュメントを取得する

こちらの続きで応用です。 座標系からXY,YZ,ZXの各平面のリファレンスを取得2(InternalName) - C#ATIAこちらにも、ちょっと関係してます。 ProductからPartDocumentを取得する - C#ATIA InternalName関数は、ModelElement型から提供されているのが わかるのですが…

座標系からXY,YZ,ZXの各平面のリファレンスを取得2(InternalName)

こちらの続きです。 座標系からXY,YZ,ZXの各平面のリファレンスを取得 - C#ATIA形状セット内の座標系の場合、前回のサンプルではNGでした。 NGだった理由は2点有ります。 ・ParentプロパティがNothingで、追いかけられない。 ・BrepNameを何と指定して良いのか、わからない…

Productの構成要素の表示/非表示

本音を書くと、僕の場合Productファイルは単にPartファイルをぶら下げる ぐらいにしか使っていないので、解釈違いの可能性が高いので 指摘していただけると、こちらも勉強になります。文面からして、まずこんな状態になっているのだろうと思います。 そこから "TopAs…

CreateSetOfParameters関数の使い道がわからない

以前、こちらのブログを見て "こんな事できるんだ" と思いました。 How to Create a Parametric Set inside a Geometrical Set - VB Scripting for CATIA V5 そのままコピペでは動かなかったのと、不要な部分を コメント化しました。 'vba Sub CATMain() Set oDoc …

座標系からXY,YZ,ZXの各平面のリファレンスを取得

座標系からXY,YZ,ZXの各平面のリファレンスを取得する場合、 座標系の作り方によっては、上手く取得出来たり出来なかったり します。例えば、XYZ軸を全て指定している場合 は、 X(Y,Z)AxisDirection(Referenceオブジェクト)が取得できています。僕が結構やってしまう、…

指定した型のParentを取得する

以前から "ちょっと欲しいなぁ" と思っていた関数が何となく 出来上がりました。 個人的にはC#のジェネリックがイメージです。コードはこちら 'vba 'T型のParent取得 Function GetParent_Of_T(ByVal AnyOj As AnyObject, ByVal T$) As AnyObject If TypeName(AnyOj) = …

CATVBAの標準モジュールをマクロで削除したい (希望)

マクロの記録を取っていると、直ぐに標準モジュールが山の様に 出来上がってしまいます。手動で削除する際も、まとめて削除できないですし、イチイチ メッセージが出てくるので、手間が倍増。 マクロで削除出来ないかな? と思うのですが・・・。Excelなどの場合は、こちらのサイ…

ボディ - ボディ の最短距離の測定3

こちらの続きです。 ボディ - ボディ の最短距離の測定2 - C#ATIAもう一つの測定方法です。 スペース アナリシス ワークベンチ を利用する方法 こちらの方法では、表面積や体積・重心等も取得できる為 測定に関するコマンドに近い感覚です。 海外のサイトを見ても、わりと "上手く…

ボディ - ボディ の最短距離の測定2

こちらの続きです。 ボディ - ボディ の最短距離の測定1 - C#ATIA 本当はもう一つの方法を書こうと思っていたのですが、 上手く行かないパターンがあるので、そちらを解決したいです。わかりやすいよう、前回のボディにそれぞれに色を付け、事前に "2要素間の測定"…

CATIA V5 の サーフェステキスト

NCネットワークさんの技術の森にも出ていたのですが、 CATIA V5 の サーフェステキスト を探している方がいらっしゃるようなので。 キートスさんのテキストはすばらしいのですが、サーフェス操作は全く入って いなかった記憶です。で、こちらのPDFの "STEP4 サーフェスで部品を作る" …

ボディ - ボディ の最短距離の測定1

2要素間の測定をマクロで知りたい場合は、結構あるのではないかと思うの ですが、"2要素間の測定" コマンドはマクロの記録が取れません。 "Unofficial CATIA User Forum"には、サンプルが有ったのですが、 無くなってしまった為、記載しておこうかと思います。僕が知る限…

Formの内容を、DrawTableに反映する2

こちらで頂いた質問の続きです。 Formの内容を、DrawTableに反映する - C#ATIA「テーブルに反映する際、同一のセル内で改行した状態にしたい」 と言う風に解釈しました。 前回のコードのChangedCheckBox関数のみを変更します。 (テキストボックスが変更されても呼び出され…

Sirenテスト-offset

こちらのOffsetモジュール続きです。 Sirenテスト-sweep_vec,sweep_path,loft - C#ATIAリファレンスマニュアルを見ると、残りはoffset関数だけなのですが、 ソースコードではそれ以外のものも入っていた為、テストしてみました。 #SirenScript expName = "/SirenTest" $expIges = AR…

Sirenテスト-sweep_vec,sweep_path,loft

こちらの続きで、引き続き思い付くままにテストです。 Sirenテスト-BndBox - C#ATIAFillerクラス以外で曲面が作成できそうなOffsetモジュールの 一部をテストしてみました。 #SirenScript expName = "/SirenTest" $expIges = ARGV[0] + expName + ".igs" $expBrep = ARGV[…

Sirenテスト-BndBox

こちらの続きで、引き続きテストです。 Sirenテスト-Filler - C#ATIA 以前、CATIAで "周辺部品からクリアランスを設けた状態で、一定以上の体積を確保した Bodyがマクロ等を利用し自動で作れないか? 周辺部品は、CATIA以外のIges等のデータも含まれている" と言ったような…

Formの内容を、DrawTableに反映する

"CheckBoxにチェックの入った、TextBoxの文字のみを繋げて表示した" と言うご質問を頂きました。 ひょっとしたら、僕の解釈が間違っているかもしれないので、 その際は指摘してください。Formの内容をブログではちょっと扱いにくいのですが・・・。 (コードでFormを…

Sirenテスト-Filler

こちらの続きです。 Sirenテスト-sewing,fix - C#ATIA自由曲面が作成出来そうな、Fillerクラスがあります。 点・線・平面は、Buildモジュールで生成出来るのですが、 自由曲面はFillerクラスのインスタンスに境界やサポートを突っ込んで .Build → .face で受け取るみたいです。 …

Sirenテスト-sewing,fix

こちらの続きです。 Sirenテスト-polyline - C#ATIA CATIAの接合コマンドのような感じかと思い、Buildモジュールの sewingをテスト。 隣合った、曲率一致する複数の面が、 一枚になるのかな? #SirenScript expFileName = ARGV[0] + "/shape.igs" expDunp = ARGV[0] + …

Sirenテスト-polyline

こちらの続きです。 Sirenテスト-polygon - C#ATIA順番が逆のような気がしますが、チマチマ直線を作るのが面倒なので、 折れ線を作りたいなぁ と思ったら、Buildモジュール内に "polyline" が 有ったので試しました。Ruby(正しくはmruby)の書き方がイマイチわかっていな…

Sirenテスト-polygon

SirenScriptをテストしやすいように、こんな感じの VBScriptを作ってみました。 (本来、公式サイトで記載されているように環境変数でパスを 通しておけば良いのですが・・・。) 'vbs SirenTestStart.vbs Language = "VBSCRIPT" '*** setting *** 'siren.exeファイ…

ライセンス無しでSTLをCATIAに取り込む2

sirenを利用した、点を作成するマクロをちょっとだけ変更しました。 こちらの続きでもあります。 ライセンス無しでSTLをCATIAに取り込む - C#ATIA sirenではSTLのインポートも対応していたので、それを利用しCATIAに サーフェスをして取り込みます。 (念の為ですが、リファレンスマニュ…

sirenを利用し、点を作成してみる

最近 "siren" と言うすばらしいソフトを見つけました。 siren | Official web site 本当は数年前に、OpenCASCADEを簡単に利用できるものが ないか? と探していた際に見つけたのですが、その頃は ビュアーのような感じのものでした。 (現在はsiren.NETと言う名称に…

ユーザーサイドのCATIA 関連サイト3

こちらの続きのつもりです。 ユーザーサイドのCATIA 関連サイト2 - C#ATIA ユーザーサイドでも無い、CATIAでも無い サイトばかりでタイトル詐欺 ですが、ほぼ個人的なメモ書きです。○PLM Tips Magazine PLM Tips Magazine | CAD CAM CAE に関する Tips マガジンです 株式会社…