当前位置: 首页 > news >正文

NX/UG二次开发—Parasolid—PK_BODY_pick_topols

最近在写一个判断圆孔深度和通盲状态的功能,发现PK_BODY_pick_topols射线函数可以设置到射线垂直距离,相当于一个圆柱空间,但在测试发现,R7的孔,设置:

max_edge_dist = 0.007; max_vertices = 0.007;

结果测试发现返回值中小于7mm,通过设置pick_approx = PK_pick_approximate_no_c,也没有起作用。

在尝试调整离散曲线,并设置曲线弦长之后,结果越来越接近7mm,但如果将公差调整非常小,测试结果又恢复到默认值。

如果是直线边,测试结果准确,对于曲线边界,需要公差设置,而且必须在合理范围内的公差。

以上是我的测试记录,遇到问题的可以参考。如果有哪个参数可以直接设置,还望留言指正。

    /*获取圆柱空间内面、体对象*/ //初始化射线区域PK_BODY_pick_topols_o_t rayOptions;PK_BODY_pick_topols_o_m(rayOptions);rayOptions.max_faces = 1;rayOptions.max_edges = 1;rayOptions.max_vertices = 1;rayOptions.method = PK_BODY_pick_radial_c;rayOptions.is_curve_chord_tol = PK_LOGICAL_true;rayOptions.curve_chord_tol = 0.00001 * 0.001;rayOptions.pick_approx = PK_pick_approximate_no_c;rayOptions.max_edge_dist = radius * 0.001;rayOptions.max_vertices = radius * 0.001;rayOptions.near_plane = PK_LOGICAL_true;rayOptions.near_point.coord[0] = topCenterPt[0] * 0.001;rayOptions.near_point.coord[1] = topCenterPt[1] * 0.001;rayOptions.near_point.coord[2] = topCenterPt[2] * 0.001;rayOptions.far_plane = PK_LOGICAL_true;rayOptions.far_point.coord[0] = (topCenterPt[0] + refDir[0] * depth ) * 0.001;rayOptions.far_point.coord[1] = (topCenterPt[1] + refDir[1] * depth ) * 0.001;rayOptions.far_point.coord[2] = (topCenterPt[2] + refDir[2] * depth ) * 0.001;//PK_AXIS1_sf_t rayAxis;rayAxis.location.coord[0] = topCenterPt[0] * 0.001;rayAxis.location.coord[1] = topCenterPt[1] * 0.001;rayAxis.location.coord[2] = topCenterPt[2] * 0.001;rayAxis.axis.coord[0] = refDir[0];rayAxis.axis.coord[1] = refDir[1];rayAxis.axis.coord[2] = refDir[2];//PK_BODY_pick_topols_r_t pickedInfor;PK_PART_t bodies[1] = { t_pkObject };//PK_BODY_pick_topols(1, bodies, PK_ENTITY_null, &rayAxis,&rayOptions, &pickedInfor);

http://www.lryc.cn/news/156648.html

相关文章:

  • 【校招VIP】前端算法考点之大数据相关
  • Goland2023版新UI的debug模式调试框按钮功能说明
  • 【AIGC专题】Stable Diffusion 从入门到企业级应用0414
  • 汇编原理学习记录:物理地址=段地址*16+偏移地址
  • mysql-2:安装mysql
  • gin框架
  • Laravel 完整开源项目大全
  • Spring MVC @Controller和@RequestMapping注解
  • 软件架构之前后端分离架构服务器端高并发演进之路
  • 第4节-PhotoShop基础课程-Ps格式
  • C语言malloc函数学习
  • 从零开始学习deepsort目标追踪算法----原理和代码详解
  • 第三章 LInux多线程开发 3.1-3.5线程创建 终止 分离
  • 空间曲线的参数方程
  • 非华为机型如何体验HarmonyOS鸿蒙系统 刷写HarmonyOS鸿蒙GSI系统以及一些初步的bug修复
  • Flutter 生成小程序的混合 App 实践
  • 利用 Python-user-agents 解析 User_Agent
  • Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
  • Mybatis如何给字段起别名?
  • php对接AWS S3云存储,上传S3及访问权限问题
  • java 实现单例模式
  • minio文件服务器开启https
  • 每日刷题(回溯法经典问题之子集)
  • PostgreSQL在进行除法时要注意
  • 开开心心带你学习MySQL数据库之第五篇
  • Geotools对geojson的解析
  • 【博客701】shell实现保留网络现场:ping失败时执行mtr
  • 放弃手写代码吧!用低代码你能生成各种源码
  • 什么程度才算精通 Linux?
  • jmeter中的__setProperty用法