找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 15100|回复: 29

[已解决] [已解决]标注重叠快速检查工具

[复制链接]
发表于 2013-11-12 09:00:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 金鹅起飞 于 2013-11-17 14:44 编辑

各位大师好!小弟求助一个.lsp程序,用来检查标注重叠
原因如下:我在实际工作中,标注有时大意把标注点错了点,使标注包含了其他的数值,使实际的尺寸变大或变小,给生产造成了无法挽回的损失。为了避免此类错误的发生,我想请大师们帮忙写一个lsp程序,框选所有的标注后,让重叠的标注变色显示出来,这样,就好把错误的标注重新改正,避免错误。谢谢了。附件里有原文件。
标注重叠.gif

标注重叠求助文件.rar

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

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-11-12 16:32:39 | 显示全部楼层
除了这种,还有其他重叠的情况吗?

点评

暂时还没有其他的重叠情况,谢谢!  详情 回复 发表于 2013-11-12 17:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-12 17:02:45 | 显示全部楼层
newer 发表于 2013-11-12 16:32
除了这种,还有其他重叠的情况吗?

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

使用道具 举报

已领礼包: 10372个

财富等级: 富甲天下

发表于 2013-11-12 19:13:25 | 显示全部楼层
实际上是检查一下假尺寸标注。

点评

zxq0220 :您好!可以编写程序实现吗?  详情 回复 发表于 2013-11-12 19:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-12 19:27:08 | 显示全部楼层
zxq0220 发表于 2013-11-12 19:13
实际上是检查一下假尺寸标注。

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

使用道具 举报

已领礼包: 10372个

财富等级: 富甲天下

