图纸文件名与布局相同
您好,是否有一个LISP例程,当您保存图形时,它会自动创建一个与图形文件名相同的布局,如果有多个布局,则删除?(例如,如果图纸文件名为A-001.dwg,则布局名称也将为A-001。它将自动重命名现有布局名称,而不是键入。这样,每次保存为图形时,它都会自动对布局名称执行相同的操作)。在我们的office CAD标准中,我们仅为每个图纸文件保留一(1)个布局。图纸文件名与布局名称相同。
非常感谢你的帮助。
提前谢谢。 您可以在中使用类似的内容和一些saveas代码。。。
(vla-put-name
(vla-item
(vla-get-layouts
(vla-get-activedocument
(vlax-get-acad-object))) 0) (substr (setq dwgn (getvar "dwgname")) 1 (- (strlen dwgn) 4))) 哇,我试过你的代码,太棒了。
谢谢commandobill先生:) 没问题!希望你一切顺利。 您好,有时代码如果工作完美,我的意思是它根据图纸名称重命名布局。但有时它也不会重命名布局,命令提示符上出现的消息是:command:(load“rename layout”);错误:自动化错误。无法重命名模型布局。。
谢谢
嗯,我必须查看您的代码,但我会添加一个检查,看看您试图更改的布局是否是模型选项卡,然后再运行其余的代码。 无论我是否在model选项卡、modelspace或papespace中,有时它都根本不起作用。
代码如下:
(vla put名称
(vla项目
(vla获取布局
(vla获取activedocument
(vlax get acad object)))0)(substr(setq dwgn(getvar“dwgname”))1(-strlen dwgn)4)
这和你发给我的代码是一样的。
谢谢你的时间commandobill。 正如我所说,我认为您需要的是一个简单的检查,看看您试图更改的选项卡是否是model。像这样的事情就足够了。
(defun c:rname ( / lay layo dwgn)
(setq layo (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))))
(if (= (vla-get-name (setq lay (vla-item layo 0))) "Model")
(setq lay (vla-item layo 1)))
(vla-put-name lay (substr (setq dwgn (getvar "dwgname")) 1 (- (strlen dwgn) 4)))
) 你的新代码现在运行得很好。
谢谢比尔。
页:
[1]