关于连续打印的问题,请教!!
在明经上学到了不少东西,现在自己也开始试着用VBA写东西了。目前碰到一个打印问题,不知如何解决,向各位前辈请教:现在搞得这个程序是连续打印工具,用遍历CAD图形的方法找到指定名称的块参照,找到后用getboundingbox方法确定块参照的外围大小,而后使用窗口方式,plottodevice方法打印块参照(全部操作在modelspace),一个打印完再找另一个,找到继续打印(图形中同样名称的块参照可能有多个)。现在遇到的问题是,使用plottodevice方法打印后,硬盘一阵闪动,程序却在继续遍历并打印下一个,此时第二个打印会出错(VBAIDE报使用plottodevice方法失败),而且失败时第一个还没有打出来。如果报失败时,什么也不做对着屏幕发呆10秒钟,等到硬盘不闪且打印机开始动作了,按VBAIDE里的继续运行程序却可以打印第二个了。
请问前辈们是否是第一个打印还没有送到打印机里,就开始打印第二个造成冲突了呢?如果是,如何检测前一个打印是否完成了呢?
谢谢!谢谢! 自己解决了。发现写的程序其实在AutoCAD2002里运行正常,但自己图新鲜,装了个2006,程序在2006里写的,就没有注意。其实2006多了个backGroundPlot变量,正常写的批量打印程序需要首先将该变量置0,然后就正常了。
不过不太明白,这个变量究竟有什么使用价值,也没明白如果此变量不是0打印程序怎么写。反正现在程序一上去先把此变量置0,一切正常不管那么多了。 把程序贴上来吧. <P>这位仁兄,能把您的程序分享一下吗?</P>
<P>万分感谢了!</P>
<P>我的邮箱是<A href="mailto:yzbj19832002@163.com" target="_blank" >yzbj19832002@163.com</A></P> <P>收Mail !</P> <P>楼主,有好东东分享一下,我都流口水了~~~</P>
<P>邮箱:<A href="mailto:lsgo2000.student@sina.com" target="_blank" >lsgo2000.student@sina.com</A></P>
<P>谢谢!!</P>
<P> </P> backGroundPlot设置为0代表在前台打印,设置为2代表后台打印 <p>前台打印才会按照先后顺序一个一个打印</p> <p>以后画图画布局里面,,批量打印非常简单。</p> <p>我也写了这个程序,方法差不多,先是全选图中名为“图框”的块,</p><p> Set SS_Frm = ThisDrawing.SelectionSets.Add("SS_PlotFrm")<br/> <br/> ReDim Preserve FltType(0)<br/> ReDim Preserve FltData(0)<br/> FltType(0) = 2<br/> FltData(0) = "图框"<br/> SS_Frm.Select acSelectionSetAll, , , FltType, FltData</p><p>再根据块的尺寸GetBoundingBox,取得打印区域,然后进行批量打印。</p><p>不过我的程序有一个问题没有解决,就是打印时无法确定这个块是在哪个布局中,所以在当前激活的布局中的块打印出来是正确的,其它打印出来的就不正确,请问楼主写的程序有没有这个问题。如果没有,能否提供一下思路。我的QQ是106548763</p>
页:
[1]
2