iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 26271|回复: 3
打印 上一主题 下一主题

用VC启动CATIA

[复制链接]
跳转到指定楼层
楼主
发表于 2006-8-24 10:27:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册登录,享用更多网站功能!

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

x
有两种方法来操纵CATIA,楼上的朋友介绍过的方法:1.CAA C++ ;2.COM技术,组件服务器程序。下面给出实例代码:

1.COM技术

::CoInitialize(NULL);

ApplicationPtr myCatiaApp;
HRESULT Result=NOERROR;  
CLSID AppClsid;
IUnknown *pAppUnk=NULL;
Result = ::CLSIDFromProgID (L"CATIA.Application", &AppClsid);
  
Result = ::GetActiveObject (AppClsid, NULL, &pAppUnk);
if (FAILED (Result))
{
  if ((CoCreateInstance(AppClsid,NULL,CLSCTX_SERVER ,IID_IUnknown,(void**)&pAppUnk)) != S_OK)
   return;
}

Result = pAppUnk->QueryInterface (__uuidof(Application), (void **) &myCatiaApp);
pAppUnk->Release();
pAppUnk = NULL;
   
myCatiaApp.GetInterfacePtr();
myCatiaApp->put_Visible(TRUE);
//Cleanup COM...
CoUninitialize();

2.CAA C++环境

// Opens a session
  CATSession * pSampleSession = NULL;
  Create_Session("SampleSession",pSampleSession);

  // Opens a CATPart document and initializes the data
  CATDocument * pDoc= NULL;
  CATDocumentServices::New("CATPart",pDoc);
  if(NULL == pDoc) return 2;

  CATInit_var spInitOnDoc(pDoc);
  if(NULL_var == spInitOnDoc) return 2;

...................

...................

// Closes the session   
:elete_Session("SampleSession");
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
地板
发表于 2009-6-2 12:56:43 | 只看该作者

马上注册登录,享用更多网站功能!

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

x
板凳
发表于 2009-5-31 16:52:56 | 只看该作者

马上注册登录,享用更多网站功能!

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

x
沙发
发表于 2008-8-7 16:50:11 | 只看该作者

马上注册登录,享用更多网站功能!

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

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

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-12-24 10:18 , Processed in 0.012213 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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