找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: zmqian

[求助] [求助]:寻找Dwg文件自动拆图软件开发人员

[复制链接]
发表于 2006-3-22 10:20:58 | 显示全部楼层
最初由 lemonx 发布
[B]xyp的程序很不错
不过美中不足,还有些小问题:
当所选择的路径中有重名文件时程序不能进行错误处理
路径名输入错误时也应该有提示
只能控制文件名前缀,而不能控制整个文件名,假如我的dwg文件中只有结1和结3,... [/B]

修改:
1、当所选择的路径中有重名文件时程序进行错误处理
2、路径名输入错误时提示错误并要求重新输入
  1. [FONT=courier new]
  2. ;;;ZDCT(自动拆图)
  3. ;;;20060320
  4. ;;;20060322修改
  5. (defun c:ZDCT (/ ss i j s1 etype pts pte)
  6.   (CMDLA0)
  7.   (if (null STR)
  8.     (setq STR "C:")
  9.   )
  10.   (if (null STR1)
  11.     (setq STR1 "DRAW-")
  12.   )
  13.   (while (not (vl-directory-files
  14.                 (SETQ STR (USTR 7 "\n存盘路径(C:/ls)" STR NIL))
  15.               )
  16.          )
  17.     (princ "\n指定的存盘路径不存在, 请重新输入!")
  18.   )
  19.   (SETQ STR1 (USTR 7 "\n图名前缀" STR1 NIL))
  20.   (princ "\n请选择图框或封闭外边框: ")
  21.   (setq        ss (ssget)
  22.         i  -1
  23.         j  0
  24.   )
  25.   (while (setq s1 (ssname ss (setq i (1+ i))))
  26.     (setq etype (xyp-get-dxf 0 s1))
  27.     (if        (= etype "INSERT")
  28.       (wb-out s1)
  29.       (progn
  30.         (if (or        (= etype "POLYLINE")
  31.                 (= etype "LWPOLYLINE")
  32.             )
  33.           (progn
  34.             (setq pts (xyp-get-CurveStartPoint s1)
  35.                   pte (xyp-get-CurveEndPoint s1)
  36.             )
  37.             (if        (equal pts pte)
  38.               (wb-out s1)
  39.               (princ "\n外框不封闭! ")
  40.             )
  41.           )
  42.           (princ "\n外框不封闭! ")        ;非外边框
  43.         )
  44.       )
  45.     )
  46.   )
  47. (if j
  48.   (princ (strcat "\n共拆图 " (rtos j 2 0) " 个"))
  49. )
  50.   (CMDLA1)
  51. )
  52. (defun wb-out (sname / pt1 pt3 pt9)
  53.   (setq        pt1 (xyp-get-MinMaxPoint sname 1)
  54.         pt3 (xyp-get-MinMaxPoint sname 3)
  55.         pt9 (xyp-get-MinMaxPoint sname 9)
  56.         j   (1+ j)
  57.         dn  (strcat str "/" STR1 (rtos j 2 0))
  58.   )
  59.   (while (findfile (strcat dn ".dwg"))
  60.     (alert
  61.       (strcat "\n文件 " dn " 已存在!" "\n新文件名为 " dn "-1")
  62.     )
  63.     (setq dn (strcat dn "-1"))
  64.   )
  65.   (command "wblock" dn "" pt3 "w" pt1 pt9 "")
  66. )
  67. (pxyp "ZDCT  (自动拆图)")
  68. (princ)
  69. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-22 22:48:10 | 显示全部楼层
