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培训 运动仿真 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com