│2023·1│专题研究94海克斯康的Smart3D作为近20年来出现的先进的三维工厂设计软件,凭借其面向数据库、设计规则驱动等特点,简化了工程设计过程,深受用户喜爱,在流程行业中应用广泛。绝大多数使用过该软件进行工程设计的管理员与材料人员都对其配套工具BulkloadUtility(以下简称“Bulkload”)不陌生。作为官方提供的唯一具有图形用户界面的参考数据库(CatalogDatabase)导入工具,Bulkload在整个工程设计过程中都发挥着至关重要的作用。近年来,大型化工项目遍地开花。工程公司经常会承担多个装置的设计工作,这就要求Smart3D管理员与材料工程师同时管理和维护多个参考数据库,任务繁重且易出错。Smart3D原生的Bulkload由于只支持单一数据库的导入且不具备数据存储功能,在现有复杂紧迫的工程环境下显得捉襟见肘,迫切需要一个可以满足多数据库批量导入且具有数据复用功能的全新Bulkload程序。1.程序设计思路Smart3D原生的Bulkload一次只支持向一个参考数据库中导入数据,其工作的逻辑关系如图1所示。这种设计面临的最直接问题是向多个参考数据库中导入相同的数据文件时只能串行执行,大大降低了管理员的工作效率。因此,新开发的Bulkload程序(以下简称“Bulkload+”)设计思路的出发点就在于将数据导入文件和参考数据库信息隔离开,使得多个参考数据库的并行导入成为可能。此外,Bulkload+程序还要能够将相对固定的装入文件定制成模板,方便管理员对装入文件进行灵活配置、组合以及复用。新增数据存储功能,使得管理员能够更加轻松的管理装入文件并进行溯源。Bulkload+程序工作的逻辑关系如图2所示。2.程序设计与实现2.1程序整体架构设计Bulkload+程序主要由前端UI交互界面、数据库连接、命令行调用、数据处理和存储四部分组成。UI交互界面主要负责一系列交互功能的实现,包括导入文件的选取和配置、装入步骤的选择和装入模板的定制、项目参考数据库相关信息的编辑与配置、日志文件的存储等;后端数据库连接主要负责调用Python中Pyodbc模块连接SQLServer和Oracle数据库,获取项目所在服务器数据库的相关参数信息;命令行调用主要负责在Python环境下执行特定格式的控制台命令输入,通过命令行的形式调用原生Bulkload程序完成向参考数据库中的数据导入;数据处理和存储部分则是对用户在使用过程中产生的各种数据进行分类、汇总与存储,构造并生成特定格式的数据交换文件(图3)。2.2关键技术2.2.1GUI应用程序开发工具包——PyQt5Qt是一个跨...