C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

カレントビューの角度や生成スタイルの取得

「ビューの角度や生成スタイルの変更」について、御質問頂きました。

変更についてのサンプルコードは書きにくいため、カレントビュー情報を
幾つか表示するサンプルコードを作ってみました。

Sub CATMain()
    
    Dim msg As String
    Dim pi As Double: pi = 4 * Atn(1)
    
    'ドキュメント
    Dim dwDoc As DrawingDocument
    Set dwDoc = CATIA.ActiveDocument
    
    'カレントビュー : 名前の変更はnameプロパティに代入
    Dim actVi As DrawingView
    Set actVi = dwDoc.Sheets.ActiveSheet.views.ActiveView
    msg = "ビュー名 : " & actVi.Name
    
    '角度 : 変更はangleプロパティに代入(単位ラジアンで!)
    msg = msg & vbCrLf & _
        "角度 : " & Round(actVi.angle * (180 / pi), 3) & "deg"
    
    'スケール : 変更はscaleプロパティに代入
    msg = msg & vbCrLf & _
        "スケール : " & actVi.Scale
    
    'スタイル : 変更は、恐らくSetGPSNameメソッド
    Dim behv As DrawingViewGenerativeBehavior
    Set behv = actVi.GenerativeBehavior
    msg = msg & vbCrLf & _
        "スタイル(のファイル名) : " & behv.GetGPSName
    
    '参照している3Dドキュメント : 変更は、下記にサンプルコード有り
    'http://kantoku.hatenablog.com/entry/2018/12/19/183339
    msg = msg & vbCrLf & _
        "参照ドキュメント : " & behv.Document.Parent.FullName
    
    
    MsgBox msg, , "** カレントビュー情報 **"
    
End Sub

※例外処理を省いている為、3Dとリンクしていないビューで実行すると
エラーになると思います。
他にも、断面や詳細図のビューの場合、どのビューを元に作成されたか?
の取得も可能です。

実行するとこんな感じです。
f:id:kandennti:20190522190026p:plain

念のためですが、ビュー名の変更はNameプロパティに代入で良いのですが
f:id:kandennti:20190522190117p:plain
IDやSuffixが関係してくると、もうちょっとややこしいです。


自分の場合も、特定の客先向けで
・PartとDrawファイル名が一致しているか?
・ファイル名がルールに基づいた名称となっているか?
・生成スタイルが適切か?
等の細々したチェック(箇条書き出来る様な内容のもの)は、マクロで行っています。
(面倒なので)