달립니다Lv.0 등록일: 2016-08-282016-08-28T08:33:41+09:00 2016-08-28T08:33:41+09:00카테고리: AutoCAD & CADian 다중면적 여러개의 객체를 클릭했을때 그 면적의 합계를 ‘면적(m2):oo’으로 자동표기하는 리습을 구하고 싶습니다. 질문 게시판을 읽어보고 해도 잘 모르겠네요. 좋은 주말 되세요…. 공유 Facebook 관련 있는 질문들 도면 복사로 가져올때 치수, 품목list가 변해요 캐드 평면도 표현이게 맞나요? 561개 무료 리습 패키지 공유! XR작업시 0 레이어 일괄 변경 오류 3 답변 작성 순 최신 순 공감 순 달립니다 Lv.0 2016-08-29T16:38:33+09:00답변 등록 답변 등록 일시 2016-08-29 4:38 pm 하이구야님 답변에 감사드립니다. 문제가 시원하게 해결되었습니다. 그런데요, 문자크기를 수정할려면 어떻게 해야 할까요? 한꺼번에 질문 못드려 죄송합니다. 수고하세요……… 우기로기 Lv.0 2016-08-29T14:05:58+09:00답변 등록 답변 등록 일시 2016-08-29 2:05 pm (defun c:as ( / ss index asum e obj tmparea msp spt txtobj ) (if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,LWPOLYLINE,ELLIPSE,SPLINE”)))) (progn (setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))) (setq index 0 asum 0) (repeat (sslength ss) (setq e (ssname ss index)) (setq obj (vlax-ename->vla-object e)) (setq tmparea (vla-get-area obj)) (setq asum (+ asum tmparea)) (setq index (1+ index)) ) (prompt (strcat “n총 면적 = ” (rtos (/ asum 1000000.) 2 2)));(setq slen (strlen #a)) ;(if (< 3 slen) ; (setq #b (strcat (substr #a 1 (- slen 3))”,”(substr #a (- slen 2)))) 😉 (initget 1) (setq spt (getpoint “n문자시작점: “)) (setq txtobj (vla-addtext msp (strcat “면적(m²) : ” (rtos (/ asum 1000000.) 2 2)) (vlax-3d-point spt) (getvar “textsize”))) ) ) (princ))(vl-load-com)(prompt “n[ ASUM ]”)(princ) 달립니다 Lv.0 2016-08-29T08:23:46+09:00답변 등록 답변 등록 일시 2016-08-29 8:23 am (defun c:as ( / ss index asum e obj tmparea msp spt txtobj ) (if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,LWPOLYLINE,ELLIPSE,SPLINE”)))) (progn (setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))) (setq index 0 asum 0) (repeat (sslength ss) (setq e (ssname ss index)) (setq obj (vlax-ename->vla-object e)) (setq tmparea (vla-get-area obj)) (setq asum (+ asum tmparea)) (setq index (1+ index)) ) (prompt (strcat “n총 면적 = ” (rtos (/ asum 1000000.) 2 2)))(setq slen (strlen #a)) (if (< 3 slen) (setq #b (strcat (substr #a 1 (- slen 3))”,”(substr #a (- slen 2)))) ) (initget 1) (setq spt (getpoint “n문자시작점: “)) (setq txtobj (vla-addtext msp (strcat “면적(m²) : ” (rtos (/ asum 1000000.) 2 2)) (vlax-3d-point spt) (getvar “textsize”))) ) ) (princ))(vl-load-com)(prompt “n[ ASUM ]”)(princ) 위의 리습을 실행하면 명령창에 면적합계는 나오는데 도면상에 문자 시작점을 찍으라는 말은 없이 그냥 명령이 종료되어 버립니다. 어떤 문구를 수정해야 할까요?
하이구야님 답변에 감사드립니다. 문제가 시원하게 해결되었습니다. 그런데요, 문자크기를 수정할려면 어떻게 해야 할까요? 한꺼번에 질문 못드려 죄송합니다. 수고하세요………
(defun c:as ( / ss index asum e obj tmparea msp spt txtobj )
(if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,LWPOLYLINE,ELLIPSE,SPLINE”))))
(progn
(setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq index 0 asum 0)
(repeat (sslength ss)
(setq e (ssname ss index))
(setq obj (vlax-ename->vla-object e))
(setq tmparea (vla-get-area obj))
(setq asum (+ asum tmparea))
(setq index (1+ index))
)
(prompt (strcat “n총 면적 = ” (rtos (/ asum 1000000.) 2 2)))
;(setq slen (strlen #a))
;(if (< 3 slen)
; (setq #b (strcat (substr #a 1 (- slen 3))”,”(substr #a (- slen 2))))
😉
(initget 1)
(setq spt (getpoint “n문자시작점: “))
(setq txtobj (vla-addtext msp (strcat “면적(m²) : ” (rtos (/ asum 1000000.) 2 2)) (vlax-3d-point spt) (getvar “textsize”)))
)
)
(princ)
)
(vl-load-com)
(prompt “n[ ASUM ]”)
(princ)
(defun c:as ( / ss index asum e obj tmparea msp spt txtobj )
(if (setq ss (ssget (list (cons 0 “CIRCLE,ARC,LWPOLYLINE,ELLIPSE,SPLINE”))))
(progn
(setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq index 0 asum 0)
(repeat (sslength ss)
(setq e (ssname ss index))
(setq obj (vlax-ename->vla-object e))
(setq tmparea (vla-get-area obj))
(setq asum (+ asum tmparea))
(setq index (1+ index))
)
(prompt (strcat “n총 면적 = ” (rtos (/ asum 1000000.) 2 2)))
(setq slen (strlen #a))
(if (< 3 slen)
(setq #b (strcat (substr #a 1 (- slen 3))”,”(substr #a (- slen 2))))
)
(initget 1)
(setq spt (getpoint “n문자시작점: “))
(setq txtobj (vla-addtext msp (strcat “면적(m²) : ” (rtos (/ asum 1000000.) 2 2)) (vlax-3d-point spt) (getvar “textsize”)))
)
)
(princ)
)
(vl-load-com)
(prompt “n[ ASUM ]”)
(princ)
위의 리습을 실행하면 명령창에 면적합계는 나오는데 도면상에 문자 시작점을 찍으라는 말은 없이 그냥 명령이 종료되어 버립니다. 어떤 문구를 수정해야 할까요?