;; 문장 안에 있는 마지막 숫자만 무조건 1 증가; 1감소
;; AFC.1 을 'np' 명령으로 선택하면 AFC.2; 'nm' 명령으로 선택하면 AFC.0으로 수정.
;; 날짜를 2025 .09. 04 를 선택하면 2025. 09. 05 또는 03 으로 수정함.
;; 숫자가 중간에 있어도 가능 "평면도(3)" → "평면도(4)" | "평면도(2)"
;; 주의) 9 증가는 10 이 아니고 0 입니다; 0 감소는 -1 이 아니고 9 입니다.
;; +- 1 The Last Numer
(defun KM:POSASC ( _STR _N / str asc )
(setq str _STR n _N)
(setq asc (ascii (substr str n 1)))
)
(defun KM:getNUM ( / )
(setq strdxf (entget (car (entsel))))
(setq str (cdr (assoc 1 strdxf)))
(setq len (strlen str))
(setq _STR str pos len)
)
(defun KM:LASTUPd ( _opt / )
(KM:getNUM)
(setq op _opt)
(setq asc 58)
(while (not (< 47 asc 58))
(setq asc (KM:POSASC _STR pos))
(setq pos (1- pos))
)
(setq strL (substr str 1 pos))
(setq strN (substr str (+ pos 1) 1))
(setq strR (substr str (+ pos 2)))
(cond
((= op "+")
(if (= asc 57)
(setq strN "0")
(setq strN (chr (+ (ascii strN) 1)))
))
((= op "-")
(if (= asc 48)
(setq strN "9")
(setq strN (chr (- (ascii strN) 1)))
))
)
(setq Nstr (strcat strL strN strR))
)
(defun KM:LAUPd ( _opr / )
(setq opr _opr)
(setq Nstr (KM:LASTUPd opr))
(setq NewTXT (subst (cons 1 Nstr) (assoc 1 strdxf) strdxf))
(entmod NewTXT)
(princ)
)
(defun c:np ( / ) ; number +
(KM:LAUPd "+")
)
(defun c:nm ( / ) ; number -
(KM:LAUPd "-")
)
반응형
'autocad' 카테고리의 다른 글
| 선택한 것들 bylayer 색상, '0' 레이어로 변경 (SUBST multi CONS) (0) | 2025.09.09 |
|---|---|
| radian (0) | 2025.09.08 |
| 대소문자 바꾸기 (0) | 2025.09.03 |
| Find Centroid of reg.Triangle (0) | 2025.09.02 |
| 엔티티 수정; Modify entity(entmod) (0) | 2025.08.26 |