Key Words. PipeCAD, 三维管道设计软件,项目管理数据库
PipeCAD管理模块Admin主要实现项目数据的管理:建立组Team,用户User和工做区数据集MDB,项目数据库DB等,并给用户分配权限。微信
经过数据库的设计,使其结构兼容PDMS数据库。兼容PDMS数据有不少优势,如能够导入PDMS项目数据,作到PDMS项目复用。也能够导出PDMS数据,使PipeCAD项目能够导入到PDMS中。数据结构
在PDMS中有Reference Number概念,实际上也是项目数据库中每一个对象惟一标示。上图所示为其Reference Number生成算法。Reference Number由两部分组成:第一部分由数据库文件编号和bucket号组成。bucket号是表示同时使用一个数据库文件的用户数。第二部分是从0开始的一个递增序号。数据库设计
经过这两部分来组成一个惟一的标识,确保一个Reference Number在项目中惟一。这个编号至关于数据库的OID,即对象惟一标示号。之前还考虑过Twitter的雪花snowflake算法,对于分布式系统中,须要使用全局惟一ID的场景,snowflake算法仍是不错的选择的。OID的生成对数据库的设计影响仍是比较大的。把PDMS生成Reference Number摘出来作个笔记,也是方便本身加深印象和查找。分布式
PipeCAD启动也经过批处理来配置项目信息,方便项目统一配置管理。启动后,选择项目及用户,MDB,模块,输入密码等就能够登陆相应模块,目前只须要三大模块就能够完成管道设计功能:管理模块Admin;元件库模块Paragon和设计模块Design。统一在Design模块完成模型设计及自动出图、出材料。ide
PipeCAD的管理模块Admin也作相应的简化处理。经过数据库的设计,每种类型的数据模式Schema保持一致。如Admin模块中使用到的System数据库;Paragon模块使用的CATA数据库;Design模块使用的DESI数据库。虽然数据库中内容不一样,可是基本Schema是相似的。spa
PipeCAD的Admin模块数据也是树结构,每一个树结点对应一种类型,不一样类型会有不一样的属性数据。整个数据结构简单,清晰。设计
初步实现PipeCAD项目管理功能,为后面的用户登陆,元件库数据存储及设计数据保存作好基础。3d
完成PipeCAD数据库设计,使其简单、易维护。基本作到能够兼容PDMS数据,包括Reference Number的生成,一些具备引用关系的属性处理等。虽然如今使用SQLite,后面也能够快速切换到PostgreSQL数据库,为大型项目的设计提供数据支持。
致力于不依赖AutoCAD的国产三维管道设计软件的开发,若您有任何意见、建议,欢迎交流。