找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1979|回复: 23

[求助]:请版主给大家编一个好用的批处理打印程序吧!

[复制链接]
发表于 2003-5-18 19:02:49 | 显示全部楼层 |阅读模式

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

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

×
出图太累啦!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-5-18 19:07:42 | 显示全部楼层

Re: [求助]:请版主给大家编一个好用的批处理打印程序吧!

最初由 lcdai 发布
[B]出图太累啦! [/B]


秋风斑竹以前好像写过一个,你别只说太累了啊:)

说下你的要求和想法吧.

ACAD不是自带一个批处理打印工具吗,你觉得哪里不好?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-20 23:01:24 | 显示全部楼层
感觉来回在图纸空间设置太费事,如果图纸太大的话每显示一次还要等待
下面这程序的工作方式感觉还很可以就是不能打印,可能是USB口的原因吧!
请版主为我们改一改。 他在模型空间设置就可以啦

  1. (defun c:plo()
  2.   (setvar "CMDDIA" 0)
  3.   (setvar "CMDECHO" 0)  
  4.   (setq token nil)
  5.   (setq token1 nil)
  6.   (princ "\n点对定义:仅绘图区域左上角与右下角两点为一对点对.点对不可COPY!")
  7.   (setq token (getint "\n1.建立点对/2.清除所有点对/<3>.打印:"))
  8.   (while (not (or (= token nil) (= token 3) (= token 2) (= token 1)))
  9.     (setq token (getint "\n1.建立点对/2.清除所有点对/<3>.打印:"))
  10.   )
  11.   (if (or (= token nil) (= token 3))
  12.     (progn
  13.       (setq token1 (getint "\n1.部分打印/<2>.全部打印:"))
  14.       (setq j 1)
  15.       (setq plotter1 nil)
  16.       (if (= token1 1)
  17.         (progn
  18.           (setq p1 (getpoint "\n请在绘图区内选择一点:"))
  19.           (setq plotter1 (list p1))
  20.           (while (/= p1 nil)
  21.             (setq p1 (getpoint "\n请在绘图区内再选择一点:"))
  22.             (setq plotter1 (append plotter1 (list p1)))
  23.           )
  24.           (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 j))))
  25.           (setq j (+ j 1))
  26.           (while (/= s nil)
  27.             (progn
  28.               (setq ttt (entget (ssname s 0)))
  29.               (setq p1 (cdr (assoc 10 ttt)))
  30.               (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 j))))
  31.               (setq j (+ j 1))
  32.               (setq ttt (entget (ssname s 0)))
  33.               (setq p2 (cdr (assoc 10 ttt)))               
  34.               (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 j))))
  35.               (setq j (+ j 1))   
  36.               (foreach plotprint plotter1
  37.                 (if (and (< (car p1) (car plotprint))
  38.                          (> (car p2) (car plotprint))
  39.                          (> (cadr p1) (cadr plotprint))
  40.                          (< (cadr p2) (cadr plotprint))
  41.                     )     
  42.                   (command "plot" "w" p1 p2 "")
  43.                 )
  44.               )
  45.             )
  46.           )
  47.         )
  48.       )
  49.       (if (or (= token1 2) (= token1 nil))
  50.         (progn
  51.           (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 j))))
  52.           (setq j (+ j 1))
  53.           (while (/= s nil)
  54.             (progn
  55.               (setq ttt (entget (ssname s 0)))
  56.               (setq p1 (cdr (assoc 10 ttt)))
  57.               (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 j))))
  58.               (setq j (+ j 1))
  59.               (setq ttt (entget (ssname s 0)))
  60.               (setq p2 (cdr (assoc 10 ttt)))               
  61.               (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 j))))
  62.               (setq j (+ j 1))
  63.               (command "plot" "w" p1 p2 "")
  64.             )
  65.           )
  66.           (princ "\n打印完")
  67.           (princ (/ (- j 1) 2))
  68.           (princ "张图!")
  69.         )
  70.       )
  71.     )
  72.   )
  73.   (if (= token 2)
  74.     (progn
  75.       (setq k 0)
  76.       (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot"))))
  77.       (if (/= s nil)
  78.         (progn
  79.           (repeat (sslength s)
  80.             (setq s1 (ssname s k))
  81.             (entdel s1)
  82.             (setq k (+ k 1))
  83.           )
  84.           (princ "\n清除了")
  85.           (princ (/ (+ k 1) 2))
  86.           (princ "对点对!")  
  87.         )
  88.         (princ "\n无点对可清除!")
  89.       )
  90.     )
  91.   )
  92.   (if (= token 1)
  93.     (progn
  94.       (if (not (tblsearch "layer" "forprinter"))
  95.         (command "layer" "n" "forprinter" "off" "forprinter" "")
  96.       )
  97.       (if (not (tblsearch "block" "plot"))
  98.         (progn
  99.           (entmake (list (cons 0 "BLOCK")
  100.                          (cons 2 "plot")
  101.                          (cons 70 0)
  102.                          (cons 10 '(0 0 0))
  103.                    )
  104.           )
  105.           (entmake (list (cons 0 "CIRCLE")
  106.                          (cons 10 '(0 0 0))
  107.                          (cons 62 6)
  108.                          (cons 40 (/ (getvar "TEXTSIZE") 3))
  109.                    )
  110.           )
  111.           (entmake (list (cons 0 "ENDBLK")))
  112.         )
  113.       )
  114.       (setq i 1)
  115.       (princ "\n第")
  116.       (princ i)
  117.       (setq p1 (getpoint "个绘图区左上角:"))
  118.       (while (/= p1 nill)
  119.         (setq p2 (getcorner p1 "\n该绘图区右下角:"))
  120.         (if (= p2 nil)
  121.           (while (= p2 nil)
  122.             (setq p2 (getcorner p1 "\n该绘图区右下角:"))
  123.           )
  124.         )   
  125.         (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 i))))
  126.         (if (= s nil)
  127.           (entmake (list (cons 0 "INSERT")
  128.                          (cons 2 "plot")
  129.                          (cons 8 "forprinter")
  130.                          (cons 10 p1)
  131.                          (cons 50 i)
  132.                    )
  133.           )
  134.           (progn
  135.             (setq ttt (entget (ssname s 0)))
  136.             (setq pp (cons 10 p1))
  137.             (setq ttt (subst pp (assoc 10 ttt) ttt))
  138.             (entmod ttt)
  139.           )
  140.         )  
  141.         (setq i (+ i 1))
  142.         (setq s (ssget "X" (list (cons 0 "INSERT") (cons 2 "plot") (cons 50 i))))
  143.         (if (= s nil)
  144.           (entmake (list (cons 0 "INSERT")
  145.                          (cons 2 "plot")
  146.                          (cons 8 "forprinter")
  147.                          (cons 10 p2)
  148.                          (cons 50 i)
  149.                    )
  150.           )
  151.           (progn
  152.             (setq ttt (entget (ssname s 0)))
  153.             (setq pp (cons 10 p2))
  154.             (setq ttt (subst pp (assoc 10 ttt) ttt))
  155.             (entmod ttt)
  156.           )
  157.         )  
  158.         (setq i (+ i 1))
  159.         (princ "\n第")
  160.         (princ (/ (+ 1 i) 2))
  161.         (setq p1 (getpoint "个绘图区左上角:"))
  162.       )
  163.       (princ "\n定义了")
  164.       (princ (/ (- i 1) 2))
  165.       (princ "对点对!")  
  166.     )
  167.   )
  168.   (setq i nil j nil ttt nil pp nil p1 nil p2 nil plotter1 nil)
  169.   (setq s nil token nil token1 nil k nil s1 nil)
  170.   (setvar "CMDDIA" 1)
  171.   (setvar "CMDECHO" 1)  
  172.   (princ)
  173. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-5-22 10:25:42 | 显示全部楼层
