NX/UG二次开发—CAM—一些外挂刀路选择方案对比

news2025/2/24 21:05:16

在做一刀轨编辑工具时,大家希望实现类似NX刀轨编辑中选择刀路的功能,以下我罗列了几种目前外挂里使用的几种方式,自己也做了一些对比:

涉及一些运算时间,参考电脑配置(内存32G,CPUi9-12950HX)

1、刀路转成曲线,使用曲线或类选择器:

这个方法相对可实现性比较强,操作安全,都可以采用开放的API,但对于刀路遍历是在NX11之后的版本提供的,因此低版本还需要使用dll导出函数去做迭代和编辑。

其次,对于大刀路,几十万或上百万根刀路,使用UFUN函数转换成曲线,非常慢。测试30万根刀路用UFUN创建,大约38s左右,包括设置曲线颜色。采用PK函数创建,创建大约2s,显示和设置大约6s,总计9s左右,速度勉强接受。

!!!注意PK创建曲线,直线的区间是长度,圆弧的区间是角度。

2、创建UF_machining_pathindex_type对象,使用类选择器            

使用PTHDSP_create_index创建的对象,然后将类选择控件设置选择UF_machining_pathindex_type类型,然后可以实现选择刀路。如果PTHDSP_create_index中的参数采用单根创建,对于刀轨数量多的程序速度依然很慢,但会比UFUN函数快很多。class UGS::CamUI::PathDisplay创建刀路很快,组数自定义,如果设置成1,速度也很慢,用class UGS::CamUI::PathDisplay创建显示的刀路,对于直线与圆弧相切的刀路,会默认成一根刀路进行选择,无法拆分。这种存在一个问题,如果优先选择程序,再打开对话框创建index,类选择控件会出现选择不灵敏的问题。

3、使用刀路选择控件UGS::CamUI::PathSelection

http://t.csdnimg.cn/k0dHaicon-default.png?t=N7T8http://t.csdnimg.cn/k0dHa

参考上面连接,需要将控件先配置到block ui模块,然后按正常制作对话框流程制作。这个对话框稍微特殊,需要用代码初始化一些属性,否则无法使用,具体属性参考如下:

UGS::CamUI::PathSelection

"m_pathOwner" "m_selectHeadIndex" "m_toolPath" "m_appendMode"

UGS::CamUI::PathDisplay

"m_toolPath"

此控件,官方资料几乎为零,很多都是对象的内存传参,使用机制和方法需要不断摸索,导致各种BUG不断。其次,在创建显示刀路,内部一般默认500根刀路一组,刀路选择控件可以自动按单根刀路选择,导致选择多根后,选择控件显示的数量与实际发生不一致。

   以上三种方案,是目前我结合一些外挂测试的的几种方法,总体来说,推荐第一种,虽然牺牲了一些速度,但在创建之后,速度和安全性均比较稳定。第二中方案和第三种就属于单纯炫技操作了,自己摸索,不推荐使用,还需结合工具开发周期和使用目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea链接gitlab的token到期

报错 HTTP Request Request GET http://36.46.143.158:6060/api/v4/version failed wit

乡村振兴多元共治,共绘乡村新蓝图:政府引领、企业助力、村民参与

乡村振兴是一项复杂而艰巨的任务,需要从多个角度进行考虑。以下是从不同身份出发对乡村振兴建设的思考: 1、政府领导的角度: 政府是乡村振兴的主要推动者和组织者。在制定和实施乡村振兴战略时,政府需要注重规划引领,科…

PHP7垃圾回收算法

前提 本文为了梳理PHP GC工作流程,所以从引用计数、部分标记清除算法做引子,然后介绍PHP GC工作流程,最后介绍性能更高的GC算法 引用计数 概述 引用计数算法中引入了一个概念计数器。计数器代表对象被引用的次数 基本原理 为了记录一个对象有没有被…

微信公众号第三方平台-公众号扫码授权接入代运营

文章目录 接入目的效果展示技术积累如何成为服务商如何搭建第三方后端服务传统模式V云服务模式如何完成商家授权授权逻辑介绍 环境准备注册开发者平台-个人类型 传统模式后端代码接收公众号个人三方平台的票据根据票据获取三方平台访问令牌根据访问令牌获取预授权码通过预授权码…

如何本地搭建开源导航页配置服务Dashy并发布到公网分享好友使用

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。[点击跳转到网站] 简介 Dashy 是…

嵌入式网线连接——笔记本电脑设置

一、需求 我们调试很多设备经常需要用到网线去调试,当然主流是USB,和网线。 二、笔记本电脑端设备 有网口的,非常方便,如果没有网口,则需要用到USB转网口 连接指示灯: 绿色:灯亮表示连接正常…

蓝桥杯(填空题)

十四届 B组 日期统计(暴力枚举) 数据 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1 0 0 9 4 8 0 9 1 2 8 5 0 2 5 3…

