gmmdinesh 发表于 2022-7-5 16:47:08

用一个命令绘制所有布局

大家好。。我再次需要帮助。。在我的项目中有许多不同大小的布局(A1、A2、A3和A4所有布局在一个*.dwg文件中)。我需要一个lisp打印所有布局根据布局大小与一个命令。
有人能帮我吗。?
 
 
提前谢谢。

Lee Mac 发表于 2022-7-5 17:01:20

你试过发布命令了吗?

gmmdinesh 发表于 2022-7-5 17:06:57

你好李·麦克。。
谢谢你的回复。。
我已尝试发布命令。。但它每次都会启动一些设置以继续该过程。而且发布所有布局也需要很多时间。。。我需要自动绘制所有布局,无需任何初始设置。
 
再次感谢。。

maratovich 发表于 2022-7-5 17:15:11

附加示例文件

Grrr 发表于 2022-7-5 17:24:06

你可以这样开始:

(foreach layout (layoutlist)
(command "_.PLOT" ... )
)

gmmdinesh 发表于 2022-7-5 17:28:08

你好非常感谢您的回复。。
仅供参考。
我附上了样本文件。在这个文件中只有四个布局。
但在实际文件中,至少有20个布局。
样品图纸
 
再次感谢。

Grrr 发表于 2022-7-5 17:35:49

这似乎是最简单的方法:

(defun C:test ( / cmd )
(setq cmd (getvar 'cmdecho)) (setvar 'cmdecho 0)
(foreach Layout (layoutlist)
   (command "_.-PLOT"
   "No"                                        ; Detailed plot configuration? <No>: No
   Layout                                    ; Enter a layout name or [?] <Layout1>:
   ""                                          ; Enter a page setup name
   "DWG To PDF.pc3"                            ; Enter an output device name or [?] <DWG To PDF.pc3>:
   (strcat (getvar "DWGPREFIX") Layout ".pdf") ; Directory to save
   "No"                                        ; save changes to page setup?
   "Yes"                                       ; proceed with plot?
   ); command
); foreach
(setvar 'cmdecho cmd)
(princ)
); defun C:test

有关详细的绘图配置,请查看scottbolton在此线程中的帖子。

BIGAL 发表于 2022-7-5 17:44:58

Grr由于Gmmdinesh意味着不同尺寸的布局标题栏,代码需要检查标题栏名称,然后才能使用正确的图纸尺寸。我还建议使用窗口,而不是更可靠的布局。
 
Grr只是一个添加到绘图pdf相同的方法,这是按图纸范围而不是全部绘图pdf。
 
Gmmdinesh您需要在每个布局中添加某种形式的标题栏,以便确定大小。即使将一个矩形作为一个区块,这样也可以算出绘图区域的两个角。请参见下面的代码示例,这是一张打印到A3图纸的A1图纸。
绘图3pdfrange。lsp
getvals。lsp

rkmcswain 发表于 2022-7-5 17:53:48

 
我不明白这个->“但它每次都会启动一些设置来继续这个过程”
 
您还说“我需要自动绘制所有布局,而不需要任何初始设置”-但这正是“发布”命令所做的。
它打印布局,不需要用户的交互。
 
从图纸集管理器发布时也是如此。
页: [1]
查看完整版本: 用一个命令绘制所有布局