[求助]如何打印所有图层
我用VB在CAD里生成了1000多个图层,其中三个图层的内容是公共图层,打印时要和其它图层一起打印。我现在只能先关闭不打印的图层,然后再打印,这样需重复1000多次。谢谢各位帮帮我,怎样用程序实现自动打印?我跪求了! 没看懂假设A、B、C三个图层是公共图层
其他的1000多个图层 每个图层要打一份 ?
就是 A+B+C的内容 加上第1个图层的内容 = 打印一份
就是 A+B+C的内容 加上第2个图层的内容 = 打印一份
就是 A+B+C的内容 加上第3个图层的内容 = 打印一份
…………
…………
???是这样么?
谢谢楼上的,我就是这个意思,可是怎么才能做到用程序打印呢?谢谢了! Sub Test()
Dim a As AcadLayer
For i = 0 To ThisDrawing.Layers.Count - 1
ThisDrawing.Layers.Item(i).LayerOn = False
Next i
ThisDrawing.Layers("公共图层1").LayerOn = True '改成具体的名字
ThisDrawing.Layers("公共图层2").LayerOn = True '改成具体的名字
ThisDrawing.Layers("公共图层3").LayerOn = True '改成具体的名字
For Each a In ThisDrawing.Layers
If a.LayerOn = False Then
a.LayerOn = True
'===============================
'是不是把图层关了 就不会打印了?
'如果是的话 那在这两行之间加入打印的代码
'我不知道用什么语句来进行打印
'只能帮你这么多了
'===============================
a.LayerOn = False
End If
Next a
End Sub
应该能行
还有 再那2行=====之间加代码的时候 最好加一句
MsgBox "现在正在打印的图层是" + a.Name + ",先不要按确定,等打完了再按."
帮你写好了
先设置好默认的打印页面设置
然后 运行下面的程序
Sub DaYin()
Dim a As AcadLayer
For i = 0 To ThisDrawing.Layers.Count - 1
ThisDrawing.Layers.Item(i).LayerOn = False
ThisDrawing.Layers.Item(i).Plottable = False
Next i
ThisDrawing.Layers("公共图层1").LayerOn = True '
For Each a In ThisDrawing.Layers
If a.LayerOn = False Then
a.LayerOn = True
a.Plottable = True
ThisDrawing.Plot.PlotToDevice
If MsgBox("现在正在打印的图层是" + a.Name _
+ ",先不要按确定,等打完了再按." + "如果发现打印格式不对,就按取消", _
vbOKCancel + vbInformation) = vbCancel Then Exit For
a.LayerOn = False
a.Plottable = False
End If
Next a
End Sub
a nice work!
太感谢你了,我马上试一下。
感谢686楼主分享。
页:
[1]