APP下载

基于VC++的专业机械CAD系统研究

2011-07-07田仙云

制造业自动化 2011年21期
关键词:绘图程序图形

田仙云

(太原城市职业技术学院 机电工程系,太原 030027)

0 引言

开发具有行业特色的产品设计CAD系统,是国外产品自动化设计广泛应用的一个概念。国内的机械行业在部分产品设计中已经应用了此技术,但具体到起重机行业却没有专用的参数化快速设计系统。尽管国内许多高校与科研机构已对此立项研究,但由于方法的局限性,研究结果尚不尽如人意。鉴于此,本文采用现代优化设计方法和参数化技术对传统设计、计算模型及方法进行技术提升,用优化程序代替设计,实现基于设计数据驱动的命令文件式参数化绘图,形成具有桥式起重机(以下简称桥机)特色的专用CAD系统。本文所述桥机参数化设计软件,能够完成从设计、计算直到参数化绘图的全部过程,使工程设计人员把设计重点放到结构的优化和创新上。其基本理论和方法,对于各种机械产品CAD系统的开发都具有理论指导与工程应用价值。

1 开发工具

VC++6.0是由微软公司推出的一款Windows环境下可视化的面向对象的软件开发平台。与Turbo C、Borland C++相比,VC++继承了C语言结构化编程能力强、运行速度快的优点,能够在Windows 2000/NT上建立32位应用程序。VC++具有较好的可视化程度,严谨的编程风格和完全的面向对象特性。随着WINDOWS操作系统在微机上的普遍应用,软件开发平台也逐渐转向WINDOWS平台的面向对象和可视化编程[1]。由于VC++源于C又高于C,可以向Java、C#等网络开发平台过渡,因此是当前最佳的软件开发平台。以往开发人员虽然看好VC++,但因其较难掌握,故而避选该语言作为编译环境。笔者认为VC++虽然略难掌握,但对于开发大型软件系统是非常有益的。而且采用应用程序向导(AppWizard)工具和MFC(微软基本类库)后,VC++程序并不难编写。因此,本文软件全部选用VC++作为开发工具。

2 优化技术

2.1 优化目标的确定

箱形桥架作为桥机的主要承载构件,其自重占整机重量的60%左右[2]。但以往对桥机的优化中,多数设计方法却只单纯对主梁进行优化,这虽能降低计算成本,却因考虑因素不全而降低了优化效果和整机性能。因此,本文在确保整机性能的基础上,将最大程度地减轻桥架重量作为优化设计模块的主要目标。

2.2 分析和选取优化方法

起重机优化中存在强度、刚度、稳定性、几何尺寸等大量约束,致使优化变量的可行域非常复杂,而最优点往往在可行域的边界上,所以传统的优化方法存在着不容易找到全局最优解的缺点。

针对目前研究较热的全局优化方法,依据“综合就是创新”的思想,众多学者相继提出了将不同类算法相结合,实现优势互补,以构造新的混合型算法的思路。虽然已有许多成形的求解软件,但几乎都是针对特定问题求解的,有一定的专用性和局限性,尚不存在适合解决任何全局最优解问题的通用算法与软件。为此,本文在充分分析目前流行的全局和局部最优化算法优缺点的基础上,重点研究了混合离散变量优化(MDOD)方法和正交网格法,针对正交网格法虽能得到全局稳定解但其效率低下,MDOD 方法虽然效率高,但受初始点影响解的稳定性差,甚至找不到最优解的特点,通过综合策略设计出一种新的串行结构的混合全局优化方法,即以MDOD和正交网格法为基本框架,尽可能利用MDOD方法优化速度快的优点提高算法的性能,同时利用正交网格法解决MDOD法中存在的不稳定性协同寻优。由于该算法具有“强优弱劣”的综合机制,因而可以获得较好的寻优效率和效果。

2.3 优化算法

