iCAx开思网
标题:
【求助】请问您知道在CAA中如何拾取Partbody中的点线面信息么?
[打印本页]
作者:
hanqi
时间:
2004-12-29 14:24
标题:
【求助】请问您知道在CAA中如何拾取Partbody中的点线面信息么?
CAA的帮助文档实在太大,在短期内找到所需信息很困难,我真心的希望热心人能告诉我在哪部分可以找到关于“如何拾取Partbody中的点先面信息”的帮助,如果您不是很了解,也希望您能给出一些解决问题的建议。
谢谢!!!
作者:
chenwei005
时间:
2004-12-30 00:44
作者:
liketulip
时间:
2004-12-31 11:36
积分不够,看不到
唉
作者:
bright1206
时间:
2005-1-1 20:50
piDescendantsOnPart->GetAllChildren("CATPlane", Planes)可以得到所有的面,面的信息是什么意思啊
作者:
liketulip
时间:
2005-1-2 17:02
同问:
如果获取一个圆柱part的底面圆心
和这个问题类似
作者:
nctusdk
时间:
2005-1-3 11:52
如果你是要Solid中所有的點線面那就要recursive的去traverse整個topology,
不過如果你只是要取得surface中用GSD建出來的點、線、面, 那直接對MechanicalRoot取CATIDescendants這個介面, 然後用
CATLISTV(CATISpecObject_var) vListOfObj;
CATIDescendants::GetAllChildren("CATPlane", vListOfObj); //取所有"平面"
CATIDescendants::GetAllChildren("CATPoint", vListOfObj); //取所有"點"
CATIDescendants::GetAllChildren("CATSurface", vListOfObj); //取所有"面"(包括曲面)
CATIDescendants::GetAllChildren("CATLine", vListOfObj); //取所有"直線"
CATIDescendants::GetAllChildren("CATCurve", vListOfObj); //取所有"曲線"
這個GetAllChildren的第一個參數就是要filter的interface name...
他會去看他所有的children...有implement這個interface才把他丟到vListOfObj裡
而CATLISTV(CATISpecObjec_var)只是很簡單的一個link-list...跟STL中的list類似, 只是基本上他只是一個巨集...
我沒錯記的話應該是換成CATLISTV_CATISpecObject這個type啦..
他不是像STL是template...(DS不喜generic programming這套)
(PS.不過他的index是從1開始算...不是從0開始喔!)
取list size就是vListOfObj.Size()
取第一個element就是vListOfObj[1]
作者:
liketulip
时间:
2005-1-3 21:46
我的是solid
"recursive的去traverse整個topology"
这个我不懂
作者:
cupcake
时间:
2005-1-4 12:43
我也想知道怎么样去 "recursive的去traverse整個topology",请nctusdk
解答,谢谢!
作者:
nctusdk
时间:
2005-1-4 18:03
後來想想有個簡單的方法啦...上一篇回的時候腦袋不清醒....sorry
不需要真的去recursively go through整個BRep...那是找相鄰關係時才需要...
首先直接對所有的Feature取CATIGeometricalElement這個介面
然後用CATIGeometricalElement::GetBodyResult()傳回一個CATBody
然後再用CATBody::GetAllCells(vListOfCells, nCellType)
code大概長這樣:
CATIGeometricalElement_var spGeoElem(spSpecOnSomeFeature);
if(spGeoElem!=NULL_var)
{
CATBody_var spBody = spGeoElem->GetBodyResult();
CATLISTP(CATCell) vListOfCells;
int nCellType = 0; //取vertex是0, 取edge是1, 取face是2, 取volumn是3
spBody->GetAllCells(vListOfCells, nCellType);
for(int i=1;i<=vListOfCells.Size();++i)
{
...
}
}
SDK.
作者:
cupcake
时间:
2005-1-6 16:28
谢谢nctusdk 了,感谢你的指点。:)
作者:
dljdlj
时间:
2010-5-24 14:21
haoyangdeghh
作者:
print_21
时间:
2010-7-8 16:42
不错不错
最近也在找相关的东西
作者:
mengguanjun
时间:
2010-8-16 09:48
没看明白哦
作者:
qiyizhifeng
时间:
2010-12-23 01:53
正好需要 多谢了
9#
nctusdk
作者:
buaayoung
时间:
2011-8-29 23:59
积分够吗
作者:
linlily0925
时间:
2011-9-13 14:51
用拓扑来做~~
作者:
fanwei1218
时间:
2011-9-14 22:26
呵呵,我也在研究这个,谢谢大伙的提示
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3