프로그램
캐드 분류

면적 리습 수정 부탁드립니다 ㅜㅜ

컨텐츠 정보

본문

(defun c:sea (/ sel np cp ar)

(vl-load-com)

(setq sel (mapcar ‘vlax-ename->vla-object (vl-remove-if ‘listp (mapcar ‘cadr (ssnamex (ssget ‘((0 . “hatch”))))))))

;; 텍스트 크기를 고정으로 하고싶으면 여기부터

(if (not ts)

(setq ts 10))

(setq np (getdist (strcat “n 문자높이 지정 [” (vl-princ-to-string ts) “]:”)))

(if (= np nil)

(setq np ts)

(setq ts (rtos np 2 1)))

;;여기까지 주석처리….

(foreach x sel

(vla-getboundingbox x ‘p1 ‘p2)

(setq cp (mapcar ‘(lambda (a b) (/ (+ a b) 2)) (vlax-safearray->list p1) (vlax-safearray->list p2))

ar (vl-princ-to-string (rtos(vlax-get x ‘area) 2 2)))

(entmakex (list (cons 0 “TEXT”)

(cons 100 “AcDbEntity”)

(cons 100 “AcDbText”)

(cons 6 “Continuous”)

(cons 10 cp)

(cons 40 (* (atof ts) (getvar ‘ltscale)));;(atof ts)를 텍스트 크기로 바꿔주면 됩니다.

(cons 1 ar)

(cons 62 1)

(cons 72 1)

(cons 73 2)

(cons 11 cp))))

(princ)

)

;;여기까지 주석처리…. ar (vl-princ-to-string (rtos(* (vlax-get x ‘area) 0.000001) 2 2))) 1000배튀겨질떄
ar (vl-princ-to-string (rtos(vlax-get x ‘area) 2 2))) 일반 도면

해치면적을 그대로 나타내주는리습인데
문자가 지금 해치 가운데에만 나오는데 제가 점을 지정하고싶습니다
부탁드리겠습니다.

관련자료

댓글 2 / 1 페이지

수야12님의 댓글

(setq cp (mapcar ‘(lambda (a b) (/ (+ a b) 2)) (vlax-safearray->list p1) (vlax-safearray->list p2))

이부분을 지워버리시고 그 위치에 (setq cp(getpoint “nSpecify Text point:”)) 이문자 넣으시면 되는데 다중 선택했을때 일일이 문자위치를 지정하는 상황이 이해가 안되네요

전체 82 / 1 페이지
RSS
번호
제목
이름

최근글


새댓글


알림 0