iCAx开思网

标题: [CAA求助]CATIA可以阵列点,请问有直接调用的函数么 [打印本页]

作者: ririyeyjl    时间: 2007-4-20 21:33
标题: [CAA求助]CATIA可以阵列点,请问有直接调用的函数么
我想在曲线上生成很多点, 在CATIA可以通过阵列得到,但是我查找CAA,没有找到相关的方法,通过宏操作,发现阵列点的生成是依靠复制由一个点得到许多点的

请问各位高手:如何通过CAA在曲线上来生成许多点呢?
作者: ririyeyjl    时间: 2007-5-6 16:14
自己回哦:
       曲线上生成点可以通过先计算出曲线长度,然后在曲线上生成一个参考点,然后利用For循环来生成其他等距点。
作者: cornerstone    时间: 2007-5-7 00:43
请问ririyeyjl ,如何得到生成点的绝对x,y,z 坐标呢?

我用用循环调用AddNewPointOnCurveFromPercent创建了一条曲线的多段平分点,可是返回的是 HybridShapePointOnCurve ,好像没有成员函数可以取得它在绝对坐标的x,y,z,怎么做呢?


附代码:
    Dim pt As HybridShapePointOnCurve
     
    Dim percent As Double
    Dim i As Long
    For i = 0 To 10
        percent = i / CDbl(10)
        Set pt = oHSF.AddNewPointOnCurveFromPercent(refCurve, percent, False)
        
        '如何取得pt的(x,y,z)
               
     Next i
作者: cornerstone    时间: 2007-5-7 00:45
还有如何测量曲线的长度?谢谢啊
作者: cornerstone    时间: 2007-5-7 00:54
原来你是校友阿,呵呵,我也是南航的
作者: ririyeyjl    时间: 2007-5-22 09:21
我生成的点是用以下函数:
public virtual CATIGSMPointOnSurface_var CreatePoint( const CATISpecObject_var  iSurface,
                                                                                           const CATISpecObject_var  iPoint,
                                                                                           const CATIGSMDirection_var  iDirection,
                                                                                           const CATICkeParm_var  iDistance) = 0  
对于CATIGSMPointOnSurface_var可以转为CATISpecObject_var然后挂到树上
我是通过获取它的Father->GetAllChildren("CATPoint",oPointList)
由CATPoint 就可以获得点的XYZ坐标了
而曲线的长度我通过CATDynCreateMassProperties3D(const CATEdge*  iEdgeToAnalyze)得到
CATDynMassProperties3D然后对其进行GetLength()

是的我也是南航的
作者: ririyeyjl    时间: 2007-5-22 09:23
我是用CAA搞的  可能对你帮助不大




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