我相信其他人有一个绝妙的解决方案,但就目前而言,也许这会有所帮助:
- (defun c:FOO (/ txt desc hits)
- (vl-load-com)
- (if (setq txt (strcase (getstring "\n Enter Descriptions to look for it :")))
- (progn
- (vlax-for lay (vla-get-layers
- (vla-get-activedocument
- (vlax-get-acad-object)))
- (if (vl-string-search
- txt
- (strcase (setq desc (vla-get-description lay))))
- (cond
- (hits
- (setq hits (append hits
- (cons (vla-get-name lay) desc))))
- ((setq hits (list (cons (vla-get-name lay) desc)))))))
- (if hits
- (progn
- (textpage)
- (terpri)
- (prompt "\n >> Listing Possible Results... ")
- (foreach item hits
- (prompt (strcat "\n\t\t** Layer Name = ""
- (car item)
- ""\t** Description = ""
- (cdr item)
- """)))
- (terpri))
- (prompt "\n <!> No Results Found <!> "))))
- (princ))
注意-为了搜索层描述,我需要将txt变量更改为仅接受单个单词。接受多个单词会让事情变得比我想说的更复杂。
希望这有帮助! |