iDwgLsp 프로그램을 설치하면 구글 블로거에 등록된 리습코드를 구동 시켜주는 기능을 지원합니다. - 다운로드 사이트 : http://arx119.egloos.com/10973367 - 지원버전 오토캐드 (2007~2013)
2012년 12월 25일 화요일
[LISP-GSJ] FuncList.lsp (포스트아이디 : 2104168976269955871)
;;=========================================================================================================
;;=========================================================================================================
;;=========================================================================================================
(defun C:FuncList()
(princ "\FuncList")
(princ)
)
;;=========================================================================================================
;;=========================================================================================================
;; 리스트내 중복 지우기
;;=========================================================================================================
(defun Func_RemoveItem(dORGList / dORGList dRTNList dItem)
(foreach dItem dORGList
(if (null (member dItem dRTNList))
(setq dRTNList (append dRTNList (list dItem)))
)
)
dRTNList
)
;;=========================================================================================================
;;=========================================================================================================
;; 삭제할 위치의 Index 번호와 List를 전달하면 인덱스 번호에 해당하는 요소가 삭제된 List를 리턴한다.
;; (setq TestList (list 1 2 3 4 5 6 7 8 9 0))
;; (setq TestList (RemoveNTH 2 TestList)) -> TestList = (1 2 4 5 6 7 8 9 0)
;;=========================================================================================================
(defun Func_RemoveNTH(lIndex lList / lIndex lList lCHNum x)
(setq lCHNum -1)
(apply 'append (mapcar '(lambda (x) (if (/= (setq lCHNum (1+ lCHNum)) lIndex) (list x))) lList))
)
;;=========================================================================================================
;;=========================================================================================================
;; 변경될 위치의 Index 번호와 List, 새로운 요소를 전달하면 인덱스 번호에 해당하는 요소가 변경된 List를 리턴한다.
;; (SwitchNTH [Index 번호] [변경할 List] [새로운 요소])
;; (setq TestList (list 1 2 3 4 5 6 7 8 9 0))
;; (setq TestList (SwitchNTH 0 TestList "TEST")) -> TestList = ("TEST" 2 4 5 6 7 8 9 0)
;;=========================================================================================================
(defun Func_SwitchNTH(lIndex lList lData / lIndex lList lData lCHNum x)
(setq lCHNum -1)
(apply 'append (mapcar '(lambda (x) (if (= (setq lCHNum (1+ lCHNum)) lIndex) (list lData) (list x))) lList))
)
;;=========================================================================================================
;;=========================================================================================================
;; List 내의 최대 확장 Box구하기
;;=========================================================================================================
(defun Func_GetExtent(dPTList / dPTList dMaxX dMaxY dMinX dMinY dAtom)
(setq dMaxX (caar dPTList))
(setq dMaxY (cadar dPTList))
(setq dMinX dMaxX )
(setq dMinY dMaxY)
(foreach dAtom (cdr dPTList)
(setq dMaxX (max dMaxX (car dAtom)))
(setq dMaxY (max dMaxY (cadr dAtom)))
(setq dMinX (min dMinX (car dAtom)))
(setq dMinY (min dMinY (cadr dAtom)))
)
(list (list dMinX dMinY) (list dMaxX dMaxY))
)
;;=========================================================================================================
;;=========================================================================================================
;; 숫자로 이루어진 List에서 가장 길이가 긴 요소의 길이를 리턴한다.
;; (Func_MaxLengthNumberList 리스트 소수점자릿수)
;; (Func_MaxLengthNumberList (list 12 15.4 10.74 11) 3)
;;=========================================================================================================
(defun Func_MaxLengthNumberList(dNumberList dPlacesFlag / dNumberList dPlacesFlag dMaxLength ) ;; 리스트, 소수점 자리수
(setq dMaxLength 0)
(repeat (length dNumberList)
(if (< dMaxLength (strlen (rtos (car dNumberList) 2 dPlacesFlag)))
(setq dMaxLength (strlen (rtos (car dNumberList) 2 dPlacesFlag)))
)
(setq dNumberList (cdr dNumberList))
)
dMaxLength
)
;;=========================================================================================================
;;=========================================================================================================
;; String 으로 이루어진 List에서 가장 길이가 긴 String의 길이를 리턴한다.
;;=========================================================================================================
(defun Func_MaxLengthStringList(dStringList / dStringList dMaxLength )
(setq dMaxLength 0)
(repeat (length dStringList)
(if (< dMaxLength (strlen (car dStringList)))
(setq dMaxLength (strlen (car dStringList)))
)
(setq dStringList (cdr dStringList))
)
dMaxLength
)
;;=========================================================================================================
;;=========================================================================================================
;; List를 전달받아 모두 합한 수를 반환한다.
;;=========================================================================================================
(defun Func_ListSum(lList / lList lListSum)
(setq lListSum 0.0)
(repeat (length lList)
(setq lListSum (+ lListSum (car lList)))
(setq lList (cdr lList))
)
lListSum
)
;;=========================================================================================================
;;=========================================================================================================
;;=========================================================================================================
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기
즐거운 하루되세요...^^