lispt使用ca添加整数
我在另一个网站上从一个有jmcshane句柄的用户那里找到了这个lisp。谢谢你!它可以很好地将指定的整数添加到具有多个副本的选定数字中。(defun c:copyinc (/ IncVal TextObj NewPos TextVal
NewTextObj)
(vl-load-com)
(setq IncVal (fix (getreal "\nEnter
Incremant Value :")))
(setq TextObj
(vlax-ename->vla-object
(car (entsel "\nSelect Mtext Object :")))
)
(while
(setq NewPos (getpoint "\nSelect new position :
"))
(setq TextVal (atoi (vla-get-textstring
TextObj)))
(setq NewTextObj (vla-copy
TextObj))
(vla-move
NewTextObj
(vla-get-InsertionPoint
NewTextObj)
(vlax-3D-Point
NewPos)
)
(vla-put-textstring NewTextObj (+ IncVal TextVal))
(setq TextObj NewTextObj)
)
(princ)
)
我希望它以同样的方式工作,但有选择的数字“10410-13”例如得到复制,并更改为这个例子“10414-17”。任何帮助都将不胜感激。 尝试一下:
(vl-load-com)
(defun c:CopyInc (/ n ss otext insertionPoint textString pt oNewText i
newString
)
(if (and (setq n (getint "\nEnter increment value (integer): "))
(setq ss (ssget ":S:E:L" '((0 . "MTEXT,TEXT") (1 . "*#-#*"))))
(setq oText (vlax-ename->vla-object (ssname ss 0)))
)
(while (setq pt (getpoint "\nSpecify new insertion point(s): "))
(vla-move (setq oNewText (vla-copy oText))
(vla-get-insertionpoint oText)
(vlax-3d-point pt)
)
(vla-put-textstring
oNewText
(strcat
(substr
(setq newString
(itoa
(+ n
(atoi (strcat
(substr
(setq textString (vla-get-textstring oText))
1
(setq i (vl-string-search "-" textString))
)
(substr textString (+ 2 i))
)
)
)
)
)
1
i
)
"-"
(substr newString (1+ i))
)
)
(setq oText oNewText)
)
(cond (n (prompt "\n** Nothing selected ** "))
((prompt "\n** Must enter an increment value ** "))
)
)
(princ)
)
越来越近了。我需要加上破折号前的第一个数字和破折号后的数字。这样地
10410-13
也复制了
10414-17
我不知道你得到了什么结果,但一个带有TextString=“10410-13”的文本实体会复制为“10414-17”。。。以下是使用404(1041013和1041417之间的差异)作为增量的屏幕截图:
似乎对我有帮助。干得好,马特。 干杯,艾伦 很抱歉我用了“4”这个数字太棒了。我觉得有点不好意思
别担心;我很乐意帮忙。 为什么不呢?
(vla-put-textstring
oNewText (strcat
(substr (setq newString
(itoa(+ n
(atoi (strcat
(itoa (+ (atoi (substr
(setq textString (vla-get-textstring oText))
1
(setq i (vl-string-search "-" textString))
)
) n ) )
(substr textString (+ 2 i))
)))))
1 i )
"-"
(substr newString (1+ i))
)
)
和类型4而不是404?还是1比101?
还有一个
(defun c:CopyInc2 (/nss otext
insertionPoint textString
pt oNewText
)
(if (and (setq n (getint "\nEnter increment value (integer): "))
(setq ss (ssget ":S:E:L" '((0 . "MTEXT,TEXT") (1 . "*#-#*"))))
(setq oText (vlax-ename->vla-object (ssname ss 0)))
)
(while (setq pt (getpoint "\nSpecify new insertion point(s): "))
(vla-move (setq oNewText (vla-copy oText))
(vla-get-insertionpoint oText)
(vlax-3d-point pt)
)
(setq NewStr (mapcar '+ (read (Strcat"(" (vl-string-subst " " "-" (vla-get-textstring Otext)) ")")) (list n n)))
(vla-put-textstring
oNewText
(strcat (itoa (Car NewStr)) "-" (itoa (Cadr NewStr))))
(setq oText oNewText)
)
(cond (n (prompt "\n** Nothing selected ** "))
((prompt "\n** Must enter an increment value ** "))
)
)
(princ)
)
命令:CopyInc2
HTH公司
页:
[1]