打桥位lisp_晓东CAD家园-论坛-A/VLISP-[LISP程序]:批量打印程序-(defun c:mp(/ oldosmode bomprint plotname plotter ctrl bo...

这是一个用于批量打印的LISP程序,用户可以选择打印机设备,并基于插入点获取打印区域的角落坐标,实现对多个块的自动打印。程序首先将OSMODE设置为0,然后通过SSGET选择要打印的对象,根据用户输入的打印机名称确定打印设备,最后进行循环打印操作。程序结束时恢复原始OSMODE设置。
摘要由CSDN通过智能技术生成

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

(defun c:mp(/ oldosmode bomprint plotname plotter ctrl bomprint bomblockname minpoint maxpoint);print

(command "undo" "be")

(command "ucs" "w")

(setq oldosmode(getvar "osmode"))

(setvar "osmode" 0)

(setq bomprint (ssget '((2 . "NewDwgBox"))))

(setq plotname nil)

(setq plotname(getint "\nEnter Plotter Name[1:Samsung SCX-4x20 Series PCL 6/2:HP LaserJet 5100 PS]<1>:"))

(cond ;Select Printer

((or(= plotname 1)(= plotname nil))(setq plotter "\\\\SV\\Samsung SCX-4x20 Series PCL 6"))

((= plotname 2)(setq plotter "HP LaserJet 5100 PS"))

((= plotname 3)(setq plotter "HP LaserJet 5000 Series PCL"))

(t (alert "Please Select a Plotter Device!")(exit))

);end cond

(setq ctrl 0)

(while (< ctrl (sslength bomprint))

(setq bomblockname (ssname bomprint ctrl )

boxscale(cdr(assoc 41 (entget bomblockname)))

insp(cdr(assoc 10 (entget bomblockname))))

(setq minpoint  (mapcar '- insp (mapcar '*(list 119 108 0)

(list boxscale boxscale boxscale)))

maxpoint  (mapcar '+ insp (mapcar '*(list 179 103 0)

(list boxscale boxscale boxscale))))

;base on InsertPoint get corner for printing

(command "-plot" "y" "" plotter "A4(210 x 297 mm)" "m"

"l" "n" "w" minpoint maxpoint "f" "c" "y" "acad.ctb" "y" "n" "n" "n" "y")

(setq ctrl(1+ ctrl))

);end while

(princ (strcat "\n********** 共打印 " (itoa ctrl) " 张 **********\n"))

(setvar "osmode" oldosmode)

(command "undo" "e")

(princ)

)

广告位,后台可以设置,支持js

您好,您暂时不能浏览帖子的全部内容,请 登录

| 没有账号? 请 注册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值