找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16296|回复: 9
打印 上一主题 下一主题

请问如何将鼠标点选的多个面放进一个CATLIST呢?

[复制链接]
跳转到指定楼层
1
发表于 2012-11-30 10:11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
我想将鼠标点选的多个面放进一个CATLISTV(CATISpecObject_var),在百科全书里找到一个CATCSO好像是类似的功能,但是也没找到怎么转变成CATLISTV的方法。。
第一次用CAA,问的问题有些初级,希望大大们不吝赐教
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2012-11-30 11:18:13 | 只看该作者
新建一个CATListValCATISpecObject_var类型的列表,然后Append你选择的各面
CATISpecObject_var spSpecSur1  = ...;//你选择的面,如果面元素为体上面或者结构树上不存在,则需通过CATBody转换
CATISpecObject_var spSpecSur2  = ...;
CATISpecObject_var spSpecSur3  = ...;
......

CATListValCATISpecObject_var spListSurs;
spListSurs.RemoveAll();
spListSurs.Append(spSpecSur1 );
spListSurs.Append(spSpecSur2 );
spListSurs.Append(spSpecSur3 );
.......
3
发表于 2012-11-30 11:40:25 | 只看该作者
linlily0925 发表于 2012-11-30 11:18
新建一个CATListValCATISpecObject_var类型的列表,然后Append你选择的各面
CATISpecObject_var spSpecSur ...

谢谢,问题是如何获取我选择的面呢?
4
发表于 2012-11-30 12:05:11 | 只看该作者
Agent,百科全书里面User Interface - Commands-Managing Selection,里面写的很详细
5
发表于 2012-11-30 12:08:26 | 只看该作者
linlily0925 发表于 2012-11-30 12:05
Agent,百科全书里面User Interface - Commands-Managing Selection,里面写的很详细

谢谢!
6
发表于 2012-12-1 18:20:48 | 只看该作者
linlily0925 发表于 2012-11-30 11:18
新建一个CATListValCATISpecObject_var类型的列表,然后Append你选择的各面
CATISpecObject_var spSpecSur ...

你好,请问“需通过CATBody转换”,这步应该怎么转换呢?我直接将 CATISurface* 赋给 CATISpecObject_var,就变成NULL了
7
发表于 2012-12-2 03:11:53 | 只看该作者
ayanamist 发表于 2012-12-1 18:20
你好,请问“需通过CATBody转换”,这步应该怎么转换呢?我直接将 CATISurface* 赋给 CATISpecObject_var ...

听得不明白
8
发表于 2012-12-3 09:27:20 | 只看该作者
本帖最后由 ayanamist 于 2012-12-3 09:29 编辑
beeler 发表于 2012-12-2 03:11
听得不明白

我想用CATIPrtFactory中的CreateThickness为鼠标点选的面创建厚度特征,函数原型是
public virtual CATISpecObject_var CreateThickness   ( const CATLISTV(CATISpecObject_var)*ihObjectList,  double iOffset) = 0

我做了一个鼠标点选的CATPathElementAgent,选中的是CATSurface,我该如何将这个CATSurface 放进CATLISTV(CATISpecObject_var)里,好作为参数传递给CreateThickness呢?如果我将CATSurface*直接转换成CATISpecObject_var的话,就变成NULL了。。

刚开始做CAA,可能问题说的不太清楚,见谅……下面是代码

BuildGraph()里面:
  1.         _daPathEltSurface = new CATPathElementAgent("SelectSurface");
  2.         _daPathEltSurface->AddElementType(IID_CATSurface);
  3.         _daPathEltSurface->SetBehavior(CATDlgEngWithPSOHSO | CATDlgEngWithPrevaluation | CATDlgEngValuedFromCSO);
复制代码
响应函数ActionOne()里面:
  1.     CATSurface * piSurface = NULL;
  2.     CATBaseUnknown *obj = NULL ;

  3.     CATPathElement * pathmodel = _daPathEltSurface->GetValue();
  4.     if ( ( NULL != pathmodel) && (pathmodel->GetSize()> 0) )
  5.         obj = (*pathmodel)[pathmodel->GetSize()-1];
  6.     else
  7.         return FALSE;
  8.    
  9.     if ( NULL != obj )
  10.     {
  11.         cout<<"obj != NULL"<<endl;
  12.         HRESULT hr = obj->QueryInterface(IID_CATSurface, (void**)&piSurface);
  13.         if (SUCCEEDED(hr) && NULL != piSurface)
  14.             cout<<"piSurface != NULL!"<<endl;
  15.         else
  16.             return FALSE;
  17.     }
  18.     else
  19.         return FALSE;

  20.     CATICGMUnknown* piCGMUnkonwn = piSurface;
  21.     if (piCGMUnkonwn->IsATypeOf(CATSurfaceType))
  22.         cout<<"piSurface is CATSurface!"<<endl;
  23.     else
  24.         return FALSE;

  25.     CATISpecObject_var spSpecSur = (CATISpecObject_var)piSurface;
  26.     if (NULL_var==spSpecSur)
  27.         cout<<"spSpecSur == NULL_var!"<<endl;

  28.      CATLISTV(CATISpecObject_var) pSurfaceList;
  29.     pSurfaceList.RemoveAll();
  30.      pSurfaceList.Append(spSpecSur);

  31.     if (NULL_var==pSurfaceList[1])
  32.         cout<<"pSurfaceList[1] == NULL_var!"<<endl;
复制代码
输出
  1. obj != NULL
  2. piSurface != NULL!
  3. piSurface is CATSurface!
  4. spSpecSur == NULL_var!
  5. pSurfaceList[1] == NULL_var!
复制代码
9
发表于 2012-12-3 10:43:31 | 只看该作者
CATIBRepAccess,看看以前的帖子吧~~~写的很清楚
10
发表于 2012-12-4 08:32:04 | 只看该作者
linlily0925 发表于 2012-12-3 10:43
CATIBRepAccess,看看以前的帖子吧~~~写的很清楚

谢谢谢谢,正在看~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-28 06:57 , Processed in 0.030039 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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