明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2632|回复: 5

AUTOLISP中如何打开一个DWG文件/如何批量打开指定目录下的所有DWG文件

[复制链接]
发表于 2007-3-6 16:34 | 显示全部楼层 |阅读模式
紧急求助:1、AUTOLISP中如何打开一个DWG文件;
                  2、如何批量打开指定目录下的所有DWG文件。
发表于 2007-3-6 23:53 | 显示全部楼层
(setq pf (getfiled "指定原文件路径中的一个图形文件:>" "*" "dwg" 8))
  (
setq path (vl-filename-directory pf))
  (
setq path (strcat path "\\"))
  (
setq aa (vl-directory-files path "*.dwg" 1))
 楼主| 发表于 2007-3-7 09:31 | 显示全部楼层
楼上的你好:
(vl-load-com)
(setq path "E:\\CAD")
(foreach Open-File-Name (vl-directory-files path "*.dwg")
 (vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) (strcat path "\\" Open-File-Name)))
(command "_.plot"))

我也是这样做的,可我再想继续往下执行的时候不能执行下面的命令了,即使想关闭文件
(command "close") 也不能执行了

该怎么办啊?
发表于 2007-3-7 11:35 | 显示全部楼层
批量打印,建议用VBA比较好
 楼主| 发表于 2007-3-7 13:14 | 显示全部楼层
VBA应该怎么写啊,能不能给个参考啊
发表于 2007-3-8 14:40 | 显示全部楼层

可以用脚本 来做

(defun c:gg (/ filename directory files file obj_f)
  (defun writefile ()
    (write-line (strcat "open " file) obj_f)
    (write-line "erase (ssget \"x\" '((0 . \"line\"))) " obj_f) ;删除所有直线
    (write-line "purge a * n" obj_f)
    (write-line "zoom e" obj_f)
    (write-line "save " obj_f)
  )
  (if (setq filename (getfiled "选择文件所在路径" "" "dwg" 16))
    (progn
      (setq directory (vl-filename-directory filename))
      (if (null (wcmatch directory "*\\"))
 (setq directory (strcat directory "\\"))
      )
      (setq files (vl-directory-files directory "*.dwg" 1))
      (setq obj_f (open "temp.scr" "w"))
      (while files
 (setq file (strcat directory (car files)))
 (writefile)
 (setq files (cdr files))
      )
      (close obj_f)
      (command "script" "temp.scr")
    )
  )
)

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

本版积分规则

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

GMT+8, 2024-5-6 07:01 , Processed in 0.267421 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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