首页 > 其他分享 >创建拉伸nxopen方式

创建拉伸nxopen方式

时间:2023-02-18 12:12:08浏览次数:31  
标签:origin 拉伸 Features 创建 workPart NXOpen nxopen extrudeBuilder1

void DZWEIZHI::CreaExtrude(string str, double note_origin[3], tag_t Obj)//创建拉伸nxopen方式
{
try
{
//---- Enter your callback code here -----

 

NXOpen::Session *theSession = NXOpen::Session::GetSession();
NXOpen::Part *workPart(theSession->Parts()->Work());
NXOpen::Part *displayPart(theSession->Parts()->Display());

//获取切换开关的值
PropertyList *blocktoggle01Pros = toggle01->GetProperties();
int theblocktoggle01 = blocktoggle01Pros->GetLogical("Value");
delete blocktoggle01Pros;
blocktoggle01Pros = NULL;

UF_initialize();

//CreaTxt(str, note_origin);//优化后就不用写在这里了


//创建拉伸
Features::Feature *nullFeatures_Feature(NULL);
Features::ExtrudeBuilder *extrudeBuilder1;
extrudeBuilder1 = workPart->Features()->CreateExtrudeBuilder(nullFeatures_Feature);

extrudeBuilder1->SetDistanceTolerance(0.001);//设置公差

//设置截面
Section *section1;
section1 = workPart->Sections()->CreateSection();
extrudeBuilder1->SetSection(section1);

NXOpen::Features::Feature *text1 = dynamic_cast<Features::Text *>(vecTAGtxt[0]);//选择拉伸对象
std::vector<Features::Feature *> Rulefeatures(1);
Rulefeatures[0] = text1;

CurveFeatureRule *curveFeatureRule1;
curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(Rulefeatures);//建立选择意图

std::vector<SelectionIntentRule *> rules1(1);
rules1[0] = curveFeatureRule1;
NXObject *nullNXObject(NULL);
Point3d helpPoint1(0.0, 0.0, 0.0);
section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);//按意图进行选择

 


//Point3d OriginalWcsOrigin;//WCS 原点
//OriginalWcsOrigin = workPart->WCS()->Origin();//获得WCS原点

Point3d theOrigin = { note_origin[0],note_origin[1],note_origin[2] };

NXOpen::Vector3d vector1(0.0, 0.0, 1.0);//定义方向

//设置拉伸方向
Direction *direction1;
direction1 = workPart->Directions()->CreateDirection(theOrigin, vector1, SmartObject::UpdateOptionWithinModeling);

//ExtrudeDepth = atof(theDepth.GetLocaleText());//深度转Double型

extrudeBuilder1->Limits()->StartExtend()->Value()->SetValue(-0.2);//设置拉伸起始点
extrudeBuilder1->Limits()->EndExtend()->Value()->SetValue(0.2);//设置拉伸起终点

extrudeBuilder1->SetDirection(direction1);//设置拉伸方向


if (theblocktoggle01 == 1)
{
extrudeBuilder1->BooleanOperation()->SetType(NXOpen::GeometricUtilities::BooleanOperation::BooleanTypeSubtract);//设置布尔运算

std::vector<NXOpen::Body *> targetBodies3(1);
//NXOpen::Body *body1(dynamic_cast<NXOpen::Body *>(workPart->Bodies()->FindObject("UNPARAMETERIZED_FEATURE(33)")));
NXOpen::Body *body1(dynamic_cast<NXOpen::Body *>(NXOpen::NXObjectManager::Get(Obj)));//设置布尔运算的工具体
targetBodies3[0] = body1;
extrudeBuilder1->BooleanOperation()->SetTargetBodies(targetBodies3);//设置布尔运算
}

 

 

NXOpen::Features::Feature *feature1;
feature1 = extrudeBuilder1->CommitFeature();

extrudeBuilder1->Destroy();


UF_terminate();

}


catch (exception& ex)
{
//---- Enter your exception handling code here -----
DZWEIZHI::theUI->NXMessageBox()->Show("创建拉伸", NXOpen::NXMessageBox::DialogTypeError, ex.what());
}
}

标签:origin,拉伸,Features,创建,workPart,NXOpen,nxopen,extrudeBuilder1
From: https://www.cnblogs.com/firetuo/p/17132308.html

相关文章

  • Vue:使用create-vue快速创建Vue测试项目
    开发过程中,有时候需要测测试一些开源框架,这时候开源使用create-vue来快速创建测试项目:create-vue开源地址:https://github.com/vuejs/create-vue创建Vue2项目npmcreat......
  • 创建Socket-服务器端
    网上搜的资料,在这里简单记录一下用途:Socket可以实现软件与软件之间的通信流程:创建Socket——创建网络端口——将Socket与端口绑定——设置最大连接数——监听连线 创建......
  • vue添加一个可拉伸边框的线条
      <divid="middle"ref="middle"@mousedown="dragMousedown"></div>#middle{ width:5px; height:100%; background-color:#d6d6d6; margin......
  • unity创建物体的编辑器的回调
    注意:需要Unity2021以上版本 参考https://forum.unity.com/threads/editor-callbacks-for-gameobject-creation-deletion-duplication-by-user-or-user-script.788792/......
  • 【企业微信】自建应用于第三方应用创建
    1.自建应用step1.登录企业微信》应用管理   step2.创建应用     step3.分享功能-通讯录设置可信IP 2.第三方......
  • 在Mariadb中创建数据库-九五小庞
    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方......
  • VM中centos7创建后无法上网问题
    在VMware12Pro上安装完CentOS7发现使用pingwww.baidu.com无法ping通使用以下命令:1.cd/etc/sysconfig/network-scripts然后:ls发现如图ifcfg-ens33的配置文件,此......
  • ebpf的perf buffer机制(二) BPF_MAP_TYPE_PERF_EVENT_ARRAY map的创建
    一perfbuffer专用map简介在ebpf的perfbuffer机制(一)中简单介绍了在使用perfbuffer时会先定义一个BPF_MAP_TYPE_PERF_EVENT_ARRAY类型的map,如下所示:/*BPFperfbuf......
  • .NET 中创建录音机和播放器应用
    前言在本博客中,你将了解如何在.NETMAUI中开发录音机和播放器。音频播放器将录制和播放音频文件。此应用程序可以在Android和iOS上部署和使用。预览以下是该录音机和......
  • 设计模式(八)----创建型模式之建造者模式与工厂模式区别
    1、工厂方法模式VS建造者模式工厂方法模式注重的是整体对象的创建方式;而建造者模式注重的是部件构建的过程,意在通过一步一步地精确构造创建出一个复杂的对象。我们举个简......