明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 451|回复: 8

[讨论] 查找重叠的线段

[复制链接]
发表于 2024-12-13 09:36:06 | 显示全部楼层 |阅读模式
本帖最后由 wide 于 2024-12-14 07:30 编辑

在dwg图中如何找出选择部分线段中完全重叠的直线,即首尾(或尾首)点重合,不是删除。部分重合不包含在内。有这样的代码更好,谢谢。
"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2024-12-13 14:12:22 | 显示全部楼层
  1. (defun c:cc()
  2.   (setq ss(ssadd))
  3.   (prompt "\n选择处理直线对象:")
  4.   (setq ss1(ssget '((0 . "line"))))
  5.           (setq i (1- (sslength ss1)))
  6.           (while (>= i 0)
  7.             (setq ll(ssname ss1 i))
  8.             (setq p10(cdr (assoc 10 (entget ll)))
  9.                   p11(cdr (assoc 11 (entget ll))))
  10.             (setq tmp_ss(ssget "x" (list '(0 . "line")(cons 10 p10) (cons 11 p11))))
  11.             (if (> (sslength tmp_ss) 1)
  12.               (progn
  13.               (setq j 0)
  14.               (repeat (sslength tmp_ss)
  15.                 (setq ss(ssadd (ssname tmp_ss j) ss)
  16.                       ss1(ssdel (ssname tmp_ss j) ss1))
  17.                 (setq j(1+ j))
  18.                 )
  19.               )
  20.               (setq  ss1(ssdel (ssname tmp_ss 0) ss1))
  21.               )
  22.             (setq i (1- (sslength ss1)))
  23.             )
  24.   (sssetfirst  nil ss)
  25.   )

点评

谢谢您的热心回答。  发表于 2024-12-13 19:03
试运行了下,一、找不全完全重叠的. 二、如果是只找选定部分的完全重叠的怎么办?  发表于 2024-12-13 19:01
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-12-13 19:43:15 | 显示全部楼层
本帖最后由 wide 于 2024-12-13 19:54 编辑

第一个找不全的问题应该是有组码10和11颠倒的,增加一个颠倒的就可以了,不知道怎么写。还望赐教。
回复 支持 反对

使用道具 举报

发表于 2024-12-14 16:42:17 | 显示全部楼层
我也在寻找
回复 支持 反对

使用道具 举报

发表于 2024-12-15 14:08:17 | 显示全部楼层
wide 发表于 2024-12-13 19:43
第一个找不全的问题应该是有组码10和11颠倒的,增加一个颠倒的就可以了,不知道怎么写。还望赐教。

把前面代码里(setq tmp_ss...那句改成:
(setq tmp_ss(ssget "x" (list '(0 . "line") '(-4 . "<OR")
                                     '(-4 . "<AND")(cons 10 p10) (cons 11 p11)'(-4 . "AND>")
                                     '(-4 . "<AND")(cons 10 p11) (cons 11 p10)'(-4 . "AND>")
                                      '(-4 . "OR>"))))
就可以了
回复 支持 反对

使用道具 举报

发表于 2024-12-15 14:12:12 | 显示全部楼层

没有理解你写的第二点,现在代码处理的就是选定的直线查找重叠线的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-15 20:38:11 | 显示全部楼层
第二点主要是怕影响速度,因为是全选图形,而后循环。非常感谢大佬的帮助。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 01:45 , Processed in 0.191947 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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