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

NX Open C программирование


NX-Open-Dummer

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

UF_VIEW_ask_visualization - проверил, для каждого входного компонента выдает такое же значение, как и для главной сборки, хотя они разные.

Через формат - ссылочный набор - MODEL количество элементов равно 1, а через утилиту показывает 2. Откуда берется этот второй элемент, непонятно? В одном из примеров, показало что равно 1, так что непонятна логика?

UF_VIEW_ask_visualization работает для рабочей части. При переборе сборки, ИМХО, надо "переключать" рабочую часть. При этом как и с фичерами по окуренсу надо определять таг части прототипа.

По ссылочному набору может быть у вас включена опция, что включать автоматически компоненты, и это объект компонента или окуренс. Проверьте по типу и под типу что за объекты.

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


По ссылочному набору может быть у вас включена опция, что включать автоматически компоненты, и это объект компонента или окуренс. Проверьте по типу и под типу что за объекты.

тип - UF_reference_set_type, под тип - UF_reference_design_model_subtype;

У меня в функции UF_ASSEM_ask_ref_set_data(feature, ref_set_name,origin,matrix,&num_members,&members) - не получается для тэга members извлечь имя, как это можно сделать, тогда хоть будет понятно, что за элементы присутствуют. С помощью какой ф-ции можно извлечь имя?

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

Все разобрался, 2 элемента получаются из-за того, что один это UF_solid_body_subtype, а второй это UF_faceted_model_jt_body_subtype

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

Подскажите, с помощью какой функции можно проверить, скрыт(Hide) ли элемент дерева построения модели?

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

Подскажите, с помощью какой функции можно проверить, скрыт(Hide) ли элемент дерева построения модели?

Мне кажется это не совсем корректно. Скрывают не элементы построения, а геометрические объекты (тела, кривые и т.д.). Следовательно смотреть надо примерно так: Элемент построения - Объект (тело кривая и т.д.) - ну а потом смотреть UF_OBJ_ask_display_properties
Ссылка на сообщение
Поделиться на других сайтах

Мне кажется это не совсем корректно. Скрывают не элементы построения, а геометрические объекты (тела, кривые и т.д.). Следовательно смотреть надо примерно так: Элемент построения - Объект (тело кривая и т.д.) - ну а потом смотреть UF_OBJ_ask_display_properties

Помогла функция UF_OBJ_ask_display_properties.

Большое спасибо за подсказку.

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

Здравствуйте, подскажите как поставить фон в моделировании как черную плоскость (Руками команда Настройки->Фон...->...). Перерыла и uf и nxopen-ские библиотеки, нашла как поставить фон в черчении, в эскизе, при рендеринг, попрабовала пару из них, но не помогло. Может я что пропустила? :confused_1: Помогите пожалуйста

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

Здравствуйте, подскажите как поставить фон в моделировании как черную плоскость (Руками команда Настройки->Фон...->...). Перерыла и uf и nxopen-ские библиотеки, нашла как поставить фон в черчении, в эскизе, при рендеринг, попрабовала пару из них, но не помогло. Может я что пропустила? :confused_1: Помогите пожалуйста

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

Спасибо работает, полдела сделано :) Теперь бы еще поставить фон как плоскость а не градуированный. Может подскажите и это?

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

Проблема следующего характера:

Имеется утилита, в которой используется функция UF_UGMGR_invoke_pdm_server(input_code,input_string,&output_code, &output_string ), с помощью которой в NX экспортируются свойства из Teamcenter.

На Windows XP с помощью этой утилиты мы можем извлечь свойства и утилита работает корректно, а вот на Windows 7, выполнение dll доходит до этой функции и отключается. Teamcenter при этом также отключается.

Остальные наши утилиты, работа которых не связана с Teamcenter, прекрасно работают и на XP и на Win7, создается впечатление, что проблема именно в функции «…invoke_pdm_server».

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

Проблема следующего характера:

Имеется утилита, в которой используется функция UF_UGMGR_invoke_pdm_server(input_code,input_string,&output_code, &output_string ), с помощью которой в NX экспортируются свойства из Teamcenter.

На Windows XP с помощью этой утилиты мы можем извлечь свойства и утилита работает корректно, а вот на Windows 7, выполнение dll доходит до этой функции и отключается. Teamcenter при этом также отключается.

Остальные наши утилиты, работа которых не связана с Teamcenter, прекрасно работают и на XP и на Win7, создается впечатление, что проблема именно в функции «…invoke_pdm_server».

Проверьте чем Вы собирали

Соответствует ли версия компилятора

Просто открываете текстовым редактором tcserver.exe

И смотрите версии dll c UF_UGMGR_invoke_pdm_server должна соответствовать

Аналогично для UG ugraf.exe

Если есть работающая dll и не работающая то можно провести анализ и сравнить их

с помощью утилиты dumpbin Она входит в состав VS

Для UG от 6

может быть актуален ключ препроцессора _SECURE_SCL=0

Если переносили проект из ранних версия а не создавали с нуля

Ключ актуален если Вы используете STL

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

Проверьте чем Вы собирали

Соответствует ли версия компилятора

Просто открываете текстовым редактором tcserver.exe

И смотрите версии dll c UF_UGMGR_invoke_pdm_server должна соответствовать

Аналогично для UG ugraf.exe

Если есть работающая dll и не работающая то можно провести анализ и сравнить их

с помощью утилиты dumpbin Она входит в состав VS

Для UG от 6

может быть актуален ключ препроцессора _SECURE_SCL=0

Если переносили проект из ранних версия а не создавали с нуля

Ключ актуален если Вы используете STL

