(defun c:AD (/ z ss sno no tno sum x entity etype num h pt)
(setvar “cmdecho” 0)
(prompt “nSelect Text: “)
(setq ss (ssget))
(setq sno (sslength ss))
(setq no 0)
(setq sum 0.0)
(setq tno 0)
(repeat sno
(setq x (ssname ss no))
(setq etype (cdr (assoc 0 (entget x))))
(if (= etype “TEXT”)
(progn
(setq entity (entget x))
(setq num (cdr (assoc 1 entity)))
(setq num (atof num))
(setq sum (+ sum num))
(setq tno (1+ tno))
)
)
(setq no (1+ no))
)
(setq tno (itoa tno))
(setq sum (rtos sum 2 3))
(princ “nAdding “)
(princ tno)
(princ ” nTexts: “)
(princ “nThe Result is: “)
(princ sum)
(princ ” “)
(princ “nDo You Want Write it into the DWG? <y> “)
(setq z (strcase (getstring)))
(if (or (= z “”) (= z “Y”))
(progn
(setq pt (getpoint “nText Point: “))
(setq h (getvar “textsize”))
(prompt “nText Height: “)
(princ H)
(princ ” : “)
(setq z (getdist))
(if z
(setq h z)
)
(command “text”
(setq z pt)
(setq z h)
(setq z 0.0)
(setq z sum)
)
)
)
(setvar “cmdecho” 1)
(setvar “blipmode” 1)
(prin1))
지금은 숫자 더하고 글자 크기 선택하여 도면에 입력 하는 건데
이 리습을 도면에 글자 입력 하는거 다 빼고
숫자 더한 그 값을 내가 선택한 문자에(기존에 있던) 입력되게 수정가능할까요?ㅜ.ㅜ
(defun c:AD (/ %ssget %count %total %entname %num %sum_text %sum_entget %sum_entget1)
(setvar “cmdecho” 0)
(prompt “nSelect Text: “)
(setq %ssget (ssget ‘((0 . “TEXT”))))
(setq %count 0
%total 0
)
(repeat (sslength %ssget)
(setq %entname (ssname %ssget %count)
%entget (entget %entname)
%num (atof (cdr (assoc 1 %entget)))
%total (+ %total %num)
%count (1+ %count)
)
)
(setq %sum_text (car (entsel “n찌거봐~~ “))
%sum_entget (entget %sum_text)
%sum_entget1 (subst (cons 1 (rtos %total 2 4)) (assoc 1 %sum_entget) %sum_entget)
)
(entmod %sum_entget1)
(princ)
)
답변 감사합니다. 근데 작동을 안하네요ㅜ