mayuezxl 发表于 2006-1-14 20:44:00

[求助]如何打印所有图层

我用VB在CAD里生成了1000多个图层,其中三个图层的内容是公共图层,打印时要和其它图层一起打印。我现在只能先关闭不打印的图层,然后再打印,这样需重复1000多次。谢谢各位帮帮我,怎样用程序实现自动打印?我跪求了!

68651521 发表于 2006-1-14 21:44:00

没看懂
假设A、B、C三个图层是公共图层
其他的1000多个图层 每个图层要打一份 ?
就是 A+B+C的内容 加上第1个图层的内容 = 打印一份
就是 A+B+C的内容 加上第2个图层的内容 = 打印一份
就是 A+B+C的内容 加上第3个图层的内容 = 打印一份
…………
…………
???是这样么?

mayuezxl 发表于 2006-1-14 21:54:00

谢谢楼上的,我就是这个意思,可是怎么才能做到用程序打印呢?谢谢了!

68651521 发表于 2006-1-14 22:16:00

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


应该能行

68651521 发表于 2006-1-14 22:22:00

还有 再那2行=====之间加代码的时候 最好加一句
MsgBox "现在正在打印的图层是" + a.Name + ",先不要按确定,等打完了再按."

68651521 发表于 2006-1-14 22:35:00

帮你写好了
先设置好默认的打印页面设置
然后 运行下面的程序
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

daziduan 发表于 2006-1-15 02:23:00

a nice work!

mayuezxl 发表于 2006-1-15 10:49:00

太感谢你了,我马上试一下。

crazylsp 发表于 2012-7-15 19:53:00


感谢686楼主分享。
页: [1]
查看完整版本: [求助]如何打印所有图层