C#ATIA

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

PartからDrawを作成する

CATIA V5です。
ちょっと勘違いしたのですが、作ってしまったので
残しておく事にします。

アクティブなPartからDrawを作るだけです。

'vba using-'KCL0.12'

Option Explicit

Sub CATMain()

    'ドキュメントのチェック
    If Not KCL.CanExecute("PartDocument") Then
        Exit Sub
    End If
    
    Dim partDoc As PartDocument
    Set partDoc = CATIA.ActiveDocument
    
    Dim drawDoc As DrawingDocument
    Set drawDoc = initDrawDoc
    
    Call initFrontView(drawDoc, partDoc)
    
End Sub

Private Function initFrontView( _
    ByVal doc As DrawingDocument, _
    ByVal targetPartDoc As PartDocument) _
    As DrawingView
    
    Dim sheet As DrawingSheet
    Set sheet = doc.Sheets.Item(1)

    Dim views As DrawingViews
    Set views = sheet.views

    Dim frontView As DrawingView
    Set frontView = views.Add("AutomaticNaming")

    Dim viewBehavior As DrawingViewGenerativeBehavior
    Set viewBehavior = frontView.GenerativeBehavior

    Dim prod As Product
    Set prod = targetPartDoc.Product

    viewBehavior.Document = prod
    viewBehavior.DefineFrontView 1#, 0#, 0#, 0#, 1#, 0#

    viewBehavior.Update
    
    Set initFrontView = frontView
    
End Function

Private Function initDrawDoc() _
    As DrawingDocument

    Dim docs As Documents
    Set docs = CATIA.Documents
    
    Dim drawDoc As DrawingDocument
    Set drawDoc = docs.Add("Drawing")
    
    Set initDrawDoc = drawDoc

End Function

左をアクティブにしておき、マクロを実行すると右を勝手に
作ります。

マクロの記録し、ちょっと整えただけです・・・。
本当はここから先を勝負しようと思っていたのですが、
上手く行きそうになかったので、諦めました。