프로그램
캐드 분류

면적 한번에 찍는 리습인데요~

컨텐츠 정보

  • 140 조회
  • 2 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

(defun c:aaa ( / doc space ss index obj mi mx minpt maxpt inspt area txtobj )
 (setvar "cmdecho" 0)
  (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,LINE,ELLIPSE,SPLINE"))))
    (if (or (setq ts (getreal (strcat "n텍스트 높이 입력 <" (vl-princ-to-string (getvar "textsize")) ">:"))) (setq ts (getvar "textsize")))
      (progn
  (setvar "textsize" ts)
 (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 inspt (list (car inspt) (+ (cadr inspt) (* ts 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)))
       )
  
   '("") (list (rtos (/ area 1000000.) 2 3) (rtos len 2 2))
 )       
   
   (setq index (1+ index))
   )
 (command "chprop" (ssget "x" '((0 . "TEXT") (1 . "평*"))) "" "c" "7″ "")
 )
      )
    )
  (princ)
  )
(vl-load-com)
(prompt "n[ AAA ]")
(princ)

현재 사용중인 면적 리습입니다. 소수점 3째짜리로 나오는데 2째자리까지 나오게 하고싶습니다.
소수점 관련해서 수정을 해보았는데, 바뀌질 않네요..ㅠ 어디를 바까야하나요?
도와주세요ㅜ!

관련자료

댓글 2 / 1 페이지
전체 6,983 / 1 페이지
번호
제목
이름

최근글


새댓글


알림 0