正在初始化。。。无功能定义
老师们好,我最近从ACAD 2004升级到ACAD 2011。。是的,我知道我知道。。但现在我正在追赶,我在路上遇到了一些小坎坷,需要专家的建议来抚平它们。这是:
我试图运行一个LISP例程,该例程在ACAD 2004中运行良好,但在2011年,我在运行命令“错误:无函数定义:VLAX-get-ACAD-OBJECT”时遇到了这个错误。程序如下:
[请注意c:和命令之间的空格,以避免自动插入表情符号]
(默认c:p17all()
(setq fname(strcat(getvar“dwgprefix”)“pltfiles.scr”))
(setq fpath(getvar“dwgprefix”))
(setq cfile(getvar“dwgname”))
(setq fh(open fname“w”))
(setq fh2 fh)
(setq flist(vl目录文件fpath“*.dwg”))
(setq curname(car flist))
(setq flist(cdr flist))
; 将列表中的每个文件名写入脚本文件
(文本SCR)
(写入行“FILEDIA”fh)
(写入行“0”fh)
(while(not(null curname))
; 如果文件既不是X-Base或X-Broder,也不是在模型空间中,也不是当前打开的dwg,
(setq active_lyr(vlax get property(actlay)'名称))
(如果
(空)
(或
(vl字符串搜索“X-Base”curname);排除X基
(vl字符串搜索“X-Border”curname);排除X边框
(=cfile curname);排除当前文件以避免“文件”
;(=active_lyr“模型”)
) ; “已打开”提示。(稍后完成)
)
; 编写脚本以打开文件,创建打印文件,然后关闭文件
(程序
(princ(strcat“\n正在将“curname”写入文件…))
(写入行“OPEN”fh)
(写入行(strcat“\”fpath curname“\”)fh)
(写入行“(setq active\u lyr(vlax get property(actlay)”Name))(if(/=active\u lyr \“Model\”)(C:P17))“fh)
;(写入行“PTFF”fh)
(写入行“CLOSE”fh)
(写行“否”fh)
)
) ; 如果结束
; 将列表中的下一项设置为当前项,并将其从列表的其余部分中删除
(如果(null flist)
(setq curname nil)
(程序
(setq curname(car flist))
(setq flist(cdr flist))
)
)
) ; 结束时
(写入行“FILEDIA”fh)
(写入行“1”fh)
(写入行“DEL”fh)
(写入行fname fh)
(关闭fh);关闭并保存脚本文件
(命令“FILEDIA”“0”)
(图表)
(C:QSA);保存当前dwg
(C:P17);打印当前dwg
(命令“script”fname);为其他DWG运行脚本
(普林斯);安静退出
) ; C端:PFALL功能
(defun ActLay()
(vla get ActiveLayout
(vla获取activedocument
(vlax get acad对象)
)
)
)
谢谢你抽出时间, 欢迎来到CadTutor
您可能会收到错误,因为您没有加载VLisp函数
将其放在代码开头附近(或在命令行中输入,或将其添加到acaddoc.lsp文件中)
参见此处
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南
顺便提一下你可以在高级编辑器中关闭该死的表情符号(进入高级)
此外,最好在AutoLisp、Vlisp和DCL论坛上发布 谢谢你的帮助。我在我的一个创业应用程序中添加了这段代码,现在效果很好。
另外,谢谢你的论坛风格链接,关于消除表情沮丧的提示。。非常感谢,并将我的帖子转移到更合适的论坛。(如果那真的是你)我是新来的,但我会得到它。。。
页:
[1]