乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 19|回复: 19

[编程交流] 使用VBA打印

[复制链接]

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 11:53:45 | 显示全部楼层 |阅读模式
我在VBA中创建了一个批处理程序,可以从列表中打开图形,并对图形执行一系列操作,以准备发布。最后一件事,我希望它做的是打印一个11X17副本的图纸为我们的活页夹,但我不能想出如何在VBA中做到这一点。
 
任何帮助都将不胜感激!
回复

使用道具 举报

0

主题

89

帖子

147

银币

限制会员

铜币
-9
发表于 2022-7-6 11:59:37 | 显示全部楼层
卡尔
 
您研究过VBA中的绘图配置吗?
 
我没有一个很好的例子,但如果你去VBA帮助并键入它,很可能会有一个例子让你继续
 
毫升
回复

使用道具 举报

0

主题

89

帖子

147

银币

限制会员

铜币
-9
发表于 2022-7-6 12:03:22 | 显示全部楼层
好的,我刚刚查看了VBA中的帮助
 
您可能需要添加plotconfig,或者可能只将此方法应用于现有plotconfig
 
此代码来自VBA帮助屏幕
 
  1. Sub Example_GetPaperSize()
  2. 'This example gets the width and height of the default paper size for 'your system.
  3. Dim PaperWidth As Double, PaperHeight As Double
  4. ThisDrawing.ActiveLayout.GetPaperSize PaperWidth, PaperHeight
  5. MsgBox "The default paper size is " & vbCrLf & _
  6. "Width: " & PaperWidth & vbCrLf & _
  7. "Height: " & PaperHeight
  8. End Sub

 
毫升
回复

使用道具 举报

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 12:03:55 | 显示全部楼层
我的帮助菜单没有列出AutoCAD命令,只有基本的VBA命令。
我正在寻找一种方法来创建一个新的绘图配置,然后使用该配置而不是图形中已有的配置打印图形,但我还无法找出该部分。
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 12:07:14 | 显示全部楼层
这应该让你开始。你是想硬编码你的纸张尺寸还是把它作为一个参数传递?
  1. Public Sub SetupAndPlot(ByRef Plotter As String, CTB As String, SIZE As String, PSCALE As String, ROT As String)
  2.      Dim Layout As AcadLayout
  3.      On Error GoTo Err_Control
  4.      Set Layout = ThisDrawing.ActiveLayout
  5.      Layout.RefreshPlotDeviceInfo
  6.      Layout.ConfigName = Plotter    ' CALL PLOTTER
  7.      Layout.PlotType = acExtents
  8.      Layout.PlotRotation = ROT    ' CALL ROTATION
  9.      Layout.StyleSheet = CTB    ' CALL CTB FILE
  10.      Layout.PlotWithPlotStyles = True
  11.      Layout.PlotViewportBorders = False
  12.      Layout.PlotViewportsFirst = True
  13.      Layout.CanonicalMediaName = SIZE    ' CALL SIZE
  14.      Layout.PaperUnits = acInches
  15.      Layout.StandardScale = PSCALE    'CALL PSCALE
  16.      Layout.ShowPlotStyles = False
  17.      ThisDrawing.Plot.NumberOfCopies = 1
  18.      Layout.CenterPlot = True
  19.      If SIZE = "ARCH_expand_C_(24.00_x_18.00_Inches)" Then
  20.            Layout.ScaleLineweights = True
  21.      End If
  22.      ThisDrawing.Regen acAllViewports
  23.      ZoomExtents
  24.      Set Layout = Nothing
  25.      ThisDrawing.Save
  26. Exit_Here:
  27.      Exit Sub
  28. Err_Control:
  29.      Select Case Err.Number
  30.      Case "-2145320861"
  31.            MsgBox "Unable to Save Drawing- " & Err.Description
  32.      Case "-2145386493"
  33.            MsgBox "Drawing is setup for Named Plot Styles." & (Chr(13)) & (Chr(13)) & "Run CONVERTPSTYLES command", vbCritical, "Change Plot Style"
  34.      Case Else
  35.            MsgBox "Unknown Error " & Err.Number
  36.      End Select
  37. End Sub
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 12:10:27 | 显示全部楼层
我正在将纸张大小、ctb、旋转、pc3等传递给这个设置和打印的函数。
 
这是传递信息的函数
  1. Public Sub Vendor1117()
  2.      Call SetupAndPlot("11x17Draft.pc3", "11X17-CHECKSET.ctb", "ANSI_B_(11.00_x_17.00_Inches)", acScaleToFit, ac90degrees)
  3.      ThisDrawing.Plot.PlotToDevice
  4.            ThisDrawing.Close (True)
  5. End Sub
回复

使用道具 举报

9

主题

30

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 12:14:07 | 显示全部楼层
CmdrDuh公司
 
这看起来像是我需要的,不过有几个问题:
1、是否需要。pc3文件还是网络打印机名称?
2.它将打印图纸中的所有布局还是仅打印活动布局?
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 12:16:56 | 显示全部楼层
它可以是网络打印机的名称,并且正如所写的那样,只有活动布局。但是,它可以修改为打印所有布局,但是,您必须知道所有布局都很好。我的意思是,启动新图形时,默认模板(至少在我的机器上)有两个布局选项卡。我通常不使用第二个布局,我会删除它。但是,如果要打印所有布局,则可能会将空白页发送到打印机
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 12:20:45 | 显示全部楼层
如果你看这张图片,你可以看到我突出显示了一个网络打印机。我打开“局部变量”窗口,查看代码的当前配置。
 
 
我可以附加PNG文件吗?
125350mtajoa34p83jlbju.jpg
回复

使用道具 举报

0

主题

89

帖子

147

银币

限制会员

铜币
-9
发表于 2022-7-6 12:23:11 | 显示全部楼层
嘿,指挥官,
 
很高兴再次见到你。
 
卡尔,在VBA编辑器帮助中,有一个用于对象浏览器的按钮;单击该按钮后,将出现一个文本框。在那里,键入plotconfig,即您将看到代码示例和方法。
我并不是说你需要的每一样东西都在那里,但它会消失。让你从正确的方向开始;不仅是为了这个,还有很多其他的事情。
 
酷,我想我以后也可以用这个了。
 
Cmd,如果你要使用这个函数,你会在第一个子函数的哪个部分调用它?
 
Cmd,你没有设置默认打印机的代码吗?
这个也可以用吗?
 
阐述卡尔的问题;Karl CMD在他的代码中使用了活动布局,您有特定的布局名称吗?
如果是这样,可以将此代码设置为该布局。我想这可能就是你想要的?
 
毫升
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 10:29 , Processed in 0.638361 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表