비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 79052
다음
진행 중
Lv.0
등록일: 2008-11-262008-11-26T17:38:05+09:00 2008-11-26T17:38:05+09:00카테고리: AutoCAD & CADian

면적 구하는 리습!!

면적 구하는 리습을 사용하고 있는데요.
좀 답답하더라구요.
몇가지 기능을 좀 추가 했으면 하는데 가능할런지요?
좀 도와 주셨으면 합니다.

아래의 리습은 면적 표기 후, 해당 선의 변경에 따라 실시간으로 면적을 환산해서 나타내주는 리습입니다.
일반적인 면적 리습은 한번 표기하면 선을 변경하여도 면적표기는 바뀌지 않지만 이 리습은 실시간으로 바뀝니다.

그런데 여기에다 기능을 좀 추가하고 싶은데요…….

첫째
면적(㎡): 000.000
면적(평): 000.000
이런식으로 나오게 할 수는 없나요?

둘째
소숫점 3자리까리 나오게 할 수는 없나요?

셋째
글씨의 크기 조정이 불가능해서 좀 불편합니다. 마지막에 글씨 크기를 직접 설정할 수 있도록 할 수는 없나요?


고수분들의 멋진 능력 함 보여주세요~~~!^^
——————————————————————–


(defun C:AT ( / oldlay oldcmd elist enam etype object AreaReactor
                      pt hText ar aim aim2 m2 szText
                  )
  (vl-load-com)
  (setq oldlay (getvar “CLAYER”))
  (setq oldcmd (getvar “CMDECHO”))
  (setvar “CMDECHO” 0)
  (if (tblsearch “LAYER” “AREA-TEXT”)
    (command “_.LAYER” “T” “AREA-TEXT” “on” “AREA-TEXT” “s” “AREA-TEXT” “”)
    (command “_.LAYER” “M” “AREA-TEXT” “C” “201” “” “plot” “no” “AREA-TEXT” “”)
  )
  (if (tblsearch “STYLE” “NOTES”)
    (setvar “TEXTSTYLE” “NOTES”)
    (command “-STYLE” “NOTES” “ISOCP” “0” “0.6” “0” “n” “n”)
  )
  (princ “nSelect the entity you want to calculate the area.”)
  (setq enam (car (entsel)))
  (setq elist (entget enam))
  (setq etype (cdr (assoc 0 elist)))
  (if (or (= etype “CIRCLE”) (= etype “LWPOLYLINE”))
    (progn
      (setq hText (Get_XData enam “AREATEXT” 1000))
      (if (or (= hText nil) (and (/= hText nil) (= (handent hText) nil)))
        (progn
          (setq pt (getpoint “nText Insertion Point: “))
          (if (= (getvar “tilemode”) 1) (setq ht (setvar “textsize” (* (getvar “ltscale”) 4.0))))
          (if (= (getvar “tilemode”) 0) (setq ht (setvar “textsize” (* (* (getvar “ltscale”) 4.0) (/ 1 (getvar “ltscale”))))))
          (command “_.AREA” “O” enam)
          (setq ar (getvar “AREA”))
          (setq aim (/ ar 1000000.0))
          (setq aim2 (rtos aim 2 2))
          (setq m2 “m\u+00b2”)
          (setq szText (strcat aim2 m2))
          (command “_.TEXT” pt ht 0 szText)
          (setq hText (cdr (assoc 5 (entget (entlast)))))
          (Put_XData enam “AREATEXT” hText 1000)
          (setq object (vlax-ename->vla-object enam))
          (setq AreaReactor (vlr-object-reactor (list object) “Entity Area Reactor” ‘((:vlr-modified . Update-Area))))
        )
      )
    )
    (alert “The selected entity is not POLYLINE nor CIRCLE.”)
  )


  (setvar “CLAYER” oldlay)
  (setvar “CMDECHO” oldcmd)
  (princ)
)


