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二次开发简单干涉相关推荐

  1. NX/UG二次开发创建曲面偏置体

    NX/UG二次开发--创建曲面偏置体 创建曲面偏置体 1.曲面偏置 创建曲面偏置体 这里介绍了一种对模型曲面进行偏置来获得偏置体的方法. 1.曲面偏置 void OffsetFace(tag_t fa ...

  2. NX/UG二次开发环境配置方法—史上最详细版(以NX11.0和Visual Studio 2017为例)

    一.前言 本人之前在用NX12.0以及Visual Studio 2017进行NX二次开发时,进行过开发环境的配置,当时也遇到了一点问题,好在最后解决了.最近由于项目需求,我卸载了NX12.0,重装了 ...

  3. NX/UG二次开发—菜单—ACTIONS的应用

    NX二次开发菜单打开网站,打开程序,打开文件夹响应.以下是常用的几种方式,实际上如果你熟悉DOS命令,BAT的话基本上想要打开什么程序都可以! (1)网站的打开:   ACTIONS "st ...

  4. NX/UG二次开发—装配—克隆相关知识总结

    一.克隆部件或装配-七步法: 1. UF_CLONE_initialise 初始化克隆操作     2. UF_CLONE_add_assembly/UF_CLONE_add_part添加装配/部件文 ...

  5. python ug_一个python的UG二次开发简单例子(二)

    UG API里面模型创建主要包括了两大类模块,一是NXOpen,二是NXOpen.UF(以下简称UF).这两个里面都包含创建数字模型的函数,但使用方法有很大的不同.UG帮助文档介绍UF开发比较早,可能 ...

  6. NX/UG二次开发—调用NX内部函数实现功能汇总(部分只有标题)

    1.调用NX自身功能并返回开发工具界面UIFW_create_command: 2.C++与C#开发的dll互相调用且可以传参: 3.NX进度条的创建.显示.删除MT_create_progress_ ...

  7. NX/UG二次开发—建模—UDO

    最近学习了一下UDO,以下主要讲一下我遇到的一些疑问和笔记,希望对新手有一些帮助.(在UG安装目录下有个官方例子用NXopen函数写的,大家可以参考一下..\Siemens\NX 11.0\UGOPE ...

  8. NX/UG二次开发—建模—关于创建单线汉字的三种思路

    最近有人问我在NX里绘制单线汉字,简单操作了一下,发现在曲线文本命令中并不存在单线汉字,只能绘制单线字母(可以注意一下:下拉列表中都是系统字,不存在UG字体,为什么?): 1.通过制图模块可以创建单线 ...

  9. NX/UG二次开发-建模-刻字实现方案

    关于刻字,NX自身提供了文本曲线命令.但不能调整文字间距,部分字体汉字自相交.重合.解决这些问题,通过网上检索,可以用过windowsAPI "GetGlyphOutlineW"直 ...

  10. NX/UG二次开发—3D几何—包围盒相交检测(转载)

    一:包围盒介绍 包围盒是指能够包容物体的三维立方体或者二维长方形,是包围体的一种,常常用于模型的碰撞检测.包围体主要包括球体.轴对齐包围盒(AABB).有向包围盒(OBB)和凸包(Convex Hul ...

最新文章

  1. XML解析方式(来自 传智播客 方立勋视频教程)
  2. (转载)IT未来发展五大趋势
  3. Java-异常处理练习
  4. python os.path.exists()(用于判断文件夹路径是否存在)
  5. linux集群管理权限,Linux下ACL权限管理
  6. php 版本排序,四种常见排序算法--PHP版本
  7. tankwar的java坦克子弹撞墙_tankwar
  8. A - Character Encoding HDU - 6397 - 方程整数解-容斥原理
  9. 题解 UVA10587 【Mayor's posters】
  10. 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!
  11. linux下的mongodb数据库原生操作
  12. 《网络基础》- 第3集-IP地址、子网掩码和路由器的作用
  13. Javascirpt 排障(一)
  14. python2.7安装
  15. Spring注解扫描原理浅析
  16. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(9):摄像头GPS传感器
  17. TCP/IP之传输层协议详解
  18. Python中随机梯度下降法
  19. 快速提取Word文档中的所有图片
  20. c++ fgets() 用法

热门文章

  1. 房地产开发建设项目管理(全程房地产典范企业案例)
  2. 基于matlab特征脸Eigenface算法的实现
  3. 局域网内台式机使用笔记本作代理服务器上网
  4. 三国志战略版:三势法正出奇效,藤甲张角新篇章
  5. 【FXP】连接站点并上传包文件:
  6. .Net与DirectX结合制作泡泡屏保
  7. maya中英文对照_maya2011中英文对照表
  8. mac和windows共享键盘鼠标方案
  9. 2020年IT运维市场大前景到底怎么样
  10. 采样频率和带宽的关系_示波器的采样率及存储深度