shamsam1 发表于 2008-8-6 07:15:50

如何在autocad 2005 for lisp中包含这个缺失的组件

这两种方法在 autocad2005 中缺失。是否有任何网站
可以下载包含这两个组件的任何步骤
,以检查VLA-GET-MATERIALS是否存在 autocad 步骤遵循
步骤1:命令:(vl-load-com)
步骤2:命令:(vlax-dump-object(vla-get-ActiveDocument(vlax-get-acad-object))t)
Materials (RO) = #
ActiveMaterial = #
**** Hidden Message *****

jbuzbee 发表于 2008-8-6 07:37:22

只是猜测:
(vlax-get acadobject 'materials)
(vlax-get acadobject 'activematerial

shamsam1 发表于 2008-8-6 08:02:42

我们仍然它给出了lisp程序中的错误
这是我用来将材料附加到layer.it的smple程序,在autocad 2007中工作正常,但在2005年它显示错误:没有函数定义:VLA-GET-MATERIALS
(defunc:泵浦(/Lst sSet mLst cMat sCnt lCnt mCnt eCnt)
(vl-load-com)
(setq Lst(list
'("0""Global")
'("Layer1"""料1")
);结束列表
);结束setq
(vl-load-com)
(if(setq sSet(ssget"_X"((0."*SOLID"))))
(progn
(setq sCnt 0 lCnt 0)
(vlax-for mat(vla-get-Material
(vla-get-ActiveDocument
(vlax-get-acad-ject)))
(setq mLst(cons(vla-get-Name mat)mLst)
); end vlax-for
(foreach itm
(mapcar'vlax-ename->vla-ject
(vl-disve-if'listp
(mapcar'cadr(ssnamex sSet)))))
(if(setq cMat
(cadr
(assoc
(setq cLay(vla-get-Layer itm))Lst))
(if(成员cMat mL=================\n")
(if(/=0(长度mCnt))
(progn
(princ"\n以下图纸中遗漏的材料:\n")
(foreach mat mCnt
(princ(strcat"\n"mat))
); end foreach
(princ"\n")
); end progn
); end if
(if(/=0(长度eCnt))
(progn
(princ"\n列表中遗漏的一些实心层:\n")
(foreach lay eCnt
(princ(strcat"\n"lay))
); end foreach
(princ"\n")
); end progn
); end如果
(if(/=0 lCnt)
(princ(strcat"\n"(itoa lCnt)"在锁定层上!\n"))
); end if
(princ"\n========================== END LIST ==========================\n")
(text scr)
); end progn
); end if
(princ(strcat"\n
(itoa sCnt)"of"
(itoa(ssl的长度sSet))"固体 >>>"))
); end progn
(princ"\n
没有找到固体
")
); end if
(princ)
); end if:泵浦

shamsam1 发表于 2008-8-6 09:11:50

autcad2005的问题仍未解决
页: [1]
查看完整版本: 如何在autocad 2005 for lisp中包含这个缺失的组件