一个简单快速的打印LSP
命令就是Y3,然后选择图框块,确定,然后是选择要打印的图纸这么简单,下来看看!谢谢分享!
(vl-load-com)(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setvar "cmdecho" 0)
(defun c:y1( / plotdeviceminp maxpminpoint maxpoint tkname ourset ilast imyent1orientation)
(setq plotdevice "hp LaserJet 1000")
(print "select keytk" )
(SETQ keytk (car (entsel)))
(while (or (null keytk) (/= (cdr (assoc '0 (entgetkeytk)))"INSERT"))
(SETQ keytk (car (entsel)))
)
(setqtkname (cdr (assoc '2 (entgetkeytk)) ))
(alert (strcat "Do you want to print \" " tkname "\"?" ))
(setq papersize "A4")
(setq plotstyle "A4-TK.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->listminpoint))
(setq maxp (vlax-safearray->listmaxpoint))
(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"minpmaxp "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)
)
(defun c:y3( / plotdeviceminp maxpminpoint maxpoint tkname ourset ilast imyent1orientation)
;(setq plotdevice "\\王斌\Xerox WorkCentre 415/Pro 420 XL")
(print "select keytk" )
(SETQ keytk (car (entsel)))
(while (or (null keytk) (/= (cdr (assoc '0 (entgetkeytk)))"INSERT"))
(SETQ keytk (car (entsel)))
)
(setqtkname (cdr (assoc '2 (entgetkeytk)) ))
(alert (strcat "Do you want to print \" " tkname "\"?" ))
(setq papersize "")
(setq plotstyle "")
(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->listminpoint))
(setq maxp (vlax-safearray->listmaxpoint))
(if ( > (- (car maxp)(car minp))(- (cadr maxp)(cadr minp)))(setq orientation "landscape") (setq orientation "portrait"))
(command "-plot" "y" "model" "" "" "Millimeters" orientation
"no" "w"minpmaxp "fit" "c" "y" """y" "n" "n" "n""y")
(setq iplot (1+ iplot))
)
)
(setq i (1+ i))
)
(princ "\nThe total is:")(princ iplot)
(print "over!!!")
(princ)
)
命令: Y3
"select keytk"
选择对象:
"Select what you want to print:"
选择对象: 指定对角点: 找到 1 个
选择对象:未知命令“Y3”。按 F1 查看帮助。
未知命令“MILLIMETERS”。按 F1 查看帮助。
未知命令“LANDSCAPE”。按 F1 查看帮助。
未知命令“NO”。按 F1 查看帮助。
未知命令“W”。按 F1 查看帮助。
未知命令“FIT”。按 F1 查看帮助。
未知命令“C”。按 F1 查看帮助。
未知命令“Y”。按 F1 查看帮助。
未知命令“Y3”。按 F1 查看帮助。
未知命令“Y”。按 F1 查看帮助。
未知命令“N”。按 F1 查看帮助。
未知命令“N”。按 F1 查看帮助。
未知命令“N”。按 F1 查看帮助。
未知命令“Y”。按 F1 查看帮助。
The total is:1
"over!!!"
命令: *取消* 使用看看是不是快一点 谢谢分享!!!!! 介绍不详细啊,是批量吗 确实很简单,也很快
选项太好 包括打印样式什么的 感谢分享,试试看看 试一试好用不,谢谢先 命令: Y3
"select keytk"
选择对象:
"Select what you want to print:"
选择对象: 找到 1 个
选择对象:未知命令“Y3”。按 F1 查看帮助。
未知命令“MILLIMETERS”。按 F1 查看帮助。
未知命令“LANDSCAPE”。按 F1 查看帮助。
未知命令“NO”。按 F1 查看帮助。
未知命令“W”。按 F1 查看帮助。
未知命令“FIT”。按 F1 查看帮助。
未知命令“C”。按 F1 查看帮助。
未知命令“Y”。按 F1 查看帮助。
未知命令“Y3”。按 F1 查看帮助。
未知命令“Y”。按 F1 查看帮助。
未知命令“N”。按 F1 查看帮助。
未知命令“N”。按 F1 查看帮助。
未知命令“N”。按 F1 查看帮助。
未知命令“Y”。按 F1 查看帮助。
The total is:1
"over!!!"