最初由 lcdai 发布
[B]感觉来回在图纸空间设置太费事,如果图纸太大的话每显示一次还要等待
下面这程序的工作方式感觉还很可以就是不能打印,可能是USB口的原因吧!
请版主为我们改一改。 他在模型空间设置就可以啦

(defun c:plo()
... [/B]

刚才试用了,我用的是共享打印机,不能打印。
我是搞结构的,大部分是用模型空间画图。很多情况下是在一个文件里排列多张图形。其中有A4目录一张,A2/A1图纸若干。能否以图框的外边为准,比如210x297,594x420,841x594,让程序自动搜索图的外框(或者把图框放在专门的图层以便搜索),然后自动打印。
一句话,就是让此程序能自动打印一个图形文件里的所有图纸。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-5-22 12:39:32 | 显示全部楼层
最初由 menglangs 发布
[B][QUOTE]最初由 lcdai 发布
[B]感觉来回在图纸空间设置太费事,如果图纸太大的话每显示一次还要等待
下面这程序的工作方式感觉还很可以就是不能打印,可能是USB口的原因吧!
请版主为我们改一改。 他在模型... [/B]

也是一句话,你的图框要有规律,比如是规律的块名(如TK_A1、TK_A2、 ....  ))或者图框外边的线是一个特定图层上的封闭Pline(此层上再没有其他封闭Pline),这样才能又程序方便的搜索到打印范围。还有就是要有一个打印标准就是线宽是如何规定,否则只能是自己一个人用的程序,没有通用性。

