- 博客(79)
- 资源 (1)
- 收藏
- 关注
原创 项目工程中库使用Debug与release
opencv打包编译的接口文件debug版本只能在有VS版本的电脑运行,在打包给客户必须时release版本,当然如果你现在工程时debug版本需要使用opencv库打包给用户,可以通过debug工程调用release接口的方式,验证了可行但是可能会有一些BUG。GMSH是基于opencascade的内核库,所以在cmake编译GMSH环境时需要和已有的opencascade版本相同,同时最好都编译debug和release版本分别对应工程,不然可能编译正常但是在运行时各种异常。2、opencv库使用。
2025-09-15 11:34:04
192
原创 BRepMesh_IncrementalMesh 重构生效问题
BRepMesh_IncrementalMesh可以通过设置线性和角度偏差更新三角面片,之前使用后三角面片没有变化。发现在重构之前需要清理三角面片。
2025-09-11 11:28:09
104
原创 OCC STEP IGES 渲染到VTK 颜色问题
项目代码接手一年有余,在模型导入中始终从在模型颜色无法在VTK中渲染的问题。做了三个方面的颜色基本可以实现,在通过ITK渲染管线桥接OCC到VTK 不影响 拾取子形状的情况下模型本身颜色显示。
2025-08-21 16:20:32
213
原创 渲染轻量化
在VTK中,mapper中可以通过过滤器生成减少指定量的三角面片映射,在 vtkLODActor中按顺序添加,并设置默认mapper,设置SetNumberOfCloudPoints 数量。如通过OCC形状划分的渲染网格,可以通过降低精度,BRepMesh_IncrementalMesh重新划分网格,减少网格数量。// 假设 originalPolyData 是从 IVtkOCC_Shape 得到的 PolyData。// 控制交互渲染点数。:自动切换到低/中精度模型 → 提高渲染流畅度。
2025-08-21 14:28:30
560
原创 VTK 标签中文
vtkCaptionActor2D可以创建带引线的标签,下载中文开源字库,通过设置字体文件实现中文显示。字库链接:https://github.com/adobe-fonts/source-han-serif/tree/release#downloading-source-han-serifint dumNote::CreateOrUpdateNote(vtkSmartPointer<vtkCaptionActor2D> NoteActor,const char* Text, Standard_Real
2025-08-11 09:45:53
838
原创 VTK 根据标量差值显示颜色
/ 设置 scalar 范围。// 设置 mapper 使用 LookupTable 和标量可视化。vtkPolyDataMapper设置标量区域和对应颜色色号。的标量不清楚能否直接设置体网格,设置不同标量显示不同颜色。vtkPointInterpolator设置插值标量。如下图,根据零件偏差显示不同颜色趋势。// 绿色 (0.3 ~ 0.6)// 黄色 (0.6 ~ 1.0)// 红色 (1.0 ~ 1.8)// 蓝色 (0 ~ 0.3)
2025-07-22 14:00:56
304
原创 OCC TopoDS_Shape 转换为VTK vtkPolyData
官方文档提示通过这种方式可以选取子形状,后期尝试。部分文档代码有错误,下面参考连接没有问题。
2025-07-22 11:29:47
94
原创 Eigen通过拟合一个椭圆
部分椭圆用OCC库方法拟合识别,自己用Eigen写了一个拟合椭圆,测试过离散的椭圆点精度到0.01,这样出来的椭圆参数能达到0.001误差。// 局部X轴长方向。// 直接在这里进行二维椭圆拟合。
2025-06-30 13:47:11
322
原创 NC G代码解析
NC解析G代码暂时没有专门的库,只是找到一些参考文档和参考工程,很多地方都建议使用正则表达式,但是自己不是很懂,没有写出完整的。数控加工中心仿真系统研究与开发_江笑龙。
2025-06-16 16:11:18
134
原创 QT+VTK 中QWidget与QVTKOpenGLNativeWidget的使用
添加模块的方法:右键项目->属性->Qt Project Settings->Qt Modules,勾选即可。
2025-06-12 22:46:10
549
原创 C#调用C++ 结构体方法
方法优点缺点C++/CLI支持类、方法、继承、STL等复杂结构只能用于 Windows,编译设置复杂P/Invoke跨平台,结构体/函数易绑定不支持类方法,要手动封装为 C 接口。
2025-06-12 15:10:15
1137
原创 OCC+GMSH库使用过程中第三方库dubeg和release版本兼容问题
2、如果需要使用Debug调用release库这种情况添加预处理_ITERATOR_DEBUG_LEVEL=0,同时方法中减少vector的使用;在已有的工程中出现vector释放奔溃。包括参考PMIAnnotation工程中QT也会提示vector释放删除失败。1、GMSH引用了OCC库,所有需要和自己引用的库版本相同,如果不同会调用失败,一般第三内存访问出错。3、建议大家在开发学习中所有库先使用dubeg版本,如果需要切换统一切换。尝试单独封装Gmsh库方法参数使用指针,DLL还是会加载失败。
2025-05-19 16:44:03
286
原创 Gmsh+OCC对应版本库编译
输入 GMSH_DLL_EXPORT值C:\LIB\OCCT-7_8_0-i;9、如果只是生成库文件编译gmesh工程即可生成文件在C:\LIB\Gmsh\gmsh-4.13.1-Windows64-B\Debug 下gmsh.dll、gmsh.lib、gmsh.h、gmshc.h文件;3、CMAK编译Gmsh对应OCC版本的,CMAK选择源文件路径C:\LIB\Gmsh\gmsh-4.13.1-source,生成构建文件路径C:\LIB\Gmsh\gmsh-4.13.1-Windows64-B。
2025-05-13 14:42:53
279
原创 OCC 通过边查找模型中所有相切的边
/检查两个线的距离过大直接跳过++i) {std::cout << "最小距离是: " << minDist << std::endl;//曲线两个方向gp_Pnt p1;gp_Pnt p2;p1 = p1_F;p2 = p2_F;p1 = p1_F;p2 = p2_L;p1 = p1_L;p2 = p2_F;p1 = p1_L;
2025-04-21 16:11:59
85
原创 曲线定义分析
在精度控制方面表现优异,特别适用于那些要求的场合。它通常用于,以及一些要求较高精度的设计应用。在OCC中NURBS是B样条曲线,提供了更高的灵活性,特别适合于的场合。NURBS 曲线的灵活性来自于,这使得它能够实现更平滑的曲线过渡,适合需要曲线的应用。
2025-03-28 11:24:39
121
原创 OCC+VTK 拾取中判断内外面
获取当前视图的方向,针对实体面和片体面 用户通过视图交互可以获取到想要的面法相(球面、圆柱面、圆锥面)m_cellPicker->GetPickNormal()获取拾取点在面上的法相,会虽OCC模型面变换法相不同。// 点击点的世界坐标。下面是获取参数的方法。
2025-03-27 10:34:29
112
原创 OCC判断点和形状位置关系
为了计算三维点在面的位置关系,使用了BRepClass_FaceClassifier与BRepClass3d_SolidClassifier结合的方法Count++;
2025-03-25 11:13:24
123
原创 曲线、曲面偏执相关论文
1、可去除自交且具有可调节光顺的非均匀有理B样条等距曲线生成方法.pdf。对曲线的基础知识理解的不是好,最近刷了几篇论文,对自己提升还是很大的。有需要的同学可以私聊我转发给你,本人已经购买了知网的会员可以免费下载。3、三角网格曲面上测地B样条曲线偏置.pdf。2、样条曲线的参数化变形方法.pdf。
2025-02-24 11:23:43
71
原创 OCC 曲线线的偏执
在 Open CASCADE (OCC) 中,偏置曲线(Offset Curve)和曲面求交线涉及多个 API,分别适用于 2D、3D、闭合、非闭合曲线,以及曲面交线的偏置。
2025-02-17 15:33:51
330
原创 三维中矩阵变换计算方法
三维中引用坐标矩阵计算,以及装配中多层级对象变换和坐标转换。3、已知变换矩阵T,把矩阵C通过T变换得到新的矩阵D。1、A矩阵通过变换矩阵T得到新的矩阵B。2、A矩阵变换得到B矩阵,求变换矩阵T。注意:矩阵相乘区分乘数和被乘数。
2025-02-10 15:42:47
255
原创 vtkAssembly 装配关系获取
1、添加装配-每次装配添加(AddAssemblyPartNew)同时添加vtkAssemblyPath。通过vtkAssemblyPath::AddNode()可以记录装配关系。在装配中VTK没有给方法获取父项或者模型在世界坐标矩阵的获取。2、通过全局thevtkAssemblyPath获取装配结构。// 添加根 Assembly。3、遍历装配节点信息。
2025-02-10 14:05:24
287
原创 OCC+vtk参考Analysis situs
官网:GIT开源源码下载链接:git@gitlab.com:ssv/AnalysisSitus.git。
2025-01-16 15:20:46
349
原创 OCC+VTK对象高亮
高亮后移除高亮对象。// 创建高亮Actor// 从 vtkActor 获取 vtkPolyData。// 创建高亮Actor// 从 vtkActor 获取 vtkPolyData。// 创建新的 vtkMapper 和 vtkActor。//删除Actor对象。
2025-01-13 19:37:01
188
原创 VTK 鼠标+键盘重构
1、鼠标事件如果有鼠标事件处理等相应的需求,可以重写该事件。//鼠标移动事件//左键按下事件//左键抬起事件//滚轮按下事件//滚轮抬起事件//右键按下事件//右键抬起事件//滚轮向前事件//滚轮向后事件。
2025-01-03 16:49:47
628
原创 C语言指针应用
/ 将 interopstatus 的地址赋给指针 interopstatus_F。// 将 interopstatus的值赋给指针所指向的内存。2、把地址传入常量的地址,变量变换常量的值同时变,1、把值传入常量的地址,变量变换常量的值不变,
2024-12-26 11:24:22
196
原创 OCC+VTK 错误机制
/ 代码可能抛出 Standard_Failure 异常 TopoDS_Shape shape;OCC获取错误信息Standard_Failure,通过try catch。VTK错误机制vtkErrorCode,只能返回读取文件的错误,通过返回值。// 可能因某些错误抛出异常。
2024-11-28 14:34:35
177
原创 OCC对象渲染到VTK-拾取
2、vtkCellPicker和渲染的形状来源没有关系,但是vtkCellPicker只能拾取Prop3Ds ,这边已经颜色OCC对象线和形状渲染为线框的不可以,这个可能和它拾取机制有关系,平面点射线的单元格,我理解的可能线没办法射线到。3、IVtkTools_ShapePicker也是全局的,是OCC的api,但是它是继承了vtkAbstractPropPicker的类,部分功能可以在VTK库去理解。参考中,通过设置渲染器到拾取器,拾取直接通过屏幕点击的点获取我认为是可以的。
2024-11-28 10:32:08
266
原创 OCC对象VTK中Filter中的应用
再通过Filter去实现相关过滤,渲染后能否在VTK界面选择到子对象,边和单个面级别,以及模型移动或移除后怎么刷新过滤器。// 将切线方向归一化,作为圆锥轴向量。在OCC中创建的多个对象VTK渲染,通过单元设置标量属性实现不同颜色,不同透明度。++j)//颜色转换。//颜色获取设置到形状添加到形状集合中。//OCC对象形状转换为VTK对象。// 返回 vtkPolyData。// 返回 vtkPolyData。//创建圆柱圆锥添加到装配。// 缩放向量到指定距离。// 获取生成的圆锥。
2024-11-26 15:42:13
199
原创 OCC多个形状在VTK中渲染不同颜色方法
疑问:VTK中vtkAppendPolyData和vtkCellArray区别,vtkAppendPolyData只是把几个对象一起显示,vtkCellArray感觉是合并形状,它会把我路径线显示为一个片体,通过点控制整体颜色。// 将切线方向归一化,作为圆锥轴向量。//计算圆弧中点,计算中点在线上的法相,创建方向示意圆锥。// 在中点位置计算圆弧的切线向量。// 获取圆弧的参数范围。//颜色获取设置到形状添加到形状集合中。//OCC对象形状转换为VTK对象。// 多段圆弧,可以不连接轨迹中圆弧路径。
2024-11-12 14:29:30
289
原创 OCC 拟合的平面转换为有界平面
if (aSurface.GetType() == GeomAbs_SurfaceOfRevolution || aSurface.GetType() == GeomAbs_BSplineSurface)//回旋曲面//样条曲面。解决方法:通过面拟合转换gp_Pln,然后获取面的内外边,重新修剪生成新的TopoDS_Face。//判断面的类型 转换面类型 获取面的边界 修建获取新的有界面 针对平面。//如果获取的包容盒小于步距,获取一下OBB包容盒判断是否大于2,大于2开始面转换。
2024-11-05 16:37:50
568
原创 OCC 点云
OCC的基础知识可能还是要系统学习一下,部分导入的模型面类型是很多面都是GeomAbs_BSplineSurface,最终获取参数都要拟合一下,拟合后的生成的面对象没有大小,比如平面只有矢量(大小没有思路) 圆柱拟合面没有高度(圆柱最后我用的投影的方法获取高度)。我的遗留问题:为什么部分GeomAbs_BSplineSurface类型面通过BRepTools::UVBounds没办法获取大小。本章,拾取的面按步距生成点云,因为没有大小或者没办法通过UV控制,所以尝试通过点云类直接操作。
2024-11-02 11:19:25
1004
原创 VTK–Picking
返回的信息可能仅仅是简单的x-y-z的球体坐标,也可能包含cell’s ids,point ids,cell 参数化坐标,被拣选的vktProp的实例,装配路径(assembly paths)等。类定义了用于拣选vtkProp实例对象的API,该类提供用于查询并返回pick的类型的简便的方法:GetProp(),GetProp3D(),GetActor(),GetActor2D(), GetVolume(),GetAssembly(), GetPropAssembly()。返回的pcik通常不唯一。
2024-10-11 17:31:13
265
C++ 开发的发送邮件的脚本,传入参数发送带附件邮件到指定邮箱
2023-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