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