找回密码
 注册
Simdroid-非首页
查看: 4688|回复: 135

[前后处理] [讨论贴][已解决]Procast 中user function使用问题

[复制链接]
发表于 2013-2-28 14:48:06 | 显示全部楼层 |阅读模式 来自 清华大学
本帖最后由 andrew_zwi 于 2013-3-2 15:42 编辑

说在前面:本帖本意是希望通过向大家求教和讨论关于procast中userfunction部分内容 并给以后的网友一点启示
基本情况:1.使用Procast 2008 破解版
2.系统: WIN 7 64位系统
3.编译器为 Microsoft visual studio 2008

遇到的问题:温度场中一个传热边界的温度与y坐标有关,需要使用procast  userfunction来设置

以下是解决的方案
游客,如果您要查看本帖隐藏内容请回复








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2013-2-28 14:53:37 | 显示全部楼层 来自 清华大学
Simdroid开发平台
我在百度贴吧里找到的帖子 出处已经不知道了 但我觉着写的挺好的 希望对大家有用 我试了 可是对我确没用的!!!

关于ProCAST的C++编译器(VC++2005)
1在ProCAST2008的bin目录中,有一个procastRun.bat。程序运行时,这个文件会被复制到当前实例,并重命名为prefix_procastRun.bat。两个文件内容完全相同。后者拷贝过来后会被执行。
2在prefix_procastRun.bat的第10行,有一个对VC\vcvarsall.bat的调用。
(VC++6.0版本,有的是vsvars32.bat)
vcvarsall.bat中,有
:x86
if not exist "%~dp0bin\vcvars32.bat" goto missing
call "%~dp0bin\vcvars32.bat"
goto :eof
实际执行了vcvars32.bat
vcvars32.bat的内容VS80COMNTOOLS%vsvars32.bat"
即执行了Microsoft Visual Studio 8\Common7\Tools\ vsvars32.bat
也就是最终执行的还是vsvars32.bat。这是一个配置VC++环境变量的bat
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-comffice:office" />
按照网上的配置方法
1、安装相关编译器
VC++ express2008官方免费版(其他版本也可以)
2、设置环境变量
在Path中添加(最好放在最前面) X:\Program Files\Microsoft Visual Studio 8\VC\bin
添加LIB变量,X:\Program Files\Microsoft Visual Studio 8\VC\lib
添加INCLUDE变量,X:\Program Files\Microsoft Visual Studio 8\VC\include
3、修复VC的bug。
复制X:\Program Files\Microsoft Visual Studio 8\Common7\IDE\mspdb80.dll到X:\Program Files\Microsoft Visual Studio 8\VC\bin\
一直不能生成libprocastdll.dll。怀疑是vsvars32.bat没有被执行,后来手动运行vsvars32.bat。在用user function的过程中生成了libprocastdll.dll。但却出现了
Feature procast_user_func not authorized by license file的错误。
百度一下,别人也有遇到过,反过去查破解的授权文件license.dat
里面有procast_user_funct,但确实没有procast_user_func,仍然没有解决Procast2008破解版使用user function的问题,准备转而使用ProCAST2009.0+visual-Environment5.0,据说可以用user function
在安装ProCAST2009.0+visual-Environment5.0的过程中,先安装了Visual-Environment5.0。这样在安装Procast2009时就检测到了Visual-Environment5.0,也没有再重复安装Flex manager。但这两个东西有一样的pam_lmd.lic。按照说明是把Visual-Environment5.0的pam_lmd.lic替换成Procast2009的pam_lmd.lic,然后Re-read一下,ProCAST2009可以启动了。(不需要再为ProCAST2009配置Service,否则出错,可能它们公用一个Service才对)
问题最终解决:
将ProCAST2009的bin文件夹下procastRun.bat修改
@echo off
set prefix=%1
echo %prefix%
REM Erase old solution
DEL libprocast.dll
REM Init tools for dynamic library compilation
REM : %2 = machine type : x64 or x86
@call"C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat" %2
我安装的是VC++2005 express,只有这样改才可以(改成运行vsvarsall.bat,还是会找不到vsvars32.bat)
ProCAST安装在云端,ghost重装系统需修改计算机名,否则运行用户函数时会提示授权出错

回复 1 不支持 0

使用道具 举报

 楼主| 发表于 2013-2-28 15:00:38 | 显示全部楼层 来自 清华大学
本帖最后由 andrew_zwi 于 2013-3-2 15:17 编辑

我编辑的程序先贴出来 同大家共享
#include <stdio.h>  
#include <stdlib.h>  
#define real double  
#ifdef WIN32  
#define EXPORT _declspec(dllexport)  
EXPORT real func_texternal(char*, int, real, real, real, real, real, real, int);  
#else  
real func_texternal(char*, int, real, real, real, real, real, real, int);  
#endif  
extern real usertemp1(int);  
extern real userfs1(int);  
extern real uservx1(int);  
extern real uservy1(int);  
extern real uservz1(int);  
extern int nodNum (real,real,real,int,real*,real*,real* );  
/*  

  *    ambient temperature (applied on external surfaces)  

  */  