发表于 2013-11-13 07:36:45 | 显示全部楼层
  1. ;;; ==========================================
  2. ;;; 名称: 《假尺寸检查》
  3. ;;; 功能:假尺寸(手动修改过的尺寸)数值显示红色
  4. ;;; 操作:运行JCC显示假尺寸,再次运行恢复不显示
  5. ;;;                                     langjs
  6. ;;; ==========================================
  7. (defun C:JCC (/ i ss)
  8.   (vl-load-com)
  9.   (setvar "cmdecho" 0)
  10.   (if (setq ss (ssget "X" '((0 . "DIMENSION") (-3 ("ACAD")))))
  11.     (repeat (setq i (sslength ss))
  12.       (entmod (list (cons -1 (ssname ss (setq i (1- i)))) (list -3 (list "ACAD"))))
  13.     )
  14.     (if (setq ss (ssget "X" '((0 . "DIMENSION") (-4 . "<AND")(-4 . "<NOT")(1 . "")(-4 . "NOT>")(-4 . "<NOT")(1 . "*<>*")(-4 . "NOT>")(-4 . "AND>"))))
  15.       (repeat (setq i (sslength ss))
  16.           (vlax-put-property (vlax-ename->vla-object (ssname ss (setq i (1- i)))) "textcolor" 1)
  17.       )
  18.       (alert "本图没有找到假尺寸!")
  19.     )
  20.   )
  21.   (princ)
  22. )

点评

ZXP0220您好!刚才用您的程序试了一下,对于手动改过的标注尺寸确实有效,谢谢您!但是,对于没有手动改过的,是标注时标错了位置的数值没有变色显示,能否再请您帮帮忙改成不手动改的也可以变色呢?请看下面的图片  详情 回复 发表于 2013-11-13 08:30
zxq0220 :您好! 谢谢您在百忙之中编写的程序,我先试试,再来感谢。  详情 回复 发表于 2013-11-13 08:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-13 08:05:25 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2013-11-13 08:30:44 | 显示全部楼层

ZXP0220您好!刚才用您的程序试了一下,对于手动改过的标注尺寸确实有效,谢谢您!但是,对于没有手动改过的,是标注时标错了位置的数值没有变色显示,能否再请您帮帮忙改成不手动改的也可以变色呢?请看下面的图片,图片中“80”这个数值是有误的,它包含了边上的“16”,让这个“80”变色就达到目地了。谢谢您!
假尺寸演示图片.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-13 11:38:53 来自手机 | 显示全部楼层
楼主的要求可以描述为同一道尺寸标注不能出现"包含"和"交叉"

点评

ST788796:大师您好!应该是这个意思,凡是不是正确的尺寸都变色显示就可以了。  详情 回复 发表于 2013-11-13 12:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-13 12:23:27 | 显示全部楼层
st788796 发表于 2013-11-13 11:38
楼主的要求可以描述为同一道尺寸标注不能出现"包含"和"交叉"

ST788796:大师您好!应该是这个意思,凡是不是正确的尺寸都变色显示就可以了。

点评

你先试试  详情 回复 发表于 2013-11-13 20:38
这个可以写,不过最好楼主把你们常用的标注形式、这个标注是手动标注还是其它软件自动标注的说一说,不然可能多花一些无谓的时间去判断  详情 回复 发表于 2013-11-13 19:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-13 19:23:46 | 显示全部楼层
金鹅起飞 发表于 2013-11-13 12:23
ST788796:大师您好!应该是这个意思,凡是不是正确的尺寸都变色显示就可以了。

这个可以写,不过最好楼主把你们常用的标注形式、这个标注是手动标注还是其它软件自动标注的说一说,不然可能多花一些无谓的时间去判断
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-13 20:38:46 | 显示全部楼层
金鹅起飞 发表于 2013-11-13 12:23
ST788796:大师您好!应该是这个意思,凡是不是正确的尺寸都变色显示就可以了。

你先试试
  1. (defun c:tt (/ ss el _Pnts:SameLine el1 l1 l2 p1 p2 p3 p4 pts1 pts2 ll)
  2.   (defun _Pnts:SameLine        (p1 p2 p3 p4 /)
  3.     (equal (rem (angle p1 p2) pi)
  4.            (rem (angle p3 p4) pi)
  5.            1e-5
  6.     )
  7.   )
  8.   (if (setq ss (ssget '((0 . "Dimension"))))
  9.     (progn
  10.       (setq el (vl-remove-if-not
  11.                  '(lambda (x)
  12.                     (vl-position
  13.                       (xdrx_getpropertyvalue x "IsA")
  14.                       '("AcDbAlignedDimension" "AcDbRotatedDimension")
  15.                     )
  16.                   )
  17.                  (xdrx_pickset->ents ss)
  18.                )
  19.             el (vl-sort        el
  20.                         '(lambda (e1 e2)
  21.                            (< (xdrx_getpropertyvalue e1 "Measurement")
  22.                               (xdrx_getpropertyvalue e2 "Measurement")
  23.                            )
  24.                          )
  25.                )
  26.             el (mapcar '(lambda        (x)
  27.                           (cons x (xdrx_entity_getstretchpoint x))
  28.                         )
  29.                        el
  30.                )
  31.       )
  32.       (while el
  33.         (setq l1   (car el)
  34.               el1  (cdr el)
  35.               p1   (nth 3 l1)
  36.               p2   (nth 4 l1)
  37.               pts1 (reverse (cdr (reverse (cdr l1))))
  38.         )
  39.         (while el1
  40.           (setq        l2   (car el1)
  41.                 p3 (nth 3 l2)
  42.                 p4 (nth 4 l2)
  43.                 pts2 (reverse (cdr (reverse (cdr l2))))
  44.           )
  45.           (if
  46.             (and
  47.               (_Pnts:SameLine p1 p2 p3 p4)
  48.               (> (length (xdrx_points_boundingboxintersect pts1 pts2))
  49.                  2
  50.               )
  51.             )
  52.              (setq ll (cons (car l2) ll))
  53.           )
  54.           (setq el1 (cdr el1))
  55.         )
  56.         (setq el (cdr el))
  57.       )
  58.       (if ll
  59.         (sssetfirst nil (XD::Entity->Pickset ll))
  60.       )
  61.     )
  62.   )
  63.   (princ)
  64. )

点评

st788796大师:您好!感谢您的程序,谢谢!我刚才试了一下,发现可以判断重叠尺寸,真是太好了!如果能够让重叠尺寸变色就更好了,还有是,最外边的尺寸,见图片中的“30”和“512”是最外边的总尺寸,应该是正确的  详情 回复 发表于 2013-11-13 21:41
用 xdrx_entity_boundingBoxIntersectwith 这个是不是能省点代码?  详情 回复 发表于 2013-11-13 20:49
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-11-13 20:49:36 | 显示全部楼层

用 xdrx_entity_boundingBoxIntersectwith 这个是不是能省点代码?

点评

转角标注不知道这个 Enity_BoundingBoxIntersectwith 会是啥个 Box,可能误伤, 用 Stretchpoint 可以判断是否是同一道尺寸  详情 回复 发表于 2013-11-13 20:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-13 20:53:20 | 显示全部楼层
本帖最后由 st788796 于 2013-11-13 20:54 编辑
XDSoft 发表于 2013-11-13 20:49
用 xdrx_entity_boundingBoxIntersectwith 这个是不是能省点代码?

转角标注不知道这个 Enity_BoundingBoxIntersectwith 会是啥个 Box,可能误伤, 用 Stretchpoint  可以判断是否是同一道尺寸

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

使用道具 举报

 楼主| 发表于 2013-11-13 21:41:28 | 显示全部楼层

st788796大师:您好!感谢您的程序,谢谢!我刚才试了一下,发现可以判断重叠尺寸,真是太好了!如果能够让重叠尺寸变色就更好了,还有是,最外边的尺寸,见图片中的“30”和“512”是最外边的总尺寸,应该是正确的尺寸,如果能让它们不亮显就好了。谢谢您st788796大师!演示过程见下面图片。
标注.gif

点评

主要是有没有漏掉的,变色就是加一句代码,如变红色 (xdrx_entity_setcolor ll 1)  详情 回复 发表于 2013-11-13 22:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 07:53 , Processed in 0.352273 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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