16. 변환 함수

AutoLISP에서는 다른 프로그램 언어와는 다르게 변수를 미리 선언하지 않으므로, 변수 타입은 사용자가 저장한 데이터

타입에 의해서 결정되며 변수 타입을 따로 설정하지 않기 때문에 데이터의 타입을 변환시키는것 또한 다른 언어에 비해

매우 유연합니다.

DCL(대화 상자)을 이용해서 프로그램을 작성하면, 대화 상자를 통해서 입력받는 것은 모두 문자열로 처리되므로, 숫자를

입력받으면 변환 함수를 사용해서 반드시 변환해주어야 계산이나, 도면 작성이 가능합니다.

아주 비중있는 함수들이므로 꼭 익혀두시기 바랍니다.

 

 

1. itoa

    (1) 기능

      itoa 뒤에 오는 정수가 저장되어 있는 변수 또는 정수문자열로 변환시킵니다.

      뒤에 오는 변수와 숫자(숫자로 이루어진 문자열)가 문자열이면 에러를 야기합니다.

      itoa로 변환된 숫자는 당연히 연산이 불가능합니다.

    (2) 사용법

      (itoa Number)

      (itoa Variable)

    (3) 예

      숫 자

      문 자

       (setq a (itoa 25))

       !a : "25"

       (setq b (itoa 9600))

       !b : "9600"

       (setq c 26)

       

       (setq d (itoa c))

       !d : "26"

       (setq e 2000)

       

       (setq f (itoa e))

       !f : "2000"

 

 

2. atoi

    (1) 기능

      atoi 뒤에 오는 문자열 정수가 저장되어 있는 변수 또는 문자열정수로 변환시킵니다.

      뒤에 오는 변수와 문자열이 숫자로 이루어지지 않으면 에러를 야기합니다.

      또한, 변환시키려는 변수나 문자열은 반드시 정수로 이루어진 상수 문자열이어야 합니다.

    (2) 사용법

      (atoi "Number-String")

      (atoi Variable)

    (3) 예

      문 자

      숫 자

       (setq a (atoi "25"))

       !a : 25

       (setq b (atoi "1999"))

       !b : 1999

       (setq c "26")

       

       (setq d (atoi c))

       !d : 26

       (setq e "2000")

       

       (setq f (atoi e))

       !f : 2000

     

     

3. atof

    (1) 기능

      atof 뒤에 오는 숫자가 저장되어 있는 변수나, 문자열실수로 변환시킵니다.

      뒤에 오는 변수와 문자열이 숫자로 이루어지지 않으면 에러를 야기합니다.

      또한, 변환시키려는 변수나 문자열이 실수로 이루어지지 않아도 에러는 없습니다.

      하지만, 반드시 숫자로 이루어진 문자열이어야 합니다.

    (2) 사용법

      (atof "Number-String")

      (atof Variable)

    (3) 예

      문 자

       숫 자

       (setq a (atof "25.00"))

       !a : 25.0

       (setq b (atof "1999.12"))

       !b : 1999.12

       (setq c "2000.05")

       

       (setq d (atof c))

       !d : 2000.05

       (setq e "2000")

       

       (setq f (atof e))

       !f : 2000.0

 

 

4. rtos

    (1) 기능

      rtos 뒤에 오는 숫자나 숫자가 저장되어 있는 변수를 문자열로 변환시킵니다.

      뒤에 오는 변수가 숫자로 이루어지지 않으면 에러를 야기합니다.

      매뉴얼에는 실수를 문자열로 변환한다고 하지만, atof와 마찬가지로 정수를 변환해도 에러는 발생하지 않습니다.

      rtos는 변환시 옵션과 정밀도를 주는 것이 가능합니다.

      정밀도는 0에서 4까지 가능하며, 소수 이하 자릿수를 지정합니다.

      변환시 옵션은 다음과 같습니다.

       

      Option

      설명

      1

        Scientific (지수형)

      2

        Decimal (10진형)

      3

        Engineering (피트 10진형)

      4

        Architecture (피트 분수형)

      5

        Fractional (분수형)

 

      Precision

       

      설명

      0

       

      1

       소수점 이하 1번째까지 출력

      2

       소수점 이하 2번째까지 출력

      3

       소수점 이하 3번째까지 출력

      4

       소수점 이하 4번째까지 출력

    (2) 사용법

      (rtos Number  Option  Precision)

      (rtos Variable  Option Precision)

    (3) 예

      숫 자

      문 자

        (setq a (rtos 26 1 1))

        !a : "2.6E+01"

        (setq a (rtos 26 2 1))

        !a : "26"

        (setq a (rtos 26 3 1))

        !a : "2'-2""

        (setq a (rtos 26 4 1))

        !a : "2'-2""

        (setq a (rtos 26 5 1))

        !a : "26"

        (setq b (rtos 26 1 2))

        !b : "2.60E+01"

        (setq c (rtos 26 1 3))

        !c : "2.600E+01"

        (setq d 2000)

       

        (setq e (rtos d 1 3))

        !e : "2.000E+03"

        (setq f (rtos d 1 4))

         !f : "2.0000E+03"

 

 

