Вариант 1.
Работаем в сборке, выделяем рабочую плоскость, нужно инвертировать ее видимость.
Для выделения используем метод Pick с фильтром для рабочих плоскостей.
Поскольку работаем в контексте сборки, метод Pick возвращает объект
типа WorkPlaneProxy. В данном случае на наш код это практически не влияет,
поскольку у прокси-объекта присутствуют все свойства и методы родителя.
Private Sub ToggleWorkPlaneVisibility_1()
Dim oAsmDoc As AssemblyDocument
Set oAsmDoc = ThisApplication.ActiveDocument
Dim oAsmDef As AssemblyComponentDefinition
Set oAsmDef = oAsmDoc.ComponentDefinition
Dim oObj As Object
Set oObj = ThisApplication.CommandManager.Pick( _
SelectionFilterEnum.kWorkPlaneFilter, "Укажите раб. плоскость")
Dim wp As WorkPlaneProxy
Set wp = oObj
wp.Visible = Not wp.Visible
Beep
End Sub 'ToggleWorkPlaneVisibility_1
Вариант 2.
Работаем в сборке, выделяем компонент (здесь только деталь),
нужно инвертировать видимость всех рабочих плоскостей в компоненте.
В компоненте могут быть вспомогательные конструкционные рабочие плоскости.
Они создаются программно и без какой-либо визуализации.
В данном примере процедура изменения видимости игнорирует
не только конструкционные плоскости, что следует делать всегда,
но и главные плоскости системы координат (это опция).
Private Sub ToggleWorkPlaneVisibility_2()
Dim oObj As Object
Set oObj = ThisApplication.CommandManager.Pick( _
SelectionFilterEnum.kAssemblyLeafOccurrenceFilter, "Укажите компонент")
Dim oOcc As ComponentOccurrence
Set oOcc = oObj
'Фильтр kAssemblyLeafOccurrenceFilter допускает
'выделение только деталей, но не подсборок
Dim oDef As PartComponentDefinition
Set oDef = oOcc.Definition
Dim oWPlanes As WorkPlanes
Set oWPlanes = oDef.WorkPlanes
Dim wp As WorkPlane
For Each wp In oWPlanes
'игнорируем
'(a) главные плоскости системы координат,
'(b) вспомогательные конструкционные рабочие плоскости,
' у которых свойство Visible не определено.
If (Not wp.IsCoordinateSystemElement) And (Not wp.Construction) Then
'найдем прокси-плоскость wpProxy для плоскости wp
Dim wpProxy As WorkPlaneProxy
Set wpProxy = Nothing
Call oOcc.CreateGeometryProxy(wp, wpProxy)
wpProxy.Visible = Not wpProxy.Visible
End If
Next
Beep
End Sub 'ToggleWorkPlaneVisibility_2
Вариант 3.
Аналог команды Alt-] в пользовательском интерфейсе Inventor,
которая управляет видимостью рабочих плоскостей (Object Visibility).
Sub ToggleAllWorkPlaneVisibility()
'неизбирательное инвертирование видимости рабочих плоскостей
'соответствует команде в UI Инвентора Alt-]
Dim oControlDef As ControlDefinition
Set oControlDef = ThisApplication.CommandManager _
.ControlDefinitions.Item("AppUserWorkPlanesVisibilityCmd")
oControlDef.Execute
Beep
End Sub
В общем, есть из чего выбрать.