本帖最后由 田家凯 于 2016-1-17 12:35 编辑
代码都是在论坛找的,只有几行,只想实现在模型或者布局空间选定图框的两个角点p1、p2,自动打印成PDF,省去对话框那一步。
代码如下:
 - (defun c:pp ( / p1 p2 activename)
- (vl-load-com)
- (setq activename (vla-get-Name (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-acad-object)))))
- (while (setq p1 (getpoint "\n指定第一点坐标:"))
- (setq p2 (getcorner p1 "\n指定第二点坐标:"))
- (command "_.plot" "y" activename "pdfFactory Pro" "A3 横向" "" "L" "N" "W" p1 p2 "F" "C" "Y" "平面(蓝0.7_红0.5_绿0.35_灰淡).ctb" "Y" "" "" "Y" "")
- )
- (princ)
- )
问题是“plot”命令的第二个参数,选择空间名称那里,现在activename 可以获取到当前空间的名称,但是在模型里可以打印,到了布局里面就不行了,不知道如何解决。
附上论坛里面找到的“plot命令”参数
 - (command "_.PLOT"
- "Y" ;是否需要详细打印配置?[是(Y)/否(N)] <否>: y
- "" ;输入布局名或 [?] <模型>:
- "publishtoweb jpg.pc3" ;输入输出设备的名称或 [?]
- "上一个图纸尺寸 (2550.00 x 3300.00 像素)" ;输入图纸尺寸或 [?] <上一个图纸尺寸 (2550.00 x 3300.00 像素)>:
- "L" ;输入图形方向 [纵向(P)/横向(L)] <横向>:
- "N" ;是否上下颠倒打印?[是(Y)/否(N)] <否>:
- "w" ;输入打印区域 [显示(D)/范围(E)/图形界限(L)/视图(V)/窗口(W)] <范围>: w
- "0.0,0.0" ;输入窗口的左下角 <0.000000,0.000000>:
- "200,200" ;输入窗口的右上角 <0.000000,0.000000>:
- "FIT" ;输入打印比例 (打印的 毫米=图形单位) 或 [布满(F)] <Fit>: fit
- "" ;输入打印偏移 (x,y) 或 [居中打印(C)] <0.00,0.00>: c
- "Y" ;是否按样式打印?[是(Y)/否(N)] <是>:
- "." ;输入打印样式表名称或 [?] (输入 . 表示无) <hp5100.ctb>:
- "Y" ;是否打印线宽?[是(Y)/否(N)] <是>:
- "A" ;输入着色打印设置 [按显示(A)/线框(W)/隐藏(H)/视觉样式(V)/渲染(R)] <按显示>:
- "ABC.JPG" ;输入文件名 <Drawing1-Model.jpg>:
- "N" ;是否保存对页面设置的修改 [是(Y)/否(N)]?
- "Y" ;是否继续打印?[是(Y)/否(N)] <Y>:
- )
- )
|