永不言弃 发表于 2014-3-8 20:10:01

封闭先编号排序问题

我希望编号的顺序是从左到右,从上到下的排序,要怎么修改,请大侠们指点,谢谢

soly2006 发表于 2014-6-2 22:52:28

以图形中心排序即可。那有那么精准的要求。

skg123 发表于 2021-5-21 22:32:46

soly2006 发表于 2014-6-2 22:52
以图形中心排序即可。那有那么精准的要求。

我也这样认为,求出封闭线的中心点(形心),将中心点做一个点集,然后排序就行了,如果是测绘用,自然界的土地不是整齐的,没有那么高的精度排序

迷失1786 发表于 2017-9-2 22:26:53

支持楼主上传分享

328302216 发表于 2014-4-16 09:54:51

不懂给你顶一下

bai2000 发表于 2014-4-16 09:56:28

我也需要,不过数字为属性块好点

llsheng_73 发表于 2014-4-25 21:37:43

本帖最后由 llsheng_73 于 2014-4-25 21:44 编辑

其实测绘对于排序很头痛,首先是地籍图要求宗地编号按"弓"字形排列,同时要求界址点以西北角开始按顺时针方向...还好这后边一项都用CASS软件搞定了
对于宗地图要求编号按一定规则排列还比较好理解,因为城镇地籍的宗地再不济也是布满的
但气人的是现在很多地方的农业局又要求地块编号按"川"字形排列,这其实有点无理了,地块它与宗地不一样的是它很多时候是离散的,因此这样排序出来并不能取得明显的效果
而现在测绘已经越来越没有底限,基本都是业主要求什么做什么,一般不去考虑因此增加多少成本而与业主讨价还价(这也很无奈,测绘的门槛越来越低,不愿意做有的是人抢着干,所以市场混乱也导致测绘基本不敢再打技术招牌--如果单说一般的外业确实也没多少技术含量)
上边全是废话

现在说下个人的想法,首先把所有地块的包容盒求出来,第一个地块应该是所有地块中离西北角p最近的一个,得到这个地块的西南角坐标作为p,从除去第一个地块的所有地块中找出离它最近的一个,这个时候应该限定一下p到最近点的方向是大致向南而不是向北或者向东的,依次循环到南方找不到地块就完成了最左边的一列,又从余下的所有地块中找出西北角点p,再次重复,直到没有地块.(求距离p点最近的地块时,最好也用地块的包空盒进行计算而不要用 vlax-curve-getdistatpoint ,因为这样不好控制它的方向,有可能距离确实是最近的一个,但它的方向却可能往东的而被排除,导致最终排序是混乱的)
这个方法的好处是算法比较好理解,但速度可能不会快,要速度快的算法以我的水平还想不出来,虽然看过院长的排序电演示和黄长老的排序子程序,但仍然想不出高效的办法

llsheng_73 发表于 2014-4-25 21:45:57

应该是封闭线吧,别让人觉得凡是测绘的没几个有文化的,虽然我们多数时候干的就是苦力,但并不是因为我们什么都不懂什么都不会

vlisp2012 发表于 2014-4-26 11:42:58

不同的行业,理解的东西不一样啊!
排序前和排序后的图纸,都附上;大家才好理解你的意思和最终达到的效果。

wkq004 发表于 2014-5-18 22:32:08

llsheng_73 发表于 2014-4-25 21:37
其实测绘对于排序很头痛,首先是地籍图要求宗地编号按"弓"字形排列,同时要求界址点以西北角开始按顺时针方 ...

说的很对。

yx1985321 发表于 2014-5-31 17:10:12

同行啊,说的好。苦逼的现实

xyp1964 发表于 2014-6-3 08:14:08

;; 从上到下从左到右排序;; 需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF 访问密码 2ffa
(defun c:tt ()
(xyp-CMDLASC0)
(if (setq ss (ssget '((0 . "LWPOLYLINE") (90 . 4) (70 . 1))))
    (progn
      (setq lst (xyp-Sort-Plist (xyp-Sort ss 10 "Y-max") 1)
          lst        (mapcar 'cdr lst)
          i        0
      )
      (foreach s1 lst
        (xyp-Text 5 (xyp-9pt s1 5) (itoa (setq i (1+ i))))
        (setq i (1+ i))
      )
    )
)
(xyp-CMDLA1)
)
页: [1] 2
查看完整版本: 封闭先编号排序问题