霹雳啪啦啦 发表于 2005-6-19 12:40:00

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

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

霹雳啪啦啦 发表于 2005-6-22 16:39:00

自己解决了。发现写的程序其实在AutoCAD2002里运行正常,但自己图新鲜,装了个2006,程序在2006里写的,就没有注意。其实2006多了个backGroundPlot变量,正常写的批量打印程序需要首先将该变量置0,然后就正常了。
不过不太明白,这个变量究竟有什么使用价值,也没明白如果此变量不是0打印程序怎么写。反正现在程序一上去先把此变量置0,一切正常不管那么多了。

wyj7485 发表于 2005-6-22 16:12:00

把程序贴上来吧.

yzbj1983 发表于 2005-8-6 20:56:00

这位仁兄,能把您的程序分享一下吗?
万分感谢了!
我的邮箱是yzbj19832002@163.com

霹雳啪啦啦 发表于 2005-8-8 17:31:00

收Mail !

烤烟农民 发表于 2005-8-8 21:16:00

楼主,有好东东分享一下,我都流口水了~~~
邮箱:lsgo2000.student@sina.com
谢谢!!

裸奔柠檬 发表于 2008-8-22 20:08:00

backGroundPlot设置为0代表在前台打印,设置为2代表后台打印

icy85 发表于 2008-8-22 21:33:00

前台打印才会按照先后顺序一个一个打印

wzqwzqwzq 发表于 2008-11-18 15:46:00

以后画图画布局里面,,批量打印非常简单。

xuxt 发表于 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
页: [1]
查看完整版本: 关于连续打印的问题,请教!!