找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 835|回复: 9

[求助] [求助]:如何提取一个尺寸标注的值,然后再赋给一个变量?

[复制链接]
发表于 2009-1-19 15:58:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
选择一个尺寸标注,然后提取这个尺寸标注的值,然后把此值赋给一个变量?用lisp如何写?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2009-1-19 20:01:43 | 显示全部楼层
(setq sn (car (entsel "\n点取尺寸:")) tr (cdr (assoc 1 (entget sn))))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-19 22:41:16 | 显示全部楼层
楼上兄台,
(setq sn (car (entsel "\n点取尺寸:")) tr (cdr (assoc 42  [/COLOR] (entget sn))))
对否?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-20 12:46:59 | 显示全部楼层
最初由 ajing_sky 发布
[B]楼上兄台,
(setq sn (car (entsel "\n点取尺寸:")) tr (cdr (assoc 42  [/COLOR] (entget sn))))
对否? [/B]

不对头吧,尺寸标注没有42代码。
[PHP](defun to(n)
  (cdr (assoc n (entget sn)))
)
(defun c:nn()
  (setq sn (car (entsel "\n点取尺寸:"))
        p13 (to 13) p14 (to 14)
  )
  (if (eq (to 1) "")
    (setq st (* (fix (/ (+ (distance p13 p14) 4) 10)) 10)
          st (itoa st)
    )
    (setq st (to 1))   
  )   
) [/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-20 13:54:44 | 显示全部楼层
最初由 gysjy 发布
[B]
不对头吧,尺寸标注没有42代码。
... [/B]



我试了下,运行正确,谢谢老兄指点,我是刚学了一下lisp,以后多多指点呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-20 18:42:31 | 显示全部楼层
“尺寸标注有42代码。”

[php]
;;装了个英文版的CAD。希望下面能看的懂。
(defun c:tt (/ E ELIST RETURN V1 V42)
  
  (setq e (car (entsel "\nSelect the Dimension: ")))
  
  (setq elist (entget e))
  
  ;; 1 Dimension text explicitly entered by the user.
  ;; Optional; default is the measurement. If null or "<>",
  ;; the dimension measurement is drawn as the text, if "" (one blank space),
  ;; the text is suppressed. Anything else is drawn as the text
  (setq v1 (cdr (assoc 1 elist)))

  ;; 42 Actual measurement (optional; read-only value)
  (setq v42 (cdr (assoc 42 elist)))
  
  (if (= v1 "")
    (setq return v42)
    (setq return v1)
  )

  (princ return)
  
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-20 19:06:38 | 显示全部楼层
最初由 carrot1983 发布
[B]“尺寸标注有42代码。”

[php]
;;装了个英文版的CAD。希望下面能看的懂。
(defun c:tt (/ E ELIST RETURN V1 V42)
  
  (setq e (car (entsel "\nSelect the Dimension: ")))
  
  (setq elist (entget e))... [/B]

谢谢指正。2004版本以上的都有。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-20 19:46:03 | 显示全部楼层
最初由 ajing_sky 发布
[B]楼上兄台,
(setq sn (car (entsel "\n点取尺寸:")) tr (cdr (assoc 42  [/COLOR] (entget sn))))
对否? [/B]


运行正确,谢谢!还想问一下,在点选标注尺寸时如何过滤?就是说在没有点中尺寸或者点中的对像不是尺寸时,提示重新点选,或都回车退出,lisp怎么写呀?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-20 20:22:20 | 显示全部楼层
[php]
;;Get the Dimension text REV1.0  carrot1983
(defun c:tt (/ E ELIST RETURN V1 V42)

  (while (setq e (car (entsel "\nSelect the Dimension: ")))

    (setq elist (entget e))

    (setq v1 (cdr (assoc 1 elist)))

    (setq v42 (cdr (assoc 42 elist)))

    (if        (= v1 "")

      (setq return v42)

      (if (vl-string-search "<>" v1)

        (setq return (vl-string-subst (vl-princ-to-string v42) "<>" v1))

        (setq return v1)

      )

    )

    (princ return)

  )
  (princ)
)

[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-1-20 21:13:26 | 显示全部楼层
嗯,互相学习了。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 10:54 , Processed in 0.226340 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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