找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 620|回复: 6

[LISP函数]:如何提取数值

[复制链接]
发表于 2005-5-14 12:25:04 | 显示全部楼层 |阅读模式

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

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

×
小弟有一问题想请教
就是在图里有几个带有前缀的数字应该如何提取数值进行运算?
例如“L=560.22”“L=566.37”“L=463.86”

如果用下面的就只能提取单纯是数字的数值。如“560.22”

(setq aent (entsel "\n请选择数字 "))
(setq a (entget (car aent)))
(setq a1 (atof(cdr(assoc 1 a))))

这时候的a1就是提取出来的数值了。
有后缀也行,如“560.22M”
我想是不是关键在assoc这一步上?向各位老大请教了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-14 12:36:42 | 显示全部楼层
(setq a1 (atof(cdr(assoc 1 a))))这样能提取数值????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-14 12:58:26 | 显示全部楼层
试试:
[php]
(defun c:test (/ e)
  (while (/= e "TEXT")
    (while (not (setq s1 (entsel))))
    (setq e (cdr (assoc 0 (entget (car s1)))))
  )
  (setq a (cdr (assoc 1 (entget (car s1)))))
  (if (= (substr a 1 2) "L=")
    (setq a (atof (substr a 3)))
    (setq a (atof a))
  )
  a
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-16 22:11:49 | 显示全部楼层
但是为什么要有一段(setq e (cdr (assoc 0 (entget (car s1)))))呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-17 01:42:55 | 显示全部楼层
最初由 00lg 发布
[B]但是为什么要有一段(setq e (cdr (assoc 0 (entget (car s1)))))呢? [/B]

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 11:11 , Processed in 0.177611 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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