proe二次開發(fā)使用toolkit開發(fā)trigger的程序

2013-05-06  by:廣州有限元分析、培訓(xùn)中心-1CAE.COM  來源:仿真在線

使用toolkit開發(fā)trigger的程序時,往往需要能夠連續(xù)通過trigger來觸發(fā)dll中的函數(shù).
我碰到的問題:
   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);

}

結(jié)果:以上代碼存在的問題:如果我們在第一次checkin到C/S中后,刪除test.dat文件,然后再進行checkin時,發(fā)現(xiàn)沒有再生成test.dat,在函數(shù)PDMTPIVCreatePostOperation()中所進行的對文件的操作都無效.
   原因:我們使用trigger觸發(fā)時,真正起作用的是函數(shù):PDMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin時起作用,所以在第一次調(diào)用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出現(xiàn)了上面的情況.所以注意的是:不要把一些重要的東西放在函數(shù)PDMDLLInit()中.


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:proe二次開發(fā)使用toolkit開發(fā)trigger的程序 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn) 有限元培訓(xùn) Solidworks培訓(xùn) UG模具培訓(xùn) PROE培訓(xùn) 運動仿真 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com