ninja37 发表于 2023-12-20 17:06:33

【悬赏5明经币求程序】求"选择分层"的lisp



[*](defun C:LHmovelayer452030XM222   (/ lm_ssd   lm_ssslm_ssrlm_ssh   lm_ssplm_ssx1lm_ssx2)
[*](setvar "cmdecho" 0)
[*](setq DATE1 (GETVAR "millisecs" ))
[*](command "UCS""W")(setvar "orthomode" 0)(setvar "osmode" 0) (setvar "luprec"4)
[*](if (not (tblsearch "layer" "XM1")) (command "-layer" "n" "XM1" "c" "16" "XM1" ""));endif16-
[*](if (not (tblsearch "layer" "XM2")) (command "-layer" "n" "XM2" "c" "77" "XM2" ""));endif88-
[*](setq lm_ssx1 (ssget ":D" '((0 . "ARC,CIRCLE,LINE,LWPOLYLINE") (8 . "1")))
[*]      lm_ssx2 (ssget ":D" '((0 . "ARC,CIRCLE,LINE,LWPOLYLINE") (8 . "2")))
[*]);;;endsetq
[*]    (if lm_ssx1 (command "chprop" lm_ssx1 "" "la""XM1" "c" "16" ""));;;130-142-140
[*]    (if lm_ssx2 (command "chprop" lm_ssx2 "" "la""XM2" "c" "88" ""));;;144-157-149-147
[*]   (setq DATE2 (GETVAR "millisecs" ))
[*]   (PRINC (STRCAT "图元分类 耗时" (RTOS (/ (- DATE2 DATE1 ) 1000.0 ) 2 2 ) "秒。" ) ) (PRINC "\n【45】 所有图元已分类完成" )
[*]   (princ)
[*]);end defun



以上这个程序 需要选择两次,第一个ssget把图元移动到图层xm1第2个ssget 把把图元移动到图层xm2
哪位大师帮忙写一个只需要选择一个选择,然后再分到图层xm1xm2只需要选择一次就可以了。

xj6019 发表于 2023-12-20 17:06:34

(defun CHmovelayer452030XM222   (/ lm_ssd   lm_ssslm_ssrlm_ssh   lm_ssplm_ssx1lm_ssx2)
(setvar "cmdecho" 0)
(setq DATE1 (GETVAR "millisecs" ))
(command "UCS""W")(setvar "orthomode" 0)(setvar "osmode" 0) (setvar "luprec"4)
(if (not (tblsearch "layer" "XM1")) (command "-layer" "n" "XM1" "c" "16" "XM1" ""));endif16-
(if (not (tblsearch "layer" "XM2")) (command "-layer" "n" "XM2" "c" "77" "XM2" ""));endif88-
        (setq i -1)
(if(setq lm_ssx (ssget ":D" '((0 . "ARC,CIRCLE,LINE,LWPOLYLINE") (8 . "1,2"))))
    (while(and(setq s1 (ssname lm_ssx (setq i (1+ i)))))               
                        (cond
                                ((= "1"(cdr(assoc 8 (entget s1))))
                                        (command "chprop" (ssadd s1) "" "la""XM1" "c" "16" "")
                                )
                                ((= "2"(cdr(assoc 8 (entget s1))))
                                        (command "chprop" (ssadd s1) "" "la""XM2" "c" "88" "")
                                )
                        )
                )
)
        (setq DATE2 (GETVAR "millisecs" ))
        (PRINC (STRCAT "图元分类 耗时" (RTOS (/ (- DATE2 DATE1 ) 1000.0 ) 2 2 ) "秒。" ) ) (PRINC "\n【45】 所有图元已分类完成" )
        (princ)
);end defun

ninja37 发表于 2023-12-20 19:20:18

xj6019 发表于 2023-12-20 17:06
(defun CHmovelayer452030XM222   (/ lm_ssd   lm_ssslm_ssrlm_ssh   lm_ssplm_ssx1lm_ssx2)
   ...

:handshake谢谢。群主
页: [1]
查看完整版本: 【悬赏5明经币求程序】求"选择分层"的lisp