我在明经找到的这个拷贝块的函数不能运行,如何改正?我用的是2006版的CAD: 命令: (CopyBlock ( findfile "CAD模板.dwg") "图框") ; 错误: Automation 错误。 加载应用程序时出现问题 函数原地址:http://www.mjtd.com/a2/list.asp?id=314 函数原码: ;; COPYBLOCK.LSP Copyright ?999 Tony Tanzillo ;; ;; AutoCAD 2000 Visual LISP / ObjectDBX 示例 ;; ;; http://www.caddzone.com ;; tony.tanzillo@caddzone.com ;; ;; 该范例演示了怎样在Visual LISP中使用ObjectDBX将任意 ;; 图形文件中的图块定义添加到当前图形中。 ;; ;; (CopyBlock <文件名> <图块名>) ;; ;; 该函数可从名称为<文件名>(字符串)的.DWG文件中复制名称为 ;; <图块名>(字符串)的图块定义到当前图形的图块表中。 ;; ;; CopyBlock返回新复制过来的在当前图形的图块表中的图块对象。 ;; ;; Note that this example performs none of the ;; error checking that is required, and does not ;; attempt to determine what actually happened ;; within the deep clone operation. (vl-load-com) (setq *acad* (vlax-get-acad-object)) (defun CopyBlock (DwgName BlkName / blocks dbxDoc) (setq blocks (vla-get-blocks (vla-get-ActiveDocument *acad*) ) ) (setq dbxDoc (vla-GetInterfaceObject *acad* "ObjectDBX.AxDbDocument" ) ) (vla-open dbxDoc DwgName) (vla-CopyObjects dbxDoc (vlax-safearray-fill (vlax-make-safearray vlax-vbObject '(0 . 0) ) (list (vla-item (vla-get-blocks dbxDoc) BlkName ) ) ) blocks ) (vlax-release-object dbxDoc) (vla-item blocks BlkName) ) (princ "\n(CopyBlock <图形文件名> <图块名>)") (princ) ;;;;;;;;;;;;;;;;; CopyBlock.lsp ;;;;;;;;;;;;;;;;;;;; |