Вставить несколько деталей в сборку

Автор Тема: Вставить несколько деталей в сборку  (Прочитано 5990 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Добрый день,
Есть блок который вставляет модель в сборку, если упрощенно - по имени файла командами:
Код - Visual Basic [Выбрать]
  1. Dim sFN As String = 'Полное имя файла
  2. InvApp.CommandManager.PostPrivateEvent(Inventor.PrivateEventTypeEnum.kFileNameEvent, sFN)
  3. InvApp.CommandManager.StartCommand(Inventor.CommandIDEnum.kPlaceComponentCommand)
Все работает, но сейчас работает так, что по 1 клику вставляется 1 модель, т.е. для каждой детали нужно указать место вставки. Есть потребность вставлять сразу много одинаковых моделей, т.е. указать количество и одним кликом вставилось нужное кол-во, можно чтобы в одну указанную точку.
Как это можно реализовать?
« Последнее редактирование: 03-06-2016, 12:52:07 от Elfilagas »

Оффлайн Алексей Романов

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
Именно через команду? А непосредственно через API нельзя? В справке есть примеры...

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Добрый день, не понял где можно примеры посмотреть?

Отмечено как Решение Elfilagas 06-06-2016, 08:55:50

Оффлайн Алексей Романов

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
В 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, тоже есть мануал...