找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1164|回复: 10

[编程申请]:地形图切割

[复制链接]
发表于 2003-7-11 10:38:41 | 显示全部楼层 |阅读模式

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

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

×
因工作需要,经常需要从一张大图中切割出很多规则的小图来,不知各位大虾能否帮忙编个程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

 楼主| 发表于 2003-8-4 10:49:26 | 显示全部楼层
不知具体怎么操作,此外,有大量的图需自动完成
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-4 11:13:43 | 显示全部楼层
最初由 鹰博长空 发布
[B]不知具体怎么操作,此外,有大量的图需自动完成 [/B]


图形切割看下"晓东工具箱大事记"里面的教学.

如果要自动, 除非你告诉程序切割的规则,否则程序不知道你想怎么切割.

如果定不下来能让程序不发生歧义的规则,那么只能手工选范围切割或者裁减了.

<center><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6\,0\,29\,0" width="512" height="482"><param name=quality value=high><param name="SRC" value="http://www.xdcad.net/techcenter/upload/file/1_20030803022035_xdtb_dwgcut1.swf"><embed src="http://www.xdcad.net/techcenter/upload/file/1_20030803022035_xdtb_dwgcut1.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="512" height="482"></embed></object></center>

<center><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6\,0\,29\,0" width="512" height="482"><param name=quality value=high><param name="SRC" value="http://www.xdcad.net/techcenter/upload/file/1_20030803022239_xdtb_dwgcut3.swf"><embed src="http://www.xdcad.net/techcenter/upload/file/1_20030803022239_xdtb_dwgcut3.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="512" height="482"></embed></object></center>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-4 17:48:18 | 显示全部楼层
不好意思,讲的不是很清晰,我的工作是在一张很大的地形图中,选取其中的一部分(具体为0,0到250,200)另存为一张图,如001001.dwg,另一部分(0,250到500,200)另存为001002.dwg,规则为250*200为一单元格。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-8-5 10:26:08 | 显示全部楼层
关于“地形图切割 ”比较复杂,也有几种方法。现把一种较简单的做法介绍如下:
0.另存当前图
1.获得局部图的左下角点P1和有上角点P2
2.用(ssget "c" p1 p2)函数选择局部图内及相交的所有实体ss
3.用P1和P2创建一个矩形tk
4.删除tk外的所有点状图形和文字
5.删除tk外的所有线状图形
6.对保留下的每一个线状图形:
    6.1获得当前图形的所有节点
    6.2对当前图形的所有节点
    6.3如果当前节点在tk外,以tk为边界,trim掉tk外的部分6.
7.保存当前图形
8.打开原来的图形
9.重复0-8

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

使用道具 举报

发表于 2003-8-15 15:36:08 | 显示全部楼层
这里有一个小程序可以将你需要的一块图形剪出来。
;;;;裁剪图形,


  1. (defun c:scr (/             big   cmd count  dir          fname         name        pt1    pt3
  2.               pt1-2  pt1-4  pt3-2  pt3-4  pt2         pt4        pt-list
  3.               rot    ss            x1           y1          x3         y3        x0     y0
  4.              )

  5.   (setq        rot (getvar "viewtwist")
  6.         dir (getvar "dwgprefix")
  7.         cmd (getvar "cmdecho")
  8.   )
  9.   (setvar "cmdecho" 0)

  10.   (while (or (= (setq name (getstring "请输入图名:")) "")
  11.              (findfile (strcat name ".dwg"))
  12.          )
  13.   )

  14.   (setq fname (strcat dir name))


  15.   (if (not
  16.         (setq pt1 (getpoint (getvar "extmin") "请选择左下角点:"))
  17.       )
  18.     (setq pt1 (getvar "extmin"))
  19.   )
  20.   (if (not (setq pt3 (getcorner pt1 "请选右上择角点:")))
  21.     (setq pt3 (getvar "extmax"))
  22.   )


  23.   (setq        x1 (car pt1)
  24.         y1 (cadr pt1)
  25.   )
  26.   (setq        x3 (car pt3)
  27.         y3 (cadr pt3)
  28.   )
  29.   (if (> x1 x3)
  30.     (setq x0 x1
  31.           x1 x3
  32.           x3 x0
  33.     )
  34.   )
  35.   (if (> y1 y3)
  36.     (setq y0 y1
  37.           y1 y3
  38.           y3 y0
  39.     )
  40.   )

  41. ;;;根据选取的两对角点,考虑扭曲角度,计算另外两角点的坐标
  42.   (setq pt1-2 (polar pt1 (- (* 2.0 pi) rot) 5000))
  43.   (setq pt1-4 (polar pt1 (- (* 0.5 pi) rot) 5000))
  44.   (setq pt3-2 (polar pt3 (- (* 1.5 pi) rot) 5000))
  45.   (setq pt3-4 (polar pt3 (- (* 1.0 pi) rot) 5000))
  46.   (setq pt2 (inters pt1 pt1-2 pt3 pt3-2 nil))
  47.   (setq pt4 (inters pt1 pt1-4 pt3 pt3-4 nil))


  48.   (setq big 0.01)
  49.   (command "pline" pt1 pt2 pt3 pt4 "c")
  50.   (setq ss (entlast))

  51.   (command "zoom" pt1 pt3)
  52.   (command "zoom" "0.95x")
  53.   (setq count 6)

  54.   (repeat 6
  55.     (setq big (* big count))
  56.     (setq pt5 (polar pt1 (- (dms 225) rot) big))
  57.     (setq pt6 (polar pt2 (- (dms 315) rot) big))
  58.     (setq pt7 (polar pt3 (- (dms 45) rot) big))
  59.     (setq pt8 (polar pt4 (- (dms 135) rot) big))
  60.     (setq count (- count 1))
  61.     (command "trim" ss "" "f" pt5 pt6 pt7 pt8 pt5 "" "")
  62.   )
  63. ;;;end repeat

  64.   (setq pt-list (list pt1 pt2 pt3 pt4))
  65.   (setq ss (ssget "cp" pt-list))
  66.   (command "wblock" fname "" (list 0 0) ss "")
  67.   (setvar "cmdecho" cmd)
  68.   (princ)

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

使用道具 举报

 楼主| 发表于 2003-8-28 22:51:31 | 显示全部楼层
多谢提供思路,但是我用的是auotlisp,打开新图后,lisp无法继续进行,能否有其它方法?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-28 00:30:24 | 显示全部楼层
是的,c ass可以做到这一点,很好用,另外在论坛上xyp1964斑竹也主也有小程序,可以使用,自动拆图,方块裁减简单的功能可以满足。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-28 14:06:55 | 显示全部楼层
如果是出图的话图纸空间最好用!~

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 23:16 , Processed in 0.447104 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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