본문 바로가기

AutoCAD/Lisp Subroutine 3

two-element array of doubles 과 three-element array of doubles . 어제 작업중 분명히 좌표가 Variant값인데 오류가 발생하여 한참을 고민하였습니다. 나중에 알고보니 double 2-요소 배열과 double 3-요소 배열의 차이때문에 오류가 ㅎㅎㅎ 그래서 그냥 서브루틴을 만든것을 올립니다. Variant도 다 같은 Variant이 아닌라는 것을 참조하세요^^ (defun TwoElementArray (VariantPt / ListPt) (setq ListPt (trans (vlax-safearray->list VariantPt) 0 3)) (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble '(0 . 1)) (list (car ListPt) (cadr ListPt)) ) ) ) (def.. 2012. 8. 16.
삼각함수 The Well 중에서 acad.lsp에서 발췌하였습니다. 자주 사용하지는 않지만 필요하신분들이 계실것 같아서 올립니다^^ ;TANGENT FUNCTION (defun Tan (x) (cond ((= (cos x) 0.0)(if (minusp x) -1.0E200 1.0E200)) (t (/ (sin x) (cos x))) ) ) ;SECANT FUNCTION (defun Sec (x) (if (= (cos x) 0) (if (minusp x) -1.0E200 1.0E200) (/ 1.0 (cos x)) ) ) ;;COSECANT FUNCTION (defun CoSec (x) (if (= (sin x) 0) (if (minusp x) -1.0E200 1.0E200) (/ 1.0 (sin x)) ) ) ;.. 2012. 8. 16.
리스트 관련 서브함수 ;; ───── 리스트 내부의 중복되는 요소삭제 ;; (Sub_OverlapLispDel (list 0 1 3 2 2 3 1 4 5)) ;; (0 2 3 1 4 5) (defun Sub_OverlapLispDel (InList / ExList) (foreach item InList (if (not (member item ExList)) (setq ExList (cons item ExList)) ) ) (reverse ExList) ) ;; ───── 2개의 리스트를 비교하는 중복되는 요소삭제 ;; (Sub_MinusList (list 0 1 2 3 4 5)(list 0 2 4)) ;; (1 3 5) (defun Sub_MinusList (AList BList / ExList) (setq ExList ni.. 2011. 12. 31.