기본 콘텐츠로 건너뛰기

CreateViewFrom3D

Option Explicit

Sub CATMain()
   
    Dim oDoc
    Set oDoc = CATIA.Documents
   
    Dim oDrawingDoc As DrawingDocument
    On Error Resume Next
    Err.Clear
    Set oDrawingDoc = CATIA.Documents.Item("Drawing1.CATDrawing")
    If Err.Number <> 0 Then
        Set oDrawingDoc = oDoc.Add("Drawing")
    End If
   
    Dim windows1 As Windows
    Dim specsAndGeomWindow1 As SpecsAndGeomWindow
    Dim specsAndGeomWindow2 As SpecsAndGeomWindow
   
    Set windows1 = CATIA.Windows
    Set specsAndGeomWindow1 = windows1.Item(1)
    Set specsAndGeomWindow2 = windows1.Item("Drawing1")
   
    Dim oDSheets As DrawingSheets
    Set oDSheets = oDrawingDoc.Sheets
   
    Dim oDSheet As DrawingSheet
    Set oDSheet = oDSheets.Item("Sheet.1")
   
   
    Dim oDViews As DrawingViews
    Set oDViews = oDSheet.Views
   
    Dim oStr() As String
    ReDim oStr(2)
    oStr(0) = "RS": oStr(1) = "RR": oStr(2) = "PL"
   
    Dim i
    For i = 0 To 2
        Dim oDView As DrawingView
        Set oDView = oDViews.Add(oStr(i))
    Next
    specsAndGeomWindow1.Activate

    Dim documents1 As Documents
    Set documents1 = CATIA.Documents
   
    Dim partDocument1 As PartDocument
    Set partDocument1 = documents1.Item(specsAndGeomWindow1.Name & ".CATPart")
   
    Dim product1 As Product
    Set product1 = partDocument1.GetItem(Left(partDocument1.Name, InStr(partDocument1.Name, ".") - 1))
   
    specsAndGeomWindow2.Activate
   
    Dim vX1(), vY1(), vZ1()
    Dim vX2(), vY2(), vZ2()
    ReDim vX1(2), vY1(2), vZ1(2)
    ReDim vX2(2), vY2(2), vZ2(2)
   
    vX1(0) = 1: vY1(0) = 0: vZ1(0) = 0: vX2(0) = 0: vY2(0) = 0: vZ2(0) = 1
    vX1(1) = 0: vY1(1) = -1: vZ1(1) = 0: vX2(1) = 0: vY2(1) = 0: vZ2(1) = 1
    vX1(2) = -1: vY1(2) = 0: vZ1(2) = 0: vX2(2) = 0: vY2(2) = 1: vZ2(2) = 0
   
    For i = 0 To 2
        Set oDView = oDViews.Item(oStr(i))
       
        Dim oDViewGB As DrawingViewGenerativeBehavior
        Set oDViewGB = oDView.GenerativeBehavior

        oDViewGB.Document = product1
        oDViewGB.DefineIsometricView vX1(i), vY1(i), vZ1(i), vX2(i), vY2(i), vZ2(i)
       
        oDView.X = 300
        oDView.Y = 150
        oDViewGB.Update
    Next
   
End Sub

댓글

이 블로그의 인기 게시물

CATIA VBAとは

私も素人なので詳しくわかっているのはないけれども 今一ヶ月前から仕事を始めました。 普通VBAといえばEXCELの方を考える人が一般的だと思います。 VBAはVisual Basic Applicationの訳語で、 Microsoft社が作った言語です。 主にマクロ作りに使用されていて、今の私がしている仕事もそうです。 CATIA側でVBAを使う人があんまりなさそうで、 ネットにも資料が少なかったです。 それでぐぐりながら、CATIA VBA Referenceを参照しながらコーディングをしました。 初心者に見てほしいのはCATIA VBA ReferenceとCATIAの中にあるCATIA VBA HELP、最後にマクロ記録機能です。 この三つを見ながら、しながら作業をすればもっと理解しやすいじゃないかと思います。 まずはCATIA VBA Referenceですが、GOOGLEでそのまま検索すれば出ます。 リンクは http://catiadoc.free.fr/online/interfaces/main.htm です。 こちらでCATIA VBAで使われるオブジェクトとかオブジェクトが持っている関数とかが分かります。 多分VBAはどこから開くのかわかっているとは思うんですが、ツールタブで確認できます。 そして二つ目がCATIA VBA HELPです。 ここにはCATIAオブジェクトの構造とかREFERENCEサイトのように関数とオブジェクトの使い方とかパラメータについて表れています。 最後にマクロ記録機能です。 これは結構いいものですが、私が作ろうとしていることを記録を実行してシミュレーションすればコードが自動で作られます。 これを利用してCATIAのある機能についてAPIがあるかどうか確認もできますし、早くコードを作るのに役に立ちます。 一応ここまでに..‼ 明日出社しなきゃ。。 最初にも言いましたけど、私は素人なので間違った部分が多いかもしれません。 気づきの点がありましたらいつでもどうぞ!