梁 杰
(新疆輕工職業技術學院,新疆烏魯木齊830021)
AutoLISP是運行在AutoCAD環境中的一種嵌入式編程語言,完全針對AutoCAD進行編程,直接訪問和修改AutoCAD當前的圖形數據庫,為AutoCAD增加新命令或修改AutoCAD,實現參數化繪圖程序設計(參數化程序設計是關于一些特殊對象怎樣構成的基本規則集合)。
筆者在制作力學課件時,發現常用桿件的實物圖、計算簡圖和受力圖貌似簡單,但使用AutoCAD繪圖費時費力,因此對常用桿件實物圖、計算簡圖和受力圖進行了二次開發。
本設計分為圖形形狀特征、圖元庫的編程和嵌入標準菜單三部分組成。
常見桿件的實物圖、計算簡圖、受力圖的形狀特征的確定,是采用分析與綜合的方法,即先將這些常見圖形結構分解成若干個基本圖形元素——圖元,需要繪制的圖形可以通過圖元的組合而獲得。圖1是常見桿件實物圖、計算簡圖和受力圖的形狀特征。
圖1 常見桿件實物圖、計算簡圖和受力圖的形狀特征
對于上述結構固定并完全依賴于尺寸參數的不同而改變大小的基本常用圖形——圖元,采用參數化的繪圖方法,是最合理的。即先將圖形結構分解成圖元,再利用參數化編程方法把每個圖元編制成程序,編寫程序的過程,也就是將圖形的結構信息提取并融入程序的過程。通過對這些參數圖形元素的拼裝,就可以根據所繪圖形的不同尺寸要求,靈活給定尺寸參數值,快速且準確地組合出所需要的各類桿件實物圖、計算簡圖、受力圖。
參數化圖素拼裝是一種參數式與交互式相結合的繪圖方式,雖然程序的編寫會耗用較長時間,但這是一個一勞永逸的工作,適應性較大。
如下所示的均布載荷的參數化繪圖為例,構思說明如下:
(1)由于所繪制的圖元是添加在其他主體圖形上的,因此,所有程序的第一個參數為基準點。
圖形基準點選擇是否合理,決定了繪圖效率的高低,確定一個合理的基準點,往往可使圖形的繪制準確、迅速。
(2)為了便于在不同方向上繪制圖形元素,程序中的第二個參數為旋轉角度,以基準點為旋轉中心,以圖元的軸線與水平線的夾角為旋轉角度,逆時針為正,順時針為負。
(3)第3個參數是載荷個數n:考慮到類似均布載荷的載荷數目經常變化,新增加了參數——載荷個數n。在本程序設計中,采用了repeat語句和循環語句,并令n為循環次數,使程序更完善。而一般程序中,圖形通常采用正、余旋的線性組合來實現旋轉。圖2是均布載荷。
圖2 均布載荷
例:(setq x(+(-(*(nth i plx)(cos ang))(*(nth i ply)(sin ang)))(car pt0)))
(setq y(+(+(*(nth i plx)(sin ang))(*(nth i ply)(cos ang)))(cadr pt0)))
均布載荷程序如下:
在調用各圖元程序時,需要在命令行上鍵入(load”d:/shltu/jb”),就要求用戶在使用時記住這個命令,給用戶的使用帶來不便,降低了使用效率。
為了方便起見,需要將調用命令加入AutoCAD的標準菜單內,使用時只要點擊相應的下拉菜單,點擊下拉菜單的文字提示,就可以畫出相應的圖形(圖3是下拉菜單)。
我們也可以將參數化繪圖圖元制成圖標按鈕,并組合成浮動工具條,點擊圖標,就可以進行繪圖,非常直觀方便(圖4是浮動工具條)。
圖3 下拉菜單
圖4 浮動工具條
另外,我們也可以通過選擇實物圖、計算簡圖、受力圖的特征對話框來繪圖。圖5是實物圖、計算簡圖、受力圖的特征對話框。
圖6是應用程序所畫的示意圖、受力圖。
圖5 實物圖、計算簡圖、受力圖的特征對話框
圖6 應用程序所畫的示意圖、受力圖
通過工程力學教學和課件制作,證明了本程序操作簡單,應用可靠,效率高,教學效果令人滿意。
[1]江思敏,鄭 巍.AutoCAD R14實例詳解[M].北京:電子工業出版社,1999.
[2]賀 偉,孫 波,張 淳.計算機繪圖[M].北京:機械工業出版社,2000.
[3]孫江宏,丁立偉,米 潔.VisualLISP R14-2000編程與應用[M].北京:科學出版社,1999.
[4]肖 剛,李學志.機械CAD原理及實踐[M].北京:清華大學出版社,1999.
[5]張定華.工程力學[M].北京:高等教育出版社,2000.