明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4089|回复: 20

[资源] 关于删除重复线

[复制链接]
发表于 2020-3-2 01:32:54 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2020-3-2 01:41 编辑

删除重复线,本坛不少代码,但是,就是图比较大的时候,时间,速度是个问题,

我偶得一程序,是 *.fas格式,速度是非常快的,

很遗憾的是,下面提示区是乱码,如下图所示:



这个程序,不知谁能了解,如何提示的乱码,改对。

如果能提供源码出来,更好。

现把 *FAS附上。



由于业务原因,我是急需要,删除重复图元速度很快的才可使用,如下图所示:
文件有100多M,难以处理。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-3-3 01:12:57 | 显示全部楼层
本帖最后由 东升铮 于 2020-3-3 01:14 编辑



用十六进制转换替换编码格式就行了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 2 反对 0

使用道具 举报

发表于 2020-3-2 10:49:35 | 显示全部楼层
本帖最后由 jun353835273 于 2020-3-2 10:50 编辑

借花献佛,代码是应该是lee大佬的
试一试这个,只删除重叠直线的
  1. (defun c:killline ( / _line _online a e i l s )

  2.    (defun _line ( a b )
  3.        (entmake (list '(0 . "LINE") (cons 10 a) (cons 11 b)))
  4.    )
  5.    (defun _online ( p a b )
  6.        (equal (+ (distance p a) (distance p b)) (distance a b) 1e-8)
  7.    )            
  8.    (if (setq s (ssget '((0 . "LINE"))))
  9.        (progn
  10.            (repeat (setq i (sslength s))
  11.                (setq e (entget (ssname s (setq i (1- i))))
  12.                      l (cons (list (cdr (assoc 10 e)) (cdr (assoc 11 e))) l)
  13.                )
  14.            )
  15.            (while (setq a (car l))
  16.                (foreach b (setq l (cdr l))
  17.                    (cond
  18.                        (   (or
  19.                                (and
  20.                                    (equal (car  a) (car  b) 1e-8)
  21.                                    (equal (cadr a) (cadr b) 1e-8)
  22.                                )
  23.                                (and
  24.                                    (equal (car  a) (cadr b) 1e-8)
  25.                                    (equal (cadr a) (car  b) 1e-8)
  26.                                )
  27.                            )
  28.                            (apply '_line a)
  29.                        )
  30.                        (   (and
  31.                                (_online (car a) (car b) (cadr b))
  32.                                (_online (car b) (car a) (cadr a))
  33.                                (not (equal (car a) (car b) 1e-8))
  34.                            )
  35.                            (_line (car a) (car b))
  36.                        )
  37.                        (   (and
  38.                                (_online (car  a) (car b) (cadr b))
  39.                                (_online (cadr b) (car a) (cadr a))
  40.                                (not (equal (car a) (cadr b) 1e-8))
  41.                            )
  42.                            (_line (car a) (cadr b))
  43.                        )
  44.                        (   (and
  45.                                (_online (cadr a) (car b) (cadr b))
  46.                                (_online (car  b) (car a) (cadr a))
  47.                                (not (equal (cadr a) (car b) 1e-8))
  48.                            )
  49.                            (_line (cadr a) (car b))
  50.                        )
  51.                        (   (and
  52.                                (_online (cadr a) (car b) (cadr b))
  53.                                (_online (cadr b) (car a) (cadr a))
  54.                                (not (equal (cadr a) (cadr b) 1e-8))
  55.                            )
  56.                            (_line (cadr a) (cadr b))
  57.                        )
  58.                    )
  59.                )
  60.            )
  61.        )
  62.    )
  63.    (princ)
  64. )

点评

试了下,失败怎么。。。。  发表于 2020-3-2 11:11
发表于 2020-3-2 08:17:50 | 显示全部楼层
本帖最后由 bssurvey 于 2020-3-2 08:20 编辑

指令: ee
選取物件: 指定對角點: 找到*****個
選取物件:
共處理********個實體,刪除了*******個實體
共處理********個實體,刪除了********個實體

這個是繁體中文 您的是簡體中文


选取物件: 指定对角点: 找到 ***** 个        
                                       
选取物件:                              
共处理*****个实体,删除了*****个实体
共处理*****个实体,删除了*****个实体

发表于 2020-3-2 07:01:28 | 显示全部楼层
本帖最后由 baoxiaozhong 于 2020-3-2 07:05 编辑



EXPRESS 里面就有 OVERKILL,更好用不用吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2020-3-2 08:53:04 | 显示全部楼层
只能删除直线对象,没什么用
 楼主| 发表于 2020-3-2 09:53:27 | 显示全部楼层
本帖最后由 尘缘一生 于 2020-3-2 10:00 编辑
baoxiaozhong 发表于 2020-3-2 07:01
EXPRESS 里面就有 OVERKILL,更好用不用吗?

都试验过,这个不行,首先,速度也不行,而且不能满足要求。如下尺寸标注,中间的都是双份实体,非常恶心人。都需要清理掉,只留一份。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2020-3-2 10:01:39 | 显示全部楼层
bssurvey 发表于 2020-3-2 08:17
指令: ee
選取物件: 指定對角點: 找到*****個
選取物件:

若只删除线,速度这么快,倒也可以考虑的,就是繁体改不了。
发表于 2020-3-2 10:15:31 | 显示全部楼层
尘缘一生 发表于 2020-3-2 10:01
若只删除线,速度这么快,倒也可以考虑的,就是繁体改不了。

2004年的软体,作者可能早就换工作了,应该是找不到人改简体中文,不过那些提示看不懂也不影响操作吧。
发表于 2020-3-2 10:17:25 | 显示全部楼层
尘缘一生 发表于 2020-3-2 09:53
都试验过,这个不行,首先,速度也不行,而且不能满足要求。如下尺寸标注,中间的都是双份实体,非常恶心 ...

你这个应该是炸开了,所以才多一份出来,没炸开的情况下,本来就应该是二份。

点评

是的,炸开了,即便不炸开,也不能两份,不应该。  发表于 2020-3-2 11:03
发表于 2020-3-2 10:32:44 | 显示全部楼层
老程序了,作者肯定改行了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 00:55 , Processed in 0.186814 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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