运行Vi时出错
尝试在AutoCAD 2007中运行任何visual lisp代码,但最终会出错。; 错误:ActiveX服务器返回错误:加载类型库/DLL时出错
这是一种引起问题的病毒吗?因为在其他具有相同AutoCAD 2007的PC上,我没有发现上述错误。 在没有看到您试图运行的代码的情况下,上面的错误消息无法提供足够的信息来确切了解原因。
尝试在命令行运行(vl load com),加载Visual LISP扩展,然后重试代码。如果这解决了问题,那么请确保将(vl load com)添加到例程(顶部)或ACAD中。lsp/阿卡多克。lsp,所以你只需要一次。
如果(vl load com)无法解决该问题,则您正在访问另一个外部对象的接口,并且无法找到所述类型库(即Excel.exe)的指定文件路径。。。为了纠正这种情况,必须纠正文件路径。
希望这有帮助! Thanx Renderman,
这是我试图运行的代码。
;;Program to get Mass Propertise of the objects....
(defun C:mass_p ()
(vl-load-com)
(while
(setq sset (ssget))
(setq ctr 0)
(repeat (sslength sset)
(setq item (ssname sset ctr))
(setq item (vlax-ename->vla-object item))
(setq vol (vla-get-volume item))
(princ (strcat "\nVolume: " (rtos vol)))
(setq ctr (1+ ctr))
);repeat
);while
(princ)
);defun
(princ)
当我选择object并按Enter键时,我收到错误:
; 错误:ActiveX服务器返回错误:加载类型库/DLL时出错
我试图找出过去三天的问题。我需要帮助。
:哎哟::哎哟: 请阅读代码发布指南。 请考虑以下示例:
(defun c:MASS_P(/ ss)
(vl-load-com)
(while (setq ss (ssget "_:L:S:E" '((0 . "3DSOLID"))))
(prompt
(strcat
"\n>>Volume: "
(rtos (vla-get-volume (vlax-ename->vla-object (ssname ss 0)))))))
(prompt "\n** Command ended, or non-3DSOLID selected ** ")
(princ))
该代码将连续允许单个非锁定实体选择“3DSOLID”对象(唯一具有体积特性的对象)。 另一种方式。
(defun c:Test (/ lst ss i sset lst)
(setq lst 0)
(if (setq ss (ssget "_:L" '((0 . "3DSOLID"))))
(progn
(repeat
(setq i (sslength ss))
(setq sset (ssname ss (setq i (1- i))))
(setq
lst (+ (vla-get-volume (vlax-ename->vla-object sset)) lst)
)
)
(alert (strcat " The Total Volumeis : " " " (rtos lst 2)))
)
(princ)
)
(princ)
)
塔瓦特 ... 还有一个:
(defun c:TEST2 ( / ss v tot)
(vl-load-com)
(if (setq ss (ssget "_:L" '((0 . "3DSOLID"))))
(progn
(textpage)
(vlax-for x (setq ss (vla-get-activeselectionset
(vla-get-activedocument
(vlax-get-acad-object))))
(prompt (strcat "\nVolume: " (rtos (setq v (vla-get-volume x)))))
(cond (tot (setq tot (+ tot v))) ((setq tot v))))
(prompt (strcat "\n>>Total>>" (rtos tot)))
(vla-delete ss))
(prompt "\n** Nothing selected ** "))
(princ))
... 还有一个:
(defun c:TEST3 ( / ss)
(vl-load-com)
(if (setq ss (ssget "_:L" '((0 . "3DSOLID"))))
((lambda (i / e v tot)
(textpage)
(while (setq e (ssname ss (setq i (1+ i))))
(prompt
(strcat
"\nVolume: "
(rtos (setq v (vla-get-volume (vlax-ename->vla-object e))))))
(cond (tot (setq tot (+ tot v))) ((setq tot v))))
(prompt (strcat "\n>>Total>>" (rtos tot))))
-1)
(prompt "\n** Nothing selected ** "))
(princ))
干得好Renderman
谢谢希望这些选项中的一个能够帮助OP。 尊敬的Renderman:,
我必须感谢你的工作。我已经检查过了&在不同的电脑上运行过(不是有问题的那台)。每个程序都运行良好。我会在有问题的电脑上进行检查,并发布反馈。再次感谢。
页:
[1]