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

программирование под Nx (+UiStyler)


bazelboday

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

А где лежат библиотеки? Прямо в каталоге проекта или в NX?

нет, я добавлял их через Добавить->Существующий, а так они лежат в папке, куда установлен UGS

Если их еще надо скопировать в каталог проекта, то их копировать прямо в папку с названием проекта или в какое то определенное место?

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


Да не надо их копировать, кстати я lib-файлы не могу добавить - их даже в списке типов нет. Вообще их надо просто добавить вручную в опциях командной строки линкера + указать путь к ним в Добавочных путях библиотек проекта или в VC++ Directories в самой студии...

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

у меня по-моему эти библиотеки уже везде где только можно размещены, но ничего не меняется, ошибка все так же.

 

опишу по шагам свои действия:

 

1. Создать новый проект -> Консольное приложение Win32 -> имя: proba7

 

2. Dll пустой

 

3. Файлы исходного кода -> Добавить -> Создать -> .cpp имя proba

 

4. свойства проекта -> c/c++ :

 

4.1 Дополнительные  каталоги  включения: указываю папки ugopen и ugopenpp

 

4.2 Компоновщик -> Общие -> Дополнительные ката-логи библиотек: указываю папку ugopen

 

4.3 Компоновщик -> Ввод -> Дополнительные зависимости: прописываю -> libufun.lib libnxopencpp.lib libugopenint.lib libnxopenuicpp.lib libopenpp.lib libopenintpp.lib libvmathpp.lib

 

4.4 Компоновщик -> Системы -> Подсистема: выбираю Console

 

5. в файл proba.cpp копирую следующий код:

 

#include <uf.h> 
#include <uf_curve.h>
 
void ufusr(char *param, int *retcode, int paramLen) 
{ tag_t  entid = 0;  // Идентификатор объекта «линия» 
UF_CURVE_line_t line_coords; /* структура концевых точек линии*/
if (UF_initialize()) return; 
//заполнение координат концевых точек линии
line_coords.start_point[0]=0.; // X1
line_coords.start_point[1]=0.; // Y1
line_coords.start_point[2]=0.; // Z1
line_coords.end_point[0]=100.; // X2
line_coords.end_point[1]=100.; // Y2
line_coords.end_point[2]=100.; // Z2
// построение линии
UF_CURVE_create_line (&line_coords, &entid); 
UF_terminate(); 
//процедура выхода из приложения
int ufusr_ask_unload(void) 
{ return (UF_UNLOAD_IMMEDIATELY); }
 
6. Начать отладку
 
7. Результат: 
 
1>Компиляция манифеста в ресурсы...
1>Microsoft ® Windows ® Resource Compiler Version 6.1.6723.1
1>Copyright © Microsoft Corporation.  All rights reserved.
1>Компоновка...
1>   Создается библиотека D:\NX\cpp\proba7\Debug\proba7.lib и объект D:\NX\cpp\proba7\Debug\proba7.exp
1>proba.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__UF_terminate в функции _ufusr
1>proba.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__UF_CURVE_create_line в функции _ufusr
1>proba.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__UF_initialize в функции _ufusr
1>D:\NX\cpp\proba7\Debug\proba7.dll : fatal error LNK1120: 3 неразрешенных внешних элементов
1>proba7 - ошибок 4, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
 
кто-нибудь знает, что я делаю не так? 

 

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

Ну там вообще то много настроек в свойствах проекта - может что то и не так.

Проще поставить мастер, ничего сложного вроде нет - просто копируем файлы из

\UGOPEN\vs_files\VC\vcprojects\  в   "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcprojects\"

и каталог \UGOPEN\vs_files\VC\VCWizards\NX7_Open в "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCWizards\" ...


Еще пути можно прописать в Tools->Options->Projects and Solutions->VC++ Directories...

Может под другую платформу пишешь Win64 вместо Win32 или еще чего нибудь...

 

У меня такая ошибка была когда под NX32 брались библиотеки от NX64 (когда под оба NX компилил проект).  Тут в принципе только 2 варианта: или не находит, или не те...

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

У меня стоит NX64 и видимо библиотеки тоже x64, а VS могу выбрать только x32. А для того, чтобы появились библиотеки для NX32, его ставить надо? ну или я так понимаю VS переустанавливать для x64?

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

Да - или ставь NX32 или переставь VS с 64-битным компилятором...

Спасибо огромное! поставил VS x64 и все получилось! :smile:

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

Подскажите, пожалуйста, как создать проект для NX 7.5 в Visual Studio 2008. Делал все, как написано у отрывке из книги Тихомирова В.А., после нескольких попыток все-таки появился шаблон NX7 Open Wizard. При создании нового проекта выбираю тип dll и язык с++, дальше необходимо выбрать точку входа и выхода, как я понимаю:

 

cb002df7f11e00f12d6a3f1b15f1b67d.jpg

 

Пробовал различные комбинации, но после нажатия на Finish ничего не происходит, только внизу слева надпись "Создание проекта .... не удалось создать проект". После установки SP1 все тоже самое. Может быть есть еще какие-нибудь тонкости?

попробуйте скопировать другие шаблоны проектов(Wizard, Projects). Например, NX 8.5

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

Всем доброго времени суток)