一篇文章了解php7和php8新特性

PHP7新特性 ?? 运算符 php7以前用三目判断变量是否存在或是否为空 $a isset($_GET[a]) ? $_GET[a] : 1;php7新增null 合并运算符??快捷判断 $a $_GET[a] ?? 1;函数返回值类型声明 用:返回值类型的形式定义函数的返回值类型 <?phpdeclare(strict_types1); fun…

git配置多SSH

目的&#xff1a; 一台电脑可以让github、gitee等账号同时存在&#xff0c;让不同账号配置不同的密钥 第一步&#xff1a;创建不同平台的SSH公钥 执行命令&#xff1a; ssh-keygen -t rsa -C "对应仓库邮箱地址" -f ~/.ssh/id_rsa.github 如果执行上面的命令&…

Windows部署ChatGLM3步骤

一、环境要求 硬件 内存&#xff1a;> 16GB 显存: > 13GB&#xff08;4080 16GB&#xff09; 软件 python 版本推荐3.10 - 3.11 transformers 库版本推荐为 4.36.2 torch 推荐使用 2.0 及以上的版本&#xff0c;以获得最佳的推理性能 二、部署步骤 1、新建pytho…

Web服务器架构设计(学习笔记)

软件架构风格 质量属性与架构评估 Web架构综合考察 什么叫做架构风格&#xff1f;又有哪些架构风格&#xff1f;不同的架构风格的优劣如何? 有哪些层次的负载均衡实现&#xff1f;优劣如何&#xff1f; 有哪些层面的集群切片实现&#xff1f; 什么叫做小前端&#xff0c…

【收藏】工业物联网常用协议及使用场景

物联网通信协议 物联网通信协议在工业中至关重要。它们实现设备之间的实时数据传输与相互交互&#xff0c;提高了生产效率、降低成本、增强安全性。这些协议帮助监控设备运行状况、优化生产流程、预测维护需求&#xff0c;同时改善生产环境智能化。通过整合智能传感器与设备&am…

哪些工作不会被AI替代:人类能力地形图

这一轮AI&#xff0c;到底对人有多强的替代性&#xff1f;这一轮AI的可靠性&#xff0c;是之前任何一代所谓的人工智能都不能比的。 在国内&#xff0c;AI开始被用来筛选简历&#xff0c;而在国外&#xff0c;亚马逊正在用算法跟踪仓库工人的生产率&#xff0c;顺道还会给生产率…

【Vector-Map-路径规划(0)】卷首语

因为城市NOA 的开发过程中&#xff0c;十字路口这类场景非常不好处理&#xff0c;个人对路径规划没有什么基础&#xff0c;只知道深度优先&#xff0c;广度优先&#xff0c;A*&#xff0c;Dijkstra等算法&#xff0c;不知道在矢量地图中如何使用&#xff1f;因此花几天时间读几…

【Python】控制台进度条

在Python开发中&#xff0c;有时需要向用户展示一个任务的进度&#xff0c;以提供更好的交互体验。下面我将展示如何使用Python来创建一个简单的控制台进度条。 效果&#xff1a; 代码&#xff1a; import time import sys def print_progress_bar(completed, total, length…

如何使用Jellyfin+cpolar低成本部署私人影音平台并实现无公网IP远程访问

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

Redis从入门到精通(十二)Redis实战(九)GEO查询附近商户、BitMap用户签到和统计、HLL的UV统计

↑↑↑请在文章开头处下载测试项目源代码↑↑↑ 文章目录 前言4.10 附近商户4.10.1 GEO介绍4.10.2 附近商户需求分析4.10.3 实现新增商户功能4.10.4 实现查询附近商户功能 4.11 用户签到4.11.1 用户签到需求分析4.11.2 BitMap介绍4.11.3 实现用户签到4.11.4 实现用户签到统计4.…

Vuforia AR篇(二)— 扫描指定图片播放视频

目录 一、 使用Vuforia SDK创建Vuforia账号下载Vuforia SDK包导入SDK到unity中 二、使用Vuforia扫描指定图片播放视频创建ARCamera创建 License创建ImageTarget生成识别数据库播放视频 三、 效果 一、 使用Vuforia SDK 创建Vuforia账号 Vuforia官网 登录官网创建一个账号&am…

【fiddler】弱网测试

目录 一、测试目的 二、步骤 2.1打开弱网模式 ​ 2.2设置网络参数 &#xff08;1&#xff09;打开Rules→Customize Rules&#xff1b; &#xff08;2&#xff09;找到下面框出的代码&#xff0c;在这里设置弱网参数值&#xff1b; &#xff08;3&#xff09;设置完成后&a…

【每日刷题】Day10

【每日刷题】Day10 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f345; 目录 1. 环形链表的约瑟夫问题_牛客题霸_牛客网 (nowcoder.com) 2. 21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 3. 152…