循环浏览列表?
我有一个我正在构建的代码初稿,用作层检查器,但我还需要使用列表中的第一项循环一次,然后使用列表中的第二项循环第二次,然后是第三项、第四项等等。。。。。但我似乎想不出一个办法来做到这一点。我也很确定我使用的“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
(defun c:FOO (/ ss)
(foreach layerName '("H-LOWP" "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"
)
(prompt
(strcat "\n["
layerName
"] : "
(if (setq ss (ssget "_x" (list (cons 8 layerName))))
(itoa (sslength ss))
"0"
)
)
)
)
(textpage)
(princ)
)
美好的它工作得很好。我必须稍微剖析一下你的代码,看看你做了什么,以防我以后需要再写类似的东西。
谢谢
不客气;我很乐意帮忙。
本质上,对于层名称列表中的每个层名称,向用户提示层名称,如果该层上有实体,包括多少,否则为零。
页:
[1]