明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hiviki

一个简单快速的打印LSP

[复制链接]
发表于 2019-6-10 16:24:22 | 显示全部楼层
打印出来不是按顺序生成的
发表于 2019-9-2 08:33:11 | 显示全部楼层

(vl-load-com)(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setvar "cmdecho" 0)


(defun c:y1( / plotdevice  minp maxp  minpoint   maxpoint tkname ourset ilast i  my  ent1  orientation)
  (setq plotdevice "hp LaserJet 1000")
(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 "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->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)
)



(defun c:y3( / plotdevice  minp maxp  minpoint   maxpoint tkname ourset ilast i  my  ent1  orientation)
;(setq plotdevice "\\王斌\Xerox WorkCentre 415/Pro 420 XL")
(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 "")

  (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->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" "" "" "Millimeters" orientation
          "no" "w"  minp  maxp   "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)
)
发表于 2022-7-18 09:16:18 | 显示全部楼层
大神这个可以按顺序,左右,上下打印吗?
发表于 2022-7-18 10:10:02 | 显示全部楼层
要认真学习一下。
发表于 2022-12-9 09:57:56 来自手机 | 显示全部楼层
不错,谢谢分享,下来学习一下
发表于 2023-3-20 16:31:37 | 显示全部楼层
都说不能用吗?
发表于 2024-2-27 21:21:57 | 显示全部楼层
希望好用,感谢分享
发表于 2024-6-26 00:56:10 | 显示全部楼层
试过了,很好用,就是不能识别多线段。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 23:15 , Processed in 0.266266 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表