乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 19|回复: 14

[编程交流] 选择相似区域多段线

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:48:36 | 显示全部楼层 |阅读模式
你好,我是来寻求帮助的。
这是我的问题。我有很多poliline(复杂的custum拼花地板)。我必须选择所有具有相同区域的相同poliline(因此具有相同的形状)!有没有办法用列表例程解决我的问题?有人能帮我做吗?
 
非常感谢你!
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 17:53:04 | 显示全部楼层
欢迎来到CADTutor Ziorudy
 
尺寸相同?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 17:58:23 | 显示全部楼层
请检查内置命令QSELECT是否允许根据面积选择多段线图元。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 18:02:49 | 显示全部楼层
 
这就是我要建议的MSasu,但请求是不明确的,“因此具有相同的形状”,因此我的Q。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 18:08:03 | 显示全部楼层
当然,一般来说,相同的面积并不意味着物品也有相同的形状。然而,在特定图纸中,它可以作为标准。
QSELECT也不会适应区域中的小变化。线程标题中的“相似区域”一词可能会让你想到这一点。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:10:32 | 显示全部楼层
有些东西不起作用!
 
我选择我的所有多边形,qselect,choose area,等于:我单件的esact面积(123456789)。那么什么都不会发生!:x: x
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:15:12 | 显示全部楼层
试试这个快速编写的程序:
 
  1. [color=GREEN];; Select Similar Area  -  Lee Mac[/color]
  2. [color=GREEN];; Prompts the user to select a source polyline and[/color]
  3. [color=GREEN];; selects all polylines in the active layout with a similar area.[/color]
  4. ([color=BLUE]defun[/color] c:ssarea ( [color=BLUE]/[/color] ent inc sel src )   
  5.    ([color=BLUE]if[/color]
  6.        ([color=BLUE]and[/color]
  7.            ([color=BLUE]setq[/color] src
  8.                (LM:SelectIf [color=MAROON]"\nSelect Source Polyline: "[/color]
  9.                   '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]wcmatch[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 0 ([color=BLUE]entget[/color] x))) [color=MAROON]"*POLYLINE"[/color]))
  10.                )
  11.            )
  12.            ([color=BLUE]setq[/color] sel
  13.                ([color=BLUE]ssget[/color] [color=MAROON]"_X"[/color]
  14.                    ([color=BLUE]list[/color] '(0 . [color=MAROON]"*POLYLINE"[/color])
  15.                        ([color=BLUE]if[/color] ([color=BLUE]=[/color] 1 ([color=BLUE]getvar[/color] 'cvport))
  16.                            ([color=BLUE]cons[/color] 410 ([color=BLUE]getvar[/color] 'ctab))
  17.                           '(410 . [color=MAROON]"Model"[/color])
  18.                        )
  19.                    )
  20.                )
  21.            )
  22.            ([color=BLUE]setq[/color] src ([color=BLUE]vla-get-area[/color] ([color=BLUE]vlax-ename->vla-object[/color] src)))
  23.        )
  24.        ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] inc ([color=BLUE]sslength[/color] sel))
  25.            ([color=BLUE]setq[/color] ent ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] inc ([color=BLUE]1-[/color] inc))))
  26.            ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]equal[/color] src ([color=BLUE]vla-get-area[/color] ([color=BLUE]vlax-ename->vla-object[/color] ent)) 1e-3))
  27.                ([color=BLUE]ssdel[/color] ent sel)
  28.            )
  29.        )
  30.    )
  31.    ([color=BLUE]sssetfirst[/color] [color=BLUE]nil[/color] sel)
  32.    ([color=BLUE]princ[/color])
  33. )
  34. [color=GREEN];; Select If  -  Lee Mac[/color]
  35. [color=GREEN];; Continuously prompts the user for a selection[/color]
  36. [color=GREEN];; until a given predicate function is validated[/color]
  37. ([color=BLUE]defun[/color] LM:SelectIf ( msg prd [color=BLUE]/[/color] e )
  38.    ([color=BLUE]setq[/color] prd ([color=BLUE]eval[/color] prd))
  39.    ([color=BLUE]while[/color]
  40.        ([color=BLUE]progn[/color] ([color=BLUE]setvar[/color] 'ERRNO 0) ([color=BLUE]setq[/color] e ([color=BLUE]car[/color] ([color=BLUE]entsel[/color] msg)))
  41.            ([color=BLUE]cond[/color]
  42.                (   ([color=BLUE]=[/color] 7 ([color=BLUE]getvar[/color] 'ERRNO))
  43.                    ([color=BLUE]princ[/color] [color=MAROON]"\nMissed, try again."[/color])
  44.                )
  45.                (   ([color=BLUE]eq[/color] 'ENAME ([color=BLUE]type[/color] e))
  46.                    ([color=BLUE]if[/color] ([color=BLUE]and[/color] prd ([color=BLUE]null[/color] (prd e)))
  47.                        ([color=BLUE]princ[/color] [color=MAROON]"\nInvalid Object."[/color])
  48.                    )
  49.                )
  50.            )
  51.        )
  52.    )
  53.    e
  54. )
  55. ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color])

 
上述程序认为多段线面积等于1e-3(0.001)的公差-更改此公差以适合您的应用。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:22:39 | 显示全部楼层
谢谢你!谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!你救了我一小时又一小时的愚蠢工作!
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 18:23:46 | 显示全部楼层
所以这不是形状而是面积。我现在明白了。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:27:23 | 显示全部楼层
 
不客气。
 
 
根据我对OP要求的理解,他们希望选择形状相似的所有对象,并使用面积属性,因为两个不同形状具有相同面积的概率可能非常低。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 00:02 , Processed in 0.413974 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表