夏函
摘要:隨著科學(xué)技術(shù)的快速發(fā)展,計(jì)算機(jī)技術(shù)的應(yīng)用范圍越來越廣泛,而且它應(yīng)用于輔助設(shè)計(jì)工作當(dāng)中的年限相對較長,進(jìn)入到目前階段已經(jīng)發(fā)展得相當(dāng)成熟。AutoLISP語言是一種具有智能特性的程序設(shè)計(jì)途徑,將其嵌入到相關(guān)的軟件當(dāng)中,可以將整個(gè)系統(tǒng)進(jìn)行簡化并且提高設(shè)計(jì)的效果。利用計(jì)算機(jī)技術(shù)解決相關(guān)程序設(shè)計(jì)問題,可以更好地應(yīng)對各種困難。特別是在進(jìn)行編程平臺上開展的輔助設(shè)計(jì)工作時(shí),工程技術(shù)人員可以利用前沿獲取的數(shù)據(jù)基礎(chǔ)完成一系列的程序設(shè)計(jì)工作。對于整個(gè)機(jī)械行業(yè)的發(fā)展而言,計(jì)算機(jī)語言是極其重要的一種技術(shù),它利用于輔助設(shè)計(jì)工作當(dāng)中,也可以極大提高計(jì)算機(jī)輔助設(shè)計(jì)的效果。
關(guān)鍵詞: AutoLISP語言;計(jì)算機(jī)輔助設(shè)計(jì);應(yīng)用
中圖分類號: TP391. 72? ? ? 文獻(xiàn)標(biāo)識碼: A
文章編號:1009-3044(2021)34-0079-02
對于程序設(shè)計(jì)人員來說利用AutoLISP語言進(jìn)行計(jì)算機(jī)輔助設(shè)計(jì)操作,可以在一定程度上節(jié)省自己的工作時(shí)間以及工作。所以在CAD工作當(dāng)中變成語音已經(jīng)成為一種必不可少的工具。特別是在產(chǎn)品設(shè)計(jì)領(lǐng)域,計(jì)算機(jī)輔助設(shè)計(jì)的廣泛應(yīng)用,使得人們對AutoLISP語言的內(nèi)容越發(fā)重視。在進(jìn)行研究時(shí),以AutoLISP語言作為基礎(chǔ)分析,它在計(jì)算機(jī)輔助設(shè)計(jì)當(dāng)中的具體應(yīng)用實(shí)例,并以實(shí)例作為主要的研究方向,展示其強(qiáng)大且快速的處理能力以及廣闊的應(yīng)用前景。
1 AutoLISP語言和CAD簡介
AutoLISP語言是一種函數(shù)語言,它的研究起步時(shí)間相對較早,可以說是一門古老的函數(shù)語言,它的語言代碼就是將各種列表進(jìn)行排列和組合,每一種排列組合的方式都是一種獨(dú)特的數(shù)據(jù)和信息,每一個(gè)列表也都可以進(jìn)行數(shù)據(jù)儲存,同時(shí)還可以進(jìn)行函數(shù)儲存和符號儲存不同類型的儲存方式,代表的信息各不相同。這種方式是一種非常典型的弱類型計(jì)算機(jī)程序設(shè)計(jì)方式,它們有命令式語言當(dāng)中非常常見的變量定義以及賦值語句,它遞歸函數(shù)的實(shí)現(xiàn)需要以重復(fù)的運(yùn)算過程作為基礎(chǔ),并不是利用反復(fù)循環(huán)的模式。而且所有的運(yùn)算過程都是函數(shù)加參數(shù)的方式進(jìn)行。編程語言是20世紀(jì)60年代發(fā)展起來的一種高級程序設(shè)計(jì)方式,在同時(shí)代發(fā)展起來的其他計(jì)算機(jī)語言已經(jīng)被淘汰,它卻能頑強(qiáng)生存,其主要原因是它的應(yīng)用價(jià)值相對較高,就目前為止AutoLISP語言已經(jīng)壟斷,人工智能領(lǐng)域它屬于第1個(gè)函數(shù)式的高級程序設(shè)計(jì)方式。它與面向過程的C語言以及面向?qū)ο蟮腏ava結(jié)構(gòu)化語言具有較大的差異。
CAD語言是我們常說的計(jì)算機(jī)輔助設(shè)計(jì),它是指利用計(jì)算機(jī)以及相關(guān)的圖形設(shè)備進(jìn)行一系列的設(shè)計(jì)工作,對于程序設(shè)計(jì)人員而言,CAD的輔助具有較高的使用價(jià)值,可以極大提高設(shè)計(jì)的效果。隨著社會的快速發(fā)展,人們對計(jì)算機(jī)技術(shù)以及人工智能技術(shù)的要求越來越高,而且在對各種類型的設(shè)備元件,CPU進(jìn)行選擇時(shí),均會選擇一些性能較強(qiáng)的元件。但是存儲元件以及超強(qiáng)性能CPU的出現(xiàn),也需要有相關(guān)的計(jì)算機(jī)作為載體,這就要求計(jì)算機(jī)的圖形處理能力可達(dá)到人們的實(shí)際需求和標(biāo)準(zhǔn)。這就促使CAD技術(shù)普遍運(yùn)用于各行各業(yè)。直到20世紀(jì)80年代中期及后期CAD技術(shù)的發(fā)展已經(jīng)逐漸接近成熟。除此之外,CAD技術(shù)也開始朝著集成化,標(biāo)準(zhǔn)化和智能化的方向發(fā)展。
2 AutoLISP語言在CAD中的應(yīng)用研究
2.1 利用AutoLISP語言批量修改CAD圖形的屬性值
在編程CAD繪畫當(dāng)中,最常見的基本操作就是修改圖形元素當(dāng)中的一些常見屬性值。在AutoCAD當(dāng)中,程序設(shè)計(jì)人員可以通過對圖形進(jìn)行平移,旋轉(zhuǎn),縮放等操作達(dá)到坐標(biāo)系統(tǒng)互換的目的。在進(jìn)行互換操作期間,圖形點(diǎn)位的屬性值就會產(chǎn)生改變,這會對圖形進(jìn)度以及圖形的使用產(chǎn)生極大的影響,所以必須對這些屬性進(jìn)行改變。改正圖形的屬性也需要借助AutoLISP語言,它可以快速方便地達(dá)到改正的目的。程序設(shè)計(jì)人員可以直接在命令提示當(dāng)中輸入AutoLISP語言,或者從外部文件當(dāng)中加入AutoLISP語言代碼就可以達(dá)到修改的目的,而且此項(xiàng)修改的過程具有高效性和準(zhǔn)確性的特點(diǎn)。如果使用傳統(tǒng)常規(guī)的修改方法,有。程序設(shè)計(jì)人員需要花費(fèi)大量的時(shí)間以及精力,因?yàn)檫@種方式下進(jìn)行一系列的修改操作,必須經(jīng)歷大量機(jī)械重復(fù)的煩瑣操作。
2.2 利用AutoLISP語言繪制基本圖形
在CAD設(shè)計(jì)工作當(dāng)中,AutoLISP語言是一種使用價(jià)值較高的語言,特別是在近期二次開發(fā)工作時(shí)與其他的程序設(shè)計(jì)方法相比,它的使用效率非常高。程序設(shè)計(jì)人員在利用AutoLISP語言展開一系列設(shè)計(jì)操作時(shí),可以按照自己的情況添加一些自己常用的命令。因?yàn)橥ㄓ媚K當(dāng)中很有可能會不存在自己常用的命令,只是在其系統(tǒng)當(dāng)中添加自己常用的命令,之后就可以極大提高設(shè)計(jì)工作的效率。例如在CAD模塊當(dāng)中并沒有畫出一個(gè)螺釘?shù)拿睿藭r(shí)設(shè)計(jì)人員就可以在模塊里面輸入這個(gè)命令。這與其他的程序設(shè)計(jì)途徑相比具有較為明顯的特點(diǎn),我們可以通過AutoLISP語言編寫一個(gè)畫螺絲釘?shù)拿睿⑶疫M(jìn)行保存,在往后的畫圖工作當(dāng)中,只需要輸入以往已經(jīng)編輯好的命令以及螺絲釘?shù)幕緟?shù),就可以快速出現(xiàn)螺絲釘?shù)膱D形。
在進(jìn)行實(shí)際AutoLISP工作的過程當(dāng)中,程序設(shè)計(jì)人員需要經(jīng)歷4個(gè)步驟才可以達(dá)到相應(yīng)的圖形設(shè)計(jì)目的。如在使用AutoLISP語言編程,繪制“海港航標(biāo)燈樁”的方法。首先新建一個(gè)記事本文件,文件名改為HGDZ.lsp,保存該文件;其次,將下列代碼輸入到該文件中:
(defun C: wjx()
(setq pt0 (getpoint "\n 插入點(diǎn):"))
(setq sc (getint "\n 輸入比例因子:"))
(setq ptl (polar pt0 (angtof "90") (* sc 1.5)))
(setq pt2 (polar ptl (angtof "-108") (* sc 1.0898)))
(setq pt3 (polar pt2 pi (*sc: 1.0898)))
(setq pt4 (polar pt3 (angtof "-36") (* sc 1.0898)))
(setq pt5 (polar pt4 (angtof "-108") (* sc 1.0898)))
(setq pt6 (polar pt5 (angtof "36") (* sc1.0898)))
(setq pt7 (polar pt6 (angtof "-36") (* sc 1.0898)))
....
再次,在AutoCAD中選擇菜單欄“工具”“AutoLISP”→“加載應(yīng)用程序”菜單命令,彈出“加載/卸載應(yīng)用程序”對話框,找到步驟(1)創(chuàng)建的HGDZ.lsp,單擊“加載”按鈕,此時(shí)AutoCAD顯示已成功加載。
最后,待 AutoCAD加載上述代碼文件后,在命令行輸入:wjx,命令行提示插入點(diǎn):”,在此提示下輸入坐標(biāo)或單擊鼠標(biāo)左鍵在圖中拾取定位點(diǎn)坐標(biāo),按回車后命令行提示“輸入比例因子:”,輸入比例因子并回車,最后繪制如圖1所示“海港航標(biāo)燈樁”。
2.3利用AutoLISP語言進(jìn)行數(shù)據(jù)處理
在進(jìn)行數(shù)據(jù)測量操作時(shí),利用全站儀,GPS等先進(jìn)的電子測量儀器可以快速獲得測量的數(shù)據(jù)以及結(jié)果。但是電子測量儀器的出現(xiàn)也帶來了一系列的問題,例如如何保證快速獲取測量數(shù)據(jù)的基礎(chǔ)上,保證數(shù)據(jù)的準(zhǔn)確性。現(xiàn)在很多數(shù)據(jù)處理軟件都必須由特定的情況以及需求作為根本而進(jìn)行定制的,雖然他們能夠完成相應(yīng)的數(shù)據(jù)處理操作,但是如果面對大量的野外數(shù)據(jù),那么處理的效果往往不盡如人意。此時(shí)利用AutoLISP語言進(jìn)行數(shù)據(jù)處理,可以獲得較好的效果,它不需要專業(yè)的軟件開發(fā)團(tuán)隊(duì)進(jìn)行技術(shù)支持,而且還可以在一定程度上降低成本,具有功能強(qiáng)大,簡單易學(xué)的特點(diǎn)。AutoLISP語言的特點(diǎn)在于它能夠更好地進(jìn)行人機(jī)對話的操作。
2.4可以利用AutoLISP語言進(jìn)行二次開發(fā)
與其他類型的程序相比,AutoLISP語言具有一個(gè)非常顯著的特點(diǎn),也就是它的一個(gè)LISP程序就可以以把另一個(gè)LISP程序作為數(shù)據(jù)進(jìn)行直接處理,所以在利用AutoLISP語言進(jìn)行二次開發(fā)的過程當(dāng)中,這個(gè)特點(diǎn)就可以整體提高數(shù)據(jù)處理和數(shù)據(jù)開發(fā)的效果,特別是在進(jìn)行CAD開發(fā)工作時(shí),可以嵌套多個(gè)LISP程序,這可以在一定程度上將編程涉及的思路進(jìn)行簡化。對于程序設(shè)計(jì)的工作人員來說,在進(jìn)行日常的工程技術(shù)工作期間,二次開發(fā)工作的難度相對較高,但是利用AutoLISP語言可以在一定程度上減少代碼程序的相關(guān)問題,并整體提高它的可讀性,甚至為后期的維護(hù)和修改工作都可以提供很多的便利條件,與此同時(shí),在利用CAD進(jìn)行繪圖操作時(shí),可以將整體的繪圖效率進(jìn)行提升。
程序設(shè)計(jì)人員在對一些大比例的地圖進(jìn)行繪制工作時(shí),需要對大量的數(shù)據(jù)和信息進(jìn)行分析這些龐大的數(shù)據(jù)量,如果逐個(gè)進(jìn)行分析,那么其工作難度非常大。程序員可以將這些龐大的數(shù)據(jù)分為幾十個(gè)大層與幾百個(gè)小層,要想快速打開這些龐大的數(shù)據(jù),就需要以相關(guān)的程序批量處理作為基礎(chǔ)。目前在AutoCAD平臺下進(jìn)行數(shù)據(jù)編輯以及數(shù)據(jù)整理工作,并且使用AutoLISP語言進(jìn)行二次開發(fā),可以很好地簡化一些操作的步驟以及減掉一些重復(fù)的勞動,甚至可以整體提升數(shù)據(jù)處理的準(zhǔn)確性,是整個(gè)程序開發(fā)工作當(dāng)中的有力工具。
3 結(jié)束語
一直以來程序設(shè)計(jì)人員在工程技術(shù)工作當(dāng)中都產(chǎn)生著非常重要的作用,對于廣大工程技術(shù)人員而言,他們的日常生活工作就是開展一系列的編程設(shè)計(jì)工作,而在危機(jī)的基礎(chǔ)上進(jìn)行編程設(shè)計(jì)需要熟練掌握CAD程序設(shè)計(jì)的基本方法,這是每一個(gè)工程技術(shù)人員需具備的職業(yè)基礎(chǔ)。特別是在日常工作期間,需要利用業(yè)余時(shí)間熟練學(xué)習(xí) CAD程序設(shè)計(jì)的內(nèi)容,特別是最新的方法,這具有極其重要的意義。在CAD二次開發(fā)工作當(dāng)中,利用AutoLISP語言進(jìn)行一系列的程序設(shè)計(jì)操作,以及計(jì)算工作可以設(shè)計(jì)出具有人際交互的程序,而這一程序可以更加輕松地完成重復(fù)的設(shè)計(jì)計(jì)算工作和大量煩瑣的校核工作量。
參考文獻(xiàn):
[1] 李子錚,李超,張躍.AutoLISP實(shí)例教程[M].北京:機(jī)械工業(yè)出版社,2007.
[2] 陳尚林.利用AutoLISP實(shí)現(xiàn)CAD圖形屬性修改[J].科技資訊,2010,8(28):22,24.
[3] 蔡真印,陳秋成,楊闖AutoLISP技術(shù)在礦圖繪制中的應(yīng)用[C]//第18屆川魯冀晉瓊粵遼七省礦業(yè)學(xué)術(shù)交流會,2012:47-48.
【通聯(lián)編輯:光文玲】