프로그램
캐드 분류

소수점자리 정리 리습입니다. 수정부탁드려요.

컨텐츠 정보

  • 183 조회
  • 4 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

소수점자리 정리하는 리습입니다.
문제는 천단위표시(,)가 있는 숫자는 천단위 이후의 숫자를 인식을 못하네요.
예) 1,234.56 -> 1.00 으로 소수점 정리가 됩니다.
도와주세요. ^^
(defun c:dd (/ ss te i na lis typ text hi te1 te2 new newlis)
  (setvar "dimzin" 1)
  (princ "n>>> 텍스트 선택 하세요…")

  (setq ss (ssget))
  (setq te (getint "n>>> 소숫점자리 설정값 입력 : "))
  (setq i 0)
  (while (ssname ss i)
    (setq na (ssname ss i))
    (setq lis (entget na))
    (setq typ (assoc 0 lis))
    (setq text (cdr typ))
    (if (= text "TEXT")
      (progn
      (setq hi (assoc 1 lis))
      (setq te1 (cdr hi))
      (setq te2 (rtos (atof te1) 2 te))
      (setq new (cons (car hi) te2))
      (setq newlis (subst new hi lis))
      (entmod newlis)
      ) ;progn
    ) ;if
    (setq i (+ i 1))
  ) ;while
(princ)
) ;defun

관련자료

댓글 4

단량님의 댓글

안녕하세요 이 리습 쓰고싶은데

선택한게 하나도 없다며 적용이 안되네요ㅜ

다정수라님의 댓글

아… 근데… 보다보니까… 숫자가 음수일 경우 문제가 있어서 수정해서 다시 첨부했습니다. 이 파일을 사용하세요.

다정수라님의 댓글

천단위에 콤마(,)가 들어가서, atof 문으로 문자를 실수로 변환시 콤마는 숫자가 아닌 문자로 인식합니다.
여분필드1 여분필드2 여분필드3
전체 7,152 / 1 페이지
번호
제목
이름
알림 0