一個更改尺寸類型的LISP程序
(作者未知) 2009/7/19
AutoCAD制圖中經(jīng)常用到標(biāo)注尺寸,如果在標(biāo)注尺寸前,預(yù)先對不同的標(biāo)注尺寸樣式進(jìn)行命名,那么要修改尺寸標(biāo)注的尺寸線狀態(tài)、箭頭規(guī)格、尺寸界線形狀、文本位置和文本是一件很容易的事。
但是在實際制圖過程中,經(jīng)常發(fā)生預(yù)先沒有對標(biāo)注尺寸樣式進(jìn)行命名;或者,在某一個圖中命名了標(biāo)注尺寸樣式,但當(dāng)其圖形文件被其它圖(含有相同命名的標(biāo)注尺寸樣式)插入,并改變了比例時,圖形中的尺寸標(biāo)注會出現(xiàn)問題。同樣的問題也存在于一張圖中某些圖形進(jìn)行了比例縮放時。
此時如果把不恰當(dāng)?shù)某叽鐦?biāo)注一個個刪除,再重新標(biāo)注,顯然是一種不值得提倡的方法。實際上,用LISP語言編一個程序,就很容易解決這個問題。
程序的流程是:選擇要修改的尺寸標(biāo)注,程序自動采用過濾方法將尺寸標(biāo)注篩選出來,再選擇要修改到的尺寸標(biāo)注,程序讀取尺寸申請辯識名,將要修改的尺寸標(biāo)注關(guān)聯(lián)表中相應(yīng)項,逐個替換,再返回關(guān)聯(lián)表即可。
CHD.LSP(修改尺寸標(biāo)注形式)源程序如下:
;;;
(defunC:CHD(/ala2b1b2d1d2d3nindex)
(graphscr)
ROMPT"\n請選取尺寸來修改:")
(setqal(ssget’(0."dimension"))))
(PROMPT"\n請選取要修改到的尺寸:")
(setqa2(ENTSEL))
(setqn(SSLENGTHal))
(setqINDEX0)
(setqb2(entget(cara2)))
(setqd2(assoc3b2))
(repeatn
(setqb1(entget(ssnamealindex)))
(setqd1(assoc3b1))
(setqd3(substd2d1b1))
(entmodd3)
(setqindex(+index1))
)
(princ)
)
;;
程序的使用方法,在Command提示符下,鍵入(load"CHD"),或用下拉菜單中文件項應(yīng)用程序?qū)υ捒蚣虞d,再鍵入CHD,然后再根據(jù)屏幕上的中文提示,進(jìn)行選取,非常方便。
|