[AutoCad 2008 AutoLisp]Printi
大家好!如您所见,我一直在使用AutoCad 2008。问题是在哪里可以找到有关在AutoLisp中为AutoCad打印API的信息?
我想要实现的是:
例如,我用多段线画了一个三角形。
然后我在那个三角形周围画一个A4框架。
最后一步是我选择画框,里面的所有画(以及A4画框本身)都进入我的打印机。
我的眼睛上出现了一个在A4框架中画得很漂亮的三角形。
谢谢你的进步! 使用Visual LISP IDE(VLIDE)帮助文档研究以下内容:
使用vla get plot检索plot对象,该对象具有以下属性和方法,我已经突出显示了与您相关的属性和方法:
方法
显示绘图预览
绘图仪
绘图文件
SetLayoutsToPlot设置布局
启动BatchMode
属性
应用
静音模式
副本数
批次绘图进度 李·麦克,
感谢您的快速回复。首先,我对Activex对象模型完全陌生,如果你们不介意的话,我有一些问题想问你们。
1、我找到了获取plot对象的方法
接下来,如果我正确理解了这个概念,现在我可以尝试使用“PlotToDevice”方法打印空白列表。所以我写了以下内容
(vla-PlotToDevice plot)但是:返回vlax false(通过我的打印机打开的方式)。请你解释一下我做错了什么?我错过了什么?
2.如何区分vla、vlax、vlr前缀?它们通常是什么意思?
谢谢
假设已为您尝试打印的布局正确设置打印配置;您需要设置要打印的区域。
下面是一个快速示例:
如果您使用自己的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 "YourPlotDevice")
(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事件)。 李,谢谢!
它起作用了。现在我必须理解所有这些可怕的Activex函数。顺便问一下,“LM:”前缀是什么意思?使用“/”符号并在函数的参数列表中写入所有局部变量是否至关重要?当设置局部变量的值时,我可以避免它们吗?例如,我可以这样做吗
3
我这样问是因为它们都能工作。有什么问题?
这是我的作者前缀-“LM”=“Lee Mac”。它对函数的操作方式没有影响,因为“LM:example”只是另一个符号。“C:”前缀是唯一具有使命令在命令行中可用的效果的前缀。
在共享开源代码时,作者前缀很有用,因为除其他原因外,它更容易跟踪函数的源代码。
是的,非常重要-为了理解为什么,请阅读我在这里关于这个主题的教程。 很棒的图坦卡门。非常感谢。 ..........
干杯! 如何更改“Plot…”中的刻度测量值(从英寸到毫米)使用AutoLisp的窗口?我需要能够将代码中的“比例”设置为1:1毫米(不是英寸)。例如
它将比例设置为1:1英寸。我想用同样的代码,但用毫米。是否有更改测量值的命令?
谢谢
页:
[1]
2