zoukankan      html  css  js  c++  java
  • NXOpen 创建圆柱面中心线

    C++  2010

    #include <NXOpen/Annotations.hxx>
    #include <NXOpen/Annotations_AnnotationManager.hxx>
    #include <NXOpen/Annotations_CenterlineCollection.hxx>
    #include <NXOpen/SelectNXObjectList.hxx>
    #include <NXOpen/NXObject.hxx>
    #include <NXOpen/NXObjectManager.hxx>

      //选择过滤
      Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
      std::vector<Selection::MaskTriple> maskArray(1);
      maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_CYLINDRICAL_FACE);//圆柱面
      selection0->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray);

      //获取UI选取的圆柱面
      std::vector<TaggedObject *> faces = selection0->GetSelectedObjects(); //得到圆柱面

      //创建圆柱面中心线
      Face *face2 (dynamic_cast<Face *>(NXObjectManager::Get(faces[0]->Tag())));
      NXOpen::Annotations::Centerline3d *line1(NULL);
      NXOpen::Annotations::Centerline3dBuilder*line1Builder;
      line1Builder=workPart->Annotations()->Centerlines()->CreateCenterline3dBuilder(line1);
      line1Builder->Face()->Add(face2);
      line1Builder->Settings()->SetExtension(0.0);
     

      //法1
      NXOpen::NXObject*nXObject1;
      nXObject1=line1Builder->Commit();
      //法2
      //定义NXObject容器得到中心线
      std::vector<NXObject *> nxobjects;
      nxobjects = line1Builder->GetCommittedObjects();

      line1Builder->Destroy();

      //sprintf (msg,"%d",nxobjects.size());
      //theSession->ListingWindow()->WriteLine( msg);

      //中心线改色
      DisplayModification *displayModification1;
      displayModification1 = theSession->DisplayManager()->NewDisplayModification();
      displayModification1->SetApplyToAllFaces(false);
      displayModification1->SetApplyToOwningParts(false);
      displayModification1->SetNewWidth(DisplayableObject::ObjectWidthOne);
      displayModification1->SetNewColor(186); //设置色
      std::vector<NXOpen::DisplayableObject *> objects2(1);
      //法1
      //objects2[0]=dynamic_cast<NXOpen::DisplayableObject *>(nXObject1);
      //法2
      for ( int i=0 ; i < nxobjects.size(); i++)
      {
       objects2[i]=dynamic_cast<NXOpen::DisplayableObject *>(nxobjects[i]);
      }
      displayModification1->Apply(objects2);
      delete displayModification1;

    怡宁塑胶模具设计
  • 相关阅读:
    apache+php+mysql配置
    欧拉函数知识点总结及代码模板及欧拉函数表
    栈排序
    codeforces 722C (并查集)
    北京网赛I题 hiho1391 (树状数组、区间覆盖最大值问题)
    HDU5898、 HDU 2089(数位DP)
    HDU 5876 (大连网赛1009)(BFS + set)
    codeforces 682D(DP)
    codeforces 666A (DP)
    codeforces 706D (字典树)
  • 原文地址:https://www.cnblogs.com/hqsalanhuang/p/14446448.html
Copyright © 2011-2022 走看看