请选择 进入手机版 | 继续访问电脑版

唐康林NX二次开发论坛

 找回密码
 立即注册
搜索
热搜: nxopen ufun
查看: 404|回复: 0

[技术分享] NX二次开发之关于求点在面上的投影点方法!-唐康林原创

[复制链接]

536

主题

705

帖子

3026

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3026
发表于 2018-2-9 11:04:15 | 显示全部楼层 |阅读模式
文/唐康林 独家原创 QQ125315789
       看群里面有人问到,如何求一个在一个面以外的点在这个面上的点坐标,其实这个问题,是一个比较范围比较大的问题,只是一个方向,还不能具体到解决问题的手段上来。
       要解决一个问题,就必须明确所有的输入条件,不同的输入条件,有不同的解决措施,就事论事,以下就说一说,关于这个面外的点在面上的坐标。
       一、问题分解
       1、输入信息只有点坐标(或者点标识)与一个面,最终想求这个点沿面的法向方向且躺在面上的点坐标;
            解决方法:利用函数UF_MODL_ask_face_parm就可以,大概可以测试一下,这个函数本身是求一个参考点在一个面上的UV参数位置与躺在这面上的点坐标,那官方的算法是怎么样的?这个可能需要自己去测试,我在NX10版里面测试过,利用这个函数是可以求到一个空间点,垂直于面上的点。(点在垂直方向看,点是在面的范围内的,不在这个范围,我没有测试过行不行,理论上是不行的。)
           如果你不嫌麻烦,那就用投影曲线这个函数,UF_MODL_create_proj_curves
       2、输入信息为点坐标,面,以及投影方向;
       解决方法:除了利用投影函数UF_MODL_create_proj_curves来解决,大家还可以考虑利用射线的函数UF_MODL_trace_a_ray
       二、特殊情况
       很多时候,在企业做项目,为了完成任务,讲效率,就不会去考虑什么通用解决方法,就是为了解决问题而解决问题,针对行业的特殊性进行解决,上面的问题,很有可能有以下特殊情况:
       1、给的面其实不是一个曲面,只是一个平面或者基准平面之类
            解决方法:如果面是一个平面,可以先获取平面的法向,再利用数学计算就可以了;
       2、给的点是空间点,面是标准的XYZ平面,或者说标准的XYZ方向;
            解决方法:这更简单,直接用坐标计算就完了,还用什么函数?
      所以,当我们做开发的时候,先要明确输入的条件,然后再算哪个方法简单,不过在软件公司不负责的项目经理太多,他们往往只是一句话,就叫你去开发,根本就不管你后台实现有多难,很多时候,让用户选一下,和不选,要实现同样的结果,这个开发工作量,不是一个量级的,可惜,很多项目经理并不知道。
       能懂制造研发,还懂开发逻辑的项目经理是极少的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( 蜀ICP备16014681号

GMT+8, 2018-6-24 06:00 , Processed in 0.079848 second(s), 25 queries .

Powered by www.nxopen.cn

© 2001-2013 nxopen.cn

快速回复 返回顶部 返回列表