yaokui25 发表于 2013-1-23 10:31:49

求助!检查标注点上是否有对象

本帖最后由 yaokui25 于 2013-1-25 22:38 编辑

求大侠能否帮小弟解决一个问题
【燕秀工具箱】 中有一个标注点是否有对象存在的一个命令
当标注点上没有对形象存在时,会在标注点上画个圈
我想达到的目的是:标注点上 没有端点,圆心,中心点,点,交点的时候画个圆提示一下
画圆提示改为 标注整体变红色(颜色可设定)
最近拿到的图纸有很多这种问题:标注点偏了。但是一个一个找出来实在是头疼
在论坛上也找了,没找到合适的
小弟在这里恳请大侠出手相助!!!



自贡黄明儒 发表于 2016-9-20 14:04:01

这个是我用的
起未点检查

落叶吧 发表于 2016-9-19 11:20:51

下来试试,希望有用

落叶吧 发表于 2016-9-19 11:16:30

这个程序很重要

yaokui25 发表于 2013-1-23 12:25:45

为什么这么多人看,没人帮忙顶呢

yaokui25 发表于 2013-1-23 12:26:29

为什么这么多人看,没人帮忙顶呢

zctao1966 发表于 2013-1-23 12:54:12

你应该将你的问题,附上CAD文件,在里面说明,或是详细的描述你的问题,希望达到什么效果

yaokui25 发表于 2013-1-23 15:23:21

zctao1966 发表于 2013-1-23 12:54 static/image/common/back.gif
你应该将你的问题,附上CAD文件,在里面说明,或是详细的描述你的问题,希望达到什么效果

附件已经上传了,请大家帮忙看看

ZZXXQQ 发表于 2013-1-23 21:59:37

本帖最后由 ZZXXQQ 于 2013-1-24 20:07 编辑

试下看

;校对尺寸 明经 ZZXXQQ 2013.1.23,2013.1.24
(defun c:tt ()
(defun mkcircle (p)
(entmake(list '(0 . "CIRCLE") (cons 10 p) '(40 . 10)'(62 . 1)))
);mkcircle
(defun sscircle (pt)
(if (setq ss1 (ssget "X" '((0 . "ARC,CIRCLE")))) (progn
   (setq j -1 yes T)
   (repeat (sslength ss1)
    (setq ent1 (entget(ssname ss1 (setq j (1+ j)))))
    (if (equal(distance (cdr(assoc 10 ent1)) pt) 0 0.001)
   (setq yes nil)
    );if
   );repeat
   (if yes (mkcircle pt))
))
);sscircle
(if (setq ss (ssget '((0 . "DIMENSION")
      (-4 . "<OR")(70 . 32)(70 . 33)(70 . 34)(70 . 37)(-4 . "OR>")))) (progn
(setq i -1)
(repeat (sslength ss)
   (setq ent (entget(ssname ss (setq i (1+ i))))
         p1 (cdr(assoc 13 ent))
         p2 (cdr(assoc 14 ent)))
   (if (ssget "C" p1 p1 '((0 . "*LINE")))
    (if (not(osnap p1 "INT"))
   (if (not(equal(distance(osnap p1 "MID") p1) 0 0.001))
      (if (not(equal(distance(osnap p1 "ENDP") p1) 0 0.001))
       (mkcircle p1)
      );if
   );if
    );if
    (if (= (ssget "C" p1 p1 '((0 . "POINT"))) nil)
   (sscircle p1)
    );if
   );if
   (if (ssget "C" p2 p2 '((0 . "*LINE")))
    (if (not(osnap p2 "INT"))
   (if (not(equal(distance(osnap p2 "MID") p2) 0 0.001))
      (if (not(equal(distance(osnap p2 "ENDP") p2) 0 0.001))
       (mkcircle p2)
      );if
   );if
    );if
    (if (= (ssget "C" p2 p2 '((0 . "POINT"))) nil)
   (sscircle p2)
    );if
   );if
);repeat
));if
(princ)
)

yaokui25 发表于 2013-1-23 22:32:27

ZZXXQQ 发表于 2013-1-23 21:59 static/image/common/back.gif
试下看

这么晚您还在,真的很感动
刚才试了一下
部分标注可以检查出来而且在标注点上画了个圆
但是呢,当标注点 在圆心上的时候也画了个圆(这种情况是不需要的)
再有一点,就是当标注点在线上的时候但不是 线的中心点 端点交点的时候也需要画个圆
再请超级版主给我看看吧

yaokui25 发表于 2013-1-24 07:35:30

再请版主您 ZZXXQQ出手相助

yaokui25 发表于 2013-1-24 11:48:32

本帖最后由 yaokui25 于 2013-1-24 11:51 编辑

yaokui25 发表于 2013-1-24 07:35 http://bbs.mjtd.com/static/image/common/back.gif
再请版主您 ZZXXQQ出手相助

这个是更新之后的代码做的测试
端点(不画圆);最近点(画圆) OK
可是 线与线的交点,圆心,线的中心点
还会出现圆圈(这种情况不画圆)
不知到版主测试后是否和我的一样
版主您在帮我看看吧


yaokui25 发表于 2013-1-24 11:55:21

yaokui25 发表于 2013-1-24 07:35 static/image/common/back.gif
再请版主您 ZZXXQQ出手相助

测试结果已上传资料,恳请版主再帮忙看看
还是有些问题存在
页: [1] 2
查看完整版本: 求助!检查标注点上是否有对象