二开过程中,需要用到曲面的中心点坐标,没有直接的获取方法,找了一些群友问,大佬甩我一句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#) 获取曲面的中心点坐标相关推荐

  1. UG NX二次开发(C#)-CAM-加工模板、程序、方法、刀具和几何体的读取

    1.前言 在UG NX的CAM模块中,加工程序是根据UG NX设置的加工模板来编程的,本人是针对CAM模块的UG NX二次开发,获取加工模板.程序名称.加工方法.刀具和几何体的字符串. 2.进入加工模 ...

  2. UG\NX二次开发 获取相切面的三种方法

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取相切面的三种方法 方法1: 使用NX Open C++ 的面 ...

  3. UG\NX二次开发 获取曲线上某个位置的点坐标、切线矢量、主法线矢量、副法线矢量 UF_MODL_ask_curve_props

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取曲线上某个位置的点坐标.切线矢量.主法线矢量.副法线矢量 U ...

  4. UG\NX二次开发 获取当前工作部件 UF_ASSEM_ask_work_part

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取当前工作部件 UF_ASSEM_ask_work_part ...

  5. UG\NX二次开发 获取工作部件下所有对象的类型和子类型 UF_OBJ_ask_type_and_subtype

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UG\NX二次开发 获取工作部件下所有对象的类型和子类型,使用函数 UF_OBJ_a ...

  6. UG/NX二次开发Siemens官方NXOPEN实例解析—1.6 BlockStyler/SelectionExample

    列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-1.1 BlockStyler/ColoredBlock UG/NX二次开发Siemens官方NXOPEN实例解析-1.2 Blo ...

  7. UG/NX二次开发Siemens官方NXOPEN实例解析—2.8 DrawingCycle(图纸打印)

    列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-2.1 AssemblyViewer(树列表) UG/NX二次开发Siemens官方NXOPEN实例解析-2.2 Selectio ...

  8. UG/NX二次开发Siemens官方NXOPEN实例解析—1.8 BlockStyler/UDB_CreateCylinder

    列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-1.1 BlockStyler/ColoredBlock UG/NX二次开发Siemens官方NXOPEN实例解析-1.2 Blo ...

  9. UG/NX二次开发Siemens官方NXOPEN实例解析—1.2 BlockStyler/EditExpression

    列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析-1.1 BlockStyler/ColoredBlock UG/NX二次开发Siemens官方NXOPEN实例解析-1.2 Blo ...

最新文章

  1. java easyui tree例子_EasyUI Tree的简单使用
  2. json解析:[1]gson解析json
  3. JSP具体条款——response对象
  4. IPC\DVS\DVR与NVR之间的区别
  5. 【WP8.1开发】RenderTargetBitmap类的特殊用途
  6. HashMap 实现原理
  7. SVN 批量添加文件到版本库的命令脚本
  8. Linux 命令之 nslookup 命令-查询域名 DNS 信息的工具
  9. Shutter - 带有众多功能的屏幕截图工具
  10. C语言switch如何退出,C语言萌新,想问问如何让下面那个switch函数输出的结果继续...
  11. 仓位管理 – 2.实战篇
  12. OpenGL.Vertex Array Object (VAO).
  13. apache http自动跳转https_NGINX使用rewrite实现http 跳转 https
  14. tinymce 字体样式_TinyMCE-添加中文字体及修改字体大小
  15. 测绘的真正出路在于什么?
  16. Dockerfile制作容器--ssh容器,详细步骤与指令介绍
  17. 湖南省工信厅党组书记、厅长雷绍业一行莅临麒麟信安调研
  18. win10系统如何打开.swf视频文件,flash palyer无法使用
  19. Win10下不能识别Android的MTP模式
  20. 川希:普通人通过理财就能实现财务自由?大骗局!

热门文章

  1. (十八)享元模式详解(都市异能版) - 转
  2. 【STM32单片机】2048游戏设计
  3. ResNet变种(ResNet-B/C/D、Res2Net、ResNeXt、ResNeSt)
  4. UE4-(IK)实现人物脚贴合地面解决自身胶囊体影响效果问题
  5. win10 安装 ros2.0---ROS Bouncy
  6. 第三章 NTP时间服务
  7. 供水水泵控制器PLC如何在线监控和远程维护
  8. 百度offe面经及找工作一个月体会
  9. 小学计算机室信息化实施方案,牛镇镇中心学校教育信息化建设实施方案
  10. 微信公众平台开发之在线翻译功能