목록으로

DataType, CE, $

PML Beginner 6

1. DataType

변수에 특정 데이터를 넣고 결과 값을 확인하기 위해 q var !변수명 명령어를 자주 사용했을 겁니다.

이때 결과 값을 보면 <STRING>, <ARRAY>, <REAL> 같은 데이터 타입이 자주 등장합니다.

PML을 작성할 때 숫자(<REAL>), 문자(<STRING>)를 정확히 구분하는 것이 중요합니다.

예를 들어:

  • 1 + 12가 맞습니다.
  • 단, <REAL>1 + <REAL>1일 때만 그렇습니다.
  • <STRING>1 + <STRING>1<STRING>11이 됩니다.
  • <REAL>1 + <STRING>1 같은 연산은 불가능합니다.

PML에는 다양한 데이터 타입이 존재합니다:

<STRING>, <DBREF>, <REAL>, <ARRAY>, <POSITION> 등등.

(DOUBLE, FLOAT, INT 같은 타입은 없으니 찾지 마세요.)

문자로 출력된다고 해서 무조건 <STRING> 타입인 것은 아닙니다.

데이터를 적절히 가공하려면 올바른 데이터 타입으로 변환하는 것이 중요합니다.

예제:

!A = 2

이렇게 하면 !A에는 <REAL>2가 저장됩니다.

이 값을 <STRING>으로 변환하려면:

!A.STRING()

반대로 <STRING><REAL>로 변환하려면:

!A.REAL()

추가적으로 배열 (<ARRAY>)

<ARRAY>는 여러 데이터를 포함할 수 있는 구조입니다.

배열 안에는 <STRING>, <REAL> 등 다양한 데이터가 들어갈 수 있지만,

배열 자체를 <STRING>이나 <REAL>로 변환하는 것은 불가능합니다.

변환이 필요하다면, 배열의 모든 데이터를 하나의 <STRING>으로 합치는 방식 등을 사용해야 합니다.

데이터 타입을 정확히 맞추는 것이 중요하며,

더 자세한 변환 방법은 각 OBJECT에서 확인할 수 있습니다.

2. CE

CE는 현재 선택된 CurrentElement를 의미합니다.

예를 들어, 100-B-1이라는 이름의 PIPE가 있다고 가정해봅시다.

!A = CE

이렇게 하면 !A에는 현재 선택된 CurrentElement가 들어갑니다.

이 상태에서

Q VAR !A를 실행하면 다음과 같은 결과가 나옵니다:

<DBREF> =2013286676/1251
   Name <DBATT> -> <STRING> '/100-B-1'
   Type <DBATT> -> <STRING> 'PIPE'
   Lock <DBATT> -> <BOOLEAN> FALSE
   Owner <DBATT> -> <DBREF> =2013286676/490
   Description <DBATT> -> <STRING> ''
   Function <DBATT> -> <STRING> ''
   Purpose <DBATT> -> <STRING> ''
   Built <DBATT> -> <BOOLEAN> FALSE
   Shop <DBATT> -> <BOOLEAN> FALSE
   Isohidden <DBATT> -> <BOOLEAN> FALSE
   Bore <DBATT> -> <BORE> 100mm
   Temperature <DBATT> -> <REAL> 50degC

즉, CE는 현재 선택한 아이템의 DBREF 값을 의미합니다.

CE와 NAME 값

Q CE

를 실행하면 /100-B-1과 같은 NAME 값이 출력됩니다.

이제 다음을 테스트해봅시다.

!A = /100-B-1
Q VAR !A

이렇게 하면 위와 같은 결과값이 나옵니다.

즉, Q CEDBREFNAME을 출력하는 것이고,

!A = CEDBREF 값을 변수에 담는 것입니다.

문자열과 DBREF 차이

!B = 100-B-1

이렇게 하면 맨 앞에 /가 없기 때문에 단순한 텍스트가 저장됩니다.

즉, !B<STRING> 타입이 됩니다.

!!CE (전역 변수)

!A = CE
Q VAR !A

이런 과정이 번거롭다면,

!!CE

를 사용하면 됩니다.

!!CE현재 선택된 CurrentElementDBREF 타입으로 실시간 유지하는 전역 변수입니다.

