明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4784|回复: 18

(求助)求批量打印程序(多个文件的)

  [复制链接]
发表于 2011-1-5 20:09 | 显示全部楼层 |阅读模式
每个文件有一个图框,图框格式是块,块名都是A4,图在模型空间,希望能有个程序可以批量打印很多个文件,要求居中布满图纸,图纸大小都是A4的,有这种现成的程序吗? 哪位大侠有这种程序,希望可以贡献出来小弟在此表示十分感谢!
发表于 2011-1-5 20:21 | 显示全部楼层
如果每个文件都只有一个图框,都是A4居中打印,不需要编程,用script命令即可搞定!如果一个图里有很多图框,秋枫大侠的批量打印很好用!
 楼主| 发表于 2011-1-5 20:45 | 显示全部楼层
回复 Gu_xl 的帖子

大侠,你是专业人士啊,光说个script我还不懂,可否再说详细点?谢谢!
发表于 2011-1-5 20:49 | 显示全部楼层
是啊
用script命令怎么搞定啊 请指教!呵呵
发表于 2011-1-5 21:13 | 显示全部楼层
回复 qcw911 的帖子

你先去学习一下script命令的用法!
简单的说,你在cad命令行键入的每一个命令,参数响应都可以按顺序写到一个文本文件里,然后另存为后缀文件扩展名必须是 .scr的文件。
比如打开一个文件"然后缩放到图形最大显示,然后存盘,可以按如下方式写入.scr文件
open
"e:/test.dwg"
zoom
e
qsave


后面你可以继续添加下一个文件的操作内容!写完后保存.scr文件
在cad命令行键入script,选择刚才保存的scr文件,cad自动按照scr内容自动执行操作!
如果你不知道打印命令行如何响应,你可试着在命令行键入-plot,看看你实际是如何响应该命令的,然后你可以把响应的内容写到scr文件即可!

 楼主| 发表于 2011-1-5 21:35 | 显示全部楼层
多谢大侠指点!开始学script
发表于 2011-1-5 21:56 | 显示全部楼层
  (defun c:plgt()
  (setvar "cmdecho" 0)
  (setvar "filedia" 0)
  (setq file (open "c:\\scr111.txt" "w" ))
  (princ "\n请打开一张需要批量处理的目录中的图以获得路径,请勿改动!!")
  (princ "\n请输入要执行的命令:")
  (setq ml (getstring))
  (setq path (getvar "DWGPREFIX"))
  (setq file_list (vl-directory-files  path "*.dwg"))
  (setq len (length file_list))
  (setq m 0 )
  (repeat len
  (setq lin (strcat "open "  (strcat path  (nth m file_list)) " " ml " qsave" " close"))
  (write-line lin file)
  (setq m (+ m 1))
  )
  (close file)
  (vl-file-delete (strcat"c:/" (rtos m 2 0) ".scr"))
  (command "qsave" "close")
  (vl-file-rename "c:/scr111.txt" (strcat "c:/" (rtos m 2 0) ".scr" ))
  (command "script" (strcat "c:/" (rtos m 2 0) ".scr" ))
  (setvar "filedia" 1)
  (setvar "cmdecho" 1)
  (princ)
  )

我原来写的,你看看有用没,自动生成SCR,自动执行
发表于 2011-1-5 22:00 | 显示全部楼层
你先加载这个函数
提示你输入命令时输入A4
(defun c:A4()

  (command "zoom" "e")
  (command "delay" "2000")
  (command "-plot"  "y"             ""              "a4.pc3" "A4 210 x 297 毫米"        "m"
           a            "n"             "e"      "1:5"    "居中打印"
           "y"            "acad.ctb"              "y"      "a"        "n"
           "y"            "y"
          )
  (princ "\n ok!")
  (princ)
)
发表于 2011-1-5 22:22 | 显示全部楼层
你好,请用OpenDwgsCmds.lsp实现,你能搜索的到。
需要配合类似8楼的程序使用。我用的范例如下(cad2004,打印机路径自己换好):
(defun c:A3()
   (command "-plot"  "Y" "模型" "\\\\printer\\HP LJ 5200LX PCL6"
        "A3"
        "M" "L" "N" "E" "F" "" "y" "acad.ctb" "Y" "A"
        "N"  "Y" "Y"

   )
  (command "qsave")
(princ )
)
发表于 2011-1-6 01:12 | 显示全部楼层

说到plot的命令行打印
以前我遇到过一个问题
可能是打印dwf文件?
不同的dwg
可能会是两种参数响应中的一种
一直没搞清楚两种dwg之间有什么差异
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 16:53 , Processed in 0.504029 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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