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;

    怡宁塑胶模具设计
  • 相关阅读:
    快速提交一个项目到github或gitee上
    微信web开发问题记录
    解决 VUE项目过大nodejs内存溢出问题
    vue使用动态渲染v-model输入框无法输入内容
    webstorm 支持vue element-ui 语法高亮属性自动补全
    spring websocket报错:No matching message handler methods.
    Failed to start bean 'stompBrokerRelayMessageHandler'; nested exception is java.lang.NoClassDefFoundError: reactor/io/codec/Codec
    远程调用appium server
    appium 特殊操作
    mac下搭建appium
  • 原文地址:https://www.cnblogs.com/hqsalanhuang/p/14446448.html
Copyright © 2011-2022 走看看