iCAx开思工具箱

标题: CAA中关于圆的一个问题 [打印本页]

作者: cupcake    时间: 2005-6-28 17:47
标题: CAA中关于圆的一个问题
各位高手:
      如图,以前我问过怎么样得到这个特征(图中整体是一个intersect特征,所有的点、曲线和圆弧都不在特征数上显示)中的点和曲线,现在我想得到里面的圆弧,我已经得到了所有的曲线(CATCurve_var)和点,请问怎样得到圆弧的半径和圆弧的两个端点?
作者: cupcake    时间: 2005-6-28 17:51
我想圆弧应该也是曲线的一种,既然已经得到了CATCurve_var,为什么用了这句:
CATCircle_var spCir(spMyCurve);//spMyCurve为CATCurve_var,非空。
spCir经过测试是空的
请指点
:)
作者: nctusdk    时间: 2005-6-29 18:18
請參考CATEdgeCurve...(他應該是一個CATEdgeCurve)
CATEdgeCurveext(...)
  
以下是HelpViewer裡寫的用法:
const CATCurve * Current=NULL
while (Current = MyEdgeCurve->Next(Current) )  
{ ... process Current ... }
  
SDK.
作者: cupcake    时间: 2005-6-29 20:50
我想得到圆弧的半径和2个端点,那就必须得到和圆有关的接口才能调用GetRadius()之类的函数阿,CATCurve不行啊
还有,我想得到CATLine也没有成功,不知道为什么
作者: nctusdk    时间: 2005-6-29 21:05
你用Intersect做出來的應該不會是CATCircle吧....?
  
SDK.
作者: cupcake    时间: 2005-6-29 21:23
它是一个CATEdgeCurve,可是怎样得到关于圆的接口呢?其中还有直线,我还想得到两条直线的夹角
作者: cupcake    时间: 2005-6-29 21:53
是一个圆,可是我不知道它实现了关于圆的哪个接口,因为我用measure工具测量过是一个圆弧,有半径呢,如图
作者: nctusdk    时间: 2005-6-30 01:00
把那段Curve取出來用CATIMeasurableCircle試試?
  
SDK.
作者: cupcake    时间: 2005-6-30 11:04
可以得查询到CATIMeasurableCurve,可是不能得到CATIMeasurableCircle,不知道为什么,还是不能得到半径
:)
作者: cupcake    时间: 2005-6-30 11:20
也不能得到CATIMeasurableLine,要在这个图上区分出直线和圆并得到直线之间的夹角和圆弧的半径,我想能不能用CATIMeasurableCurve的GetPoints()得到曲线的起点、中点、终点,然后看能否用这3点构造圆,如果能则构造一个圆出来,并测量其半径,不能则可以判断出它是直线,用点构造一个直线,可以测量出直线之间的夹角。
这样显得很笨,不过也许可以解决问题,有没有更好的方法?
:)
作者: acoka    时间: 2005-7-2 17:03
CATEdgeCurve可以得到算式,自己分析?
  
正如nctusdk所说,你做交叉形状出来的曲线,一般得不到圆的,catia还没有那么智能
  
你可以把agent的对象改CATCirle看看
  
做CAD开发的时候,有些事很难做到,强求它了话,最后肯定在那里出现逻辑错误。所以写设计书的工资比写程序的高,但也经常被写程序的骂。如同画设计图纸的被技工骂一样
作者: cupcake    时间: 2005-7-2 17:37
CATIMeasurableCurve::GetPoints ()可以得到任意曲线上的3个点,根据3个点就可以分辨出一个曲线到底是直线还是圆了,也可以计算出圆的半径了,不过就是有点麻烦,看来只好这样了。
谢谢两位高手了
:)
作者: 深夜摔键盘    时间: 2005-7-3 10:06
CAA中应该有查询曲线类型的函数,你先确定你截到的曲线是圆锥曲线还是样条曲线。
  
