明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2206|回复: 7

[源码] 尺寸自动添加公差问题

[复制链接]
发表于 2011-8-15 22:49:00 | 显示全部楼层 |阅读模式
本帖最后由 菜卷鱼 于 2013-12-26 09:08 编辑

自己编了一个标公差的东西,假如用nentsel提取群码再修改,要regen之后才能显示修改后的值

荣entsel提取群码在修改,虽然能实时更新,但是提取的值不是准确值,比如说标注的尺寸是48.0,

用nentsel提取群码,用下面的程序加公差,要regen一次才能显示出修改后的效果,并且双击一下尺寸它又变回来了,

假如用entsel提取群码,标准的尺寸值提取出来是“<>”,而不是48.0,虽然能实时更新尺寸,但是程序里面的if对它来说

没有限制,标注的公差不一定正确


求高人指教啊!!



(defun c:gc()

(setq en (nentsel "\n 选择对象:" ))

(setq ens (entget (car en )))

(setq s0 (assoc 0 ens))

(setq s0a (cdr s0))

(setq s1 (assoc 1 ens ))

(setq s1a (cdr s1))

(setq s2 (assoc 2 ens ))

(setq s2a (cdr s2))

(setq s3 (assoc 3 ens ))

(setq s3a (cdr s3))

(if (and (>= s1a 30)(< s10 200))

    (setq dx "%%p0.15")

    (if (and (>= s1a 200)(< s10 500))

        (setq dx "%%p0.2")

        (if (and (>= s1a 500)(< s10 1000))

            (setq dx "%%p0.3")

            (if (and (>= s1a 1000)(< s10 1500))

                 (setq dx "%%p0.5")

                 (if (and (>= s1a 1000)(< s10 1500))

                     (setq dx "%%p1"))))))

(setq ns1a (strcat s1a dx))

(setq ns1 (cons 1 ns1a))

(setq ens (subst ns1 s1a))

(entmod ens)

(prin1)

)





该贴已经同步到 菜卷鱼的微博
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

  • · 收集|主题: 58, 订阅: 4
发表于 2011-8-15 22:58:59 | 显示全部楼层
组码42为测量值
 楼主| 发表于 2011-8-15 23:12:09 | 显示全部楼层
Gu_xl 发表于 2011-8-15 22:58
组码42为测量值

但是我测量的值为 36,而组码42的值只有4.166667,我还是弄不清什么原因
 楼主| 发表于 2011-8-15 23:13:53 | 显示全部楼层
菜卷鱼 发表于 2011-8-15 23:12
但是我测量的值为 36,而组码42的值只有4.166667,我还是弄不清什么原因

谢谢,弄清楚了!!
发表于 2011-8-16 02:52:16 | 显示全部楼层
一个是实际的数值,一个是显示的数值
 楼主| 发表于 2013-12-26 09:17:36 | 显示全部楼层
  1. (defun c:gc  (/)
  2.   (setq *error* gc_err)
  3.   (princ "标注孔位公差")
  4.   (setvar "cmdecho" 0)
  5.   (setq gc_obj (entsel "\n选择标注尺寸:"))
  6.   (while gc_obj
  7.     (setq gc_info (entget (car gc_obj)))
  8.     (setq gc42 (assoc 42 gc_info))
  9.     (setq gc_42 (cdr gc42))
  10.     (setq gc2 (assoc 1 gc_info))
  11.     (setq gc_2 (cdr gc2))
  12.     (cond ((<= gc_42 30)
  13.            (progn (setq gc_num "") (princ "\n选择的值小于等于30"))))
  14.     (cond ((and (> gc_42 30) (<= gc_42 200)) (setq gc_num "%%p0.15")))
  15.     (cond ((and (> gc_42 200) (<= gc_42 500)) (setq gc_num "%%p0.2")))
  16.     (cond ((and (> gc_42 500) (<= gc_42 1000)) (setq gc_num "%%p0.3")))
  17.     (cond ((and (> gc_42 1000) (<= gc_42 1500))
  18.            (setq gc_num "%%p0.5")))
  19.     (cond ((and (> gc_42 1500) (<= gc_42 2000)) (setq gc_num "%%p1")))
  20.     (cond ((> gc_42 2000)
  21.            (progn (setq gc_num "") (princ "\n选择的值大于2000"))))
  22.     (if (= gc_2 "")
  23.       (setq gc_string (strcat "<>" gc_num))
  24.       (if (wcmatch gc_2 "*%%p*")
  25.         (setq gc_string gc_2)
  26.         (setq gc_string (strcat gc_2 gc_num))))
  27.     (setq ngc42 (cons 1 gc_string))
  28.     (setq gc_ninfo (subst ngc42 gc2 gc_info))
  29.     (entmod gc_ninfo)
  30.     (setq gc_obj (entsel "")))
  31.   (setvar "cmdecho" 1)
  32.   (prin1))

本帖子中包含更多资源

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

x
发表于 2013-12-26 12:13:32 | 显示全部楼层
 楼主| 发表于 2013-12-26 15:39:22 | 显示全部楼层
s678z 发表于 2013-12-26 12:13
这里有的http://bbs.mjtd.com/thread-90861-1-1.html

这是我11年8月份的帖子,自己顶一下自己
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 00:40 , Processed in 0.201977 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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