明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3267|回复: 14

[已解答] 求按承台名称统计承台个数

[复制链接]
发表于 2014-2-28 10:55 | 显示全部楼层 |阅读模式
3明经币
求按承台名称统计承台个数
测试图
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

试编了一下,只能识别多段线的承台,有些承台是线段围成的,识别起来挺有难度,目前程序识别不了面积为0。 另外本人不再改这个程序了,没啥意思。 (defun c:aa (/ ent i lst m2 n pt ss ss1 txt) (vl-load-com) (setvar "cmdecho" 0) (setq lst '()) (if (setq ss (ssget '((0 . "TEXT") (1 . "CT-*")))) (repeat (setq i (sslength ss)) (setq txt (cdr (assoc 1 (setq ent (entget (ssname ss (setq ...
发表于 2014-2-28 10:55 | 显示全部楼层
本帖最后由 langjs 于 2014-3-1 13:19 编辑

试编了一下,只能识别多段线的承台,有些承台是线段围成的,识别起来挺有难度,目前程序识别不了面积为0。
另外本人不再改这个程序了,没啥意思。

(defun c:aa (/ ent i lst m2 n pt ss ss1 txt)
  (vl-load-com)
  (setvar "cmdecho" 0)
  (setq lst '())
  (if (setq ss (ssget '((0 . "TEXT") (1 . "CT-*"))))
    (repeat (setq i (sslength ss))
      (setq txt (cdr (assoc 1 (setq ent (entget (ssname ss (setq i (1- i)))))))
            pt (cdr (assoc 10 ent))
            m2 0.0
      )
      (if (setq ss1 (ssget "F" (list (list (- (car pt) 200) (- (cadr pt) 200)) (list (+ (car pt) 1500) (- (cadr pt) 200)))
                           (list '(0 . "LINE") '(8 . "图层1"))
                    )
          )
        (if (setq ss1 (ssget "F" (list (cdr (assoc 10 (entget (ssname ss1 0)))) (cdr (assoc 11 (entget (ssname ss1 0)))))
                             '((0 . "LWPOLYLINE") (90 . 5))
                      )
            )
          (progn
            (setq ent (entlast))
            (command ".region" ss1 "")
            (while (setq ent (entnext ent))
              (if (= (cdr (assoc 0 (entget ent))) "REGION")
                (setq m2 (/ (vla-get-area (vlax-ename->vla-object ent)) 1000000)) ; 面积,平方米
              )
            )
            (command ".undo" "")
          )
        )
      )
      (if (setq n (assoc txt lst))
        (progn
          (setq lst (vl-remove n lst))
          (if (= (caddr n) 0.0)
            (setq lst (cons (list txt (1+ (cadr n)) m2) lst))
            (setq lst (cons (list txt (1+ (cadr n)) (caddr n)) lst))
          )
        )
        (setq lst (cons (list txt 1 m2) lst))
      )
    )
  )
  (setq lst (vl-sort lst (function (lambda (i n)
                                     (< (car i) (car n))
                                   )
                         )
            )
  )
  (foreach n lst
    (princ "\n")
    (princ n)
  )
  (princ)
)

点评

非常强大,只是别个引线离承台多线就差一点点,面积应该能出来,就是要改进的地方。  发表于 2014-3-1 13:42

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-2-28 12:05 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

毫无意义的演示  发表于 2014-2-28 12:25
回复

使用道具 举报

发表于 2014-2-28 12:22 | 显示全部楼层
(setq ss (ssget '((0 . "text") (1 . "CT-*"))))
再逐个对SS进行分类统计!应该很容易吧!

点评

“光说不练假把式!”  发表于 2014-2-28 21:50
回复

使用道具 举报

 楼主| 发表于 2014-2-28 14:20 | 显示全部楼层
Lisper 发表于 2014-2-28 12:22
(setq ss (ssget '((0 . "text") (1 . "CT-*"))))
再逐个对SS进行分类统计!应该很容易吧!

难就难在对应的承台面积统计在后面。
回复

使用道具 举报

发表于 2014-2-28 14:33 | 显示全部楼层
品茗新秀 发表于 2014-2-28 14:20
难就难在对应的承台面积统计在后面。

这有什么难的,通过文字搜索出指引线,再通过指引线来搜索承台!

点评

来个看看  发表于 2014-2-28 20:36
回复

使用道具 举报

发表于 2014-2-28 20:07 | 显示全部楼层

用老迈的迷你建筑工具中的文字统计工具就好了啊
http://szmaicy.ys168.com

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2014-2-28 20:31 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

很无聊!  发表于 2014-2-28 21:33
回复

使用道具 举报

 楼主| 发表于 2014-2-28 21:57 | 显示全部楼层
xyp1964 发表于 2014-2-28 20:31

没代码,二是最好能显示对应承面的面积才有用

点评

楼主无此要求!  发表于 2014-2-28 22:31
回复

使用道具 举报

 楼主| 发表于 2014-2-28 22:57 | 显示全部楼层
品茗新秀 发表于 2014-2-28 21:57
没代码,二是最好能显示对应承面的面积才有用

可能有难度了,求哪位大师搞个源码,带相应承台面积
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 19:11 , Processed in 0.306038 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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