我觉得你截到的线,里面应该没有圆弧这样的二次曲线成分。那些曲线段,都是自由曲线,有圆弧的地方,是自由曲线逼近了圆弧的形状。
  
所以你要想从自由曲线上提取圆弧信息,只能采用试探。按照参数前进的次序计算曲线上对应点的曲率半径,设定一个阈值,如果曲线上的点许多次的曲率半径的变动偏差都落在在这个阈值内,就可以认为它是圆弧。
作者: 深夜摔键盘    时间: 2005-7-3 10:07
呵呵,原来问题已经解决了啊
作者: cupcake    时间: 2005-7-3 10:14
谢谢键盘兄的建议,确实在交叉特征里面找不到圆弧,我就只好采用了笨办法去计算,不过也能解决问题。
:)
作者: acoka    时间: 2005-7-3 13:44
的确是高手
caa一样对图形元素有类型的判断函数
  
CATICGMUnknown
  IsATypeOf(CATGeometricType)
Parameters:  
CATGeometryType  
The generic type.  
CATCurveType  
The Curve type.  
CATConicType  
The Conic type.  
CATCircleType  
The Circle type.  
CATEllipseType  
The Ellipse type.  
CATEdgeCurveType  
The EdgeCurve type.  
CATIntCurveType  
The IntCurve type.  
CATLineType  
The line type.  
CATNurbsCurveType  
The Curve type.  
CATCurveType  
The Nurbs curve type.  
CATPCurveType  
The PCurve type.  
CATPCircleType  
The PCircle type.  
CATPEllipseType  
The PEllipse type.  
CATPParabolaType  
The Curve type.  
CATCurveType  
The PParabola type.  
CATPHyperbolaType  
The PHyperbola type.  
CATPLineType  
The Pline type.  
CATPNurbsType  
The PNurbs type.  
CATIForeignPCurveType  
The foreign Pcurve type.  
CATPSplineType  
The PSpline type.  
CATSplineCurveType  
The Splinecurve type.  
CATIForeignCurveType  
The foreign curve type.  
CATProcCurveType  
The ProcCurve type.  
CATPointType  
The point type.  
CATCartesianPointType  
The cartesian point type.  
CATMacroPointType  
The macro point type.  
CATPointOnCurveType  
The point on curve type.  
CATPointOnSurfaceType  
The point on surface type.  
CATPointOnEdgeCurveType  
The point on edge curve type.  
CATSurfaceType  
The surface type.  
CATElementarySurfaceType  
The elementary surface type.  
CATCylinderType  
The cylinder type.  
CATSphereType  
The sphere type.  
CATTorusType  
The torus type.  
CATConeType  
The cone type.  
CATNurbsSurfaceType  
The Nurbs surface type.  
CATPlaneType  
The plane type.  
CATRevolutionSurfaceType  
The revolution surface type.  
CATTabulatedCylinderType  
The tabulated cylinder type.  
CATOffsetSurfaceType  
The offset surface type.  
CATIForeignSurfaceType  
The foreign surface type.  
CATBodyType  
The body type.  
CATCellType  
The cell type.  
CATEdgeType  
The edge type.  
CATFaceType  
The face type.  
CATVertexType  
The vertex type.  
CATVolumeType  
The volume type.  
CATDomainType  
The domain type.  
CATLoopType  
The loop type.  
CATLumpType  
The lump type.  
CATShellType  
The shell type.  
CATVertexInFaceType  
The vertex in face type.  
CATVertexInVolumeType  
The vertex in volume type.  
CATWireType  
The wire type.  
CATLawType  
The law type.  
CATLinearLawType  
The linear law type.  
CATConstantLawType  
The constant law type.  
CATSplineLawType  
The spline law type.  
CATSubdivMeshType  
The subdivision mesh type  
  
caa的开发自由度比较大,所以api的说明资料也就不是那么详细,很多要自己扣,自己试,




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