SmartPipe新增功能:自动识别含间隙的低质量模型与自动处理超过180度的圆弧管路

自2022年12月SmartPipe上市以来,我一直在不断迭代和升级其轴线识别算法。对于客户反馈的无法自动转换的模型,我都视若珍宝,将其视为提升算法性能的绝佳机会。经过一年半的积累,SmartPipe的测试模型从最初的10个逐步迭代到近100个。SmartPipe的轴线识别算法也日益成熟和强大,从最初只能识别普通标准管,到如今能够快速准确识别带有复杂孔洞、首末裁切管、带支管管路、压瘪管、装配管、推弯管、锥形管等各种类型。

上周,客户反馈了一个无法识别的管路模型,这个管路模型非常有特点,解决的过程也很有意思、颇具挑战,本文将介绍一下这个管路的debug过程。
在这里插入图片描述
该管路由上图1至7段组成,其中1、2、6、7为直线段,3、4、5为圆弧段。根据3、4、5三段连续的圆弧段,可以推测出该管路模型是推弯管。在SmartPipe中进行处理时,尽管轴线识别结果正确,但YBC预览失败了,如下图所示。
在这里插入图片描述
YBC预览失败的原因在于计算得到的XYZ折弯点数据出错,而折弯点数据是根据识别的轴线数据计算的,因此可能是识别的轴线数据存在错误。逐一输出轴线数据,发现3、4段连接处的轴端点存在缝隙,两点坐标分别为(5699.18,3217.12,651.798)和(5699.25,3217.13,651.778),存在较大缝隙。
在这里插入图片描述
为什么会出现这种缝隙呢?在CATIA中打开模型,发现在在3、4两段连接处,管路模型本身竟然存在着缝隙,如下图所示。正常情况下,第3段的末端和第4段的首端都是完整的圆弧边,两个圆弧边应该完全重合。然而,该模型显然出现了精度问题,导致上述两个圆弧不完全重合,且实际测试发现,其两端边的类型不完全是圆弧,而是自由曲线类型。
在这里插入图片描述
在这里插入图片描述
这种情况导致两个轴端首末端计算出的轴线端点坐标分别为(5699.18,3217.12,651.798)和(5699.25,3217.13,651.778),理应重合的点存在较大缝隙,轴线识别数据有误差,进而导致XYZ数据出错。
在这里插入图片描述
模型出现上述问题的原因可能是模型转换过程中精度较差导致的拓扑错误。针对这个问题,通常采用专业的三维模型修复软件如CADDoctor、CADFix来修复,但我尝试了一下,发现用CADDoctor修复后效果并不好,修复的模型仍存在拓扑错误,且修复过程繁琐,需要大量人工交互。
在这里插入图片描述
因此,我升级了轴线识别算法,针对这种含有间隙的低质量模型进行自动处理。我的思路是通过算法识别出这种带有间隙的错误情况,计算出两个圆弧的统一“中心点”,根据这个中心点重新计算两侧的轴线,使两侧轴线满足一阶连续。

经过修正后,正确计算出了轴线,如图所示。
在这里插入图片描述
但是,虽然正确计算出了轴线,YBC预览仍然不成功,经过仔细分析,发现管路模型中的第4段是一个超过180度的圆弧段,如下图所示。在CATIA中测量此圆弧段的圆心角,约为190度。
在这里插入图片描述
圆心角超过180度,就意味着在求折弯点的时候,求不出交点,或者说求出的交点在另一侧,针对这个问题,我请教了一下客户经理,客户经理告诉我,一般这种情况是通过在超过180度的圆弧段中点插入一个小直线来实现的,将超过180度的圆弧段从其中点处劈裂,一分为二,中间插入相切直线,从而实现将超过180度的圆弧段转化为两段圆弧段的拼接。

于是,我进一步升级了算法,增加对超过180度圆弧的自动检测。对于检测出的圆弧段,从中点处劈开,在保证Edge方向不变的情况下分为两段,同时在两个圆弧段连接处插入一段0.1mm长度的微小直线,该微小直线与两端的圆弧段光滑相连。

升级算法后,YBC预览成功,效果如下图。
在这里插入图片描述
将导出的xyz数据输入到正向生成管路模块,生成的正向管路如下图所示,可以看到在原来的圆弧轴端4的中间,新增了一个微小的直线,这就是本软件算法做出的微小直线。
在这里插入图片描述
至此,该模型debug成功,管路模型轴线算法再次得到升级。

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

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

相关文章

使用MySQL WorkBench导出SQL脚本

参考: 在MySQL workbench 中导出sql脚本文件_mysql workbench自动保存的脚本在哪-CSDN博客 需要注意的是: 选择高级选项 这里不勾选,这样生成的INSERT是逐条的。将每个ROW合并为一个INSERT语句。 这里选择dump structure and data

画册制作攻略,助你成为视觉传达大师

在数字时代,画册作为一种传统而又充满魅力的视觉传达工具,依旧在各个领域扮演着重要角色。无论是在企业宣传、个人作品展示,还是艺术创作中,一本精美的画册都能让你的作品更具吸引力。那么,如何制作出一本引人入胜的画…

STM32使用Wifi连接阿里云