5. angtos

    (1) 기능

      angtos 뒤에 오는 Radian 각도를 Mode에 따라 문자열로 변환합니다.

      angtos는 변환시 rtos와 마찬가지로 정밀도를 주는 것이 가능합니다.

      정밀도는 소수 이하 자릿수를 지정하며, rtos와 동일합니다.

      주의할 점은 반드시 Radian 각도를 사용해야 합니다.

      변환시 Mode는 다음과 같습니다.

       

      Mode

      설  명

      0

        Degree

      1

        Degree:Minutes:Second (도:분:초)

      2

        Grads

      3

        Radian

      5

        Surveyor's unit (측량단위)

    (2) 사용법

      (angtos Number  Mode  Precision)

      (angtos Variable  Mode  Precision)

    (3) 예

      숫 자

      문 자

        (setq a (angtos 3.1415))

        !a : "180"

        (setq b 3.1415)

       

        (setq c (angtos b))

        !c : "180"

        (setq d (angtos b 0 3))

        !d : "179.995"

 

 

6. angtof

      (1) 기능

      angtof 뒤에 오는 각도(Degree)를 나타내는 문자열을 Mode에 따라 부동 소수점으로 변환합니다.

      주의할 점은 반드시 angtos와 마찬가지로 Radian 각도를 사용해야 합니다.

      변환시 Mode는 angtos와 동일합니다.

    (2) 사용법

      (angtof "Number-String"  Mode)

      (angtof Variable  Mode)

    (3) 예

      문 자

      숫 자

        (setq a (angtof "180" 0))

        !a : 3.14159

        (setq b "180")

       

        (setq c (angtof b))

        !c : 3.14159

        (setq d (angtof b 2))

        !d : 2.82743

 

 

7. fix

     (1) 기능

      실수로 이루어진 숫자나 변수를 정수로 변환시키는 함수입니다.

    (2) 사용법

      (fix Real-Number)

      (fix Variable)

    (3) 예

      실 수

      정 수

        (setq a (fix 2.001))

        !a : 2

        (setq b 19.209)

       

        (setq c (fix b))

        !c : 19

        (setq d (fix 0.11))

        !d : 0

 

 

8. float

    (1) 기능

      정수로 이루어진 숫자나 변수를 실수로 변환시키는 함수입니다.

    (2) 사용법

      (float Number)

      (float Variable)

    (3) 예 

      정 수

      실 수

        (setq a (float 26))

        !a : 26.0

        (setq b 140)

       

        (setq c (float b))

        !b : 140.0

 

 

9. strcase

    (1) 기능 :

      strcase 뒤에 오는 문자열이나 변수에 저장된 문자열을 Option에 따라 대문자 또는 소문자로 변환합니다.

      Option이 없거나 nil이면 대문자로, T이면 소문자로 변환합니다.

    (2) 사용법 :

      (Strcase  "String"  Option)

      (Strcase  Variable  Option)

    (3) 예

        (setq a (strcase "pnp"))

        !a : "PNP"

        (seta b (strcase "PNP" t))

        !b : "pnp"

        (setq c "autolisp")

       

        (setq d (strcase c))

        !d : "AUTOLISP"

 

 

10. distof

    (1) 기능 :

      distof 뒤에 오는 문자열이나 문자열이 저장된 변수를 Option에 따라 실수로 변환시킨다.

      Option은 rtos와 동일합니다.
       

      Option

      설  명

      1

        Scientific (지수형)

      2

        Decimal (10진형)

      3

        Engineering (피트 10진형)

      4

        Architecture (피트 분수형)

      5

        Fractional (분수형)

    (2) 사용법 :

      (distof  "String"  Option)

      (distof  Variable  Option)

    (3) 예

        (setq a (distof "25"))

        !a : 25.0

        (setq b (distof "1999"))

        !b : 1999.0

        (setq c (distof "1.5e1" 1))

        !c : 15.0

        (setq d (distof "15" 2))

        !d : 15.0

 

 

11.  cvunit

     (1) 기능 :

      cvunit 뒤에 오는 단위1의 숫자나 변수를 단위2로 변환합니다.

      단위1과 단위2 중에 하나라도 AutoCAD에서 정의한 단위가 아니면 에러를 야기합니다.

      또한 두 단위의 차원이 일치하지 않으면 역시 nil을 출력합니다.

      ** 차원은 공학 용어입니다.

    (2) 사용법 :

      (cvunit  Number  unit-1  unit-2)

      (cvunit  Variable  unit-1  unit-2)

    (3) 예

      Unit - 1

      Unit - 2

        (setq a (cvunit 26 "mm" "m"))

        !a : 0.026

        (setq b 26)

       

        (setq c (cvunit b "mm" "m"))

        !c : 0.026

        (setq d (cvunit b "sec" "min"))

        !d : 33.3167

 

 

 

문자열 함수

최초 작성일 1999.12.10

파일관련 함수

최종 수정일 2006.05.15