找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1727|回复: 7

[求助] 求一修改后四舍五入的lisp

[复制链接]
发表于 2014-3-15 19:43:49 | 显示全部楼层 |阅读模式

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

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

×
求一个增强的四舍五入的lisp,,191    225        467  等 变成190     225    467   就是一般的四舍五入,可是当是5的时候不进!  框选修改!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2014-3-15 19:44:43 | 显示全部楼层
是191   225  467  变成190    225      470
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1261个

财富等级: 财源广进

发表于 2014-3-16 00:09:42 | 显示全部楼层
  1. (defun c:test (/ LAST_STR NUM_LIST NUM_STR RE)
  2.   (setq num_list '(191 225 467))
  3.   (setq re '())
  4.   (foreach i num_list
  5.     (setq num_str (itoa i))
  6.     (setq last_str (substr num_str (strlen num_str)))
  7.     (if (> (atoi last_str) 5)
  8.       (setq num_str (strcat (itoa (1+ (atoi (substr num_str 1 (1- (strlen num_str)))))) "0"))
  9.       (progn
  10.         (if (< (atoi last_str) 5)
  11.           (setq num_str (strcat (itoa (atoi (substr num_str 1 (1- (strlen num_str))))) "0"))
  12.           )
  13.         )
  14.       )
  15.     (setq re (cons (atoi num_str) re))
  16.     )
  17.   (setq re (reverse re))
  18.   )

点评

(defun c:test (/ LAST_STR NUM_LIST NUM_STR RE i) (setq num_list (ssget '((0 . "text")))) (setq re '()) (foreach i num_list (setq num_str (itoa i)) (setq last_str (substr num_str (strlen  详情 回复 发表于 2014-3-16 12:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-16 00:28:04 | 显示全部楼层
  1. (defun c:tt (/ ss)
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (mapcar
  4.       '(lambda (x)
  5.          (and (distof (setq str (xdrx_getpropertyvalue x "Textstring")))
  6.               (xdrx_setpropertyvalue
  7.                 x
  8.                 "Textstring"
  9.                 (itoa (fix (XD::Math:Round1 (distof str) 1)))
  10.               )
  11.          )
  12.        )
  13.       (xdrx_pickset->ents ss)
  14.     )
  15.   )
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-16 12:53:05 | 显示全部楼层

(defun c:test (/ LAST_STR NUM_LIST NUM_STR RE i)
(setq num_list (ssget '((0 . "text"))))
(setq re '())
(foreach i num_list
    (setq num_str (itoa i))
    (setq last_str (substr num_str (strlen num_str)))
    (if (> (atoi last_str) 5)
     (setq num_str (strcat (itoa (1+ (atoi (substr num_str 1 (1- (strlen num_str)))))) "0"))
     (progn
        (if (< (atoi last_str) 5)
         (setq num_str (strcat (itoa (atoi (substr num_str 1 (1- (strlen num_str))))) "0"))
         )
        )
     )
    (setq re (cons (atoi num_str) re))
    )
(setq re (reverse re))
)


运行提示参数类型错误: consp <Selection set: 7f2>

不可以用啊!{:soso_e109:}

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

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2014-3-25 16:51:44 | 显示全部楼层
  1. (defun c:xx ( / i lst s1 ss str)
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (progn
  4.       (setq i (sslength ss))
  5.       (while (setq s1 (ssname ss (setq i (1- i))))
  6.         (setq str(xx-get-dxf 1 s1))
  7.         (setq lst (xx-str-expe str))
  8.         (if (and(/= (atoi (last lst)) 5)(/= (atoi (last lst)) 0))
  9.           (progn
  10.             (xx-put-dxf s1 1 (itoa (xx-int-fix (atoi str))))
  11.             (xx-change s1 "c" "1")
  12.           )
  13.         )
  14.       )
  15.     )
  16.   )
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-25 18:42:16 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2014-3-25 18:54 编辑
炫翔 发表于 2014-3-25 16:51


没看出优势,不如用vla
用free-lancer的app中函数简单修改就可以替换xdapi那个
(defun c:tt ()
  (fy:begin)
  (if  (ssget '((0 . "text")))
    (mapcar
      '(lambda (x)
         (and (distof (setq str (vlax-get x "Textstring")))
              (vlax-put
                x
                "Textstring"
                (itoa (fix (XD::Math:Round1 (distof str) 1)))
              )
         )
       )
      (fy:cset->objs)
    )
  )
  (fy:end)
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9815个

财富等级: 富甲天下

发表于 2014-3-26 08:10:54 | 显示全部楼层
本帖最后由 zxq0220 于 2014-3-26 08:23 编辑
  1. (defun c:test (/ ss i  ent num)
  2.   (setq ss (ssget '((0 . "TEXT") (1 . "###"))))
  3.   (setq i -1)
  4.   (repeat (sslength ss)
  5.     (setq ent (entget(ssname ss (setq i (1+ i))))
  6.        num (atoi(cdr(assoc 1 ent)))
  7.        num (itoa (* (/ (+ num 3) 5) 5)))
  8.     (entmod (subst (cons 1 num) (assoc 1 ent) ent))
  9.   )
  10.   (princ)
  11. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 15:13 , Processed in 0.491981 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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