打印图纸,不折不扣的体力活。最多一次打了600多图,打印机都因"体力不支"中途休息了几次,如果不是用程序批打,估计我也得累个半死。
下面贴出打印过程的代码,加个for循环就可以批打了。简单说明一下打印函数
PrinterName - 打印机名称
Styles - 样式表名称
MediaName - 纸大小
Copies - 打印份数
AutoMedia - 自动纸开关
AutoRotate - 自动旋转,纵向/横向
AutoClose - 打印完毕关闭文档
AutoFrame - 自动判断图框,主要针对图框为块的情形
打印过程并没有提供全部的AUTO CAD打印选项,因为我一般用不到,比如"打印偏移"、"打印到文件"我从来不用的,如果需要可以添加进去。
程序会根据指定块名查找图框,也可以根据块的纵横比例自动判断是否为图框,然后按块打印,一图纸中允许有多个图框;
对于编组(Group)形式的图框,指定编组名即可
如果没有找到任何图框块或编组时,按图纸围打印
另外,打印时会先预览,然后由用户选择是否打印,避免打错。
[代码如下] - By:忽又一天 ./suddenday/
Sub QuickPlot()
Call PlotFunction("SHARP AR-M256", "", "A3", 1, True, True, False, True)
End Sub
Sub Plot2PDF()
Call PlotFunction("pdfFactory Pro", "", "", 1, True, True, False, True)
End Sub
Sub PlotA4()
Call PlotFunction("SHARP AR-M256", "", "A4", 1, False, True, False, True)
End Sub
'快速打印/批量打印
Public Sub PlotFunction(PrinterName As String, Styles As String, MediaName As String, Copies As Integer, _
AutoMedia As Boolean, AutoRotate As Boolean, AutoClose As Boolean, AutoFrame As Boolean)
On Error Resume Next
Dim ptMin As Variant, ptMax As Variant
Dim Ent As AcadEntity
Dim PlotCount As Integer
Set objDoc =
Set objLayout = ("Model")
Set objPlot =
' 设置打印机
If Not Trim(PrinterName) = "" Then
= PrinterName
Else
Exit Sub
End If
' 设置打印样式表
If Not Trim(Styles) = "" Then
= Styles
Else
= ""
End If
' 设置图纸尺寸
If AutoMedia Then
cadvba批量打印 来自淘豆网m.daumloan.com转载请标明出处.