临时笔记,关于穿线...待整理

临时笔记,关于穿线…

HRESULT hr = S_OK;
    //---------------------------------------------//
    //  1 - Retrieve Specification container       //
    //---------------------------------------------//
    CATFrmEditor *pEditor = CATFrmEditor::GetCurrentEditor();

    CATPathElement path = pEditor->GetUIActiveObject ( );

    CATISpecObject *piSpecOnActive = NULL;
    hr = path.Search (IID_CATISpecObject, (void **) &piSpecOnActive );
    if (FAILED(hr)||(NULL == piSpecOnActive)) {
        cout<<"failed to get interface CATISpecObject from active object"<<endl;
    }

    // GetFeatContainer returns a smart pointer, we must store the result in a SP
    // Otherwise, we will loose the reference on the returned object
    CATIContainer_var spSpecCont = piSpecOnActive->GetFeatContainer();
    piSpecOnActive->Release();piSpecOnActive=NULL;

    CATIPrtContainer_var spPrtCont(spSpecCont);
    CATIPrtPart_var spPart = spPrtCont->GetPart();

    CATIPrtFactory_var spPrtFactory(spSpecCont);

    CATIGSMFactory_var spGSMFactory(spSpecCont);

    double point1[3] = { 0.0, 0.0, 0.0};
    double point2[3] = { 0.0, 0.0, 100.0};
    double point3[3] = { 0.0, 100.0, 100.0};
    CATISpecObject_var spPoint1 = spGSMFactory->CreatePoint(point1);
    CATISpecObject_var spPoint2 = spGSMFactory->CreatePoint(point2);
    CATISpecObject_var spPoint3 = spGSMFactory->CreatePoint(point3);

    CATIDescendants_var spDesc(spPart);

    spDesc ->Append(spPoint1);
    spDesc ->Append(spPoint2);
    spDesc ->Append(spPoint3);

    spPoint1->Update();
    spPoint2->Update();
    spPoint3->Update();

    CATLISTV(CATISpecObject_var) ListPoints; 
    CATLISTV(CATISpecObject_var) ListRadius; 

    ListPoints.Append(spPoint1);
    ListPoints.Append(spPoint2);
    ListPoints.Append(spPoint3);

    ListRadius.Append(NULL_var);
    ListRadius.Append(NULL_var);
    ListRadius.Append(NULL_var);

    CATIGSMPolyline_var spPolyline = spGSMFactory->CreatePolyline(ListPoints, ListRadius, NULL_var);

    CATISpecObject_var sp11111(spPolyline);
    spDesc ->Append(sp11111);

    sp11111->Update();

    CATIGSMSweepCircle_var spSweepCircle = spGSMFactory->CreateCircularSweep(NULL_var, NULL_var, NULL_var);

    CATGSMCircularSweepCase SweepCase = CATGSMCircularSweep_CenterAndRadius;
    hr= spSweepCircle->SetMode(SweepCase);

    spSweepCircle->SetGuide(sp11111);

    double  iElem = 0.001 ;
    spSweepCircle->SetRadius(iElem , 1);

    CATISpecObject_var sp22222(spSweepCircle);
    spDesc ->Append(sp22222);

    sp22222->Update();

    CATISpecObject_var spVolumicCloseSurface = spPrtFactory->CreateCloseSurface(sp22222);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值