iCAx开思工具箱

标题: CAA中的选择问题 [打印本页]

作者: cupcake    时间: 2005-6-1 21:01
标题: CAA中的选择问题
各位高手:
      我以前问过类似问题,我想要选择一个实体的表面,应该在CATPathElementAgent的AddElementType()里面添加什么接口啊?好像CATFace不行,是CATSurface吗?我用的是CATIRSur,是不是有问题啊,我想要选择一个Face,然后得到这个Face的Boundary,请问怎么该做呢?
作者: acoka    时间: 2005-6-1 22:12
CATIMfBiDimResult 和 CATSurface就好
用CATIRSur代替CATSurface也可以
  
你似乎很注意这个Boundary
作者: cupcake    时间: 2005-6-1 22:52
是啊,,我想以Face的Boundary为输入做一个Extrude,然后以这个Extrude为曲面去Split一个Body,所以必须得到Boundary,但是CATIRSur好像没有函数可以得到CATIGSMFactory::CreateBoundary()所需要的参数,需要CATISpecObject型的,而CATIRSur的函数返回的好像是CATBaseUnknown型的
作者: acoka    时间: 2005-6-2 01:31
你用FeatureImportAgent,这样如果你选的是构成面(pad的面之类),catia会替你把它feature化,可以直接从Agent得到CATISpecObject,usecase里有例子的
  
你的设计或许还有别的要求
如果只是要用它切割body,我大概会选下面2个方法
  
1)面割体:输入线的list,然后用它们合并成1条曲线,做拉出面,用面去split,但问题是好像split的命令对留面的哪边的body是靠面的法线方向(至少图形内核的topo是这样的),所以你可能要自己解决这个问题,如果拉面可以接受多条曲线输入了话,或许会简单点
  
2)体体交集:新建个body,选的面按一个方向做pad,2个边界条件可以选modelsize,这样可以做个类无限长pad,然后把它的Body和n目标Body求交集。
  
看你的说明,好像是想直接取选定面的边界线的list,如果只用GSMInterfaces而不用topo,估计比较难,你可以用catia的UI命令组合看看能不能按你的思路做出来
作者: cupcake    时间: 2005-6-2 14:46
我想把如图所示的实体用图上的红色的这些Edge去Split,acoka兄有什么好的建议啊?
作者: cupcake    时间: 2005-6-2 14:48
另一个视角
作者: cupcake    时间: 2005-6-2 14:54
这条红色的线其实是分成几段的,我的想法就是选中了这些线(Edge)所在的面后想办法得到这些Edge(连在一起的),要么就是设法得到每段Edge,然后去做Join。然后用Extrude做一个Surface,再去Split,因为要把这个Body沿着两个这样的红色的线去Split,所以我就想把这个Body用Paste Special>As Result给拷贝出来,然后分别去用那些线Split.是不是太麻烦了?有没有可能实现?
:)
作者: acoka    时间: 2005-6-2 20:53
冲压截断?
  
你可以选所有的edge,把它们assemb成1条曲线,按dieface方向做拉伸,然后split就好。
切2次好了
作者: cupcake    时间: 2005-6-2 21:10
有个问题就是拥护不想多次选择,能不能只选择那个表面能得到那些边界线,然后去做assemble?下来就是Split了一次后,整个Body就只有Split以后的那部分了,我想把这条红线两边的部分都保留下来,是不是必须把这个Body给Copy了,另外再Split一次?
作者: acoka    时间: 2005-6-3 11:42
面和它的edge之间应该有关联,可以找,编程试试看啦,多半PathElement找
  
没有实际的用户会的产品只是1个平面吧,这么简单还用切割?直接把面取来,做个prism不就好了?一个operator就解决
  
split没有只骏切割不absord的选项吗?
作者: cupcake    时间: 2005-6-3 20:52
可是一个四边形的Face有4个Edge,怎样过滤自己需要的那一个呢?
  
split没有只骏切割不absord的选项吗?
帮助里的CATIPrtFactory没有这个选项阿,如下:
CreateSolidSplit  
public virtual CATISpecObject_var CreateSolidSplit( const CATISpecObject_var  ihSplitPlane,  
  const CATPrtSplitType  iSplitType) = 0   
Creates and returns a split feature.  
Parameters:  
ihSplitPlane  
The surfacic feature as splitting element to perform the split operation.  
iSplitType  
Represents the side to be kept after the split operation.  
Legal values: iSplitType equals PositiveSide or NegativeSide. The PositiveSide value refers to the same orientation as the splitting element normal vector. The NegativeSide value refers to the opposite orientation as the splitting element normal vector.  
Returns:  
the created split feature.
作者: cupcake    时间: 2005-6-6 11:34
求助
作者: xxhxxhxxhxxh    时间: 2007-12-20 14:30
请问各位高手,一个封闭曲线被两条线split掉,得到的方向有两种情况,如何能使我得较短的那段?
作者: ririyeyjl    时间: 2008-1-22 22:52
"一个封闭曲线被两条线split掉,得到的方向有两种情况" 有点不理解, 如何获得较短的那段,你可以测量一下生成的曲线长度,比较一下谁更短就留哪个。
作者: yangcf021    时间: 2008-11-4 15:04
怎么选择面对边界啊~~我用CATEdge不行的~~启动了Catia之后,什么都选不了




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3