找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1471|回复: 17

[编程申请]:谁能编个这样的批量程序?

[复制链接]
发表于 2004-11-17 22:35:55 | 显示全部楼层 |阅读模式

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

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

×
谁能编个批量的先炸开后转成DXF(R14)的程序?是针对放在同个目录下的DWG
先炸是为了炸开文件里的块或圆弧(最好是能把圆弧炸成直线的)
转DXF是为了转的其它软件
以前也找过类似的批量工具但都只有转DXF的功能没有先炸一下的功能
谢谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 11287个

财富等级: 富甲天下

发表于 2004-11-18 12:33:41 | 显示全部楼层
将下面的代码拷贝粘贴到记事本中,以ACAD.LSP为名另存在默认路径下。
启动ACAD后即可连续运行。运行时自动删除指定目录下的旧文件,因此要备份原文件。
程序直到目录中无文件出错停止。运行时如果文件太多,系统资源会耗尽,需要重新启动系统。
当工作完后,将ACAD.LSP改名即可正常执行ACAD。程序可以在R14下运行。
(DEFUN S::STARTUP ()
(SETQ PATH "F:\\WORKINGDIR\\") ;路径可以替换
(COMMAND "SHELL" (STRCAT "DIR " PATH "*.DWG /B >DWG.TXT"))
(SETQ F (OPEN "DWG.TXT" "r"))
(SETQ NMM (READ-LINE F))
(WHILE (NOT (SETQ F1 (OPEN (STRCAT PATH NMM) "r")))
  (SETQ NMM (READ-LINE F))
)
(CLOSE F) (CLOSE F1)
(IF (> (STRLEN NMM) 0) (PROGN
  (COMMAND "OPEN" (STRCAT PATH NMM))
  (COMMAND "ZOOM" "E")
  (SETQ SA (SSGET "X" (LIST (CONS 0 "INSERT"))))
  (IF (/= SA nil) (PROGN
   (SETQ I 0 SL (SSLENGTH SA))
   (REPEAT SA
    (SETQ SN1 (SSNAME SA I) I (1+ I))
    (COMMAND "EXPLODE" SN1)
   )
  ))
  (COMMAND "SHELL" (STRCAT "ERASE " PATH NMM))
  (SETQ NMM (SUBSTR NMM 1 (- (STRLEN NMM) 4)))
  (COMMAND "DXFOUT" "R14" (STRCAT PATH NMM) "NEW" "Y" "")
))
(PRINC)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-18 18:56:21 | 显示全部楼层
小弟!愚昧!看的不是很明白!!不好意思!默然指的是什么?
程序中的(SETQ PATH "F:\\WORKINGDIR\\") ;路径可以替换
的;路径可以替换是否可以删掉?
是否是把F:\\WORKINGDIR改成图纸文件放的位置?
请赐教!谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11287个

财富等级: 富甲天下

发表于 2004-11-29 15:47:40 | 显示全部楼层
程序重新写过。
将下面的代码拷贝粘贴到记事本中,以MADEDXF.LSP为名保存在ACAD默认搜索路径下。
进入ACAD后,用命令(LOAD"MADEDXF")或APPLOAD加载。
键入MADEDXF开始执行。
运行时如果文件太多,系统资源或硬盘空间会耗尽,需要重新启动系统或整理硬盘。
程序可以在R14下运行。
[php]
(DEFUN C:MADEDXF ()
(SETVAR "CMDECHO" 0)
(SETVAR "CMDDIA" 0)
(SETQ PATH "F:\\WORKINGDIR\\") ;路径可以替换
(WHILE (NOT (SETQ F (OPEN "DWG.TXT" "r")))
(COMMAND "SHELL" (STRCAT "DIR " PATH "*.DWG /B >DWG.TXT"))
)
(WHILE (SETQ NMM (READ-LINE F))
(COMMAND "_INSERT" (STRCAT PATH NMM) "0,0" "1" "")
(COMMAND "ZOOM" "E" "REGEN")
(SETQ P1 (GETVAR "EXTMIN") P2 (GETVAR "EXTMAX"))
(SETQ SA (SSGET "X" (LIST (CONS 0 "INSERT"))))
(IF (/= SA nil) (PROGN
  (SETQ I 0 SL (SSLENGTH SA))
  (REPEAT SL
   (SETQ SN1 (SSNAME SA I) I (1+ I))
   (COMMAND "EXPLODE" SN1)
  )
))
(SETQ NMM (SUBSTR NMM 1 (- (STRLEN NMM) 4)))
(COMMAND "DXFOUT" (STRCAT PATH NMM) "O" P1 P2 "" "")
(COMMAND "ERASE" "C" P1 P2 "")
)
(CLOSE F)
(SETVAR "CMDDIA" 1)
(SETVAR "CMDECHO" 1)
(PRINC)
)
[/php]
回复lewis240:
1、分号后的“路径可以替换”是程序注解,删不删都行。
2、WORKINGDIR就是指您图纸文件的位置。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-29 23:15:10 | 显示全部楼层
不好意思!!大侠还是不行!键入后:
未知命令“MADEDXF”。按 F1 查看帮助
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-1 16:27:26 | 显示全部楼层

(SETQ PATH "F:\WORKINGDIR\") ;路径可以替换
改为
(SETQ PATH "F:\\WORKINGDIR\\") ;路径可以替换
但真不知乍用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-2 23:48:35 | 显示全部楼层
恩!!楼上是对的
照着改了能键入这命令了
可是大侠还是不能用:...
命令:MASEDXF
需要有效的数值角度或第二点.
错误:函数被取消
指定旋转角度<0>:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11287个

财富等级: 富甲天下

发表于 2004-12-3 08:43:55 | 显示全部楼层
程序已更改。使用时要在空白的新图中执行程序。
[php]
(DEFUN C:MADEDXF ()
(SETVAR "CMDECHO" 0)
(SETVAR "CMDDIA" 0)
(COMMAND "UNDO" "C" "N"
(SETQ PATH "F:\\WORKINGDIR\\") ;路径可以替换
(WHILE (NOT (SETQ F (OPEN "DWG.TXT" "r")))
  (COMMAND "SHELL" (STRCAT "DIR " PATH "*.DWG /B >DWG.TXT"))
)
(WHILE (SETQ NMM (READ-LINE F))
  (COMMAND "_INSERT" (STRCAT "*" PATH NMM) "0,0" "1" "")
  (COMMAND "ZOOM" "E" "REGEN")
  (SETQ P1 (GETVAR "EXTMIN") P2 (GETVAR "EXTMAX"))
  (SETQ SA (SSGET "X" (LIST (CONS 0 "INSERT"))))
  (IF (/= SA nil) (PROGN
    (SETQ I 0 SL (SSLENGTH SA))
    (REPEAT SL
     (SETQ SN1 (SSNAME SA I) I (1+ I))
     (COMMAND "EXPLODE" SN1)
    )
  ))
  (SETQ NMM (SUBSTR NMM 1 (- (STRLEN NMM) 4)))
  (COMMAND "DXFOUT" (STRCAT PATH NMM) "O" P1 P2 "" "")
  (COMMAND "ERASE" "C" P1 P2 "" "LIMITS" "" "200,120" "ZOOM" "A" "REGEN")
)
(CLOSE F)
(COMMAND "UNDO" "A")
(SETVAR "CMDDIA" 1)
(SETVAR "CMDECHO" 1)
(PRINC)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-3 22:28:01 | 显示全部楼层
命令: _appload 已成功加载 MADEDXF.LSP
命令:
错误: 输入的列表有缺陷
:
命令: MADEDXF
未知命令“MADEDXF”。按 F1 查看帮助。
大哥!还不行
再加点油啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-4 12:58:48 | 显示全部楼层
再试一下这个……

(defun c:madedxf ()
  (setvar "cmdecho" 0)
  (setvar "cmddia" 0)
  (setq path "d:/101/")  
  (setq link (vl-directory-files path "*.dwg" 1))
  (setq long (1- (length link)))
  (foreach nam link
    (command "._undo" "be")
    (princ (strcat "\n正在处理文件" nam))
    (princ "\n请等待.......")   
    (command "_insert" (strcat "*" path nam) "0,0" "1" "")
    (command "zoom" "e" "regen")
    (setq p1 (getvar "extmin")
          p2 (getvar "extmax")
          )
    (setq sa (ssget "x"))
    (setq nam (substr nam 1 (- (strlen nam) 4)))
    (command "dxfout" (strcat path nam) "o" sa "" "")
    (if        (> long 0)
      (progn
        (princ "\n处理完毕!  还有 ")
        (princ long)
        (princ " 个文件需要处理。")
        (setq long (1- long))
        )
      (princ "\n全部文件处理完毕 !!!")
      )
    (command "._undo" "e")
    (command "._u")
    )
  (setvar "cmddia" 1)
  (setvar "cmdecho" 1)
  (princ)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-5 23:30:09 | 显示全部楼层
楼上的大哥!你的程序可以把DWG转成DXF,但是他们并没有炸过!
请改进一下吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-6 00:47:58 | 显示全部楼层
未经同意修改:
[php]
(defun c:madedxf ()
  (setvar "cmdecho" 0)
  (setvar "cmddia" 0)
  (setq        dwgname
         (getfiled "请点取该目录要转DXF的任意一个文件:" "" "dwg" 16)
  )
  (setq path (strcat (vl-filename-directory dwgname) "\\"))
  (setq link (vl-directory-files path "*.dwg" 1))
  (setq long (1- (length link)))
  (foreach nam link
    (command "._undo" "be")
    ;;(princ (strcat "\n正在处理文件" nam))
    ;;(princ "\n请等待.......")
    (command "_insert" (strcat "*" path nam) "0,0" "1" "")
    (command "zoom" "e" "regen")
    (setq p1 (getvar "extmin")
          p2 (getvar "extmax")
    )
    (repeat 2
      (setq sa (ssget "w" p1 p2))
      (vl-cmdf "explode" sa "")
    )
    ;;(setq sa (ssget "x"))
    (setq nam (substr nam 1 (- (strlen nam) 4)))
    (command "dxfout" (strcat path nam) "o" sa "" "")
    ;|(if        (> long 0)
      (progn
        (princ "\n处理完毕! 还有 ")
        (princ long)
        (princ " 个文件需要处理。")
        (setq long (1- long))
      )
      (princ "\n全部文件处理完毕 !!!")
    )
    |;
    (command "._undo" "e")
    (command "._u")
  )
  (setvar "cmddia" 1)
  (setvar "cmdecho" 1)
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11287个

财富等级: 富甲天下

发表于 2004-12-6 10:08:29 | 显示全部楼层
最初由 lewis240 发布
[B]命令: _appload 已成功加载 MADEDXF.LSP
命令:
错误: 输入的列表有缺陷
:
命令: MADEDXF
未知命令“MADEDXF”。按 F1 查看帮助。
大哥!还不行
再加点油啊! [/B]

第四行少了一个括弧。程序更新如下:

  1. (DEFUN C:MADEDXF ()
  2. (SETVAR "CMDECHO" 0)
  3. (SETVAR "CMDDIA" 0)
  4. (COMMAND "UNDO" "C" "N")
  5. (SETQ PATH "F:\\WORKINGDIR\") ;路径可以替换;
  6. (WHILE (NOT (SETQ F (OPEN "DWG.TXT" "r")))
  7.   (COMMAND "SHELL" (STRCAT "DIR " PATH "*.DWG /B >DWG.TXT"))
  8. )
  9. (WHILE (SETQ NMM (READ-LINE F))
  10.   (COMMAND "_INSERT" (STRCAT "*" PATH NMM) "0,0" "1" "")
  11.   (COMMAND "ZOOM" "E" "REGEN")
  12.   (SETQ P1 (GETVAR "EXTMIN") P2 (GETVAR "EXTMAX"))
  13.   (SETQ SA (SSGET "X" (LIST (CONS 0 "INSERT"))))
  14.   (IF (/= SA nil) (PROGN
  15.     (SETQ I 0 SL (SSLENGTH SA))
  16.     (REPEAT SL
  17.      (SETQ SN1 (SSNAME SA I) I (1+ I))
  18.      (COMMAND "EXPLODE" SN1)
  19.     )
  20.   ))
  21.   (SETQ NMM (SUBSTR NMM 1 (- (STRLEN NMM) 4)))
  22.   (COMMAND "DXFOUT" (STRCAT PATH NMM) "O" P1 P2 "" "")
  23.   (COMMAND "ERASE" "C" P1 P2 "" "LIMITS" "" "200,120" "ZOOM" "A" "REGEN")
  24. )
  25. (CLOSE F)
  26. (COMMAND "UNDO" "A")
  27. (SETVAR "CMDDIA" 1)
  28. (SETVAR "CMDECHO" 1)
  29. (PRINC)
  30. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-8 22:11:44 | 显示全部楼层
xyp1964 大哥怎么用???路径写在那???和上面程序的不一样不太明白!!?
zxq0220  大哥这次好点了,文件夹里有转成DXF了,可是只有一个转成的其他两个不行好象一个复杂点的原因?一个是因为有弧?(我不不太明白)而且没有DXF炸过!?
希望再接再厉加油啊好人!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-8 22:56:47 | 显示全部楼层
最初由 lewis240 发布
[B]xyp1964 大哥怎么用???路径写在那???和上面程序的不一样不太明白!!?
zxq0220  大哥这次好点了,文件夹里有转成DXF了,可是只有一个转成的其他两个不行好象一个复杂点的原因?一个是因为有弧?(我不不太明... [/B]


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-22 02:53 , Processed in 0.303132 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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