yangist 发表于 2013-7-4 15:17:56

这段自动切换线型图层的代码问题出在哪里呢,请帮我看看吧~~

本帖最后由 yangist 于 2013-7-4 16:23 编辑

(defun auto_lay_lts ()
(setq ss (ssget'((0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE"))))
(setq Center_list(ssadd)
          Dashed_list(ssadd)
          Phantom_List(ssadd)
          Divide_List(ssadd))
(setq k 0 n (SSLENGTH ss))
(while (< k n)
   (setq en (ssname ss k))
   (setq ass6 (cdr (assoc 6 (entget en))))
   (if(or (= ass6 "Center") (= ass6 "Center2") (= ass6 "Centerx2"))
      (progn
      (setq Center_list (ssadd en Center_list))
      ))
   (if(or (= ass6 "Dash") (= ass6 "Dashed") (= ass6 "Dashed2") (= ass6 "Dashedx2"))
      (progn
      (setq Dashed_list (ssadd en Dashed_list))
      ))
   (if(or (= ass6 "Phantom") (= ass6 "Phantom2") (= ass6 "Phantomx2"))
      (progn
      (setq Phantom_List (ssadd en Phantom_List))
      ))
   (if(or (= ass6 "Divide") (= ass6 "Divide2") (= ass6 "Dividex2"))
      (progn
      (setq Divide_List (ssadd en Divide_List))
      ))
   (setq k (1+ k))
);end while
    (command "change" Center_list       "" "la" "03Center"   "c" "bylayer" "lt" "bylayer" "")
    (command "change" Dashed_list      "" "la" "04Dashed"    "c" "bylayer" "lt" "bylayer" "")
    (command "change" Phantom_List"" "la" "08Phantom" "c" "bylayer" "lt" "bylayer" "")
    (command "change" Divide_List       "" "la" "09Divide"      "c" "bylayer" "lt" "bylayer" "")
);;;end sub

ZZXXQQ 发表于 2013-7-4 22:24:52

本帖最后由 ZZXXQQ 于 2013-7-5 20:02 编辑

(defun auto_lay_lts ()
(setq ss (ssget'((0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE"))))
(setq Center_list (ssadd)
       Dashed_list (ssadd)
       Phantom_List (ssadd)
       Divide_List (ssadd))
(setq k -1)
(repeat (sslength ss)
(setq en (ssname ss (setq k (1+ k)))
      ent (entget en))
(if (assoc 6 ent) (progn
   (setq ass6 (cdr (assoc 6 ent)))
   (if (wcmatch ass6 "Center*") (ssadd en Center_list))
   (if (wcmatch ass6 "Dash*") (ssadd en Dashed_list))
   (if (wcmatch ass6 "Phantom*") (ssadd en Phantom_List))
   (if (wcmatch ass6 "Divide*") (ssadd en Divide_List))
))
);repeat
(if (> (sslength Center_list) 0)
(command "chprop" Center_list"" "la" "03Center" "")
)
(if (> (sslength Dashed_list) 0)
(command "chprop" Dashed_list"" "la" "04Dashed" "")
)
(if (> (sslength Phantom_list) 0)
(command "chprop" Phantom_List "" "la" "08Phantom" "")
)
(if (> (sslength Divide_list) 0)
(command "chprop" Divide_List"" "la" "09Divide" "")
)
(command "chprop" ss "" "c" "bylayer" "lt" "bylayer" "")
);;;end

xiabin68 发表于 2013-7-4 22:55:01

好深的套路,,,,

yangist 发表于 2013-7-5 10:59:47

ZZXXQQ 发表于 2013-7-4 22:24 static/image/common/back.gif


选择对象:ERROR : 参数类型错误: stringp nil
不知什么原因

ZZXXQQ 发表于 2013-7-5 20:03:46

沙发改了,再试试。
页: [1]
查看完整版本: 这段自动切换线型图层的代码问题出在哪里呢,请帮我看看吧~~