달립니다Lv.0 등록일: 2016-08-282016-08-28T08:33:41+09:00 2016-08-28T08:33:41+09:00카테고리: AutoCAD & CADian 다중면적 여러개의 객체를 클릭했을때 그 면적의 합계를 ‘면적(m2):oo’으로 자동표기하는 리습을 구하고 싶습니다. 질문 게시판을 읽어보고 해도 잘 모르겠네요. 좋은 주말 되세요…. 공유 Facebook 관련 있는 질문들 객체 전체 간격 조정 할수 있을까요? 블록 안에서 블록을 만들 수 있나요? 과거에는 됐었는데 2023부터 안되나요? 캐드 2023 find 명령어가 너무 느립니다. 폴리선 각도에 맞는 문자를 폴리선위에 올리고싶습니다. (관로선형에 위에문자올릴때) 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)
위의 리습을 실행하면 명령창에 면적합계는 나오는데 도면상에 문자 시작점을 찍으라는 말은 없이 그냥 명령이 종료되어 버립니다. 어떤 문구를 수정해야 할까요?