DataType, CE, $
PML Beginner 6
1. DataType
변수에 특정 데이터를 넣고 결과 값을 확인하기 위해 q var !변수명 명령어를 자주 사용했을 겁니다.
이때 결과 값을 보면 <STRING>, <ARRAY>, <REAL> 같은 데이터 타입이 자주 등장합니다.
PML을 작성할 때 숫자(<REAL>), 문자(<STRING>)를 정확히 구분하는 것이 중요합니다.
예를 들어:
1 + 1은2가 맞습니다.- 단,
<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 CE는 DBREF의 NAME을 출력하는 것이고,
!A = CE는 DBREF 값을 변수에 담는 것입니다.
문자열과 DBREF 차이
!B = 100-B-1이렇게 하면 맨 앞에 /가 없기 때문에 단순한 텍스트가 저장됩니다.
즉, !B는 <STRING> 타입이 됩니다.
!!CE (전역 변수)
!A = CE
Q VAR !A이런 과정이 번거롭다면,
!!CE를 사용하면 됩니다.
!!CE는 현재 선택된 CurrentElement를 DBREF 타입으로 실시간 유지하는 전역 변수입니다.
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> 152) $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 CE3) $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이렇게 확인하시면 됩니다,,