需要帮助添加到e
嘿刚到论坛的人,对CAD来说都是老朋友,不妨直接问我的问题。
我最近发现了这个由ASMI开发的令人惊叹的lisp应用程序(AsmiTools\u Renum.lsp)
虽然我觉得这个应用程序非常有用,但我想在lisp中添加另一个小属性。
目前,在您给出前缀/后缀/起始数字后,lisp开始从1开始计数,等等。。。
问题是,有时我的块需要保留小数位数,以便计数超过100/1000等等。。。
应用程序是否可以问你序列号应该有多少个整数位。
即。。例如,3个位置,因此它从001开始计数,而不是1。
或者2个位置,从01开始,
或者4个位置,从0001开始。
如果有人能提供这样做的代码,或者编辑lisp本身,我们将不胜感激。 嘿
快速提问,为什么当程序要求前缀时,您不能只输入0(或多个零)?诚然,当你达到10岁时,你必须重置程序,但这很常见吗? 无论如何,我有一分钟,像这样的?(突出显示更改)
;; ;;
;; ==================================================================== ;;
;; ;;
;;RENUM.LSP - This program converts TEXT, MTEXT and ATTRIBUTES in ;;
;; numbers with a prefix and a suffix. ;;
;; ;;
;; ==================================================================== ;;
;; ;;
;;Command(s) to call: RENUM ;;
;; ;;
;;Specify a suffix, a prefix and starting number (for erase the old ;;
;;suffix or prefix you should press Spacebar). Pick to TEXT, MTEXT ;;
;;ATTRIBUTES or press Esc to quit. The program remembers old ;;
;;properties and it is possible to confirm it pressing of Spacebar ;;
;;key. ;;
;; ;;
;; ==================================================================== ;;
;; ;;
;;THIS PROGRAM AND PARTS OF IT MAY REPRODUCED BY ANY METHOD ON ANY ;;
;;MEDIUM FOR ANY REASON. YOU CAN USE OR MODIFY THIS PROGRAM OR ;;
;;PARTS OF IT ABSOLUTELY FREE. ;;
;; ;;
;;THIS PROGRAM PROVIDES 'AS IS' WITH ALL FAULTS AND SPECIFICALLY ;;
;;DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS ;;
;;FOR A PARTICULAR USE. ;;
;; ;;
;; ==================================================================== ;;
;; ;;
;;V1.0, 16 June, 2005, Riga, Latvia ;;
;;© Aleksandr Smirnov (ASMI) ;;
;;For AutoCAD 2000 - 2008 (isn't tested in a next versions) ;;
;; ;;
;; http://www.asmitools.com ;;
;; ;;
;; ==================================================================== ;;
(defun c:renum (/ oldPref oldSuf oldStart curText curStr
numZeros)
(vl-load-com)
(initget 6)
(setq numZeros (getInt "\nEnter number of 0 prefix's:"))
(defun num2str (num / numStr)
(setq numStr (itoa num))
(If (< (strlen numStr) numZeros)
(repeat (- numZeros (strlen numStr))
(setq numStr (strcat "0" numStr))
)
)
numStr
)
(if(not rnm:Pref)(setq rnm:Pref ""))
(if(not rnm:Suf)(setq rnm:Suf ""))
(if(not rnm:Start)(setq rnm:Start 1))
(setq oldPref rnm:Pref
oldSuf rnm:Suf
oldStart rnm:Start); end setq
(setq rnm:Pref
(getstring T
(strcat "\nPrefix: <"rnm:Pref">: ")))
(if(= "" rnm:Pref)(setq rnm:Pref oldPref))
(if(= " " rnm:Pref)(setq rnm:Pref ""))
(setq rnm:Suf
(getstring T
(strcat "\nSuffix: <"rnm:Suf">: ")))
(if(= "" rnm:Suf)(setq rnm:Suf oldSuf))
(if(= " " rnm:Suf)(setq rnm:Suf ""))
(setq rnm:Start
(getint
(strcat "\nStarting number <"
(itoa rnm:Start)">: ")))
(if(null rnm:Start)(setq rnm:Start oldStart))
(while T
(setq curStr(strcat rnm:Pref(num2Str rnm:Start)rnm:Suf))
(setq curText
(car
(nentsel "\n<<< Pick TEXT, MTEXT or ATTRIBUTE or press Esc to quit >>> ")))
(if
(and
curText
(member(cdr(assoc 0(entget curText))) '("TEXT" "MTEXT" "ATTRIB"))
); end and
(progn
(vla-put-TextString
(vlax-ename->vla-object curText)curStr)
(setq rnm:Start(1+ rnm:Start))
); end progn
(princ "\n This is not DText or MText ")
); end if
); end while
(princ)
); end of c:renum
(princ "\n http:\\\\www.AsmiTools.com ")
(princ "\n Renumber tool. Type RENUM to run. ") 这其实很常见,
作为一名电信顾问,我必须给办公楼的插座贴上标签,
我们说的是每层楼有数百个销售点
我将尝试添加代码,看看它是否能很快工作。 了不起的工作,史蒂夫,工作很有魅力,谢谢你 没问题。
不确定你是否会发现它更有用,但你试过李·麦克的数字递增程序吗?
我得到了我一直在寻找的东西。它在我的笔记本电脑中工作,在安装了相同版本(Acad2009)Autocad的办公系统中没有得到相同的结果。我一直收到类似“无法粘贴文本”的错误消息。请给我一个这方面的解决方案。
提前感谢 对我来说效果很好。不能说我见过“无法通过文本”错误。你是在同一幅画上试的吗?张贴示例图纸。 :oI已在不同机器的同一图纸上试用过。不同之处在于,我的office系统中有34位Autocad,笔记本电脑中有64位。
有点疯狂。。今天我发现了与ActiveX相关的错误
知道吗?
页:
[1]
2