乐筑天下

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

关于连续打印的问题,请教!!

[复制链接]

15

主题

54

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2005-6-19 12:40:00 | 显示全部楼层 |阅读模式
在乐筑天下上学到了不少东西,现在自己也开始试着用VBA写东西了。目前碰到一个打印问题,不知如何解决,向各位前辈请教:
现在搞得这个程序是连续打印,用遍历CAD图形的方法找到指定名称的块参照,找到后用getboundingbox方法确定块参照的外围大小,而后使用窗口方式,plottodevice方法打印块参照(全部操作在modelspace),一个打印完再找另一个,找到继续打印(图形中同样名称的块参照可能有多个)。现在遇到的问题是,使用plottodevice方法打印后,硬盘一阵闪动,程序却在继续遍历并打印下一个,此时第二个打印会出错(VBAIDE报使用plottodevice方法失败),而且失败时第一个还没有打出来。如果报失败时,什么也不做对着屏幕发呆10秒钟,等到硬盘不闪且打印机开始动作了,按VBAIDE里的继续运行程序却可以打印第二个了。
请问前辈们是否是第一个打印还没有送到打印机里,就开始打印第二个造成冲突了呢?如果是,如何检测前一个打印是否完成了呢?
谢谢!谢谢!
回复

使用道具 举报

15

主题

54

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2005-6-22 16:39:00 | 显示全部楼层
自己解决了。发现写的程序其实在AutoCAD2002里运行正常,但自己图新鲜,装了个2006,程序在2006里写的,就没有注意。其实2006多了个backGroundPlot变量,正常写的批量打印程序需要首先将该变量置0,然后就正常了。
不过不太明白,这个变量究竟有什么使用价值,也没明白如果此变量不是0打印程序怎么写。反正现在程序一上去先把此变量置0,一切正常不管那么多了。
回复

使用道具 举报

13

主题

396

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
448
发表于 2005-6-22 16:12:00 | 显示全部楼层
把程序贴上来吧.
回复

使用道具 举报

4

主题

16

帖子

5

银币

初来乍到

Rank: 1

铜币
32
发表于 2005-8-6 20:56:00 | 显示全部楼层
这位仁兄,能把您的程序分享一下吗?
万分感谢了!
我的邮箱是yzbj19832002@163.com
回复

使用道具 举报

15

主题

54

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2005-8-8 17:31:00 | 显示全部楼层
收Mail !
回复

使用道具 举报

15

主题

33

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
93
发表于 2005-8-8 21:16:00 | 显示全部楼层
楼主,有好东东分享一下,我都流口水了~~~
邮箱:lsgo2000.student@sina.com
谢谢!!

回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2008-8-22 20:08:00 | 显示全部楼层
backGroundPlot设置为0代表在前台打印,设置为2代表后台打印
回复

使用道具 举报

0

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
7
发表于 2008-8-22 21:33:00 | 显示全部楼层
前台打印才会按照先后顺序一个一个打印
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
2
发表于 2008-11-18 15:46:00 | 显示全部楼层
以后画图画布局里面,,批量打印非常简单。
回复

使用道具 举报

0

主题

6

帖子

2

银币

初来乍到

Rank: 1

铜币
6
发表于 2008-11-18 19:36:00 | 显示全部楼层
我也写了这个程序,方法差不多,先是全选图中名为“图框”的块,
        Set SS_Frm = ThisDrawing.SelectionSets.Add("SS_PlotFrm")
        
        ReDim Preserve FltType(0)
        ReDim Preserve FltData(0)
        FltType(0) = 2
        FltData(0) = "图框"
        SS_Frm.Select acSelectionSetAll, , , FltType, FltData
再根据块的尺寸GetBoundingBox,取得打印区域,然后进行批量打印。
不过我的程序有一个问题没有解决,就是打印时无法确定这个块是在哪个布局中,所以在当前激活的布局中的块打印出来是正确的,其它打印出来的就不正确,请问楼主写的程序有没有这个问题。如果没有,能否提供一下思路。我的QQ是106548763
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-3 17:02 , Processed in 0.296467 second(s), 72 queries .

© 2020-2025 乐筑天下

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