PlatForm是一个基于Qt框架开发的3D六轴动平台可视化系统,集成了3D场景渲染、网络通信、实时数据监控等功能。该系统主要用于工业平台的3D可视化展示和实时数据交互。
- 3D场景渲染: 基于Qt3D和QtQuick3D的高性能3D渲染
- 实时数据监控: 支持轴位置、速度、扭矩等工业数据的实时显示
- 网络通信: 集成TCP服务端/客户端功能,支持远程数据交互
- 交互式控制: 提供X、Y、Z轴位置和距离的实时调节控制
- 阴影渲染: 支持阴影映射技术,提供更真实的3D视觉效果
- 多平台支持: 支持Windows、Linux等操作系统
- Qt 5.x: 跨平台应用框架
- Qt3D: 3D图形渲染引擎
- QtQuick/QML: 声明式UI框架
- OpenGL: 底层图形API支持
- Qt Network: 网络通信模块
PlatForm/
├── main.cpp # 主程序入口
├── main.qml # 主界面QML文件
├── RightSceneRoot.qml # 3D场景根节点
├── servicewidget.h/cpp # TCP服务端实现
├── clientwidget.h/cpp # TCP客户端实现
├── *.qml # 各种3D模型组件
├── shaders/ # 着色器文件
│ ├── ads.vert/frag # ADS光照模型着色器
│ └── shadowmap.vert/frag # 阴影映射着色器
├── assets/ # 3D模型资源
│ └── obj/ # OBJ格式3D模型文件
└── PlatForm.pro # Qt项目配置文件
- 相机控制: 支持轨道相机和第一人称相机模式
- 光照系统: 基于ADS光照模型的PBR渲染
- 阴影系统: 实时阴影映射技术
- 模型管理: 支持多个3D模型的动态加载和渲染
- 位置控制: X、Y、Z轴位置调节滑块
- 距离控制: X、Y、Z轴距离调节滑块
- 动画效果: 平滑的数值变化动画
- 实时反馈: 滑块值实时显示
- 服务端功能: 监听TCP连接,接收数据
- 客户端功能: 连接到远程服务器,发送数据
- 数据解析: 支持十六进制数据的解析和显示
- 状态监控: 实时显示连接状态和数据
- 轴位置: 实时显示轴位置信息
- 轴速度: 实时显示轴速度信息
- 轴扭矩: 实时显示轴扭矩信息
- 数据格式: 支持自定义数据格式的解析
项目包含以下3D模型组件:
- B1: 基础平台模型
- P1: 动平台模型
- R11-R61: 6个连接轴模型
- R12-R62: 6个连接轴模型
- Qt 5.0或更高版本
- 支持OpenGL 4.3的显卡
- 至少4GB内存
- Windows 10/11 或 Linux
- 安装Qt 5.x开发环境
- 克隆项目代码
- 使用Qt Creator打开
PlatForm.pro文件 - 配置编译套件
- 点击构建按钮进行编译
确保以下Qt模块已安装:
- qt3d
- qt3drender
- qt3dinput
- qtquick3d
- qtnetwork
- 编译成功后运行可执行文件
- 应用将显示3D场景和控制面板
- 使用鼠标进行3D场景交互
- 鼠标左键: 旋转视角
- 鼠标右键: 平移视角
- 鼠标滚轮: 缩放场景
- 在控制面板中配置目标IP地址
- 点击连接按钮建立TCP连接
- 使用发送/接收功能进行数据交互
- 使用滑块调节X、Y、Z轴位置
- 调节距离参数改变模型相对位置
- 所有参数变化都有平滑动画效果
系统支持以下十六进制数据格式:
AA 55 [位置数据32字节] [速度数据32字节] [扭矩数据32字节] 55 AA
- 位置数据: 3-34字节
- 速度数据: 35-66字节
- 扭矩数据: 67-98字节
- 准备OBJ格式的3D模型文件
- 在
assets/obj/目录下放置模型文件 - 创建对应的QML组件文件
- 在
RightSceneRoot.qml中引用新组件
- 在
shaders/目录下创建新的着色器文件 - 在QML中引用着色器效果
- 配置材质参数
- 修改
servicewidget.h/cpp或clientwidget.h/cpp - 在QML中添加新的信号槽连接
- 更新UI界面显示
- OpenGL错误: 检查显卡驱动和OpenGL版本
- 模型不显示: 确认OBJ文件路径正确
- 网络连接失败: 检查防火墙设置和网络配置
- 性能问题: 降低阴影质量或模型复杂度
- 使用Qt Creator的调试功能
- 查看控制台输出信息
- 检查网络连接状态
- 验证3D模型文件完整性
注意: 本项目需要Qt 5.15环境,请确保开发环境配置正确。