乐筑天下

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

[编程交流] 顶点重叠

[复制链接]

57

主题

183

帖子

126

银币

后起之秀

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

铜币
285
发表于 2022-7-6 06:11:30 | 显示全部楼层 |阅读模式
我有一条多段线,这有相同的顶点重叠,如何识别顶点重叠并放大?
 
使用lisp。
回复

使用道具 举报

5

主题

224

帖子

219

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 06:19:08 | 显示全部楼层
你有一条带顶点的多段线,你想放大这个顶点吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:20:31 | 显示全部楼层
你的意思是多段线有两个或多个顶点位于同一位置吗?
回复

使用道具 举报

4

主题

35

帖子

33

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 06:25:02 | 显示全部楼层
缩放多段线中的重复顶点似乎不合适。更好的方法可能是包围重复的顶点。
回复

使用道具 举报

5

主题

224

帖子

219

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 06:28:07 | 显示全部楼层
或喜欢使用滚轮。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 06:35:26 | 显示全部楼层
请查看此帖子。。。
 
M、 R。
回复

使用道具 举报

57

主题

183

帖子

126

银币

后起之秀

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

铜币
285
发表于 2022-7-6 06:38:14 | 显示全部楼层
071136itf9z1xyrjfqsggx.png
 
这就像操作员autocad要生成多段线,在另一个顶点上创建一个新顶点或将一个顶点拖动到另一个顶点上一样。
 
我需要放大这个顶点吗。
 
李,就这样。这就好像一个顶点周围有另一个顶点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:42:31 | 显示全部楼层
试试这个简单的程序:
  1. ([color=BLUE]defun[/color] c:vdupes ( [color=BLUE]/[/color] e i s )
  2.    ([color=BLUE]if[/color] ([color=BLUE]setq[/color] s ([color=BLUE]ssget[/color] '((0 . [color=MAROON]"LWPOLYLINE"[/color]))))
  3.        ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] i ([color=BLUE]sslength[/color] s))
  4.            ([color=BLUE]foreach[/color] x
  5.                (LM:ListDupesFuzz
  6.                    ([color=BLUE]vl-remove-if-not[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]=[/color] 10 ([color=BLUE]car[/color] x)))
  7.                        ([color=BLUE]setq[/color] e ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] s ([color=BLUE]setq[/color] i ([color=BLUE]1-[/color] i)))))
  8.                    )
  9.                    1e-8
  10.                )
  11.                ([color=BLUE]entmake[/color]
  12.                    ([color=BLUE]list[/color]
  13.                       '(0 . [color=MAROON]"CIRCLE"[/color])
  14.                       '(8 . [color=MAROON]"Duplicate-Vertices"[/color]) [color=GREEN];; Layer[/color]
  15.                        x
  16.                       '(40 . 1.0) [color=GREEN];; Radius[/color]
  17.                       '(62 . 1)   [color=GREEN];; Colour[/color]
  18.                        ([color=BLUE]assoc[/color] 210 e)
  19.                    )
  20.                )
  21.            )
  22.        )
  23.    )
  24.    ([color=BLUE]princ[/color])
  25. )
  26. [color=GREEN];; List Duplicates with Fuzz  -  Lee Mac[/color]
  27. [color=GREEN];; Returns a list of items appearing more than once in a supplied list[/color]
  28. ([color=BLUE]defun[/color] LM:ListDupesFuzz ( l f [color=BLUE]/[/color] c r x )
  29.    ([color=BLUE]while[/color] l
  30.        ([color=BLUE]setq[/color] x ([color=BLUE]car[/color] l)
  31.              c ([color=BLUE]length[/color] l)
  32.              l ([color=BLUE]vl-remove-if[/color] '([color=BLUE]lambda[/color] ( y ) ([color=BLUE]equal[/color] x y f)) ([color=BLUE]cdr[/color] l))
  33.        )
  34.        ([color=BLUE]if[/color] ([color=BLUE]<[/color] ([color=BLUE]length[/color] l) ([color=BLUE]1-[/color] c))
  35.            ([color=BLUE]setq[/color] r ([color=BLUE]cons[/color] x r))
  36.        )
  37.    )
  38.    ([color=BLUE]reverse[/color] r)
  39. )
  40. ([color=BLUE]princ[/color])
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 06:46:29 | 显示全部楼层
再次感谢大家,以上代码是基于李的代码
回复

使用道具 举报

57

主题

183

帖子

126

银币

后起之秀

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

铜币
285
发表于 2022-7-6 06:50:47 | 显示全部楼层
不客气,罗德里戈
 
这里可能有一个替代方案:
  1. (defun vs ( / e i s )
  2.    (if (setq s (ssget  "_x" '((0 . "LWPOLYLINE"))))
  3.        (repeat (setq i (sslength s))
  4.            (foreach x
  5.                (LM:ListDupesFuzz
  6.                        (vl-remove-if-not '(lambda ( x ) (= 10 (car x)))
  7.                        (setq e (entget (ssname s (setq i (1- i)))))  
  8.   )
  9.                 1e-8
  10.                )
  11.                (entmake
  12.                    (list
  13.                       '(0 . "CIRCLE")
  14.                       '(8 . "Duplicate-Vertices") ;; Layer
  15.                        x
  16.                       '(40 . 1.0) ;; Radius
  17.                       '(62 . 1)   ;; Colour
  18.                        (assoc 210 e)
  19.                    )
  20.                )
  21.               (setq selpline2 (ssget "_x" (list '(0 . "CIRCLE")(cons 8 "Duplicate-Vertices"))))
  22.               (setq m 0)
  23.               (repeat (sslength selpline2)      
  24.                       (setq pline_ent2 (ssname selpline2 m))
  25.                       (setq lis_ent2 (entget pline_ent2))
  26.                       (Alert "Attention. Vertex superimposed. I will show through a Zoom.")
  27.                       (COMMAND "ZOOM" "OBJECT" pline_ent2 "")
  28.                       (exit)
  29.               )
  30.           )
  31.        )
  32.    )
  33.    (princ)
  34. )
  35. ;; List Duplicates with Fuzz  -  Lee Mac
  36. ;; Returns a list of items appearing more than once in a supplied list
  37. (defun LM:ListDupesFuzz ( l f / c r x )
  38.    (while l
  39.        (setq x (car l)
  40.              c (length l)
  41.              l (vl-remove-if '(lambda ( y ) (equal x y f)) (cdr l))
  42.        )
  43.        (if (< (length l) (1- c))
  44.            (setq r (cons x r))
  45.        )
  46.    )
  47.    (reverse r)
  48. )
  49. (princ)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:44 , Processed in 0.509790 second(s), 74 queries .

© 2020-2025 乐筑天下

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