C#ATIA

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

ビューを新規に作成するだけ

え~、Drawのアクティブなシートにビューを新規に作成するだけのマクロです。
たったそれだけです・・・。

'vba addMemoView_ver0.0.1  using-'KCL0.1.0'  by Kantoku

Option Explicit

Private Const VIEWNAME = "Memo"

Sub CATMain()

    ' ドキュメントのチェック
    If Not CanExecute("DrawingDocument") Then Exit Sub
    
    ' viewチェック
    If isExistView(VIEWNAME) Then Exit Sub
    
    ' view作成
    Call initView(VIEWNAME)
    
End Sub

Private Sub initView( _
    ByVal name As String)
    
    Dim sheet As DrawingSheet
    Set sheet = CATIA.ActiveDocument.Sheets.ActiveSheet
    
    Dim vis As DrawingViews
    Set vis = sheet.views
    
    Dim vi As DrawingView
    Set vi = vis.Add(name)
    
    With vi
        .x = 0
        .y = 0
        .[Scale] = sheet.Scale
        .Activate
    End With
    
End Sub

Private Function isExistView( _
    ByVal name As String) _
    As Boolean

    isExistView = True
    
    Dim vis As DrawingViews
    Set vis = CATIA.ActiveDocument.Sheets.ActiveSheet.views
    
    Dim vi As DrawingView
    For Each vi In vis
        If vi.name = name Then
            MsgBox "view [" & name & "] は存在しています!"
            Exit Function
        End If
    Next
        
    isExistView = False
    
End Function

毎回必ず! って程ではないのですが、かなり高確率で作成する
特定の名前のビューがあり、毎回手動で作成するのが面倒なので
マクロにしました。

・VIEWNAMEで指定した名称のビューを、MainViewの原点と一致するように
 作成します。
・同一のビューが既にある場合は、警告を発して作成しません。
・作成するビューはアクティブシートのスケーリングと一致させています。

何らかの作業用のDrawファイルでも用意しておいてコピペでも
良かったんですけどね・・・。