楊義強(qiáng)
摘 要:通過對AutoCAD的二次開發(fā)運(yùn)用探討學(xué)習(xí),掌握工程繪圖中復(fù)雜制圖的基本要領(lǐng),主要從思路分析過程著手進(jìn)行闡述。
關(guān)鍵詞:工程繪圖;AutoCAD;開發(fā)運(yùn)用;AutoLISP語言
DOI:10.16640/j.cnki.37-1222/t.2018.21.129
1 前言
隨著計算機(jī)運(yùn)用的普及,AutoCAD制圖在工程制圖中占有重要地位,已經(jīng)被全面運(yùn)用在工程施工中的各個環(huán)節(jié),代替了傳統(tǒng)的手工制圖。但是在實(shí)際使用過程中,AutoCAD制圖在繪制復(fù)雜曲線、曲面及三維造型方面就顯得有些力不從心了,比如在技術(shù)交底及幻燈片制作等過程中需要用到更加詳細(xì)的圖例,如線路中線的圓曲線、緩和曲線,隧道主洞與車行橫洞的曲面直觀圖,樁基螺紋鋼筋的三維造型等,本文就工程中常見的樁基鋼筋籠通過編寫AutoCAD的AutoLISP語言繪圖進(jìn)行簡單分析、介紹,以期交流。
2 AutoLISP語言簡介及Visual LISP工具
AutoLISP語言是嵌于AutoCAD內(nèi)部的計算機(jī)語言,它是AutoCAD開放式體系結(jié)構(gòu)的具體表現(xiàn),它是LISP語言和AutoCAD有機(jī)結(jié)合的產(chǎn)物。使用AutoLISP可直接調(diào)用幾乎全部的AutoCAD命令。AutoLISP語言既具備一般高級語言的基本結(jié)構(gòu)和功能,又具有一般高級語言所沒有的強(qiáng)大圖形處理功能,是當(dāng)今世界上CAD軟件中被廣泛采用的語言之一。AutoLISP是一種簡便易學(xué)的解釋性語言,具有很強(qiáng)的數(shù)據(jù)表處理功能,是開發(fā)AutoCAD的一種重要手段。
AutoCAD中大多數(shù)參數(shù)化程序都是針對二維平面圖編制的。實(shí)際上,立體圖同樣可以實(shí)現(xiàn)參數(shù)化繪圖,在AutoCAD中編制實(shí)體的立體圖參數(shù)化程序比其平面三視圖程序更簡單,而且立體圖生成后,可以很方便地生成三視圖、剖面圖和軸側(cè)圖等。
Visual LISP為AutoCAD軟件自帶的AutoLISP程序開發(fā)的可視化軟件工具,雖然Visual LISP是與Auto CAD軟件結(jié)合在一起的,但是它其實(shí)是在獨(dú)立于AutoCAD的另一個窗口運(yùn)行的。
3 AutoLISP語言在AutoCAD中的應(yīng)用
3.1 應(yīng)用思路
本文就工程制圖中常見的樁基鋼筋籠的三維視圖的編程進(jìn)行闡述,鋼筋籠制圖主要有兩個部分,一個是均勻布置的主筋,另一個是螺旋筋。主筋我們可以采用陣列的方式進(jìn)行繪制,螺旋筋繪制要相對復(fù)雜一些,但我們知道由于螺旋筋一般口徑及螺距固定,所以我們采用方程式x=acoswj,y=asinwj,z=vj,三個坐標(biāo)都與角度(自變量j)相關(guān),再采用直線模擬法繪制。
3.2 編制步驟
(1)啟動編程工具。首先啟動AutoCAD,在命令行里輸入Vlisp,然后回車,或者在啟動AutoCAD后,選擇AutoCAD菜單欄里的“工具”---“AutoLISP”---“Visual LISP編輯器”,啟動Visual LISP編程工具,啟動VisualLISP后選擇工具欄里的“新建文件”按鈕,打開了文本編輯器,這樣我們就可以在文本編輯器里面編寫我們的鋼筋籠繪圖代碼了。
(2)代碼的編制。在文本編輯器里面輸入以下代碼,我們將逐行解釋代碼意義。
(defun c:gjl (/ r w v j x0 x1 x2 y1 y2 p1 p2)
(setq r 2)
(setq w 5)
(setq v 0.5)
(setq j 0)
(while (<= j 20)
(setq h 0.01)
(setq x1 (* (cos(* w j)) r))
(setq y1 (* (sin(* w j)) r))
(setq z1 (* v j))
(setq j (+ j h))
(setq x2 (* (cos(* w j)) r))
(setq y2 (* (sin(* w j)) r))
(setq z2 (* v j))
(setq p1 (list x1 y1 z1))
(setq p2 (list x2 y2 z2))
(command "line" p1 p2 "")
)
(command "line" "2,0,0" "2,0,10" "")
(setq e1 (entlast))
(command "array" e1 "" "p" "0,0" "10" "" "y")
(command "view" "swiso")
) //到這里結(jié)束
注釋如下:
第一行:定義函數(shù)的名稱和變量類型,函數(shù)的名稱為gjl;第二行至第五行:給參數(shù)賦值r為半徑,w和v為函數(shù)的步進(jìn)值,可以根據(jù)實(shí)際情況進(jìn)行變動。j為自變量的起點(diǎn);第六行:循環(huán)函數(shù);第七行:自變量的步長;第八行至第十行:計算起點(diǎn)的X、Y、Z坐標(biāo)值;第十一行:設(shè)置自變量的變化規(guī)律,即為計算模擬直線終點(diǎn)的坐標(biāo)和下一循環(huán)的起點(diǎn)坐標(biāo)的自變量j賦值;第十二行至第十四行:計算終點(diǎn)的X、Y、Z坐標(biāo)值;第十五行:構(gòu)造螺旋線直線模擬中的直線段起點(diǎn)點(diǎn)對;第十六行:構(gòu)造螺旋線直線模擬中的直線段終點(diǎn)點(diǎn)對;第十七行:繪制直線模擬中的直線;第十八行:結(jié)束循環(huán),以上為繪制鋼筋籠螺旋線部分;第十九行:繪制鋼筋籠的主筋,以下為繪制主筋部分;第二十行:將上行繪制的主筋直線圖元賦值給變量e1;第二十一行:陣列剛才繪制的主筋直線;第二十二行:采用三維視圖察看效果;第二十三行:結(jié)束整個函數(shù)定義,注意最后一個括號不能少;最后保存該文件為gjl.lsp。
(3)程序的裝載、運(yùn)行。確保文本編輯器窗口是活動的,在Visual LISP界面中,選擇菜單欄的“工具”---“加載編輯器中的文字”,Visual LISP在控制臺窗口顯示程序已經(jīng)被裝載了,返回AutoCAD窗口,在命令行下輸入函數(shù)名稱“gjl”,在圖形窗口下就可以看到程序繪制圖形了,最終效果圖見圖1。
實(shí)際效果可以在AutoCAD中用“三維動態(tài)觀察器”進(jìn)行直觀的察看,根據(jù)工程運(yùn)用中的實(shí)際情況我們可以修改程序里面的相應(yīng)變量值,以達(dá)到和實(shí)際一樣的效果,至此我們完美的解決了在AutoCAD中鋼筋籠制圖的三維效果圖。
4 結(jié)論
AutoLISP語言強(qiáng)大的圖形數(shù)據(jù)處理和三維編程繪制方面的能力能給我們提供更寬廣的制圖空間,可以給我們提供更加精準(zhǔn)的立體數(shù)據(jù)。但是它畢竟是一門語言,在學(xué)習(xí)上需要我們熟練掌握各種制圖命令及函數(shù)的運(yùn)用,它可以作為AutoCAD工程制圖的二次開發(fā)運(yùn)用,與AutoCAD有機(jī)結(jié)合。
本程序在AutoCAD 2004及AutoCAD 2007中文版測試通過。
參考文獻(xiàn):
[1]舒飛.中文版AutoCAD 2004二次開發(fā)標(biāo)準(zhǔn)教程[M].上海科學(xué)普及出版社出版,2004.