tryhi 发表于 2015-4-2 11:45:02

用preview打印预览命令打印时如何设置打印份数

本帖最后由 tryhi 于 2015-4-2 11:47 编辑

之前是通过(vla-displayplotpreview (vla-get-plot (vla-get-ActiveDocument (vlax-get-acad-object))) acfullpreview)(注:这条命令有个重大BUG,就是无法取得其返回值,不管是按ESC还是右键退出还是右键打印,都返回nil,并且没有任何打印动作)
进行打印预览,然后这样打印

[*](setq $obj (vla-get-plot (vla-get-ActiveDocument (vlax-get-acad-object))))
[*](vla-put-NumberOfCopies $obj 打印份数)
[*] (VLA-PLOTTODEVICE $obj)

但因为其打印预览无法取得返回值的问题,也就说无法自动判断用户是按了取消还是按了打印所以选择使用(vl-cmdf "preview")
但假如直接使用(vl-cmdf "preview")进行打印预览并打印的话,如何设置打印份数,貌似只能打印一份

liu22737 发表于 2015-4-2 13:07:23

1.(vl-cmdf "preview")
2.(if ( >打印份数 1)(progn(vla-put-numberofcopies$obj (1- 打印份数))(vla-plotToDevice $obj)))

tryhi 发表于 2015-4-2 14:16:09

liu22737 发表于 2015-4-2 13:07 static/image/common/back.gif
1.(vl-cmdf "preview")
2.(if ( >打印份数 1)(progn(vla-put-numberofcopies$obj (1- 打印份数))(vla- ...
如果我设置打印3份,然后在预览的时候选择退出呢?这时候就变成了打印两份出来

tryhi 发表于 2015-4-2 20:31:21

这打印命令真让人不省心

liu22737 发表于 2015-4-3 09:18:29

tryhi 发表于 2015-4-2 14:16 static/image/common/back.gif
如果我设置打印3份,然后在预览的时候选择退出呢?这时候就变成了打印两份出来

VB可以佂测打印机状态,但是公司内都是网络打印机,连多台电脑,判断困难

这个贴子使用笨办法:佂测打印日志,判断用户预览之后 《 退出 OR 打印》

http://bbs.mjtd.com/thread-113258-2-1.html

直接对预览命令判断《 退出 OR 打印》,我还没找到办法,
你找到了通知一声

tryhi 发表于 2015-4-11 17:10:28

找不到。。

vectra 发表于 2015-4-11 20:26:56

没有发现vla-displayplotpreview有楼主描述的打印和退出两个选项,只有一个退出选项,所以vla-displayplotpreview时用户不可能进行打印操作。AutoCAD2008。
页: [1]
查看完整版本: 用preview打印预览命令打印时如何设置打印份数