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

ADN Club => Inventor API => Тема начата: Elfilagas от 03-06-2016, 09:11:08

Название: Вставить несколько деталей в сборку
Отправлено: Elfilagas от 03-06-2016, 09:11:08
Добрый день,
Есть блок который вставляет модель в сборку, если упрощенно - по имени файла командами:
Код - Visual Basic [Выбрать]
  1. Dim sFN As String = 'Полное имя файла
  2. InvApp.CommandManager.PostPrivateEvent(Inventor.PrivateEventTypeEnum.kFileNameEvent, sFN)
  3. InvApp.CommandManager.StartCommand(Inventor.CommandIDEnum.kPlaceComponentCommand)
Все работает, но сейчас работает так, что по 1 клику вставляется 1 модель, т.е. для каждой детали нужно указать место вставки. Есть потребность вставлять сразу много одинаковых моделей, т.е. указать количество и одним кликом вставилось нужное кол-во, можно чтобы в одну указанную точку.
Как это можно реализовать?
Название: Re: Вставить несколько деталей в сборку
Отправлено: Алексей Романов от 04-06-2016, 07:26:09
Именно через команду? А непосредственно через API нельзя? В справке есть примеры...
Название: Re: Вставить несколько деталей в сборку
Отправлено: Elfilagas от 04-06-2016, 11:11:59
Добрый день, не понял где можно примеры посмотреть?
Название: Re: Вставить несколько деталей в сборку
Отправлено: Алексей Романов от 04-06-2016, 11:21:46
В VBA Инвентора:
Код - Visual Basic [Выбрать]
  1. Public Sub AddOccurrence()
  2.     ' Set a reference to the assembly component definintion.
  3.    ' This assumes an assembly document is open.
  4.    Dim oAsmCompDef As AssemblyComponentDefinition
  5.     Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
  6.     ' Set a reference to the transient geometry object.
  7.    Dim oTG As TransientGeometry
  8.     Set oTG = ThisApplication.TransientGeometry
  9.     ' Create a matrix.  A new matrix is initialized with an identity matrix.
  10.    Dim oMatrix As Matrix
  11.     Set oMatrix = oTG.CreateMatrix
  12.     ' Add the occurrence.
  13.    Dim oOcc As ComponentOccurrence
  14.     Set oOcc = oAsmCompDef.Occurrences.Add("C:\Temp\Part1.ipt", oMatrix)
  15. End Sub
Последнюю строку можно зациклить на нужное количество вхождений. Деталь Part1.ipt вставляется в сборку в точку с координатами 0,0,0. Точку вставки можно запросить у пользователя...)
Как перевести на VB.NET, тоже есть мануал...