|
[摘 要]:本文通過對服裝設計中使用AUTOCAD狀況觀察,了解到一些問題,提出了相應的解決方法,即建議開發(fā)服裝制圖插件,并同時在文中給出了相應的實例程序。 [關(guān)鍵詞]:AUTOCAD;服裝;結(jié)構(gòu)制圖;AUTOLISP;Visual LISP 1 利用AUTOCAD軟件設計服裝過程中的思索 AUTOCAD是設計業(yè)界使用最廣泛的CAD軟件,在機械、電子、建筑等行業(yè)的設計工作中都有很突出的表現(xiàn),尤其是在建筑設計中,AUTO-CAD+3DMAX+PHOTOSHOP這種軟件搭配出現(xiàn)的幾率非常高。AUTOCAD在建筑設計行業(yè)中之所以能廣泛應用,除了自身的軟件特點外,還有很大一部分功勞歸功于天正建筑這一AUTO-CAD專業(yè)建筑設計插件。AUTOCAD+天正建筑插件使得建筑師在設計中能更靈活、準確的在電腦中實現(xiàn)設計理念。目前,在服裝行業(yè)中,AU-TOCAD的應用就相對比其他行業(yè)中要少,導致這種狀況的原因是多方面的。其中有價格的因素,有人員素質(zhì)的因素,有服裝CAD軟件種類過多的因素,但其中還有一個關(guān)鍵因素就是到現(xiàn)在為止還沒有一個專門為服裝結(jié)構(gòu)設計而編寫的AUTOCAD插件。AUTOCAD提供了相當完善的開發(fā)功能讓我們能夠設計自己所需的CAD工具,尤其是自1998年3月宣布推出新一代的LISP程序語言—Visual LISP以來,全球大量的計算機軟件開發(fā)商和用戶撰寫出數(shù)以萬計的實用套裝系統(tǒng)和應用程序,正是這些套裝系統(tǒng)和應用程序?qū)UTOCAD的應用推得更廣,因此,我們思索能否利用Visual LISP語言以及其前身AUTOLISP語言開發(fā)與AUTOCAD軟件匹配適合服裝制圖的插件。 2 AUTOCAD服裝制圖插件的開發(fā)思路 Visual LISP采用了Compile-during-Load技術(shù)即隨載即編譯技術(shù),支持多種檢查器,可以靈活的編寫程序且可以直接導人AUTOCAD進行測試,還可將原始程序文件(.1sp)或已編譯文件(.fas)打包成單獨的ADS或ARX模塊,此外Vi-sual LISP相對AUTOLISP增加了vl-、vls-、vla-、vlr-等開頭的,專門用于處理ActiveX對象的函數(shù),使訪問AUTOCAD圖元更簡單直接。相對其他程序語言來說,尤其是對沒有編寫程序經(jīng)驗的繪圖員而言,Visual LISP有著得天獨厚的優(yōu)勢。它編寫簡易、使用直觀可以說是AUTOCAD的******開發(fā)工具。采用Visual LISP來開發(fā)服裝結(jié)構(gòu)繪圖插件程序,對于推廣AUTOCAD在服裝行業(yè)的使用,以及補充專業(yè)服裝CAD軟件的不足,是非常合適的選擇。尤其是能夠自行定制軟件繪圖功能、操作方式,這樣將更能配合好本就種類繁多,方式層出不窮的服裝結(jié)構(gòu)制圖工作了。 3 實際使用舉例 AUTOCAD應用于服裝結(jié)構(gòu)設計時,使用系統(tǒng)原有的功能也可完成整個結(jié)構(gòu)設計工作,但繪圖過程就相對比較繁瑣。因為一些服裝結(jié)構(gòu)制圖的特有過程在AUTOCAD中并無直接的工具或功能來實現(xiàn),往往需要多步復合操作才能最終完成,這樣就使得整個結(jié)構(gòu)制圖過程變得復雜。比如,在肩線上加肩省,在沒有編寫輔助程序情況下,使用AUTOCAD的原制圖方式來完成就需要多步次、多工具配合來完成;服裝結(jié)構(gòu)中種類繁多的標記、符號都需要一一繪制。而所有這些,我們都可以使用Visual LISP編寫輔助程序來一次完成,就如天正建筑軟件所做的那樣。下面看看一個筆者編寫的簡易的輔助程序例子。 例:直接生成結(jié)構(gòu)框架 功能:輸入胸圍、領(lǐng)大、肩寬等數(shù)據(jù),系統(tǒng)自動生成結(jié)構(gòu)框架。 開發(fā)思路:由于為簡單繪圖程序,因此選擇Auto LISP+DCL,以直接的lisp語言格式以及自編的DCL來搭建起輔助程序。 3.1代碼部分: (defun c:kjsj() ;程序 (setvar"cmdecho"0) (dcl_kjsj) (prinl) ) (defun dcl_kjsj() ;DCL調(diào)用及實現(xiàn)(setq dcl_id(1oad_dialog"kjsj'')) (new_dialog"kjsj"dcl_id) (set_tile"kbb""100") (set_tile"knn""37") (set_tile"kll""66") (set_tile"kss""40") (action_tile"bbl""(get_bb)(done_dialog 1)");選擇類型,本例只做一個目標 (setq dd(start_dialog)) (cond((=dd l)(c:chenyi)) (t(alert"未完成任何動作!!!")) ) ) (defun get_bb() ;數(shù)值讀取 (setq bb(atof(get_tile"kbb"))) (setq nn(atof(get_tile"knn"))) (setq ll(atof(get_tile"kll"))) (setq ss(atof(get_tile" kss"))) ) (defun c:chenyi() ;繪制結(jié)構(gòu)類型—— 女襯衣 (setvar"cmdecho"0) (setvar"blipmode"0) (setq pl(getpoint"\n插入點")) (setq p2(polar pl 0(/bb4))) (setq p3(Polar p2(*pi l.5)11) (setq p4(polar p3 pi(/bb4))) (setq pnl(polar pl 0(—(/nn5)0.5))) (setq pn2(polar pnl(*pi l.5)(/nn5))) (setq pn3(polar pn2 pi(—(/nn 5)0.5))) (setq psl(polar pl(*pil.5)(/bb20))) (setq ps2(polar psl 0(+(*bb0.15)2.8))) (setq ps3(polar psl 0(—(setq pbl(polar psl(*pi1.5)(+(/bb l0)6.5))) (setq pb2(polar ps2(*pil.5)(+(/bb l0)6.5))) (setq pb3(polar pbl 0(/bb4))) (command"line",pnl ps3 ps2 pb2 pb3 p3 p4 pbl pn3 pn2 pnl"") (command"line",pl p2 p3 p4 p1"") (prinl) ) 3.2 DCL程序: kjsj:dialog :edit_box :edit_box :edit_box } :button cancel_button; } 3.3 效果
3.4 編寫及運行過程: 將程序以及DCL模塊在任何文本編輯器里寫好后,分別加載(最好直接到AUTOCAD里用Visual LISP編輯器加載),在命令行中輸入"kjsj"便可激活程序來完成繪制結(jié)構(gòu)框架工作。這樣就給后續(xù)制圖工作帶來了極大的方便。 本例中只提供了一種服裝款式結(jié)構(gòu)的框架,在實際使用過程中,可將所有的常用服裝款式結(jié)構(gòu)的框架都錄入程序中,這只需將程序稍加改動。在DCL模塊中添加選擇項,如女西裝結(jié)構(gòu)。在DCL程序選擇項處: :button 加入:button 在程序中加入相應的響應: (action_tile"bb2","(get_bb)(done_dialog2)") (cond ((:dd2) (c:xizhuang)) 及女西裝結(jié)構(gòu)框架繪制程序 (defun c:xizhuang() ;繪制結(jié)構(gòu)類型——女西裝 (setvar"cmdecho"0) (setvar"blipmode"0) (setq pl(getpoint"\n插入點")) 。 。 這樣依次將需要的款式加入即可。此外,如果其它程序有需求,也可將這個程序整體作為一個函數(shù)調(diào)給其他程序進行調(diào)用。 4 結(jié)束語 從上面的程序以及運行效果就不難看出,要自己編寫AUTOCAD輔助程序并不是什么太困難的事,只要認真學習lisp語言的語法及編程特點,在短時間內(nèi)就可以取得成功。不過,要設計出功能強大、運行穩(wěn)定、操作方便的輔助程序,還必須下更多的苦工,尤其是開發(fā)帶有個人工作風格的,完整的服裝打板、放碼、排料系統(tǒng),更非一日之功。當然,要編寫AUTOCAD的套用軟件也可以選擇用其他的程序語言如C/C++、VB、DEPHI等等,而且在編寫大型、多功能套用軟件時可能用這些程序語言就會更方便些,但是就推廣服裝結(jié)構(gòu)制圖在AUTOCAD的實現(xiàn)方面而言,AUTOLISP/VISUALLISP仍是最合適的選擇。 |
|