Перейти к публикации

Изменение положения твердого тела в модели программыми средствами UG Open C#


zu_rab

Рекомендованные сообщения

Здравствуйте, уважаемые профессионалы!

Подскажите пожалуйста с помощью каких функций можно переместить твердое тело в готовой модели, не в сборке, в заданную точку?

Тег данного тела известен.

Ссылка на сообщение
Поделиться на других сайтах


Здравствуйте, уважаемые профессионалы!

Подскажите пожалуйста с помощью каких функций можно переместить твердое тело в готовой модели, не в сборке, в заданную точку?

Тег данного тела известен.

Если ассоциативно, то можно попробовать заготовку Изменить - Переместить объект (по журналу)
Ссылка на сообщение
Поделиться на других сайтах

Если ассоциативно, то можно попробовать заготовку Изменить - Переместить объект (по журналу)

Журнал посмотрел, ответов не прибавилось =(

А нет никаких функций из NXOpen.UF, чтобы по tag объекта переместить его (объект - цилиндрическое твердое тело)??

Ссылка на сообщение
Поделиться на других сайтах

Есть. Нужно определить матрицу трансформации для нужного перемещения, а потом к выбранному телу эту трансформацию применить.

Ссылка на сообщение
Поделиться на других сайтах

Есть. Нужно определить матрицу трансформации для нужного перемещения, а потом к выбранному телу эту трансформацию применить.

Метод UF_ROUTE_transform_objects ?

Матрицу трансформации создаю с помощью UF_MTX4_rotation, а какой метод использовать для перемещения объекта??

Изменено пользователем zu_rab
Ссылка на сообщение
Поделиться на других сайтах

1. Если есть таг, то вроде можно и к объекту перейти?

2. Если уж оперируем тагами, то смотрим uf_trns.h

Ссылка на сообщение
Поделиться на других сайтах

1. Если есть таг, то вроде можно и к объекту перейти?

2. Если уж оперируем тагами, то смотрим uf_trns.h

Спасибо за ответ! =)

Появилась небольшая проблема, для составления матрицы перемещения использую метод

NXOpen.UF.UFTrns.CreateRotationMatrix(

double[] origin,

double[] direction,

ref double degrees_rotation,

double[] matrix,

out int status

)

в выходных данных получаю массив double[] matrix, состоящий из 12 элементов, и переменную int status.

Для перемещения использую метод

NXOpen.UF.UFTrns.TransformObjects(

ref double rp1,

Tag[] objects,

ref int n_objects,

ref int move_or_copy,

ref int dest_layer,

ref int trace_curves,

Tag[] copies,

out Tag trace_curve_group,

out int status

)

в описании метода говорится, что rp1 - 12-ти элементная матрица перемещения (Defined Transformation Matrix. This must be a 12 element array. This array should be initialized using the functions uf5942-uf5946 to produce the required transformation.)

Но при попытке передать массив matrix в метод public void TransformObjects компилятор выдает ошибку о несответствии типов "Аргумент "1": преобразование типа из "ref double[]" в "ref double" невозможно". Это понятно, мы патемся передать массив, а метод должен получить константу. Как вопользоваться этим метдом для перемещения, я пишу на C#?

Порылся на китайских форумах нашел код на С, там они передают массив в метод и никаких ошибок не возникает

double origin[3]={1,0,0};   double direction[3]={0,0,1};   double degrees_rotation=30;   double matrix_rotation[16];   int status_totation;   FTN(uf5945)(&origin[3],&direction[3],&degrees_rotation,&matrix_rotation[16],&status_totation);    int n_object_r=1;   int copy_or_move_r=1;   int dest_layer_r=0;   int trace_curve_r=2;   tag_t copies_r;   tag_t trace_curve_group_r;   int status_r;   FTN(uf5947)(matrix_rotation,&group,&n_object_r,&copy_or_move_r,&dest_layer_r,&trace_curve_r,&copies_r,&trace_curve_group_r,&status_r);

Подскажите пожалуйста!

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • gudstartup
      а в этой какой смысл - наверно не то что пора завязывать пить после 11...  
    • taarok
      спасибо огромное, везде обыскался. Завтра буду пробывать. Возможно я ошибаюсь, но при запуске цилка 9023 он обращается в конце к макросу 9775  там прописана строка g65PO9775
    • Guhl
      Где эта фраза?   Если вы про эту "Станину и механизмы надо выставлять механически" то здесь иной смысл "надо выставлять" не равно "только механически может быть выставлена" Так у него голова несложно выставляется по оправке смещением нуля Это как резцедержку с сервоприводом настраивать При чем тут геометрия станины?
    • gudstartup
      в некоторых случаях проще сделать геометрическую компенсацию чем выравнивать например поворотный стол прикрепленный к станине весом в полтонны в плоскости zy или xz .  замена на компенсацию бывает еще и по временным и финансовым обстоятельствам и это никак нельзя не учитывать.
    • lem_on
      Я бы с удовольствием посмотрел как без параметрирования башка на интегрексе выставляется. Но думаю ответ был бы, станок неправильно спроектирован и из все надо на металлолом и  переплавить в сковородки. Да и вообще где только параметрами геометрию не выходишь.    "Извиняюсь заранее что подлизнул"  Тема ведь про смешное и клоун даже есть )))
    • USSR_Nic
      Дык посмотреть то я посмотрел. Я не понимаю как тулбокс перестроить. Как разделить наименование в тулбоксе  на Наименование ВП и Обозначение ДНП... В этом и состоит проблема.... Хоть в макросе их дербань....
    • gudstartup
      @Killerchik думаю хватит цитат про то что только механически может быть выравнена геометрия станка. советую выровнять направляющуб где на 5см 1мм отклонения от прямолинейности или она как сам@Guhl пишет винтом. 
    • Jesse
      да, так и делайте. Мне тоже кажется это самый оптимальный вариант)
    • Amiandar
      Народ, а подскажите, почему не получается редактировать (1 раз только получилось спустя 100500 попыток, поэтому я не уловил причину) вот эти значения в момент нанесения линии в эскизе?   
    • Alex1986
      Коллеги, подскажите, пожалуйста, как в имеющемся Компас 3D v20 в как-то сопряженных деталях сделать в одной детали отверстие, а во второй детали отверстие завязать на центр отверстия первой детали, чтоб при перемещении первого и перестроении, автоматически перестраивалось отверстие во второй?
×
×
  • Создать...