回到格林拉,若上面的帖子不起作用,你们需要去麦克洛尔寻求帮助。http://www.m-color.com/我想是你买的。 很抱歉偏离了讨论,但我仍在寻找一种方法,将已发布PDF的默认保存位置设置为与dwg相同的位置。
每次都需要找到这个文件夹真是浪费时间。。。
如果有人能建议如何做到这一点,我们将不胜感激 我曾经认为这是一个需要遵循dwgprefix的注册表项。但我没能成功。也在寻找固溶体。。 如果忽略“Publish”并返回lisp,则可以实现同样的效果。
下面是一个例子
绘图3pdfrange。lsp
getvals。lsp 我想我正朝着正确的方向前进。但是
当我加载它时,它会询问我开始和结束标签号。
在指定之后,它似乎无法正常工作。。
我做错了什么?
绘图3pdfrange。lsp已成功加载。
无
命令:重新生成模型。
重新生成布局。
再生模型。
是或否。
函数取消将绘图写入文件[是/否]: 如果你仔细看plotpdfrange,它是硬编码的,将pdf放入一个名为pdf的目录中,该目录位于dwg目录“design”下。这是我同事的请求。它可能正在工作,但找不到此目录。最初的verison将其放在同一位置。版本2使用Ghost脚本并将创建的pdf连接到一个脚本中。如果你想要的话就贴出来。
\项目\ 1234 \设计\ pdf
(setq pdfname (strcat (getvar "dwgprefix") "pdf\\" dwgname "-" (getvar "ctab"))) ; sub directory pdf
(setq pdfname (strcat (getvar "dwgprefix")dwgname "-" (getvar "ctab"))) ; no pdf directory saved same as dwg
格林拉,有什么进展吗? 好的,经过一点测试后,我无法使plotpdfrange lsp文件正常运行。。我确实找到了一个似乎有效的替代方案。它将所有PDF保存到与dwg相同的位置,但作为单个图纸
你提到的BIGAL有一种方法可以把这些结合起来吗?
;; Prints All Layout Tabs and names the new PDFs with the name of the
;; drawing followed by the layout tab name.
;;
;; Adjust the paper size and .ctb file as needed.
;;
;; The PDFs will be placed in the folder where the drawing resides
;;
(defun c:PA ()
(foreach lay (layoutlist)
(setvar 'CTab lay)
(COMMAND "-PLOT"
"Y"
""
"DWG To PDF.pc3"
"ANSI full bleed A (8.50 x 11.00 Inches)"
"Inches"
"PORTRAIT"
"N"
"E"
"f"
"C"
"Y"
"monochrome.ctb"
"Y"
"N"
"N"
"N"
""; Name of file
"N"
"y" )
)
) 唯一应该停止plotpdfrange工作的是绘图位置下方的pdf目录,请使用我上一篇文章中的第二行更改代码。你需要正确的参数大小表等等。像你发布的代码masterfal一样,有很多例子,都有很小的改动。
这是一个合并pdf的lisp,它使用了需要单独下载的ghostscript。
plotpdf的版本在一个步骤中完成单个和单个合并。
以上为后期编辑。
;MergePdfs
;Merges multiple pdf (or eps) files into one
;
; make a batch file ?
;gs -sDEVICE=pdfwrite \
; -dNOPAUSE -dBATCH -dSAFER \
; -sOutputFile=combined.pdf \
; first.pdf \
; second.pdf \
; third.pdf [...]
;Ghostscript (http://www.ghostscript.com/) can be used to combine PDFs.
; Something like this should work: by Roy_043
(defun KGA_String_Join (strLst delim)
(if strLst
(apply
'strcat
(cons
(car strLst)
(mapcar '(lambda (a) (strcat delim a)) (cdr strLst))
)
)
""
)
)
; (CombinePdf
(setq gsexe "C:\\Program Files\\gs\\gs9.19\\bin\\gswin64c.exe")
; (setq srcFilelst'("D:\\Tmp\\A.pdf" "D:\\Tmp\\B.pdf"))
; (setq trgfile "C:\\Acadtemp\\Total.pdf")
; )
; Note: Existing trgFile will be overwritten.
(defun CombinePdf (gsExe srcFileLst trgFile)
(startapp
(strcat
gsExe " "
"-sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dQUIET"
"-sOutputFile=\"" trgFile "\" "
"\"" (KGA_String_Join srcFileLst "\" \"") "\""
)
)
)
绘图3PDFRANGE2。lsp 是的,我已经做了很多,但仍然不能正常运行。。我已修改,因此使用绘图仪名称/样式。不确定我还做错了什么?
;Plots layouts by range
; By Alan H Feb 2014
(defun AH:pltlays ( / lay numlay numend)
(SETVAR "PDMODE" 0)
(setvar "fillmode" 1)
(setvar "textfill" 1)
(if (not AH:getval2) (load "getvals"))
(ah:getval2 "Enter start tab number" 6 4 "Enter end tab number" 6 4)
(setq numlay (ATOI val1))
(setq numend (ATOI val2))
(setq len (+ (- numend numlay) 1))
(setq dwgname (GETVAR "dwgname"))
(setq lendwg (strlen dwgname))
(setq dwgname (substr dwgname 1 (- lendwg 4)))
(repeat len
(vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
(if (= numlay (vla-get-taborder lay))
(setvar "ctab" (vla-get-name lay))
) ; if
(setq pdfname (strcat (getvar "dwgprefix")dwgname "-" (getvar "ctab"))) ; no pdf directory saved same as dwg
) ; for
(setq lay nil)
(setvar "textfill" 1)
(setvar "fillmode" 1)
(COMMAND "-PLOT""Y""" "adobe pdf"
"A3" "m" "LANDSCAPE""N" "W""-6,-6" "807,560" "1=2""C"
"y" "EP Full Mono - NEW.ctb" "Y" "n" "n" "n" pdfName "N" "y"
)
(setq numlay (+ numlay 1))
) ; end repeat
) ; defun
(AH:pltlays)
页:
1
[2]