AutoCAD二次開發中多行文本替換技術的研究
闡述了AutoCAD二次開發中常用多行文本的處理方法,通過比較,推薦使用多行文本替換技術;介紹了AutoCAD二次開發中兩種多行文本替換思路及其適用范圍;使用RegExP組件提取塊文件中有效多行文本內容,并實現文本替換;為技術人員開發專用CAD提供一些幫助。
AutoCAD繪圖功能完善、易學易用,是目前制造業領域應用最為廣泛的二維制圖軟件之一,而其開放的結構體系,即用戶可以方便的對其進行二次開發,則可以大大提高設計效率。多行文本在AutoCAD中有著普遍的應用,起著顯示信息的作用,如標題欄、明細欄等,是AutoCAD二次開發的重要內容之一。
目前,AutoCAD二次開發多行文本的常用方法一般為用戶手工確定一個合適插人點與文本框寬度,利用開發工具進行文本添加。但是對于不同參數的輸人,文本長度也會發生變化,插人點須做出相應的變動,以保證其在某一合適位置,如設計單位、圖紙名稱一般位于標題欄框格的中間位置。該種方法維護繁瑣、不靈活,因此,在二次開發時不推薦使用。二次開發中另一多行文本處理方法是文本替換,尤其對于系列化產品的開發,可以很方便的解決上述問題。該文將結合作者利用visualBasic與AutocAD二次開發的經驗,闡述如何實現多行文本替換的問題。
多行文本替換思路設計
AutoCAD二次開發常用方法一般有兩種,即利用開發工具直接開發和“典型圖”法。直接開發即利用開發工具編制繪圖程序,繪制點、線,添加文本;“典型圖”法即對于系列化產品,根據其結構相似性原理,制作一些圖樣作為坯圖塊,在此基礎上,對塊進行編程處理。系列化產品的標題欄、明細欄一般有固定格式,因而文本的開發屬于后者,所要替換的文本處于插人的塊文件中。
替換一個多行文本
多行文本替換的方法一般是通過遍歷塊中的每一個對象,如果是多行文本,則提取文本內容,使之與要替換的對象進行對比,如果兩者完全一致,則替換該多行文本,結束遍歷,退出循環,設計流程如圖1所示。該種方法代碼操作簡單,使用方便,易于維護,程序運行后,替換一個多行文本后即退出循環,節省時間,適于對象較少的替換。但是對于多個對象的替換,耗時較長,每次只能替換一個文本對象,效率低。
替換多個多行文本
替換多個多行文本對象的方法與替換一個多行文本對象類似。程序運行后,遍歷塊文件中所有對象,如果是多行文本則提取文本內容,使之與所有要替換的多行文本進行對比,如果與之其中一個相匹配,則進行替換工作。該種方法遍歷一次可以替換多個文本象,對于對象較多、所需替換對象較多的情況,能夠大大減少程序運行的時間,但須遍歷所有對象,有時所需時間較長。
圖1 替換一個多行文本流程圖
結束語
使用多行文本的替換方法,無須反復確定插人點,能夠有效的處理AutoCAD二次開發中的多行文本對象,尤其適用于“典型圖”方法的二次開發,使用方便、維護簡單,提高了工作效率。另外,根據本文提供的思路,同樣可以實現單行文本、標注的替換。