首页 > 其他分享 >君方智能设计平台-对象持久化技术方案

君方智能设计平台-对象持久化技术方案

时间:2024-07-09 14:01:33浏览次数:18  
标签:方案 OM NULL 持久 对象 君方 智能 图形 序列化

1.背景介绍

  • 1.1序列化功能

序列化是将复杂的图形对象、数据结构或对象转换成一种可被存储、传输或分享的格式的过程。这个格式通常是二进制或文本形式,能够轻松地保存在文件中或通过网络发送到其他应用程序。序列化的目的是将数据持久化,使其在不同时间和地点能够被还原为原始对象。

在图形平台开发中,序列化常常用于保存用户创建的图形对象和场景数据。这意味着用户可以在下次打开应用程序时重新加载之前的工作,而无需从头开始。

  • 1.2反序列化功能

反序列化是将序列化的数据还原为内存中的对象和数据结构的过程。这个过程是序列化的逆过程,它涉及解码序列化格式并将数据映射回相应的对象和数据结构。

在反序列化过程中,解码器负责解析序列化数据并将其还原为原始数据类型。这可能涉及将字节流转化为数字、字符串、布尔值等基本数据类型,并将其映射回对象的属性。解码器必须确保数据的完整性和一致性,以避免潜在的错误。

  • 1.3 序列化的原理

序列化是一项至关重要的技术,它在图形平台开发中发挥着关键作用。序列化的本质是将图形对象和数据结构转化为一种可持久化存储或传输的格式,使得这些数据能够在不同的时间和地点进行加载和还原。为了更好地理解序列化,让我们深入研究其原理。

2.使用场景

  • 文件打开
  • 文件保存
  • 对象拷贝
  • 事务机制

3.常用的持久化方案

  • 3.1 方案1

在AutoCAD的产品中,如果对象需要持久化,需要实现持久化的类实现如下的接口。

virtual int GetSize() cosnt = 0
virtual bool Serialize(char *pData) = 0
virtual bool Unserialize(char*pData) = 0
virtual Object * Clone() = 0
virtual Object* DeepClone() = 0

缺点:容易出错,升级代码维护困难。

  • 3.2 方案2

UG/NX,广联达数维等技术方案,利用OM的反射框架,底层统一实现,灵活性不够。

已知情况:

  • AutoCAD,AutoCAD Architecture,AutoCAD MEP, 没有OM框架。
  • UG/NX、广XX达维设计有自己的OM反射框架。

使用OM优点:对象拷贝,序列化和反序列化,事务支持容易。定义数据对象时,只许通过宏定义对象schema,底层统一实现。

缺点:需要额外的OM框架,增加工作量,问题排查麻烦。

采用AutoCAD无OM模式优点:对象拷贝,序列化和反序列化,数据版本升级容易且灵活,代码的可读性好,问题排查容易。

缺点:新增数据对象,实现自己的拷贝,序列化和反序列化逻辑。

使用OM框架,Redo/Undo能够实现增量备份更容易支持。

4.OM反射方案选择

通过实现类似于Qt中对象属性反射功能,可以参考UG及广XXX达设计实现。

(1)UG方案:实现通过定义对象定义schema文件,类似Qt编译前通过特定程序生成反射代码文件。

反射文件样例

static ClassAttribute attributeTable[] ={{

&StiffenerParmsClassId, &StiffenerParms::m_distanceToleranceAttId, "m_distanceTolerance", NULL, NULL, NULL, NULL, NULL, NULL,

{0, -1, -1}, 124u, NULL_RTC, offsetof(class UGS::Ship::StiffenerParms, m_distanceTolerance),

0u, 0u, OM_type_double, 0, 0, 0}}

(2)广XX达方案等:通过定义宏来生成反射代码文件。

方案比较

UG方案:代价大,流程复杂,好处是可以生成不同语言的接口文件。

广XX达方案:简单,也能满足要求。

综合考虑,采取类似广XX达方案,简单也能满足需求。

5.OM框架实现

5.1 类Class的Schema设计

 成员类型成员名称成员功能
ClassId       m_parentClassId
ClassId        m_classId
Guid            m_assemblyId所属模块Guid
std::vector<PropertySchema>m_properties属性schema列表
std::wstring m_assemblyName所属模块名称
std::wstring m_className
std::wstring m_parentClassName
intm_version
int      m_index

5.2 属性Property的schema设计

成员类型成员名称成员功能
PropertySchemaType m_propertySchemaType
IntOrFloatTypem_intOrFloatType
IntBaseType    m_intBaseType
string  m_propertyName
string  m_propertyType
intm_offset
intm_propertySize
intm_propertyBehaviourTypes

6.总结

        序列化和反序列化是图形平台开发中的关键技术,它们允许将图形对象和数据结构转化为可持久化存储或传输的格式。不同的序列化实现方案可供选择,包括二进制序列化、XML 和 JSON 序列化,以及自定义序列化。通过基于OM框架的序列化和反序列化方案,可以实现数据的持久性和跨平台传输,为图形平台开发提供更大的灵活性和可扩展性。

