明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6046|回复: 18

[源码] 批量将目录下dwg文件制作成图库程序所需的幻灯片文件~

  [复制链接]
发表于 2015-5-4 22:49:56 | 显示全部楼层 |阅读模式
改自他人程序,我只是进行再加工而已~~~
  1. ;程序执行:TT
  2. ;制作图库幻灯片
  3. ;将目标文件夹下的每个文件执行“清理-缩放-写出幻灯片-保存关闭”;
  4. (vl-load-com)
  5. (defun getFolder (str_title str_prompt /)
  6.     (strcat (vl-string-right-trim "\" (strcase (acet-ui-pickdir str_prompt (vl-string-right-trim "\" "") str_title))) "\")
  7. )
  8. (defun makeDirectory (dir / )
  9.     (vl-mkdir dir)
  10. )

  11. (defun userundo()
  12.     (setq *error* errtmp)
  13.     (setvar "cmdecho" old_cmdecho)
  14.     (setvar "acadlspasdoc" old_acadlspasdoc)
  15.     (princ)
  16. )

  17. (defun err (msg)
  18.   (userundo)
  19. )
  20. ;主程序开始
  21. (defun c:TT ( / app doc docs err errtmp file files newpath old_acadlspasdoc old_cmdecho path sset)
  22.   (setq errtmp *error*)
  23.   (setq *error* err)
  24.     (setq old_cmdecho (getvar "cmdecho"))
  25.     (setvar "cmdecho" 0)
  26.     (setq old_acadlspasdoc (getvar "acadlspasdoc"))
  27.     (setvar "acadlspasdoc" 0)
  28.   (setq path (getFolder "请选择目录..." "请选择目录:"))
  29.   (setq files (vl-directory-files path "*.dwg" 1))
  30.   (if files
  31.         (progn
  32.                 (setq scrfile (strcat path "batpurge.scr"))
  33.                 (setq fn (open scrfile "w"))
  34.                 (foreach file files
  35.                     (setq str (strcat "open " "path file "" purge all * no Zoom E mslide " "path (vl-string-right-trim ".dwg" file)".sld" "" qsave close"))
  36.                     (write-line str fn)
  37.                     (princ)
  38.                 )
  39.                 (close fn)
  40.         )
  41.     (alert "所选目录无 .dwg 文件!请重新选择:")
  42.   )
  43.     (command "script" scrfile)
  44.     (userundo)
  45.   (setq *error* errtmp)
  46.   (princ)
  47. )

点评

程序缺少括号  发表于 2018-9-15 04:28

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 谢谢分享

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-8-21 22:05:32 | 显示全部楼层
有个很奇怪的问题,比如楼主代码中的 (setq DWG (strcat DWG_DIR "\" DWG)) ,我一直用的 (setq DWG (strcat DWG_DIR "\\" DWG))  特殊字符不是需要转义么?
发表于 2020-9-2 16:40:23 | 显示全部楼层
错误: no function definition: ACET-UI-PICKDIR 。楼主能否提供一下函数及子函数(如有),谢谢!
 楼主| 发表于 2015-5-4 23:11:04 | 显示全部楼层
  1. (vl-load-com)
  2. ;将CAD图形DWG文件批量转成幻灯片
  3. (defun C:DWG2SLD (/ ACADOBJ DOC DWG_DIR DWG_LST NAME SDI)
  4.   (defun CJW-FILE-GET (MSG / WINSHELL SHFOLDER PATH CATCHIT)
  5.     (setq WINSHELL (vlax-create-object "Shell.Application"))
  6.     (setq
  7.       SHFOLDER (vlax-invoke-method WINSHELL 'BROWSEFORFOLDER 0 MSG 1)
  8.     )
  9.     (setq
  10.       CATCHIT (vl-catch-all-apply
  11.                 '(lambda ()
  12.                    (setq SHFOLDER (vlax-get-property SHFOLDER 'SELF))
  13.                    (setq PATH (vlax-get-property SHFOLDER 'PATH))
  14.                  )
  15.               )
  16.     )
  17.     (if        (vl-catch-all-error-p CATCHIT)
  18.       NIL
  19.       PATH
  20.     )
  21.   )
  22.   (princ
  23.     "\n将CAD图形DWG文件批量转成幻灯片(DWGTOSLD) By carrot1983 2009-05-10"
  24.   )
  25.   (setvar "CMDECHO" 0)
  26.   (alert "\n注意: 备份原图!!!")
  27.   (if (and (setq DWG_DIR (CJW-FILE-GET "选择DWG文件夹"))
  28.            (setq DWG_LST (vl-directory-files DWG_DIR "*.DWG" 1))
  29.       )
  30.     (progn
  31.       (foreach DWG DWG_LST
  32.         (if (setq SS (ssget "x"))
  33.           (command "._ERASE" SS "")
  34.         )
  35.         (setq DWG (strcat DWG_DIR "\" DWG))
  36.         (setq SLD (strcat DWG_DIR "\" (vl-filename-base DWG) ".sld"))
  37.         (command ".-INSERT" DWG "_NON" '(0. 0. 0.) "1" "1" "0")
  38.         (command "._ZOOM" "_E")
  39.         (command "._MSLIDE" SLD)
  40.         (print SLD)
  41.       )
  42.       (alert "程序完毕 <DWG2SLD>")
  43.     )
  44.   )
  45.   (princ)
  46. )再来个萝卜的~~

点评

程序也不对,括号不匹配  发表于 2018-9-15 04:29

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 谢谢分享

查看全部评分

发表于 2015-5-5 07:29:46 | 显示全部楼层
谢谢分享,赞一个
发表于 2015-5-5 09:45:11 | 显示全部楼层
谢谢,正是所需.
发表于 2015-5-7 12:04:58 | 显示全部楼层
太好了谢谢楼主这个好用........
发表于 2015-5-10 09:50:16 | 显示全部楼层
非常好用,建议加精
发表于 2015-5-10 11:32:45 | 显示全部楼层
谢谢。这个程序不错
发表于 2015-5-11 11:23:02 | 显示全部楼层
有类似的需求,拿来借鉴一下。谢谢分享。
发表于 2016-6-2 22:49:49 | 显示全部楼层
过来看看 没明白怎么用。。。
发表于 2016-6-3 07:06:40 来自手机 | 显示全部楼层
WCEO 发表于 2016-6-2 22:49
过来看看 没明白怎么用。。。

文件在那里,怎么没看见,有的朋友能发一下吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 06:58 , Processed in 0.212970 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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