明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3540|回复: 17

悬赏标注检查

  [复制链接]
发表于 2012-3-11 11:45 | 显示全部楼层 |阅读模式
1明经币
请看截图
请高手帮忙解决一下!!!就是尺寸没有在线上,或者点上, 检查支持框选

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

最佳答案

查看完整内容

一个类似作用的 ;;; ====================================== ;;; 名称: 尺寸检查 ;;; 功能:尺寸起末点不在线端点数值显示红色 ;;; ====================================== (defun c:aa (/ ent i lst name p ss ss0 x) (defun zz002 (pt lst / p x) (setq p nil) (foreach x lst (if (and (= (car x) (car pt)) (= (cadr x) (cadr pt)))(setq p t))) p ) (setvar "cmdecho" 0) (vl-load-com) (set ...
发表于 2012-3-11 11:45 | 显示全部楼层
一个类似作用的
;;; ======================================
;;; 名称: 尺寸检查
;;; 功能:尺寸起末点不在线端点数值显示红色
;;; ======================================
(defun c:aa (/ ent i lst name p ss ss0 x)
  (defun zz002 (pt lst / p x)
    (setq p nil)
    (foreach x lst (if (and (= (car x) (car pt)) (= (cadr x) (cadr pt)))(setq p t))) p
  )
  (setvar "cmdecho" 0)
  (vl-load-com)
  (setq lst '()        p t)
  (if (setq ss0 (ssget "X" '((0 . "DIMENSION"))))
    (repeat (setq i (sslength ss0))
      (setq name (ssname ss0 (setq i (1- i))))
      (if (= (vla-get-textcolor (vlax-ename->vla-object name)) 1)(progn (vlax-put-property (vlax-ename->vla-object name) "textcolor" 256) (setq p nil))))
  )
  (if p
    (progn
      (if (setq ss (ssget "X" '((0 . "LWPOLYLINE,LINE,ARC,CIRCLE,PLINE"))))
        (repeat (setq i (sslength ss))
          (setq name (ssname ss (setq i (1- i))) ent (entget name) type (cdr (assoc 0 ent)))
          (cond
            ((member type '("PLINE" "LWPOLYLINE"))
               (foreach x ent (if (= (car x) 10) (setq lst (cons (cdr x) lst)))))
            (t (setq lst (cons (cdr (assoc 10 ent)) lst))
              (if (= type "LINE")(setq lst (cons (cdr (assoc 11 ent)) lst)))
              (if (= type "ARC")
                (setq lst (cons (polar (cdr (assoc 10 ent)) (cdr (assoc 50 ent)) (cdr (assoc 40 ent))) lst)
                      lst (cons (polar (cdr (assoc 10 ent)) (cdr (assoc 51 ent)) (cdr (assoc 40 ent))) lst))
              )))
        ))
      (if (setq ss (ssget "X" '((0 . "DIMENSION"))))
        (repeat (setq i (sslength ss))
          (setq name (ssname ss (setq i (1- i))) ent (entget name))
          (if (and (zz002 (cdr (assoc 13 ent)) lst) (zz002 (cdr (assoc 14 ent)) lst))
            (princ)
            (vlax-put-property (vlax-ename->vla-object name) "textcolor" 1)
          )
        )
      )
    )
  )
  (princ)
)

点评

比后一个强  发表于 2012-3-17 14:01

评分

参与人数 2明经币 +2 收起 理由
自贡黄明儒 + 1
vlisp2012 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-3-11 13:10 | 显示全部楼层
请求高手!!!!
回复

使用道具 举报

发表于 2012-3-11 15:29 | 显示全部楼层
还是不太明白想法
回复

使用道具 举报

 楼主| 发表于 2012-3-11 16:45 | 显示全部楼层
就是检查 标注,不在线上,或者点上,  
回复

使用道具 举报

 楼主| 发表于 2012-3-11 16:53 | 显示全部楼层
有的时候,着急,就把尺寸标偏了,没标在点上,或者线上,
我主要是想要能检查出来这种情况的LISP!!
回复

使用道具 举报

 楼主| 发表于 2012-3-11 16:53 | 显示全部楼层
看上面的521 就是标偏了,实际要是标在点上,就500
回复

使用道具 举报

发表于 2012-3-11 19:23 | 显示全部楼层
不错不错,谢谢7楼
回复

使用道具 举报

 楼主| 发表于 2012-3-12 18:19 | 显示全部楼层
多谢lang兄。  要是能把标记的尺寸分到别的图层,就更完美了, 希望lang兄更新一下!!!!
回复

使用道具 举报

发表于 2012-3-12 21:08 | 显示全部楼层
多谢谢langjs大侠,和你学习了很多!!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 08:17 , Processed in 0.165890 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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