UG/NX 二次开发(C#) 获取曲面的中心点坐标
二开过程中,需要用到曲面的中心点坐标,没有直接的获取方法,找了一些群友问,大佬甩我一句0.5uv,完全没看明白什么意思,没有设计基础做二开的是尴尬。
经过多方查阅资料终于明白大佬的意思,顺便整理出来与大家分享。
废话不多说,直接上源码:
/// <summary>/// 获取曲面的中心点/// </summary>/// <param name="face"></param>/// <returns></returns>public static Point3d GetCenterPoint(Face face){theUFSession = UFSession.GetUFSession();IntPtr evaluator;theUFSession.Evalsf.Initialize2(face.Tag, out evaluator); //初始化面部评估器结构 double[] uv_min_max = new double[4] { 0.0, 1.0, 0.0, 1.0 };theUFSession.Evalsf.AskFaceUvMinmax(evaluator, uv_min_max); //计算面的u,v参数空间min,max double[] uv_pair = { 0.5 * (uv_min_max[0] + uv_min_max[1]), 0.5 * (uv_min_max[2] + uv_min_max[3]) };ModlSrfValue surf_eval;theUFSession.Evalsf.Evaluate(evaluator, UFConstants.UF_MODL_EVAL_ALL, uv_pair, out surf_eval); //在给定参数值下评估面的点和导数。Point3d origin;origin.X = surf_eval.srf_pos[0];origin.Y = surf_eval.srf_pos[1];origin.Z = surf_eval.srf_pos[2];return origin;}
调用方法如下:
public static void Main(string[] args){try{theSession = Session.GetSession();displayPart = theSession.Parts.Display;theUFSession = UFSession.GetUFSession();workPart = theSession.Parts.Work;Body bodyYZHU = (Body)workPart.Bodies.FindObject("BLOCK(1)");Auto_Init.BodyInit init = new Auto_Init.BodyInit(bodyYZHU);BodyModel model = init.ProcBody();Face topface = (Face)NXOpen.Utilities.NXObjectManager.GetObjectFromUInt(uint.Parse(model.faceFlag.faceTop));GetCenterPoint(topface);}catch (NXOpen.NXException ex){theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());}}
调试结果如图:
UG/NX 二次开发(C#) 获取曲面的中心点坐标相关推荐
- UG NX二次开发(C#)-CAM-加工模板、程序、方法、刀具和几何体的读取
1.前言 在UG NX的CAM模块中,加工程序是根据UG NX设置的加工模板来编程的,本人是针对CAM模块的UG NX二次开发,获取加工模板.程序名称.加工方法.刀具和几何体的字符串. 2.进入加工模 ...
- UG\NX二次开发 获取相切面的三种方法
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取相切面的三种方法 方法1: 使用NX Open C++ 的面 ...
- UG\NX二次开发 获取曲线上某个位置的点坐标、切线矢量、主法线矢量、副法线矢量 UF_MODL_ask_curve_props
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取曲线上某个位置的点坐标.切线矢量.主法线矢量.副法线矢量 U ...
- UG\NX二次开发 获取当前工作部件 UF_ASSEM_ask_work_part
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取当前工作部件 UF_ASSEM_ask_work_part ...
- UG\NX二次开发 获取工作部件下所有对象的类型和子类型 UF_OBJ_ask_type_and_subtype
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取工作部件下所有对象的类型和子类型,使用函数 UF_OBJ_a ...
- UG/NX二次开发Siemens官方NXOPEN实例解析—1.6 BlockStyler/SelectionExample
列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-1.1 BlockStyler/ColoredBlock UG/NX二次开发Siemens官方NXOPEN实例解析-1.2 Blo ...
- UG/NX二次开发Siemens官方NXOPEN实例解析—2.8 DrawingCycle(图纸打印)
列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-2.1 AssemblyViewer(树列表) UG/NX二次开发Siemens官方NXOPEN实例解析-2.2 Selectio ...
- UG/NX二次开发Siemens官方NXOPEN实例解析—1.8 BlockStyler/UDB_CreateCylinder
列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-1.1 BlockStyler/ColoredBlock UG/NX二次开发Siemens官方NXOPEN实例解析-1.2 Blo ...
- UG/NX二次开发Siemens官方NXOPEN实例解析—1.2 BlockStyler/EditExpression
列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-1.1 BlockStyler/ColoredBlock UG/NX二次开发Siemens官方NXOPEN实例解析-1.2 Blo ...
最新文章
- java easyui tree例子_EasyUI Tree的简单使用
- json解析:[1]gson解析json
- JSP具体条款——response对象
- IPC\DVS\DVR与NVR之间的区别
- 【WP8.1开发】RenderTargetBitmap类的特殊用途
- HashMap 实现原理
- SVN 批量添加文件到版本库的命令脚本
- Linux 命令之 nslookup 命令-查询域名 DNS 信息的工具
- Shutter - 带有众多功能的屏幕截图工具
- C语言switch如何退出,C语言萌新,想问问如何让下面那个switch函数输出的结果继续...
- 仓位管理 – 2.实战篇
- OpenGL.Vertex Array Object (VAO).
- apache http自动跳转https_NGINX使用rewrite实现http 跳转 https
- tinymce 字体样式_TinyMCE-添加中文字体及修改字体大小
- 测绘的真正出路在于什么?
- Dockerfile制作容器--ssh容器,详细步骤与指令介绍
- 湖南省工信厅党组书记、厅长雷绍业一行莅临麒麟信安调研
- win10系统如何打开.swf视频文件,flash palyer无法使用
- Win10下不能识别Android的MTP模式
- 川希:普通人通过理财就能实现财务自由?大骗局!