cad打印代码(7)

2019-09-01 11:09

'对当前图形模型空间中的所有打印区域进行打印 Dim SSet As AcadSelectionSet '使用选择集获得对象集合

Call SelectByBlock(strBlockReferenceName, SSet)

'对选择集中每个对象进行打印或预览 For Each ent In SSet

'获得每个对象最小包围框的两个角点 ent.GetBoundingBox ptMin, ptMax '将三维点转化为二维点坐标

ReDim Preserve ptMin(0 To 1) ReDim Preserve ptMax(0 To 1) '设置打印窗口

objLayout.SetWindowToPlot ptMin, ptMax ' 打印当前的区域 '若选中“打印到文件”

If chkPlotToFile.Value Then

objPlot.PlotToFile cboPlotPath.Text & objDoc.name & \\

n = n + 1 Else

objPlot.PlotToDevice objLayout.ConfigName End If Next ent ' 删除选择集 SSet.Delete

' 恢复系统变量的值

objDoc.SetVariable \ '保存当前图形 'objDoc.Save

'关闭但不保存当前图形 '保证至少一个文件打开

If ThisDrawing.Application.Documents.count > 1 Then objDoc.Close False End If Next i

'显示对话框

frmBatchPlot.Show End Sub

Private Sub BatchPlotByLayer(strLayerName As String) On Error Resume Next

'如果列表框中未存在任何元素

If lstPlotFiles.ListCount = 0 Then

MsgBox \请先向列表框中添加文件!\ Exit Sub End If

'将控制权交给AutoCAD frmBatchPlot.Hide

' 对第i个图形的每一个打印区域进行打印 Dim ptMin As Variant, ptMax As Variant Dim ent As AcadEntity

Dim i As Integer, n As Integer

For i = 0 To lstPlotFiles.ListCount - 1 n = 1

'检查文件是否存在

If Len(Dir(lstPlotFiles.List(i))) = 0 Then

MsgBox \文件\不存在!\ End If

'打开或激活第i个图形文件

Call OpenFile(lstPlotFiles.List(i))

Set objDoc = ThisDrawing.Application.ActiveDocument '实现范围缩放

ThisDrawing.Application.ZoomExtents ' 确保当前布局是模型空间

Set objLayout = objDoc.Layouts.Item(\ Set objPlot = objDoc.Plot ' 设置打印选项

Call SetPlotConfiguration ' 将打印设置应用到当前图形

objLayout.CopyFrom objPlotConfiguration '重新生成当前图形

objDoc.Regen acAllViewports

' 确保AutoCAD在前台进行打印,这样后一次打印会在前一次打印完成之后才开始,避免出现错误

objDoc.SetVariable \

'对当前图形模型空间中的所有打印区域进行打印 Dim SSet As AcadSelectionSet '使用选择集获得对象集合

Call SelectByLayer(strLayerName, SSet)

'对选择集中每个对象进行打印或预览 For Each ent In SSet

'获得每个对象最小包围框的两个角点

ent.GetBoundingBox ptMin, ptMax '将三维点转化为二维点坐标

ReDim Preserve ptMin(0 To 1) ReDim Preserve ptMax(0 To 1) '设置打印窗口

objLayout.SetWindowToPlot ptMin, ptMax ' 打印当前的区域 '若选中“打印到文件”

If chkPlotToFile.Value Then

objPlot.PlotToFile cboPlotPath.Text & objDoc.name & \\

n = n + 1 Else

objPlot.PlotToDevice objLayout.ConfigName End If Next ent ' 删除选择集 SSet.Delete

' 恢复系统变量的值

objDoc.SetVariable \ '保存当前图形 'objDoc.Save

'关闭但不保存当前图形 '保证至少一个文件打开

If ThisDrawing.Application.Documents.count > 1 Then objDoc.Close False End If Next i

'显示对话框

frmBatchPlot.Show End Sub

Private Sub PreviewByBlock(strBlockReferenceName As String) On Error Resume Next '如果列表框中未存在任何元素

If lstPlotFiles.ListCount = 0 Then

MsgBox \请先向列表框中添加文件!\ Exit Sub End If

'将控制权交给AutoCAD frmBatchPlot.Hide

' 对第一个图形的第一个打印区域进行完全预览

Dim ptMin As Variant, ptMax As Variant Dim ent As AcadEntity

Dim i As Integer, n As Integer

For i = 0 To lstPlotFiles.ListCount - 1 n = 1

'检查文件是否存在

If Len(Dir(lstPlotFiles.List(i))) = 0 Then

MsgBox \文件\不存在!\ End If

'打开或激活第i个图形文件

Call OpenFile(lstPlotFiles.List(i))

Set objDoc = ThisDrawing.Application.ActiveDocument '实现范围缩放

ThisDrawing.Application.ZoomExtents ' 确保当前布局是模型空间

Set objLayout = objDoc.Layouts.Item(\ Set objPlot = objDoc.Plot ' 设置打印选项

Call SetPlotConfiguration ' 将打印设置应用到当前图形

objLayout.CopyFrom objPlotConfiguration '重新生成当前图形

objDoc.Regen acAllViewports

'对当前图形模型空间中的所有打印区域进行完全预览 Dim SSet As AcadSelectionSet '使用选择集获得对象集合

Call SelectByBlock(strBlockReferenceName, SSet) '对选择集中每个对象进行打印或预览 For Each ent In SSet

'获得每个对象最小包围框的两个角点 ent.GetBoundingBox ptMin, ptMax '将三维点转化为二维点坐标

ReDim Preserve ptMin(0 To 1) ReDim Preserve ptMax(0 To 1) '设置打印窗口

objLayout.SetWindowToPlot ptMin, ptMax '完全预览当前的区域

objPlot.DisplayPlotPreview acFullPreview n = n + 1 If n > 1 Then

'恢复原来的打印设置

objLayout.CopyFrom objOriginalPC '显示对话框

frmBatchPlot.Show Exit Sub End If Next ent ' 删除选择集 SSet.Delete Next i

'无打印区域时显示对话框

MsgBox \选定图形中无打印区域!\ '恢复原来的打印设置

objLayout.CopyFrom objOriginalPC '显示对话框

frmBatchPlot.Show

End Sub

Private Sub PreviewByLayer(strLayerName As String) On Error Resume Next '如果列表框中未存在任何元素

If lstPlotFiles.ListCount = 0 Then

MsgBox \请先向列表框中添加文件!\ Exit Sub End If

'将控制权交给AutoCAD frmBatchPlot.Hide

' 对第一个图形的第一个打印区域进行完全预览 Dim ptMin As Variant, ptMax As Variant Dim ent As AcadEntity

Dim i As Integer, n As Integer

For i = 0 To lstPlotFiles.ListCount - 1 n = 1

'检查文件是否存在

If Len(Dir(lstPlotFiles.List(i))) = 0 Then

MsgBox \文件\不存在!\ End If

'打开或激活第i个图形文件

Call OpenFile(lstPlotFiles.List(i))

Set objDoc = ThisDrawing.Application.ActiveDocument '实现范围缩放

ThisDrawing.Application.ZoomExtents ' 确保当前布局是模型空间

Set objLayout = objDoc.Layouts.Item(\


cad打印代码(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:杭州市2018年中考数学真题试题(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: