尘缘一生 发表于 2020-3-2 01:32:54

关于删除重复线

本帖最后由 尘缘一生 于 2020-3-2 01:41 编辑

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

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

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



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

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

现把 *FAS附上。



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


东升铮 发表于 2020-3-3 01:12:57

本帖最后由 东升铮 于 2020-3-3 01:14 编辑



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

jun353835273 发表于 2020-3-2 10:49:35

本帖最后由 jun353835273 于 2020-3-2 10:50 编辑

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

   (defun _line ( a b )
       (entmake (list '(0 . "LINE") (cons 10 a) (cons 11 b)))
   )
   (defun _online ( p a b )
       (equal (+ (distance p a) (distance p b)) (distance a b) 1e-8)
   )            
   (if (setq s (ssget '((0 . "LINE"))))
       (progn
         (repeat (setq i (sslength s))
               (setq e (entget (ssname s (setq i (1- i))))
                     l (cons (list (cdr (assoc 10 e)) (cdr (assoc 11 e))) l)
               )
         )
         (while (setq a (car l))
               (foreach b (setq l (cdr l))
                   (cond
                     (   (or
                               (and
                                 (equal (cara) (carb) 1e-8)
                                 (equal (cadr a) (cadr b) 1e-8)
                               )
                               (and
                                 (equal (cara) (cadr b) 1e-8)
                                 (equal (cadr a) (carb) 1e-8)
                               )
                           )
                           (apply '_line a)
                     )
                     (   (and
                               (_online (car a) (car b) (cadr b))
                               (_online (car b) (car a) (cadr a))
                               (not (equal (car a) (car b) 1e-8))
                           )
                           (_line (car a) (car b))
                     )
                     (   (and
                               (_online (cara) (car b) (cadr b))
                               (_online (cadr b) (car a) (cadr a))
                               (not (equal (car a) (cadr b) 1e-8))
                           )
                           (_line (car a) (cadr b))
                     )
                     (   (and
                               (_online (cadr a) (car b) (cadr b))
                               (_online (carb) (car a) (cadr a))
                               (not (equal (cadr a) (car b) 1e-8))
                           )
                           (_line (cadr a) (car b))
                     )
                     (   (and
                               (_online (cadr a) (car b) (cadr b))
                               (_online (cadr b) (car a) (cadr a))
                               (not (equal (cadr a) (cadr b) 1e-8))
                           )
                           (_line (cadr a) (cadr b))
                     )
                   )
               )
         )
       )
   )
   (princ)
)

bssurvey 发表于 2020-3-2 08:17:50

本帖最后由 bssurvey 于 2020-3-2 08:20 编辑

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

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


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

baoxiaozhong 发表于 2020-3-2 07:01:28

本帖最后由 baoxiaozhong 于 2020-3-2 07:05 编辑



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

言戲無軍 发表于 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,更好用不用吗?
都试验过,这个不行,首先,速度也不行,而且不能满足要求。如下尺寸标注,中间的都是双份实体,非常恶心人。都需要清理掉,只留一份。


尘缘一生 发表于 2020-3-2 10:01:39

bssurvey 发表于 2020-3-2 08:17
指令: ee
選取物件: 指定對角點: 找到*****個
選取物件:


若只删除线,速度这么快,倒也可以考虑的,就是繁体改不了。

baoxiaozhong 发表于 2020-3-2 10:15:31

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

2004年的软体,作者可能早就换工作了,应该是找不到人改简体中文,不过那些提示看不懂也不影响操作吧。

baoxiaozhong 发表于 2020-3-2 10:17:25

尘缘一生 发表于 2020-3-2 09:53
都试验过,这个不行,首先,速度也不行,而且不能满足要求。如下尺寸标注,中间的都是双份实体,非常恶心 ...

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

烟盒迷唇 发表于 2020-3-2 10:32:44

老程序了,作者肯定改行了啊
页: [1] 2
查看完整版本: 关于删除重复线