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

Корректировка элемента построения Cproj


tALEX

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

Здравствуйте уважаемые.

Понадобилось мне в программном режиме покорректировать элемент постр CPROJ

Надо поменять кривые прроецирования, а остальное оставить неизменным.

Функция для этого есть известная

extern int UF_CURVE_edit_proj_curves (

tag_t proj_curve_feature,

int n_curve_refs,

tag_t * curve_refs,

int n_face_refs,

tag_t * face_refs,

UF_CURVE_proj_p_t proj_data );

И вот проблема.

Для чтения кривых и граней функции есть

это , например

--------------------------------------------

UF_CURVE_ask_proj_curve_parents (

tag_t proj_curve,

tag_t * defining_feature,

tag_t * defining_target,

tag_t * defining_curve );

---------------------------------------------

а для чтения UF_CURVE_proj_p_t proj_data таковой не обнаружмлось.

Поможите, чем можете

(Особенно niki или nut)

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


Если заменить кривые, то можно конечно попробовать и через replace ....

Но тут есть проблемы -

1. если заменяемая кривая (или точка) используется и в других фичерах (там она тоже попытается подменится)

2. если заменяемая кривая принадлежит фиче (т/е параметризирована) - например проецировались кривые со скетча, экстракт и тд. - то это будет глюк

Ну а если надо добавить или убрать кривые в фичу (CPROJ)?

Насколько я понимаю, вопрос здесь в определении метода проецирования (и дополнительных тагов в зависимости от метода). В v15 мне надо было написать прогу, которая выдает инфу по фиче CPROJ, где главное - метод проецирования. Скоко я тогда не бился - ничо не вышло. В C на NX4 добавили новые ф-ции, типа UF_CURVE_edit_proj_curves1 и тд, но и там вопрос остался.

Может в API С++ или Jave что-то в в этом вопросе решено лучше.

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

Инфа о проецировании кривой - это секретная ф-я UG/Open :wallbash:

А меня интересовала как раз таки информация о методах проецирования.

Но, видно, не судьба.

Как разработчики, бедные, обходятся.

фу на UG/Open

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

Можно попробовать через "одно место" - KBE Api достучаться до параметров UF_CURVE_proj_p_t

1. Делаем adopt для через UF_KF_adopt_ug_objects для фичера CPROJ ( предварительно можно спросить не был ли этот фичер уже adopted через UF_KF_ask_fusion_object )

2. Потом спрашиваем ref chain этого объекта через UF_KF_ask_name_chain_of_instance

3. И наконец через UF_KF_ask_parameters спрашиваем параметры ( в число которых входят и данные из UF_CURVE_proj_p_t) и формируем данные для UF_CURVE_proj_p_t.

PS Выкладки чисто теоретические, сам не проверял.

Regardzzz ...

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

2 niki