君方智能设计平台链接:

ShipMaker船舶协同设计软件介绍-CSDN博客

标签:方案,OM,NULL,持久,对象,君方,智能,图形,序列化
From: https://blog.csdn.net/ljemailbox/article/details/94438662

相关文章

  • IDC调查揭示了3个行业将面临人工智能显著颠覆!
    在IDC的调查中,技术决策、财务和运营系统被认为是生成式人工智能(GenAI)最有可能影响其组织未来竞争地位或商业模式的业务领域之一。AI技术的引入将使得企业在技术决策上更加高效和精准,同时优化财务和运营流程,降低成本并提高效率。例如,AI可以通过自动化和智能分析,帮助企业实现财务预......
  • 新智能:巨日禄AI创作平台实现让普通人自由创作AI漫画故事视频
    巨日禄官方网站(https://ai.jurilu.com/)迎来大版本更新。船新版本,铆足马力,打开新页面即可看见两大优化:「快速入口+作品画廊」,让创作者更加方便进行操作!面向初中阶AI创作者,巨日禄AI首度为用户们发布「AI故事+AI视频+表情包推文+AI绘画」模式,同样的操作,不同的效果,等你体验!这次版......
  • Java智能之Spring AI:5分钟打造智能聊天模型的利器
    前言尽管Python最近成为了编程语言的首选,但是Java在人工智能领域的地位同样不可撼动,得益于强大的Spring框架。随着人工智能技术的快速发展,我们正处于一个创新不断涌现的时代。从智能语音助手到复杂的自然语言处理系统,人工智能已经成为了现代生活和工作中不可或缺的一部分。在这样......
  • 【触想智能】工业一体机在工程机械车辆上的应用分析
    随着工程机械行业的不断发展和自动化程度的提高,工业一体机在工程机械车辆上的应用越来越广泛。工业一体机是集电脑、显示器、触摸屏、通讯、测量、控制等多种功能于一体的高度集成化的工业控制系统,在工程机械车辆上的应用可以为用户提供更为便捷、高效、安全的操作体验。......
  • 智能加速计算卡设计方案:389-基于KU5P的双路100G光纤网络加速计算卡
    基于KU5P的双路100G光纤网络加速计算卡    一、板卡概述    基于XilinxUltraScale+16nm KU5P芯片方案基础上研发的一款双口100GFPGA光纤以太网PCI-Expressv3.0x8智能加速计算卡,北京太速科技该智能卡拥有高吞吐量、低延时的网络处理能力以及辅......
  • 君方智能设计平台-事务管理(Redo/Undo)技术方案
    1.背景介绍事务处理是指对数据进行一组操作,这些操作要么全部成功,要么全部失败,以确保数据的一致性和完整性。软件的事务管理主要实现方案主要涉及以下几个方面:(1)数据一致性:在CAD软件中,数据一致性是指确保所有操作都遵循一定的顺序,以避免意外的后果。例如,在编辑图形时,确保先删除......
  • 快手开源中英双语文本生成图像模型Kolors;漫画翻译工具Comic Translate;支持谷歌搜索、
    ✨1:KolorsKolors是基于潜在扩散的大规模中英双语文本生成图像模型。Kolors是由快手的Kolors团队开发的一种基于潜在扩散的文本到图像生成模型。它经过了数十亿对文本和图像数据的训练,在视觉质量、复杂语义准确性以及中文和英文文本渲染方面都表现出显著的优势。Kolo......
  • Altair携手奇瑞汽车,荣获2024世界人工智能大会“AI赋能新型工业化创新应用优秀案例”
    2024年7月4-7日,2024世界人工智能大会(WAIC)在上海世博中心成功举办。4日下午,“AI赋工业,数智启未来—人工智能赋能新型工业化主题论坛”在上海世博中心召开。Altair携手奇瑞汽车股份有限公司申报的“基于AI的降阶建模实现新能源汽车高低温续航高效集成仿真”案例在本次大会中......
  • 智能体重秤pcba方案
    智能体重秤应用系统由硬件和软件两部分组成。硬件是指微控制器、扩展存储器、扩展输入输出设备等。软件是各种工作过程的通用名称。硬件和软件只有紧密协调,才能提高系统的性价比。从硬件设计开始,应考虑相应软件的设计方法,软件的设计是基于硬件原理和系统的功能要求。一、......
  • FlexibleBI赋能工业4.0:智能化尺寸公差质量管理软件
    在工业4.0的时代背景下,制造业对尺寸公差质量管理的要求越来越高。为了满足这些需求,我们推出了一款智能化的尺寸公差质量管理软件。该系统通过人工智能技术赋能,为企业提供了一套自主可控的解决方案,确保产品质量的同时,实现了生产效率的提升。FlexibleBI尺寸公差质量管理的变革......