iancool 发表于 2011-7-7 18:30:43

【求助】如何批量获得封闭多段线内部文字的选择集


如图,颜色的色块是房子,中间的文字是层数。本人是做城市规划的,在实际工作中经常要遇到计算建筑面积的问题。这时候往往要一个个地选建筑的边线,计算其占地面积,再乘以该房子的层数。规模一大的话,人工计算要累死。

故在此求有没有什么方法:我先选择外面的建筑边线,然后获得建筑边线内部的文字的选择集?如果这些文字和每个房子的图元名能够一一对应起来构建成表就更好了,能够省很多的人工选择的时间。

求各位高手帮忙。

yjtdkj 发表于 2021-6-24 15:11:40

Gu_xl 发表于 2011-7-7 22:20
回复 iancool 的帖子

一个粗糙的多段线选择内部图元函数,根据你的示意图,足够满足需要了,根据这个函 ...

如果多段线中有圆弧,可能就不准确了吧?

Gu_xl 发表于 2011-7-7 22:20:06

本帖最后由 Gu_xl 于 2011-7-7 22:22 编辑

回复 iancool 的帖子

一个粗糙的多段线选择内部图元函数,根据你的示意图,足够满足需要了,根据这个函数,你就可以写出满足你的要求的程序了

;;;测试: (SSGetByPoly (car (entsel "\n 选择多段线: ")) '((0 . "*text")))
(defun SSGetByPoly (poly filter / pl ss)
(setq pl (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget poly))))
(setq ss (ssget "wp" pl filter))
)

mandala 发表于 2011-7-8 09:36:28

楼上好东西,很实用,谢谢g版。

ljttjl 发表于 2011-7-8 10:15:54

如果都是这种情况的话,可以有更简便的方法:批量选择所有房屋图形和层数文字后,自动分类统计出每栋楼的占地面积和建筑面积,并汇总。
如果像阳台等有些要算半面积,不知道有没有这种情况?

magicheno 发表于 2021-9-11 22:46:01

G版的程序学习了~~~!!!
页: [1]
查看完整版本: 【求助】如何批量获得封闭多段线内部文字的选择集