乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 152|回复: 9

批量打印的问题

[复制链接]

16

主题

43

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
107
发表于 2005-8-17 20:14:00 | 显示全部楼层 |阅读模式
现在想编一个批量打印的程序,在一个文件夹里存了很多图形文件,比如:1.dwg,2.dwg,3.dwg.......每张图的大小都一样,都有一个固定的图框,设想只要运行这个批量打印的程序,就把每张图一次打出来,有例子吗?各位大侠?谢谢啦
回复

使用道具 举报

1

主题

18

帖子

2

银币

初来乍到

Rank: 1

铜币
22
发表于 2005-8-18 09:57:00 | 显示全部楼层
我正在做,做好了给你源码。
回复

使用道具 举报

16

主题

43

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
107
发表于 2005-8-18 15:06:00 | 显示全部楼层
谢谢啦,期待中!!!献上鲜花一朵
回复

使用道具 举报

16

主题

43

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
107
发表于 2005-8-20 08:56:00 | 显示全部楼层
等待中,y1982_0@126.com,高手请发信箱中
回复

使用道具 举报

6

主题

20

帖子

2

银币

初来乍到

Rank: 1

铜币
44
发表于 2005-10-14 20:13:00 | 显示全部楼层
我用S::STARTUP()函数 在r14 中实现了
回复

使用道具 举报

1

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
8
发表于 2005-10-26 12:03:00 | 显示全部楼层
请高手将源代码发给我,先谢了.Cb416@126.com
回复

使用道具 举报

4

主题

26

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 2005-11-24 19:17:00 | 显示全部楼层
请高手解决!
回复

使用道具 举报

9

主题

25

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
61
发表于 2006-2-11 15:34:00 | 显示全部楼层
acad2002 2004都自带了批量打印的程序阿!用的着编吗?
回复

使用道具 举报

4

主题

22

帖子

4

银币

初来乍到

Rank: 1

铜币
38
发表于 2006-7-10 22:16:00 | 显示全部楼层
现在很多图纸都画在一起,便于修改查看!!如果可以不用拆图就可以批量打印,那将是一件愉快的事情哟。。。。
回复

使用道具 举报

15

主题

54

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2006-7-11 10:27:00 | 显示全部楼层
我做过一个,不一定适合你,最好自己写一个,给你一个思路:
1. 在当前图纸中找到要打印的图框。这一步可以用两个方法做,一个是用for each entity in thisdrawing.modelspace的方法,查询每个对象,如果对象是块,那么取得名称,如果是需要的图框块名称,就取得了要打印的块,这个方法写程序较麻烦,速度也不快;第二种方法是使用select方法,设置过滤器的组码类型为2,也就是名称,组码的值就是图框块的名称了,十分迅速就可以找到图框。
2. 找到图框块以后,用getboundingbox方法取得图框的最外边大小。如果找到的图框不止一个,就需要设置一个数组临时存放范围坐标。
3. 全部OK了,使用下列代码来打印:
        PlotLowLeft(0) = 范围左下角X坐标
        PlotLowLeft(1) = 范围左下角Y坐标
        PlotUpRight(0) = 范围右上角X坐标
        PlotUpRight(1) = 范围右上角Y坐标     
   
        ' 设置打印范围
        ThisDrawing.ModelSpace.Layout.SetWindowToPlot PlotLowLeft, PlotUpRight

'设置打印方式是窗口
    ThisDrawing.ModelSpace.Layout.PlotType = acWindow

'设置打印比例为缩放到图纸大小,并中心对正   
    ThisDrawing.ModelSpace.Layout.StandardScale = acScaleToFit
    ThisDrawing.ModelSpace.Layout.CenterPlot = True
'设置笔为单色
    ThisDrawing.ModelSpace.Layout.StyleSheet = "monochrome.ctb"
   
    '选择打印机和纸张
    ThisDrawing.ModelSpace.Layout.ConfigName = "打印机名称"
    ThisDrawing.ModelSpace.Layout.CanonicalMediaName = "A4"
   
    ' 设置打印份数为1
    ThisDrawing.Plot.NumberOfCopies = 1
   
    ' 设置安静打印
    ThisDrawing.Plot.QuietErrorMode = True
   
    '旋转设置
    If PlotUpRight(0) - PlotLowLeft(0) > PlotUpRight(1) - PlotLowLeft(1) Then
        ThisDrawing.ModelSpace.Layout.PlotRotation = ac90degrees
        Else
            ThisDrawing.ModelSpace.Layout.PlotRotation = ac0degrees
    End If
   
'打印
    ThisDrawing.Plot.PlotToDevice

4. 如果需要选择打印机,可以做一个对话框,用GetPlotDeviceNames方法取得所有打印机名称,放到一个combobox中,就可以让用户选择打印机。如果要打印多个文件中的图框,可以同时打开多个dwg,用for each doc in application.documents的方法在每个dwg中循环。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 23:44 , Processed in 2.250956 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表