real func_texternal(  
    char  prefix[],     /* case name  */  
    int   dimension,    /* 2 = 2D ; 3 = 3D */  
    real  temp,         /* current temperature */  
    real  fs,           /* current fraction of solid */  
    real  time,         /* current time */  
    real  x_coor,       /* local coordinates: x */  
    real  y_coor,       /* local coordinates: y */  
    real  z_coor,       /* local coordinates: z */  
    int   numBC)        /* boundary condition ID number */  
{  

/* ------------- Do not change anything above this line ------------- *  
  * ------------- Program your function below this line  ------------- */
          /*本程序的默认单位是m 以下为本人编辑部分*/
   real Temp;
      /*边界温度*/
      y_interface=0.01*time;

   if (y_coor >y_interface)
      Temp = 1184;
   else
      Temp = 40;

   return Temp;


}  

  

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2013-2-28 15:12:09 | 显示全部楼层 来自 清华大学
本楼 属灌水  发表一些个人看法
1.接触Procast 半年多了总算是有点起色 但是还是很多不同
期间看了很多帖子 其中 沙漠浪子的帖子 收获最大 在这里谢谢了!
2.其次就是感觉做模拟的就像一句俗话说的
“有些事已经很努力了 可是结果却是个屁”
路上很坎坷 同志多努力啊!!!
回复 不支持

使用道具 举报

发表于 2013-4-12 00:09:33 | 显示全部楼层 来自 河北唐山
您好,我按照帖子修改了路径和环境变量等,我的VC是6.0版本的,但是还是没有libprocastdll.dll,请问是什么情况?
回复 不支持

使用道具 举报

发表于 2013-3-16 10:12:59 | 显示全部楼层 来自 辽宁沈阳
我也遇到这个问题
回复 不支持

使用道具 举报

发表于 2013-3-27 10:39:12 | 显示全部楼层 来自 北京
正好遇到此问题
回复 不支持

使用道具 举报

发表于 2013-3-28 15:25:09 | 显示全部楼层 来自 湖南长沙
借鉴。。
回复 不支持

使用道具 举报

发表于 2013-3-29 18:57:38 | 显示全部楼层 来自 辽宁沈阳
通过我的实际经历,user fuction 不能使用如用上述方法后还是不行,那需要设置vs的sdks路径
回复 不支持

使用道具 举报

发表于 2013-4-7 20:50:06 | 显示全部楼层 来自 河北唐山
探讨学习,交流讨论
回复 不支持

使用道具 举报

发表于 2013-4-8 07:53:52 | 显示全部楼层 来自 河北廊坊
学习下啊 应该很精彩
回复 不支持

使用道具 举报

 楼主| 发表于 2013-6-3 15:47:01 | 显示全部楼层 来自 清华大学
mumu914 发表于 2013-4-12 00:09
您好,我按照帖子修改了路径和环境变量等,我的VC是6.0版本的,但是还是没有libprocastdll.dll,请问是什么 ...

我用的visual studio 2012的 之前用vc的时候也出现不了libpraocastdll.dll文件  我不知道原因 你可以试一试用高级版本。
回复 不支持

使用道具 举报

 楼主| 发表于 2013-6-3 15:48:01 | 显示全部楼层 来自 清华大学
小熊爱念 发表于 2013-3-29 18:57
通过我的实际经历,user fuction 不能使用如用上述方法后还是不行,那需要设置vs的sdks路径 ...

哦 你可以具体的说一说 我并不是很懂你所表达的意思。
回复 不支持

使用道具 举报

发表于 2013-6-3 17:25:43 | 显示全部楼层 来自 山东临沂
学习一下
回复 不支持

使用道具 举报

发表于 2013-8-12 15:59:08 | 显示全部楼层 来自 辽宁沈阳
andrew_zwi 发表于 2013-6-3 15:48
哦 你可以具体的说一说 我并不是很懂你所表达的意思。

Try1)查了一下环境变量的库路径(LIB),Program Files\Microsoft Visual Studio 9.0\VC\lib是在的;查lib目录,果然找不到kernel32.lib文件。
Try2)看到我的SDK路径还是vs2005时候的路径:Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib,已经无效了,而Visual Studio 9.0\VC下没有PlatformSDK目录。
Try3)百度说,vs2008的SDK路径应该是这个:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib,查了一下,C盘果然有这个瑙鲁。(注意:无论安装目录在哪里,都在C盘)
Try4)在环境变量LIB添加上述SDK目录,cl,成功!

按照上面设置  有时可以解决vs2008 下userfaction 不能运行问题
回复 不支持

使用道具 举报

发表于 2013-8-16 11:28:19 | 显示全部楼层 来自 浙江丽水
学习学习!
回复 不支持

使用道具 举报

发表于 2013-8-30 15:10:18 | 显示全部楼层 来自 云南昆明
小熊爱念 发表于 2013-8-12 15:59
Try1)查了一下环境变量的库路径(LIB),Program Files\Microsoft Visual Studio 9.0\VC\lib是在的;查l ...

按照你说的做,调试成功!非常感谢!
回复 不支持

使用道具 举报

发表于 2013-9-2 13:52:43 | 显示全部楼层 来自 辽宁沈阳
没有用过
回复 不支持

使用道具 举报

发表于 2013-9-13 11:29:16 | 显示全部楼层 来自 陕西西安
也遇到了这个问题
回复 不支持

使用道具 举报

发表于 2013-9-18 18:17:16 | 显示全部楼层 来自 辽宁沈阳
peakwind 发表于 2013-8-30 15:10
按照你说的做,调试成功!非常感谢!

不客气
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-16 12:34 , Processed in 0.051707 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表