Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: Shemetova от 31-01-2017, 16:06:36

Название: Производная деталь-зеркало
Отправлено: Shemetova от 31-01-2017, 16:06:36
Как определить, является ли производная деталь зеркалом?
Название: Re: Производная деталь-зеркало
Отправлено: mikazakov от 31-01-2017, 21:13:58
Как то так, иследуемая деталь должна быть открыта в отдельном окне:

Код - Visual Basic [Выбрать]
  1. Sub rrrr()
  2. Dim partDoc As PartDocument: Set partDoc = ThisApplication.ActiveDocument
  3. Dim CompDef As PartComponentDefinition: Set CompDef = partDoc.ComponentDefinition
  4. Dim DerivedComp As DerivedPartComponent: Set DerivedComp = CompDef.ReferenceComponents.DerivedPartComponents(1)
  5. Dim DerivedDef As DerivedPartDefinition: Set DerivedDef = DerivedComp.Definition
  6.  
  7. If DerivedDef.Type = kDerivedPartUniformScaleDefObject Then
  8. Dim DerivedMirorDef As DerivedPartUniformScaleDef: Set DerivedMirorDef = DerivedDef
  9.  
  10.     If DerivedMirorDef.MirrorPlane <> kDerivedPartNoMirrorPlane Then
  11.     MsgBox ("Is Miror Part")
  12.    
  13.     End If
  14.  
  15. End If
  16.  
  17. End Sub
  18.  

В  инвенторе часто встречается наследование, поэтому некоторые типы перед их окончательным приведением лучше проверять, что осуществлено в строке:
 
Код - Visual Basic [Выбрать]
  1. If DerivedDef.Type = kDerivedPartUniformScaleDefObject Then

Название: Re: Производная деталь-зеркало
Отправлено: Shemetova от 01-02-2017, 13:28:20
Спасибо. Вышеописанным способом удается определить, является ли деталь зеркальной.
Можно ли воспользоваться свойством Mirror объекта DerivedPartUniformScaleDef (описание в документации API не удалось найти)?
Название: Re: Производная деталь-зеркало
Отправлено: mikazakov от 01-02-2017, 17:00:02
Mirror объекта DerivedPartUniformScaleDef (описание в документации API не удалось найти)?
Это свойство по всей видимости с атрибутом "Hidden", поэтому его нет в хэлпе и в интелектуальной подсказке при наборе кода в VBA.
Это, скорее всего, связано с тем, что свойство является устаревшим и осталось для совместимости с давно написанным кодом. Но юзать его не рекомендуется, потому как в любой момент его могут выкинуть из API в следующей версии Инвентора.