乐筑天下

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

[编程交流] 包围后续顶点o

[复制链接]

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 23:49:50 | 显示全部楼层 |阅读模式
我的任务是找到具有相同坐标或零距离的多段线的后续顶点,并删除一个顶点。
在多段线属性上滚动地块的上千个角并不容易。
请向任何制作lisp的人寻求帮助,以找到距离为零的两个顶点,并删除或删除另一个顶点。并询问是否包围该点。
可能会要求包围它,只是为了给我们一个标记,我应该从哪里开始编辑角标签。任何帮助都将不胜感激。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:54:46 | 显示全部楼层
不要搜索www,我将从我的图书馆中挖掘与此任务相关的内容。。。它只涉及删除重复顶点,而不是对其进行加密-为此,您必须使代码足以满足您的特定要求,这是不必要的。。。
 
您好,M.R。
HTH公司
清洁多边形。lsp
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 00:00:40 | 显示全部楼层
:)真的很有帮助!!感谢M.R.分享。。我只问circle只是为了给我一些线索,从哪里开始更正我的标签,因为标记的顶点与顶点数相等。但这个Lisp程序还行,它会消除我工作中的麻烦。。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:03:42 | 显示全部楼层
巧克力
 
  1. (defun c:remseg        (/ ss pts_ pts i before after bd dup)
  2. ;;;                pBe 23Nov2013                ;;;
  3. [color="blue"](setvar 'pdmode   34)[/color]
  4. (if (setq pts_ nil
  5.     ss         (ssget "_:L" '((0 . "LWPOLYLINE")))
  6.      )
  7.    (repeat (setq i (sslength ss))
  8.      (setq pts_ nil [color="blue"]dup nil[/color]
  9.     pl         (vlax-ename->vla-object (ssname ss (setq i (1- i))))
  10.      )
  11.      (setq before (/ (length
  12.                 (setq pts (Vlax-get pl 'Coordinates))
  13.               )
  14.               2
  15.            )
  16.      )
  17.      (while pts
  18. (setq pts_ (cons (list (car pts) (cadr pts)) pts_)
  19.       pts  (cddr pts)
  20. )
  21.      )
  22.      (while pts_
  23. (setq pts  (cons (car pts_) pts)
  24.      [color="blue"] bf (length pts_)[/color]
  25.       pts_ (vl-remove (car pts_) pts_)
  26. )
  27. [color="blue"](if (> (- bf (length pts_) ) 1)
  28.           (setq dup (cons (car pts) dup)))[/color]
  29.      )
  30.      (setq after (length pts))
  31.      (vlax-put pl 'Coordinates (apply 'append pts))
  32.      (if (> before after)
  33. [color="blue"](progn
  34.   (foreach p dup
  35.     (entmakex (list (cons 0 "POINT")
  36.                  (cons 10 p))))[/color]
  37. (princ (Strcat "\nBefore: "
  38.                (itoa before)
  39.                "\tAfter : "
  40.                (itoa after)
  41.        )
  42. )
  43.   )
  44. (princ "\n<<No Duplicates found>>")
  45.      )
  46.    )
  47. )
  48. (princ)
  49. )
  50. (vl-load-com)
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 00:06:30 | 显示全部楼层
适用于清理多段线。Thanx。。我唯一的问题是之前和之后。与重复顶点的位置不匹配。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:12:35 | 显示全部楼层
 
不确定你的意思是什么notview,之前和之后的打印是为了显示它在处理之前和之后有多少个“点”。你真的想在这个位置上做个标记吗?
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 00:16:08 | 显示全部楼层
是的,这就是我真正想要的,重复顶点所在的标记。谢谢你之前和之后的解释,我以为那是顶点的位置。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:21:08 | 显示全部楼层
 
更新了#4后的代码[目前我使用“点”实体作为标记]。
 
尽管如此,我还是不明白这个标记的原因。
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 00:23:35 | 显示全部楼层
谢谢pBe,我会试试代码的。。
回复

使用道具 举报

15

主题

76

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 00:29:13 | 显示全部楼层
干杯它工作完美!!非常感谢您!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:08 , Processed in 1.038172 second(s), 72 queries .

© 2020-2025 乐筑天下

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