找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 707|回复: 4

[已解决] 消除重复图元时,有部分文字清除不掉。

[复制链接]

已领礼包: 199个

财富等级: 日进斗金

发表于 2018-5-23 15:45:47 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
      5CN2~]8BSNFM5{5`8@]J)}Y.png    问题:用黄明儒的消除重复图元命令在消除重复文字时,出现了问题。
该文字原位复制黏贴了多次(捕捉的直线的端点作为原位复制黏贴点),
运行消除重复图元程序后,一个位置多了一个,清除不掉。
试着设置精度也无济于事。望予以解答。附:dwg文件、字体及lsp文件。
   (defun c:yqzdel ( / ss e en n nn lst old5 typ)
        (setvar "CMDECHO" 0)
        (setvar "osmode" 0)
        (setq nn 0)
        (if (setq ss(ssget))
                    (repeat (setq n (sslength ss))
                              (if (and (setq e (ssname ss (setq n (1- n)))) (setq en (entget e)))
                                  (progn
                                            (setq typ (cdr en))
                                            (if (setq old5 (assoc 5 typ))
                                                      (setq typ (subst '(5 . "ASD") old5 typ))
                                            )
                                        (xdrx_document_setprec 1e+1 0.01)
                                        (if (member typ lst)
                                                (progn
                                                        (setq nn (1+ nn))
                                                              (entdel e)
                                                )
                                                      (setq lst (cons typ lst))
                                            )
                                  )
                              )
                )
            )
        (if (> nn 0)
                (princ (strcat "\n共删除 " (itoa nn) " 个重复实体。"))
                (princ (strcat "\n未找到重复实体。"))
        )
        (setvar "CMDECHO" 1)
        (setvar "osmode" 1)
        (princ)
)


消除重复图元.rar

656.45 KB, 下载次数: 18, 下载积分: D豆 -1 , 活跃度 1

最佳答案

查看完整内容

精度的事,他代码用member 判断是否重复,有些情况,虽然“克隆”但也有精度的问题出现,所以换个带精度的“member”就行了 拷贝下面的代码回去试试 用 xd::list:members 替换了 member
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-5-23 15:45:48 | 显示全部楼层
精度的事,他代码用member 判断是否重复,有些情况,虽然“克隆”但也有精度的问题出现,所以换个带精度的“member”就行了

拷贝下面的代码回去试试

用 xd::list:members 替换了 member

  1. (defun c:yqzdel ( / ss e en n nn lst old5 typ)
  2.         (setvar "CMDECHO" 0)
  3.         (setvar "osmode" 0)
  4.         (setq nn 0)
  5.         (if (setq ss(ssget))
  6.                     (repeat (setq n (sslength ss))
  7.                               (if (and (setq e (ssname ss (setq n (1- n)))) (setq en (entget e)))
  8.                                   (progn
  9.                                             (setq typ (cdr en))
  10.                                             (if (setq old5 (assoc 5 typ))
  11.                                                       (setq typ (subst '(5 . "ASD") old5 typ))
  12.                                             )
  13.                                         (xdrx_document_setprec 1e-1 0.01)
  14.                                         (if (xd::list:members typ lst)
  15.                                                 (progn
  16.                                                         (setq nn (1+ nn))
  17.                                                               (entdel e)
  18.                                                 )
  19.                                                       (setq lst (cons typ lst))
  20.                                             )
  21.                                   )
  22.                               )
  23.                 )
  24.             )
  25.         (if (> nn 0)
  26.                 (princ (strcat "\n共删除 " (itoa nn) " 个重复实体。"))
  27.                 (princ (strcat "\n未找到重复实体。"))
  28.         )
  29.         (setvar "CMDECHO" 1)
  30.         (setvar "osmode" 1)
  31.         (princ)
  32. )



评分

参与人数 1D豆 +10 收起 理由
dyjwyqz5221 + 10 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-5-23 16:05:57 | 显示全部楼层
(xdrx_document_setprec 1e+1 0.01)
这行是你自己添加的?

他没用API编程,你加上这个没作用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 199个

财富等级: 日进斗金

 楼主| 发表于 2018-5-23 16:38:54 | 显示全部楼层
是的,加上不起作用。麻烦你看看为啥出现这种情况,所有都测试成功,唯有这部分文字有问题,而且是部分能去重,部分不能去重。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 568个

财富等级: 财运亨通

发表于 2018-5-24 00:22:21 | 显示全部楼层
试着学习一下。。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-28 21:32 , Processed in 0.219262 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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