Zlodeij уже убежал, я за него чуть подробнее напишу:

Проект как-раз с нуля создали.

Любая утилита с UF_UGMGR_invoke_pdm_server отказывается работать на Win7.

По логу: как только утилита пытается обратиться к Тимцентру - Тимцентр сразу выключается.

В качестве эксперимента написали маленькую утилиту с одним действием, которая извлекает тимцентровский атрибут и больше ничего не делает. Результат такой же.

Когда то у нас были такие же проблемы на XP (использовали утилиту с этой же функцией), вылечили установкой vcredist.exe, может и 7-ой винде чего-то такого не хватает?

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

Добрый день!

Возник такой вопрос, с помошью какой функции можно стоздать копию объекта? Объект - твердое тело. В исходных данных имеем Tag тела, которое необходимо копировать.

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

Здравствуйте уважаемые знатоки!

На предыдущий вопрос ответ нашелся.

Сейчас возник другой, с помощью какого метода можно определить пересекаются ли объеты в модели? Задача состоит в следующем перемещаем тело вдоль кривой, если на пути встречается другое тело, то производим булеву операцию вычитание.

Я представляю решение этой задачи, как итерационный процесс, где на каждом шаге выполняется проверка пересекаются объекты или нет.

Буду благодарен за помощь! =)

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

Здравствуйте уважаемые знатоки!

На предыдущий вопрос ответ нашелся.

Сейчас возник другой, с помощью какого метода можно определить пересекаются ли объеты в модели? Задача состоит в следующем перемещаем тело вдоль кривой, если на пути встречается другое тело, то производим булеву операцию вычитание.

Я представляю решение этой задачи, как итерационный процесс, где на каждом шаге выполняется проверка пересекаются объекты или нет.

Буду благодарен за помощь! =)

Попробуйте UF_MODL_ask_dist...

Если дистанция больше 0 то тела точно не пересекаются

Можно значительно ускорить счет если задавать хорошие начальные приближения

Но для тел это не подойдет а только для граней

Также для ускорения можете использовать тот факт что если дистанция на каком-то шаге

X то гарантировано тела не столкнуться если перемещение от заданного положения одного тела относительно другого меньше Х

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

Попробуйте UF_MODL_ask_dist...

Если дистанция больше 0 то тела точно не пересекаются

Можно значительно ускорить счет если задавать хорошие начальные приближения

Но для тел это не подойдет а только для граней

Также для ускорения можете использовать тот факт что если дистанция на каком-то шаге

X то гарантировано тела не столкнуться если перемещение от заданного положения одного тела относительно другого меньше Х

Спасибо!

Но я не смог найти фукцию UF_MODL_ask_dist... В библиотеке uf_modl.h есть только фукция UF_MODL_ask_distance_tolerance она постоянно возвращает значение 0,001.

Прикрепляю скриншот модели. Имеем 38 тел, пемещение идет по цилиндрической спирали против часовой стрелки. Если какое-либо тело пересекло другое, то совешаем булеву операцию вычитание. Процесс продолжается до тех пор пока все тела не переместятся на 360 градусов. Перемещаем копии исходных объектов.

post-32938-1337231613_thumb.jpg

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

Спасибо!

Но я не смог найти фукцию UF_MODL_ask_dist... В библиотеке uf_modl.h есть только фукция UF_MODL_ask_distance_tolerance она постоянно возвращает значение 0,001.

Прикрепляю скриншот модели. Имеем 38 тел, пемещение идет по цилиндрической спирали против часовой стрелки. Если какое-либо тело пересекло другое, то совешаем булеву операцию вычитание. Процесс продолжается до тех пор пока все тела не переместятся на 360 градусов. Перемещаем копии исходных объектов.

Есть еще функция UF_MODL_check_interference.. Возвращает три значения ПЕРЕСЕКАЮТСЯ, НЕ ПЕРеСЕКАЮТСЯ, КАСАЮТСЯ.

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

Есть еще функция UF_MODL_check_interference.. Возвращает три значения ПЕРЕСЕКАЮТСЯ, НЕ ПЕРеСЕКАЮТСЯ, КАСАЮТСЯ.

Спасибо!! =) Как раз то что нужно!! =)

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

Параллельно возник такой вопрос.

Для вычитания использую UF_MODL_subtract_bodies_with_retained_options(taget_body_tag, tool_body_tag, false, true, frec_eid), но после вычитания не могу пеместить тело инструмента (tool_body_tag), оно возвращается в исходную точку, где производилась булева операция. В чем может быть ошибка?

Перемещение осуществляется с помошью функции uf5947 (UFTrns.TransformObjects()).

P.S. Или как создать копию твердого тела, что бы произвести вычитание ей?

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

Спасибо!

Но я не смог найти фукцию UF_MODL_ask_dist... В библиотеке uf_modl.h есть только фукция UF_MODL_ask_distance_tolerance она постоянно возвращает значение 0,001.

Прикрепляю скриншот модели. Имеем 38 тел, пемещение идет по цилиндрической спирали против часовой стрелки. Если какое-либо тело пересекло другое, то совешаем булеву операцию вычитание. Процесс продолжается до тех пор пока все тела не переместятся на 360 градусов. Перемещаем копии исходных объектов.

UF_MODL_ask_minimum_dist

Я бы рекомендовал пользоваться именно этой функцией

хотя бы для начальной оценки

На ней Вы сможете получить максимальную скорось выполнения программы

по сравнению с булевскими

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • maxx2000
      Подушную малость. Чё там. Уже в упор научились резьбу резать без выходной канавки?
    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
    • brigval
    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
×
×
  • Создать...