国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

如何實(shí)現(xiàn)直線特征的自動標(biāo)注

2011-10-19 06:33莫玉梅甘文的
大眾科技 2011年8期
關(guān)鍵詞:垂直線肇慶子程序

莫玉梅 甘文的

(肇慶科技職業(yè)技術(shù)學(xué)院,廣東 肇慶 526114)

如何實(shí)現(xiàn)直線特征的自動標(biāo)注

莫玉梅 甘文的

(肇慶科技職業(yè)技術(shù)學(xué)院,廣東 肇慶 526114)

文章介紹在AutoCAD中如何實(shí)現(xiàn)直線特征的自動標(biāo)注。利用二次開發(fā)技術(shù)的手段, 運(yùn)用AutoLISP編程、開發(fā)新的命令,在AutoCAD實(shí)現(xiàn)直線特征的自動標(biāo)注,為使用AutoCAD的用戶提供更方便、更快捷、更高效、更準(zhǔn)確的命令,從而提高繪圖效率和準(zhǔn)確性。

AutoCAD;AutoLISP;二次開發(fā);自動標(biāo)注

1 前言

AutoCAD是目前微機(jī)上應(yīng)用最為廣泛的通用交互式計(jì)算機(jī)輔助繪圖與設(shè)計(jì)軟件之一。在模具設(shè)計(jì)與制造中,AutoCAD以其強(qiáng)大的圖形支撐能力和開放的結(jié)構(gòu)體系,成為CAD市場的不可缺少的軟件。而在AutoCAD出圖必須對圖素進(jìn)行標(biāo)注,標(biāo)注在畫圖的過程中占用了大量的時間,更是一個容易出錯的環(huán)節(jié)。因此,對標(biāo)注進(jìn)行開發(fā)是很有必要的,特別是在較為復(fù)雜的模具零件。

2 二次開發(fā)目標(biāo)

希望在VLISP集成環(huán)境下運(yùn)動AutoLISP語言設(shè)計(jì)開發(fā)一個新程序,使得AutoCAD產(chǎn)生一個具有新功能的命令。該命令的執(zhí)行是以0點(diǎn)(0,0)為基準(zhǔn),針對用戶所選擇的范圍內(nèi)的同一屬性(顏色、線型)的直線特征進(jìn)行自動快速標(biāo)注,標(biāo)注過程實(shí)現(xiàn)統(tǒng)一引線、統(tǒng)一文本,同時要避免標(biāo)注的重復(fù)、避免文本重疊。為了圖形的清晰,要求避免在圖形內(nèi)出現(xiàn)尺寸標(biāo)注。為了打印的美觀,還要求文本字高比例按圖形大小自動調(diào)節(jié)。標(biāo)注速度決定于計(jì)算機(jī)處理數(shù)據(jù)的快慢,如圖 1所示的所有直線的標(biāo),要在20秒內(nèi)便可完成。

圖1 直線的標(biāo)注

3 在AutoCAD中實(shí)現(xiàn)直線特征自動標(biāo)注的原理與實(shí)現(xiàn)

3.1 程序流程圖,如圖2所示

圖2 程序流程圖

3.2 程序的編寫

(1)程序名為:ad.lsp

(2)程序的編寫:

該程序相對復(fù)雜,運(yùn)用了很多函數(shù)和變量,運(yùn)用了AutoLISP大部分語法。此程序的特色就是運(yùn)用了子程序,使得程序簡化了許多。下面介紹一些程序編寫過程中的重點(diǎn),部分程序如下。

1)實(shí)現(xiàn)從判斷有否記錄到獲得plmax、plmin、pwmax、pwmim、exmax、exmin的過程

判斷紀(jì)錄有無,如有have=1*****

3)調(diào)用子程序

在此調(diào)用了四次子程序,子程序名分別為:ss1、dim0,每個程序都被調(diào)用了兩次。

ss1用來判斷在直線的選擇集的線是水平線還是垂直線,再分開兩種線放在不同的選擇集里;再對水平線或垂直線兩個選擇集進(jìn)行判斷是否有相同的x值或y值,有的情況存進(jìn)一個選擇集里,再對選擇集中相同的刪除,無的情況也存進(jìn)一個選擇集,再從兩個選擇集中獲得所有要標(biāo)注的點(diǎn)的x、y值的選擇集,并排序,

dim0用來對上述所得到的最后一個選擇集進(jìn)行標(biāo)注。

