乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 35|回复: 19

[编程交流] 将舍入d的Lisp例程

[复制链接]

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:21:11 | 显示全部楼层 |阅读模式
这是一个令人尴尬的问题,但是否有一个lisp例程在放置文本后将小数点四舍五入?这与单位设置无关;这将只是编辑文件中已有的哑文本元素。我不写代码,但我想象一个文本字符串可以计算数字、小数点和后面的一些字符。如果不能四舍五入,我甚至乐意截断最后一个/额外的字符。
我错误地从一个POS(软件)中导出了大量数字数据,数字中有三个四舍五入点。我只需要/想要两个,这样我的船员就不会认为我是****保留者。
有希望吗?
 
提前感谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-5 22:25:19 | 显示全部楼层
  1. (defun c:R2D2 (/ ss)
  2. (if (setq ss (ssget "_:L" '((0 . "TEXT"))))
  3.    ((lambda (i / e l)
  4.       (while (setq e (ssname ss (setq i (1+ i))))
  5.         (setq l (entget e))
  6.         (entmod (subst (cons 1 (rtos (atof (cdr (assoc 1 l))) (getvar 'lunits) 2)) (assoc 1 l) l))
  7.       )
  8.     )
  9.      -1
  10.    )
  11. )
  12. (princ)
  13. )
回复

使用道具 举报

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:28:05 | 显示全部楼层
好的,所以这并不难。我该把钱寄到哪里?
 
非常感谢,你刚刚救了我一个早上!
 
xoxo
 
...哎呀,可能说得太早了。这在每次拾取的基础上都很有效,但如果我大规模地按窗口选择,则会出现不可预测的结果。
 
示例:(选择所有单独的文本实体作为一个集合)
CL标高:1278.141接地标高:1277.952(LT)1267.800
 
产量:
0.00   1278.14   0.00   1277.95     0.00    1267.80   
 
也许区分字母和数字更难?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:31:50 | 显示全部楼层
:lol:
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-5 22:36:13 | 显示全部楼层
改天吧。不客气。
 
 
英雄联盟
RoundToDecimalsofTwo
这太完美了。
回复

使用道具 举报

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:39:25 | 显示全部楼层
查看我编辑的xoxo帖子
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-5 22:42:01 | 显示全部楼层
啊,你没告诉我文字不仅仅是一个数字。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:45:22 | 显示全部楼层
与Alan的代码没有太大不同,符合主题lol
 
  1. (defun c:C3PO ( / ss )
  2. (if (setq ss (ssget "_:L" '((0 . "TEXT"))))
  3.    (
  4.      (lambda ( i / e el )
  5.        (while (setq e (ssname ss (setq i (1+ i))))
  6.          (if (distof (cdr (assoc 1 (setq el (entget e)))))
  7.            (entupd
  8.              (cdr
  9.                (assoc -1
  10.                  (entmod
  11.                    (subst
  12.                      (cons 1
  13.                        (rtos
  14.                          (atof
  15.                            (cdr
  16.                              (assoc 1 el)
  17.                            )
  18.                          )
  19.                          (getvar 'LUNITS)
  20.                          2
  21.                        )
  22.                      )
  23.                      (assoc 1 el)
  24.                      el
  25.                    )
  26.                  )
  27.                )
  28.              )
  29.            )
  30.          )
  31.        )
  32.      )
  33.      -1
  34.    )
  35. )
  36. (princ)
  37. )
  38.                               
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-5 22:48:41 | 显示全部楼层
 
用distof检查字符串是个好主意。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:51:32 | 显示全部楼层
 
谢谢,伙计
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 06:09 , Processed in 0.836695 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表