# GlbViewer **Repository Path**: xzzfx/glb-viewer ## Basic Information - **Project Name**: GlbViewer - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目简述 * 本项目尝试解决3D模型轻量化和桌面预览的问题 * 转换STEP文件为GLB文件,其文件体积仅为原始STEP文件的1/3左右,且转换速度快 * Three.js、Online3DViewer等脚本早就能够在网页中实现对GLB模型文件的预览、渲染和细节控制 * 桌面端GLB的文件预览,Windows自带程序差强人意,Cad assistant功能复杂、文件体积巨大,难于直接使用,自行开发一个功能简单的GLB模型预览的程序实属必要 * 本项目使用OpenCASCADE(OCCT)技术将STEP文件转换为GLB文件 * 本项目使用Helix Toolkit实现GLB模型的预览 * 统一使用Visual Studio 2022作为开发环境 # STEP到GLB文件的转换方案对比 ## 方案1:Python方案 * 方案说明:Python调用cascadio类库的step_to_glb方法可快速实现STEP文件转换为GLB文件 * 优点:开发简单,从0开始仅使用1天时间完成开发,核心代码量不到10行 * 缺点:运行时需要打包为exe程序,转换耗时长;中间装配体模型不能正确保存名称信息;网络上基本找不到有用的开发资料 * ## 方案2:C++方案 * 方案说明:调用OCCT库使用STEPCAFControl_Reader实现STEP文件读取,使用RWGltf_CafWriter保存为GLB文件 * 优点:可以自行控制所有转换细节,可自行保存中间装配体模型文件名称。开源类库的开发资源丰富 * 缺点:C++入门难,项目依赖、库引用等配置复杂,诸多开发细节需要注意,开发资料基本都是英文 ### 对比方案1,方案2实现功能所需时间仅为其一半左右,且没有不能保存中间装配体名称的问题,最终选用方案2 ### 项目名称为ModelConverter,使用OCCT 版本为7.9.1 # GLB文件的预览 *** 项目说明: * 有多个方案可实现模型的预览,比如OCCT封装的Viewer3D,Helix Toolkit的WPF等,最终选定Helix Toolkit的SharpDX方案 * SharpDX方案是优点是使用DirectX11预览加载GLB文件,速度快、效果好 * 项目名称为GlbDXViewer * 该项目为WPF项目,使用Visual Studio 2022开发,环境为.NET Framework 4.8 *** 项目特性: 1. 自动渲染边线 2. 加载模型层级树 3. 模型鼠标点击高亮、树节点点击高亮 4. 保留所有Helix Toolkit 其他原生功能 *** 已知BUG: - [ ] 点击“适应屏幕”按钮,无法保持当前视向 - [ ] 点击树节点,高亮有显示问题