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

Некоторые вопросы по Ug Open и Open++


OriginalZealot

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

Есть несколько небольших вопросов не совсем понятных из документации(странная она всё таки)

1) UF_initialize используется тоько для захвата лицензии? Очень уж долго она выполняется, нельзя ли как-нибудь ускорить этот процесс (в случае External)

2) Как работает UF_is_initialized? - даже если процесс не завершен и не была вызвана UF_terminate данная функция возвращает 0 - т.е. среда Open API не инициализирована.

3) Может ли UF_terminate как-нибудь не освободить лицензию? После пары вызовов UF_initialize/UF_terminate следующий вызов UF_initialize вылетает с Access violation

4) UG Open++ не совсем юзабельна в MSVС++ в плане STL - при статической линковке получаются два экземпляра билиотеки STL - одна в создаваемой программе, а другая в недрах UGOpen++ API. И когда возвращается значение UgAttributableObject::askStringAttributeTitles() (которое очень трудно использовать не сохранив ибо это vector<string>), происходит передача объекта STL созданного одним экземпляром библиотеки в управление другому и в силу свойств реализации библиотеки STL в MSVC++ второй экземпляр библиотеки не может освободить то, что созданно первым безошибочно. В виду этого приходится отказываться от удобств работы с атрибутами предоставляемых UgAttributableObject.

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


1) да, может сервер загружен хорошо

3)UF_terminate освобождает лицензию

у меня проблем с этим не было

4)Вы все понимаете правильно но stl пользоваться можно

используйте ту версию компилятора VC которая была

рекомендована UGS для соответствующей версии UG

Не используйте debug так как конструктора и деструктора

там могут быть реализованы по разному (release)

Чтобы не забыть можете пользоваться pragma ...

Проблем в этом случае не будет

Без stl по любому не обойтись

мало того что это вещь сильно упрощает программирование

та в UG работа с меню реализована с stl

На С меню уже не эффективно писать

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

Есть одно интересное наблюдение - если исполнить следующий код:

UF_initialize();

UF_terminate();

UF_initialize();

на последней инициализации вылетает exception с описанием ошибки:

"UF_initialize may not be called once UF_terminate is called"

Следует ли это понимать как:

"UF_initialize не может быть вызвана, если хоть раз вызвана UF_terminate"?

Если моё предположение верно - то как мне разрешить задачу многократной инициализации UG/Open. Перезагруаемая dll не помогает - достаточно чтоб именно в данном процессе уже был вызван UF_terminate().

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

Извините, если немного не в тему. Я в С++ не очень, в основном писал на UG12-15 на С. Так, вот, там при работе с некоторыми модулями, например с MENUBAR, захваченная лицензия не освобождалась до конца сессии. Например, у меня был модуль дополнений к drafting, часть кода работала с меню, стартовал этот модуль через startup, и лицензия на UFUN (user functions) не освобождалась, пока не закрывался UG (причем все эти особенности были хорошо описаны в документации по UG API). Еще я бы посоветовал Вам посмотреть лог файл, генерируемый ugflexlm. Там прописываются захват и освобождение лицензий.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Guhl
      По делу что-нибудь скажешь? Или болтаешь, чтоб говном изо рта не воняло, философ? @lem_on Знаешь кто такой уебок? обсц. (обсценное) человек, раздражающий кого-либо своими словами, поведением, внешним видом и т. п., вызывающий желание его ударить, побитьТак вот, @lem_on, ты самый настоящий уебок
    • lem_on
      "Когда ты умер, ты об этом не знаешь, только другим тяжело. То же самое, когда ты тупой"
    • vasillevich68
      Передайте, что ни чего страшного не будет. Максимум, что может произойти, так это, в один прекрасный момент вал лопнет, и датчики вибрации дадут команду на остановку насоса   
    • Guhl
      Но ведь токовый сигнал надо  для начала в цифровой преобразовать Поэтому полный цикл преобразования не может быть быстрее аналоговой части У тиристорных приводов частота отклика не более 30Гц, но это не из-за ОУ, а из-за принципа работы приводов Да у обычного 741 частота 1Мгц Насколько это быстрее 32нс?     @gudstartup Аналоговая цепь всегда быстрее цифровой Так и живем Честно говоря я обескуражен Ведь тут же даже житейская логика говорит о том, что цифровая цепь привода не может быть быстрее аналоговой, просто потому что аналоговая является подсистемой цифровой цепи   Аналоговый вычислитель всегда выиграет по скорости у цифрового аналога Точность может быть ниже, но скорость всегда выше Сравните скорость работы сумматора на ОУ и на процессоре И оставьте свои ужимки, противно смотреть Или вы продолжатель дела "короля саркастических ужимок" (с)?
    • gudstartup
      с люфтами эта функция никак не борется она их пропускает гася резонанс ни насколько обработка контура тока длится 32нс попробуйте это сделать на ваших оу. @Guhl отдыхайте вы явно перегрелись у вас аналоговый процессор
    • Guhl
      Вы хотя бы в курсе насколько быстрее аналоговая цепь, чем цифровая?  
    • gudstartup
      вы хотя бы в курсе сколько длится в сигнальном поцессоре servo фанук обработка контура тока и сколько это было на ваших допотопных приводах и какие скорости и точность контура сейчас достижимы ,благодаря этому. добейтесь этого на ваших аналоговых схемах с оу и я сниму перед вами шляпу. полностью некорректное сравнение.
    • Ветерок
      Можно заменить гнутый швеллер на прямоугольную тонкостенную трубу. Если не стоит задача всё гнуть самостоятельно.
    • Guhl
      Большие люфты вызывают колебания. Причем эти люфты возникают не только при смене направления движения, а при других условиях. Путем борьбы с люфтами, борятся с колебаниями Для этого и есть dual position feedback  Ну вот видите, уже лучше. Борьба с люфтами - борьба с колебаниями Так для чего нужен dual position feedback? Назовите вы ее хоть чертом лысым, но она как боролась с люфтами, так и борется 
    • gudstartup
      а вам для чего писать то вы все равно читать не можете. для кого я   приводил описание функции и раздел к которым она отнесена уважаемыми вами японцами.   потому что он приводит к вибрациям!!!! я от вас просто офигиваю ну нельзя же так упорствовать в очевидном!!
×
×
  • Создать...