비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 113056
다음
진행 중
Lv.0
등록일: 2021-04-282021-04-28T14:26:55+09:00 2021-04-28T14:26:55+09:00카테고리: AutoCAD & CADian

두점 사이의 거리를 나타내주는 리습(0.5단위로 끊을 수 있게 수정하고 싶습니다.)

안녕하세요! 리습 초짜입니다!
입력된 두 점사이의 거리를 나타내주는 리습을 만들고 있는데요.
원하는 결과물이 1이상일 경우 0.5단위(1.0 1.5 2.0 2.5 등 ) 로 나타내주고
1미만일 경우
0.1~0.5까지는 0.5 
0.6~1까지는 1 으로 표기하고 싶습니다.

(IF (= (- TOTAL1 0.5)(FIX TOTAL1)) 를 이용해서

0.5단위로 계산하는 예제를 봤는데 잘 이해가 가지않아서 
어느부분을 고쳐야 하는지 조언을 구하고자 합니다.

(defun c:qds(/ os dlf myerror ot pt0 pt1 pt2 pt3 pt4 di dis ang an dii anzz anz dx dy dz)
   ;start — Internal error handler ———-
    (defun myerror(S)
    (if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
    (setvar “osmode” os) (setvar “orthomode” ot)
    (setq *error* olderr)(princ) )
    (setq olderr *error* *error* myerror)
   ;end—————————————-
  (setvar “cmdecho” 0)
  (setq d_ts (getvar “textsize”) os (getvar “osmode”)
         dlf (getvar “dimlfac”)  ot (getvar “orthomode”))
  (princ “…DISTANCE PROGRAM…”)
   (setq ht d_ts)
   (prompt “n문자크기:<“) (prin1 ht) (prompt “>: “)
   (setq ht (getint))
   (if (= ht nil) (setq ht d_ts))
  (setvar “orthomode” 0)
  (setvar “osmode” 512)
  (setq pt1 (getpoint “n Distance first point-> “))
  (setvar “osmode” 128)
  (setq pt2 (getpoint pt1 “n Distance second point-> “))
  (setq di (distance pt1 pt2) 
        ang (angle pt1 pt2) 
        an (angtos ang 0 2)
        pt3 (list (car pt2) (cadr pt2) (caddr pt1))
        dii (distance pt1 pt3)
        pt4 (list dii (caddr pt2))
        pt0 (list 0 0)
        anzz (angle pt0 pt4)
        anz (angtos anzz 0 2)
        dX (- (car pt2) (car pt1))
        dY (- (cadr pt2) (cadr pt1))
        dZ (- (caddr pt2) (caddr pt1))) (terpri)
  (princ (strcat ”  * XY-angle : ” an ” ‘   “))
  (princ (strcat “* Z-angle : ” anz ” ‘”)) (terpri)
  (setq ldi (* di dlf))
  (princ (strcat ”  * delta-X : ” (rtos dX 2 2) ” mm   “))
  (princ (strcat “* delta-Y : ” (rtos dY 2 2) ” mm   “))
  (princ (strcat “* delta-Z : ” (rtos dZ 2 2) ” mm”))(terpri)
  (princ (strcat ”  * distance : ” (rtos di 2 2) ” mm “))
  (princ (strcat ” < ” (rtos ldi 2 2) ” : dimlfac = ” (rtos dlf 2 2) “>   “))
   (setvar “osmode” 0)
   (setq dis (rtos (/ di 1000) 2 1))
;   (command “text” “j” “r” pt1 ht an dis)
   (command “text” “j” “r” pt1 ht “0” dis)
   (prompt “nEnter text point->”)
   (command “move” “l” “” pt1 pause)
  (setvar “osmode” os) (setvar “orthomode” ot)
  (prin1)
)
  • 0
  • 4 4 답변
  • 126 조회
공유
  • Facebook

    관련 있는 질문들

    • 선배님들 덕트 엘보 작성 리습좀 봐주세요
    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    4 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2021-04-29T17:43:01+09:00답변 등록 답변 등록 일시 2021-04-29 5:43 pm

      http://www.lee-mac.com/round.html

      좋은 공부 사이트가 될겁니다 화이팅~!!
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2021-04-30T07:51:51+09:00답변 등록 답변 등록 일시 2021-04-30 7:51 am

      여기 참조해서 공부하고 있는데 쉽지가 않네요 ㅎㅎ 
      답변 감사합니다!

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 캐드플러스 Lv.17
      2021-05-01T02:43:31+09:00답변 등록 답변 등록 일시 2021-05-01 2:43 am

      fix는 1 미만은 버림 입니다.

      하여 어떤 값에 0.5를 더하여 fix를 하면 가능합니다.
      0.4에 0.5를 더하면 0.9 이므로 0 이되고,
      0.6에 0.5를 더하면 1.1 이므로 1 이 됨.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2021-05-07T10:46:58+09:00답변 등록 답변 등록 일시 2021-05-07 10:46 am

      감사합니다.

      (setq dis (rtos (/ di 0.5 1000) 2 0)) 
      1.1이든 1.6이든 1000단위로 나눈다음 곱하기 2 를 한값을 소숫점 절삭
      다시 나누기 2 하면 해결이 되는군요. 
      11000 -> 11000/1000=1.1 -> 1.1*2=2.2 -> 2 -> 2/2=1
      16000 -> 16000/1000=1.6 -> 1.6*2=3.2 -> 3 -> 3/2=1.5
      • 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