君方智能设计平台-技术架构

1.技术方案

  • 开发语言C++,C++17标准库,支持跨平台开发。
  • 可扩展性设计:采用平台+插件机制,接口模块和实现模块分离,事件订阅机制,减少系统耦合,增强可扩展性。
  • 几何模型表达:采用OCC的几何建模引擎实现模型表达,可能部分几何算法存储在性能问题。每个对象都有自己自己的模型计算器,生成自己的几何模型,中间设计CBIM自己几何表达中间层, 切换几何引擎,无需修改上层逻辑。
  • 模型渲染:由于OCC自带渲染渲染效果和性能,采用OCC自带渲染增强开发,或者也使用 hoops,或其他开源或商业库。需要后面进一步评估。 中间设计自己的图形表达层,可以根据不同的渲染引擎进行适配。切换显示引擎,无需修改上层逻辑。

       主要流程:对象模型计算器,根据对象的业务数据,生成对象图形显示表达,渲染引擎适配器         将对象图形显示表达,适配转换中对应图形显示引擎单元,传给图形引擎进行显示。

  • 交互:拾取选择,高亮,预高亮等采用OCAF框架的AIS功能。对象创建,夹点编辑,通用编辑,对象捕捉,选择过滤。在位编辑,OCAF框架没有提供,需要自己研发。
  • 对象数据库:由于OCAF框架中对象模型框架性能、功能完备、可靠性等因素,文件持久化及对象模型(对象数据库)采用自研方案。

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

   (2)OM反射框架

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

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

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

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

  • 关联更新:通过建立和管理对象间的引用关系图,每个对象创建自己的属性更新计算器。一个对象可能会有几个不同的计算器,一个计算自己受影响的参数。 属性修改时,根据对象引用关系图,计算出受影响对象关系图,调用相应对象的计算器完成关联更新。
  • 参数化族服务:由于缺少约束求解器,采用第三方的参数化工具。通过进程间通信,将族参数等信息传递给第三方参数化工具中的插件,完成参数求解和参数模型更新,将更新的模型转换成我们的模型格式,返回给程序,实现参数化服务。
  • UI框架:采用QT框架,能够实现跨平台开发。
  • 统一的编码规则,使用CppCheck静态代码检查工具,VLD内存泄漏工具,搭建基于gTest单元测试框架和自动化日志测试框架,来提升代码质量。

2.整体架构

3.基础能力

3.1 测试工具

3.1.1 测试框架

3.1.2 调试工具

3.2 UI交互

3.2.1 通用属性面板

3.2.2 对象通用拷贝框架

3.2.3 命令交互操作框架

3.2.4 夹点编辑框架

3.2.5 对象捕捉

3.3 模型管理

3.3.1 对象数据管理

3.3.2 对象空间关系管理

3.3.3 对象依赖关系管理

2.3.4 事务管理机制

3.3.5 参数管理

3.3.6 基于计算器的关联更新机制

3.4 渲染显示

3.5 扩展能力

4.目前问题

TODO

4.后续研发

TODO

 ShipMaker介绍:君方智能设计平台-ShipMaker软件介绍-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值