我只是放了一个警告框,为了知道已经有一个同名文件,
当然,如果保存文件不重要,最好将专家设置为5。。。
干杯
亨里克 谢谢pBe,
但我喜欢Henrique在代码中加入的“if”语句,我知道我不能过度编写任何面板。这是一个很好的安全功能。
圣诞快乐,谢谢你们的帮助。 亨里克,
当我运行lisp时,我得到了以下消息:“错误:错误的参数类型:lselsetp nil”。有什么想法吗?
谢谢
布莱恩 BrianTFC。
当我试图机械化您的代码时,我从一开始就知道您的面板的名称总是从
对于字母,在第二次选择中,选择文本实体并过滤以字母开头的实体,
“面板名称”,作为块名称,不选择数量,我认为它们总是在括号中
(1x)(2x)。。。
错误“error:bad argument type:lselsetp nil”是因为第二次选择失败“be text entity”
并以字母开头”,因此无法提供新文件的名称。。。
亨里克 嗯,席尔瓦,
你是对的,我是个哑巴,但我用来测试lisp的示例将其面板标签作为多行文字,带有(2x),而不是DText。一旦我分解了它,它就完全按照你说的那样工作。非常感谢你的帮助。很高兴知道我不是唯一一个在圣诞节坐在电脑前的极客。
谢谢
布瑞恩 BrianTFC。
现在不会给出这个误差,但它有一个约束,量必须始终在括号中,只有这样,
将从选择中排除。
(defun c:psave (/ ss mn mx sst)
(vl-load-com)
(if (setq ss (ssget "_:S:E" '((0 . "INSERT,LWPOLYLINE"))))
(progn
(vla-getboundingbox
(vlax-ename->vla-object (ssname ss 0))
'mn
'mx
)
(setq sst (ssget "W"
(trans (vlax-safearray->list mn) 0 1)
(trans (vlax-safearray->list mx) 0 1)
'((0 . "text") (1 . "~(*"))
)
)
(if (= (findfile (strcat (getvar "dwgprefix")
(cdr (assoc 1 (entget (ssname sst 0))))
".dwg"
)
)
nil
)
(progn
(command "-wblock"
(strcat (getvar "dwgprefix")
(cdr (assoc 1 (entget (ssname sst 0))))
)
" "
"0"
"WINDOW"
(trans (vlax-safearray->list mn) 0 1)
(trans (vlax-safearray->list mx) 0 1)
""
)
(command "oops")
)
;; progn
(alert
(strcat "\nThe "
(cdr (assoc 1 (entget (ssname sst 0))))
".dwg already exists in the current directory!!!"
)
)
)
;; if
)
;; progn
)
;; if
(princ)
)
希望有帮助
亨里克 通过www.Lee-Mac添加一个名为parse的函数。lsp它将以这种方式从字符串中提取数字(a2),或者a-2等将返回2。 昨天我在Autocad 2012中运行例程,它运行得很好,现在我尝试在Autocad 2009中运行它,我收到以下错误消息:“错误:自动化错误。没有数据库”有什么想法吗? BrianTFC。
我没有AC09来测试代码,因此,命令行类型“vlide”,在“vlide”中打开lisp文件,
在“调试”中选择“动画”,加载lisp文件并返回到AC,命令行类型为psave
看看代码在哪里出错,然后贴出它在哪里出错和错误。。。
我认为这与“activex”有关,但我不确定。
亨里克 这是它在vlide中停止的位置,(ssname ss 0)。与之前相同的错误。
页:
1
[2]