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

Использование Openapi


Vladimir2004

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

Здравствуйте все.

Мне шеф поставил задачу: нарисовать в UG трубопровод считывая его координаты из файла. Нужно сделать какую-то внешнюю программку, которая пользовалась бы функциями UG.

Я так понимаю это можно сделать через Open Api?

Сам я ниразу не работал с UG, я в этом деле новичок. Си++ знаю хорошо, программирую на Buildere.

Не подскажите что нужно подключать к проекту и как?

Может подскажите где прочитать?

А ещё лучше маленький примерчик.

Спасибо.

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


С GRIP'ом связываться бы не советовал. Хоть он и поддерживается в UG, но не развивается. Поэтому можно столкнуться с невозможностью получить доступ к какой-либо возможности UG, которой не было в ранних версиях UG, и, которой соответственно не было в GRIP.

Проторенный путь -- использовать VisualC++, для которого есть шаблон и примеры. Говорят, что можно использовать и Borland C++Builder. Но для этого надо преобразовывать библиотеки и все не так просто. Я так и смог задействовать Borland C++Builder, пришлось устнавливать VC++.

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

Разобрался, спасибо. Всё оказалось довольно просто.

А вот как мне трубопровод нарисовать?

Знаю, что сначала надо линию нарисовать потом оптянуть её трубой.

Для начала пробую простую линию нарисовать:

tag_t * line1;

UF_CURVE_line_p_t lpt;

lpt->start_point[0]=0;

lpt->start_point[1]=0;

lpt->start_point[2]=0;

lpt->end_point[0]=50;

lpt->end_point[1]=100;

lpt->end_point[2]=0;

UF_CURVE_create_line(lpt,line1);

ничего не получается...

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

Попробуйте так

tag_t line1;

UF_CURVE_line_p_t lpt;

lpt.start_point[0]=0;

lpt.start_point[1]=0;

lpt.start_point[2]=0;

lpt.end_point[0]=50;

lpt.end_point[1]=100;

lpt.end_point[2]=0;

UF_CURVE_create_line(&lpt, &line1);

а еще лучше (как в примерах):

UF_CALL(UF_CURVE_create_line(&lpt, &line1));

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

to FFF

неа, не то. Компилятор ругается на &lpt. C &line1 результат тот же.

UF_CALL вообще незнает такой функции, а в каком она h-файле я не знаю.

Вообще UG ругается на lpt пишет:

The variable lpt is being used without being defined

типа я её ещё не определил?

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

Заработало! Как говорится дело было не в бабине...

Вот как надо было:

UF_initialize();

tag_t line1;

UF_CURVE_line_s lpt;

lpt.start_point[0]=0;

lpt.start_point[1]=0;

lpt.start_point[2]=0;

lpt.end_point[0]=10;

lpt.end_point[1]=0;

lpt.end_point[2]=0;

UF_CURVE_create_line(&lpt, &line1);

UF_terminate();

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

А ещё такой вопрос, в Visual C можно сделать exe-файл чтобы вызывал функции UG. Пробовал скомпилить, запускать никакого результата.

Для чего нужен exe-файл и как им пользоваться?

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

>Vladimir2004

Open C API programs can run in 2 different environments, depending on how the program was linked. The two environments are:

External - these Open C API programs are stand alone programs that can run from the operating system, outside of Unigraphics, or as a child process spawned from Unigraphics.

Internal - these Open C API programs can only be run from inside of a Unigraphics session. These programs are loaded into main memory along side of Unigraphics and access routines within Unigraphics. One advantage to this is that the executables are much smaller and link much faster. Once an Internal Open C API Program is loaded into memory, it can stay resident for the remainder of the Unigraphics session. If you call this program again, it executes without reloading (provided it was not unloaded). Internal Open C API programs work on the current part and automatically modify the part display.

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

Я вот пока понять не могу:

Скомпилил exe файл, скопировал его в папку UGII чтобы библиотеки все видел, делаю все теже команды по рисованию трубопровода - ничего. Запускается чёрное досовское окно и висит.

Может ещё надо какую-нибудь команду давать по открыванию UG?

В Helpe я искал, нифига не нашёл...

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

Вообще внешняя программа позволяет работать с функциями UG

также как и внутренняя

Чтобы появился результат надо создать часть и потом сохранить ее

Надо иметь в виду что на запуск exe нужна отдельная лицензия

Часть функций по интерактивному выбору, подсветке ... не имеет смысла

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

в дистрибутиве UG есть пример external UF: ext_uf_example.c .

может, сначала "потренироваться на кошках" -- добиться работоспособности этого примера, а потом по его подобию сотворить свой ?

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...