zoukankan      html  css  js  c++  java
  • NXOpen 一键移除参数

    C++ 2010

    #include <uf.h>
    #include <uf_object_types.h>
    #include <uf_obj.h>
    #include <uf_modl.h>
    #include <uf_assem.h>
    #include <uf_kf.h>
    #include <uf_ui.h>
    #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/Spline.hxx>
    #include <NXOpen/SplineCollection.hxx>
    #include <NXOpen/Features_RemoveParametersBuilder.hxx>
    #include <NXOpen/NXObjectManager.hxx>
    #include <NXOpen/Features_FeatureCollection.hxx>
    #include <NXOpen/SelectNXObjectList.hxx>
    #include <NXOpen/SelectObjectList.hxx>

     //用户代码
     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());
     }

     //遍历体
     std::vector<tag_t> BodyVecotor;
     BodyCollection *bodys = workPart->Bodies();
     for (BodyCollection::iterator ite = bodys->begin();ite !=bodys->end();ite++)
     {
      Body *body=(*ite);
      BodyVecotor.push_back(body->Tag());
     }
     //移除体参数
     for ( int i=0;i<BodyVecotor.size();i++)
     {
      //移除参数
      Body *body1(dynamic_cast<Body *>(NXObjectManager::Get(BodyVecotor[i]))); //选择的目标转换
      Features::RemoveParametersBuilder *removeParametersBuilder1;

      removeParametersBuilder1 = workPart->Features()->CreateRemoveParametersBuilder();
      bool added1;
      added1 = removeParametersBuilder1->Objects()->Add(body1);

      NXObject *nXObject1;
      nXObject1 = removeParametersBuilder1->Commit();

      removeParametersBuilder1->Destroy();//释放 
     }

     //遍历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());
     }
     //移除线参数
     for ( int i=0;i<LineVecotor.size();i++)
     {
      //移除参数
      Line *line1(dynamic_cast<Line *>(NXObjectManager::Get(LineVecotor[i]))); //目标转换
      Features::RemoveParametersBuilder *removeParametersBuilder1;

      removeParametersBuilder1 = workPart->Features()->CreateRemoveParametersBuilder();
      bool added1;
      added1 = removeParametersBuilder1->Objects()->Add(line1);

      NXObject *nXObject1;
      nXObject1 = removeParametersBuilder1->Commit();

      removeParametersBuilder1->Destroy();//释放 
     }
     //遍历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());
     }
     //移除圆弧参数
     for ( int i=0;i<ArcVecotor.size();i++)
     {
      //移除参数
      Arc *arc1(dynamic_cast<Arc *>(NXObjectManager::Get(ArcVecotor[i]))); //目标转换
      Features::RemoveParametersBuilder *removeParametersBuilder1;

      removeParametersBuilder1 = workPart->Features()->CreateRemoveParametersBuilder();
      bool added1;
      added1 = removeParametersBuilder1->Objects()->Add(arc1);

      NXObject *nXObject1;
      nXObject1 = removeParametersBuilder1->Commit();
      removeParametersBuilder1->Destroy();//释放 
     }

     //遍历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());
     }
     //移除点参数
     for ( int i=0;i<PointVecotor.size();i++)
     {
      //移除参数
      Point *point1(dynamic_cast<Point *>(NXObjectManager::Get(PointVecotor[i]))); //目标转换
      Features::RemoveParametersBuilder *removeParametersBuilder1;

      removeParametersBuilder1 = workPart->Features()->CreateRemoveParametersBuilder();
      bool added1;
      added1 = removeParametersBuilder1->Objects()->Add(point1);

      NXObject *nXObject1;
      nXObject1 = removeParametersBuilder1->Commit();
      removeParametersBuilder1->Destroy();//释放 
     }

     //遍历Spline
     std::vector<tag_t> SplineVecotor;
     SplineCollection *splines = workPart->Splines();
     for (SplineCollection::iterator splinesite = splines->begin();splinesite !=splines->end() ; splinesite++)
     {
      Spline *spline = (*splinesite);
      SplineVecotor.push_back(spline->Tag());
     }

     //移除Spline参数
     for ( int i=0;i<SplineVecotor.size();i++)
     {
      //移除参数
      Spline *spline1(dynamic_cast<Spline *>(NXObjectManager::Get(SplineVecotor[i]))); //目标转换
      Features::RemoveParametersBuilder *removeParametersBuilder1;

      removeParametersBuilder1 = workPart->Features()->CreateRemoveParametersBuilder();
      bool added1;
      added1 = removeParametersBuilder1->Objects()->Add(spline1);

      NXObject *nXObject1;
      nXObject1 = removeParametersBuilder1->Commit();
      removeParametersBuilder1->Destroy();//释放 
     }

     Features::Feature* thefeature2;
     Features::FeatureCollection *features2=workPart->Features();//迭代
     Features::FeatureCollection::iterator itr2=features->begin();//获得第一个特征
     std::vector<tag_t> FeatureVecotor2;
     for (;itr2!=features2->end();++itr2)        //循环获得所有特征
     {
      thefeature2=(*itr2); //获得特征赋值给featuresList
      //theSession->ListingWindow()->WriteLine("特征类型:"+thefeature->FeatureType()); //获得特征类型打印
      FeatureVecotor2.push_back(thefeature2->Tag());
     }

     char msg [256];
     sprintf ( msg , "工作部件共%d个特征, %d个特征完成移除参数。基准、已抑制的特征没能移除参数, 如有问题请反馈。",FeatureVecotor.size(),FeatureVecotor.size()-FeatureVecotor2.size());
     //uc1601(msg,0);

     if( count != 0 || LineVecotor.size() !=0 || ArcVecotor.size() !=0 || PointVecotor.size() !=0 || SplineVecotor.size() !=0 )
     {
      theUI->NXMessageBox()->Show("制作:Alan Huang    QQ:185266370", NXOpen::NXMessageBox::DialogTypeInformation, msg );
     }
     else
     {
      theUI->NXMessageBox()->Show("制作:Alan Huang    QQ:185266370", NXOpen::NXMessageBox::DialogTypeInformation, "未找到移除参数的对象, 如有问题请反馈。");
      //uc1601("未找到要移除参数的对象",1);
     }

    怡宁塑胶模具设计
  • 相关阅读:
    服务器上的 Git
    进程有哪几种基本状态,在一个系统中为什么必须区分出这几种状态?
    什么是进程,进程与程序的主要区别是什么?
    什么是与时间有关的错误,是举例说明。
    试解释下列名词:程序的顺序执行,程序的并发执行。
    简述系统调用的执行过程?
    假定某系统提供硬件的访管指令(例如形式:“svc n”),为了实现系统调用,系统设计者应做哪些工作?用户又如如何请求操作系统服务?
    什么是系统调用,对操作系统的服务请求与一般子程序调用有什么区别?
    Windows系统提供什么样的接口,Unix、Linux系统的用户接口是什么?
    用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?
  • 原文地址:https://www.cnblogs.com/hqsalanhuang/p/14458833.html
Copyright © 2011-2022 走看看