作者简介有将近20年的软件开发经验包括20年CAD7年船舶和12年建筑CAD软件软件开发和5年高性能服务器开发。熟悉了解Tribon、Aveva Marine、Foran、UG/NX、AutoCAD AEC/MEP 和Revit等CAD设计建模软件精通CAD建模平台底层技术原理及架构和服务器开发技术包括对象存储管理及拷贝、图形对象渲染、文件保存及升级、事务管理、对象交互框架、对象捕捉框架、夹点编辑框架、动态尺寸显示及编辑、自动化测试框架、基于脚本的构件编辑器及构件级协同设计对协同设计有自己的理解。XP3D是一款基于Qt、OCC、MySQL、SQLite、Redis、Nginx、QPID、SARibbon和Lua等技术,个人独立开发的三维设计的协同设计软件个人业余爱好支持Linux(Ubuntu和Windows平台和国产信创操作系统(麒麟统信和鸿蒙PC)。从2015年开始经过10年的积累开发近50万行代码已经完成基础建模平台及基础能力以及部分通用应用的开发功能会逐步完善。由于个人精力有限可能会考虑开源。后期会考虑切换渲染引擎会到OSG或Coin3DShipMaker的软件架构设计支持渲染引擎及建模引擎的无感切换而不会影响上层应用。下面对XP3D的软件架构设计和软件功能做一个简单的介绍软件详细设计可以参见博客其他技术文章。1.架构设计1.1 产品架构1.1 技术架构整体架构详细架构1.2 设计目标1可扩展性提供灵活的扩展接口和机制允许用户根据需求定制和扩展功能同时保持平台的稳定 和高性能。2国际化版本能够灵活支持多语言版本。3兼容性保持向后兼容性包括数据兼容和API的兼容性确保扩展的稳定性和可迁移性防止扩展对原有功能的冲突和破坏。4支持跨平台支持Windows和Linux平台能够适配国产操作系统。5安全性保证数据不能丢失用户信息不能泄露。1.3 技术实现整体采用C开发语言Qt6.3和C17标准库支持跨平台开发和适配国产操作系统。采用增量更新存储机制提高保存性能。另外显示渲染使用VTK(OSG或Coin3d)几何内核采用OCC网格处理采用OpenMesh或借鉴Blender的网格处理算法。它能够支持参数化设计数据存储Redo/Undo,交互编辑显示渲染二次开发Python接口插件开发机制等.主要采用机制实现设计目标。1采用平台插件机制接口模块和实现模块分离事件订阅机制减少系统耦合增强可扩展性。2采用分层架构明确各层的职责底层模块不能使用高层模块模块间不能跨层调用。例如业务模块只能使用数据层基础Builder业务模块基础设施模块不能使用UI模块。3跨平台开发库采用Qt6.3跨平台UI库C11标准库避免选用非快平台的三方库。采用CMake管理编译项目。4基于版本号升级机制使用灵活的基于版本号控制数据和行为升级机制和基于Impl模式的API接口。5资源和代码模块分离将资源模块和代码模块分离通过动态加载切换资源模块实现多语言版本。6加密传输和日志机制采用OpenSSL网络加密传输用户敏感信息加密保存。采用日志机制可以确保程序崩溃时数据的恢复问题7模型存储除采用自定义文件格式进行存储亦可考虑数据库。例如点云等非结构化数据采用MongoDB,用户管理等数据采用MySQL数据库存储。数据库存储采用Master/Slave架构。对于自定义文件格式存储实现方案1建立自己的对象结构体系模型2OM反射框架3模型数据和业务数据存储分离4各专业模型独立存储利于多线程操作。5恢复备份和定时保存机制防止数据丢失6项目文件采用压缩包成一个项目文件各种数据文件族文件模型文件专业数据文件项目配置文件等。考虑多线程文件打开和保存对象访问考虑同步情况。1.4 技术选型后端服务采用开源Nginx服务器对外提供服务。桌面交互设计端采用Visual Studio2019作为集成开发环境CMake作为项目管理和编译工具。使用C开发语言采用C17标准库Pybind11支持Python二次开发接口。Qt6.3开发库和SARibbon开源库UI框架库.采用gTest的单元测试框架采用sqlite作为本地数据存储采用boost.aiso通讯库对接前后端通讯。显示渲染可以使用VTK几何内核采用OCC网格处理采用OpenMesh或借鉴Blender的网格处理算法。数据存储本地文件采用二进制流文件压缩包结构化数据采用MySQL或PostgreSQL非结构化数据采用MongoDB数据库。开发工具Visual Studio2019集成开发工具Git版本控制CMake项目管理和编译Jenkins持续集成/持续部署CI/CD。2.软件功能2.1 软件登入2.2 项目打开及工作区的设置选择2.2.1 新建本地项目2.2.2 新建云项目2.3 功能界面1通用功能2草图绘制包括草图线、草图轮廓、基础三维实体、几何约束和尺寸约束等。33D建模4几何节点5自由造型6构件编辑器支持自定义参数化构件库以及构件库的管理支持本地和云端存储。7构件装配8建筑基础9建筑结构10管道设计自动布管算法演示https://blog.csdn.net/ljemailbox/article/details/106161042?spm1001.2014.3001.550211风管设计12电气设计13数据交换14碰撞检测15明细表15协同设计16开发测试欢迎转发。