iCAx开思网

标题: CAA中体上面的平移 [打印本页]

作者: Abandon    时间: 2006-1-12 16:17
标题: CAA中体上面的平移
如下图所示,我想把图中被选中的面做平移,可总是提示指针为空,不知怎么回事。
1 ElementAgent->AddElementType("");里面的参数是不是CATIRSur?
2 对得到的对象CATBaseUnknown *SelectedObject=ElementAgent->GetElementValue();应怎么处理后才能把它作为平移函数的参数。
请高手指教,急用!
作者: Abandon    时间: 2006-1-12 16:21
顺便再问一个,用鼠标选的上面的面是BRep类型吗?和用CATBody->GetCells(surface,3)得到的对象有区别吗?
作者: Abandon    时间: 2006-1-12 16:50
我做的参考面的平移,当选择树形目录下的面的名称时,程序没问题。但当直接选择对象时(正方形表示的面)就会出现下图所示的错误。这是不是和第一楼里的问题一样
作者: Abandon    时间: 2006-1-12 16:56
我做的参考面的平移,当选择树形目录下的面的名称时,程序没问题。但当直接选择对象时(正方形表示的面)就会出现下图所示的错误。这是不是和第一楼里的问题一样
作者: acoka    时间: 2006-1-13 09:19
[quote]原帖由 Abandon 于 2006-1-12 16:17 发表
如下图所示,我想把图中被选中的面做平移,可总是提示指针为空,不知怎么回事。
1 ElementAgent->AddElementType("");里面的参数是不是CATIRSur?

CATPathElememntAgent -> CATFeatureImportAgent
CATIRSur ->  CATIMfTriDimResult
看看如何
作者: hick    时间: 2006-1-13 10:01
原帖由 acoka 于 2006-1-13 09:19 发表
[quote]原帖由 Abandon 于 2006-1-12 16:17 发表
如下图所示,我想把图中被选中的面做平移,可总是提示指针为空,不知怎么回事。
1 ElementAgent->AddElementType("");里面的参数是不是CAT ...


试试 CATFeatureImportAgent,CATIMfBiDimResult
作者: Abandon    时间: 2006-1-13 10:11
acoka兄,我把CATIRSur 换成CATIMfTriDimResult,但是他选中的是整个体,而不是我要的面;根据你的建议我又把它换成CATIMfBiDimResult,可以解决了2,3楼的问题,谢谢。但是1楼的问题还是不行,我希望用鼠标选择抽取体上的面,完成如图所示的功能。我用CATSurface做参数可以得到体上面并把它的名字输入到editor,但是不能直接把它做平移。应该先把它做怎样的处理在平移呢?
作者: hick    时间: 2006-1-13 10:52
建议CATFeatureImportAgent,CATIMfBiDimResult
然后 body,  topo,用CGM来做
肯定没问题,还比较方便
作者: Abandon    时间: 2006-1-13 15:12
hick兄:CATIMfBiDimResult只能选一般的面,不能选择体上的面。“然后 body,  topo,用CGM来做
肯定没问题,还比较方便 ”我不太明白。能详细说一下过程吗?谢谢!在百科全书中有没有讲鼠标选择的体上面的处理的例子?或者你有没有对应的例子可以参考?
作者: hick    时间: 2006-1-13 16:39
1.CATIMfBiDimResult  可以选择任意面,用CATFeatureImportAgent
2.offest,你可以用GSM来做,也可以用CGM,topo等,看你习惯和熟练程度

其实encyclopedia 里有讲,具体不记得在哪了.....
作者: Abandon    时间: 2006-1-13 16:53
应该是我讲的不明白,
ElementAgent = new CATFeatureImportAgent ("Element");
ElementAgent->AddElementType("CATIMfBiDimResult");
CATIMfBiDimResult  和CATFeatureImportAgent我都用了,但就是不能选体上的面,能选择所有的单独的面。hick兄帮着看看,我再去encyclopedia找一下。
作者: acoka    时间: 2006-1-13 17:01
CATIMf。。是feature单位,当然不能优先取到构成面
CATRsur,CATPlane, CATSurface等可以取构成面,

你要offset一个构成面,那么你要这个offset后的面以什么形态存在呢?
作者: hick    时间: 2006-1-13 17:01
SetOrderedElementType
作者: Abandon    时间: 2006-1-14 21:51
原帖由 acoka 于 2006-1-13 09:01 发表
CATIMf。。是feature单位,当然不能优先取到构成面
CATRsur,CATPlane, CATSurface等可以取构成面,

你要offset一个构成面,那么你要这个offset后的面以什么形态存在呢?

acoka 兄,我就是想把它作为平移函数参数,我用Agent得到鼠标选择的体上面,可以得到名字是"face",(CATBaseUnknown * face=Agent->GetElementValue(),)然后把得到的fae赋给CATISpecObject_var类型变量,(我想是这里出错可不知道怎么处理),再把它做平移。

你要offset一个构成面,那么你要这个offset后的面以什么形态存在呢? [/quote]

offset后的面的形式我想平面就用和参考面一样的边界表示。曲面就和原先的参考面一样的形式。请问acoka兄怎么判断一个surface是平面还是曲面和把一个平面变成边界表示的接口有吗?(我用得到surface去query
CATPlane判断它是不是平面,可是不行:)。)
作者: Abandon    时间: 2006-1-14 21:55
原帖由 hick 于 2006-1-13 09:01 发表
SetOrderedElementType

谢谢hick兄。周一我看看这函数,家里没装CAA。




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