乐于分享
好东西不私藏

SolidWorks*Excel+VBA-打印工程图

SolidWorks*Excel+VBA-打印工程图

工程图出完了,需要打印出来校对审核,一张张打印太费时间,所以必须得有个时间刺客。
先说一般化方式,不需要插件,不需要写代码,SW自带的任务批处理程序还是很有用的。
每个版本都有,很好找。
点击左边打印文件选项,会跳一个窗口,可以批量添加工程图文件。
但是,这里属性设置貌似是全局的,无法智能分辨纸张大小以及方向,有一定局限性。
既然有局限性,那么只能通过VBA突破一下,翻找了下API,有这么几个打印相关的方法。
我们只看ModelDoc2里的PrintDirect和PrintOut2,ModelDocExtension里的PrintOut2/3/4比较复杂,不在优先考虑范围。

先说PrintDirect,看名字就知道是直接打印,都不需要参数设置。

PrintOut2就细致一些,可以设参数。

参数大致含义,大差不差

除了函数自带参数外,打印之前也可以通过这个进行一些其他设置

对应到界面上就是这里啦

不过有两个坑,一个是纸张大小,没有系统参数,得根据打印机调试出来,还不能直接输入A4字符串。

举例:可先在界面设置A4,然后程序中用debug.print PageSetup.printpapersize来反向获取对应的数值。

第二个坑是颜色设定,在程序中要么是application程序对象层级,或者是modeldoc2文档对象层级起作用,在图纸页(sheet)对象层级就不适用。你品,你细品。

VBA代码程序还没测完,纸倒是浪费了一堆,图片冰山一角。