请教一个问题
(defun lzty_tctocharlist ( adlaylist / wordadlaylist i )(setq i 0 )
(setq wordadlaylist nil)
(while (< i (length adlaylist))
(setq wordadlaylist (append (list (strcat (itoa i)" " (car (nth i adlaylist)) ""(itoa (cadr (nth i adlaylist))) ""(caddr (nth i adlaylist)))) wordadlaylist))
(setq i (+ i 1))
)
(setq wordadlaylist (reverse wordadlaylist))
wordadlaylist
)
;;;删除列表中的相同元素(保留一个)并返回新表
(defun lzty_list_RemoveItem (item lst / x tmplst)
(foreach x (vl-remove item lst)
(if (listp x)
(setq tmplst (cons (RemoveItem item x) tmplst))
(setq tmplst (cons x tmplst))
)
)
(reverse tmplst)
);lzty-end
(defun lzty_list_DelSame (lst / x nl)
(foreach x lst
(if (not (member x nl))
(setq nl (cons x nl))
)
)
(setq nl (reverse nl))
nl
)
;;主函数
(defun c:t2()
(setq adlaylist nil)
(setq wordadlaylist nil)
(setq wordadjustedlayerlist nil)
(setq wordrealizelist nil)
(setq wordFineLinelist nil)
(setq wordcenterlinelist nil)
(setq worddottedlinelist nil)
(vl-load-com)
(while (/= (cdr(assoc 0 (entget (setq blname (car (entsel "\n请选择需要调整的块:")))))) "INSERT"))
(setq OBJname(vla-get-name (vlax-ename->vla-object blname))
dwgobj (vla-get-activedocument (vlax-get-acad-object))
BLOCKS (vla-get-Blocks dwgobj)
layers (vla-get-layers dwgobj)
)
(setq BLOCK (vla-item BLOCKS OBJname))
(vlax-for OBJ BLOCK
(setq OBJlayername (vla-get-layer OBJ))
(setq OBJlay (vla-item layers OBJlayername))
(setq OBJcolor (vla-get-color OBJlay))
(setq OBJltype (vla-get-linetype OBJlay))
(setq adlaylist (cons (list OBJlayername OBJcolor OBJltype) adlaylist ))
)
(setq adlaylist (lzty_list_DelSame adlaylist))
(setq i 0) ;;取得所有图层集合
(while (< i (length adlaylist))
(setq ssguodu (ssadd))
(vlax-for OBJ BLOCK
(if (wcmatch(vla-get-layer OBJ) (car (nth i adlaylist)))
(setqssguodu(ssadd (vlax-vla-object->ename OBJ) ssguodu ))
)
)
(set(read(strcat "ss" (itoa i))) ssguodu)
(setq i (+ i 1))
)
)
为什么在这个函数里总是出现参数类型错误啊。
(while (< i (length adlaylist))
(setq ssguodu (ssadd))
(vlax-for OBJ BLOCK
(if (wcmatch(vla-get-layer OBJ) (car (nth i adlaylist)))
(setqssguodu(ssadd (vlax-vla-object->ename OBJ) ssguodu ))
)
)
(set(read(strcat "ss" (itoa i))) ssguodu)
(setq i (+ i 1))
)
都快搞一晚了,都 没有搞出来。
楼主真的太有才了。。。。爱死你了。 这句(setq ssguodu (ssadd (vlax-vla-object->ename OBJ) ssguodu))应该是(ssadd (vlax-vla-object->ename OBJ) ssguodu)
页:
[1]