LISP routine that auto labels with numbers

LISP routine that auto labels with numbers

j_bishopM9NWD
Explorer Explorer
630 Views
6 Replies
Message 1 of 7

LISP routine that auto labels with numbers

j_bishopM9NWD
Explorer
Explorer

Can someone please help with editing this LISP routine? It works perfectly, I just need it to switch from letters to numbers.

 

(defun c:rollid ( / flg schr ss obj t_pre to)
;; increments dimension prefix text letters A,B->Z; AA,BB->..ZZ; AAA,BBB->..ZZZ

(vl-load-com)

(or *pnum* (setq *pnum* 65))
(or *plst* (setq *plst* (list 65)))

(setq flg T)

(while (not schr)
(setq schr (getstring (strcat "\nEnter Start Letter(s) : <" (vl-list->string *plst*) "> ")))
(cond ( (not schr) (setq schr T))
( (< 0 (strlen schr) 100) (setq *plst* (vl-string->list (strcase schr))))
( (> (strlen schr) 100) (alert "You Have Entered More Than 3 Letters") (setq schr nil))
);end_cond
);end_while


(setq *pnum* (last *plst*))

(while flg
(prompt "Select Dimension : ")
(setq ss (ssget "_+.:E:S:L" '((0 . "DIMENSION"))))
(cond (ss
(setq obj (vlax-ename->vla-object (ssname ss 0))
t_pre (vlax-get obj 'textprefix)
);end_setq
(if (> (vl-string-search "SPLITS" t_pre) 0)
(setq t_pre (strcat "ROLL '" (vl-list->string *plst*) "' (SPLITS) - "))
(setq t_pre (strcat "ROLL '" (vl-list->string *plst*) "' - "))
);end_if
(if (/= (setq to (vlax-get obj 'textoverride)) "") (vlax-put obj 'textoverride (strcat t_pre to)) (vlax-put obj 'textprefix t_pre))
(setq *pnum* (1+ *pnum*))
(cond ( (< 64 *pnum* 91)
(cond ( (<= (length *plst*) 1) (setq *plst* (list *pnum*)))
( (= (length *plst*) 2) (setq *plst* (list *pnum* *pnum*)))
( (= (length *plst*) 3) (setq *plst* (list *pnum* *pnum* *pnum*)))
);end_cond
)
( (> *pnum* 90)
(setq *pnum* 65)
(cond ( (= (length *plst*) 1) (setq *plst* (list *pnum* *pnum*)))
( (= (length *plst*) 2) (setq *plst* (list *pnum* *pnum* *pnum*)))
( (= (length *plst*) 3) (setq flg nil *plst* (list *pnum*)))
);end_cond
)
);end_cond
)
(t (setq flg nil))
);end_cond
);end_while
(princ)
);end_defun

0 Likes
Accepted solutions (2)
631 Views
6 Replies
Replies (6)
Message 2 of 7

paullimapa
Mentor
Mentor

try this revised version ROLLID#.lsp

; rollid#
;; increments dimension prefix text numbers 1,2,->###
; OP:
; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-routine-that-auto-labels-with-numbers/m-p/12745851#M465315
(defun c:rollid# ( / flg schr ss obj t_pre to)

(vl-load-com)

(or **pnum** (setq **pnum** 1)) ; initialize starting # greater than 0

(setq flg T) ; initialize selection loop

(while (not schr)
(setq schr (getint (strcat "\nEnter Start Number Greater Than Zero: <" (itoa **pnum**) "> ")))
(cond ( (not schr) (setq schr (itoa **pnum**))) ; enter = use default
( (> schr 0) (setq **pnum** schr schr (itoa schr))) ; chk make sure is greater than zero
( t (alert "You Have to Enter a Positive Number") (setq schr nil)) ; re-enter if not greater than zero
);end_cond
);end_while

(while flg
 (prompt "Select Dimension : ")
 (setq ss (ssget "_+.:E:S:L" '((0 . "DIMENSION"))))
 (cond 
  (ss
   (setq obj (vlax-ename->vla-object (ssname ss 0))
       t_pre (vlax-get obj 'textprefix)
   );end_setq
   (if (> (vl-string-search "SPLITS" t_pre) 0)
    (setq t_pre (strcat "ROLL '" schr "' (SPLITS) - "))
    (setq t_pre (strcat "ROLL '" schr "' - "))
   );end_if
   (if (/= (setq to (vlax-get obj 'textoverride)) "") (vlax-put obj 'textoverride (strcat t_pre to)) (vlax-put obj 'textprefix t_pre))
    (setq schr (itoa (setq **pnum** (1+ (atoi schr)))) ; increment to next #
   )
  )
  (t (setq flg nil)(alert"No Dimension String Selected...Exiting."))
 );end_cond
);end_while
(princ)
);end_defun

 


Paul Li
IT Specialist
@The Office
Apps & Publications | Video Demos
0 Likes
Message 3 of 7

tracybrown
Participant
Participant

Give this lisp a try

0 Likes
Message 4 of 7

paullimapa
Mentor
Mentor

I assume this is for @j_bishopM9NWD OP?


Paul Li
IT Specialist
@The Office
Apps & Publications | Video Demos
0 Likes
Message 5 of 7

j_bishopM9NWD
Explorer
Explorer
Accepted solution

Thanks! This works perfectly!

0 Likes
Message 6 of 7

paullimapa
Mentor
Mentor
Accepted solution

Glad that worked out for you…cheers!!!


Paul Li
IT Specialist
@The Office
Apps & Publications | Video Demos
0 Likes
Message 7 of 7

tracybrown
Participant
Participant

sorry about that