假设已为您尝试打印的布局正确设置打印配置;您需要设置要打印的区域。
下面是一个快速示例:
如果您使用自己的PC3打印配置,则可以删除为布局设置打印属性的许多表达式,因为您只需将其提供给PlotToDevice方法。
我已设置示例来绘制当前布局、打印范围、居中打印、缩放以适应。
您需要更改打印设备的名称(以红色突出显示以满足您的要求),或者如果已经为布局设置了绘图仪,则需要删除此行。
- (defun c:test ( / acapp acdoc aclay acplt )
- (setq acapp (vlax-get-acad-object)
- acdoc (vla-get-activedocument acapp)
- acplt (vla-get-plot acdoc)
- aclay (vla-get-activelayout acdoc)
- )
- (vla-zoomextents acapp)
- (vla-refreshplotdeviceinfo aclay)
- (vla-put-configname aclay [color=red]"YourPlotDevice"[/color])
-
- (vla-put-plottype aclay acExtents)
- (vla-put-centerplot aclay :vlax-true)
- (vla-put-standardscale aclay acscaletofit)
- (vla-put-PlotRotation aclay (if (LM:Landscape-p) ac90degrees ac0degrees))
-
- (vla-put-numberofcopies acplt 1)
- (vla-setlayoutstoplot acplt
- (vlax-make-variant
- (vlax-safearray-fill
- (vlax-make-safearray vlax-vbstring '(0 . 0)) (list (vla-get-name aclay))
- )
- )
- )
- (eq :vlax-true (vla-plottodevice acplt))
- )
- (vl-load-com) (princ)
- (defun LM:Landscape-p nil
- (< 1.0 (apply '/ (mapcar '- (getvar 'EXTMAX) (getvar 'EXTMIN) '(0. 0.))))
- )
弗拉-*
ActiveX属性和方法的类型库前缀。
vl-*/vlax-*
Visual LISP函数与ActiveX无关,是旧“Vital LISP”的一部分。
vlr-*
反应堆功能(类似于VBA事件)。 |