어이상실 이렇게 간단할 수가~~~ 텍스트 선택으로 연산 가능 ^^
https://www.cadtutor.net/forum/topic/70076-sum-all-element-of-list/
sum all element of list
Hello every one I have a list like this (5 3 2 1 0) I want sum all I mean 5+3+2+1+0=11 Thanks all
www.cadtutor.net
(apply '+ lst)
더하기만 됨. 곱하기는 찾아봐야 함...
정말 간단하게 잘 됨^^
(apply '*lst)
곱하기도 잘 됨 ^^
다음은 LEE MAC 님의 문자열에서 숫자를 찾아 리스트로 만드는 함수입니다.
문자열을 파싱해서 0~9, 스페이스 아스키코드로 찾아서 변환합니다. (대단)
(defun LM:parsenumbers ( str )
( (lambda ( l )
(read
(strcat "("
(vl-list->string
(mapcar
'(lambda ( a b c )
(if (or (< 47 b 58) ;; ascii code char(48)="0";; char(57)="9"
(and (= 45 b) (< 47 c 58) (not (< 47 a 58)))
(and (= 46 b) (< 47 a 58) (< 47 c 58))
)
b 32 ;; ascii code char(32)=(space bar)
)
)
(cons nil l) l (append (cdr l) '(()))
)
)
")"
)
)
)
(vl-string->list str)
) )
(defun c:tt (/ txt str lis)
(setq txt (vla-get-TextString (vlax-ename->vla-object (car (entsel)))));; get string
(setq str (LM:parsenumbers txt));; get numbers
(defun KM:sum (lis) (apply '+ lis));; adding
(propmt "+ ") (princ str) (prompt " = ") (KM:sum str);; print result
)
(defun c:xx (/ txt str lis)
(setq txt (vla-get-TextString (vlax-ename->vla-object (car (entsel)))));; get string
(setq str (LM:parsenumbers txt));; get numbers
(defun KM:mul (lis) (apply '* lis));; multiplying
(propmt "x ") (princ str) (prompt " = ") (KM: mul str);; print result
)
'autocad' 카테고리의 다른 글
숫자에 콤마 ',' 넣기 빼기 (0) | 2025.01.10 |
---|---|
Pdf 출력 후 문자 주위로 상자 보이는 문제 (0) | 2025.01.10 |
문자 연결하기 (0) | 2024.12.18 |
Parse Numbers; Get string from *TEXT (0) | 2024.12.13 |
따옴표를 리습 함수에서 사용하기 (2) | 2024.09.26 |