正在打印LISP帮助。。。
我需要帮助写一些例程。。。我真的不知道从哪里开始,但下面是我需要的:
而不是执行典型的打印例程(键入plot,选择plotter,选择纸张大小,选择笔设置,选择比例,最后打印)
我想能够只键入几个字母,并得到相同的结果。。。因此节省时间。
如果我在图纸空间中,标题栏位于0,0。。。我希望能够键入以下内容并获得列出的结果:
30x42绘图页
PDF11:使用正确的笔设置创建11x17 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
PDF30:使用正确的笔设置创建全尺寸PDF,并将文件保存到桌面上名为PDF的预定文件夹中
PDF8:使用正确的笔设置创建8 1/2x11 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
24x36绘图页
PDF2411:使用正确的笔设置创建11x17 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
PDF24:使用正确的笔设置创建全尺寸PDF,并将文件保存到桌面上名为PDF的预定文件夹中
PDF248:使用正确的笔设置创建8 1/2x11 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
我知道我要求很多。。。任何帮助都将不胜感激。
提前感谢! 下面是一个代码示例。
; plotpdf2 ver 2 with filename and directory as output oct 2011
(PROMPT ".....PRINTING DRAWING TO pdf's....")
(setvar "cmddia" 0)
(setvar "filedia" 0)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layouts doc)
(setq plotabs (cons (vla-get-name lay) plotabs))
)
(setq dwgname (GETVAR "dwgname"))
(setq len (strlen dwgname))
(setq dwgname (substr dwgname 1 (- len 4)))
(setq plottablist (acad_strlsort plotabs))
(setq len (length plottablist))
(setq x 0)
(repeat len
(setq name (nth x plottablist))
(princ name)
(setq pdfname (strcat (getvar "dwgprefix") dwgname "-" name))
(if (/= name "Model")
(progn
(setvar "ctab" name)
(COMMAND "-PLOT""Y""" "dwg to Pdf"
"Iso full bleed A3 (420.00 x 297.00 MM)" "m" "LANDSCAPE""N" "W""-6,-6" "807,560" "1=2""C"
"y" "Designlasercolour.ctb" "Y" "n" "n" "n" pdfName "N" "y" )
)
)
(setq x (+ x 1))
)
(setvar "cmddia" 1)
(setvar "filedia" 1)
(setq DWGNAME nil
LEN nil
NAME nil
PLOTTABLIST nil)
(princ)
嗨,Bigal,这个例程在哪里存储pdf。我找不到它们。
看看这个。。。。
(getvar "dwgprefix") Tharwat,你是否建议将它们存储在与图纸相同的文件夹中?但我创建了一个新文件夹,将绘图保存在那里并运行了它,但没有任何乐趣。这是我使用的修改后的lisp。
; plotpdf2 ver 2 with filename and directory as output oct 2011
; from Bigal
(defun c:A3_dwg_pdf ()
(if (findfile "T:/Drawing Tools/Templates/CCC2009.dwt")
(progn
(command "_.psetupin" (findfile "T:/Drawing Tools/Templates/CCC2009.dwt") "A3-dwg-pdf")
(while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
(command "_yes")
) ;_ while
T
) ;_ progn
) ;_ if
(PROMPT ".....PRINTING DRAWING TO pdf's....")
(setvar "cmddia" 0)
(setvar "filedia" 0)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layouts doc)
(setq plotabs (cons (vla-get-name lay) plotabs))
)
(setq dwgname (GETVAR "dwgname"))
(setq len (strlen dwgname))
(setq dwgname (substr dwgname 1 (- len 4)))
(setq plottablist (acad_strlsort plotabs))
(setq len (length plottablist))
(setq x 0)
(repeat len
(setq name (nth x plottablist))
(princ name)
(setq pdfname (strcat (getvar "dwgprefix") dwgname "-" name))
(if (/= name "Model")
(progn
(setvar "ctab" name)
(command "-plot" "n" "" "A3-dwg-pdf" "" "n" "y" "y")
)
)
(setq x (+ x 1))
)
(setvar "cmddia" 1)
(setvar "filedia" 1)
(setq DWGNAME nil
LEN nil
NAME nil
PLOTTABLIST nil)
(princ)
)
我不是在暗示,但这就是系统变量的作用。 Tharwat,我已经从plot命令中删除了pdfname变量。
谢谢 我已经安装了cutepdf打印机,正在使用lisp打印图形的pdf副本。这已经运行了几年,没有出现任何问题。我接受了Bigal上面提供的代码,并对其进行了修改,以创建pdf的批处理图。我遇到的问题是,“dwg到pdf”中的纸张大小不允许我们的图纸适合页面,即使它使用可爱的pdf。我修改了“dwg到pdf”以包含我们的论文,与可爱的打印机一样,现在它打印得很好,但它就像每个布局重复打印大约5到6次,然后进入循环,我必须退出它。
有人能看看我哪里出错了吗?谢谢
; plotpdf2 ver 2 with filename and directory as output oct 2011
; from Bigal
(defun c:A3_dwg_pdf ()
(if (findfile "T:/Drawing Tools/Templates/CCC2009.dwt")
(progn
(command "_.psetupin" (findfile "T:/Drawing Tools/Templates/CCC2009.dwt") "A1")
(while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
(command "_yes")
) ;_ while
T
) ;_ progn
) ;_ if
(PROMPT ".....PRINTING DRAWING TO pdf's....")
(setvar "cmddia" 0)
(setvar "filedia" 0)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layouts doc)
(setq plotabs (cons (vla-get-name lay) plotabs))
)
(setq dwgname (GETVAR "dwgname"))
(setq len (strlen dwgname))
(setq dwgname (substr dwgname 1 (- len 4)))
(setq plottablist (acad_strlsort plotabs))
(setq len (length plottablist))
(setq x 0)
(repeat len
(setq name (nth x plottablist))
(princ name)
(setq pdfname (strcat (getvar "dwgprefix") dwgname "-" name))
(if (/= name "Model")
(progn
(setvar "ctab" name)
(command "-plot" "y" "" "dwg to pdf" "A3" "m" "Landscape" "n" "Layout" "1=2" "0,0" "n" "." "y" "n" "n" "n" pdfname "n" "y")
)
)
(setq x (+ x 1))
)
(setvar "cmddia" 1)
(setvar "filedia" 1)
(setq DWGNAME nil
LEN nil
NAME nil
PLOTTABLIST nil)
(princ)
)
添加了文件:
dwg到pdf。拉链 我不是专家,我会看一下这段代码,也许放一条虚线来测试它唯一的地方,我可以看到在旧代码之外的循环,它可以正常工作
(setq x 1)
(while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
(command "_yes")
(princ x)(setq x (+ x 1))
) ;_ while
有了这个(setvar’Expert 5),你可以摆脱它
(while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
(command "_yes")
)
并改用:
(if (setq dwtfile (findfile "T:/Drawing Tools/Templates/CCC2009.dwt"))
(progn
(command "_.psetupin" dwtfile "A1")
.....
页:
[1]
2