另外,打印机的型号或设置也会影响出图质量(是否浪费纸张)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-5-22 12:46:49 | 显示全部楼层
打印机厂家能否提供相关的驱动程序?
我们单位的hp打印机便有方便的厂家驱程,可以自动识别图纸,自动裁纸,以及节省空间打印等等。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-22 21:24:24 | 显示全部楼层
让程序自动搜索图的外框,然后自动打印。这不太容易。
这个程序是在模型空间手动框选,然后就可以生成批处理打印程序。
但我的的打印机没有反映,我怀疑是该程序打印口设置的不同,
请各位老师明示或谁有更好的办法请帮助!
谢谢大家!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-5-22 22:47:34 | 显示全部楼层
最初由 lcdai 发布
[B]让程序自动搜索图的外框,然后自动打印。这不太容易。
这个程序是在模型空间手动框选,然后就可以生成批处理打印程序。
但我的的打印机没有反映,我怀疑是该程序打印口设置的不同,
请各位老师明示或谁有更好的办?.. [/B]

(ssget "x")  加过滤器全图搜索是可以搜到的,然后用 xdrx_entity_box就可以求得四角坐标。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-24 20:49:42 | 显示全部楼层
这个问题对于高手来说并不难,请大家帮忙.
先致谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-5-24 21:44:33 | 显示全部楼层
最初由 lcdai 发布
[B]这个问题对于高手来说并不难,请大家帮忙.
先致谢! [/B]

先把你用的图框说清楚。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-25 00:42:37 | 显示全部楼层
楼上误会啦!我的问题是第3 贴 的程序为什么不能打印,是不是USB口的打印机原因怎样解决?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-5-25 02:02:33 | 显示全部楼层
最初由 lcdai 发布
[B]楼上误会啦!我的问题是第3 贴 的程序为什么不能打印,是不是USB口的打印机原因怎样解决?
谢谢! [/B]

和USB没关系,(command "plot" "w" p1 p2 "") 肯定是打印不出来的,建议你在命令行输入 plot  看看需要那些参数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-25 13:03:59 | 显示全部楼层
谢谢!eachy斑竹你是说这个程序本身就有问题?
小弟水平有限, 请版主帮我改一改,或重新编写一个好用的程序
希望能够在模型空间通过简单的设置完成批处理打印.
再次感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-11 14:17:37 | 显示全部楼层
最初由 eachy 发布
[B]
和USB没关系,(command "plot" "w" p1 p2 "") 肯定是打印不出来?.. [/B]

书上说了 ,command命令和plot命令不能在一起使用。可能要考虑其他办法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-11 15:28:11 | 显示全部楼层
2004自带的批打印程序就挺好的,为什么不用呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-21 15:08 , Processed in 0.206768 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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