君方智能三维设计平台-ShipMaker软件介绍

本文介绍了具有丰富经验的软件开发者分享其在CAD和服务器开发领域的专长,特别是他个人开发的ShipMaker船舶协同设计软件,涵盖了基础功能和架构设计,以及未来可能的技术升级和开源计划。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者简介:

有将近20年的软件开发经验,包括15年CAD(7年船舶和8年建筑CAD软件)软件开发和5年高性能服务器开发。熟悉了解Tribon、Aveva Marine、Foran、SPD、AutoCAD AEC/MEP 和Revit等CAD设计软件,精通CAD建模平台底层技术原理及架构和服务器开发技术,包括对象存储管理及拷贝、图形对象渲染、文件保存及升级、事务管理、对象交互框架、对象捕捉框架、夹点编辑框架、动态尺寸显示及编辑、自动化测试框架、基于脚本的构件编辑器及构件级协同设计,对协同设计有自己的理解。

ShipMaker是一款基于Qt、OCC、MySQL、SQLite、Redis、Nginx、QPID、SARibbon和Lua等技术,个人独立开发的三维设计的协同设计软件(个人业余爱好),支持Linux(Ubuntu)和Windows平台和国产信创操作系统。从2015年开始,经过10年的积累开发(近20万行代码),已经完成基础建模平台及基础能力,以及部分通用应用的开发,功能会逐步完善。由于个人精力有限,可能会考虑开源。

后期会考虑切换渲染引擎会到OSG或Coin3D,ShipMaker的软件架构设计支持渲染引擎及建模引擎的无感切换,而不会影响上层应用。

下面对ShipMaker的软件架构设计和软件功能做一个简单的介绍,软件详细设计可以参见博客其他技术文章。

1.架构设计

1.1 产品架构

1.1 技术架构

      整体架构

 详细架构

1.2 设计目标
(1)可扩展性
提供灵活的扩展接口和机制,允许用户根据需求定制和扩展功能,同时保持平台的稳定    和高性能。
(2)国际化版本
能够灵活支持多语言版本。
(3)兼容性
保持向后兼容性,包括数据兼容和API的兼容性,确保扩展的稳定性和可迁移性,防止扩展对原有功能的冲突和破坏。
(4)支持跨平台
支持Windows和Linux平台,能够适配国产操作系统。
(5)安全性
保证数据不能丢失,用户信息不能泄露。

1.3 技术实现

整体采用C++开发语言,Qt6.3和C++17标准库,支持跨平台开发和适配国产操作系统。采用增量更新存储机制,提高保存性能。

另外,显示渲染使用VTK(OSG或Coin3d),几何内核采用OCC,网格处理采用OpenMesh或借鉴Blender的网格处理算法。

它能够支持参数化设计,数据存储,Redo/Undo,交互编辑,显示渲染,二次开发Python接口,插件开发机制等.主要采用机制实现设计目标。

(1)采用平台+插件机制

接口模块和实现模块分离,事件订阅机制,减少系统耦合,增强可扩展性。

(2)采用分层架构

明确各层的职责,底层模块不能使用高层模块,模块间不能跨层调用。例如业务模块只能使用数据层,基础Builder业务模块,基础设施模块,不能使用UI模块。

(3)跨平台开发库

采用Qt6.3跨平台UI库,C++11标准库,避免选用非快平台的三方库。采用CMake管理编译项目。

(4)基于版本号升级机制

使用灵活的基于版本号控制数据和行为升级机制和基于Impl模式的API接口。

(5)资源和代码模块分离

将资源模块和代码模块分离,通过动态加载切换资源模块实现多语言版本。

(6)加密传输和日志机制

采用OpenSSL网络加密传输,用户敏感信息加密保存。采用日志机制可以确保程序崩溃时数据的恢复问题

(7)模型存储

除采用自定义文件格式进行存储,亦可考虑数据库。例如,点云等非结构化数据采用MongoDB,用户管理等数据采用MySQL数据库存储。数据库存储采用Master/Slave架构。

对于自定义文件格式存储实现方案:

   (1)建立自己的对象结构体系模型

   (2)OM反射框架

   (3)模型数据和业务数据存储分离

   (4)各专业模型独立存储,利于多线程操作。

   (5)恢复备份和定时保存机制,防止数据丢失

   (6)项目文件采用压缩包成一个项目文件,各种数据文件:族文件,模型文件,专业数据文件,项目配置文件等。考虑多线程文件打开和保存,对象访问考虑同步情况。

1.4 技术选型

  • 后端服务

采用开源Nginx服务器对外提供服务。

  • 桌面交互设计端
  1. 采用Visual Studio2019作为集成开发环境,CMake作为项目管理和编译工具。
  2. 使用C++开发语言,采用C++17标准库,Pybind11支持Python二次开发接口。
  3. Qt6.3开发库和SARibbon开源库UI框架库.
  4. 采用gTest的单元测试框架,采用sqlite作为本地数据存储,采用boost.aiso通讯库对接前后端通讯。
  5. 显示渲染可以使用VTK,几何内核采用OCC,网格处理采用OpenMesh或借鉴Blender的网格处理算法。
  • 数据存储

本地文件采用二进制流文件压缩包,结构化数据采用MySQL或PostgreSQL,非结构化数据采用MongoDB数据库。

  • 开发工具

Visual Studio2019集成开发工具,Git版本控制,CMake项目管理和编译,Jenkins持续集成/持续部署(CI/CD)。

2.软件功能

2.1 软件登入

2.2 项目打开及工作区的设置选择

2.3 功能界面

(1)视图

(2)通用操作

(3)草图绘制

(4)明细表

(5)构件编辑器

支持自定义参数化构件库以及构件库的管理,支持本地和云端存储。

(6)建筑结构

(7)MEP管道

(8)碰撞检查

(9)协同设计

(10)开发测试

(11)自动化测试

后面会陆续介绍各个功能。

欢迎转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值