assembly symmetry wizard macro

Программирование для CATIA.

assembly symmetry wizard macro

Сообщение heze » 07 мар 2016 13:31

Доброго всем времени суток!
Есть такая задача - автоматизировать отзеркаливание довольно крупных сборок, т.е. выполнить тоже что assembly symmetry wizard, только автоматически и по заданным условиям.
В сети нашел несколько примеров миррор скриптов, но все они выполняют не совсем то, что нужно - либо мирор сборки, либо мирор внутри парта. А необходимо создавать новую сборку и внутри нее будут некоторые элементы (подсборки и/или парты) просто new instance with rotation, а некоторые уже новые полноценные зеркальные компоненты и к тому же нужно их после переименовать.

Может кто-то поделится идеей как это все таки можно реализовать через VBA/VBS/VBScript?

к сожалению вариант через winapi пока не могу рассматривать - не хватает в этой области опыта.(хотя если есть какой-то близкий пример - буду очень благодарен и попробую разобраться)
heze
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 22 авг 2015 01:49

Re: assembly symmetry wizard macro

Сообщение Wireless_Fidelity » 13 мар 2016 20:03

Здравствуйте.

Как понимаю, задачу можно разбить на подзадачи: создание зеркального парта, размещение экземпляра в "зеркальной" позиции и др.
Уточните, автоматизация каких именно действий вызывает затруднения, постараюсь помочь.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: assembly symmetry wizard macro

Сообщение heze » 26 июл 2016 23:42

Ох, что-то я совсем забыл про этот вопрос(((
Уважаемый, Wireless_Fidelity, вот пошаговый алгоритм, который хочу реализовать:

исходные данные - это выбранный продукт

1.при запуске скрипта сначата нужно выбрать условие переименования, по которому будут переименованы полученные продукты.
2.нужно этот выбранный продукт отзеркалить и/или провернуть (rotation, new instance) в зависимости от имени парта (по первым нескольким символам в имени partnumber).
3. после зеркала/поворота нужно переименовать все продукты, которые входят в исходный выбранный продукт, включая его самого, в зависимости от условия переименования.

1 и 3 части мне посильны, не могу разобратся до конца с основной, в принципе, задачей, а именно с мирором и/или ротейшеном. И даже по мирору +/- есть мысли, а вот как реализовать аналог rotation, new instance не соображу(((
heze
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 22 авг 2015 01:49

Re: assembly symmetry wizard macro

Сообщение VladimirK » 27 июл 2016 10:27

Здравствуйте!
heze, по поводу того "как реализовать аналог rotation, new instance" возникла такая идея:
1. Сделать копию детали в сборке с помощью методов объекта Selection Copy/Paste/PasteSpecial;
2. Поворачивать в пространстве копии деталей с помощью метода Product.Position.SetComponents.
Ещё нашёл метод Product.Move.Apply TransformationArray, в V5Automation.chm есть пример поворота Product на 45 градусов вокруг оси x и перемещение.
Сначала у исходной детали считываем положение, рассчитываем зеркальное, потом устанавливаем копию детали в рассчитанное положение.
Код: Выделить всё
Dim sourceProd as Product ' исходная деталь
Dim destProd as Product ' копия детали
Dim sourcePos(11) ' положение исходной детали
Dim destPos(11) ' положение копии детали

sourceProd.Position.GetComponents sourcePos
' получили положение детали в массиве sourcePos
' всего 12 чисел:
' sourcePos(0), sourcePos(1), sourcePos(2) - поворот по оси x
' sourcePos(3), sourcePos(4), sourcePos(5) - поворот по оси y
' sourcePos(6), sourcePos(7), sourcePos(8) - поворот по оси z
' sourcePos(9), sourcePos(10), sourcePos(11) - x, y, z
' ...
' здесь нужно рассчитать зеркальное положение на основе данных sourcePos,
' заполнить 12 значений destPos
' ...
' установка положения копии детали
destProd.Position.SetComponents destPos

Здесь сложность заключается в правильном расчёте зеркального положения.
Надо разобраться с векторами поворота по осям x, y, z (элементы массива 0..8 ) и x, y, z системы координат детали - Axis (элементы массива 9..11).
Надеюсь, этот вариант решения Вам поможет!
VladimirK
Новичок
Новичок
 
Сообщения: 63
Зарегистрирован: 15 ноя 2011 21:44


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5