大家好,
之前,我发布了一个线程,要求提供一个函数,该函数将成功检索活动文档中所有层的列表。
ASMI善意地向我提供了以下信息:
- (defun laylist (/ oLst)
- (vl-load-com)
- (vlax-for l
- (vla-get-Layers
- (vla-get-ActiveDocument
- (vlax-get-acad-object)
- ) ;_ end vla-get-ActiveDocument
- ) ;_ end vla-get-Layers
- (setq oLst
- (cons (vla-get-Name l) oLst)
- ) ; end setq
- ) ; end vlax-for
- (setq oLst (reverse oLst))
- ) ;_ end defun
然而,当我试图借助Vlide帮助文件来分析这一点时,我无法确定函数的实际功能。
我意识到可能有一种更简单的方法来检索这样的列表,而不必涉猎Active X方法,也许:
- (defun laylist (/ lay oLst)
- (setq lay (tblnext "LAYER" T))
- (while lay
- (setq oLst (cons (cdr (assoc 2 lay)) oLst)
- lay (tblnext "LAYER")
- ) ;_ end setq
- ) ;_ end while
- (setq oLst (reverse oLst))
- ) ;_ end defun
但是我真的很想开始理解VL,因为我发现它可以做的比普通的LISP多得多,-(从ASMI的几个例子来看…)
如果您能帮助我们逐步解释ASMI的代码,我们将不胜感激。
谢谢各位,
李 |