无线通信设计中参数化插件的设计与实现

2021-11-13 07:53谢正傲
新一代信息技术 2021年14期
关键词:二次开发插件对话框

谢正傲

(安徽电信规划设计有限责任公司,安徽 合肥 230031)

0 引言

CAD(计算机辅助设计)是一款集图形学、网络通信、数据库等技术与一体的、通用性的、普遍应用于各种领域设计与绘图软件[1-2]。随着CAD软件应用规模的不断扩大,以及计算机软件开发技术的不断发展,目前各类主流的最新版本CAD软件均已支持在自有开发平台上进行二次开发并提供丰富的应用编程接口。CAD软件支持二次开发以后,不仅能够充分发挥软件自身的基础功能,也能够让软件设计人员便捷的利用各项扩展能力。正是由于 CAD自身开发的架构以及通用的标准,使得CAD能够广泛应用于各类工程设计[3-6]。

在无线通信等领域工程设计工作中,经常需要使用CAD软件进行图纸的绘制。传统的无线通信勘察设计中,设计人员需根据现场勘察的塔桅类型逐步绘制塔桅立面等工程设计示意图,存在工作效率低、质量标准不统一等问题。随着 5G通信技术的发展,在使用CAD软件进行5G基站设计绘图时,塔桅、机柜等标准化图库和通用图库能够极大地提高设计绘图效率和质量。通常CAD软件并未提供特定工程领域的标准化图库和通用图库,为适应无线通信工程设计中快速设计的需求,运用ObjectARX和MFC开发技术,设计实现一个标准化的参数化三角塔插件,通过输入塔桅高度、平台数、塔底高度等参数即可快速绘制出标准的三角塔图形,能够有效的帮助设计人员降低劳动强度,提升设计效率和设计质量。

1 关键技术

CAD的二次开发是指在CAD开发平台上,结合设计的专业领域,利用支持的开发工具,为设计人员定制开发出更加丰富的绘图功能,以提高设计人员的工作质量和工作效率。Lisp、ADS和ObjectARX是CAD二次开发方法中常见的技术[6-7]。MFC是微软基础类库的简称,它封装了一系列的操作系统可视化界面[8]。

(1)Lisp语言是一种广泛应用于人工智能方面的计算机表处理语言,CAD自带支持二次开发的Lisp语言,具有规则简单、易学易用、针对性强等特点,支持通过命令行的方式调用 CAD 命令、系统变量和对话框[6-7]。

(2)ADS是一种以C语言为基础的结构化编程语言。编写的程序通过C编译器编译成可执行文件后,可以在CAD环境下运行。与Lisp语言相比,虽然执行更快、代码可读性更好,但不适合可视化应用开发需求[6-7]。

(3)ObjectARX是一种以C++为基础的面向对象编程语言,利用动态链接库(DLL)程序与接口,直接与CAD进行交互。ObjectARX开发的应用程序速度快、集成度高、稳定性强[9]。

(4)MFC是一种基于C++封装的API函数基础类库,提供了应用程序的开发框架,能够快速、高效的创建可视化应用程序,且具有良好的设计效果。其自身功能强大的函数库和可视化开发界面能够简化程序编程,降低设计与开发人员的工作量,缩短应用开发时间,有效的提升应用程序开发效率[8-10]。

2 实现方案

实现参数化插件绘图和提供友好的交互界面是CAD二次开发的主要任务。参数化插件绘制图形主要是指通过输入塔桅自身通用的属性值,对图形进行自动绘制。

ObjectARX程序与MFC、CAD程序之间是通过消息传递机制进行通信的,且其自身具有功能强大、执行速度快、系统开销小、类的构造与实现相对简单等特点。由于ObjectARX与MFC均是基于C++的面向对象编程,相对其他开发方法更加符合设计与开发人员的编程习惯。运用ObjectARX开发技术,对 CAD做各种二次开发时,不仅可以直接访问CAD图库系统和图形数据库,也可直接操作CAD自身的代码和数据结构,同时结合.net平台的MFC类库可以实现标准的图形界面[9-11]。

使用MFC动态链接库创建ObjectARX程序,CAD与ObjectARX程序间可共享相同的DLL,与使用MFC静态链接库的ObjectARX程序相比,具有执行效率高、代码更简洁等特点。因此三角塔参数化插件开发选择采用 MFC动态库创建ObjectARX程序来实现。参数化插件实现流程如图1所示。

图1 系统实现流程Fig.1 System Implementation Process

3 功能设计与实现过程

(1)MFC初始化

每个动态链接库必选有一个入口函数 DllM-ain,项目工程运行时自动调用该入口函数。MFC自带调用入口函数机制,工程应用中只需编写与工程相关的初始化代码即可。入口函数 DllMain的主要核心代码如下:

(2)图形化对话框创建与设置

在无线通信工程中三角塔可能被设计安装在地面或建筑物之上。设计人员输入的三角塔属性参数包括塔高、塔底高度、平台数、平台高度。其塔底高度参数是指塔底到地面的高度,若三角塔设计安装在地面,则塔底高度为 0;平台数参数是指三角塔包含的平台层数;塔高参数是塔底到塔顶的高度;平台高度参数是平台到塔底的高度,当三角塔包含多层平台时,分别定义每层平台的高度。创建一个基于MFC的图形化塔桅对话框,用来接收无线通信工程设计人员设计绘图时需要输入的三角塔属性参数,如图2所示。

图2 图形化塔桅对话框Fig.2 Graphical Mast Dialog

当工程设计人员输入平台数时,需要根据输入的平台数动态调整平台序号和平台高度。图形化对话框创建完成后,对塔桅对话框的平台序号、平台高度等参数进行初始化,并定义获取塔桅对话框参数的方法供绘制函数等调用。其核心实现代码如下:

(3)编写绘制函数

捕获工程设计人员进行三角塔绘制时的按钮点击事件,并获取设计人员在图形化对话框中输入的参数值供插入块参照使用。其核心实现代码如下:

(4)应用效果

打开本地CAD软件,加载参数化塔桅插件,“塔桅生成”对话框中的参数属性默认值可根据实际设计要求对其进行设置,如图3所示。

图3 塔桅生成对话框Fig.3 Generate Tower Mast Dialog

当平台数增加时,平台序号对应的平台高度默认值为 0,设计人员也可根据需要对其进行修改调整。参数属性设置完成后,在模型空间中任意选取插入点,CAD会在选取的插入点处自动绘制出如图4所示的标准三角塔块参照。

图4 三角塔图形Fig.4 Triangular Tower Graphics

工程设计人员可在自动绘制完成后,通过三角塔块参照属性窗口修改其参数属性(塔高、平台数、塔底高度、总高、平台高度等),如图5所示。

图5 三角塔属性Fig.5 Triangular Tower Properties

4 结论

在无线通信工程设计中,设计绘图工作是一项费时费力且高度重复的工作。基于CAD二次开发技术,开发一些通用和标准的参数化插件,对工程设计有着很大的实际意义。通过二次开发的参数化插件不仅融入了历史设计经验,且良好的交互性和友好的操作界面,能够有效的提升工程设计的设计效率和设计质量,从而达到标准化和规范化的目的,为传统无线通信设计数字化转型提供支撑。

猜你喜欢
二次开发插件对话框
正常恢复虚拟机
自编插件完善App Inventor与乐高机器人通信
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
Bootlace Worms’Secret etc.
What Is Beauty?
西门子Easy Screen对倒棱机床界面二次开发
基于jQUerY的自定义插件开发
浅谈VB的通用对话框《CommonDialog》控件的使用
基于Revit MEP的插件制作探讨