Изменение параметров в таблице параметрического ряда

Автор Тема: Изменение параметров в таблице параметрического ряда  (Прочитано 6784 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Добрый день,
Как можно изменить выборочные параметры в таблице исполнений детали?
Открывать всю таблицу как ExcellWorkSheet и в ней искать нужную клетку и ее перезаписывать как то очень муторно, или только так и возможно?

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Ну ведь таблица исполнений подразумевает под собой статические параметры, зачем их менять? Быть может вам просто построить параметрическую модель, размеры которой меняются посредством API?
В программировании я новичок...но ненадолго! ;)

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

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Вообще мне нужно проверить соответствие материала назначенного в Inventor с материалом из внешней базы, и, если есть несоответствия видового представления материала, правил обработки листового металла и т.п. изменить на стандартные, но вся эта информация у нас прописывается в таблице параметрического ряда (исполнений). Для детали без исполнений сделал, все работает и применяется. Но с исполнениями опять траблы. ) Пробегает по исполнениям, применяет, но при переключении исполнений берет старые данные из таблицы. Делаю через редактирование таблицы, в принципе работает, но по времени достаточно продолжительно (но это зависит от количества несоответствий).
Вроде руководитель говорит что можно как то конкретное значение изменить без открытия таблицы каждый раз, если нужно одно значение изменить, но не могу найти инфу.
« Последнее редактирование: 16-06-2016, 10:40:46 от Elfilagas »

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Я так и не понял, для чего вам исполнения нужны? Они хранят геометрические параметры помимо материалов и тп? Если для деталей без исполнения все работает, используйте их. Исполнения по геометрии можно сделать программно. Не знаю, вся идея инвентора с исполнениями, когда мы попытались ими пользоваться, показалась неудачно реализованной. Возникает куча проблем с использованием и копированием деталей. В итоге от такого подхода отказались.
П.С. В общем я советую вам не рассматривать только ваш метод, чтобы сделать так как "привыкли" в вашей организации, а попробовать реализовать все как-то по-другому. Зачастую начальники требую от инженеров то, в чем сами не разбираются. Быть может более удачное решение совсем рядом, просто его надо поискать и предложить руководству.
В программировании я новичок...но ненадолго! ;)

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

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Да, хранят так же и геометрические параметры.
Что я могу сказать, столько проблем бы снялось если не использовать исполнения, т.к. заставить их правильно работать - сущая каторга. ) Продвигаем вместе с руководителем идею отказа от исполнений, но уже накопился такой архив таких моделей, да и конструкторам вроде как удобнее так работать. А если им удобно, то всем удобно. )
В принципе сделал, что если несоответствие найдено - открывает таблицу исполнений как таблицу Excel, находит ячейку, пишет в неё правильное значение, сохраняет и закрывает. Затем ищет следующее несоответствие и т.д. Не так чтобы очень быстро работает, но функцию свою выполняет и гораздо быстрее чем вручную проверять. В принципе, наверное, устроит, передам на тестирование, но если кто-то сталкивался с таким и знает как можно сделать по другому, буду признателен за совет.

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
но уже накопился такой архив таких моделей, да и конструкторам вроде как удобнее так работать. А если им удобно, то всем удобно. )
В общем случае работники пассивны, работают по принципу "и так сойдет", интузиастов с пытливым умом и жаждой перемен - единицы. Внедрение нововведения - всегда сложный труд, ибо надо бороться с вышеуказанной аморфностью персонала, плюс с их ленью, ибо переделать наработанный архив и перестроиться на новый стиль работы - все это лишний труд! Я вам советую на своем настаивать, но решать вам.
П.С. Каждый раз, когда у нас возникает подобная дилемма в коллективе, люблю рассказывать такой вот анекдот:
"Мужик пилит толстенное дерево тупой пилой. Потеет, упирается, но толку, естественно, мало. Ему говорят: "Мужик, ну что ты мучаешься, наточи пилу!", а он отмахивается и отвечает: "Идите вы! Некогда мне пилу точить - мне еще 15 деревьев надо спилить!" Инвентор + API - это пила, и только вам решать, как вам ею работать!
В программировании я новичок...но ненадолго! ;)

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

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
но если кто-то сталкивался с таким и знает как можно сделать по другому, буду признателен за совет.
iAssemblyFactory и iPartFactory работает напрямую с таблицей исполнений, без Ёкселя... В чем проблема? Из справки VBA: "The iPartFactory object provides access to the iPart table"


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

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Так у меня так и сделано, iPartFactory открываю как ExcelWorkSheet и меняю нужные ячейки.
Или я что то не понимаю?

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

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
Зачем тут ExcelWorkSheet, нужно работать напрямую:
Код - Visual Basic [Выбрать]
  1. ' Set a reference to the component definition.
  2. Dim oCompDef As PartComponentDefinition
  3. Set oCompDef = ThisApplication.ActiveDocument.ComponentDefinition
  4.  
  5. ' Make sure we have an iPart factory.
  6. If oCompDef.IsiPartFactory = False Then
  7.     MsgBox "Chosen document is not a factory.", vbExclamation
  8.     Exit Sub
  9. End If
  10.  
  11. ' Set a reference to the factory.
  12. Dim oiPartFactory As iPartFactory
  13. Set oiPartFactory = oCompDef.iPartFactory
  14.  
  15. ' Get the cell value of rows in the factory.
  16. Dim iNumRows As Integer
  17. For iNumRows = 1 To oiPartFactory.TableRows.Count
  18.     MsgBox oiPartFactory.TableColumns(1).Item(iNumRows).value
  19. Next