C#ATIA

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

2016-04-01から1ヶ月間の記事一覧

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 関連サイト5

こちらの続きです。 ユーザーサイドのCATIA 関連サイト4 - 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) = …