找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 941|回复: 6

[讨论]:返回表格每个小范围的中心点

[复制链接]
发表于 2008-5-22 22:24:24 | 显示全部楼层 |阅读模式

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

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

×
看大家有什么好的思路
一个用纯LINE画成的表格,要求狂选后返回每个格子的中心点并进行从左到右,从上到下的顺序排列
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2008-5-24 23:59:25 | 显示全部楼层
如果作图规则,按x,y排序,再求每个小块中点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-5-25 18:10:47 | 显示全部楼层

源码可供参照

1.关于单元格的判断
演示和更多源码见:http://zml84.blog.sohu.com/83261102.html
[PHP]
(vl-load-com)
;;;====================================
;;;    通用函数  根据点位获取单元格
;;;参数:SS  ----边框对象选择集
;;;      PT  ----指定的点位
;;;使用限制:表格由LINE对象绘制;
;;;          LINE横平竖直;
;;;          单元格无合并现象。
(defun ZML-CELL-POINT (SS PT / LST1 LST2 I ENT PT10 PT11 ANG XMIN XMAX
                       YMIN YMAX)
    ;;根据线条方向,划分两大表 :纵线  横线
    ;;分别得到 纵横表 对应的 x y 坐标(每条线只有一个)
    (setq LST1 '() ;_纵线X坐标表
          LST2 '() ;_横线Y坐标表
    )
    (setq I 0)
    (repeat (sslength SS)
        (setq ENT  (entget (ssname SS I))
              PT10 (cdr (assoc 10 ENT))
              PT11 (cdr (assoc 11 ENT))
              ANG  (angle PT10 PT11)
        )
        (if (or        (equal ANG (* 0.5 pi) 1e-6)
                (equal ANG (* 1.5 pi) 1e-6)
            )
            (setq LST1 (cons (car PT10) LST1))
        )
        (if (or        (equal ANG 0.0 1e-6)
                (equal ANG pi 1e-6)
            )
            (setq LST2 (cons (cadr PT10) LST2))
        )
        (setq I (1+ I))
    )
    ;;判断单元格范围
    (if        (and
            ;;判断是否存在表格
            (>= (length LST1) 2)
            (>= (length LST2) 2)
            ;;判断点是否在表格之内
            (<= (apply 'min LST1) (car PT) (apply 'max LST1))
            (<= (apply 'min LST2) (cadr PT) (apply 'max LST2))
        )
        (progn
            ;;排序
            (setq LST1 (vl-sort LST1 '<)
                  LST2 (vl-sort LST2 '<)
            )
            ;;查找X范围
            (setq TMP (car LST1))
            (foreach I (cdr LST1)
                (if (<= TMP (car PT) I)
                    (setq XMIN TMP
                          XMAX I
                          TMP  I
                    )
                    (setq TMP I)
                )
            )
            ;;查找Y范围
            (setq TMP (car LST2))
            (foreach I (cdr LST2)
                (if (<= TMP (cadr PT) I)
                    (setq YMIN TMP
                          YMAX I
                          TMP  I
                    )
                    (setq TMP I)
                )
            )
            ;;返回
            (list (list XMIN YMIN) (list XMAX YMAX))
        )
    ) ;_结束if
) ;_结束defun
[/PHP]

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2008-5-25 21:20:34 | 显示全部楼层
Net 网格当然简单了,中间有合并的就没那么容易了:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 07:07 , Processed in 0.173265 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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