Это выше, чем высший пилотаж :(

Это чем дальше в лес, тем ...

Ну, хоть дебаггером не надо ковыряться...

Но... будем посмотреть еще и там.

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

Дык тут проблемка не только в CPROJ.

Я вот с GRIP и API C уже с 11 версии вожусь. Можно сказать накипело.

По моему мнению API на UG уж очень сильно ( и умело ) кастрирован. Причем, по первой смотришь - елы-палы, как много разных возможностей. А когда начинаешь что-то писать, выясняется, что нужной-то ф-ции и нет, зато на одну и ту же фичу натыкано с десяток , которые разнятся версиями и иногда несущественными отличиями интерфейса. Достаточно посмотреть на ф-ции моделирования extrude, sweep, revolve. Такое впечатление, что там полный бардак и какое-то спешное затыкание заплаток и подмазывание трещин.

Зато вот для построения сплайнов ни хрена нормального нема. По крайней мере, у меня не получилось даже сымитировать интерактивное редактирование полюсов для сплайна, построенного через точки.

Я уж молчю про API на драфтинг.

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

В принципе если так уж нужно я бы предложил восстановить метод проецирования

численно

Я думаю сложного в этом нет

Нужно иметь на входе исходную точку и спроецированную точку и поверхность

Точек можно несколько

Снять их можно с кривых при фиксированных параметрах начала или конца

По поводу функциональности UGOPEN

то видимо вся энергия разработчиков ушла на C++(UGOPENPP), Java и NET

которые все равно проигрывают UGOPEN

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

Немного отвлекшись от CPROJ я увлекся изучением OFFSET_CURVE.

Результат также обескураживает.

Не удалось построить (параметрическую) эквидистантную кривую с offset_type = UF_CURVE_OFFSET_DISTANCE_FILLET;

В качестве одной из попыток был взят пример ufd_curve_ask_offset_dir.c из каталога UGOPEN.

И там для параметрической кривой используется offset_type = UF_CURVE_OFFSET_DISTANCE_TANGENT;

или UF_CURVE_OFFSET_DISTANCE_NO_TRIM;

При замене на UF_CURVE_OFFSET_DISTANCE_FILLET

функции UF_CURVE_create_offset_object(&offset_data,&offset_tag) и UF_CURVE_edit_offset_object(&ask_offset_data,offset_tag) выдают ошибку типа такой

*** ERROR code 1105004 at line 1096 in

ufd_curve_ask_offset_dir.c :

+++ The first parameter passed in was invalid

UF_CURVE_edit_offset_object( & Offset_data_pointer , Feat[0] );

И что делать в этом случае :wallbash:

Ваши предложения, господа

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

2 nut888

Вручную все редактируется и работает.

Да, в том примере (ufd_curve_ask_offset_dir.c) я поменял значения эквидистант

-------------

Было

char distance_str[] = {"0.25"};

char neg_distance_str[] = {"-0.25"};

Стало

char distance_str[] = {"0.05"};

char neg_distance_str[] = {"-0.05"};

-------------

Далее я трогал только offset_type пытаясь создать параметрический элемент с offset_type = UF_CURVE_OFFSET_DISTANCE_FILLET; и

НИЧЕГО НЕ ПОЛУЧАЕТСЯ :wallbash:

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

Если вручную Тебе это удалось построить то спроси у построенного

вручную объекта эту структуру UF_CURVE_ask_offset_parms

и распечатай ее значения

Потом сравни их с тем как Ты инициализизуешь свою структуру UF_CURVE_offset_data_s

при создании

Я обычно всегда так делаю когда у меня подобные вещи происходят

Tag объекта можно получить через debugger в UG

UGII_DISPLAY_DEBUG=1

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

Если вручную Тебе это удалось построить то спроси у построенного

вручную объекта эту структуру UF_CURVE_ask_offset_parms

и распечатай ее значения

Потом сравни их с тем как Ты инициализизуешь свою структуру UF_CURVE_offset_data_s

при создании

Я обычно всегда так делаю когда у меня подобные вещи происходят

Tag объекта можно получить через debugger в UG

UGII_DISPLAY_DEBUG=1

Этот путь уже мною пройден (вещь то достаточно очевидная)

Но при типе скругления UF_CURVE_OFFSET_DISTANCE_FILLET

НЕ РАБОТАЕТ ни создание оффсетной кривой ни редактирование оной

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • IGor2D
      По итогу...: По гарантии приехали и поправили только точность реза, остальное не смогли исправить, нужен инженер с HSG. Глючный однако китаец, пытается сам себя сломать.
    • Gmv
      По кнопке FTP стойка имеет 6 страниц для трех разных хостов. Где можно указать IP , имя, пароль 1страница. каталог 2 страница. Больше настроек не нашел.
    • gudstartup
      на фануке настраиваете доступ по ftp на соответствующей вкладке  и также расшариваете папку  вашим сервером и все прекрасно работает.
    • gudstartup
      симулятор предполагает взаимодействие как с чпу так и со станком посредством другой plc программы иначе вам придется самому управлять входами и выходами а это непросто.    
    • Gmv
      У кого есть опыт организации FTP именно на станке? Стойка 0i-MF plus   Сейчас пока сервер настроен на компе, и то не до конца. файлы видны, извлечь их или скопировать в память станка не выходит. Но операторы уже сразу возмущены,  им проще бегать с USB флешкой и нажимать одну кнопку, чем прыгать по папкам. На хаасе это реализовано классно, он создает сетевой диск и полный доступ и со стойки с пк. Хотелось бы подобного.
    • Guhl
      Я нормально проекты писал и отлаживал на эмуляторе Балт-Систем На Heidenhain, насколько я понял, работает симулятор с их сайта в связке с PLC design @gudstartup пользовался этим вот в этой ветке
    • ID_Hacker
      Ну уж балт-систем то не надо сюда. Там такое ущербное всё, что аж страшно вспомнить. Haidenhain эмулятор где взять, подскажете? А как отработать взаимодействие между NC и PLC, действия где работают и оси и механизмы электроавтоматики. Сам хочу попробовать Run my virtual machine, да всё времени нет.
    • Bot
      Данное приложение разработано на языке Visual Basic с использованием программного интерфейса NX Open API и предназначено для использования в САПР Siemens NX, начиная с версии 2000. Стиль интерфейса пользователя идентичен стилю САПР Siemens NX. View the full article
    • Jesse
      @ГЕЛА Ещё можно посчитать в балках и учесть влияние отверстия через коэффициент концентрации напряжений..) Но у вас отверстие на всю стенку, так что лучше, проще и быстрее посчитать всё это дело в оболочках как выше сказали. Скругления перехода от стенки к полке удалите и в запас считайте.
    • 5axisCNC
      Можно плоскость дна задать множеством вариантов например точка направление
×
×
  • Создать...