|
[摘 要]:本文通过对服装设计中使用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 :edit_box :edit_box :edit_box } :button cancel_button; } 3.3 效果
3.4 编写及运行过程: 将程序以及DCL模块在任何文本编辑器里写好后,分别加载(最好直接到AUTOCAD里用Visual LISP编辑器加载),在命令行中输入"kjsj"便可激活程序来完成绘制结构框架工作。这样就给后续制图工作带来了极大的方便。 本例中只提供了一种服装款式结构的框架,在实际使用过程中,可将所有的常用服装款式结构的框架都录入程序中,这只需将程序稍加改动。在DCL模块中添加选择项,如女西装结构。在DCL程序选择项处: :button 加入:button 在程序中加入相应的响应: (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仍是最合适的选择。 |
|