littlebugk 发表于 2004-6-2 14:00:00

[求助]图层定义处理出现的问题!

图层的定义:


(defun layset()<BR>       (command "layer" "n" "str,cen,hat,dim" "c" 3 "str" "c" 1 "cen" "c" 2 "dim" "c" 4 "hat" "")<BR>       (setq key (tblsearch "ltype" "center"))<BR>       (if (= key nil) (command "linetype" "l" "center" "acadiso" ""))<BR>                       (command "layer" "lt" "center" "cen" "")<BR>                       )


用该命令调用各图层:(setvar "clayer" "***")然后画图


然后完成一幅图!但是程序中有子程序(4个图),画完一幅之后再执行其它子程序(画其它图)的时候,各种图层线型起作用,但是图层颜色无效!


毕业设计的程序,请高手指教一下!急,明天答辩了!

BDYCAD 发表于 2004-6-2 14:30:00

這個程序沒有問題. 你的意思是所畫的實體的顏色不隨層吧, 可能是你其它的程序有把所畫的實體改成其它顏色的.

spring 发表于 2004-6-2 14:40:00

再看一下画图的时候颜色是否是随层的


littlebugk 发表于 2004-6-2 15:27:00

第一次运行的时候都是随层的,以后运行颜色就都不随层了!


我的齿轮绘图程序:


