proe二次開發使用toolkit開發trigger的程序
2013-05-06 by:廣州有限元分析、培訓中心-1CAE.COM 來源:仿真在線
使用toolkit開發trigger的程序時,往往需要能夠連續通過trigger來觸發dll中的函數.
我碰到的問題:
1.配置trigger:
Name: CimDll
Event: Create PIV
Time: POST
RequireNO
DLL:Cim.dll
Function:PDMTPIVCreatePostOperation
2.源代碼:
int PDMDLLInit()
{
PTCERROR pdm_status;
FILE *g_pfileLog;
g_pfileLog =fopen("test.dat","w");
setbuf(g_pfileLog,NULL);
fprintf(g_pfileLog,"begin test\n");
pdm_status = PDMTriggerRegister("PDMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
if (pdm_status != PDM_SUCCESS)
{
printf("Failed to Register Trigger PIV Create Post.\n");
}
return (pdm_status);
}
int PDMTPIVCreatePostOperation(int argc, void **argv)
{
fprintf(g_pfileLog,"test\n");
.....
fprintf(g_pfileLog,"end test\n");
fclose(g_pfileLog);
}
結果:以上代碼存在的問題:如果我們在第一次checkin到C/S中后,刪除test.dat文件,然后再進行checkin時,發現沒有再生成test.dat,在函數PDMTPIVCreatePostOperation()中所進行的對文件的操作都無效.
原因:我們使用trigger觸發時,真正起作用的是函數:PDMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin時起作用,所以在第一次調用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出現了上面的情況.所以注意的是:不要把一些重要的東西放在函數PDMDLLInit()中.
相關標簽搜索:proe二次開發使用toolkit開發trigger的程序 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓 有限元培訓 Solidworks培訓 UG模具培訓 PROE培訓 運動仿真