AUTOCAD服裝制圖插件開發研究
時間:2006-11-22 10:15:00來源:wangsl
導語:?AUTOCAD是設計業界使用最廣泛的CAD軟件,在機械、電子、建筑等行業的設計工作中都有很突出的表現
[摘 要]:本文通過對服裝設計中使用AUTOCAD狀況觀察,了解到一些問題,提出了相應的解決方法,即建議開發服裝制圖插件,并同時在文中給出了相應的實例程序。
[關鍵詞]:AUTOCAD;服裝;結構制圖;AUTOLISP;Visual LISP
1 利用AUTOCAD軟件設計服裝過程中的思索
AUTOCAD是設計業界使用最廣泛的CAD軟件,在機械、電子、建筑等行業的設計工作中都有很突出的表現,尤其是在建筑設計中,AUTO-CAD+3DMAX+PHOTOSHOP這種軟件搭配出現的幾率非常高。AUTOCAD在建筑設計行業中之所以能廣泛應用,除了自身的軟件特點外,還有很大一部分功勞歸功于天正建筑這一AUTO-CAD專業建筑設計插件。AUTOCAD+天正建筑插件使得建筑師在設計中能更靈活、準確的在電腦中實現設計理念。目前,在服裝行業中,AU-TOCAD的應用就相對比其他行業中要少,導致這種狀況的原因是多方面的。其中有價格的因素,有人員素質的因素,有服裝CAD軟件種類過多的因素,但其中還有一個關鍵因素就是到現在為止還沒有一個專門為服裝結構設計而編寫的AUTOCAD插件。AUTOCAD提供了相當完善的開發功能讓我們能夠設計自己所需的CAD工具,尤其是自1998年3月宣布推出新一代的LISP程序語言—Visual LISP以來,全球大量的計算機軟件開發商和用戶撰寫出數以萬計的實用套裝系統和應用程序,正是這些套裝系統和應用程序將AUTOCAD的應用推得更廣,因此,我們思索能否利用Visual LISP語言以及其前身AUTOLISP語言開發與AUTOCAD軟件匹配適合服裝制圖的插件。
2 AUTOCAD服裝制圖插件的開發思路
Visual LISP采用了Compile-during-Load技術即隨載即編譯技術,支持多種檢查器,可以靈活的編寫程序且可以直接導人AUTOCAD進行測試,還可將原始程序文件(.1sp)或已編譯文件(.fas)打包成單獨的ADS或ARX模塊,此外Vi-sual LISP相對AUTOLISP增加了vl-、vls-、vla-、vlr-等開頭的,專門用于處理ActiveX對象的函數,使訪問AUTOCAD圖元更簡單直接。相對其他程序語言來說,尤其是對沒有編寫程序經驗的繪圖員而言,Visual LISP有著得天獨厚的優勢。它編寫簡易、使用直觀可以說是AUTOCAD的最佳開發工具。采用Visual LISP來開發服裝結構繪圖插件程序,對于推廣AUTOCAD在服裝行業的使用,以及補充專業服裝CAD軟件的不足,是非常合適的選擇。尤其是能夠自行定制軟件繪圖功能、操作方式,這樣將更能配合好本就種類繁多,方式層出不窮的服裝結構制圖工作了。
3 實際使用舉例
AUTOCAD應用于服裝結構設計時,使用系統原有的功能也可完成整個結構設計工作,但繪圖過程就相對比較繁瑣。因為一些服裝結構制圖的特有過程在AUTOCAD中并無直接的工具或功能來實現,往往需要多步復合操作才能最終完成,這樣就使得整個結構制圖過程變得復雜。比如,在肩線上加肩省,在沒有編寫輔助程序情況下,使用AUTOCAD的原制圖方式來完成就需要多步次、多工具配合來完成;服裝結構中種類繁多的標記、符號都需要一一繪制。而所有這些,我們都可以使用Visual LISP編寫輔助程序來一次完成,就如天正建筑軟件所做的那樣。下面看看一個筆者編寫的簡易的輔助程序例子。
例:直接生成結構框架
功能:輸入胸圍、領大、肩寬等數據,系統自動生成結構框架。
開發思路:由于為簡單繪圖程序,因此選擇Auto LISP+DCL,以直接的lisp語言格式以及自編的DCL來搭建起輔助程序。
3.1代碼部分:
(defun c:kjsj() ;程序
(setvar"cmdecho"0)
(dcl_kjsj)
(prinl)
)
(defun dcl_kjsj() ;DCL調用及實現(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() ;數值讀取
(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() ;繪制結構類型——
女襯衣
(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{
label="尺寸表";
boxed_row{
label="部位尺寸";
:edit_box{label="胸圍";key="kbb";edit_width=8;}
:edit_box{1abel="領大";key="knn";edit_width=8;}
:edit_box{label="衣長";key="kll";edit_width=8;}
:edit_box{1abel="肩寬";key="kss";edit_width=8;}
}
:button{label="女襯衣";key="bbl";}
cancel_button;
}
3.3 效果
3.4 編寫及運行過程:
將程序以及DCL模塊在任何文本編輯器里寫好后,分別加載(最好直接到AUTOCAD里用Visual LISP編輯器加載),在命令行中輸入"kjsj"便可激活程序來完成繪制結構框架工作。這樣就給后續制圖工作帶來了極大的方便。
本例中只提供了一種服裝款式結構的框架,在實際使用過程中,可將所有的常用服裝款式結構的框架都錄入程序中,這只需將程序稍加改動。在DCL模塊中添加選擇項,如女西裝結構。在DCL程序選擇項處:
:button{label="女襯衣";key="bbl";}
加入:button{label="女西裝";key="bb2";}
在程序中加入相應的響應:
(action_tile"bb2","(get_bb)(done_dialog2)")
(cond ((:dd2) (c:xizhuang))
及女西裝結構框架繪制程序
(defun c:xizhuang() ;繪制結構類型——女西裝
(setvar"cmdecho"0)
(setvar"blipmode"0)
(setq pl(getpoint"\n插入點"))
。
。
這樣依次將需要的款式加入即可。此外,如果其它程序有需求,也可將這個程序整體作為一個函數調給其他程序進行調用。
4 結束語
從上面的程序以及運行效果就不難看出,要自己編寫AUTOCAD輔助程序并不是什么太困難的事,只要認真學習lisp語言的語法及編程特點,在短時間內就可以取得成功。不過,要設計出功能強大、運行穩定、操作方便的輔助程序,還必須下更多的苦工,尤其是開發帶有個人工作風格的,完整的服裝打板、放碼、排料系統,更非一日之功。當然,要編寫AUTOCAD的套用軟件也可以選擇用其他的程序語言如C/C++、VB、DEPHI等等,而且在編寫大型、多功能套用軟件時可能用這些程序語言就會更方便些,但是就推廣服裝結構制圖在AUTOCAD的實現方面而言,AUTOLISP/VISUALLISP仍是最合適的選擇。
來源:江蘇紡織
標簽:
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。