End If
' 设置范围打印
objLayout.PlotType = acExtents
' 对纵向的图纸设置
If Abs(ptMax(0) - ptMin(0)) < Abs(ptMax(1) - ptMin(1)) Then If AutoMedia Then objLayout.CanonicalMediaName = \ If AutoRotate Then objLayout.PlotRotation = ac0degrees End If
' 完全预览并提示打印
objPlot.DisplayPlotPreview acFullPreview
UserSel = MsgBox(\是否打印预览? \ & Chr(13) & Chr(13) & \打印到:\ & objLayout.ConfigName & _
\大小:\ & objLayout.CanonicalMediaName & \方式:acExtents(\ & objLayout.PlotType & \ & _
Chr(13) & Chr(13) & \选择[取消]退出程序!\, vbYesNoCancel, \打印选项\) If UserSel = vbYes Then
objPlot.PlotToDevice objLayout.ConfigName ElseIf UserSel = vbCancel Then Exit Sub End If End If
' 关闭文档 False 为不保存修改
If AutoClose Then objDoc.Close False, ThisDrawing.Name
End Sub
Public Function IsFrame(entobj As Object, AutoMode As Boolean) As Boolean '判断是否为图框
On Error Resume Next IsFrame = False Dim i As Integer
Dim FrmNameList As Variant
FrmNameList = \ '图框块、编组名列表 FrmNameList = Split(FrmNameList, \) For i = 0 To UBound(FrmNameList) If entobj.Name = FrmNameList(i) Then IsFrame = True Exit For End If Next
'块名不符时由大小比例判断是否为图框(可能会误判,不过几率不高)
If IsFrame = False And AutoMode And entobj.ObjectName = \ Then entobj.GetBoundingBox ptMin, ptMax Debug.Print ptMin(0) & \ & ptMax(0)
If Abs((ptMax(1) - ptMin(1)) / (ptMax(0) - ptMin(0)) - 1.414) < 0.01 Or Abs((ptMax(1) - ptMin(1)) / (ptMax(0) - ptMin(0)) - 0.707) < 0.01 Then IsFrame = True End If End If
End Function
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库CADVBA批量打印(2)在线全文阅读。
相关推荐: