drawings 发表于 2022-7-6 09:08:59

运行Vi时出错

尝试在AutoCAD 2007中运行任何visual lisp代码,但最终会出错。
; 错误:ActiveX服务器返回错误:加载类型库/DLL时出错
这是一种引起问题的病毒吗?因为在其他具有相同AutoCAD 2007的PC上,我没有发现上述错误。

BlackBox 发表于 2022-7-6 09:16:40

在没有看到您试图运行的代码的情况下,上面的错误消息无法提供足够的信息来确切了解原因。
 
尝试在命令行运行(vl load com),加载Visual LISP扩展,然后重试代码。如果这解决了问题,那么请确保将(vl load com)添加到例程(顶部)或ACAD中。lsp/阿卡多克。lsp,所以你只需要一次。
 
如果(vl load com)无法解决该问题,则您正在访问另一个外部对象的接口,并且无法找到所述类型库(即Excel.exe)的指定文件路径。。。为了纠正这种情况,必须纠正文件路径。
 
希望这有帮助!

drawings 发表于 2022-7-6 09:29:01

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时出错
 
我试图找出过去三天的问题。我需要帮助。
 
 
:哎哟::哎哟:

SLW210 发表于 2022-7-6 09:30:26

请阅读代码发布指南。

BlackBox 发表于 2022-7-6 09:37:18

请考虑以下示例:
 

(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”对象(唯一具有体积特性的对象)。

Tharwat 发表于 2022-7-6 09:48:49

另一种方式。
 
(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)
)

塔瓦特

BlackBox 发表于 2022-7-6 09:54:09

... 还有一个:
 

(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))

Tharwat 发表于 2022-7-6 10:01:05

干得好Renderman

BlackBox 发表于 2022-7-6 10:05:50

 
谢谢希望这些选项中的一个能够帮助OP。

drawings 发表于 2022-7-6 10:10:33

尊敬的Renderman:,
我必须感谢你的工作。我已经检查过了&在不同的电脑上运行过(不是有问题的那台)。每个程序都运行良好。我会在有问题的电脑上进行检查,并发布反馈。再次感谢。
页: [1]
查看完整版本: 运行Vi时出错