本文的优化算法程序基于Windows操作系统,以VC++为开发平台编制,数据库开发采用Access实现。综合策略是:首先利用正交表提供的信息在优化变量上下限空间内的可行域中寻找一个局部最优点,并以此最好水平点作为子空间轮变搜索的初始可行点;然后利用目标函数和约束条件的信息,加快搜索进程;最后通过“查点”策略以尽可能少的计算代价找到所有点中的最优点。

3 参数化绘图

3.1 参数化绘图技术

参数化绘图是在给定结构形式的条件下,依据参数自动生成图纸的一种技术。由于能够自动出图,因而可极大地提高设计效率,是开发起重机等专业机械CAD系统的关键技术。

参数化绘图系统开发采用面向对象的技术,在可视化VC++6.0开发环境下,采用命令文件方式对AutoCAD进行二次开发实现,即用支持AutoCAD的编程语言访问AutoCAD对象模型,把AutoCAD功能集成到应用程序中,实现图形的自动生成[3]。不同型号的同类产品只需通过参数的改变即可引起所有与它相关尺寸的自动改变,从而使图形局部或整体发生联动来更新原设计,避免了交互式绘图繁琐的重复劳动,使产品设计更加高效、快捷。

3.2 参数化绘图的工作过程

1)参数确定。本软件的参数来源主要有:结构计算结果的文本数据文件、数据库中的数据文件、优化后的主要数据参数、经过基本参数计算确定的参数[4];

2)各类参数传递到绘图模块后,执行VC++6.0编制的桥机绘图命令程序,生成绘图命令文件*.SCR;

3)启动AutoCAD,执行绘图命令文件,在计算机屏幕上绘出所需要的图形;

4)对图形进行校核和修改,修改可以在程序中进行,重复以上步骤;

5)连接绘图仪,绘出图纸。

3.3 参数化绘图的实现

3.3.1 参数化绘图程序的编制步骤

本文的参数化绘图以Windows操作系统作支撑系统,AutoCAD为图形支撑软件,命令文件作接口,以可视化程序设计语言VC++6.0为开发平台实现。编写生成参数化绘图程序的步骤如图1所示。

图1 参数化绘图程序的编制步骤

3.3.2 编制参数化绘图程序的主要技术

1)专用函数编制

参数化绘图程序的编制中,将多次用到的专业通用符号和特殊图形定义成函数,可避免重复工作,增强代码的可读性和提高编程效率。由于命令文件的内容就是AutoCAD的命令及对其提示响应的数据集合,因此在编写程序代码前,应先在键盘上用交互式绘图的方式将整个过程操作一遍,确定其输入的格式、选项及参数后,把其中的数据作为函数的参数即可。判断是否需要编制专用函数,采取“事不过三”的原则,只要程序中有调用三次以上的程序段,就将其编成函数,使程序代码大大缩减,达到省时省力、节省存储空间之目的。下面是绘制表面粗糙度符号的专用函数,其样式如图2所示。其他特征图形、标准符号均可依此编制。

图2 表面粗糙度符号

2)读取数据文件

由于绘图程序中的参数主要来源于各类数据文件,因此数据文件的正确读取成为参数化绘图执行成败的关键。其核心程序如下:

3)图幅、比例的确定

各图形绘制比例与图幅大小密切相关,为使不同跨度、吨位的桥机,都能全面、合理地呈现在图纸幅面上,程序应在确定图幅大小后,自动判断不同情况下图中相应图形的适用比例。现以实现桥架参数化绘图程序中比例的确定为例予以说明[5]:

int a=0; /*a为幅面代号*/

double kd=841;bl=60;

/* kd为幅面宽度尺寸;bl为比例*/

if(H/50+B/50+480-kd〈0) bl=50;

/*H为主梁总高;B为端梁全长*/

if(H/40+B/40+480-kd〈0) bl=40;

if(H/30+B/30+480-kd〈0) bl=30;

4)坐标基点及绘图坐标点的设置

