Допустим мы запроектировали проект. Вдруг заказчик требует заменить наши слои на определенные им.Чтобы сделать разом на каждом файле а не по слою. Попробовал написать лисп с помощью функций entnext, entget, entmode. Получаю сообщение Функция entmode не определена. не обращайте внимание на текст - писал быстро.
(defun C:CHLAY_ich () ;(/ SS i spl name ceva)
(setq *ERROR* STOP)
(princ "\nSelect Objects to be Changed...")
(initget 1)
(ustmla "HVAC_CHNL_OAIR" 6)
(ustmla "HVAC_CHNL_SPLY" 4)
(ustmla "HVAC_CHNL_EXH" 5)
(ustmla "HVAC_CHNL_FC" 4)
(ustmla "HVAC_CHNL_RA" 3)
(ustmla "HVAC_CHNL_SMOK" 5)
(ustmla "HVAC_CWS" 4)
(ustmla "HVAC_CWR" 4)
(ustmla "HVAC_HWS" 5)
(ustmla "HVAC_HWR" 5)
(ustmla "HVAC_CHWS" 3 )
(ustmla "HVAC_CHWR" 3)
(setq en (entnext))
(setq ed (entget en) spl ed)
; (setq ss (ssadd))
; (ssadd e1 ss)
(setq SS (ssget) lnab (sslength ss))
; (if SS
; (progn
; (setq oll (if (= (sslength ss) 1)
; (cdr (assoc 8 (entget(ssname ss 0))))
; "varies"))
(setq i 0 j 0)
(while (< i lnab)
; (setq spl (entget (ssname ss i)))
; (setq en (entnext))
(if ( = (cdr (assoc 8 spl)) "dfa")
(progn
(setq spl (subst (cons 8 "HVAC_CHNL_OAIR") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "ds")
(progn
(setq spl (subst (cons 8 "HVAC_CHNL_SPLY") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "dr")
(progn
(setq spl (subst (cons 8 "HVAC_CHNL_RA") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "dv")
(progn
(setq spl (subst (cons 8 "HVAC_CHNL_EXH") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "hws")
(progn
(setq spl (subst (cons 8 "HVAC_CHWS") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "hwr")
(progn
(setq spl (subst (cons 8 "HVAC_CHWR") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "cws")
(progn
(setq spl (subst (cons 8 "HVAC_CWS") (assoc 8 spl) spl ))
(entmode spl)
)
)
(if ( = (cdr (assoc 8 spl)) "cwr")
(progn
(setq spl (subst (cons 8 "HVAC_CWR") (assoc 8 spl) spl ))
(entmode spl)
)
)
(setq i (+ 1 i) j (+ 1 j))
; )
)
(setq en (entnext))
(princ)
;*************************************************
)
(defun ustmla (mla ceva )
(if (= nil (tblsearch "Layer" mla))
(progn
(command "Layer" "m" mla "")
(command "Layer" "c" ceva "")
(command "")
)
(command "Layer" "s" mla "")
)
)