开始以为容易解决,发现混到选择集的判断有不行了,才这样。。。 下面的是我写的,效果跟我需要的一样,大家参考参考~~ (defun c:jj () (vl-load-com) (setq sse (ssget '((8 . "lap,lay")))) (setq ar 0 d 0 ) (repeat (sslength sse) (setq ename (ssname sse d)) (setq obj (vlax-ename->vla-object ename)) (setq tem (vla-get-area obj)) (if (= (cdr (assoc 8 (entget (ssname sse d)))) "LAY") (progn (princ "阳台") (setq ar (+ ar (/ tem 2))) (princ "\n\r") ) ) (if (= (cdr (assoc 8 (entget (ssname sse d)))) "LAP") (progn (princ "套内") (setq ar (+ ar tem)) (princ "\n\r") ) ) (setq d (1+ d)) ) (princ "建筑面积:") (princ ar) (princ "\n\r") ) |