四角穴中心線(座標軸線)作成マクロ|CATIAマクロの作成方法

今回の記事は「お問い合わせ」より頂いた内容です。

今回の内容は以前作成した穴中心線(座標軸線)作成マクロの派生マクロです。
そのためコードの内容がほとんど同じなので、本ページでコード解説はほとんど行っていません。
コードの内容を理解したい方は上記マクロのページを参照下さい。

 

マクロの機能

今回作成したマクロは
『ユーザーが選択した長円エッジに対して穴中心線(座標軸線)を作成するマクロ』です。

具体的な機能は以下のとおりです。

  マクロの機能まとめ ・ユーザーに四角穴エッジ(長辺と短辺の直線エッジ)を選択させる
・選択された四角穴エッジに対して軸線を作成する
・作成した形状は全てツリー第1階層に作成する新規形状セットにまとめる

 

サンプルコード

マクロのサンプルコードは以下のとおりです。

 

コード解説

基本的には冒頭でもいったとおり穴中心線(座標軸線)作成マクロと同じような内容が多いため、共通部分は割愛しています。
 

ユーザー選択のエッジを確認

ユーザーが選択した四角穴の長辺エッジと短辺エッジが、本当に四角穴エッジなのかを確認します。

 
ここでは選択された2つのエッジが90°かつ最短距離が0の場合を四角穴エッジと認識するようにしています。

このとき取得した2つのエッジの角度「ConfAngle」最短距離「ConfDistance」はFormat関数を使って有効数字を小数点第3位となるように変換しています。

 icon-code 有効数字の変更

ConfAngle = Format(ConfAngle, “0.000”) ’角度
ConfDistance = Format(ConfDistance, “0.000”) ’最短距離

これは「Measurableオブジェクト」で取得した値がかなり細かいものとなってしまうためです。

最終的に取得した値を「If ConfAngle <> 90 Or ConfDistance <> 0 Then」で条件分岐させるのですが、取得した値が「90.0000000054」や「0.00000000013」のようにコンピュータの計算上の誤差による“微小のズレ”によってうまくいかない場合が出てきます。

この問題を解決させるためにCATIAのデフォルト設定と同じ有効数字に変換させているという訳です。

 

まとめ

今回は「四角穴中心線(座標軸線)作成マクロ」についての内容でした。
基本的には以前作成した「穴中心線(座標軸線)作成マクロ」と同じようなコードとなっています。

VBAでの形状作成は「HybridShapeFactory」(GSDの場合)を使って、ほとんど同じことの繰り返しなのでコードが長くなってもやっていること自体は単純です。今回のマクロもユーザーに2つの直線エッジを選択させ、そのエッジを使って形状作成をしているだけです。

VBAで形状作成を作成したい場合は「HybridShapeFactory」(GSDの場合)もしくは「ShapeFactory」(パートデザインの場合)さえ押さえておけば問題ありません。
  

目次へ戻る
 

icon-book CATIAマクロを本気で勉強するなら

 

CATIA, CATIAマクロ, VBA

Posted by Lic