Макрос для разблокировки Views в Catia не работает - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь создать макрос для Catia V5, который автоматически разблокирует все виды и обновит их. Макрос обновляет все представления (когда они разблокированы). Проблема в том, что он разблокирует только те представления на листе, в которых я находился до запуска макроса, а затем не обновляет другие представления на других листах.

Таким образом, разблокировка видов будет работать только на листе чертежа, который у меня был активным в последний раз перед запуском макроса. Но если все мои представления разблокированы, и я запускаю макрос, он обновит все мои представления, но по какой-то причине разблокировка их, когда они заблокированы, не будет работать, как указано выше.

Sub CATMain()

Dim oDrawing As DrawingRoot
Dim oViews As DrawingViews
Dim oSheets As DrawingSheets

Set oDrawing = CATIA.ActiveDocument.DrawingRoot
Set oSheets = oDrawing.Sheets
Set oViews = oDrawing.Sheets.ActiveSheet.Views

Dim i, y As Integer

For y = 1 To oSheets.Count
    oDrawing.Sheets.Item(y).Activate
    For i = 1 To oViews.Count
        oViews.Item(i).LockStatus = False
    oDrawing.Sheets.ActiveSheet.Update
    Next
Next

End Sub

Я ожидаю, что мой макрос откроет все виды и обновит их на каждом листе чертежа.

1 Ответ

2 голосов
/ 23 апреля 2019

Я не использую Catia, но ваш код должен выглядеть следующим образом:

Sub CATMain()

    Dim oDrawing As DrawingRoot
    Dim oView As DrawingView
    Dim oSheet As DrawingSheet
    Set oDrawing = CATIA.ActiveDocument.DrawingRoot

    For Each oSheet in oDrawing.Sheets
       For Each oView in oSheet.Views
          oView.LockStatus = False
          oSheet.Update 'Not sure if required here, might be moved outside the loop?
       Next
    Next
End Sub
...