明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1530|回复: 3

怎样变层色????急!

[复制链接]
发表于 2003-6-20 09:43:00 | 显示全部楼层 |阅读模式
各位大虾及斑竹,我要用LISP编写一个程序,用于控制layer表中层的颜色,就是如果我总共有20层,1----10层用200号色,11---15层用156号色,16---20层用10号色,不想用手打开layer表改,用程序怎么改???急!!!
发表于 2003-6-20 10:34:00 | 显示全部楼层

回复

本帖最后由 作者 于 2003-6-20 10:34:53 编辑

;;
;; Get list of entire layer name.
;;
(defun do_layer (/ start lyr layer_list)
(setq start 1)
(while (setq lyr (tblnext "LAYER" start))
   (setq start nil)
   (setq layer_list (append layer_list (list (cdr (assoc 2 lyr))) ))
)
layer_list
)

(defun c:change_lac ( / all_layer_list n la)
  (setq all_layer_list (do_layer))
  (setq n 0)
  (while (setq la (nth n all_layer_list))
    ;
    (cond
      ((< n 10)(command "-layer" "c" "200" la ""))
      ((< n 15)(command "-layer" "c" "156" la ""))
      ((< n 20)(command "-layer" "c" "10" la ""))
    );_cond
    (setq n (+ n 1))
  );_while
)
[此贴子已经被作者于2003-6-20 10:34:27编辑过]
发表于 2003-6-20 10:27:00 | 显示全部楼层

简单

;lname——图层名,lcolor——图层颜色,如果没有此图层,还会建立新图层,自己编个程序,循环一下使用此函数设置图层颜色就可以了
(defun setlayer_color(lname lcolor / layer layers adoc)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq layers (vla-get-layers adoc))
  (setq layer (vl-catch-all-apply 'vla-item (list layers lname)))
  (if (vl-catch-all-error-p layer)
      (setq layer (vla-add layers lname))
  )
  (if lin
    (vla-put-color layer lcolor)
  )
  (princ)
)
 楼主| 发表于 2003-6-20 14:23:00 | 显示全部楼层

谢谢楼上!

谢谢楼上!有没有办法得到CPUID??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 15:40 , Processed in 0.173187 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表