我有一个我正在构建的代码初稿,用作层检查器,但我还需要使用列表中的第一项循环一次,然后使用列表中的第二项循环第二次,然后是第三项、第四项等等。。。。。但我似乎想不出一个办法来做到这一点。我也很确定我使用的“repeat”函数是不正确的,因为在我添加了它之后,代码停止了工作,但我没有试着用它来让它再次工作。
-
- (defun c:mscheck (/ sys ss count msg)
- (setq sys (list "H-LOWP"))
- (setq sys (append sys '("H-LOWP-EXST" "H-MEDP" "H-MEDP-EXST" "H-EXHS" "H-EXHS-EXST" "H-GRDS" "H-GRDS-EXST" "H-RTRN" "H-RTRN-EXST" "G-GENL-TEXT" "G-GENL-TEXT-EXST" "G-EQPM" "G-EQPM-EXST" "H-STAT" "H-STAT-EXST" "H-OAIR" "H-OAIR-EXST")))
- (setq count (length sys))
- (repeat count
- (if (tblsearch "layer" sys)foreach
- (progn
- (setq ss (ssget "_X" (list (cons 8 sys))))
- (if (= ss nil)
- (progn
- (setq count "0")
- );progn
- (progn
- (setq count (sslength (ssget "_P")))
- );progn
- );if
- );progn
- (progn
- (setq count "DNE")
- );progn
- );if
- (setq msg (cons sys count))
- (print msg)
- (princ)
- );repeat
- );defun
|