alfa numaric t的增值
你好任何机构可以帮助增加价值阿尔法numaric文本的多个文本
前任:
1*M16*50
5*M16*65
2*M16*80
3*M16*85
1*M20*55
4*M20*70
2*M20*85
2*M20*90
结果应该是
1*M16*45
5*M16*60
2*M16*75
3*M16*80
1*M20*50
4*M20*65
2*M20*80
2*M20*85
我想在数字文本的右侧或左侧加/减常量值。
谢谢 假设您的字符串格式一致,这似乎可行:
(vl-load-com)
(defun _AddToRightSide (increment yourList / BB:Parser newList)
(defun BB:Parser (char string / i segments segment)
;; Example: (BB:Parser "-" "dd-mm-yyyy")
;; Returns: ("dd" "mm" "yyyy")
(while (setq i (vl-string-search char string))
(setq segments (cons (setq segment (substr string 1 i)) segments))
(setq string (substr string (+ 2 i)))
)
(reverse (cons string segments))
)
(foreach item yourList
(setq newList
(cons
(vl-string-right-trim
"*"
(apply
'strcat
(mapcar
(function (lambda (x) (strcat x "*")))
(reverse
(cons
(itoa
(+ (atoi
(car
(setq segments (reverse (BB:Parser "*" item)))
)
)
increment
)
)
(cdr segments)
)
)
)
)
)
newList
)
)
)
(reverse newList)
)
... 例子:
_$ (_AddToRightSide
-10
(list
"100*M16*50" "1*M16*50" "1*M1600*50" "5*M16*65" "2*M16*80" "3*M16*85" "1*M20*55"
"4*M20*70" "2*M20*85" "2*M20*90" "2*M20*900" "2*M20*1000"
)
)
("100*M16*40" "1*M16*40" "1*M1600*40" "5*M16*55" "2*M16*70" "3*M16*75" "1*M20*45" "4*M20*60" "2*M20*75" "2*M20*80" "2*M20*890" "2*M20*990")
_$
干杯 我不熟悉这种lisp编码。你能帮帮我吗。
我的问候
别担心;我们都从某个地方开始。
复制我之前文章中第一个代码块中的代码,将其粘贴到空记事本文件中,并将其保存为。LSP文件扩展名(而不是.TXT)。然后可以手动拖动新创建的。将LSP文件传递到AutoCAD的会话中,通过传递适当的参数进行测试。
要在此后可用,您需要加载该文件。
也就是说,发布的代码是一个子函数(不是命令),那么您如何获得字母数字字符串列表?这些值是否代表您当前单独选择和修改的文本实体的值?需要更多信息。
干杯 是的,它们只是普通文本,不是多行文字。
我有很多这样的例子。我不能在子函数中全部键入。如果我可以输入,我可以替换为批量查找和替换。
这就是为什么我需要这种Lisp程序。
用这个lisp如果可以添加拷贝和文字做的话,这个功能是非常有帮助的。
我有下面的Lisp程序,但它只能改变开始的数字。但我希望结束数字也可以选择字符串或结束数字+/-值
谢谢 亲爱的Black box,
你能帮帮我吗。编辑我以前的lisp后缀编号。
我的问候 请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。 对于同一个问题,停止挖掘和添加旧的线程。
页:
[1]