[求助]修改批量打印成pdf文件的源码
www.dimcax.com
[求助]修改批量打印成pdf文件的源码
这是一个批量打印成pdf文件的源码,希望那位大侠能帮我加一个对图框(从左到右再从上到下)排序的功能,谢谢了。
(vl-load-com)
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setvar "cmdecho" 0)
(defun c

df( / plotdevice minp maxp minpoint maxpoint tkname ourset ilast i my ent1 orientation)
(setq plotdevice "pdffactory")
(print "select keytk" )
(setq keytk (car (entsel)))
(while (or (null keytk) (/= (cdr (assoc '0 (entget keytk))) "insert"))
(setq keytk (car (entsel)))
)
(setq tkname (cdr (assoc '2 (entget keytk)) ))
(alert (strcat "do you want to print \" " tkname "\"?" ))
(setq papersize "a3")
(setq plotstyle "kongel.ctb")
(command "ucs" "w")
(print "select what you want to print:")
(setq ourset (ssget (list (cons 2 tkname))))
(while (null ourset)
(setq ourset (ssget (list (cons 2 tkname))))
)
(setq ilast (sslength ourset))
(setq i 0)(setq iplot 0)
(repeat ilast
(setq my (ssname ourset i))
(setq ent1 (entget my))
(if (= (cdr (assoc '2 ent1) ) tkname)
(progn
(vla-getboundingbox (vlax-ename->vla-object my) 'minpoint 'maxpoint )
(setq minp (vlax-safearray->list minpoint))
(setq maxp (vlax-safearray->list maxpoint))
(if ( > (- (car maxp)(car minp))(- (cadr maxp)(cadr minp))) (setq orientation "landscape") (setq orientation "portrait"))
(command "-plot" "y" "model" plotdevice papersize "millimeters" orientation
"no" "w" minp maxp "fit" "c" "y" plotstyle "y" "n" "n" "n" "y")
(setq iplot (1+ iplot))
)
)
(setq i (1+ i))
)
(princ "\nthe total is:")(princ iplot)
(print "over!!!")
(princ)
)
d