'输出打印路径
Print #1, \打印路径:\ '输出打印路径列表的信息
Call OutputData(cboPlotPath, 1)
'输出打印比例
Print #1, \打印比例:\ '输出打印比例列表的信息
Call OutputData(cboPlotScale, 1)
'输出当前打印比例
Print #1, \当前打印比例:\ Print #1, txtNumerator.Text Print #1, txtDenominator.Text
'输出是否居中打印
Print #1, \是否居中打印:\
Call OutputData2(chkCenterPlot, 1)
'输出打印偏移
Print #1, \打印偏移:\ Print #1, txtOffsetX.Text Print #1, txtOffsetY.Text
'输出是否打印对象线宽
Print #1, \是否打印对象线宽:\
Call OutputData2(chkPlotWithLineweights, 1) '输出是否采用打印样式
Print #1, \是否采用打印样式:\
Call OutputData2(chkPlotWithPlotStyles, 1) '输出是否隐藏图纸空间对象
Print #1, \是否隐藏图纸空间对象:\ Call OutputData2(chkPlotHidden, 1)
'输出图框形式
Print #1, \图框形式:\ '输出图框形式信息
If optBlock.Value = True Then strTemp = \图块\ Else
strTemp = \图层\ End If
Print #1, strTemp
'输出图块名列表
Print #1, \图块名列表:\ '输出图块名列表的信息
Call OutputData(cboBlockName, 1)
'输出图层名列表
Print #1, \图块名列表:\ '输出图层名列表的信息
Call OutputData(cboLayerName, 1)
'关闭文件 Close 1
End Sub
Private Sub cmdPick_Click() On Error Resume Next
Dim objSelect As AcadEntity Dim ptPick As Variant Dim strTemp As String
Set objDoc = ThisDrawing.Application.ActiveDocument '将控制权交给AutoCAD frmBatchPlot.Hide
'在AutoCAD中选择实体并判断类型 Retry:
objDoc.Utility.GetEntity objSelect, ptPick, vbCrLf & \请选择实体:\ ' 处理按下Esc键的错误
If objSelect Is Nothing Then
If CheckKey(VK_ESCAPE) = True Then '显示对话框
frmBatchPlot.Show Exit Sub Else GoTo Retry End If End If
' 处理未选择到实体的错误 If Err <> 0 Then Err.Clear GoTo Retry End If
'若为指定图块
If optBlock.Value = True Then '判断实体是否块参照
If TypeOf objSelect Is AcadBlockReference Then '判断实体是否模型空间、图纸空间和匿名块
If StrComp(Left(objSelect.name, 1), \ '获得块参照名
strTemp = objSelect.name Else
MsgBox \您选择的是匿名块,请重新选择块参照!\ '显示对话框
frmBatchPlot.Show Exit Sub End If Else
MsgBox \您选择的不是块参照,请重新选择块参照!\ '显示对话框
frmBatchPlot.Show Exit Sub End If
'刷新块参照列表 Call ListBlock
'将所选块参照在组合框中置为当前
Call SetSelected(cboBlockName, strTemp) Else
'判断实体是否多段线
If TypeOf objSelect Is AcadLWPolyline Then '获得多段线所在图层名
strTemp = objSelect.Layer Else
MsgBox \您选择的不是轻量多段线,请重新选择轻量多段线!\ '显示对话框
frmBatchPlot.Show Exit Sub End If
' 刷新图层列表 Call ListLayer
'将所选实体所在图层在组合框中置为当前
Call SetSelected(cboLayerName, strTemp) End If
'显示对话框
frmBatchPlot.Show
End Sub
Private Sub cmdPreview_Click() '若按图块进行批量打印
If optBlock.Value = True Then
If cboBlockName.ListCount = 0 Or cboBlockName.Text = \ MsgBox \请先选择块参照!\ Exit Sub End If
Call PreviewByBlock(cboBlockName.Text) '若按图层进行批量打印 Else
If cboLayerName.ListCount = 0 Or cboLayerName.Text = \ MsgBox \请先选择块参照!\ Exit Sub End If
Call PreviewByLayer(cboLayerName.Text) End If
End Sub
Private Sub cmdRefresh_Click() '刷新块参照列表 Call ListBlock ' 刷新图层列表 Call ListLayer End Sub
Private Sub cmdPlot_Click() '若按图块进行批量打印
If optBlock.Value = True Then
If cboBlockName.ListCount = 0 Or cboBlockName.Text = \ MsgBox \请先选择块参照!\ Exit Sub End If
Call BatchPlotByBlock(cboBlockName.Text) '若按图层进行批量打印 Else
If cboLayerName.ListCount = 0 Or cboLayerName.Text = \ MsgBox \请先选择块参照!\ Exit Sub End If
Call BatchPlotByLayer(cboLayerName.Text) End If
End Sub
Private Sub cmdAbout_Click() '显示关于对话框 frmAbout.Show End Sub
Private Sub optBlock_Change()
'设置“图块与图层”组各控件激活状态 If optBlock.Value = True Then lbBlockName.Enabled = True cboBlockName.Enabled = True lbLayerName.Enabled = False cboLayerName.Enabled = False Else
lbBlockName.Enabled = False cboBlockName.Enabled = False lbLayerName.Enabled = True cboLayerName.Enabled = True End If End Sub
Private Sub optLayer_Change()
'设置“图块与图层”组各控件激活状态 If optBlock.Value = True Then lbBlockName.Enabled = True cboBlockName.Enabled = True lbLayerName.Enabled = False cboLayerName.Enabled = False Else
lbBlockName.Enabled = False cboBlockName.Enabled = False lbLayerName.Enabled = True cboLayerName.Enabled = True End If End Sub
Private Sub optMillimeters_Change() '设置图纸单位
If (optMillimeters.Value = True And ms = False) Then '设置图纸单位
objPlotConfiguration.PaperUnits = acMillimeters '修改标签
lbUnit.Caption = \毫米 =\