3. $

1. 매크로 실행 관련

1) $M → 매크로 실행

기능:

  • PDMS에서 특정 매크로를 실행합니다.

사용 예제:

$M D:ZZ.TXT

→ D:ZZ.TXT 에 들어있는 PML 파일을 실행합니다


2) $. → 매크로 종료

기능:

  • 실행 중인 매크로를 종료합니다.

2. 변수 및 표현식 평가

1) $! → 변수 평가

기능:

변수 값을 평가하여 출력합니다. 직접 사용 가능하다는 뜻입니다.

사용 예제:

!A = 10
!B = 5
!C = !A + $!B
Q VAR !C

결과:

<REAL> 15

2) $D

기능:

  • Default argument value 라는데 추후 알아오겠습니다.

3. 동의어(Synonym) 관련 명령어

1) $S → 동의어(Synonym) 정의

기능:

  • 특정 명령어를 더 짧은 별칭으로 지정할 수 있습니다.

사용 예제:

$SXXX=Q CE

→ XXX를 입력하면 Q CE가 실행됨 (현재 선택된 요소 정보 출력)

Q CE 실행과 동일한 결과 출력.

1-1)

$S/는 줄바꾸기 역할을 합니다

$SXXX=Q CE $/ Q NAME $/ Q TYPE

→ XXX를 입력하면 Q CE Q NAME Q TYPE가 실행됨 (현재 선택된 요소 정보 출력)


2) $G → 전역(Global) 동의어 정의

기능:

  • $S와 유사하지만, 이거 쓰는법 알아오겠습니다
  • $QS로 보면 들어가는 있는데 써지지가 않네요

사용 예제:

$GXXX=Q CE

3) $S- → 동의어 비활성화

기능:

  • 동의어 기능을 비활성화합니다.

사용 예제:

$S-

→ 모든 동의어 기능을 비활성화.


4) $S+ → 동의어 활성화

기능:

  • $S-로 끈 동의어 기능을 다시 활성화합니다.

사용 예제:

$S+

→ 동의어 기능 재활성화.


5) $QS → 현재 정의된 동의어 목록 조회

기능:

  • 현재 설정된 동의어 목록을 출력합니다.

사용 예제:

$QS

→ 현재 등록된 동의어 리스트 출력.


4. 도움말 및 정보 확인

1) $H → 도움말 호출

기능:

  • 명령어에 대한 도움말을 표시합니다.

2) $HR$R의 모든 옵션 조회

기능:

  • $R 명령어의 가능한 옵션을 모두 출력합니다.

3) $Q → 문법 도움말

기능:

  • 특정 명령어의 문법을 확인합니다.

5. 출력 관련 명령어

1) $P → 명령줄에 텍스트 출력

기능:

  • 특정 메시지를 콘솔에 출력합니다.

사용 예제:

$P 현재 파이프를 선택하세요.

현재 파이프를 선택하세요. 출력됨.


2) $$$ 기호 출력

기능:

  • $ 기호를 출력할 때 사용됩니다.

사용 예제:

$P 가격은 $$100 입니다.

가격은 $100 입니다. 출력됨.


6. 주석 처리 관련 명령어

1) $* → 한 줄 주석

기능:

  • 주석을 한 줄 작성합니다.

사용 예제:

$* 이 줄은 주석입니다.

→ 실행되지 않음 (주석 처리됨).


2) $(, $) → 여러 줄 주석

기능:

  • 여러 줄을 주석으로 처리할 수 있습니다.

사용 예제:

$(
이것은 여러 줄
주석입니다.
$)

→ 실행되지 않음 (주석 처리됨).


7. 디버깅 및 PML 트레이스 관련($R)

1) $R OR $R0→ 트레이스 기능 끄기

기능:

  • PML 트레이스 기능을 끕니다.

2) $R6 → 트레이스 기능 켜기

기능:

  • PML 트레이스를 활성화합니다.
  • 틀리거나 빼먹은거 있으면 알려주세요 (전 잘 안써서 이부분은 메뉴얼 긁어왔습니다)

$R109 D:ZZ.TXT
$QR109

이렇게 확인하시면 됩니다,,