*分解cass高程点即属性块*
(defun c:fj()
(prompt "选择cass高程点!")
(setq s (ssget '((0 . "INSERT"))))
(setq questr (getstring "高程点是否炸开?是[Y]、否[N]:<是>"))
(setq i 0)
(repeat (sslength s)
(setq nam1 (ssname s i))
(setq slist1 (entget nam1))
(setq km (cdr (assoc 2 slist1)))
(setq crd (cdr (assoc 10 slist1)))
(setq x_sc (cdr (assoc 41 slist1)))
(setq y_sc (cdr (assoc 42 slist1)))
(setq z_sc (cdr (assoc 43 slist1)))
(setq xz_jd (cdr (assoc 50 slist1)))
(setq crhs (cdr (assoc 70 slist1)))
(setq crls (cdr (assoc 71 slist1)))
(setq hjj (cdr (assoc 44 slist1)))
(setq ljj (cdr (assoc 45 slist1)))
(setq jcfx (cdr (assoc 210 slist1)))
(kuai_m km crd x_sc y_sc z_sc xz_jd crhs crls hjj ljj jcfx)
(setq d_l (ssget "l"))
(if (or (= questr "")(= questr "y")(= questr "Y"))
(command "explode" d_l "" "")
);if
(setq nam2 (entnext nam1))
(if (/= nam2 nil)
(progn
(setq slist2 (entget nam2))
(setq chksx (cdr (assoc 0 slist2)))
(if (= chksx "ATTRIB")
(progn
(setq txt (cdr (assoc 1 slist2)));文本内容
(setq ztm (cdr (assoc 7 slist2)));字体名
(setq tc (cdr (assoc 8 slist2)));文本图层
(setq zb (cdr (assoc 10 slist2)));文本坐标
(setq dq (cdr (assoc 11 slist2)));文本对齐
;(setq dq2 (cdr (assoc 70 slist2)));对齐
(setq dq3 (cdr (assoc 73 slist2)));对齐
(setq gd (cdr (assoc 40 slist2)));高度
(setq kd (cdr (assoc 41 slist2)));宽度
(txt_m txt ztm tc zb dq dq3 gd kd)
);progn
);if
);progn
);if
(command "erase" nam1 "" "")
(setq i (+ i 1))
);repeat
(princ)
)
(defun kuai_m (km crd x_sc y_sc z_sc xz_jd crhs crls hjj ljj jcfx)
(setq crent
(list (cons 0 "INSERT")
(cons 2 km) ;块名
(cons 10 crd) ;插入点
(cons 41 x_sc) ;X比例
(cons 42 y_sc) ;Y比例
(cons 43 z_sc) ;Z比例
(cons 50 xz_jd) ;旋转角度
(cons 70 crhs) ;插入行数
(cons 71 crls) ;插入列数
(cons 44 hjj) ;行间距