自动增加编号
你好我正在做一个大项目。我有大约5600个单元,带有唯一的编号/标签。
标签示例:
SQ.2.20.32
RB。2.20.04
添加新单元时,我必须手动将以下单元的编号增加+1。
有没有可能让我制作一个具有自动执行功能的按钮?
例子:
我按了一个标签,上面写着“SQ.2.20.32”,它变为“SQ.2.20.33”
我按下一个标签,上面写着“RB.2.20.04”,它变为“RB.2.20.05”
这将为我节省数小时的无聊工作,因此如果有人能帮助我,我将不胜感激:) 我使用从0开始工作的diesel宏,但我认为您需要lisp来管理如此复杂的编号系统。
*^C^Ctext;_m;\;;$M=$(getvar,USERI1);setvar;USERI1;$(+,1,$(getvar,USERI1))
如果总是2个12月轻松开始
; from help
;Substr string start length
(setq ans (getstring "\type in code part num above"))
(setq number ( - (strlen ans) 2))
(princ (substr ans number 2))
; you need to do some convert to real add 1 then RTOS & strcat etc
谢谢你帮我:)
(setq ans (getstring *^C^Ctext;_m;\;;$M=$(getvar,USERI1);setvar;USERI1;$(+,1,$(getvar,USERI1))))
(setq number ( - (strlen ans) 2))
(princ (substr ans number 2))
我已经将此代码添加到一个按钮中,但当我按下一个标签时,会创建一个新标签,上面写着“0”。
我不熟悉autolisp,所以我想在使用它之前我需要学习更多:)
(setq ans (getstring *^C^Ctext;_m;\;;$M=$(getvar,USERI1);setvar;USERI1;$(+,1,$(getvar,USERI1))))
(princ ans)
这个代码不应该和我点击的标签一样吗?所发生的一切是,当我按下一个标签,一个新的标签说“0”被创建。 我不会在lisp中混合diesel,而是将一切都作为lisp过程,使用ENTSEL可以选择一个对象并检查其文本,然后执行下一步。
(setq en1 (car (entsel "\nSelect first text number:" )))
(setq el1 (entget en1))
(if (= (cdr (assoc 0 el1)) "TEXT")
(progn
(setq ans (cdr (assoc 1 el1)))
(setq number ( - (strlen ans) 1))
(princ (substr ans number 2))
)
)
页:
[1]