(defun draw_gear1()<BR>(setvar "cmdecho" 0)<BR>(setvar "osmode" 0)<BR>(keyy)<BR>        (layset)<BR>(setq ds d)<BR>(setq bb key_w)<BR>(setq t1 key_h)<BR>(setq mn mn)<BR>(setq z z)<BR>(setq b w)<BR>(setq d (* mn z))<BR>(setq da (* mn (+ z 2)))<BR>(setq df (* mn (- z 1.5)))<BR>(setq D1 (* 1.6 ds))<BR>(setq D2 (- da (* 10 mn)))<BR>(setq D0 (* 0.5 (+ D1 D2)))<BR>(setq dt0 (* 0.25 (- D2 D1)))<BR>(setq c (* 0.3 b))<BR>(setq n (* 0.5 mn))<BR>(setq l (* 1.3 ds))


(setq pt1 (polar t0 (/ pi 2) (/ ds 2)))<BR>(setq pt3 (polar pt1 0 (/ l 2)))<BR>(setq pt31 (polar pt3 (/ pi 2) 2));倒角点,连接点<BR>(setq pt2 (polar pt3 pi 2))


(setq pt4 (polar pt3 (/ pi 2) (/ (- D1 ds) 2)))


(setq pt6 (polar pt4       pi (/ (- l c) 2)))<BR>(setq pt7 (polar pt6 (/ pi 2) (/ (- D2 D1) 2)))<BR>(setq pt8 (polar pt7 0 (/ (- b c) 2)))<BR>(setq pt81 (polar pt8 (/ pi 2) 5));连接点<BR>(setq pt5 (polar pt8       (/ (* 3 pi) 2) (/ (- D2 D1) 2)));pt5由pt8确定<BR>(setq pt9 (polar pt8 (/ pi 2) (/ (- da D2) 2)))<BR>(setq pt10 (polar pt9       pi (/ b 2)))<BR>(setq pt11 (polar t0 (/ pi 2) (/ df 2)))<BR>(setq pt12 (polar pt11 0 (/ b 2)))<BR>(setq ps (polar t0 (/ pi 2) (/ d 2)));分度圆<BR>(setq ps0 (polar ps 0 (+ (/ b 2) 4)));分度圆中心线<BR>(setq ps1 (polar ps pi (+ (/ b 2) 4)));分度圆中心线


(setq pp2 (polar t0 0 (/ l 2)))<BR>(setq pp1 (polar pp2 pi 2))<BR>(setq pp3 (polar pp2 0 5));中线<BR>(setq pp4 (polar pp2 pi (+ l 5)))<BR>(setq pp5 (polar t0 (/ pi 2) (+ (/ da 2) 10)))<BR>(setq pp6 (polar t0 (* pi 1.5) (+ (/ da 2) 10)))<BR>(setq pp7 (polar t0 (/ pi 2) (/ D1 2)))<BR>(setq pp8 (polar t0 (/ pi 2) (/ D2 2)))<BR>       (setq pp9 (polar t0 (* pi 1.5) (/ D1 2)))<BR>(setq pp10 (polar t0 (* pi 1.5) (/ D2 2)))


       (setq pa (polar t0 (/ pi 2) (/ D0 2)))<BR>(setq pa0 (polar pa 0 (+ (/ c 2) 4)));孔中心线确定点<BR>(setq pa6 (polar pa pi (+ (/ c 2) 4)))<BR>(setq pa5 (polar pa pi (+ (/ c 2) 4)));孔中心线确定点<BR>(setq pa4 (polar pa (/ pi 2) (/ dt0 2)))<BR>(setq pa1 (polar pa (* pi 1.5) (/ dt0 2)))<BR>(setq pa3 (polar pa4 0 (/ c 2)))<BR>(setq pa2 (polar pa1 0 (/ c 2)))<BR>       <BR>(setvar "clayer" "str")<BR>(command "line" pt1 pt2 "")<BR>(setq e1 (entlast))<BR>(command "line" pt2 pt31 "");直接连线当倒角<BR>(command "pline" pt31 pt4 pt6 pt7 pt8 pt9 pt10 "")<BR>(setq e2 (entlast))<BR>(command "line" pp2 pt31 "")<BR>(setq e3 (entlast))<BR>(command "line" pt5 pt81 "")<BR>(setq e4 (entlast))<BR>(command "line" pp1 pt2 "")<BR>(command "line" pa4 pa3 "")<BR>(command "line" pa1 pa2 "")<BR>(command "line" pt11 pt12 "")<BR>(command "fillet" "r" "2");定义倒圆角为半径为2<BR>(command "fillet" "p" e2);为多义线角


(command "mirror" "all" "" pt10 pt1 "");像


(command "mirror" "all" "" pp2 pp1 "");完整像


;---------------------------------------------------以下为侧视图<BR>(setq pc (polar pp2 0 (+ (/ da 2) b)))<BR>(setq tt (+ (/ ds 2) t1))<BR>(setq pc1 (polar pc 0 (/ ds 2)))<BR>(setq pc2 (polar pc 0 (+ (/ ds 2) 2)))<BR>(setq pc3 (polar pc (* 1.75 pi) (/ ds 2)))<BR>(setq pn1 (polar pc (/ pi 2) (/ bb 2)))<BR>(setq pn2 (polar pc (* pi 1.5) (/ bb 2)))<BR>(setq pn3 (polar pn2 0 tt))<BR>(setq pn4 (polar pn1 0 tt))<BR>(setq pk1 (polar pc 0 (/ D1 2)))<BR>(setq pk2 (polar pc 0 (/ D0 2)))<BR>(setq pk3 (polar pk2 0 (/ dt0 2)))<BR>(setq pk4 (polar pc 0 (/ D2 2)))<BR>(setq pk5 (polar pc 0 (/ d 2)))<BR>(setq pk6 (polar pc 0 (/ da 2)))<BR>(setq pk7 (polar pk2 (/ pi 6) (/ dt0 2)))<BR>       <BR>;中心线确点<BR>(setq pc5 (polar pc 0 (+ (/ da 2) 10)))<BR>(setq pc6 (polar pc pi (+ (/ da 2) 10)))<BR>(setq pc7 (polar pc (/ pi 2) (+ (/ da 2) 10)))<BR>(setq pc8 (polar pc (* pi 1.5) (+ (/ da 2) 10)))


<BR>(command "circle" pc (/ ds 2))<BR>                                               (setq c1 (entlast))<BR>(command "circle" pc (+ (/ ds 2) 2))<BR>                                               (setq c2 (entlast))<BR>(command "line" pn2 pn3 "")<BR>                                               (setq l1 (entlast))<BR>(command "line" pn1 pn4 "")<BR>                                               (setq l2 (entlast))<BR>(command "line" pn3 pn4 "")<BR>                                               (setq l3 (entlast))<BR>(command "trim" c1 c2 l1 l2 l3 "" pc1 pc2 pn1 pn2 "")<BR>(command "trim" c1 c2 l1 l2 l3 "" pc1 pc2 pn1 pn2 "")<BR>;(command "rotate" c1 c2 l1 l2 l3 "" pc pc3 "")


(command "circle" pc (/ D1 2))<BR>(command "circle" pc (/ D0 2));保留<BR>(command "circle" pc (/ D2 2))


(command "circle" pc (/ da 2))<BR>(command "circle" pk2 (/ dt0 2))<BR>               (setq c3 (entlast))<BR>       (command "array" c3 "" "p" pc "4" "" "n")<BR>       (command "color" "3")


       (setvar "clayer" "hat")


       (command "-bhatch" "p" "ansi31" "1" "0" pp8 "");绘制剖面线<BR>(command "-bhatch" "p" "ansi31" "1" "0" pp7 "")<BR>                       (command "-bhatch" "p" "ansi31" "1" "0" pp9 "");绘制剖面线<BR>(command "-bhatch" "p" "ansi31" "1" "0" pp10 "")


;------------------------------------------------画线


(setvar "clayer" "cen")<BR>(command "line" pa6 pa0 "")<BR>       (setq cl1 (entlast))<BR>(command "line" ps1 ps0 "")<BR>       (setq cl2 (entlast))<BR>(command "line" pp3 pp4 "")<BR>       (command "mirror" cl1 cl2 "" pp3 pp4 "")<BR>       (command "line" pp5 pp6 "")<BR>(command "line" pc5 pc6 "")<BR>(command "line" pc7 pc8 "")<BR>(command "circle" pc (/ d 2));分度圆


       


;-------------------------------------------------执行标注尺寸序


;------------------------------------块


<BR>(setvar "clayer" "dim")<BR>       ;------------------------------------------标点<BR>        <BR>(setq pd1 (polar pt6 pi (/ b 2)))<BR>(setq pd2 (polar pd1 (* 1.5 pi) D1))<BR>(setq pd3 (polar pt7 pi (/ b 2)))<BR>(setq pd4 (polar pd3 (* 1.5 pi) D2))<BR>(setq ps1 (polar ps (* 1.5 pi) d))<BR>(setq pd10 (polar pt10 (* 1.5 pi) da))<BR>(setq pd12 (polar pt12 pi b))<BR>(setq pd0 (polar pa0 (* 1.5 pi) D0))<BR>(setq pd6 (polar pt1 pi (/ c 2)))<BR>(setq pd7 (polar pd6 (* pi 1.5) ds))<BR>(setq pd8 (polar pa3 pi c))<BR>(setq pt32 (polar pt31 pi l))


       (command "dimlinear" pd1 pd2 "t" "%%c&lt;&gt;" (polar pd1 pi (+ (/ c 2) 16)));D1<BR>       (command "dimlinear" pd3 pd4 "t" "%%c&lt;&gt;" (polar pd3 pi (+ (/ c 2) 24)));D2<BR>       (command "dimlinear" ps ps1 "t" "%%c&lt;&gt;" (polar ps pi (+ (/ b 2) 30)));<BR>       (command "dimlinear" pt10 pd10 "t" "%%c&lt;&gt;" (polar pt10 pi (+ (/ b 2) 38)));da<BR>       (command "dimlinear" pa0 pd0 "t" "%%c&lt;&gt;" (polar pa 0 (+ (/ b 2) 32)));D0<BR>       (command "dimlinear" pd6 pd7 "t" "%%c&lt;&gt;" (polar pd6 0 0));ds<BR>       (command "dimlinear" pa3 pd8 (polar pa3 (/ pi 2) (+(- (/ (- da D0) 2) (/ dt0 2)) 8)));c<BR>       (command "dimlinear" pt12 pd12 (polar pt12 (/ pi 2) 20));B<BR>       (command "dimlinear" pt31 pt32 (polar pt31 (/ pi 2) (+(/ (- da ds) 2) 30)));L<BR>       (command "dimdiameter" pk7 pk7)<BR>       (setq ccd "3.2")<BR>(setq ch 3.5)<BR>(setq ch1 (* ch 1.61658))<BR>(setq cp1 (polar t0 (/ pi 3) (* 2 ch1)))<BR>(setq cp2 (polar t0 (/ pi 3) ch1))<BR>(setq cp3 (polar cp2 pi ch1))<BR>(setq cp4 (polar t0 (/ pi 2) (* 1.4 ch1)))<BR>(command "pline" cp2 cp3 t0 cp1 "")<BR>(setq cc1 (entlast))<BR>(command "text" "m" cp4 ch "0" ccd)<BR>(setq cc2 (entlast))


       


       <BR>        (setq bkey(tblsearch "block" "c32"))<BR>                       (if (= bkey nil)(command "-block" "c32" t0 cc1 cc2 ""))


(setq cp5 (polar pt10 0 (/ b 3)));粗糙度标注点1<BR>(setq cp6 (polar pt1 0 (/ b       3)))<BR>(setq cp7 (polar cp6 (* pi 1.5) ds));粗糙度标注点2<BR>(setq cp8 (polar pt5 (* pi 1.5) (+ D1 dt0)))<BR>(setq cp9 (polar cp8 pi b));粗糙度标注点3(90度)


(command "insert" "c32" cp5 "" "" "")<BR>(command "insert" "c32" cp7 "" "" "")<BR>(command "insert" "c32" "r" "90" cp9 "" "" "")


(command "zoom" "a" )<BR>       )


图形画出来以后,删掉图形再运行就会出现不颜色随层问题!


请帮我看看,谢谢!

BDYCAD 发表于 2004-6-2 15:43:00

發現你的程序里面把用這樣(command "color" "3")就把當前層改成不隨層了.所以就出現你說的錯誤, 你把他們刪去就行了

littlebugk 发表于 2004-6-2 19:20:00

真的,我改好了,没问题了!太谢谢了!
页: [1]
查看完整版本: [求助]图层定义处理出现的问题!