- 博客(60)
- 资源 (4)
- 收藏
- 关注

原创 耗时两个月开发的弯管机三维模型自动转档软件
SmartPipe软件根据用户提供的三维实体管子数据(stp、iges、brep文件),通过全自动方式,提取管子的轴线数据及几何特征信息,生成弯管编程所需的xyz数据以及ybc数据,同时提供预览功能来验证所生成的数据是否合理。用户点击下图中的“自动计算轴线”按钮,系统通过分析,自动得到管子的轴心线数据,并高亮显示轴线。用户点击右下方的“YBC输出”按钮,在弹出的如下对话框中选择要输出的YBC文件的保存路径,即可生成YBC和XYZ文件,生成的YBC和XYZ文件预览如下图所示。
2022-09-23 17:51:02
2641
17
原创 SmartPipe完成新一轮核心算法升级
由于三维图纸导出造成某些轴段精度较差,部分管路段的轴线段不满足G1连续,SmartPipe采用算法对这种情况进行了修正,保证轴段在一定精度范围内光滑连续。针对微小曲面、细长曲面、精度欠佳曲面及缺陷曲面,SmartPipe升级了处理算法,确保即使面对复杂、有缺陷的模型,也能高效完成识别。SmartPipeBatch批处理版本优化了对中文路径的支持,大幅提升了对含中文名称的step文件的解析速度和准确性。新增对0厚度模型管路的自动识别功能,有效避免因模型厚度问题导致的识别错误。新增对大曲率半径管路的识别支持。
2025-02-03 17:15:22
476
2
原创 OCC中如何识别装配体中多次引用的同一零件体
在前置的开发工作中,已经获得了装配体中所有的零件体,放在了m_vecChildPartNode变量中,可以通过m_vecChildPartNode[i]->getOCCShape()方法,获得每个零件体的TopoDS_Shape对象,如何判断两个同一引用的零件体的TopoDS_Shape对象“相同”呢?但是运行发现,上述代码运行不正确,检测到所有的零件的TopoDS_TShape都是相同的,输出shape1、shape2的地址,都是000000,这是什么原因造成的?那么为什么引用和拷贝的结果完全不同呢?
2024-08-30 13:31:09
611
原创 SmartPipe新增功能:自动识别含间隙的低质量模型与自动处理超过180度的圆弧管路
圆心角超过180度,就意味着在求折弯点的时候,求不出交点,或者说求出的交点在另一侧,针对这个问题,我请教了一下客户经理,客户经理告诉我,一般这种情况是通过在超过180度的圆弧段中点插入一个小直线来实现的,将超过180度的圆弧段从其中点处劈裂,一分为二,中间插入相切直线,从而实现将超过180度的圆弧段转化为两段圆弧段的拼接。为什么会出现这种缝隙呢?将导出的xyz数据输入到正向生成管路模块,生成的正向管路如下图所示,可以看到在原来的圆弧轴端4的中间,新增了一个微小的直线,这就是本软件算法做出的微小直线。
2024-07-17 20:49:17
1017
原创 远程帮客户解决“应用程序无法正常启动0xc000007b,请单击确定关闭应用程序”的问题
今天收到反馈,SmartPipe软件,在客户机器上报错,无法正常运行,采用远程控制软件进入客户电脑,发现电脑报错如下:因为客户的电脑是win7,而之前发生过win7电脑上无法运行OCC编写的软件的情况:https://blog.youkuaiyun.com/Hudeyu777/article/details/136291559我就想首先检测一下是不是OCC的库的问题,在本机电脑上找了一个最简单的OCC 7.8.0写的软件,部署了一下,报同样的错误:结合客户的反馈,当前是win7 专业版系统,之前使用的旗舰版
2024-07-13 15:26:41
826
1
原创 ACIS中如何求点在FACE参数域内的坐标
上面两个接口都提供了直接获得closest_pos的UV参数的变量,但是我实测获得的UV都是0,好像不行,获得closest_pos之后,要想得到UV,还得采用(1)中的接口来获取准确的 UV 参数。如果点point不在FACE上面,需要找到FACE上距离point最近的点closest_pos,或者将point投影到FACE上之后(得到的也是closest_pos),再去找对应的u、v参数。我更喜欢test_point_tol这个接口,因为这个接口可以设定一个阈值,而且可以判断点是否在FACE上面。
2024-06-25 17:08:42
262
1
原创 ACIS采用自底向上的方式创建box
在学习任何CAD几何内核的时候,首先需要学习的是这个几何内核的几何拓扑数据结构,学习完毕后,一个很好的练习是自己采用底层的几何、拓扑构建API,创建一个box。3. OCC创建的时候,PCurve需要手动创建并添加,但是ACIS中,默认在new FACE的时候,就把对应的PCurve创建好了,不需要人工创建了。这篇博客介绍了在Open cascade中,采用自底向上的方式如何构建box,本文以ACIS为例,介绍ACIS中,如何采用自底向上的方式创建box。
2024-06-19 17:17:54
543
原创 CATIA中如何用平面分割三维实体模型
创建平面的时候,建议采用”参考元素“下面的”平面“命令来创建,拾取或提取模型中的面是不可以的。首先需要定义”零件几何体“为当前的工作对象,实测在几何图形集下面是不能操作成功的。定义分割元素为第1步中创建的平面,选择分割方向,执行命令。选择”插入“-”基于曲面的特征“-”分割“命令。
2024-03-28 09:32:16
4864
原创 OCC7.8.0开发的软件在Win7上无法运行及解决方案
对此,我专门咨询了eryar老师,他明确回复他的软件也是在win10上编译的,采用的7.8.0版本,但是在win7上部署运行没有问题。最终,我比较了一下自己编译OCC7.6.0和7.8.0时的第三方库的版本,发现只有TBB库的版本发生了明显的变化,之前TBB的版本为tbb_2017.0.100,后面编译7.8.0时用的是oneapi-tbb-2021.11.0,于是问题就定位到了TBB上。采用tbb_2017.0.100,重新编译OCC7.8.0,问题解决。软件可以在win7上正常部署运行了。
2024-02-26 09:29:26
3517
1
原创 【产品升级】SmartPipe升级到版本2.0
近一年来客户累计反馈的多种复杂管路(包括带有支管管路、带有压瘪段管路、推弯管、装配管、带有复杂孔洞管路等)现在均能够正确识别并自动生成YBC文件,软件总体性能已达到业内领先水平。上述改进显著提升了软件在特殊非标管路模型和实际复杂管路模型中的识别能力和准确性,将为客户带来更加高效的工作流程、减少人工干预和修改,降低错误率和节约项目成本。:软件增加对带有支管的复杂管路轴线识别功能,能够自动识别复杂管路的支管段并排除支管段干扰,计算出管路的主轴线。
2024-02-05 17:11:29
458
2
原创 OCC 7.8.0 对TopoDS_Shape哈希码接口的调整
3. 如果Location的哈希值非0,那么调用opencascade::MurmurHash::hash_combine将TShape指针的内存地址和Location的哈希值结合起来生成最终的哈希值。比较7.6.0和7.8.0的TopoDS_Shape.hxx的源代码,发现确实7.8.0中删除了该源码,但是仍然可以获取哈希值,只不过进行了调整。2. 如果Location的哈希值是0(即没有定位信息),那么仅使用TShape的指针调用opencascade::hash函数来计算哈希值。
2024-01-18 15:34:16
1272
原创 Windows下安装编译 Open Cascade 7.8.0
于是将第三方库的地址:E:\ProgramDoc\OpenSourceLibDoc\OCCT-7_8_0\3rdparty添加到3RDPARTY_DIR对应的Value中。设置USE_FFMPEG、USE_FREEIMAGE、USE_OPENVR、USE_RAPIDJSON、USE_TBB、USE_VTK设置为True。同时完善INSTALL_DIR的地址为:E:\ProgramDoc\OpenSourceLibDoc\OCCT-7_8_0\Install。生成的Install的目录如下。
2024-01-18 09:50:04
2753
4
原创 采用libigl库报错error C4996: ‘sscanf‘ 处理措施
报错如下:E:\ProgramDoc\OpenSourceLibDoc\libigl\include\igl\readSTL.cpp(97,16): error C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.这个错
2023-12-28 10:34:31
661
原创 CATIA CAA 编译报错 提示 error LNK2019 无法解析的外部符号 public cdecl
我需要在DFMProcessCheckMdl.m模块调用ProcessCheckUtilMdl.m模块的一个自定义类TPS,按照正常的思路,在DFMProcessCheckMdl.m的mk文件中添加了ProcessCheckUtilMdl \。经过思考,是导出符号ExportedByProcessCheckUtilMdl所在的头文件没有加上,导致编译器无法识别导出符合,于是添加#include "ProcessCheckUtilMdl.h",问题解决!
2023-11-29 10:48:18
752
原创 Open Cascade旋转变换平行线
在本人开发的弯管自动CAM软件中,有一个问题一直没有解决,就是180度平行管路需要做角度微调,以便进行YBC预览。研究了一番后,搞定了这个问题,关键在于采用OCC库实现拓扑变换。本文将介绍如何使用OpenCASCADE库来实现平行线的创建与旋转变换,并提供相关代码,供读者参考和实践。
2023-10-03 16:02:05
374
原创 【Git删除大文件失败,提示WARNING: Ref ‘refs/heads/master‘ is unchanged的解决思路】
最近使用Gitee一直在独立开发某个项目,某次因为某个测试文件比较大,超过了100MB,gitee无法接受,上传失败。但是当时我没有发现上传失败,就没有处理,等到今天发现的时候,已经提交过好多次代码了,都是提交到了缓存里,并没有提交到远程分支下。
2023-06-15 17:27:28
2861
1
原创 【如何利用QString实现c++中文字符编码格式的转换】
字符集转换是将一个字符序列从一种编码方式转换到另一种编码方式的过程,它需要考虑到字符编码的不同、字符集的兼容性、字符集转换过程中可能出现的错误等因素。其中,finalXYZFileName和finalYBCFileName都是QString类型的变量,但是编码方式是UTF-8,如果含有中文的情况,需要转成GBK的编码才行。已经在弯管生产中开始使用,有客户反馈,如果弯管零件的名称为中文的时候,自动导出的.ybc文件和.xyz文件名称为乱码,如图所示,于是为了解决这个问题,开展了一番研究。
2023-06-09 10:23:01
660
原创 ChatGPT回答:如何理解CAD编程中的Occurrence概念
通过指定每个组件在整个设计中的发生,他们可以确保最终产品是功能性的、安全的,并满足所有设计要求。例如,如果您正在设计一辆汽车,CAD模型的发生可能是指将该发动机模型的特定实例放置在整个汽车设计中。同样,车轮的CAD模型的Occurrence可能是指将该轮模型的特定实例放置在汽车设计中的特定轴上。CAD模型的Occurrence指的是在更大的装配或产品设计中使用或放置模型的实例。换句话说,它是在更大系统或装配中的3D模型的特定发生或实例。
2023-03-27 15:11:05
270
转载 【转载】指针的引用 *&
可以发现在执行swap()函数的时候确实修改了地址,也交换了a、b的值。但是,当我们在main()函数中输出a、b的时候,完全没有交换。按照C++程序员的习惯,指针“*”号是和类型放在一起的。引用是C++中很强大的语法,在编程中极其实用。对指针变量本身的修改无法作用到原指针变量,在执行swap()函数的时候就是执行中。我就简简单单添加了“&”,竟然如此神奇!不要觉得看着复杂,其实一点也不复杂。所以需要通过引用来实现修改指针变量。指针的引用能够全局修改指针变量!同样的代码,我只改一个地方。
2023-01-04 16:20:51
161
转载 VS+QT项目设置QT的方法
1,先在工程右键菜单属性 -->【Qt Project Settings】-> 【Qt Installation】先确认一下能不能选其他版本。缘由:QT + VS,有时要编译32位,有时要编译64位,但是有人发现Qt Installation没有64位或者32位的,怎么办?2,如果不能,就在VS菜单选择【扩展】-->【Qt VS Tools】--> 【Qt Options】4, 在【Add New Qt Version】对话框点击【...】按钮,选择QT的安装目录。6,然后再回到第1步,选择一下就OK了。
2022-12-30 11:02:58
2013
原创 C++替换string中的\“为“
可见,XML数据中,节点的属性数据都是\",这实际上是不符合XML规范的,也就无法正常解析,需要我自己在解析之前,做一次统一的替换,将其中的\"替换为"。我原计划采用std::replace(strXmlTxtFile.begin(), strXmlTxtFile.end(), '\\"', '\"');后面经过请教发现,我犯了两个错误:1.两个字符应该是字符串,就不能用单引号了;其中"\\\""最外面两个"指的是字符串的定义,中间两个\指的是转义。
2022-11-04 15:13:24
1185
转载 推荐一款开源的ICO制作神器——greenfish
推荐一款开源的ICO制作神器——关于ICO格式做软件图标时,为什么有时候图标太小,且不清晰,看这篇文章就会茅塞顿开。
2022-09-07 08:54:07
13141
2
原创 Open Cascade 采用自顶向下方式创建Box
OpenCASCADE Make Primitives-Box - opencascade - 博客园OpenCASCADE Make Primitives-BoxOpenCASCADE Make Primitives-Box - opencascade - 博客园这篇文章中,作者采用自底向上的方式创建了一个Box,即先从叶子结点出发,逐步回到根结点,即先构造出顶点、边、Wire、Shell、最后到实体。在学习作者源码基础上,本文尝试采用相反的方式创建了一个Box,即首先创建Solid,然后是Sh.
2022-04-14 20:31:15
530
原创 如何在Win10(包括2004版本)下安装64位CATIA
Win10下无法安装64位CATIA,早就像一个魔咒一样,一直在江湖上传说。究其原因,是因为SSQ的破解软件,无法在Win10(2004版本)之后弹出UI界面,导致安装者束手无策,无法破解。就像这个帖子里面说的一样http://www.hao007.net/bbs/forum.php?mod=viewthread&tid=44302《大危机!!SSQ DSLS与最新版win10 2004发售不兼容问题》其实,这个问题完全是能够解决的,解决的途径就是采用命令行的形式运行SSQ DSLS步骤如下:
2020-11-03 15:42:27
15685
8
原创 Word VBA中读取Excel表格中的数据
Word VBA中读取Excel表格中的数据前天有一个项目需要写详细设计报告,其中有一块重要内容是把Excel中的每一行数据做成一个Word中的表格。一共将近100行数据,如果我一行一行地手动去做,估计手就废了,于是采用Word VBA。基本编程思路创建一个空word文档word文档中,编辑好一个示例表格,作为一个母表,后续所有的表格程序都是复制这张表,然后修改复制后的新表格的数据打开Excel,遍历每一行数据取这一行关键数据,复制母表,改变复制后的表格数据代码片段Dim wb As D
2020-10-30 09:14:13
7748
转载 VS将project编译为dll或lib文件供solution下其他project调用
因为本人自己需要在同一个solution下面做多个project,我用的是VS2015, 语言C++。首先创建两个project,其中HelloMultiProject作为启动的project,它是exe类型;AnotherProject是dll类型的,如图:有两种方式来从一个project调用另一个project的方法(或者类)。1. 如果AnotherProject的配置Configuration Type是Dynamic Library(.dll)使用dllexport和dllimpor
2020-10-04 15:16:25
597
原创 Three.js加载显示PCD文件的一次难忘Bug
某三维项目需要在Web页面上同时展示两个三维点云数据,点云格式为.pcd格式,参照通用的做法,主要设置以下三部分代码:一、html的模型显示区:<div class="centerBlank"> <div class="up" style="position:relative;"> <!--左上侧区域 --> <div class="left" > </div> <!--右上侧区域 --> <!--
2020-07-27 21:35:59
3931
2
转载 Windows10安装visual studio 2013
https://wenku.baidu.com/view/6f1ba49955270722192ef7a8.html
2020-07-13 22:52:17
416
原创 EXCEL VBA中的Hyperlinks函数使用
最近某个工作任务需要倒腾各种Excel表格,于是重新拾起了VBA。今天遇到的任务是做一个统计表,统计合并若干个分散的Excel表格,并在统计表中做一个具有超链接功能的目录,点击超链接可以跳转到各个分散的Excel表格中。这个功能应当由Hyperlinks函数完成,但是实际操作起来发现这个函数里面有好多坑,使用起来并不方便,函数的官方API是这样的:Expression.Hyperlink...
2020-03-22 18:04:53
14108
3
原创 利用Auto.js自动收集支付宝蚂蚁森林能量小程序
最近利用Auto.js写了一个支付宝蚂蚁森林自动收集自己能量和好友能量的小程序,现在发布出来共享给大家。程序在我的华为手机上运行效果非常好。//1.解锁屏幕unlock();//2.启用按键监听registEvent()//3.打开蚂蚁森林enterMyMainPage();//4.收集自己的水collectMyOwnEnergy();//5.点击“查看更多好友”,进入好友排...
2019-06-08 20:22:00
6794
5
转载 Java如何调用C++编译的exe程序
转载自:http://www.cnblogs.com/xxpal/articles/824963.html使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。 1. exec(String command) 2. exec(String command, String envp[], File dir) 3. exec(String cm...
2019-03-29 10:29:45
1282
原创 Jena报错“RDFDefaultErrorHandler.java:40”及其解决方案
今天在用Jena2.6.4操作本体OWL文件时,发现有一处代码报错:ERROR [main] (RDFDefaultErrorHandler.java:40) - unknown-source: {E213} http://semanticweb.org/lenovo/ontologies/……Exception in thread "main" java.lang.NullPointer...
2019-02-03 10:18:30
680
原创 jQuery的Ajax在IE11下无响应
今天遇到了如题所示的问题,经过反复测试,终于定位到问题的根本原因是IE浏览器与jQuery版本不兼容造成的,我原来使用的是jquery-3.3.1.min.js,换成jquery-1.11.1.min.js问题就解决了!...
2018-09-04 17:09:04
3900
转载 CATIA二次开发CAA实现MFC树形控件的方法研究
http://blog.youkuaiyun.com/zhidingguan2875/article/details/53947463CATIA使用CAA二次开发的时候,如果需要对树形数据对象实现管理,使用树形控件是非常好的选择。但是,CAA本身提供的控件较少,多数情况无法较好地满足项目要求,如果你的水平足够高,也可以使用CATNavigation3DViewer封装出一个满足要求的树形控件,但是
2018-01-09 19:38:01
1484
转载 求读取CATIA标注的方法或者样例代码 Annotion
文章来源 : http://bbs.youkuaiyun.com/topics/360008012我是新手,接触CATIA二次开发不久,想要读取CATIA图纸上的标注信息,请问有什么方法可以实现。说明下,是装配图,即三维图纸,所读取的标注信息也是三维的。在图纸上,标注集是挂在子零件上的,然后标注集下面有各种标注,我现在就只取注解下面的文本,包括文本的内容,位置,方向,对齐方式等信息。下图是所用
2018-01-09 19:34:53
2741
转载 教育如何应对人工智能等挑战
我们处在新的工业革命时代,颠覆性新技术不断涌现,对社会产生深刻影响。人工智能、机器人等技术创新太神奇,也让很多人觉得恐怖。这些技术能力如此强大,未来人的工作是不是会被它们抢走?面对这些比人的能力越来越强的技术,人类该怎么应对呢? 很多专家应对此问题的一个非常重要办法是:要通过教育提高人们的技能(upskilling),使那些因为人工智能等技术影响而失去工作的人,获得新的技能(res
2018-01-04 22:30:57
947
转载 C++中两个类相互包含引用问题
在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型class A{int i;B b;}class B{int i;A* a;}请注意上面的定义内容,一般情况下是不能出现类A,类B相互引用都定义对象,即如下的样子:class A{int i;B b;}cl
2017-12-26 10:14:10
456
DSLS_SSQ_V6R2017x
2020-11-03
HectorCollectAntForest.js
2019-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人