LISP初学者-清除Blo
你好我希望你们能帮我解决Lisp程序的问题。我是新手,所以请原谅我I 听起来太基本了。突然出现了一个问题,以前它还在工作。现在,当我打开dwg时,它会在acad文件的这一部分暂停。这就是我如何把它缩小到这个特殊的Lisp程序。
我可以看到我的地图,但它们被搁置了。大约1分钟后,它说有一个“致命错误-内存不足”。
你们知道该怎么办吗?
如果我去掉这一行上的“N”部分(命令“purge”“block”“*”“N”),它似乎可以工作,但我必须单击命令行中的几个选项才能在地图上执行任何操作。
(定义:PURGEBLOCK()
(如果(和(/=(getvar“dwgname”)“未命名”)(/=(substr(getvar“dwgname”)1 7)“图纸”))
(程序
(setq wts(getvar“writestat”))
(如果(/=wts 0)
(程序
(命令“purge”“block”“*”“N”)
(setq chg(getvar“dbmod”))
(如果(/=chg 0)
(程序
(setvar“cmdecho”0)
(princ“\n保存清除的图形”)
(setvar“专家”3)
(命令“保存”)
(setvar“expert”0)
; (snd)
);结束程序
);如果结束
);结束程序
);如果结束
);结束程序
);如果结束
(setvar“cmdecho”0)
(普林斯)
) 试试这个-清除 你好对不起,我该在Lisp程序的地方试一试? 请尝试以下(未测试)代码:
(defun purgeblock ( / val var )
(if (= 1 (getvar 'dwgtitled) (getvar 'writestat))
(progn
(setq var '(cmdecho expert)
val(mapcar 'getvar var)
)
(mapcar 'setvar var '(0 2))
(command "_.-purge" "_b" "*" "_n")
(if (< 0 (getvar 'dbmod))
(progn
(command "_.save" "")
(princ "\nPurged drawing saved.")
)
(princ "\nNothing to purge, drawing not saved.")
)
(mapcar 'setvar var val)
)
(princ "\nDrawing unsaved or read-only.")
)
(princ)
) 非常感谢。我要试试这个!
这两种代码都有相同的错误。这似乎只发生在我的大地图上。这是截图,但我不确定这是否会有帮助。。。
它会在这一点上卡住,最终锁定。
这可能是另一个问题吗?
我应该提到,如果我更改
(命令“-purge”“\u b”“*”“\u n”)到
(命令“_.-purge”“\u b”“*”“\u y”)
这似乎奏效了。
有什么理由我应该使用n或y吗?似乎只是验证要清除的名称?
对不起,这是我看到信息的链接。
http://help.autodesk.com/view/ACD/2015/ENU/?guid=GUID-C3876E92-3478-449C-8FAB-DA760B2EDD09
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。 让我再试一次
(defun T:PURGEBLOCK ()
(if (and (/= (getvar "dwgname") "unnamed")(/= (substr (getvar "dwgname") 1 7) "Drawing"))
(progn
(setq wts (getvar "writestat"))
(if (/= wts 0)
(progn
(command "purge" "block" "*" "N")
(setq chg (getvar "dbmod"))
(if (/= chg 0)
(progn
(setvar "cmdecho" 0)
(princ "\nSaving purged drawing \n")
(setvar "expert" 3)
(command "save" "")
(setvar "expert" 0)
; (snd)
);end progn
);end if
);end progn
);end if
);end progn
);end if
(setvar "cmdecho" 0)
(princ)
)
页:
[1]
2