趙靜雅 徐江紅 劉涌
摘要:論文較為詳細(xì)論述了基于VisualLISP技術(shù)的三維實體造型研究的意義、思路及過程方法等內(nèi)容,具有較強的實用性。
關(guān)鍵詞:VisualLISP,三維造型,AutoCAD
1緒論
1.1課題背景
計算機的飛速發(fā)展已經(jīng)使得人們已經(jīng)不再滿足于表處理語言LISP的能力,在此基礎(chǔ)上,便開發(fā)出了AutoLisp程序。但早期的Auto Lisp程序的編輯需要先在文本編輯工具里面進行編輯處理,然后在CAD中進行調(diào)試,太過于繁瑣。于是,便有了Auto LISP的衍生物,Visual LISP的誕生。Visual Lisp是Auto Lisp的優(yōu)化版,是對于Auto Lisp的延展。它具有十分強大的圖形處理能力,可同時實現(xiàn)二維平面圖和三維實體造型的設(shè)計與改良。
1.2研究意義
隨著科技的發(fā)展,三維實體造型技術(shù)已經(jīng)逐漸成為了當(dāng)今CAD技術(shù)的主流核心,它不但彌補了二維圖形設(shè)計的抽象性,還增加了許多二維設(shè)計所沒有的能力。二維技術(shù)雖然可以大大提高作圖的效率,但基本上只能用于進行平面投影,作為描述物體的工具。不同于二維設(shè)計,三維造型設(shè)計技術(shù)則是利用計算機提供的三維空間,直接在三維空間內(nèi)進行三維物體模型的設(shè)計與制作,從而更加精確地表達(dá)出自己設(shè)計的想法及意圖。
相對二維技術(shù)而言,三維空間對物體有著更加詳細(xì)的描述和解析,比之傳統(tǒng)的二維技術(shù)更具有真實準(zhǔn)確性。以人最直觀的角度來講,人們腦海里所構(gòu)建的物體圖形就是三維的實體造型,因此,直接用三維實體的形式來表達(dá)所設(shè)計的造型是最簡單而又有效的方式。因為三維模型可以通過多個角度來觀察物體,所以,三維模型較之二維更能夠最大程度的還原物體的真實性。因此,三維模型可生形成更加接近實體的圖形。更加方便找到設(shè)計的不足之處并對之進行改良;可直接作為對象成型。因此,三維造型的設(shè)計是完成設(shè)計與制造一體化最為基本的根底。
采用VisualLisp技術(shù),更是進一步的優(yōu)化了AutoCAD的二次開發(fā)能力。使得Visual Lisp程序的運行更快于Auto CAD。由于Visual Lisp的編譯器直接將Lisp的源程序全部編譯于ARX里,因此Lisp的程序通過AutoCAD的接口(0bjeetARxl運行時,不但比Auto Lisp的加載運行快3~10倍,將每次打開新圖所調(diào)用的時間更是直接節(jié)省了下來。
因為VisualLisp采用的是ObjectARX的接口平臺,可以將AutoCAD和其他的應(yīng)用程序如ActiveX、Windows以及Office等容納到AutoLisp的源程序里面。不但改良了兩者模型之間的接口特性,而且提升了應(yīng)用程序的適用性以及靈活性。使用VisualLisp可以極大的避免Lisp程序調(diào)試過程的繁鎖,間接提升了編程的速度,它不僅提供了更加優(yōu)化強大編程工具給編程的工作人員,而且使得每一個AutoCAD使用者都使用上了更加簡單便捷的Lisp工具。
1.3發(fā)展趨勢
技術(shù)發(fā)展的前提是市場具有需求。近幾年,CAD的市場的競爭,十分的激烈。三維設(shè)計已經(jīng)成為了大部分行業(yè)中最不可或缺的部分。因為三維實體造型技術(shù)廣泛應(yīng)用于建筑、機械方面??梢赃M行建筑室內(nèi)外三維效果的預(yù)覽。所以,設(shè)計者可以通過三維設(shè)計軟件將腦海中構(gòu)建出來的幾何模型,更加形象地映射在電腦的屏幕之上。對于設(shè)計人員來講,三維造型更能夠直白地體現(xiàn)出來設(shè)計人員的設(shè)計意圖,由于三維實體造型可以直接表達(dá)出產(chǎn)品的重要信息,因此,可以將設(shè)計過程中各個重要的流程信息結(jié)合在一起,對于建模有著很大的幫助。由于CAD技術(shù)的飛速發(fā)展,三維實體造型在軟件和硬件上也都有了進一步的改善。同時也使得各個行業(yè)有關(guān)三維實體造型的產(chǎn)品圖形的構(gòu)建、產(chǎn)品的制造以及發(fā)展都有了很大的飛躍,成為了現(xiàn)代產(chǎn)品制造業(yè)的最佳選擇。
2基于Visual Lisp技術(shù)的三維實體造型的可行性
AutoLisp是一種圖形編輯用于計算機輔助設(shè)計以及制造的編程語言。AutoLisp不但語法簡潔程序控制結(jié)構(gòu)靈活,而且擁有一般高級語言的基本結(jié)構(gòu)和功能。而VisualLISP是對Au—toLISP的一次重大改進,同時增強了AutoCAD的二次開發(fā)能力。也可方便地用AutoLISP語言進行程序開發(fā)中的編寫程序代碼、調(diào)試程序等操作。
三維實體造型是對物體進行完整的幾何描述,其基本思想是將一些形狀規(guī)則簡單的物體經(jīng)過并、交、差等集合運算組成需要的復(fù)雜的物體,可以隨時提取所需要的信息。這種用三維體進行拼合的實體造型技術(shù)有很多優(yōu)點,可以最少的命令實現(xiàn),避免人工干預(yù),完成更多的形體修改,并且拓?fù)浣Y(jié)構(gòu)十分嚴(yán)密且?guī)缀涡蜗笾庇^,計算機自動處理程度最高,并且可以即時表達(dá)出物體的最真實圖形特征。另外,根據(jù)物體的三維立體圖形可以準(zhǔn)確求出物體的動力學(xué)特性值,可以對物體進行有限元分析,實現(xiàn)此工作過程中的圖形運行的軌跡。
Visual LISP具有強大的三維實體造型功能,在AutoCAD中,可以調(diào)用所需的常用函數(shù)(數(shù)學(xué)計算、幾何、查詢、字符串、符號操作等);補充函數(shù)(對象處理、符號表和詞典處理、內(nèi)存管理、錯誤處理等);擴展函數(shù)f特性處理、曲線測量、Active x數(shù)據(jù)轉(zhuǎn)換、Active x集合操作、Active x方法調(diào)用等)以及反應(yīng)器函數(shù)并通過編程的方式來保證所需的圖形對象和非圖形對象數(shù)據(jù)的創(chuàng)建、修改和刪除。保證對物體進行完整的幾何描述,更加直觀地把所需物體的樣子在計算機上表達(dá)出來,從而達(dá)到三維實體造型的效果。
3運用VisualLISP編程對AutoCAD實現(xiàn)二次開發(fā)的過程
當(dāng)前在Windows系統(tǒng)中應(yīng)用最為廣泛且使用人數(shù)最多的CAD軟件就是AutoCAD。但是它僅僅提供了CAD的最為基礎(chǔ)的功能,如若想要實現(xiàn)更為具體的設(shè)計項目,就必須根據(jù)所了解到的數(shù)據(jù)一點點繪制出所需要的圖形,但是當(dāng)所有的設(shè)計全部完成之后進行修改時,就必須要對原來所有的工作進行重新完成,因而導(dǎo)致浪費了大量不必要的時間。但是如果使用AutoCAD的開發(fā)系統(tǒng)對AutoCAD進行二次開發(fā)的話,我們就可以將所有做過的工作全部通過程序編寫出來。在需要時可以直接對這個程序命令進行調(diào)用,然后就直接可以自動完成之前所做過圖形的繪制。從而大大縮短了圖形設(shè)計的時間。更為方便的是還可以通過編寫某些固定的程序來直接制作完成所需的固定模塊。因此,只有對AutoCAD的開發(fā)系統(tǒng)進行二次開發(fā),才能讓AutoCAD真正適用于大部分模具、機械等領(lǐng)域,滿足市場所需。
對于AutoCAD的開發(fā)有多種方式,其中,AutoLisp是對Au.toCAD進行二次開發(fā)最早的API(Application Programming Interface,應(yīng)用程序編程接口),大多數(shù)用來完成重復(fù)性的任務(wù),根據(jù)客戶需求進行開發(fā)和編制AutoCAD菜單,并且可以通過十分簡便的方式來為AutoCAD進行命令的擴充。由于Auto Lisp的語法簡單易上手,截止到目前為止,還是存在著較多有需求的開發(fā)用戶。因此,Autodesk公司再次提供了一種新的相關(guān)的編程工具:Visual Lisp。Visual Lisp是一種面向?qū)ο蟮男碌拈_發(fā)環(huán)境,是AutoLISP的改良、完善的版本。VisualLisp存在于AutoCAD的集成環(huán)境之中。Visual Lisp是一種不完全編譯的API形式的表現(xiàn)。由于編譯的過程提升了運行速度和適用性的同時又與AutoLisp完全兼容,并且提供了AutoLisp的全部功能。同時,它也能夠訪問多文檔環(huán)境下的AutoCAD,以及對COM/ActiveX技術(shù)的支持。VisualLisp(IDE)同時提供了完整的編輯環(huán)境,使得用戶不但可以調(diào)試代碼、括號匹配、進行源碼語法的檢查、函數(shù)提示等工具,而且方便構(gòu)建并對Lisp程序進行調(diào)試。由于Lisp集成于AutoCAD內(nèi)部環(huán)境中,并且可以通過AutoCAD的不斷升級使得兼容性更加優(yōu)良,這也使得Lisp更加受到廣大編程愛好者的歡迎。
在運用Visual LISP對Auto CAD進行二次開發(fā)時,首先要啟動AutoCAD選擇“工具”-“Auto LISP”-“Visual LISP編輯器”選項。進入“Visual LISP編輯器”窗口,在文件一新建中打開“程序編輯窗口”,編寫程序代碼。然后在“程序代碼編輯”窗口輸入所需代碼。加載和調(diào)試Auto LISP程序,單擊“加載活動編輯窗口”按鈕,對剛剛編制的代碼進行運行。加載成功后,返回Auto CAD界面,在命令行輸入Lisp,接著自動運行程序Lisp,若與預(yù)期效果一樣,說明程序編制沒有邏輯錯誤。如果存在邏輯錯誤還需返回進行調(diào)試。至此就完成了簡單的CAD二次開發(fā)的全過程,并將程序保存,以便下次加載使用。
4復(fù)雜形體的三維造型方法
復(fù)雜形體的三維造型多用于建筑方面,零件的制作以及圖形處理視圖變換。是集成機械學(xué)、幾何學(xué)、材料學(xué)、機械制圖和機構(gòu)學(xué)等于一身的造型設(shè)計。簡單三維實體造型系統(tǒng)所構(gòu)建出來的幾何圖形都有固定的尺寸和形狀,復(fù)雜形體的三維造型是以實體造型為基礎(chǔ),是三維實體造型技術(shù)的延展。以參數(shù)化特征造型為例,它同時包含了參數(shù)化造型以及特征造型的所有特性,所有數(shù)據(jù)均可隨時修改,不僅具有幾何信息,還記錄了三維實體造型形成的過程,是真正意義上的產(chǎn)品信息模型。以參數(shù)化設(shè)計為基礎(chǔ),基本思路大體有三種:造型樹法、邊界表示法(Brep)以及掃描表示法.下面,簡單的介紹三種基本思路的特點。
造型樹法多用于建模中,例如樹木形態(tài)結(jié)構(gòu)的建模方法分析。關(guān)鍵之處就在于樹干,它們是構(gòu)建3D模型的重要因素。首先,要對所得到的二維圖像進行全面的分析和處理,從二維圖像上把細(xì)小的內(nèi)容和架構(gòu)以樹干的形式來分割出來。雖然得到的圖形集成度很高,但這種方法過于繁瑣,而且得到的模型精確性不強。
邊界表示法全稱fBoundary Representation)。用來表達(dá)三維圖形物體移動和幾何壓縮。這種表示方法要求每個圖形的信息都要通過三張表來表示出來。分別是頂點表、邊表以及面表。通過這種分開的方式來表達(dá)三維圖形,可以很有效地節(jié)省存儲空間,其次是圖形的顯示更加形象具體化。但該方法也有一定的缺點,首先它所存儲的數(shù)據(jù)量很大,結(jié)構(gòu)也很繁瑣;其次,對圖形整體的描述能力很差,無法進行三維實體造型形成的過程記錄表示。
至于掃描表示法,則是將空間上的某一個點、邊、面沿著某一個特定方向進行掃描,采用所掃描到的軌跡來表示這個三維物體。該方法最重要的就是需要給予所掃描的物體和其運動軌跡以定義。其掃描方法大多廣義、旋轉(zhuǎn)、以及平移掃描三種方式。
基于這三種表示方法的核心就是在設(shè)計思路中必須要使用到參數(shù)化設(shè)計。所謂參數(shù)化設(shè)計即是指能夠隨意拆卸、構(gòu)建出所需要的三維立體實物。使用尺寸和拓?fù)鋪矶x改變幾何模型,同時優(yōu)化CAD系統(tǒng),使CAD擁有了自動繪圖和交叉繪圖的能力。
5結(jié)論
就當(dāng)今社會而言,三維實體造型所涉及的行業(yè)只會越來越多,極盡簡化了產(chǎn)品的設(shè)計以及其它相關(guān)設(shè)計,Visual LISP技術(shù)的運用確保了產(chǎn)品模型的精簡合理化,使得CAD技術(shù)也有了飛躍式發(fā)展。既方便了設(shè)計者,也方便了生產(chǎn)者,使得設(shè)計生產(chǎn)效率有了極大的提高。