对不起,我漏掉了一点,不是所有的文字都是数字。。。
... 现在到处都是拥抱!
再次感谢。 那么,它们都以字符串作为前缀吗?发布示例图形。我要去吃午饭,但今天晚些时候我还有时间。
杰出的
为了完整性起见,仅假设小数-这应该考虑数字文本与alpha的混合:
(defun c:2dp ( / ss )
;; © Lee Mac 2010
(if (setq ss (ssget "_:L" '((0 . "TEXT"))))
(
(lambda ( i / e )
(while (setq e (ssname ss (setq i (1+ i))))
(entupd
(cdr
(assoc -1
(entmod
(subst
(cons 1
(apply 'strcat
(mapcar
(function
(lambda ( item )
(if (eq 'INT (type item))
(itoa item)
(if (eq 'REAL (type item))
(rtos item 2 2)
item
)
)
)
)
(LM:ParseNumbers
(cdr
(assoc 1
(entget e)
)
)
)
)
)
)
(assoc 1 (entget e)) (entget e)
)
)
)
)
)
)
)
-1
)
)
(princ)
)
(defun LM:ParseNumbers ( str / isString isNumber lst tmp )
;; © Lee Mac 2010
(defun isString ( x lst )
(cond
( (null lst) (list x))
( (< 47 (car lst) 58)
(cons x (isNumber (chr (car lst)) (cdr lst)))
)
( (= 45 (car lst))
(if (and (cadr lst)
(numberp
(read (setq tmp (strcat "-" (chr (cadr lst)))))
)
)
(cons x (isNumber tmp (cddr lst)))
(isString (strcat x (chr (car lst))) (cdr lst))
)
)
(t (isString (strcat x (chr (car lst))) (cdr lst)))
)
)
(defun isNumber ( x lst )
(cond
( (null lst) (list (read x)))
( (= 46 (car lst))
(if (and (cadr lst)
(numberp
(read (setq tmp (strcat x "." (chr (cadr lst)))))
)
)
(isNumber tmp (cddr lst))
(cons (read x) (isString (chr (car lst)) (cdr lst)))
)
)
( (< 47 (car lst) 58)
(isNumber (strcat x (chr (car lst))) (cdr lst))
)
(t (cons (read x) (isString (chr (car lst)) (cdr lst))))
)
)
(if (setq lst (vl-string->list str))
(
(if (or (and (= 45 (car lst)) (< 47 (cadr lst) 58))
(< 47 (car lst) 58))
isNumber isString
)
(chr (car lst)) (cdr lst)
)
)
)
好吧,那我就不麻烦了。
我可以这么做,但我必须把一切都放回去!
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。图纸 你试过13号帖子里的代码了吗? 正在尝试。。。命令“2dp”似乎不起作用。。。它在没有错误的情况下加载,但在加载时可能没有进行测试。 对我来说很好-你有什么错误?
希望我没有“打破”你的“泡泡”艾伦 我的泡泡?
页:
1
[2]