비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 100513
다음
Lv.0
등록일: 2014-02-272014-02-27T19:19:54+09:00 2014-02-27T19:19:54+09:00카테고리: AutoCAD & CADian

연산리습 수정 부탁입니다

아래 리습을 두가지 정도 수정 하고 싶습니다.

1. 소수점 2자리 -> 소숫점 자리수 질문 후 자릿수 결정
2. 나누기 에서 작은수을 큰수로 나누면 percent(–%)로 표시됨 -> 0.000으로 표시되게

감사합니다. 부탁드립니다.

;*********************** ADDING THE NUMBERS PROGRAM ************************
;;===========================================================
;  Number plus(98CHO_I)
;  ->숫자의 합 구하기(2자리)
;;———————————————————–
(defun c:+(/  myerror choi d_ts w_os ht ss grpt pt1 n k tot en tv rtv an)
;start — Internal error handler ———-
 (defun myerror(S)
 (if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
 (setvar “osmode” w_os)
 (setq *error* olderr)(princ) )
 (setq olderr *error* *error* myerror)
;end—————————————-
   (setq choi (getvar “orthomode”)  d_ts (getvar “textsize”)
            w_os (getvar “osmode”) )
   (prompt “… 더하기”)
   (setvar “orthomode” 0) (setvar “osmode” 0)
   (setq ht d_ts)
   (prompt “nText Height<“) (prin1 ht) (prompt “>: “)
   (setq ht (getdist))
   (if (= ht nil) (setq ht d_ts))
   (prompt “nSelect number->”)
   (setq ss (ssget))
   (setq grpt (grread T))
   (setq pt1 (cadr grpt))
   (setq n (sslength ss))
   (setq k 0 tot 0)
   (while (<= 1 n)
        (setq en (ssname ss k))
        (setq tv (cdr (assoc 1 (entget en))))
        (setq rtv (atof tv))
        (setq tot (+ tot rtv))
        (setq n (- n 1))
        (setq k (+ k 1))
   )
   (setq tot (rtos (* tot 10000) 2 0))
   (setq an (strlen tot))
   (setq tot (strcat (substr tot 1 (- an 4)) “.” (substr tot (- an 3) 2)   ))
   (command “text” “j” “r” pt1 ht “0” tot)
   (prompt “nEnter text point->”)
   (command “move” “l” “” pt1 pause)
   (setvar “orthomode” choi) (setvar “osmode” w_os)
   (prompt “n합 계 : “) (prin1 tot)
   (prin1)
)


;;===========================================================
;  Number minus(98CHO_I)
;  ->두 수의 차 구하기(2자리)
;;———————————————————–
(defun c:-(/   myerror choi d_ts w_os ht ss1 en1 ent1 tv1 ss2 en2 ent2 tv2 grpt pt1 rst1
                      tot1 rtv1 rtv2 en an)
;start — Internal error handler ———-
 (defun myerror(S)
 (if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
 (setvar “osmode” w_os)
 (setq *error* olderr)(princ) )
 (setq olderr *error* *error* myerror)
;end—————————————-
   (prompt “… 빼기”)
   (setq choi (getvar “orthomode”)  d_ts (getvar “textsize”)
            w_os (getvar “osmode”) )
   (setvar “orthomode” 0) (setvar “osmode” 0)
   (setq ht d_ts)
   (prompt “nText Height<“) (prin1 ht) (prompt “>: “)
   (setq ht (getdist))
   (if (= ht nil) (setq ht d_ts))
   (prompt “nSelect first number->”)
   (setq ss1 (entsel) en1 (car ss1))   (redraw en1 3)
   (setq ent1 (assoc 1 (entget (car ss1))))
   (setq tv1 (cdr ent1))
   (prompt “nSelect second number->”)
   (setq ss2 (entsel) en2 (car ss2))   (redraw en2 3)
   (setq ent2 (assoc 1 (entget (car ss2))))
   (setq tv2 (cdr ent2))
   (setq grpt (grread T) pt1 (cadr grpt))
   (setq  rst1 0)
   (setq rtv1 (atof tv1)  rtv2 (atof tv2))
   (setq rst1 (- rtv1 rtv2))
   (setq tot1 (abs rst1))
   (setq tot1 (rtos tot1 2 2))
   (if (= (wcmatch tot1 “*.*”) nil)
       (setq tot1 (strcat tot1 “.00”)))
   (setq an (strlen tot1))
   (if (= (substr tot1 (- an 1) 1) “.”)
       (setq tot1 (strcat tot1 “0”)) )
   (if (< rst1 0)
       (setq tot1 (strcat “-” tot1)))
   (command “text” “j” “r” pt1 ht “0” tot1)
   (redraw en1 4) (redraw en2 4)
   (prompt “nEnter text point->”)
   (command “move” “l” “” pt1 pause)
   (setvar “orthomode” choi) (setvar “osmode” w_os)
   (prompt “n결 과 : “)(prin1 rtv1)(prompt “-“)
   (prin1 rtv2)(prompt “= “)(prin1 rst1)
   (prin1)
)


;;===========================================================
; Number by(0010cho_i)
; ->두 수의 곱 구하기(2자리)
;;———————————————————–
(defun c:*(/  myerror choi d_ts w_os ht ss1 en1 ent1 tv1 ss2 en2 ent2
              tv2 grpt pt1 rst1 tot1 rtv1 rtv2 en an)
;start — Internal error handler ———-
 (defun myerror(S)
 (if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
 (setvar “osmode” w_os)
 (setq *error* olderr)(princ) )
 (setq olderr *error* *error* myerror)
;end—————————————-
   (prompt “… 곱하기”)
   (setq choi (getvar “orthomode”)  d_ts (getvar “textsize”)
            w_os (getvar “osmode”) )
   (setvar “orthomode” 0) (setvar “osmode” 0)
   (setq ht d_ts)
   (prompt “nText Height<“) (prin1 ht) (prompt “>: “)
   (setq ht (getdist))
   (if (= ht nil) (setq ht d_ts))
   (prompt “nSelect first number->”)
   (setq ss1 (entsel) en1 (car ss1))   (redraw en1 3)
   (setq ent1 (assoc 1 (entget (car ss1))))
   (setq tv1 (cdr ent1))
   (prompt “nSelect second number->”)
   (setq ss2 (entsel) en2 (car ss2))   (redraw en2 3)
   (setq ent2 (assoc 1 (entget (car ss2))))
   (setq tv2 (cdr ent2))
   (setq grpt (grread T) pt1 (cadr grpt))
   (setq  rst1 0)
   (setq rtv1 (atof tv1)  rtv2 (atof tv2))
   (setq rst1 (* rtv1 rtv2));곱하기
   (setq tot1 (abs rst1))
   (setq tot1 (rtos tot1 2 2))
   (if (= (wcmatch tot1 “*.*”) nil)
       (setq tot1 (strcat tot1 “.00”)))
   (setq an (strlen tot1))
   (if (= (substr tot1 (- an 1) 1) “.”)
       (setq tot1 (strcat tot1 “0”)) )
   (if (< rst1 0)
       (setq tot1 (strcat “-” tot1)))
   (command “text” “j” “r” pt1 ht “0” tot1)
   (redraw en1 4) (redraw en2 4)
   (prompt “nEnter text point->”)
   (command “move” “l” “” pt1 pause)
   (setvar “orthomode” choi) (setvar “osmode” w_os)
   (prompt “n결 과 : “)(prin1 rtv1)(prompt “*”)
   (prin1 rtv2)(prompt “= “)(prin1 rst1)
   (prin1)
)


;;=========================================================
; Number divide(‘0106cho_i)
; ->두 수의 나누기 구하기(2자리)
;   작은수을 큰수로 나누면 percent(–%)로 표시됨
;;———————————————————
(defun c:/(/  myerror choi d_ts w_os ht ss1 en1 ent1 tv1 ss2 en2 ent2
             tv2 grpt pt1 rst1 tot1 rtv1 rtv2 en an)
;start — Internal error handler ———-
 (defun myerror(S)
 (if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
 (setvar “osmode” w_os)
 (setq *error* olderr)(princ) )
 (setq olderr *error* *error* myerror)
;end—————————————-
   (prompt “… 나누기”)
   (setq choi (getvar “orthomode”)  d_ts (getvar “textsize”)
            w_os (getvar “osmode”) )
   (setvar “orthomode” 0) (setvar “osmode” 0)
   (setq ht d_ts)
   (prompt “nText Height<“) (prin1 ht) (prompt “>: “)
   (setq ht (getdist))
   (if (= ht nil) (setq ht d_ts))
   (prompt “nSelect first number->”)
   (setq ss1 (entsel) en1 (car ss1))   (redraw en1 3)
   (setq ent1 (assoc 1 (entget (car ss1))))
   (setq tv1 (cdr ent1))
   (prompt “nSelect second number->”)
   (setq ss2 (entsel) en2 (car ss2))   (redraw en2 3)
   (setq ent2 (assoc 1 (entget (car ss2))))
   (setq tv2 (cdr ent2))
   (setq grpt (grread T) pt1 (cadr grpt))
   (setq  rst1 0)
   (setq rtv1 (atof tv1)  rtv2 (atof tv2))
   (setq rst1 (/ rtv1 rtv2));나누기
   (if (< rtv1 rtv2) (setq rst1 (* rst1 100)))
   (setq tot1 (abs rst1))
   (setq tot1 (rtos tot1 2 2))
   (if (= (wcmatch tot1 “*.*”) nil)
       (setq tot1 (strcat tot1 “.00”)))
   (setq an (strlen tot1))
   (if (= (substr tot1 (- an 1) 1) “.”)
       (setq tot1 (strcat tot1 “0”)) )
   (if (< rst1 0)
       (setq tot1 (strcat “-” tot1)))
   (command “text” “j” “r” pt1 ht “0” tot1)
   (redraw en1 4) (redraw en2 4)
   (prompt “nEnter text point->”)
   (command “move” “l” “” pt1 pause)
   (setvar “orthomode” choi) (setvar “osmode” w_os)
   (prompt “n결 과 : “)(prin1 rtv1)(prompt “/”)
   (prin1 rtv2)(prompt “= “) (prin1 rst1)
   (if (< rtv1 rtv2)(progn
       (prompt “n결 과 : “)(prin1 rtv1)(prompt “/”)(prin1 rtv2)
       (prompt “*100”)(prompt “= “) (prin1 rst1)(prompt”%”)
   ))
   (prin1)
)

  • 0
  • 47 조회
공유
  • Facebook

    관련 있는 질문들

    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    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