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

来源:互联网 发布:16年双十一淘宝营业额 编辑:程序博客网 时间:2024/04/30 14:07

临时笔记,关于穿线…

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 0
原创粉丝点击