许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  君方智能三维设计平台ShipMaker软件全面介绍

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

阅读数 1
点赞 0
article_banner

作者简介:

有将近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)草图绘制

包括草图线、草图轮廓、基础三维实体、几何约束和尺寸约束等。

详细功能介绍:

https://blog.csdn.net/ljemailbox/article/details/139467832?spm=1001.2014.3001.5501

(4)明细表

(5)构件编辑器

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

详细功能介绍:https://blog.csdn.net/ljemailbox/article/details/139469178?spm=1001.2014.3001.5501

(6)低代码建模(类似GrassHopper)

具体请参看:https://blog.csdn.net/ljemailbox/article/details/94402060?sharetype=blogdetail&sharerId=94402060&sharerefer=PC&sharesource=ljemailbox&spm=1011.2480.3001.8118

支持内置几何节点和自定义节点

自定义节点的输入参数和输入参数,以及节点计算逻辑

(7)建筑结构

(8)MEP管道

自动布管算法演示:

https://blog.csdn.net/ljemailbox/article/details/106161042?spm=1001.2014.3001.5502

(9)碰撞检查

(10)协同设计

(11)开发测试

(12)自动化测试

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

欢迎转发。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空