(defun Update-Area (notifier-object reactor-object parameter-list / )
  (setq enam (vlax-vla-object->ename notifier-object))
  (setq hText (Get_XData enam “AREATEXT” 1000))
  (if (and (/= hText nil) (/= (handent hText) nil))
    (progn
      (setq txtEnam (handent hText))
      (if (vlax-property-available-p notifier-object ‘area)
        (progn
          (setq ar (vla-get-area notifier-object))
          (setq aim (/ ar 1000000.0))
          (setq aim2 (rtos aim 2 2))
          (setq m2 “m\u+00b2”)
          (setq szText (strcat aim2 m2))


         (setq elist (entget txtEnam))
         (if (= (cdr (assoc 0 elist)) “TEXT”)
           (progn
              (setq oldtxt (cdr (assoc 1 elist)))
              (setq pair1 (cons 1 szText))
              (setq pair2 (cons 1 oldtxt))
              (setq elist (subst pair1 pair2 elist))
              (entmod elist)
            )
          )
        )
        (progn
          (alert “It was not possible to get the area”)
        )
      )
    )
    (progn
      (alert “It was not possible find the text”)
    )
  )
 
  (princ)
)


(defun Get_XData ( ename app group / Pos sd_list elist app_list
                                     app_sub_list xd_code xd_data
                                     Value
                 )
  (setq Value nil)
  (setq elist (entget ename (list app)))
  (setq xd_list (assoc -3 elist))
  (setq xd_list (cdr xd_list))
  (setq app_list (car xd_list))          
  (setq app_list (cdr app_list))        ; Strip app name
  (while app_list
    (setq app_sub_list (car app_list))  ; Get sub list
    (setq xd_code (car app_sub_list))   ; Get group code
    (setq xd_data (cdr app_sub_list))   ; Get data
    (cond ((= group xd_code) (setq Value xd_data)))
    (setq app_list (cdr app_list))
  )
  Value
)


(defun Put_XData (ename rname Value group / elist xd_list )
  (regapp rname)
  (setq elist (entget ename))
  (setq xd_list (list ‘(1002 . “}”)))
  (setq xd_list (cons (cons group Value) xd_list))
  (setq xd_list (cons ‘(1002 . “{“) xd_list))
  (setq xd_list (cons rname xd_list))
  (setq xd_list (list -3 xd_list))
  (setq elist (cons xd_list elist))
  (entmod elist)
)
(princ)


—————————————————————————————–

  • 0
  • 1 1 답변
  • 159 조회
공유
  • Facebook

    관련 있는 질문들

    • 오버헤드 천장크레인 10톤 캐드파일 구해봅니다.
    • MDW파일 DWG파일로 변환 부탁드리겠습니다.
    • 직선의 한 지점에서 원의 최대거리 선 그리기
    • 캐드 모깎기 질문 드립니다

    1 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2008-11-27T10:15:45+09:00답변 등록 답변 등록 일시 2008-11-27 10:15 am

      3가지 다 만족하는 리습이 있습니다 예전에 고캐드에서 찾아서 썻었는데요..
      아마도 리습 게시판에 있을겁니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    Something went wrong with the plugin API.
    Something went wrong with the plugin API.
    등록일: 2002-05-132002-05-13T16:08:40+09:00 2002-05-13T16:08:40+09:00카테고리: AutoCAD & CADian

    면적 구하는 리습…

    얼마전 질문을 올리고 같은 질문을 또 올리게 되네여…ㅡㅡ
    아무리 해봐도 제 짧은 머리로는 도저히 답이 없슴다.
    그래서 리습 파일을 올리니 고수님들이
    함 해보시고 잘되면 방법을 좀 일러 주세요..
    참고로 전 리습은 전혀 모르니 상세한 답변 부탁드림다.
    그럼 즐거운 한주 되세요…
    리습 질문방은 언제 생겻지…ㅡㅡ

    • 0
    • 0 조회
    공유
    • Facebook

      관련 있는 질문들

      • 오버헤드 천장크레인 10톤 캐드파일 구해봅니다.
      • MDW파일 DWG파일로 변환 부탁드리겠습니다.
      • 직선의 한 지점에서 원의 최대거리 선 그리기
      • 캐드 모깎기 질문 드립니다

      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