尺寸自动添加公差问题
本帖最后由 菜卷鱼 于 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 该贴已经同步到 菜卷鱼的微博 组码42为测量值 Gu_xl 发表于 2011-8-15 22:58 static/image/common/back.gif
组码42为测量值
但是我测量的值为 36,而组码42的值只有4.166667,我还是弄不清什么原因 菜卷鱼 发表于 2011-8-15 23:12 static/image/common/back.gif
但是我测量的值为 36,而组码42的值只有4.166667,我还是弄不清什么原因
谢谢,弄清楚了!! 一个是实际的数值,一个是显示的数值 (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))
这里有的http://bbs.mjtd.com/thread-90861-1-1.html s678z 发表于 2013-12-26 12:13 static/image/common/back.gif
这里有的http://bbs.mjtd.com/thread-90861-1-1.html
这是我11年8月份的帖子,自己顶一下自己
页:
[1]