目录 1 实现功能 2 器件 3 AT指令 4 阿里云配置 4.1 打开阿里云 4.2 创建产品 4.3 添加设备 5 STM32配置 5.1 基础参数 5.2 功能定义 6 STM32代码 本文主要是记述一下,如何使用阿里云物联网平台,创建一个简单的远程控制小灯示例。 完整工程&a…

深度学习入门——误差反向传播

要正确理解误差反向传播法,我个人认为有两种方法:一种是基于数学式;另一种是基于计算图(computational graph) 前者是比较常见的方法,机器学习相关的图书中多数都是以数学式为中心展开论述的。因为这种方法…

老司机减分宝典助手-学法减分扣分题目及答案 #经验分享#经验分享#职场发展

学法减分其实就是把我们驾驶证上面的分数一分一分地找回来,为什么说是一分一分地找回来呢?因为必须先把违章处理完才可以,无论这辆车是不是你的,无论这辆车挂靠在谁的公司名下或者是单位名下,你都可以把这个分找回来&a…

电源模块企业该如何解决测试中的痛点问题?

根据研究发现,超过76%的企业在进行测试时会对产品质量、可靠性和测试速度这三项核心指标尤为重视。但是随着近几年的发展,目前的测试方法和措施对于这三项指标的测试远远无法达到企业的预期。被测产品的整体质量参差不齐、测试数据的可靠性以及测试的速度…

N7翻译实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊# 前言## 前言 本周完成项目实战用于训练一个简单的序列到序列(seq2seq)模型以实现英语到法语的翻译。数据预处理、模型构建、训练以及可…

浅谈C嘎嘎类与对象

本篇文章与大家浅谈一下C嘎嘎的类与对象知识点 类的定义 关键字:class 语法格式: class 类名 { };//这里的分号不能少 此外,class有三个属性分别是private、public、protected,这三个属性是干啥的,相…

【Python与GUI开发】事件处理与打包分发

文章目录 前言 一、高级事件处理 1.自定义事件 2.拖放操作 3.复杂控件的事件处理 二、打包和分发 Tkinter 应用 1.PyInstaller 2.cx_Freeze 3.spec 文件 4.分发注意事项 三、实战示例:文件浏览器 总结 前言 在前面的讨论中,我们深入理解了 T…

Docker基本讲解及演示

Docker安装教程 Docker安装教程 1、Docker介绍 Docker是一个开源的应用容器引擎,允许开发者将应用程序及其依赖项打包成一个轻量级、可移植的容器,然后发布到任何支持 Docker 的环境中运行,无论是开发机、测试机还是生产环境。 Docker基于…

PCIe驱动开发(3)— 驱动设备文件的创建与操作

PCIe驱动开发(3)— 驱动设备文件的创建与操作 一、前言 在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即…

VAE论文阅读

在网上看到的VAE解释,发现有两种版本: 按照原来论文中的公式纯数学推导,一般都是了解生成问题的人写的,对小白很不友好。按照实操版本的,非常简单易懂,比如苏神的。但是却忽略了论文中的公式推导&#xff…

信创学习笔记(四),信创之数据库DB思维导图

创作不易 只因热爱!! 热衷分享,一起成长! “你的鼓励就是我努力付出的动力” 一. 信创学习回顾 1.信创内容 信创内容思维导图 2.信创之CPU芯片架构 信创之CPU芯片架构思维导图 3.信创之操作系统OS 信创之操作系统OS思维导图 二. 信创之国产数据库DB思维导图 …

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(四)-无人机系统(UAS)命令与控制(C2)通信用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

对某根域的一次渗透测试

前言 两个月之前的一个渗透测试项目是基于某网站根域进行渗透测试,发现该项目其实挺好搞的,就纯粹的没有任何防御措施与安全意识所以该项目完成的挺快,但是并没有完成的很好,因为有好几处文件上传没有绕过(虽然从一个…

Datawhale AI 夏令营 deepfake图像识别-Task02打卡

数据中存在正负类不平衡问题,目前采用直接每次随机抽取和负类数量相同的正类作为训练集。为了更随机,应该每次都随机选取1:1的正负类,然后加大训练量?目前更换了更好的基础模型,还在跑

Vue3项目基于Axios封装request请求

在 Vue 3 的项目开发中,使用 Axios 进行 HTTP 请求是非常常见的作法,为了更方便开发者更高效的进行代码编写和项目的维护,可以通过再次封装 Axios 来实现。 在本文中,博主将详细指导你如何在自己的 Vue 3 项目中使用 Axios 二次封…

浅谈Git

一:什么是 git git一种开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 下图是 git 的一个工作流程简图 二:什么是 分布/集中式版本控制系统 软件开发过程中,要解决多人协作的问题,需要…

Java之split 方法

方法的工作原理 split 方法首先检查字符串中是否存在指定的分隔符。如果存在,它会在每个分隔符处切割字符串,生成一个新的字符串数组。如果字符串中没有指定的分隔符,或者分隔符是非空字符但在字符串中不存在,则 split 方法会返回…

基于LSTM及其变体的回归预测

1 所用模型 代码中用到了以下模型: 1. LSTM(Long Short-Term Memory):长短时记忆网络,是一种特殊的RNN(循环神经网络),能够解决传统RNN在处理长序列时出现的梯度消失或爆炸的问题。L…