需要打印到文件lisp例程
嘿,伙计们,我需要一个lisp例程,将当前dwg打印到一个名为plot的文件中,但每个作业都有一个名为plot的文件夹,因此我想它必须搜索并找到dwg文件夹的dwg路径,才能为每个作业找到正确的打印文件文件夹。有什么建议吗? http://www.74mph.com发布结果
Z
您是指打印到文件,如中所示,接收。PLT文件在该位置-或者你说的是PDF格式的图纸?
(有些人搞混了……我知道我搞混了) 不确定这是否有效-以前从未这样做过-真的有点暗箭伤人:
(defun c:plt2file(/ file fPath plt laylst layVar i)
(vl-load-com)
(setq i 0
file (getfiled "Select Destination for Files"
(if def_file
def_file
"")
"plt"
1))
(if (not (setq def_file file))
(exit))
(setq fPath (vl-filename-directory file)
plt (vla-get-Plot
(vla-get-ActiveDocument
(vlax-get-acad-object))))
(setq laylst (vl-remove "Model" (layoutlist))
layVar (vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray
vlax-vbstring
(cons 0 (1- (length laylst))))
laylst)))
(vlp laylst)
(repeat (length laylst)
(vla-SetLayoutstoPlot plt layVar)
(if (eq :vlax-true (vla-PlottoFile plt fpath))
(setq i (1+ i))))
(princ (strcat "\n"
(itoa i)
" of "
(itoa (length laylst))
" Layouts Plotted to File."))
(princ))
这一切都将是一个打印到文件(.PLT)没有转换为pdf的或任何东西 你好
这是我创建的一个例程,我认为它符合您的要求。您需要调整打印设置,以调用页面设置和打印机,否则就可以继续了。
<br>(defun C:plottofile ( / FileDiaMode DwgFilePath DwgNamed )<br>(setq FileDiaMode (getvar "FILEDIA"))<br>(setvar "FILEDIA" 0)<br>(setq DwgFilePath (getvar "DWGPREFIX"))<br>(if (/= (vl-file-directory-p (strcat DwgFilePath "Plot\\" )) T)<br> (progn<br> (vl-mkdir (strcat DwgFilePath "Plot\\"))<br> ); progn<br>); if <br>(setq DwgNamed (substr (Getvar "DWGNAME") 1 (- (strlen (getvar "DWGNAME")) 4)))<br>;(command "._Plot" "No" "Model" "Your Page Setup" "Your Printer Here" "Yes" (strcat DwgFilePath DwgNamed ".plt"))<br>(command "._Plot" "No" "Model" "Previous Plot" "mnt-hp-c5550-1" "Yes" (strcat DwgFilePath "Plot\\" DwgNamed ".plt") "No" "Yes")<br>(setvar "FILEDIA" FileDiaMode)<br>)<br>
如果你需要帮助,请告诉我。
祝你过得愉快。
肖恩多
稍微修改了我的第一篇帖子-这应该可以做到:
(defun c:plt2file(/ file fPath plt laylst layVar)
(vl-load-com)
(setq file (getfiled "Select Destination for Files"
(if def_file
def_file
"")
"plt"
1))
(if (not (setq def_file file))
(exit))
(setq fPath (strcat (vl-filename-directory file) "\\")
plt (vla-get-Plot
(vla-get-ActiveDocument
(vlax-get-acad-object))))
(setq laylst (vl-remove "Model" (layoutlist))
layVar (vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray
vlax-vbstring
(cons 0 (1- (length laylst))))
laylst)))
(vla-SetLayoutstoPlot plt layVar)
(if (eq :vlax-true (vla-PlottoFile plt fpath))
(princ (strcat "\n" (itoa (length laylst))
" Layouts Plotted to File."))
(princ "\nPlot Failed."))
(princ))
PlotDwgs是一个打印实用程序,具有几个独特的选项,包括打印所有打开的图形,以及打印用户选定图形的文件夹。图形可以打印到指定的大小,或者通过选择“Varies”选项,程序可以确定要打印的正确纸张大小。还包括按相反顺序打印所有布局的选项,以及按相反顺序打印用户选择图形的文件夹的选项。关联文件为PLOTDWG。lsp,绘图。dcl和绘图。dvb。 ^^我想这可能会被提及 嘿,它们都比我原来的例程要好得多,那将在使用的最后一个plot file文件夹中绘制2个文件。我很感激各位
页:
[1]
2