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

ADN Club => Inventor API => Тема начата: Xenocephal от 10-11-2020, 12:26:09

Название: Создание внешнего контура сборки
Отправлено: Xenocephal от 10-11-2020, 12:26:09
Здравствуйте.

Кто-нибудь сталкивался с программным созданием внешнего контура сборки?
Может кто знает через какой объект/метод он создается.
Название: Re: Создание внешнего контура сборки
Отправлено: mikazakov от 10-11-2020, 12:34:32
Что такое "внешний контур сборки"?
Если болванку со сборки сделать, то это производный компонент тогда в помощь.
Название: Re: Создание внешнего контура сборки
Отправлено: Xenocephal от 10-11-2020, 15:12:59
mikazakov,
Благодарю за ответ, я правильно понимаю, что имеется ввиду derived assembly object?

Все получилось! Спасибо большое. Нужно было посчитать внешнюю площадь детали, поэтому делал через внешний контур.
Если кому будет нужно, код на C#:

Код - C# [Выбрать]
  1. Inventor.Application App = (Inventor.Application)Marshal.GetActiveObject("Inventor.Application");
  2. var Doc = App.ActiveDocument;
  3. //Создаем новый файл
  4. var NewDoc = (PartDocument)App.Documents.Add(
  5.     DocumentTypeEnum.kPartDocumentObject,
  6.     TemplateFileName: "", // имя шаблона
  7.     CreateVisible: false); // отображаение создания
  8. //Получаем объект настроек внешнего контура.
  9. var DerivedAssemblyDef = NewDoc
  10.     .ComponentDefinition
  11.     .ReferenceComponents
  12.     .DerivedAssemblyComponents
  13.     .CreateDefinition(Doc.FullDocumentName);
  14. //Задаем стиль.
  15. DerivedAssemblyDef.DeriveStyle = DerivedComponentStyleEnum.kDeriveAsSingleBodyNoSeams;
  16. //Заполняем параметры:
  17. //"Включить остальные объекты"
  18. DerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = DerivedComponentOptionEnum.kDerivedExcludeAll;
  19. DerivedAssemblyDef.IncludeAllTopLevelSketches = DerivedComponentOptionEnum.kDerivedExcludeAll;
  20. DerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = DerivedComponentOptionEnum.kDerivedExcludeAll;
  21. DerivedAssemblyDef.IncludeAllTopLevelParameters = DerivedComponentOptionEnum.kDerivedExcludeAll;
  22. DerivedAssemblyDef.ReducedMemoryMode = true;
  23. //"Заливка отверстий"
  24. DerivedAssemblyDef.SetHolePatchingOptions(DerivedHolePatchEnum.kDerivedPatchAll);
  25. //"Удалить элементы геометрии с учетом видимости"
  26. DerivedAssemblyDef.SetRemoveByVisibilityOptions(DerivedGeometryRemovalEnum.kDerivedRemovePartsOnly);
  27. //Создаем внешний контур.
  28. NewDoc.ComponentDefinition
  29.     .ReferenceComponents
  30.     .DerivedAssemblyComponents
  31.     .Add(DerivedAssemblyDef);
  32. //Получаем площадь внешнего контура.
  33. double area = NewDoc.ComponentDefinition
  34.     .MassProperties
  35.     .Area;
  36. NewDoc.ReleaseReference();
  37.  
Название: Re: Создание внешнего контура сборки
Отправлено: mikazakov от 10-11-2020, 18:22:49
я правильно понимаю, что имеется ввиду derived assembly object?
Да, я это имел ввиду.
Название: Re: Создание внешнего контура сборки
Отправлено: Александр Ривилис от 10-11-2020, 18:25:32
Xenocephal,
У меня в подписи написано как следует форматировать код для форума.
Название: Re: Создание внешнего контура сборки
Отправлено: Xenocephal от 10-11-2020, 19:07:48
Александр Ривилис,
Здравствуйте.
Прошу прощения, впредь буду иметь ввиду.
Спасибо, что помогли отформатировать.