仅打印选定视图
大家好,我有一对包含10到20个视图的图纸,每个视图代表一个特定的部分。此外,视图的名称与工件的名称相同。
有没有一种方法可以一次性打印一些选定的视图,而不必对每个视图重复打印?
非常感谢您在使用LISP或其他方法选择视图时提供的任何帮助。
谢谢你的帮助。 您可以使用窗口模式打印。它允许您“打开”要打印的区域。
你也可以用Lisp程序进行设置。 谢谢你的回复。
窗口模式允许我一次选择一个视图(窗口),我仍然需要为我需要的多个窗口重复该过程。
既然你说过要建立一个lisp,你有什么可以完成这个任务吗?
再次感谢。 如果在图纸空间中使用视口,则可以使用“发布”命令。 我需要为我的案子做更多的解释。
-我不使用图纸空间创建视图,我使用视图/名称视图创建它们。。。
-每个视图需要按字母大小单独打印
对不起,从一开始就不清楚。
再次感谢您的帮助。 您可以查看views表,这样您就可以有一个lisp打印,如果您看这个,它可以打印一系列布局,但使用类似lisp的listselect。lsp您可以从列表中选择所需的视图。我不使用视图,否则会帮你。
; not tested properly
(vlax-for lay (vla-get-Views (vla-get-activedocument (vlax-get-acad-object)))
(princ (vla-get-name lay))
)
;Plots layouts by range
; By Alan H Feb 2014
(defun AH:pltlays ( / lay numlay numend)
(ah:getval "Enter Start tab number" " edit_width = 10;" " edit_limit = 5;")
(setq numlay (ATOI item))
(ah:getval "Enter last tab number" " edit_width = 10;" " edit_limit = 5;")
(setq numend (ATOI item))
(textscr)
(setq len (+ (- numend numlay) 1))
(repeat len
(vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object))) ; change this for views
(if (= numlay (vla-get-taborder lay)) ; change this for View name
(setvar "ctab" (vla-get-name lay))
) ; if
) ; for
(setq lay nil)
(command "Pspace")
(COMMAND "ZOOM" "e")
(princ name)
(setvar "fillmode" 1)
(setvar "textfill" 1)
(COMMAND "-PLOT" "Y" "" "\\\\PRODPRN03\\100B-Lev5-01-CLR-PRN03" "A3 (297 x 420 mm)" "m" "LANDSCAPE" "N"
"W" "-6,-6" "807,560" "1=2" "C" "Y" "DesignLaserCOLOUR.ctb" "Y" "N" "N" "N" "N" "N" "y")
(setq numlay (+ numlay 1))
) ; end repeat
); defun
(AH:pltlays)
也许我错了,也许OP指的是模型空间中的视图? 嗨Tazzz
试试这个。您的计算机上必须安装Dos_lib。
(defun c:plotview ( / acobj acdoc views view_list)
(setq acobj (vlax-get-acad-object)
acdoc (vla-get-activedocument acobj)
views (vla-get-views acdoc)
)
(vlax-for view views
(setq view_list (cons (vla-get-name view) view_list))
)
(foreach view (dos_multilist "PLOT SELECTED VIEWS" "Select views to plot" view_list)
(command
"_plot"
"_y"
"Model"
"DWG To PDF.pc3"
"ISO full bleed A2 (594.00 x 420.00 MM)"
"Millimeters"
"Landscape"
"No"
"View"
view
"Fit"
"Center"
"Yes"
"acad.ctb"
"Yes"
"A"
(strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) " - " view ".pdf")
"No"
"Yes"
)
)
(princ)
)
此代码打印为pdf,与dwg文件位于同一目录中。您必须更改打印顺序以匹配您的设置。 BIGAL、hanhphuc和StefanBMR感谢您对本文的兴趣。
正如hanhpuc所说,我正在模型空间中工作,所有视图都是使用上述方法在那里创建的。
很抱歉给你添麻烦。我相信有人谁读了这篇文章,并使用纸张空间会发现你提供的lisp非常有用。
Stefan,我会安装doc。。。。软件,更改lisp以满足我的需要,并尝试一下。
我会把最终结果公布给你,我会公布我采取的步骤和修改后的代码。
再次感谢大家的帮助。 我不认为Stefan会介意,但你可以在做“Foreach视图”时使用lisp,只要问一个简单的问题plot Yes或No,如果你不想使用dos_lib并使其更通用,比如复制到另一台电脑。对我来说,我有一个通用dcl用于这类事情,所以我只需要选择我想要绘制的。
页:
[1]
2