明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2455|回复: 8

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

[复制链接]
发表于 2006-1-14 20:44:00 | 显示全部楼层 |阅读模式
我用VB在CAD里生成了1000多个图层,其中三个图层的内容是公共图层,打印时要和其它图层一起打印。我现在只能先关闭不打印的图层,然后再打印,这样需重复1000多次。谢谢各位帮帮我,怎样用程序实现自动打印?我跪求了!
发表于 2006-1-14 21:44:00 | 显示全部楼层

没看懂

假设A、B、C三个图层是公共图层

其他的1000多个图层 每个图层要打一份 ?

就是 A+B+C的内容 加上第1个图层的内容 = 打印一份

就是 A+B+C的内容 加上第2个图层的内容 = 打印一份

就是 A+B+C的内容 加上第3个图层的内容 = 打印一份

…………

…………

???是这样么?

 楼主| 发表于 2006-1-14 21:54:00 | 显示全部楼层
谢谢楼上的,我就是这个意思,可是怎么才能做到用程序打印呢?谢谢了!
发表于 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

 

应该能行

发表于 2006-1-14 22:22:00 | 显示全部楼层

还有 再那2行=====之间加代码的时候 最好加一句

MsgBox "现在正在打印的图层是" + a.Name + ",先不要按确定,等打完了再按."

发表于 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 '<----------改成具体的公共层名字
ThisDrawing.Layers("公共图层1").Plottable = True  '<----------改成具体的公共层名字
ThisDrawing.Layers("公共图层2").LayerOn = True '<----------改成具体的公共层名字
ThisDrawing.Layers("公共图层2").Plottable = True  '<----------改成具体的公共层名字
ThisDrawing.Layers("公共图层3").LayerOn = True '<----------改成具体的公共层名字
ThisDrawing.Layers("公共图层3").Plottable = 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

发表于 2006-1-15 02:23:00 | 显示全部楼层

a nice work!

 楼主| 发表于 2006-1-15 10:49:00 | 显示全部楼层
太感谢你了,我马上试一下。
发表于 2012-7-15 19:53:28 | 显示全部楼层
本帖最后由 crazylsp 于 2012-7-15 19:55 编辑

感谢686楼主分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 16:25 , Processed in 0.182479 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表