我有一个很好的lisp,它可以对现有文本或具有属性的块按顺序编号/字母。我不太精通Lisp程序。我想知道是否有人可以修改这个lisp来处理带有文本的多重引线,更重要的是,使用包含属性的块的多重引线。或者可能已经有一个Lisp程序的存在?
提前谢谢,
(我不知道这个Lisp程序是从哪里来的,也不知道是谁写的)。
以下是lisp代码:
- ; SEQ.LSP Sequential text
- ;;Automatic Sequential Numbering and Lettering
- (defun *ERROR* (MSG)
- (princ MSG)
- (princ "\nFunction cancelled")
- (princ)
- )
- (defun SQN ()
- (princ "\n")
- (princ SEQ)
- (setq ENT (entget (car (nentsel "\n - Select Text to Number"))))
- (while ENT
- (if (or (= (cdr (assoc 0 ENT)) "TEXT")
- (= (cdr (assoc 0 ENT)) "ATTRIB"))
- (progn
- (entmod
- (subst (cons 1 SEQ) (assoc 1 ENT) ENT)
- )
- (entupd (cdr (car ENT)))
- (setq SEQ (itoa (1+ (read SEQ))))
- )
- (princ "\nEntity Must be TEXT")
- )
- (princ "\n")
- (princ SEQ)
- (setq ENT (entget (car (nentsel " - Select Text: "))))
- (setq *SEQ (itoa (1+ (read SEQ))))
- )
- )
- (defun SQL ()
- (princ "\n")
- (princ SEQ)
- (setq ENT (entget (car (nentsel "\nSelect Text to Letter"))))
- (while ENT
- (if (or (= (cdr (assoc 0 ENT)) "TEXT")
- (= (cdr (assoc 0 ENT)) "ATTRIB"))
- (progn
- (entmod
- (subst (cons 1 SEQ) (assoc 1 ENT) ENT)
- )
- (entupd (cdr (car ENT)))
- (setq SEQ (chr (1+ (ascii SEQ))))
- )
- (princ "\nEntity Must be TEXT")
- )
- (princ "\n")
- (princ SEQ)
- (setq ENT (entget (car (nentsel " - Select Text: "))))
- (setq *SEQ (chr (1+ (ascii SEQ))))
- )
- )
- (defun C:SEQ (/ SEQ ENT)
- (if (not *SEQ)
- (setq *SEQ "1")
- )
- (princ (strcat "\nStarting Letter or Number <" *SEQ "> :"))
- (setq SEQ (getstring))
- (if (not (read SEQ))
- (setq SEQ *SEQ)
- (setq *SEQ SEQ)
- )
- (setq NUM (numberp (read SEQ)))
- (setvar "cmdecho" 0)
- (graphscr)
- (if (not NUM)
- (SQL)
- (SQN)
- )
- (setvar "cmdecho" 1)
- (princ)
- )
|