我也建议你去看看qf写的批量打印,可以以对话框选择某种类型实体作为图框,原码你在xdcad或mjtd上搜搜。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-23 13:48:59 | 显示全部楼层
我认为没必要搞那么复杂,
xyp现在的程序已经可以做到点一下拆一张图,而且已经可以做到自动识别矩形框和图块,非要为了少点几下让开发者一通忙乎,实在无此必要
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-23 14:16:27 | 显示全部楼层
可以建立新目录:
  1. [FONT=courier new];;;ZDCT(自动拆图)
  2. ;;;20060320
  3. ;;;20060322修改
  4. (defun c:ZDCT (/ ss i j s1 etype pts pte)
  5.   (CMDLA0)
  6.   (if (null STR)
  7.     (setq STR "C:")
  8.   )
  9.   (if (null STR1)
  10.     (setq STR1 "DRAW-")
  11.   )
  12.   (while (not (vl-directory-files
  13.                 (SETQ STR (USTR 7 "\n存盘路径(C:/ls)" STR NIL))
  14.               )
  15.          )
  16.     (setq ukw (UKWORD 7
  17.                       "Y N"
  18.                       "\n指定的存盘路径不存在,是否新建 : Y-新建/N-不建"
  19.                       ukw
  20.               )
  21.     )
  22.     (cond ((= UKW "Y") (vl-mkdir STR)))
  23.   )
  24.   (SETQ STR1 (USTR 7 "\n图名前缀" STR1 NIL))
  25.   (princ "\n请选择图框或封闭外边框: ")
  26.   (setq        ss (ssget)
  27.         i  -1
  28.         j  0
  29.   )
  30.   (while (setq s1 (ssname ss (setq i (1+ i))))
  31.     (setq etype (xyp-get-dxf 0 s1))
  32.     (if        (= etype "INSERT")
  33.       (wb-out s1)
  34.       (progn
  35.         (if (or        (= etype "POLYLINE")
  36.                 (= etype "LWPOLYLINE")
  37.             )
  38.           (progn
  39.             (setq pts (xyp-get-CurveStartPoint s1)
  40.                   pte (xyp-get-CurveEndPoint s1)
  41.             )
  42.             (if        (equal pts pte)
  43.               (wb-out s1)
  44.               (princ "\n外框不封闭! ")
  45.             )
  46.           )
  47.           (princ "\n外框不封闭! ")        ;非外边框
  48.         )
  49.       )
  50.     )
  51.   )
  52.   (if j
  53.     (princ (strcat "\n共拆图 " (rtos j 2 0) " 个"))
  54.   )
  55.   (CMDLA1)
  56. )
  57. (defun wb-out (sname / pt1 pt3 pt9)
  58.   (setq        pt1 (xyp-get-MinMaxPoint sname 1)
  59.         pt3 (xyp-get-MinMaxPoint sname 3)
  60.         pt9 (xyp-get-MinMaxPoint sname 9)
  61.         j   (1+ j)
  62.         dn  (strcat str "/" STR1 (rtos j 2 0))
  63.   )
  64.   (while (findfile (strcat dn ".dwg"))
  65.     (alert
  66.       (strcat "\n文件 " dn " 已存在!" "\n新文件名为 " dn "-1")
  67.     )
  68.     (setq dn (strcat dn "-1"))
  69.   )
  70.   (command "wblock" dn "" pt3 "w" pt1 pt9 "")
  71. )
  72. (pxyp "ZDCT  (自动拆图)")
  73. (princ)[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-24 21:23:00 | 显示全部楼层
作图规范化是实现自动化的必要条件。
在autocad2005/2006 里的sheetset manager 已经相当好用了。不过要求图框图签在图纸空间,而不是在模型空间。

国内cad制图似乎普遍都是直接在模型空间的。这样做其实有不少弊端。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-27 23:14:45 | 显示全部楼层
提几个小小建议:

1、怎么修改成把与图框相交的图元也一起保存,
2、或把与之相交的框外的直线、多线等在相交点断开,然后保存框内的图形,
3、或者通过用户框选的方式来学选择需要拆图的范围,
4、在保存之后,不应该把原始图中的图形删除,就是说原图还是毫发无损,完好无缺。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-28 10:09:26 | 显示全部楼层
在保存之后,不应该把原始图中的图形删除,就是说原图还是毫发无损,完好无缺。
这一点很有必要.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1489个

财富等级: 财源广进

发表于 2009-7-13 14:43:24 | 显示全部楼层
xyp1964  斑竹,你的程序很好!但如果是有布局的(模型画图,布局标注插入图框等)就不行了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2009-7-13 21:06:47 | 显示全部楼层
用秋枫大侠的批打
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1304个

财富等级: 财源广进

发表于 2009-7-22 11:01:11 | 显示全部楼层
很好的功能
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-7-28 14:00:38 | 显示全部楼层
强烈反对拆图,我们领导每次让我分图,我一边分一边骂,拆开后想修改就很麻烦,我真搞不懂他们是怎么想的,最后我得出一个结论:凡是没画过图的人就喜欢拆开,凡是不会用块的人就喜欢拆图,凡是脑子有毛病的人就喜欢拆开。。。不解恨,还想骂,不过没词了。虽然我有拆图工具,那是被逼着编出来的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-3-27 15:30:33 | 显示全部楼层
xyp1964 发表于 2006-3-23 14:16
可以建立新目录:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 10:58 , Processed in 0.233228 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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