Уже больше месяца разбираюсь с NX Open, много чего перечитал, включая книгу Тихомирова (полную версию на 438стр). Взялся писать программку для диплома. Остались вопросы, на которые никак не могу найти ответы, прошу вас подсказать)

 

Хотел переработать Анализ формируемости для построения разверток с учетом свойств материалов. Модуль не поддался, забил. Случайно вышел на разработчиков этого модуля из Китая, программа донор Анализа называется EasyForm. Встречается только в сборках с NX 4.0.3.3, в NX 5 уже свой продукт на основе китайского. Первый вопрос - где можно достать обновление до 4.0.3.3? через Журнал я бы этот модуль разложил, в нем есть все мне необходимое. В Сети не найти. Или может быть есть у кого версия 4.0.3 - 4.0.4?

http://www.itscz.net/software/unigraphics/pdf/nx_pdw_easy_form.pdf здесь инфа про EasyForm. Сейчас у меня есть NX 4.0.0.2 64bit.

 

Сейчас я пробую другой вариант. Понравилась Общая формовка. Вроде делает все то, что нужно, с учетом физических свойств, но из журнала, понятное дело, работает только с той моделью, на которой записывалась и я никак не пойму как сделать ее универсальной. Не хотел я делать через Блок стайлер, но иначе отметить нужные грани и конечные линии не получится, хотя автоматизировать процесс построения поверхности, на которую будет строиться формовка получилось. Грани программа сама не определит. В блок стайлере создал нужные мне кнопки и поля для значений, занес проект VS NX8 OPEN Wizard, откомпилировал, запускаю через Функцию пользователя и получаю ошибку. Не находит dlx файл, хотя я его подсунул во все папки проекта. Что в этом случае не так? Как вообще запустить такую программу с интерфейсом? И я не до конца представляю, как из журнала корректно перенести функции в код блок стайлера. Чтобы понять правильность вносимого кода, нужно как-то это все прогнать в среде NX.

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

Как у Вас задан путь к dlx-файлу? Если так:   theDlxFileName = "File_Name. DLX"  , то попробуйте в виде: "Disk:\\Folder_1\\File_Name. DLX"

 

Пример кода на VB

 

Public Sub New()
        Try
            theSession = Session.GetSession()
            theUI = UI.GetUI()
            theDlxFileName = "c:\\Users\\Roman\\Desktop\\ug\\Label_Leader\\Label_leader.dlx"
            theDialog = theUI.CreateDialog(theDlxFileName)
            theDialog.AddApplyHandler(AddressOf apply_cb)
            theDialog.AddOkHandler(AddressOf  ok_cb)
            theDialog.AddUpdateHandler(AddressOf  update_cb)
            theDialog.AddInitializeHandler(AddressOf  initialize_cb)
            theDialog.AddDialogShownHandler(AddressOf  dialogShown_cb)
        Catch ex As Exception
            '---- Enter your exception handling code here -----
            Throw ex
        End Try
    End Sub

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

Не хотел я делать через Блок стайлер, но иначе отметить нужные грани и конечные линии не получится

Доброго. Вы заблуждаетесь. Выбрать нужные вам элементы без блокстайлера возможно, вызвав UF_UI_select_with_class_dialog или UF_UI_select_with_single_dialog. Например, создайте меню с помощью функции uc1608 (точно не помню...но они там все uc160...) и далее к каждой кнопке подцепите нужную вам ф-ю выбора. Конечно не так наглядно как со стайлером.

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

Доброго. Вы заблуждаетесь. Выбрать нужные вам элементы без блокстайлера возможно, вызвав UF_UI_select_with_class_dialog или UF_UI_select_with_single_dialog. Например, создайте меню с помощью функции uc1608 (точно не помню...но они там все uc160...) и далее к каждой кнопке подцепите нужную вам ф-ю выбора. Конечно не так наглядно как со стайлером.

Интересно, спасибо большое! я встречал подобные функции на вывод окон без блокстайлера, но без выбора. Сейчас попробую, в таком случае как лучше уйти от переменных в функциях журнала, которые привязаны к элементам модели? В блок стайлере я помещаю функцию из журнала в тело, например, коллектора и она должна передать результат. Так я могу убрать от ссылок на элементы модели

Как у Вас задан путь к dlx-файлу? Если так:   theDlxFileName = "File_Name. DLX"  , то попробуйте в виде: "Disk:\\Folder_1\\File_Name. DLX"

 

Пример кода на VB

 

