프로그램
리습 분류

리습 수정 문의 드립니다. QA리습_평,면적(m2),길이(mm)

컨텐츠 정보

본문

안녕하세요 


오토캐드cad 리습lisp 관련 문의 및 요청 드립니다.

리습을 활용해서 물량산출 하다보니 조금더 편하게 할수 있는 방법을 찾아봤지만

없어서 고수님들의 도움을 받고자 이렇게 글을 올리게 되었습니다.

QA라는 리습_평,면적(m2),길이(mm)

이 리습을 바닥면적(m2), 벽체면적(m2), 길이(m)로 바꿀수 있는 방법이 있는지 있으면 수정해주실수 있는지요?

바닥면적(m2)은 기존에 면적(m2)에서 글자만 수정하시면 될거 같고

벽체면적(m2)추가는 명령어 입력후 높이값을 입력하면 길이x높이 결과값이 나오게 만들어주실수 있는지요? 

(QA명령어 입력후 객체선택을하면 텍스트 높이 입력 문구가 나옵니다. 값을 입력후
"길이에 적용할 높이"문구가 나와서 높이값을 기입하면 되게끔 설정 가능할지요?)

마지막 길이는 mm에서 m로 단위 변환만 하면 될것 같습니다.

이게 만들어 질수 있는지 의문이지만 될것도 같아서 하실수 있는분 부탁드립니다.

—————————————————————————————————–
(defun c:qa ( / 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)))
       )
              '("평 : " "면적(㎡)  : " "길이(mm) : " ) (list (rtos (/ area 3305796.) 2 2) (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)

관련자료

댓글 7

닐스몹님의 댓글

쪽지 보내드렸고, 리습은 혼자 인터넷으로 공부 했습니다

나야삼촌님의 댓글

닐수몹님께 개인적으로 쪽지 드렸습니다.

닐스몹님의 댓글

(defun c:qa ( / doc space ss th index obj mi mx minpt maxpt inspt area txtobj )

수야12님의 댓글

이 리습은 거짓말 살짝 보태서 한달에 한번은 올라오넹.. 

여분필드1 여분필드2 여분필드3
전체 60 / 1 페이지
번호
제목
이름
알림 0