본문 바로가기
autocad

숫자에 콤마 ',' 넣기 빼기

by kmlab 2025. 1. 10.

 

예전에 만들어 놓은 콤마 넣기 빼기만 따로 꺼냈습니다.

 

KMSTART.lsp

;;; ;=============copy string================= (defun c:tc (/ txt1 msg txt_lst) (setq txt1 (cdr (assoc 1 (entget (car (entsel "\n>>> Select Source Text: ")))))) (setq msg (strcat "\n >>Select Target Text: [" (print txt1) "]:")) (setq txt_lst (entget (car (

kmlab.tistory.com

 

(defun KM:IC ( txt_lst / str); Insert Comma 
(setq str (cdr (assoc 1 txt_lst))) 
(setq DecimalLength (strlen str)) 
(setq DecimalPoint (vl-string-search "." str)) 
(if (= DecimalPoint nil) 
(setq DecimalPoint DecimalLength) 
);if 
(setq FirstCommaLocation (rem DecimalPoint 3)) 
(setq CountComma (/ (- DecimalPoint 1) 3)) 
(if (= FirstCommaLocation 0) 
(setq FirstCommaLocation 3) 
);if 
(setq n 0) 
;(setq NumberComma "") 
(setq NumberComma (substr str 1 FirstCommaLocation)) 
(repeat CountComma 
(setq SplitNumber(substr str (+ 1 FirstCommaLocation (* 3 n)) 3)) 
(setq NumberComma (strcat NumberComma "," SplitNumber)) 
(setq n (+ 1 n)) 
);repeat 
(setq NumberComma (strcat NumberComma (substr str (+ 1 DecimalPoint)))) 
(setq DxfNumberComma (cons 1 NumberComma)) 
(entmod (subst DxfNumberComma (assoc 1 txt_lst) txt_lst)) 
(princ) 
);defun 

(defun KM:RC ( txt_lst / str); Remove Comma 
(setq str (cdr (assoc 1 txt_lst))) 
(setq NumberCommaRem str) 
(repeat (strlen str) 
(setq NumberCommaRem (vl-string-subst "" "," NumberCommaRem)) 
); 
(setq DxfNumberCommaRem (cons 1 NumberCommaRem)) 
(entmod (subst DxfNumberCommaRem (assoc 1 txt_lst) txt_lst)) 
(princ) 
);defun 

(defun c:,,() 
(setq txt_lst (KM:GETSTR)) 
(setq str (cdr (assoc 1 txt_lst))) 
(if (= nil (vl-string-search "," str)) 
(KM:IC txt_lst) 
(KM:RC txt_lst) 
);if 
);defun

',,' 명령만으로 콤마가 있다면 빼주고, 없다면 천단위마다 넣어 줌. 히히

만든 이유는 연산할 때 콤마가 있으면 에러 납니다.
연산할 땐 뺐다가 연산이 완료된 후, 보기 좋게 천단위로 콤마를 넣을 수 있습니다.

문제점. 숫자든 문자든 무조건 실행함.

반응형

'autocad' 카테고리의 다른 글

블럭삽입 오토스크립트  (0) 2025.01.13
Duplicate block in acad  (0) 2025.01.13
Pdf 출력 후 문자 주위로 상자 보이는 문제  (0) 2025.01.10
간단하게 리스트 내 요소들을 연산  (0) 2024.12.19
문자 연결하기  (0) 2024.12.18