iCAx开思工具箱

标题: 如何创建圆弧,而不是整圆 [打印本页]

作者: zsong22    时间: 2013-6-24 17:48
标题: 如何创建圆弧,而不是整圆
file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\844473774\QQ\WinTemp\RichOle\~KCBXW@D})NZG6FPEQDU0%B.jpg
CATICkeParm_var iLength1 = spParmFactory ->CreateLength ("L",0.3);//以米为单位
        CATIGSMCircleCenterAxis_var spGSMWiperSPtCircle = spGSMFactory->CreateCircle(spSpecObject1,spOWiperSPt,iLength1,TRUE);
请问一下,以上面代码方式创建圆弧只能是整圆创建,不能以圆弧方式创建?  要怎样才能以圆弧方式创建圆呢?   我发现:CATIGSMFactory 基本上都是创建整圆
不知如何创建圆弧?

非常谢谢,您的帮助!


该贴已经同步到 zsong22的微博
作者: linlily0925    时间: 2013-6-25 09:30
CATIGSMCircleCtrRad_var CreateCircle( const CATISpecObject_var  iCenter,
const CATISpecObject_var  iSurface,
CATBoolean  iGeodesic,
const CATICkeParm_var  iRadius,
const CATICkeParm_var  iStartAngle,
const CATICkeParm_var  iEndAngle)  
后面的两个参数就是设置角度值,没有设置的话就默认是整圆了
作者: zsong22    时间: 2013-7-1 09:05
linlily0925 发表于 2013-6-25 09:30
CATIGSMCircleCtrRad_var CreateCircle( const CATISpecObject_var  iCenter,
const CATISpecObject_var ...

lili 你好,我要做的是通过选择一条直线(作为圆弧的中心轴线),再选择一点(作为圆弧起点),当然这时圆弧只要给个起始角就可以了。  所以我选择用
CATICkeParm_var iLength1 = spParmFactory ->CreateLength ("L",0.3);//以米为单位CATICkeParm_var iAng1 = spParmFactory ->CreateAngle("Angle1",-3.1415926*88/180);//以弧度为单位A区
CATICkeParm_var iAng2 = spParmFactory ->CreateAngle("Angle1",3.1415926*20/180);//以弧度为单位
         
CATIGSMCircleCenterAxis_var spGSMWiperSPtAxisCircle = spGSMFactory->CreateCircle(spSpecObject1,spOWiperSPt,iLength1,TRUE);

这种方式创建圆。   


最后我了解到可以用 CATIGSMCircle 的  SetLimitation(CATIGSMCircleLimitation) 来设定圆弧的起始与结束角度,于是我又用如下方式创建这个圆弧:
CATICkeParm_var iLength1 = spParmFactory ->CreateLength ("L",0.3);//以米为单位
        CATICkeParm_var iAng1 = spParmFactory ->CreateAngle("Angle1",-3.1415926*88/180);//以弧度为单位A区
        CATICkeParm_var iAng2 = spParmFactory ->CreateAngle("Angle1",3.1415926*20/180);//以弧度为单位
         
        CATIGSMCircleCenterAxis_var spGSMWiperSPtAxisCircle = spGSMFactory->CreateCircle(spSpecObject1,spOWiperSPt,iLength1,TRUE);
        CATIGSMCircle_var  spGSMWiperSPtCircle=spGSMWiperSPtAxisCircle;
       
        CATIGSMCircleLimitation circleLimitation=Angles;
        spGSMWiperSPtCircle->SetLimitation(circleLimitation);

        spGSMWiperSPtCircle->SetAngles(iAng1,iAng2);
        CATISpecObject_var spOWiperSPtCircle = spGSMWiperSPtCircle;
        spOWiperSPtCircle->Update();
        CATIGSMProceduralView_var spWiperSPtCircleView = spOWiperSPtCircle;
        spWiperSPtCircleView->InsertInProceduralView();
我以为CATIGSMCircle 为CATIGSMCircleCenterAxis的基类,调用SetLimitation函数应该没问题的。

但是最后报两个错:error C2065: “CATIGSMCircleLimitation”: 未声明的标识符 error C2065: “Angles”: 未声明的标识符  

这里,我的头文件是加了的#include "CATIGSMCircleCenterAxis.h"//为了通过轴与点,角度创建圆#include "CATIGSMCircle.h"//为了通过轴与点,角度创建圆

不知道为何?






作者: linlily0925    时间: 2013-7-1 09:53
zsong22 发表于 2013-7-1 09:05
lili 你好,我要做的是通过选择一条直线(作为圆弧的中心轴线),再选择一点(作为圆弧起点),当然这时圆 ...

CATICkeParm_var iLength1 = spCkeParmFactory ->CreateLength ("L",300);
                CATICkeParm_var iAng1 = spCkeParmFactory ->CreateAngle("Angle1",-3.1415926*88/180);//以弧度为单位A区
                CATICkeParm_var iAng2 = spCkeParmFactory ->CreateAngle("Angle1",3.1415926*20/180);//以弧度为单位

                 CATIGSMCircleCenterAxis_var spGSMWiperSPtAxisCircle = spGSMFact->CreateCircle(spSpecAxis,spSpecPoint,iLength1,TRUE);
                 CATIGSMCircle_var spGSMCircle = spGSMWiperSPtAxisCircle;
                 if(spGSMCircle == NULL_var)
                 {
                         cout<<"Error in spGSMCircle"<<endl;
                 }
                 else
                 {
                         cout<<"Successful in spGSMCircle"<<endl;
                         spGSMCircle->SetLimitation(CATIGSMCircle::CATIGSMCircleLimitation::Angles);
                         spGSMCircle->SetAngles(iAng1,iAng2);
                 }
                 CATISpecObject_var spSpecC = spGSMWiperSPtAxisCircle;





作者: wyl6789    时间: 2014-7-25 16:30
我看CreateCircle这个函数 的第二个参数 应该是表示平面啊 第三第四个参数表示角度啊可是我看你的例子中最后一个参数怎么是TRUE呢?第二个参数也不是平面啊 求解释哈
作者: hunter1985    时间: 2014-7-27 08:59
太电熨斗主太太




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