iCAx开思网

标题: Pro/E二次开发 [打印本页]

作者: Jasn    时间: 2005-5-13 15:37
标题: Pro/E二次开发
我的代码如下,打开一个零件。但为什么不能编缉和关闭这个零件
  
 &nbsproFamilyName name;
 &nbsproMdl part;
 &nbsproError err;
  
  // 提示用户输入零件名
 &nbsproMessageDisplay( MSGFIL, "EnterPartName" );
  err=ProMessageStringRead(PRO_FAMILY_NAME_SIZE, name);
  if (err != PRO_TK_NO_ERROR)
    return;
  
  // 从磁盘中打开文件
  err = ProMdlRetrieve( name, (ProMdlType)PRO_PART, [$part )]
  //较验打开文件
  if ( err != PRO_TK_NO_ERROR )
  {
   &nbsproMessageDisplay( MSGFIL, "FailedRetrievePart", name );
    return;
  }
  
  // 打开一个窗口并显示零件
  ProObjectwindowCreate( name, PRO_PART, NULL );
  ProSolidDisplay( (sld_part*)part );
作者: chenxi20000    时间: 2005-5-15 23:03
把窗口激活应该就能编辑了
作者: Jasn    时间: 2005-5-16 10:36
怎么激活
作者: Jasn    时间: 2005-5-16 12:15
使用ProWindowActivate函数就能激活窗口,Pro/E的头文件解释它的参数是一个Window的句柄,而在ProObjectwindowCreate返回的参数说是ID真是搞不清到底是什么既念。试过了才知道就一回事 哈哈
  
不过还有一个问题,为什么关闭还是不能用呢?我想打开一个窗口,就象Pro/E中用打开命令打开一个文件一样的效果。
作者: Jasn    时间: 2005-5-16 12:37
原来不用调用ProSolidDisplay就能显示一个实体
我的源码现在如下就能显示了,而且一切正常
ProFamilyName name;  
 &nbsproMdl part;  
 &nbsproError err;  
  
  // 提示用户输入零件名  
 &nbsproMessageDisplay( MSGFIL, "EnterPartName" );  
  err=ProMessageStringRead(PRO_FAMILY_NAME_SIZE, name);  
  if (err != PRO_TK_NO_ERROR)  
    return;  
  
  // 从磁盘中打开文件  
  err = ProMdlRetrieve( name, (ProMdlType)PRO_PART, [$part )]  
  //较验打开文件  
  if ( err != PRO_TK_NO_ERROR )  
  {  
   &nbsproMessageDisplay( MSGFIL, "FailedRetrievePart", name );  
    return;  
  }  
  
  // 打开一个窗口并显示零件  
  int nWindowID;
 &nbsproObjectwindowCreate( name, PRO_PART, [$nWindowID)]  
  ProWindowActivate( nWindowID );




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3