计算坐标时,图纸上的各个视图均应选定一个坐标基点,并将同一视图中所有的位置坐标值换算成基点坐标的函数,以便灵活地调整视图,达到一张图纸中所有视图的位置合理分布。其中,绘图坐标点的设置首先要便于绘图,并达到预定的要求,其次是使程序占用的内存越少越好。由于屏幕中心位置始终是不变的,以往开发人员通常选择屏幕中心位置或图形对称的起点作为坐标基点,但鉴于桥机的实际结构,本文绘图模块是以各视图的结构起始点作为坐标基点,其余位置的坐标值计算则以有利于点的表达确定。

考虑到时间长了修改程序时,可能记不清坐标点的定义方法,所以可采用把详细的坐标布点图放在程序内部,或在程序中添加注释语句等方法。本文采用后一种方法。因为注释可增加程序的可读性,不仅便于对程序的阅读和调试,也便于对程序的维护、移植和扩充[6]。

5)循环、条件语句及夸大画法的应用

参数化绘图的特点是参数具有可变性,往往需要编制循环、条件语句。例如:为增加桥机结构稳定性,常需设置隔板、加劲肋等,由于其数量取决于绘图初始给定的结构参数,并非固定的数值,因此必须采用循环语句方能实现其图形绘制及相应尺寸、件号、焊缝等标注。再如:桥机主梁因跨度变化幅度大,某些零件的视图不是每次都能在图纸上体现其形状、尺寸,对此必须运用条件语句一一加以判断选择,以符合工程实际需要。

工程制图中规定,绘制厚度小于1mm的薄片时,可将该部分不按原比例而采用夸大画法。照此规定,编制参数化绘图程序时,将桥机结构中的板厚采用夸大画法。凡板厚≥8mm的认为是厚板,反之即认为是薄板。当厚板的实际绘制尺寸小于1 mm 时,程序将其夸大画为1mm;薄板则夸大画为0.8mm。

4 实例检验

表1 各种方法优化结构对比

为了验证文中所述理论及软件效果,对起重量32t、跨度25.5m的桥机进行实例测试,结果表明:

1)混合算法采用了全离散变量,保留了MDOD方法寻找全局最优值的能力和高效性,又集合了正交网格法的稳定性,可减轻钢结构重量16%,是一种多样性和收敛性都较好的新算法。文中所述各种方法与起重机设计规范的优化对比结果见表1。

2)参数化绘图系统不仅操作简便,而且绘图结果更加准确、快捷,可大大降低设计人员的劳动强度,提高图纸的标准化与规格化,切实提高CAD 技术的应用水平和档次。

5 结论

通过命令文件实现参数化绘图的方式,再配以优化设计模块是开发起重机CAD系统的较好方案。该研究不仅使工程技术人员可以方便、快捷地设计并出图,而且设计出的产品更加经济实用,能以其鲜明的个性化设计快速反应企业投标的需求,以软件系统载体为企业界提供现代化设计和绘图手段。鉴于全局优化的理论尚不很成熟,加上全局优化问题属于NP难题这一本质特征,因此,接下来还可以尝试引入并行化方法或者其他方法,对该系统作进一步深入研究,以使所开发桥机的CAD系统能更好地推动企业的科技进步。

[1] 陶元芳,卫良保.VC++命令文件式参数绘图类库[J].太原重型机械学院学报,2003,24(4):284-289.

[2] 陶书东.基于组合算法的机械结构优化技术研究[D].太原:太原科技大学,2006.

[3] 郑荣,庞茂,张亮有.模块化设计与参数化绘图[J].太原重型机械学院学报,2003,24(1):27-30.

[4] 刘永峰,秦建军.双梁门式起重机主梁结构计算机参数设计研究[J].机械设计与制造,2006(9):23-25.

[5] 田仙云.机械CAD软件参数化绘图程序编制的关键技术[J].机械工程与自动化,2009(3):172-173.

[6] 李学志.计算机辅助设计与绘图[M].北京:清华大学出版社,2003.

猜你喜欢

绘图程序图形
来自河流的你
“禾下乘凉图”绘图人
试论我国未决羁押程序的立法完善
垂涎三尺
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
分图形
找图形
创卫暗访程序有待改进
图形变变变