면적+길이합이 출력되는 AAL이라는 리습을 사용하고 있습니다.
하지만 제 작업에서 길이 합은 필요하지 않고, 면적과 면적에 높이를 곱한 체적이 필요한데 아무리 구글링해봐도 그런 리습이 보이지 않네요.
대체로 WT라는 체적구하는 리습을 찾아 써봤지만 오류도 뜨고 손이 많이 가네요.
AAL 리습에서 길이합을 구하는 대신에, WT의 리습처럼 높이값을 입력 후 출력할 수 있게 할 수는 없을까요?
*AAL
ㅡ
;면적과 길이를 한번에 출력
;
;
(defun c:aal ( / doc space ss index obj mi mx minpt maxpt inspt area txtobj )
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(cond
((= (vla-get-activespace doc) 1) (setq space (vla-get-modelspace doc)))
((= (vla-get-activespace doc) 0) (setq space (vla-get-paperspace doc)))
)
(if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,*POLYLINE,ELLIPSE,SPLINE”))))
(if (setq ts (getreal “n텍스트 높이 입력:”))
(progn
(setq index 0)
(repeat (sslength ss)
(setq obj (vlax-ename->vla-object (ssname ss index)))
(vla-getboundingbox obj ‘mi ‘mx)
(setq minpt (vlax-safearray->list mi) maxpt (vlax-safearray->list mx))
(setq inspt (polar minpt (angle minpt maxpt) (/ (distance minpt maxpt) 2)))
(setq area (vla-get-area obj) len (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)))
(mapcar ‘(lambda (a b)
(setq p (vlax-3d-point inspt))
(setq txtobj (vla-addtext space (strcat a b) p ts))
(vla-put-alignment txtobj 4)
(vla-put-textalignmentpoint txtobj p)
(setq inspt (polar inspt (/ (* 270 pi) 180) (* ts 2)))
)
‘(“면적(㎡) : ” “길이(m) : “) (list (rtos (/ area 1000000.) 2 2) (rtos len 2 2))
)
(setq index (1+ index))
)
)
)
)
(princ)
)
(vl-load-com)
(prompt “n[ AAA ]”)
(princ)
*WT
ㅡ
;===============================================================
(defun c:wt ()
(setq d (car (entsel “ntRectang을 선택하세요 : “)))
(setq b (getreal “n 객체 높이를 입력하세요 :”))
(command “area” “o” d)
(setq a (/ (getvar “area”) 1000000))
(setq c (* a b))
(princ c)
(setq dd (rtos c 2 1))
(setq ttptt (getvar “textsize”))
(setvar “textsize” ttptt)
(setq ppp (getpoint “n체적 입력될 위치에 Click 하세요 :”))
(command “text” ppp ttptt “” (strcat dd ” m3″))
(princ)
)
제가 원한 것에 완벽하게 들어맞습니다ㅜㅜㅜ 부족한 제 설명에도 도와주셔서 정말 감사합니다..!
이걸 원하신것인지?
앗..정말 그렇게 누르니까 첨부가 되네요. 소중한 댓글 감사드립니다(__)
파일첨부는 파일첨부와 선택삭제 가운데를 교묘하게 눌러야 됩니다 꽤 오래된 문제인데 수정을 안하네요
파일 첨부를 누르면 창이 올라가 버리네요ㅜㅜ 리습을 첨부하지 못해서 정말 죄송합니다