CmdrDuh 发表于 2022-7-6 12:27:10

它实际上是从第二段较短的代码中调用的
 
我有设置默认打印机的代码,但它适用于windows而不是acad。
 
至于调用布局名称,您可以测试任何不是“layout*”的布局,并打印出来,假设您命名了布局

CmdrDuh 发表于 2022-7-6 12:30:23

我有一个LISP例程,用于从键盘调用打印,或从按钮调用宏。

-KarL- 发表于 2022-7-6 12:34:18

 
我们的模板只设置了一个布局选项卡,因此如果图形中有更多布局选项卡,则也需要打印它们。

CmdrDuh 发表于 2022-7-6 12:37:48

好的,我们可以将其更改为所有未命名为模型的布局,打印

CmdrDuh 发表于 2022-7-6 12:38:09

你认为你可以从这里调整它还是需要帮助?

ML0940 发表于 2022-7-6 12:42:21

命令
 
如果我错了,请纠正我;这很有趣。
看起来你正在从第二个子调出第一个子。
 
那么,你真的会先运行公共Sub供应商1117 Sub吗?
 
我想我可以做一个测试图并尝试一下,我只是好奇地看着它
 
谢谢
 
毫升

CmdrDuh 发表于 2022-7-6 12:45:30

是的,CALL语句调用第二个子集,并将参数传递给第二个子集。这样,我就有了一个例程来打印任意数量的方式。我有12个短版本,它们都调用主sub并传递我想要的设置。

-KarL- 发表于 2022-7-6 12:49:39

我尝试一下代码,看看是否可以让它工作,否则我会回来的。
 
非常感谢你的帮助!

ML0940 发表于 2022-7-6 12:51:07

对于函数部分,这是一种很酷的方法
 
 
是的,我也会这么做。
 
如果布局被命名,那么其中一个被删除,“我认为”将重新创建一个名为Layout1的新布局。因此,过滤掉名称布局可能不是最好的方法。
 
如果你真的想打印所有版面,过滤掉模型并循环浏览所有版面(在我看来)可能是最好的攻击。
 
如果布局已命名,我将设置对特定布局名称的引用。
 
毫升

-KarL- 发表于 2022-7-6 12:56:41

我成功了,下面是我如何绕过多重布局的
 

   For x = 0 To Drawing.Layouts.Count - 1
       Set Layout = Drawing.Layouts(x)
       Layout.RefreshPlotDeviceInfo
       Layout.ConfigName = Plotter         ' CALL PLOTTER
       Layout.PlotType = acExtents
       Layout.PlotRotation = ROT         ' CALL ROTATION
       Layout.StyleSheet = CTB             ' CALL CTB FILE
       Layout.PlotWithPlotStyles = True
       Layout.PlotViewportBorders = False
       Layout.PlotViewportsFirst = True
       Layout.CanonicalMediaName = SIZE    ' CALL SIZE
       Layout.PaperUnits = acInches
       Layout.StandardScale = PSCALE       ' CALL PSCALE
       Layout.ShowPlotStyles = False
       Layout.ScaleLineweights = True
       Layout.CenterPlot = True
       Drawing.ActiveLayout = Layout
       Drawing.Plot.NumberOfCopies = 1
       Drawing.Regen acAllViewports
       Drawing.Plot.PlotToDevice
   Next x
   Set Layout = Nothing
页: 1 [2]
查看完整版本: 使用VBA打印