A-5 一个小工程

A-5 2023/12/10

项目说明

  • 基于vsg的CAD模型查看器,最后实现虚实融合

    • 完成OCCT的TopoDs_Shape的离散化

    • 连接Qt,VSG与OCCT,显示OCC提供的几何体

  • 新建QT项目,并命名为OCCVSG

A-5-1

环境配置

  1. VulkanSceneGraph 版本1.0.9
  2. Vulkan 版本1.3.268.0
  3. FlatBuffers
  4. Qt 版本5.12以上,不要版本6
  5. VSGQT 版本0.1.0
  6. OpenCasCade 版本7.7.0以上

详细配置说明

功能说明

  • 实现了菜单栏,工具栏,侧边栏滑动窗口等前端控件布局及控件逻辑
  • 实现了stp文件,fb文件的读取,实现了stp文件的装配树
  • 利用vsg对几何体进行了简单的渲染,能显示fb文件,stp文件读取的CAD模型

展望

  1. 能拾取、点选CAD模型,并且高亮显示

  2. 实现线框逻辑显示,点击线框按钮,实现线框与实体之间的切换,线框指三角面片的边框

  3. 计算轮廓线

  4. 增加现实场景

  5. 将读取进来的CAD模型放入场景中

  6. 渲染模型阴影,并在真实场景中去平面显示

  7. 渲染模型材质

  8. 整合代码,统一格式和接口,尤其是修改VSGWidget的相关函数,完善画布

    类说明

现有如下类,以及包括的函数

说明
VSGWindow创建主窗口,包括画布、菜单栏工具栏等
VSGWidget创建qt的qwindow,连接前端界面和渲染窗口
CADMesh读取文件
  • VSGWindow
函数说明
VSGWindow构造函数,初始化菜单栏、工具栏、画布等
void createMenu创建菜单栏
void createSiber创建侧边栏
void createToolbar创建工具栏
void on_Action_Read实现读取文件的按钮逻辑
void on_Action_Clear实现清空场景的按钮逻辑
void on_Action_Treeview实现树形控件的按钮逻辑
  • VSGWidget
函数说明
VSGWidget构造函数,初始化创建画布所需要的函数
vsg::ref_ptr<vsg::Node> createStpScene创建stp文件的场景
vsg::ref_ptr<vsg::Node> createTestScene创建fb文件的场景
vsg::ref_ptr&lt;vsg::Node&gt; createLargeTestScene创建VSG自带的几何模型场景
vsg::ref_ptr<vsg::Node> createclearScene空白场景,用于清除
QWidget* ClearWidget创建空白画布
QWidget* CreateWidget创建fb文件画布
QWidget* CreateStpWidget创建Stp文件画布
vsgQt::Window* createWindow创建基础画布
void setmyfilepath修改文件读取路径
  • CADMesh
函数说明
void buildnode有三个重载函数,读取fb,stp文件,并把模型离散化
void MakeTree用于创建树形目录的深度遍历函数
QTreeWidget* CreateQwidgettree读取xde信息,创建树形目录
std::string toString字符串转化函数,把occ里的字符串格式转化成Qt的格式

详细配置说明

  • Qt安装,并且在Visual Studio上链接Qt,需要下载扩展工具 参考链接

  • 环境配置完成后,创建新项目

A-5-0

  • 将我们之前安装好的库都链接进来

A-5-2

A-5-3

  • 以下是链接库的名称

vsgqt.lib
vulkan-1.lib
vsg.lib
TKBin.lib
TKBinL.lib
TKBinTObj.lib
TKBinXCAF.lib
TKBO.lib
TKBool.lib
TKBRep.lib
TKCAF.lib
TKCDF.lib
TKDCAF.lib
TKDFBrowser.lib
TKDraw.lib
TKernel.lib
TKFeat.lib
TKFillet.lib
TKG2d.lib
TKG3d.lib
TKGeomAlgo.lib
TKGeomBase.lib
TKHLR.lib
TKIGES.lib
TKLCAF.lib
TKMath.lib
TKMesh.lib
TKMeshVS.lib
TKMessageModel.lib
TKMessageView.lib
TKOffset.lib
TKOpenGl.lib
TKOpenGlTest.lib
TKPrim.lib
TKQADraw.lib
TKRWMesh.lib
TKService.lib
TKShapeView.lib
TKShHealing.lib
TKStd.lib
TKStdL.lib
TKSTEP.lib
TKSTEP209.lib
TKSTEPAttr.lib
TKSTEPBase.lib
TKSTL.lib
TKTInspector.lib
TKTInspectorAPI.lib
TKTObj.lib
TKTObjDRAW.lib
TKToolsDraw.lib
TKTopAlgo.lib
TKTopTest.lib
TKTreeModel.lib
TKV3d.lib
TKVCAF.lib
TKView.lib
TKViewerTest.lib
TKVInspector.lib
TKVRML.lib
TKXCAF.lib
TKXDEDRAW.lib
TKXDEIGES.lib
TKXDESTEP.lib
TKXMesh.lib
TKXml.lib
TKXmlL.lib
TKXmlTObj.lib
TKXmlXCAF.lib
TKXSBase.lib
TKXSDRAW.lib

  • 注意,放入文件的时候需要修改ui文件的文件名,具体在以下两处,修改为自己创建的工程名称即可A-5-5

  • 将data文件放入工程文件的根目录下

  • 注意,成功运行却中途退出很可能是文件路径的问题,请务必仔细

TObj.lib

TKXmlXCAF.lib
TKXSBase.lib
TKXSDRAW.lib

  • 注意,放入文件的时候需要修改ui文件的文件名,具体在以下两处,修改为自己创建的工程名称即可[外链图片转存中…(img-a3zZyXaz-1705389052227)]

  • 将data文件放入工程文件的根目录下

  • 注意,成功运行却中途退出很可能是文件路径的问题,请务必仔细

A-5-6

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值