달립니다Lv.0 등록일: 2016-08-282016-08-28T08:33:41+09:00 2016-08-28T08:33:41+09:00카테고리: AutoCAD & CADian 다중면적 여러개의 객체를 클릭했을때 그 면적의 합계를 ‘면적(m2):oo’으로 자동표기하는 리습을 구하고 싶습니다. 질문 게시판을 읽어보고 해도 잘 모르겠네요. 좋은 주말 되세요…. 공유 Facebook 관련 있는 질문들 캐드 파일 (dwg)을 일러스트 파일(AI)파일로 변경이 가능한가요?? 옵션-오른쪽 클릭 사용자화 리습선생님들... 부탁하드려도 될까요? ㅠㅜ 셰션 플롯 로그를 기록하기 위해 열수 없습니다 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)
위의 리습을 실행하면 명령창에 면적합계는 나오는데 도면상에 문자 시작점을 찍으라는 말은 없이 그냥 명령이 종료되어 버립니다. 어떤 문구를 수정해야 할까요?