Public Sub New()

        Try

            theSession = Session.GetSession()

            theUI = UI.GetUI()

            theDlxFileName = "c:\\Users\\Roman\\Desktop\\ug\\Label_Leader\\Label_leader.dlx"

            theDialog = theUI.CreateDialog(theDlxFileName)

            theDialog.AddApplyHandler(AddressOf apply_cb)

            theDialog.AddOkHandler(AddressOf  ok_cb)

            theDialog.AddUpdateHandler(AddressOf  update_cb)

            theDialog.AddInitializeHandler(AddressOf  initialize_cb)

            theDialog.AddDialogShownHandler(AddressOf  dialogShown_cb)

        Catch ex As Exception

            '---- Enter your exception handling code here -----

            Throw ex

        End Try

    End Sub

Хорошо, если так можно, попробую сейчас, спасибо!

Как у Вас задан путь к dlx-файлу? Если так:   theDlxFileName = "File_Name. DLX"  , то попробуйте в виде: "Disk:\\Folder_1\\File_Name. DLX"

 

Пример кода на VB

 

Public Sub New()

        Try

            theSession = Session.GetSession()

            theUI = UI.GetUI()

            theDlxFileName = "c:\\Users\\Roman\\Desktop\\ug\\Label_Leader\\Label_leader.dlx"

            theDialog = theUI.CreateDialog(theDlxFileName)

            theDialog.AddApplyHandler(AddressOf apply_cb)

            theDialog.AddOkHandler(AddressOf  ok_cb)

            theDialog.AddUpdateHandler(AddressOf  update_cb)

            theDialog.AddInitializeHandler(AddressOf  initialize_cb)

            theDialog.AddDialogShownHandler(AddressOf  dialogShown_cb)

        Catch ex As Exception

            '---- Enter your exception handling code here -----

            Throw ex

        End Try

    End Sub

Помогло! Спасибо еще раз

post-54539-0-68269100-1466339471.jpg

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Guhl
      Есть вот такие штуки. Если не лень, то можете на оптопарах hcpl спаять самому На плк простая программа с высокоскоростным счетчиком  Как вариант, по прерываню от нуль метки переписывать значенин счетчика в регистр     А фанук сам не умеет разве в диагностике показывать количество импульсов, которые насчитал?
    • gudstartup
      это как например у датчика уровни ttl какой плк работает с ttl уровнями а если уж проверять то нужен тестер сигналов например lir 590 но надо жгут изготавливать и разъем который на аi приводах стоит для энкодера проще всего проверить заменой датчика только вот со сроками покупки беда  хотя может шестерня виновата??
    • scrimline
      Сомневаюсь что попало что-то, скорее всего оператор который работал до меня этой рукой не пользовался да и за эмульсией не следил. Думаю скорее закоксовалось, поскольку после команды рука стояла на месте секунды 2-3 и начала опускаться с рывком. По поводу ладдера, постараюсь скинуть, но на нашем предприятии проблемы и с флешками и с общей сетью, да и ПК на рабочем месте нет. 
    • Bot
      Команда CSD пообщалась с представителями компании «КС-ПРО» и выяснила, как происходило внедрение G-Station, сколько времени занял процесс перехода на новую платформу, узнала об организации совместной работы и о функционале платформы. Основное направление компании «КС-ПРО» — оказание комплекса услуг технического заказчика, в том числе и для крупных офисных девелоперов. Внедрение G-Station в «КС-ПРО» проходило в ноябре 2022 года. G-Station — это всего лишь один из модулей комплексной платформы G-Tech Suite. Специалисты компании отмечают, что G-Station действительно стала хорошей альтернативой BIM 360. Специалисты «КС-ПРО» получили доступ к полноценной единой информационной среде с облачным хранилищем файлов и моделей, а также такими возможностями, как: Управление проектами, пользователями и подрядчиками; Создание чек-листов; Создание шаблонов чек-листов с процессами согласования; Передача документации на строительную площадку; Просмотр 3D- и 2D моделей [...] View the full article
    • Bot
      АСКОН, российский разработчик инженерного программного обеспечения и ИТ-интегратор, подвел итоги 2023 года. Выручка компании выросла на 47% и достигла 5,6 млрд рублей, штат сотрудников увеличился до 1250 человек. Клиентская база пополнилась тысячью предприятий, и сегодня с решениями АСКОН работают почти 16 000 заказчиков из всех отраслей промышленности и строительства. На динамику бизнеса положительно повлияли рост промышленного производства, сопровождающийся инвестициями в цифровизацию, крупные инфраструктурные проекты и курс страны на технологический суверенитет. Лидерские позиции компании в разработке и интеграции подтверждены профессиональными рейтингами. АСКОН, единственный из разработчиков инженерного ПО, вошел в ТОП-100 российских ИТ-компаний в рейтинге CNews; второй год подряд — в десятку крупнейших ИТ-поставщиков в сфере промышленности и строительства по данным TAdviser; впервые назван в тройке ведущих proptech-компаний как [...] View the full article
    • esergey
      это всего лишь видео - я не шарю в этом ...  
    • lem_on
      ну с дуру известно что сломать можно.
    • Viktor2004
      руку привязки так сломать легко
    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
×
×
  • Создать...