明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6002|回复: 17

[讨论] 如何统计矩形,并输出结果成表格?

  [复制链接]
发表于 2013-6-25 22:28 | 显示全部楼层 |阅读模式
   统计所选范围内多个不同的矩形,并将统计的结果,按矩形的边长输出成表格?

     我自己有个思路是这样的,还望大神帮忙点拨,来点神来之笔。

    1.先圈定选择集,滤去掉重叠的矩形。
     2.通过VL函数得到所选范围内矩形的面积,和周长。并写入表中。
    3 因为并不能直接从图元中得到矩形的边长,这里就要写个数据解析函数,由周长和面积求出边长,这是个二元一次方程,比较好解决。
        把得到的边长结果写成表单2.
    4.遍历 边长表单,除去相同的边长,并统计相同的数目。
  5 对上面得到的结果排序,写成新表,再按表格输出结果。


1 第1和2,3步的程序我都在网上找好相对应的源代码了,就是 第4步和第5步的程序一直没找到相似的程序。有谁能推荐个学习下呀。



本帖子中包含更多资源

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

x
发表于 2024-4-19 21:17 | 显示全部楼层
院长太坑了吧 ,不发源码还收费,g搞半天白下载了,
好意思?
回复 支持 1 反对 0

使用道具 举报

发表于 2014-9-23 03:30 | 显示全部楼层
又扣币不能下载?
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2013-7-5 00:45 | 显示全部楼层
本帖最后由 scream2658 于 2013-7-5 00:48 编辑


(defun qbc (pts / n bc_list b h pt1 pt2 pt3 pt4)
        (setq n 0 bc_list nil)
        (setq pt1 (nth n pts))
        (setq pt2 (nth (+ 1 n) pts))
        (setq pt3 (nth (+ 2 n) pts))
        (setq pt4 (nth (+ 3 n) pts))
        (setq b (distance pt1 pt4))
        (setq h (distance pt1 pt2))
        (setq bc_list (cons b h))
      );结束子函数

(defun c:tg ()
  (princ "请框选矩形:")
  (setq ss (ssget '((0 . "LWPOLYLINE"))))
  (setq i 0 x 0 bclst nil pts nil bc_new nil)
  (setq x (sslength ss))
  (repeat x
               (setq el (entget (ssname ss i)))
               (foreach pt el
                   (if (= (car pt) 10)
                       (setq pts (append pts (list (cdr pt))))
                    );结束IF
                );结束foreach遍历元素      
               (setq bc (qbc pts))
               (setq bclst(cons bc bclst))
               (setq pts nil)
               (setq i (+ 1 i))
        );结束repeat      
  (setq bc_new nil)
  (setq m (car bclst))
   (while m   
         (setq x1 (length bclst))
         (setq bclst (vl-remove m bclst))
         (setq m (car bclst))
         (setq x2 (length bclst))
         (setq bc_new (append (- x1 x2)(cons (list m)) bc_new))      
   )   

  (foreach y bc_new
      (print (car y))
      (print "=")
      (print (last y))
      (princ "\n")
    )
  (princ)
  )
回复 支持 0 反对 1

使用道具 举报

发表于 2014-9-23 08:21 | 显示全部楼层
xyp1964 发表于 2014-8-15 09:45

院长太强悍了 一切皆浮云啊
回复 支持 0 反对 1

使用道具 举报

发表于 2023-6-19 23:30 | 显示全部楼层
sky-x-x 发表于 2023-6-18 21:31
请问下如果矩形多段线未封闭,可以按矩形总长宽计算吗

先封闭再处理
回复 支持 0 反对 1

使用道具 举报

发表于 2013-6-26 08:19 | 显示全部楼层
1、先圈定选择集,滤去掉重叠的矩形。
2、遍历选择集,取出四点坐标,计算边长和面积并组成表单。
3、对边长排序。
4、统计相同边长的数目,写成新表。
5、按表格输出结果。
 楼主| 发表于 2013-7-5 00:49 | 显示全部楼层
  vl-remove 是删除所有相同的元素?还是一次只删除一个?

点评

删除所有相同的元素。  发表于 2013-7-5 08:08
发表于 2013-7-10 14:17 | 显示全部楼层
楼主用的是我的贴子吗,呵呵
看来是同行
合并数量可以到excel里进行合并
 楼主| 发表于 2013-7-10 19:33 | 显示全部楼层
fan_zh 发表于 2013-7-10 14:17
楼主用的是我的贴子吗,呵呵
看来是同行
合并数量可以到excel里进行合并

呵呵,你的什么帖子? 你也是做这个的?
发表于 2014-8-14 18:35 | 显示全部楼层
最后有成功吗?我也需要这样的程序。
发表于 2014-8-15 09:45 | 显示全部楼层


本帖子中包含更多资源

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

x

点评

院长真是威武啊!赞一个!  发表于 2014-9-23 06:20
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-1 04:23 , Processed in 0.280188 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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