zoukankan      html  css  js  c++  java
  • NXOpen 特征、体、线、圆弧、点通过迭代器遍历

    #include <NXOpen/Session.hxx>                  
    #include <NXOpen/Part.hxx>                     
    #include <NXOpen/PartCollection.hxx> 

    #include <NXOpen/Features_FeatureCollection.hxx>

    #include <NXOpen/Features_Feature.hxx>         
    #include <NXOpen/Features_CylinderBuilder.hxx> 
    #include <NXOpen/Features_FeatureCollection.hxx>
    #include <NXOpen/Features_FeatureBuilder.hxx>

    #include <NXOpen/Body.hxx>
    #include <NXOpen/BodyCollection.hxx>
    #include <NXOpen/Line.hxx>
    #include <NXOpen/LineCollection.hxx>
    #include <NXOpen/Point.hxx>
    #include <NXOpen/PointCollection.hxx>
    #include <NXOpen/Arc.hxx>
    #include <NXOpen/ArcCollection.hxx>

    #include <NXOpen/ListingWindow.hxx>

        workPart = theSession->Parts()->Work();

     theSession->ListingWindow()->Open();  //打开信息窗口

     char msg [256];

     Features::Feature* thefeature;
     Features::FeatureCollection *features=workPart->Features();//迭代
     Features::FeatureCollection::iterator itr=features->begin();//获得第一个特征
     std::vector<tag_t> FeatureVecotor;
     for (;itr!=features->end();++itr)        //循环获得所有特征
     {
      thefeature=(*itr); //获得特征赋值给featuresList
      //theSession->ListingWindow()->WriteLine("特征类型:"+thefeature->FeatureType()); //获得特征类型打印
      FeatureVecotor.push_back(thefeature->Tag());
     }
     //遍历body
     std::vector<tag_t> BodyVecotor;
     BodyCollection *bodys = workPart->Bodies();
     for (BodyCollection::iterator itebody = bodys->begin();itebody !=bodys->end();itebody++)
     {
       Body *body=(*itebody);
       BodyVecotor.push_back(body->Tag());
     }
     //遍历line
     std::vector<tag_t> LineVecotor;
     LineCollection *lines = workPart->Lines();
     for (LineCollection::iterator linesite = lines->begin();linesite !=lines->end();linesite++)
     {
      Line *line =(*linesite);
      LineVecotor.push_back(line->Tag());
     }
     //遍历Arc
     std::vector<tag_t> ArcVecotor;
     ArcCollection *arcs = workPart->Arcs();
     for (ArcCollection::iterator arcsite = arcs->begin();arcsite !=arcs->end();arcsite++)
     {
      Arc *arc =(*arcsite);
      arc->Highlight();
      ArcVecotor.push_back(arc->Tag());
     }
     //遍历point
     std::vector<tag_t> PointVecotor;
     PointCollection *points = workPart->Points();
     for (PointCollection::iterator pointsite = points->begin();pointsite !=points->end();pointsite++)
     {
      Point *point =(*pointsite);
      //point->Highlight();
      PointVecotor.push_back(point->Tag());
     }

     sprintf ( msg , "特征的数量:%d",FeatureVecotor.size());
     theSession->ListingWindow()->WriteLine( msg);
     sprintf ( msg , "体的数量:%d",BodyVecotor.size());
     theSession->ListingWindow()->WriteLine( msg);
     sprintf ( msg , "线的数量:%d",LineVecotor.size());
     theSession->ListingWindow()->WriteLine( msg);
     sprintf ( msg , "圆弧的数量:%d",ArcVecotor.size());
     theSession->ListingWindow()->WriteLine( msg);
     sprintf ( msg , "点的数量:%d",PointVecotor.size());
     theSession->ListingWindow()->WriteLine( msg);

    怡宁塑胶模具设计
  • 相关阅读:
    Study Plan The TwentySecond Day
    Study Plan The Nineteenth Day
    Study Plan The TwentySeventh Day
    Study Plan The Twentieth Day
    Study Plan The TwentyFirst Day
    python实现进程的三种方式及其区别
    yum makecache
    JSONPath 表达式的使用
    oracle执行cmd的实现方法
    php daodb插入、更新与删除数据
  • 原文地址:https://www.cnblogs.com/hqsalanhuang/p/14458586.html
Copyright © 2011-2022 走看看