비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 113590
다음
진행 중
Lv.0
등록일: 2022-01-232022-01-23T21:54:54+09:00 2022-01-23T21:54:54+09:00카테고리: AutoCAD & CADian

리습 수정 문의 드립니다. 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)
  • 0
  • 7 7 답변
  • 1k 조회
공유
  • Facebook

    관련 있는 질문들

    • 오토캐드 2016 맞춤법 검사기 끄는 방법 아시나요
    • 캐드에서 여러도면을 한번에 배치출력 할 수 있는 방법이 있나요
    • step파일, iges 파일을 열어서 볼 수 있는 방법이 있을까요?
    • 캐디안으로 도면을 열때 한글이 ???로 표시되는 문제

    7 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2022-01-24T08:43:34+09:00답변 등록 답변 등록 일시 2022-01-24 8:43 am

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

      ;;=======
      (defun c:qa ( / doc space ss th 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(and (setq  ss (ssget (list (cons 0 “CIRCLE,ARC,*POLYLINE,LINE,ELLIPSE,SPLINE”))))
                (or (setq ts (getreal (strcat “n텍스트 높이 입력 <” (vl-princ-to-string (getvar “textsize”)) “>:”)))
                 (setq ts (getvar “textsize”)))
                 (setq th(getreal (strcat “n높이값입력:”)))
           )       
            (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)))
             )
             ‘(“평 : ” “바닥면적(㎡)  : ” “길이(M) : ” ) (list (rtos (/ area 3305796.) 2 2) (rtos (* th(/ area 1000000.)) 2 3) (rtos (* len 0.001) 2 2))
          )
         (setq index (1+ index))
         )
       (command “chprop” (ssget “x” ‘((0 . “TEXT”) (1 . “평*”))) “” “c” “7” “”)
       )
            )
          )
        (princ)
        )
      (vl-load-com)
      (prompt “n[ QA ]”)
      (princ)

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2022-01-24T23:55:15+09:00답변 등록 답변 등록 일시 2022-01-24 11:55 pm

      리습 수정해주신 점에 대해 감사드립니다.

      죄송하지만 올려주신 수식대로 리습에 적용하여 실행해봤는데….
      높이값 입력 문구는 나오지만 수식에 적용이 안되는것 같습니다.
      제가 요청드린 내용은 결론을 말씀드리면
      QA실행후 -> 객체선택 -> 텍스트 크기 입력 -> 길이에 적용할 높이값 입력 -> 결과값산출
      예를들어 리습실행후 가로2m 세로3m 사각형을 선택하고 길이에 적용할 높이값을 2m라고 입력시
      결과값이 선택객체 가운데에        바닥면적(m2) :  6 m2
                                             벽체면적(m2) : 20 m2
                                             길이(m2)       : 10 m     이렇게 나오게 수정가능하실까요?
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 닐스몹 Lv.1
      2022-01-25T08:32:36+09:00답변 등록 답변 등록 일시 2022-01-25 8:32 am
      (defun c:qa ( / doc space ss th 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(and (setq  ss (ssget (list (cons 0 “CIRCLE,ARC,*POLYLINE,LINE,ELLIPSE,SPLINE”))))
                (or (setq ts (getreal (strcat “n텍스트 높이 입력 <” (vl-princ-to-string (getvar “textsize”)) “>:”)))
                 (setq ts (getvar “textsize”)))
                 (setq th(getreal (strcat “n높이 값 입력(m):”)))
           )       
            (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)))
             )
             ‘(“바닥면적(㎡)  : ” “벽체면적(㎡)  : ” “길이(m) : “)
              (list (strcat (rtos (* area 0.000001) 2 2) “㎡”) (strcat (rtos (* (* len 0.001) th) 2 3) “㎡”) (strcat (rtos (* len 0.001) 2 2) “m”))
          )
         (setq index (1+ index))
         )
       (command “chprop” (ssget “x” ‘((0 . “TEXT”) (1 . “바닥*”))) “” “c” “7” “”)
       )
            )
          )
        (princ)
        )
      (vl-load-com)
      (prompt “n[ QA ]”)
      (princ)
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2022-01-25T15:26:47+09:00답변 등록 답변 등록 일시 2022-01-25 3:26 pm
      답변 감사합니다.
      올려주신데로 실행결과 잘 작동합니다.
      감사히 쓰겠습니다.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. [Deleted User]
      2022-01-26T08:13:03+09:00답변 등록 답변 등록 일시 2022-01-26 8:13 am

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

      확인부탁드립니다.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. 닐스몹 Lv.1
      2022-01-26T08:21:05+09:00답변 등록 답변 등록 일시 2022-01-26 8:21 am

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

      기본적인 명령들은 여기서 공부했고, 추가적인 건 그때그때 인터넷으로 찾아서 공부했어요
      https://blog.naver.com/pmgkkh6416/40209534565
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    8. [Deleted User]
      2022-01-27T11:33:29+09:00답변 등록 답변 등록 일시 2022-01-27 11:33 am

      답변 감사합니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved