면적 리습 수정 //급// 도와주세요
컨텐츠 정보
- 210 조회
- 3 댓글
- 0 추천
- 0 비추천
-
목록
본문
제가 정말정말 좋아하고 잘쓰던 리습인데 2008에서 캐드 버젼업하고나서부터는
객체 선택:
*유효하지 않은 선택*
점을 예상하거나 또는 최종(L)
; 오류: 함수가 취소되었습니다.
이렇게 에러만 납니다 ㅠㅠ
리습 수정 가능하신 능력자분 도와주세요~~~ 제발 ㅠ
내용도 올리고 파일도 첨부해두겠습니다(_ _)
(defun c:ac( / ss ssl i en ent i xy_list sxy sp gp k Larea ep ldist mp)
(command "undo" "g")
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq ss (ssget '((0 . "lw*")))
ssl (if ss (sslength ss) 0)
i 0
)
(while (> ssl i)
(setq en (ssname ss i)
ent (entget en)
i (1+ i)
xy_list nil
sxy (cdr (assoc 10 ent))
sp sxy gp sp
)
(foreach k ent
(if (= (car k) 10)
(setq xy_list (append xy_list (list (cdr k))))
)
)
(if (null (equal sp (last xy_list)))
(setq xy_list (append xy_list (list sp)))
)
(setq Larea (surface_area xy_list))
(foreach ep (cdr xy_list)
(setq ldist (distance sp ep)
mp (polar sp (angle sp ep) (/ ldist 2))
gp (polar gp (angle sxy mp) (* (distance sxy mp) (/ (surface_area (list sxy sp ep)) Larea)))
sp ep
)
)
(setq gp (polar sxy (angle sxy gp) (* (distance sxy gp) (/ 2 3.))))
(xaa gp)
)
(setvar "osmode" os)
(command "undo" "e")
(princ)
)
(defun xAA (pt1 / a1 a2 py1)
(command "LAYER" "m" "AC" "c" "3″ "" "" "AREA" "")
(command "BPOLY" pt1 "")
(setq a1 (command "AREA" "E" "l"))
(setq a2 (getvar "area"))
(setq py (/ (/ a2) 1000000))
(setq py1 (rtos py 2 2))
(command "ERASE" "l" "")
(command "TEXT" "j" "mc" pt1 "" "" py1)
(command "LAYER" "m" "7″ "c" "7″ "" "")
)
(defun surface_area(alist / i ssl hab alist)
(setq i 0
ssl (length alist)
hab 0
)
(if (not (equal (car alist) (last alist)))
(setq alist (append alist (list (car alist)))
ssl (1+ ssl)
)
)
(while (> ssl (1+ i))
(setq hab (+ hab (- (* (car (nth i alist)) (cadr (nth (1+ i) alist)))
(* (car (nth (1+ i) alist)) (cadr (nth i alist)))
) )
i (1+ i)
)
)
(setq hap (+ hab (- (* (car (last alist)) (cadr (car alist)))
(* (car (car alist)) (cadr (last alist)))
) )
hap (/ hap 2.0)
)
)
(princ "실행 명령어 midtextn")
(princ)