NX/UG二次开发简单干涉
NX/UG二次开发——简单干涉
- 简单干涉
- 代码所需包含的额外头文件
- 1.简单干涉获得面对。
- 2.简单干涉获得体。
简单干涉
以下内容对UG中(分析-简单干涉)进行了二次开发
代码所需包含的额外头文件
#include <uf_obj.h>
#include <uf_assem.h>
#include <uf_modl.h>
#include <uf_ui.h>
#include <NXOpen/GeometricAnalysis_SimpleInterference.hxx>
1.简单干涉获得面对。
std::vector<tag_t> SimpleInterference(tag_t solidTAG1, tag_t solidTAG2)//输入为两个需要简单干涉的实体,输出为面对的容器。
{NXOpen::Session *theSession = NXOpen::Session::GetSession();NXOpen::Part *workPart(theSession->Parts()->Work());NXOpen::Part *displayPart(theSession->Parts()->Display());std::vector<NXObject*>faces_object_collection;std::vector<tag_t>faces_tag_collection;NXOpen::GeometricAnalysis::SimpleInterference *simpleInterference1;simpleInterference1 = workPart->AnalysisManager()->CreateSimpleInterferenceObject();simpleInterference1->SetInterferenceType(NXOpen::GeometricAnalysis::SimpleInterference::InterferenceMethodInterferenceSolid);simpleInterference1->SetFaceInterferenceType(NXOpen::GeometricAnalysis::SimpleInterference::FaceInterferenceMethodAllPairs);NXOpen::Body *body1(dynamic_cast<NXOpen::Body *>(NXOpen::NXObjectManager::Get(solidTAG1)));//将solidTAG1转换为NXOpen对象simpleInterference1->FirstBody()->SetValue(body1);NXOpen::Body *body2(dynamic_cast<NXOpen::Body *>(NXOpen::NXObjectManager::Get(solidTAG2)));//将solidTAG2转换为NXOpen对象simpleInterference1->SecondBody()->SetValue(body2);simpleInterference1->SetInterferenceType(NXOpen::GeometricAnalysis::SimpleInterference::InterferenceMethodInterferingFaces);//设置简单干涉输出为面对。simpleInterference1->Reset();NXOpen::GeometricAnalysis::SimpleInterference::Result result1;result1 = simpleInterference1->PerformCheck();faces_object_collection = simpleInterference1->GetInterferenceResults();//获得简单干涉结果,并将面对导入容器。前两个对象代表第一对干扰面,接下来的两个对象代表第二对干扰面,以此类推。for (int i = 0; i < size(faces_object_collection); i++){faces_tag_collection.push_back(faces_object_collection[i]->Tag());//将NX对象转换成UF对象。}simpleInterference1->Reset();simpleInterference1->Destroy();theSession->CleanUpFacetedFacesAndEdges();return faces_tag_collection;//返回干涉面对Tag的容器。
}
2.简单干涉获得体。
tag_t SimpleInterference(tag_t solidTAG1, tag_t solidTAG2)//输入为两个需要简单干涉的实体,输出为干涉体的Tag。
{NXOpen::Session *theSession = NXOpen::Session::GetSession();NXOpen::Part *workPart(theSession->Parts()->Work());NXOpen::Part *displayPart(theSession->Parts()->Display());std::vector<NXObject*>body_object_collection;tag_t body_tag;NXOpen::GeometricAnalysis::SimpleInterference *simpleInterference1;simpleInterference1 = workPart->AnalysisManager()->CreateSimpleInterferenceObject();//simpleInterference1->SetInterferenceType(NXOpen::GeometricAnalysis::SimpleInterference::InterferenceMethodInterferenceSolid);simpleInterference1->SetFaceInterferenceType(NXOpen::GeometricAnalysis::SimpleInterference::FaceInterferenceMethodAllPairs);NXOpen::Body *body1(dynamic_cast<NXOpen::Body *>(NXOpen::NXObjectManager::Get(solidTAG1)));//将solidTAG1转换为NXOpen对象。simpleInterference1->FirstBody()->SetValue(body1);NXOpen::Body *body2(dynamic_cast<NXOpen::Body *>(NXOpen::NXObjectManager::Get(solidTAG2)));//将solidTAG2转换为NXOpen对象。simpleInterference1->SecondBody()->SetValue(body2);NXOpen::GeometricAnalysis::SimpleInterference::Result result1;result1 = simpleInterference1->PerformCheck();body_object_collection = simpleInterference1->GetInterferenceResults();//获得简单干涉后的体。body_tag = body_object_collection[0]->Tag();//默认简单干涉生成了一个实体,将该实体转换成UFun对象。return body_tag;//返回简单干涉生成的体的Tag。
}
NX/UG二次开发简单干涉相关推荐
- NX/UG二次开发创建曲面偏置体
NX/UG二次开发--创建曲面偏置体 创建曲面偏置体 1.曲面偏置 创建曲面偏置体 这里介绍了一种对模型曲面进行偏置来获得偏置体的方法. 1.曲面偏置 void OffsetFace(tag_t fa ...
- NX/UG二次开发环境配置方法—史上最详细版(以NX11.0和Visual Studio 2017为例)
一.前言 本人之前在用NX12.0以及Visual Studio 2017进行NX二次开发时,进行过开发环境的配置,当时也遇到了一点问题,好在最后解决了.最近由于项目需求,我卸载了NX12.0,重装了 ...
- NX/UG二次开发—菜单—ACTIONS的应用
NX二次开发菜单打开网站,打开程序,打开文件夹响应.以下是常用的几种方式,实际上如果你熟悉DOS命令,BAT的话基本上想要打开什么程序都可以! (1)网站的打开: ACTIONS "st ...
- NX/UG二次开发—装配—克隆相关知识总结
一.克隆部件或装配-七步法: 1. UF_CLONE_initialise 初始化克隆操作 2. UF_CLONE_add_assembly/UF_CLONE_add_part添加装配/部件文 ...
- python ug_一个python的UG二次开发简单例子(二)
UG API里面模型创建主要包括了两大类模块,一是NXOpen,二是NXOpen.UF(以下简称UF).这两个里面都包含创建数字模型的函数,但使用方法有很大的不同.UG帮助文档介绍UF开发比较早,可能 ...
- NX/UG二次开发—调用NX内部函数实现功能汇总(部分只有标题)
1.调用NX自身功能并返回开发工具界面UIFW_create_command: 2.C++与C#开发的dll互相调用且可以传参: 3.NX进度条的创建.显示.删除MT_create_progress_ ...
- NX/UG二次开发—建模—UDO
最近学习了一下UDO,以下主要讲一下我遇到的一些疑问和笔记,希望对新手有一些帮助.(在UG安装目录下有个官方例子用NXopen函数写的,大家可以参考一下..\Siemens\NX 11.0\UGOPE ...
- NX/UG二次开发—建模—关于创建单线汉字的三种思路
最近有人问我在NX里绘制单线汉字,简单操作了一下,发现在曲线文本命令中并不存在单线汉字,只能绘制单线字母(可以注意一下:下拉列表中都是系统字,不存在UG字体,为什么?): 1.通过制图模块可以创建单线 ...
- NX/UG二次开发-建模-刻字实现方案
关于刻字,NX自身提供了文本曲线命令.但不能调整文字间距,部分字体汉字自相交.重合.解决这些问题,通过网上检索,可以用过windowsAPI "GetGlyphOutlineW"直 ...
- NX/UG二次开发—3D几何—包围盒相交检测(转载)
一:包围盒介绍 包围盒是指能够包容物体的三维立方体或者二维长方形,是包围体的一种,常常用于模型的碰撞检测.包围体主要包括球体.轴对齐包围盒(AABB).有向包围盒(OBB)和凸包(Convex Hul ...
最新文章
- XML解析方式(来自 传智播客 方立勋视频教程)
- (转载)IT未来发展五大趋势
- Java-异常处理练习
- python os.path.exists()(用于判断文件夹路径是否存在)
- linux集群管理权限,Linux下ACL权限管理
- php 版本排序,四种常见排序算法--PHP版本
- tankwar的java坦克子弹撞墙_tankwar
- A - Character Encoding HDU - 6397 - 方程整数解-容斥原理
- 题解 UVA10587 【Mayor's posters】
- 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!
- linux下的mongodb数据库原生操作
- 《网络基础》- 第3集-IP地址、子网掩码和路由器的作用
- Javascirpt 排障(一)
- python2.7安装
- Spring注解扫描原理浅析
- Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(9):摄像头GPS传感器
- TCP/IP之传输层协议详解
- Python中随机梯度下降法
- 快速提取Word文档中的所有图片
- c++ fgets() 用法