菜卷鱼 发表于 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))



http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 菜卷鱼的微博

Gu_xl 发表于 2011-8-15 22:58:59

组码42为测量值

菜卷鱼 发表于 2011-8-15 23:12:09

Gu_xl 发表于 2011-8-15 22:58 static/image/common/back.gif
组码42为测量值

但是我测量的值为 36,而组码42的值只有4.166667,我还是弄不清什么原因

菜卷鱼 发表于 2011-8-15 23:13:53

菜卷鱼 发表于 2011-8-15 23:12 static/image/common/back.gif
但是我测量的值为 36,而组码42的值只有4.166667,我还是弄不清什么原因

谢谢,弄清楚了!!

caoyin 发表于 2011-8-16 02:52:16

一个是实际的数值,一个是显示的数值

菜卷鱼 发表于 2013-12-26 09:17:36

(defun c:gc(/)
(setq *error* gc_err)
(princ "标注孔位公差")
(setvar "cmdecho" 0)
(setq gc_obj (entsel "\n选择标注尺寸:"))
(while gc_obj
    (setq gc_info (entget (car gc_obj)))
    (setq gc42 (assoc 42 gc_info))
    (setq gc_42 (cdr gc42))
    (setq gc2 (assoc 1 gc_info))
    (setq gc_2 (cdr gc2))
    (cond ((<= gc_42 30)
         (progn (setq gc_num "") (princ "\n选择的值小于等于30"))))
    (cond ((and (> gc_42 30) (<= gc_42 200)) (setq gc_num "%%p0.15")))
    (cond ((and (> gc_42 200) (<= gc_42 500)) (setq gc_num "%%p0.2")))
    (cond ((and (> gc_42 500) (<= gc_42 1000)) (setq gc_num "%%p0.3")))
    (cond ((and (> gc_42 1000) (<= gc_42 1500))
         (setq gc_num "%%p0.5")))
    (cond ((and (> gc_42 1500) (<= gc_42 2000)) (setq gc_num "%%p1")))
    (cond ((> gc_42 2000)
         (progn (setq gc_num "") (princ "\n选择的值大于2000"))))
    (if (= gc_2 "")
      (setq gc_string (strcat "<>" gc_num))
      (if (wcmatch gc_2 "*%%p*")
      (setq gc_string gc_2)
      (setq gc_string (strcat gc_2 gc_num))))
    (setq ngc42 (cons 1 gc_string))
    (setq gc_ninfo (subst ngc42 gc2 gc_info))
    (entmod gc_ninfo)
    (setq gc_obj (entsel "")))
(setvar "cmdecho" 1)
(prin1))

s678z 发表于 2013-12-26 12:13:32

这里有的http://bbs.mjtd.com/thread-90861-1-1.html

菜卷鱼 发表于 2013-12-26 15:39:22

s678z 发表于 2013-12-26 12:13 static/image/common/back.gif
这里有的http://bbs.mjtd.com/thread-90861-1-1.html

这是我11年8月份的帖子,自己顶一下自己
页: [1]
查看完整版本: 尺寸自动添加公差问题