AutoCAD二次开发中多行文本替换技术的研究

2014-12-07 田堂存 青岛港湾职业技术学院轮机工程系

  阐述了AutoCAD二次开发中常用多行文本的处理方法,通过比较,推荐使用多行文本替换技术;介绍了AutoCAD二次开发中两种多行文本替换思路及其适用范围;使用RegExP组件提取块文件中有效多行文本内容,并实现文本替换;为技术人员开发专用CAD提供一些帮助。

  AutoCAD绘图功能完善、易学易用,是目前制造业领域应用最为广泛的二维制图软件之一,而其开放的结构体系,即用户可以方便的对其进行二次开发,则可以大大提高设计效率。多行文本在AutoCAD中有着普遍的应用,起着显示信息的作用,如标题栏、明细栏等,是AutoCAD二次开发的重要内容之一。

  目前,AutoCAD二次开发多行文本的常用方法一般为用户手工确定一个合适插人点与文本框宽度,利用开发工具进行文本添加。但是对于不同参数的输人,文本长度也会发生变化,插人点须做出相应的变动,以保证其在某一合适位置,如设计单位、图纸名称一般位于标题栏框格的中间位置。该种方法维护繁琐、不灵活,因此,在二次开发时不推荐使用。二次开发中另一多行文本处理方法是文本替换,尤其对于系列化产品的开发,可以很方便的解决上述问题。该文将结合作者利用visualBasic与AutocAD二次开发的经验,阐述如何实现多行文本替换的问题。

  多行文本替换思路设计

  AutoCAD二次开发常用方法一般有两种,即利用开发工具直接开发和“典型图”法。直接开发即利用开发工具编制绘图程序,绘制点、线,添加文本;“典型图”法即对于系列化产品,根据其结构相似性原理,制作一些图样作为坯图块,在此基础上,对块进行编程处理。系列化产品的标题栏、明细栏一般有固定格式,因而文本的开发属于后者,所要替换的文本处于插人的块文件中。

  替换一个多行文本

  多行文本替换的方法一般是通过遍历块中的每一个对象,如果是多行文本,则提取文本内容,使之与要替换的对象进行对比,如果两者完全一致,则替换该多行文本,结束遍历,退出循环,设计流程如图1所示。该种方法代码操作简单,使用方便,易于维护,程序运行后,替换一个多行文本后即退出循环,节省时间,适于对象较少的替换。但是对于多个对象的替换,耗时较长,每次只能替换一个文本对象,效率低。

  替换多个多行文本

  替换多个多行文本对象的方法与替换一个多行文本对象类似。程序运行后,遍历块文件中所有对象,如果是多行文本则提取文本内容,使之与所有要替换的多行文本进行对比,如果与之其中一个相匹配,则进行替换工作。该种方法遍历一次可以替换多个文本象,对于对象较多、所需替换对象较多的情况,能够大大减少程序运行的时间,但须遍历所有对象,有时所需时间较长。

替换一个多行文本流程图

图1 替换一个多行文本流程图

  结束语

  使用多行文本的替换方法,无须反复确定插人点,能够有效的处理AutoCAD二次开发中的多行文本对象,尤其适用于“典型图”方法的二次开发,使用方便、维护简单,提高了工作效率。另外,根据本文提供的思路,同样可以实现单行文本、标注的替换。