水平線和垂直都調(diào)用相同子程序,卻得到了不同的結(jié)果,是因?yàn)樵谡{(diào)用子程序時設(shè)置不同的變量。如以下程序,調(diào)用了相同的子程序,但其變量是不同的。

(ss1 linehor 1 2 0 1 car cadr) (dim0 car);

調(diào)用子程序ss1針對水平線,再調(diào)用子程序dim0進(jìn)行尺寸標(biāo)注

;***********************垂直線的子程序****************

(ss1 linever 2 1 1 0 cadr car) (dim0 cadr);調(diào)用子程序ss1針對垂直線,再調(diào)用子程序dim0進(jìn)行尺寸標(biāo)注

4)用于標(biāo)注的子程序

4小結(jié)

(1)本程序變量很多,占據(jù)很多的內(nèi)存,所以要在程序開始把它們都處理成“局部變量”。

(2)程序函數(shù)很多,編程時要注意充分運(yùn)用好。

(3)程序的語法結(jié)構(gòu)有些復(fù)雜,要注意每一個語法細(xì)節(jié)。

(4)靈活調(diào)用子程序,會使得程序更簡練。

(5)要注意讀文件和寫文件過程。

5 應(yīng)用實(shí)例

新命令程序完成之后,還要對程序進(jìn)行必要的調(diào)試,調(diào)試成功了,該命令的功能開發(fā)才算完畢,它使用則分為兩個步驟:

(1)加載

當(dāng)回到AutoCAD環(huán)境下,用Load函數(shù)裝載就可以執(zhí)行了。執(zhí)行時,如果程序中沒有defun函數(shù),系統(tǒng)便邊裝入邊運(yùn)行;若有defun定義的命令或函數(shù),裝載后只需在Command:(如果是中文AutoCAD,Command被漢化為了“命令:”)提示符下鍵入defun函數(shù)定義的命令或或函數(shù)名即可運(yùn)行相應(yīng)的命令或函數(shù)。

(2)使用

在加載完畢之后,直接輸入新命令的程序名既可使用。

[1] 孫江宏. AutoCAD 2000 應(yīng)用與開發(fā)技巧[M].北京:清華大學(xué)出版社.

[2] 孫江宏.Visual LISP R14-2000 編程與應(yīng)用[M].北京:清華大學(xué)出版社.

[3] 湯峻.AutoCAD 2000 高級應(yīng)用與 Visual LISP開發(fā)寶典[M].北京:人民郵電出版社.

[4] 郭劍峰.用Visual LISP開發(fā)AutoCAD 2000應(yīng)用程序[M].北京:人民郵電出版社.

[5] 李學(xué)志.Visual LISP程序設(shè)計(jì)(AutoCAD 2006)[M].北京:清華大學(xué)出版社.

[6] 用Visual LISP開發(fā)AutoCAD 2004應(yīng)用程序[M].北京:科學(xué)出版社.

How to the antomatic dimension of line feature

This article describes how to achieve a straight line features of AutoCAD in the automatic annotation,the use of secondary development of technical means, the use of AutoLISP programming, development of new command.to achieve a straight line features in AutoCAD automatically marked for the use of AutoCAD users a more convenient,Faster,more efficient, more accurate orders,thereby enhancing the efficiency and accuracy of the drawing.

AutoCAD AutoLISP Secondary development Auto-annotation

TP311.52

A

1008-1151(2011)08-0011-03

2011-06-08

莫玉梅(1982-),女(壯族),廣西南寧人,肇慶科技職業(yè)技術(shù)學(xué)院機(jī)械工程助教,廣東工業(yè)大學(xué)在讀碩士,研究方向?yàn)檐浖伍_發(fā)。

猜你喜歡
垂直線肇慶子程序
大地回春—肇慶十八年林豐俗作品特展
肇慶學(xué)院封
基于指數(shù)模型的R = P(Y <X <Z)統(tǒng)計(jì)推斷
怎樣走最近
機(jī)械制圖教學(xué)方法例談
漢米爾頓
TWAUDIO為2016國際馬術(shù)比賽進(jìn)行擴(kuò)聲
淺談子程序在數(shù)控車編程中的應(yīng)用
子程序在數(shù)控車加工槽中的應(yīng)用探索
西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
茂名市| 荔波县| 桦南县| 会昌县| 吉林省| 萨迦县| 临泉县| 自贡市| 运城市| 宁远县| 会东县| 洛南县| 太仆寺旗| 石门县| 青川县| 高陵县| 明星| 唐山市| 长治市| 嘉善县| 平和县| 双鸭山市| 明星| 梁平县| 兰溪市| 临夏市| 大竹县| 灵璧县| 贡觉县| 遂昌县| 黔东| 长沙市| 开阳县| 库伦旗| 南丰县| 大英县| 安庆市| 遂溪县| 广宁县| 河池市| 获嘉县|