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

ADN Club => Inventor API => Тема начата: glebShev от 08-04-2021, 00:44:32

Название: Изменение исполнения параметрической модели, C#
Отправлено: glebShev от 08-04-2021, 00:44:32
Всем доброго времени суток! Я пишу плагин, осуществляющий параметрическю сборку.
Ниже представлен код вставки параметрической детали в сборку.
Код - C# [Выбрать]
  1.  string proc = "C:/Users/mrily/OneDrive/Рабочий стол/Диплом/28919 прокладка.ipt";
  2.             ThisApplication.CommandManager.PostPrivateEvent(Inventor.PrivateEventTypeEnum.kFileNameEvent, proc);
  3.             ComponentOccurrence Model_proc = oAssDoc.ComponentDefinition.Occurrences.Add(proc, oPositionMatrix);
  4.             Inventor.ControlDefinition ctrlDeffff = ThisApplication.CommandManager.ControlDefinitions["AssemblyPlaceComponentCmd"];
  5.             ctrlDefff.Execute();
  6.  
У меня получилось менять исполнение у параметрической детали открытой отдельным файлом.
Код - C# [Выбрать]
  1. PartDocument PartDoc = ThisApplication.ActiveDocument as Inventor.PartDocument;
  2. PartComponentDefinition PartCompDef;
  3. PartCompDef = PartDoc.ComponentDefinition as PartComponentDefinition;
  4. Parameters Params = PartCompDef.Parameters;
  5.  
  6. iPartFactory partFactory = PartCompDef.iPartFactory;
  7. public void changeIsp(iPartFactory partFactory, string nameIsp)
  8. {
  9. iPartTableRows rows = partFactory.TableRows;
  10. Console.WriteLine("iPart");
  11. foreach (iPartTableRow row in rows)
  12. {
  13. if (row[1].Value == nameIsp)
  14. {
  15. partFactory.DefaultRow = row;
  16. }
  17. Console.WriteLine(row[1].Value);
  18. }
  19. Console.WriteLine("iPart end");
  20. }
  21.  
Но не получается обратиться к детали в  файле сборки. Кто-нибудь знает как можно менять исполнение параметрической детали в сборе?
Название: Re: Изменение исполнения параметрической модели, C#
Отправлено: mikazakov от 08-04-2021, 04:53:29
AssemblyComponentDefinition.Occurrences(1).ChangeRowOfiPartMember( NewRow As Variant, [CustomInput] As Variant )
Название: Re: Изменение исполнения параметрической модели, C#
Отправлено: glebShev от 09-04-2021, 00:48:22
Что значит единица в Occurrences(1)? При такой записи выдается ошибка о том, что данный член не может использоваться как метод.
И как в таком случае обратиться к модели?
Название: Re: Изменение исполнения параметрической модели, C#
Отправлено: Александр Ривилис от 09-04-2021, 00:55:17
glebShev,
Так как это C#, то вместо круглых скобок используй квадратные.
Название: Re: Изменение исполнения параметрической модели, C#
Отправлено: mikazakov от 09-04-2021, 05:08:13
Что значит единица в Occurrences(1)? При такой записи выдается ошибка о том, что данный член не может использоваться как метод.
И как в таком случае обратиться к модели?
Я же просто путь по объектной модели написал.  Occurrences(1) -это первый компонент в коллекции компонентов в сборке, в вашем случае это индекс не обязательно равен единице, там должен быть номер вашего иПарта.
Более менее опытный программист меня бы понял, если совсем не понятно, я могу макрос сделать с простеньким примером.
Название: Re: Изменение исполнения параметрической модели, C#
Отправлено: glebShev от 09-04-2021, 23:54:08
Разобрался, спасибо!