【PinkCAx】可视化工具开发记录与总结

-----------PinkCAx-----------

仅以此篇,记录我的一次可视化软件开发尝试点滴。

简介

PinkCAx是一款采用Python语言编写的,基于QT5+VTK架构的三维可视化工具。

image-20221121222934560

该工具目前的功能如下:

基本操作

  • 网格文件的打开与保存(支持STL、PLY、VTK等)

    image-20221121220318262

  • 基本视图(线框、包围盒、刻度包围盒)

    image-20221121220415216

  • 文件分类树视图

    image-20221121222525906

  • 一些不知道如何分类的功能

    image-20221121220516161

    模型曲率计算包括高斯、最大、最小、平均曲率计算;加载属性作用是加载有限元模型的节点属性数据(温度、应力等);属性比较作用是计算两个属性数据的偏差(用于可视化评估代理模型预测效果)。

有限元后处理

  • 关于有限元后处理的操作

    image-20221121220605096

  • 关于

    image-20221121220718196

  • 代理模型预测

    image-20221121222648008

    构建代理模型,可视化训练结果。(开始跑题ing)

点云处理

  • 三个(两个)功能

    image-20221121220923548

    依次是:模型转换点云、点云降采样、有限元模型外表面抽取。

待添加功能

  • 有限元模型上任意点/单元的信息和属性查询
  • 增材CAM相关功能
  • 点云相关功能(ICP配准、点云手动对齐等)
  • ……

部分功能展示

可视化操作

![GIF 2022-11-21 22-35-43](D:\OneDrive\桌面\GIF 2022-11-21 22-35-43.gif)

代理模型预测

![GIF 2022-11-21 22-49-50](D:\OneDrive\桌面\GIF 2022-11-21 22-49-50.gif)

其他操作

![GIF 2022-11-21 22-57-37](D:\OneDrive\桌面\GIF 2022-11-21 22-57-37.gif)

总结

记录第一次QT5+VTK开发工具的点滴,总共历时五天。在这期间每天都很充实,持续在:产生需求-->开源学习-->编写程序-->调试程序-->产生下一个需求-->……的状态。并且深刻认识到了实践的重要性,通过对这个小工具的开发,我逐步上手QT5和VTK。对于VTK,上半年就有接触了,不过一直被其各种数据结构劝退,觉得numpy数组最好用(当时网格计算接触的比较多),不过到现在见识到了VTK在很多数据结构上的表现(特别是vtkUnstructuredGrid与有限元数据模型,恰到好处),加之对VTK的管线机制和各种Filter深入了解之后,现在频频“真香”。回到工具本身,其实尚存许多bug,且代码臃肿,后期还需调试和优化。

同时,PinkCAx工具的开发借鉴了许多开源代码,开源万岁!

有一说一,这个粉色还挺好看的。#f187b8 / 241,135,18。