AutoCAD二次開發(fā)中多行文本替換技術(shù)的研究

2014-12-07 田堂存 青島港灣職業(yè)技術(shù)學(xué)院輪機(jī)工程系

  闡述了AutoCAD二次開發(fā)中常用多行文本的處理方法,通過(guò)比較,推薦使用多行文本替換技術(shù);介紹了AutoCAD二次開發(fā)中兩種多行文本替換思路及其適用范圍;使用RegExP組件提取塊文件中有效多行文本內(nèi)容,并實(shí)現(xiàn)文本替換;為技術(shù)人員開發(fā)專用CAD提供一些幫助。

  AutoCAD繪圖功能完善、易學(xué)易用,是目前制造業(yè)領(lǐng)域應(yīng)用最為廣泛的二維制圖軟件之一,而其開放的結(jié)構(gòu)體系,即用戶可以方便的對(duì)其進(jìn)行二次開發(fā),則可以大大提高設(shè)計(jì)效率。多行文本在AutoCAD中有著普遍的應(yīng)用,起著顯示信息的作用,如標(biāo)題欄、明細(xì)欄等,是AutoCAD二次開發(fā)的重要內(nèi)容之一。

  目前,AutoCAD二次開發(fā)多行文本的常用方法一般為用戶手工確定一個(gè)合適插人點(diǎn)與文本框?qū)挾,利用開發(fā)工具進(jìn)行文本添加。但是對(duì)于不同參數(shù)的輸人,文本長(zhǎng)度也會(huì)發(fā)生變化,插人點(diǎn)須做出相應(yīng)的變動(dòng),以保證其在某一合適位置,如設(shè)計(jì)單位、圖紙名稱一般位于標(biāo)題欄框格的中間位置。該種方法維護(hù)繁瑣、不靈活,因此,在二次開發(fā)時(shí)不推薦使用。二次開發(fā)中另一多行文本處理方法是文本替換,尤其對(duì)于系列化產(chǎn)品的開發(fā),可以很方便的解決上述問(wèn)題。該文將結(jié)合作者利用visualBasic與AutocAD二次開發(fā)的經(jīng)驗(yàn),闡述如何實(shí)現(xiàn)多行文本替換的問(wèn)題。

  多行文本替換思路設(shè)計(jì)

  AutoCAD二次開發(fā)常用方法一般有兩種,即利用開發(fā)工具直接開發(fā)和“典型圖”法。直接開發(fā)即利用開發(fā)工具編制繪圖程序,繪制點(diǎn)、線,添加文本;“典型圖”法即對(duì)于系列化產(chǎn)品,根據(jù)其結(jié)構(gòu)相似性原理,制作一些圖樣作為坯圖塊,在此基礎(chǔ)上,對(duì)塊進(jìn)行編程處理。系列化產(chǎn)品的標(biāo)題欄、明細(xì)欄一般有固定格式,因而文本的開發(fā)屬于后者,所要替換的文本處于插人的塊文件中。

  替換一個(gè)多行文本

  多行文本替換的方法一般是通過(guò)遍歷塊中的每一個(gè)對(duì)象,如果是多行文本,則提取文本內(nèi)容,使之與要替換的對(duì)象進(jìn)行對(duì)比,如果兩者完全一致,則替換該多行文本,結(jié)束遍歷,退出循環(huán),設(shè)計(jì)流程如圖1所示。該種方法代碼操作簡(jiǎn)單,使用方便,易于維護(hù),程序運(yùn)行后,替換一個(gè)多行文本后即退出循環(huán),節(jié)省時(shí)間,適于對(duì)象較少的替換。但是對(duì)于多個(gè)對(duì)象的替換,耗時(shí)較長(zhǎng),每次只能替換一個(gè)文本對(duì)象,效率低。

  替換多個(gè)多行文本

  替換多個(gè)多行文本對(duì)象的方法與替換一個(gè)多行文本對(duì)象類似。程序運(yùn)行后,遍歷塊文件中所有對(duì)象,如果是多行文本則提取文本內(nèi)容,使之與所有要替換的多行文本進(jìn)行對(duì)比,如果與之其中一個(gè)相匹配,則進(jìn)行替換工作。該種方法遍歷一次可以替換多個(gè)文本象,對(duì)于對(duì)象較多、所需替換對(duì)象較多的情況,能夠大大減少程序運(yùn)行的時(shí)間,但須遍歷所有對(duì)象,有時(shí)所需時(shí)間較長(zhǎng)。

替換一個(gè)多行文本流程圖

圖1 替換一個(gè)多行文本流程圖

  結(jié)束語(yǔ)

  使用多行文本的替換方法,無(wú)須反復(fù)確定插人點(diǎn),能夠有效的處理AutoCAD二次開發(fā)中的多行文本對(duì)象,尤其適用于“典型圖”方法的二次開發(fā),使用方便、維護(hù)簡(jiǎn)單,提高了工作效率。另外,根據(jù)本文提供的思路,同樣可以實(shí)現(xiàn)單行文本、標(biāo)注的替換。