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

Изменение положения твердого тела в модели программыми средствами 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 пользователей

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




  • Сообщения

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