乐筑天下

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

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

[复制链接]

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:55:51 | 显示全部楼层
我会快速检查的。你们太棒了。
 
对不起,我漏掉了一点,不是所有的文字都是数字。。。
 
... 现在到处都是拥抱!
 
再次感谢。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 22:57:04 | 显示全部楼层
那么,它们都以字符串作为前缀吗?发布示例图形。我要去吃午饭,但今天晚些时候我还有时间。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:00:08 | 显示全部楼层
 
杰出的
 
为了完整性起见,仅假设小数-这应该考虑数字文本与alpha的混合:
 
  1. (defun c:2dp ( / ss )
  2. ;; © Lee Mac 2010
  3. (if (setq ss (ssget "_:L" '((0 . "TEXT"))))
  4.    (
  5.      (lambda ( i / e )
  6.        (while (setq e (ssname ss (setq i (1+ i))))
  7.          (entupd
  8.            (cdr
  9.              (assoc -1
  10.                (entmod
  11.                  (subst
  12.                    (cons 1
  13.                      (apply 'strcat
  14.                        (mapcar
  15.                          (function
  16.                            (lambda ( item )
  17.                              (if (eq 'INT (type item))
  18.                                (itoa item)
  19.                                (if (eq 'REAL (type item))
  20.                                  (rtos item 2 2)
  21.                                  item
  22.                                )
  23.                              )
  24.                            )
  25.                          )
  26.                          (LM:ParseNumbers
  27.                            (cdr
  28.                              (assoc 1
  29.                                (entget e)
  30.                              )
  31.                            )
  32.                          )
  33.                        )
  34.                      )
  35.                    )
  36.                    (assoc 1 (entget e)) (entget e)
  37.                  )
  38.                )
  39.              )
  40.            )
  41.          )
  42.        )
  43.      )
  44.      -1
  45.    )
  46. )
  47. (princ)
  48. )
  49. (defun LM:ParseNumbers ( str / isString isNumber lst tmp )
  50. ;; © Lee Mac 2010
  51. (defun isString ( x lst )   
  52.    (cond
  53.      ( (null lst) (list x))
  54.      
  55.      ( (< 47 (car lst) 58)
  56.       
  57.        (cons x (isNumber (chr (car lst)) (cdr lst)))
  58.      )      
  59.      ( (= 45 (car lst))
  60.       
  61.        (if (and (cadr lst)
  62.              (numberp
  63.                (read (setq tmp (strcat "-" (chr (cadr lst)))))
  64.              )
  65.            )
  66.          (cons x (isNumber tmp (cddr lst)))
  67.          (isString (strcat x (chr (car lst))) (cdr lst))
  68.        )
  69.      )      
  70.      (t (isString (strcat x (chr (car lst))) (cdr lst)))
  71.    )
  72. )
  73. (defun isNumber ( x lst )   
  74.    (cond
  75.      ( (null lst) (list (read x)))
  76.      
  77.      ( (= 46 (car lst))
  78.       
  79.        (if (and (cadr lst)
  80.              (numberp
  81.                (read (setq tmp (strcat x "." (chr (cadr lst)))))
  82.              )
  83.            )         
  84.          (isNumber tmp (cddr lst))
  85.          (cons (read x) (isString (chr (car lst)) (cdr lst)))
  86.        )
  87.      )
  88.      ( (< 47 (car lst) 58)
  89.       
  90.        (isNumber (strcat x (chr (car lst))) (cdr lst))
  91.      )      
  92.      (t (cons (read x) (isString (chr (car lst)) (cdr lst))))
  93.    )
  94. )
  95. (if (setq lst (vl-string->list str))
  96.    (
  97.      (if (or (and (= 45 (car lst)) (< 47 (cadr lst) 58))
  98.              (< 47 (car lst) 58))
  99.        isNumber isString
  100.      )
  101.      (chr (car lst)) (cdr lst)
  102.    )
  103. )
  104. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 23:04:18 | 显示全部楼层
好吧,那我就不麻烦了。
回复

使用道具 举报

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:07:23 | 显示全部楼层
 
我可以这么做,但我必须把一切都放回去!
 
C3PO按预期工作,但目前存在一些例外情况:
 
它不会解决2.500%到2.50%的问题。它完全忽略了这一点。
 
如果一个数字没有小数点,即“1255”,则将其分解为“1255.00”。
 
对于表示站点的文本,“24+00.000”。。。这被分解为“0.00”。不确定那里发生了什么,但“+”肯定是罪魁祸首。(通常我会选择24+00,但我可以用0.00生活)
 
我正在处理从POS中转储的横截面,其中有很多已经过大量编辑。我不能只是回去改变精度和再出口原因。。。嗯,说来话长。
 
无论如何,在我的问题图形堆中,我有网格线的高程(1255)、与中心线的偏移(“-10”左和“10”右)、截面上地面点的高程(1245.32)、“0+00”格式的桩号和百分比(2.55%)的坡度。此外,其他“信息文本”用于特定截面特征,如横坡、中心线和沟渠底部的高程。
 
 
“这并不奇怪,这种快速代码并不能完成所有工作。我通过一些快速搜索和替换来绕过这些缺点。。。花了两分钟。现在把我所有的数字都固定下来是一个很大的帮助。
 
如果没有其他事情的话,我已经学会了注意我在不同应用程序中运行的小数位数,因为它们会定期共享数据。
 
再次感谢大家。
 
...等待我确实有一个样本部分,这是削减建立全套,所以我会发送给你的信息。v2010年
 
埃德:当我打这个广告时,李增加了代码。这要么是你们的午休时间,要么你们是闪电打字员和机器人代码生成器!我将在冻伤瀑布的午餐时间测试最新版本。。。
67506-WESTXSECTIONS-Sec1902。图纸
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:10:52 | 显示全部楼层
你试过13号帖子里的代码了吗?
回复

使用道具 举报

3

主题

12

帖子

9

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:13:13 | 显示全部楼层
正在尝试。。。命令“2dp”似乎不起作用。。。它在没有错误的情况下加载,但在加载时可能没有进行测试。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:15:29 | 显示全部楼层
对我来说很好-你有什么错误?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:20:08 | 显示全部楼层
 
希望我没有“打破”你的“泡泡”艾伦
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-5 23:21:33 | 显示全部楼层
我的泡泡?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-18 16:17 , Processed in 4.331972 second(s), 71 queries .

© 2020-2025 乐筑天下

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