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

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

Здравствуйте, я пытаюсь задать каталистичиский процесс на стенке состоящий из трех реакций и написав соответвующую UDF, пытаюсь интрепретировать её во Fluent, на что получаю

error "structure reference not implemented" на следующее выражение

if(!strcmp(r->name,"reactoin-1"))

Затем я взял код UDF из мануала по Fluent

#include "udf.h"

DEFINE_DPM_OUTPUT(melting_output, header, fp, p, thread, plane)

{ real d;

d = P_DIAM(p);

d = p->state.diam;

}

Но таже самая ошибка "structure reference not implemented" появляется снова

d = p->state.diam;

...Подскажите пожалуйста как все таки рабоать со структурами в UDF...

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


Попробуйте использовать компилируемые UDF. Возможно, использование указателей не поддерживается в интерпретируемых UDF.

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

Дело в том что я хочу задать сам значения скоростей реакции а для этого использую DEFINE_SR_RATE как написано в 4.3.16 мануала

Macro: DEFINE_SR_RATE ( name, f, t, r, my, yi, rr)

Argument types: face_t f

Thread *t

Reaction *r

real *mw

real *yi

real *rr

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

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

Просто используйте компилируемые UDF (Для этого нужно, чтобы был установлен Microsoft Visual C++, v6.0 или выше).

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

Спасибо большое за помощь, но дело в том что у меня установлен MS Visual Studios , а проблема все таже. Скорее всего надо прописать гдето пути или еще чтото в этом роде. Не подскажете как это все сделать правильно?

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

Если проблема все та же, то есть fluent ругается, что не поддерживает структуры, то Вы по-видимому все еще используете интерпретируемые функции. Если VC++ установлен, то выбираете Define->User defined->Functions->Compiled.... Затем выбираете исходники своих функций в окне Compiled UDFs в области Source files, нажимаете Bild. Если компиляция и компоновка dll прошла нормально (при этом в консоль Fluent ,будет выдано чтото вроде этого:

...

Creating library libudf.lib and object libudf.exp

Done.

), то в Вашей рабочей директории появится папка libudf, в ней папка ntx86, в ней папка 2d

или 3d, а в папке 2d(3d) Ваша dll. Если она там есть, то можете нажимать кнопку Load в окне Compiled UDFs

После загрузки dll, функции становятся доступными из интерфейса.

Если компиляции не получилось, то либо в исходниках ошибки (тогда в консоль будет выдано краткое их описание), либо Fluent не знает пути к директориям компилятора VC. В последнем случае надо проверить, установлены ли переменные окружения include, lib и path на соответствующие пути к директориям include, lib и bin компилятора.

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

Подскажите пожалуйста, где проверить и как установить переменные окружения include, lib и path на соответствующие пути к директориям include, lib и bin компилятора?

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

Правой кнопкой мыши на My Computer -> Properties, на вкладке Advanced кнопка Environment Variables (внизу окна). Откроется окно Environment Variables. Ищем переменные INCLUDE, LIB и PATH в списках User Variables и System Variables. Если в каком-нибудь списке они есть, то проверяем их значения. Они должны быть примерно такими (зависит от места установки VC):

INCLUDE=C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

LIB=C:\Program Files\Microsoft Visual Studio\VC98\LIB

PATH=C:\Program Files\Microsoft Visual Studio\VC98\BIN

При этом указанные переменные могут содержать и другие пути, в зависимости от установленных у Вас программ. Разные пути добавляются в переменные окружения через разделители ; (точка с запятой).

Посмотреть переменные окружения также можно, если в режиме командной строки ввести команду SET без параметров.

При редактировании переменных окружения будьте осторожны, посколько оно может повлиять на работу других программ.

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

Лучше просто переустановить Visual Studio, только в начале инсталляции надо будет отметить галочку Set Environment (кажется так), потом после перезагрузки все будет работать

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ola_ferret
      Спасибо Вам огромное!!! Все получилось!!!
    • Аверьянов Николай
    • Александр1979
      На старых фануках это опция. Какая у вас модель ЧПУ Fanuc ?
    • kirass
      Можно! Свойства пользователя->параметры кэширования-> обновлять кэш при входе(убрать галку)  
    • zwg
    • Аверьянов Николай
      помогите пжл. какие существуют разрешающие параметры для прямого программирования угла через А? пример проги:    G0X0 G1Z0F0.5 X100. X120.,A10. дело не в запятой перед "А" и не в точках после цифр.   и не в том, что станок старый или в нём есть ось А. дело именно в параметрах, в которых есть бит, ноль или единица, --- разрешение данного программирования   
    • gudstartup
      и что? а сколько станок зарабатывает за месяц  он же у вас в 3 смены пашет или он воздух фрезерует? время-деньги и это знают все самое главное в ремонте станков это его оперативность если оборудование будет стоять потому что сервис и ваше омтс  просто подумать хочет то скоро будет   надо думать о том что кушать модульный и блочный ремонт для производства это лучший вариант для бесперебойной работы и исполнения заказов .   идеи вам были предложены . отсутствие опыта компенсируется наличием схемы которую вы назвали элементарной.   если вы думаете что с вашим омтс времени на покупку радиоэлементов уйдет меньше чем на покупку блока то напрасно. даже есть обратная зависимость чем дороже приобретаемая запчасть  тем быстрее ее привозят потому что маржа больше там просто больше нет элементов на которых его можно было бы собрать.
    • Torin
      Есть вопрос по Лоцману, а где он хранит данные? К примеру в Windchill это vaults, а тут где?
    • Guhl
      Точно, я был неправ Разрешение дает сигнал с оптопары, которую, как я сейчас вспоминаю, включает падение напряжение на диоде в звене постоянного тока
    • Alexey8107
      Чем это плохо? А то что станок стоит, так что ему делать? На данный момент да, сижу с блоком разбираюсь и плохого ничего в этом не вижу, в отличие от вас... А параллельно еще решаю десяток задач, в том числе и по заказу нового блока. Кстати, этот блок в сборе стоит 640 000, силовая плата 320, сигнальная плата 180, IGBT модули по 27 каждый, тиристорный блок 17. Почти все есть в наличии. И да, на Али это все можно купить гораздо дешевле, но без каких либо гарантий, привезти с Китая проблема даже окольными путями и у нас на заводе этой хренью никто страдать не будет. Так что ОМТС проверяет контрагента... То, что я чего то не пишу, это не означает что я этого не делаю, вы сами писали о том, что я слишком много пишу. По вашей просьбе сокращаю.  Мы уже говорили на эту тему. Я не спрашиваю, что у меня сломалось и дайте мне ответ что. Я знаю что сломался PSM, так как SPM работает, если ему подкинуть заведомо исправный PSM, описываю симптомы и спрашиваю Чувствуете разницу?  Вот и сижу разбираюсь, пока решается вопрос с новым. Вот лично я не вижу ничего в этом плохого. Лично мне это интересно, делаю заметки на будущее для себя и выкладываю в открытый доступ(видимо тоже не хорошо), может кому-то будет полезно. Да, я хоть и инженер электронщик, но всего знать просто невозможно, так что простите что вот таких элементарных для вас вещей не знал, что на IGBT модулях тут собран и выпрямитель и рекуператор одновременно
×
×
  • Создать...