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

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

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




  • Сообщения

    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
    • gudstartup
      @david1920 имеется ввиду платы на системах с сертификацией опций фалом oprminf старые в расчет не принимаются вы свой 18i восстановили?
    • gudstartup
      очень даже спрашивают как обязательную информацию для проверки вашей компании налоговый идентификатор должен быть указан. на myfanuc не спрашивают а вот на портале к сожалению просто так не зарегаться. 
    • david1920
      На 0I-TC mate менял плату управления приводами На 18i-TB менял для диагностики платы процессоров (один был от Spinner другой простой) процы были одинаковые Всё работает
    • brigval
      Браком 1.04В версии 1.04Добавлено: Автоуменьшение высоты шрифта многострочного наименования в ОН чертежа.Добавлено: Переименование поверхностей, баз, размеров в порядке их следования на чертеже.Добавлено: Переименование изображений по ГОСТ: сначала виды, затем разрезы, сечения, выносные элементы.Добавлено: Выравнивание неассоциативных видов.Добавлено: Ручной ввод шага и угла наклона штриховки.Добавлено: Перемещаются в макроэлемент компоненты, исключаемые из спецификации.Добавлено: Выбор количества значащих цифр в значении площади поверхности детали для вставки в ТТ.Добавлено: Возможность не авторазмещать ТТ перед конвертацией чертежа в PDF.Добавлено: Добавлены кнопки «Выделить все включенные в расчет» и Выделить все исключенные из расчета».Добавлено: Версия КОМПАС-3D Home показывается в программе со словом Home.Добавлено: Улучшен алгоритм считывания и вставки ТТ чертежа.Добавлено: При конвертации чертежа в PDF удаляется старый файл с таким же обозначением в начале имени, как обозначение в начале имени нового файла.Добавлено: Улучшено считывание номеров позиций из 3D-модели сборки.Исправлено: Иногда скрытые и потом показанные объекты чертежа отображались не серым цветом.Исправлено: Иногда после ручного заполнения графы «Масса» ОН чертежа в окне программы масса могла отображаться не правильно.Исправлено: В некоторых случаях из ОН чертежа могла не считываться литера.Исправлено: В некоторых окнах программы неправильно показывался заголовок окна программы.Исправлено: Другие замеченные мелкие ошибки и неточности кода.Скачать
    • boomeeeer
      Не помню чтобы у меня такое спрашивали при регистрации.
    • Snake 60
      @eljer0n  Откройте макрос SaveDRW.swp редактором VBA Найдите вот эти строки: Поменяйте выделенную цифру на нужную вам 3 или 4 - это количество символов которое останется от имени конфигурации. PS При сохранении в PDF тоже ругается на неправильное название чертежа, т.к. тоже обрезает название конфигурации до двух знаков, там тоже надо править при желании...
    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
×
×
  • Создать...