改自他人程序,我只是进行再加工而已~~~
  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. )


网友答: 本帖最后由 YuHB 于 2025-9-14 10:22 编辑
spp_wall 发表于 2025-9-14 00:27
no function definition: ACET-UI-PICKDIR

在代码中加入这一句试试:(arxload "acetutil.arx")

网友答: 本帖最后由 YuHB 于 2025-8-21 13:29 编辑

楼主的代码稍微修改了下,好像能用了。
  • ;程序执行:TT
  • ;制作图库幻灯片
  • ;将目标文件夹下的每个文件执行“清理-缩放-写出幻灯片-保存关闭”;
  • (vl-load-com)
  • (defun getFolder (str_title str_prompt /)
  •   (strcat (vl-string-right-trim "\\" (strcase (acet-ui-pickdir str_prompt (vl-string-right-trim "\\" "") str_title))) "\\")
  • )
  • (defun makeDirectory (dir / )
  •   (vl-mkdir dir)
  • )
  • (defun userundo()
  •   (setq *error* errtmp)
  •   (setvar "cmdecho" old_cmdecho)
  •   (setvar "acadlspasdoc" old_acadlspasdoc)
  •   (princ)
  • )
  • (defun err (msg)
  •   (userundo)
  • )
  • ;主程序开始
  • (defun c:TT ( / app doc docs err errtmp file files newpath old_acadlspasdoc old_cmdecho path sset)
  •   (setq errtmp *error*)
  •   (setq *error* err)
  •   (setq old_cmdecho (getvar "cmdecho"))
  •   (setvar "cmdecho" 0)
  •   (setq old_acadlspasdoc (getvar "acadlspasdoc"))
  •   (setvar "acadlspasdoc" 0)
  •   (setq path (getFolder "请选择目录..." "请选择目录:"))
  •   (setq files (vl-directory-files path "*.dwg" 1))
  •   (if files
  •     (progn
  •       (setq scrfile (strcat path "batpurge.scr"))
  •       (setq fn (open scrfile "w"))
  •       (foreach file files
  •         (setq str (strcat "open " path file "  purge all * no Zoom E mslide " path (vl-string-right-trim ".dwg" file) ".sld" " qsave close"))
  •         (write-line str fn)
  •         (princ)
  •       )
  •       (close fn)
  •     )
  •     (alert "所选目录无 .dwg 文件!请重新选择:")
  •   )
  •   (command "script" scrfile)
  •   (userundo)
  •   (setq *error* errtmp)
  •   (princ)
  • )

复制代码



网友答:
  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. )再来个萝卜的~~


网友答: 谢谢分享,赞一个


网友答: 谢谢,正是所需.

网友答: 太好了谢谢楼主这个好用........

网友答: 非常好用,建议加精

网友答: 谢谢。这个程序不错

网友答: 有类似的需求,拿来借鉴一下。谢谢分享。

网友答: 过来看看 没明白怎么用。。。

网友答:
WCEO 发表于 2016-6-2 22:49
过来看看 没明白怎么用。。。

文件在那里,怎么没看见,有的朋友能发一下吗?
  • 上一篇:暖通风管绘制,变径连接,弯头连接,三通连接
  • 下一篇:没有了