Autodesk Inventor API. Первые шаги/Рабочая геометрия: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 2279:
 
 
=== Управление видимостью рабочихрабочей плоскостейгеометрии ===
 
Видимость объекта рабочей плоскостигеометрии управляется ееего свойством <tt>Visible</tt>. Это логическая переменная, она может принимать всего два значения: True (видимость включена) и False (видимость отключена).
Видимость рабочей плоскости управляется ее свойством <tt>Visible</tt>. Это логическая переменная, она может принимать всего два значения: True (видимость включена) и False (видимость отключена).
 
У конструкционных рабочих плоскостей, осей и точек это свойство всегда равно False, и менять его бессмысленно, т.к. они невидимы по определению. ТакиеУ плоскоститаких можнообъектов идентифицировать по свойствусвойство <tt>Construction</tt> имеет значение True.
 
 
Программный пример гасит все рабочие плоскости в активном документе, за исключением самой последней из созданных пользователем.
 
 
 
<pre>
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Строка 2318 ⟶ 2314 :
End Sub
</pre>
 
 
Возможно также выполнять команды управления видимостью рабочей геометрии, эмулируя действия пользователя (меню Вид → Видимость объектов). В следующем примере функционал CommandManager использован, чтобы "погасить" в модели все рабочие плоскости.
 
<pre>
Sub HideAllWorkPlanes()
 
'Ссылка на команду управления видимостью рабочих плоскостей
' "Object Visibility -> All Workfeatures"
Dim oCtrlDef As ButtonDefinition
Set oCtrlDef = ThisApplication.CommandManager. _
ControlDefinitions.Item("AppUserWorkPlanesVisibilityCmd")
'Если "галочка" стоит, т.е. видимость включена, погасить плоскости.
If oCtrlDef.Pressed Then
oCtrlDef.Execute
End If
 
End Sub '~~~ HideAllWorkFeatures ~~~</pre>
 
Имя команды задается объекту CommandManager в явном виде.
 
Вот сводка имен команд управления видимостью объектов рабочей геометрии:
 
* "AppUserWorkPointsVisibilityCmd" — для рабочих точек.
* "AppUserWorkAxesVisibilityCmd" — для рабочих осей.
* "AppUserWorkPlanesVisibilityCmd" — для рабочих плоскостей.
* "AppAllWorkfeaturesCmd" — для всей рабочей геометрии.
 
 
Чтобы выяснить эти загадочные внутренние имена команд, следует вывести в текстовый файл внутреннее имя каждого элемента коллекции CommandManager.ControlDefinitions.
 
Это можно сделать, например, так.
<pre>
Sub ВСЕ_КОМАНДЫ_ИНВЕНТОРА()
 
Dim oCmdDefinitions As ControlDefinitions
Set oCmdDefinitions = ThisApplication.CommandManager.ControlDefinitions
Dim oCtrlDef As ControlDefinition
Open "c:\CMD_2.txt" For Output As #1
Write #1, "Всего команд: ", oCmdDefinitions.Count
For Each oCtrlDef In oCmdDefinitions
Write #1, oCtrlDef.InternalName
Next
Close #1
End Sub
</pre>
Всего их свыше двух тысяч.