llsheng_73 发表于 2021-7-22 15:11
刮台风,一开始没注意看到哈,感谢大侠,想知道这个加上过滤和海哥的区别在哪里呢 本帖最后由 magicheno 于 2021-7-26 02:29 编辑
tryhi 发表于 2021-7-22 00:31
(vl-load-com)
(defun c:tt (/ a en l lay layer o ss)
(setq lay '(("*_A1" "G_PJ")("*_B1" "G_TX")("* ...
海哥,我想再请教下,如果是DN_P,DN-S,DN_Y,DN_L,DN_F,等等依次改为WP_P_DN,WP_S_DN,WP_Y_DN,WP_L_DN,WP_F_DN,因为不只有这些还有几百个类似的可能需要替换,是不是只能用笨办法的如下一个一个设置列表呢(setq lay '(("DN_P" "WP_P_DN")("DN_S" "WP_S_DN")("DN_Y" "WP_Y_DN")("DN_L" "WP_L_DN")("DN_F" "WP_F_DN")))
可不可以用过下面 (setq lay '(("DN_*" "WP_*_DN")))使得实现上面的功能呢 magicheno 发表于 2021-7-26 02:23
海哥,我想再请教下,如果是DN_P,DN-S,DN_Y,DN_L,DN_F,等等依次改为WP_P_DN,WP_S_DN,WP_Y_DN,WP_L_DN,WP_ ...
(vl-load-com)
(defun c:tt (/ a en l lay layer o ss)
(setq lay '(("*_A1" "G_PJ")("*_B1" "G_TX")("*_C1" "G_SB")("*_D1""G_NOTE")("E1""W_G")("F1" "W_P")("DN_*" "WP_*_DN")))
(setq ss(ssget(list(cons 8(apply'strcat(mapcar'(lambda(x)(strcat","(car x)))lay)))))
a -1)
(while(setq en(ssname ss(setq a(1+ a))))
(setq o(vlax-ename->vla-object en)
layer(vla-get-layer o)
l(vl-some '(lambda(x)(if(wcmatch layer (car x))(cadr x))) lay)
)
(if l
(progn
(if (wcmatch l "*`**")
(setq sp(try-StringSplit layer "_")
l(strcat "WP_"(cadr sp)"_"(car sp))
)
)
(entmod (subst (cons 8 l)(cons 8 layer)(entget en)))
(entupd en)
))
)
)
;;;======================================
;;;===========以下为内裤部分=============
;;;======================================
(defun try-StringSplit(str char / a b i )
(if (= "" char)(_Str2List str)
(progn
(while (setq i(vl-string-search char str))
(setq a(substr str 1 i)
b(cons a b)
str(substr str (+ i (strlen char)1)))
)
(reverse(cons str b))
)
)
)
(defun _Str2List(str / a);作者:LLSheng_73
(setq str(vl-string->list str))
(while
(if(<(car str)129)
(setq a(cons(chr(car str))a)str(cdr str))
(setq a(cons(strcat(chr(car str))(chr(cadr str)))a)str(cddr str))))
(reverse a)
)
tryhi 发表于 2021-7-26 10:19
(vl-load-com)
(defun c:tt (/ a en l lay layer o ss)
(setq lay '(("*_A1" "G_PJ")("*_B1" "G_TX")( ...
海哥,请教下,如果想框选实体或者是两组实体,使得两组实体中的图层互换,比如WP_P_PJ 与WP_G_PJ,WP_P_DN 与WP_G_PJ,WP_P 与WP_G,WP_P_TXT 与WP_G_TXT,WP_P_LG 与WP_G_LG,等等呢,其中的P和G可能是其他字母,也有可能是双字母或者三字母的,这种可以实现么
页:
1
[2]