HP-GL

HP-GL은 휴렛 팩커드 그래픽스 언어(Hewlett-Packard Graphics Language)의 약자로, 흔히 HPGL로 표기되며 휴렛 팩커드(HP)가 개발한 프린터 제어 언어이다. HP-GL은 HP 플로터에서 사용되는 주요 프린터 제어 언어였다. 1977년 플로터 HP-9872와 함께 도입되었으며, 거의 모든 플로터의 표준이 되었다. 휴렛 팩커드의 프린터 또한 일반적으로 PCL 외에 HP-GL/2를 지원한다.

 설계 
이 언어는 일련의 두 글자 코드(기억술)와 그 뒤에 오는 선택적 매개변수로 구성된다. 예를 들어, 페이지에 호를 그리려면 다음과 같은 문자열을 보낸다:

AA100,100,50;

이는 절대 호(Arc Absolute)를 의미하며, 매개변수는 페이지의 절대 좌표 100,100에 호의 중심을 배치하고, 시작 각도는 반시계 방향으로 50 도로 측정된다. 네 번째 선택적 매개변수(여기서는 사용되지 않음)는 호가 얼마나 계속되는지 지정하며, 기본값은 5도이다.

처음 도입되었을 때 HP-GL에는 다음 명령이 포함되어 있었다.

 명령어 의미 벡터 그룹 PA x,y{,x,y{...}}  플롯 절대 [i] PR x,y{,x,y{....}}  플롯 상대 [i] PD  펜 내리기 PU  펜 올리기 문자 그룹 CA n  대체 문자 집합 n 지정 [i] CP spaces, lines  문자 플롯 [d] CS m  표준 집합 m 지정 [i] DI run, rise  절대 방향 [d] DR run, rise  상대 방향 [d] LB c, ..., c  라벨 ASCII 문자열 [c] SA  대체 문자 집합 선택 SI wide, high  절대 문자 크기 [d] SL tan θ  절대 문자 기울기 (수직으로부터) [d] SR wide, high  상대 문자 크기 [d] SS  표준 문자 집합 선택 UC x, y, pen{, ...}  사용자 정의 문자 [i] 선 종류 그룹 LT t{,l}  선 종류 t 및 길이 l 지정 [d] SM c  기호 모드 [c] SP n  펜 선택 [i] VA  적응 속도 VN  일반 속도 VS v{,n}  펜 n의 속도 v 선택 [i] 디지털화 그룹 DC  디지털화 지우기 DP  디지털화 지점 OC  현재 위치 및 펜 상태 출력 OD  디지털화된 지점 및 펜 상태 출력 축 TL tp{,tn}  눈금 길이 [d] XT  X축 눈금 YT  Y축 눈금 설정 그룹 IP p1x,p1y,p2x,p2y  p1 및 p2 입력 [i] IW xlo,ylo,xhi,yhi  입력 창 [i] OP  p1 및 p2 출력 [i] 구성 상태 AP  자동 펜 픽업 [i] DF  기본값 설정 IM e{,s{,p}}  e, s 및 p 마스크 입력 [i] IN  초기화 OE  오류 출력 [i] OS  상태 출력 [i]

+ 추가된 명령 (언제?)  w,h  문자 너비와 높이 설정

형식:
 [i]: -32767에서 32768 사이의 정수 형식. 소수점 없음.
 [d]: +/- 127.9999 사이의 십진 형식. 선택적 소수점.
 [c]: ASCII 문자

 예시 
일반적인 HP-GL 파일은 몇 가지 설정 명령으로 시작하여 긴 그래픽 명령 문자열로 이어진다. 파일은 ASCII(텍스트 파일) 형식이었다. 예를 들면:

+ HP-GL 파일 예시 명령어 의미   초기화, 플로팅 작업 시작  스케일링 지점 (P1과 P2)을 기본 위치로 설정   펜 1 선택  펜을 올리고 다음 동작의 시작점으로 이동  펜을 내리고 다음 위치로 이동 (페이지 주변에 상자 그리기)   펜을 올리고 X,Y 좌표 50,50으로 이동   반지름 25인 원 그리기   표준 문자 집합 선택  텍스트 구분 기호를 별표로 설정하고 출력하지 않음 (1은 "참"을 의미)   펜을 올리고 20,80으로 이동   라벨 그리기

좌표계는 HP 플로터가 지원할 수 있는 최소 단위를 기반으로 했으며, 25 μm (즉, 밀리미터당 40 단위, 인치당 1016 단위)로 설정되었다.
좌표 공간은 양수 또는 음수 부동소수점 숫자, 특히 ±230이었다.

 HP-GL/2 
원래의 HP-GL 언어는 선 너비 정의를 지원하지 않았는데, 이 매개변수는 플로터에 장착된 펜에 의해 결정되었기 때문이다. 최초의 잉크젯 플로터가 등장하면서, HP-GL 파일 내에 지정된 "펜"의 선 너비를 프린터에서 설정해야만 어떤 선 너비로 인쇄해야 할지 알 수 있었고, 이는 번거롭고 오류가 발생하기 쉬운 과정이었다. 휴렛 팩커드 그래픽스 언어/2 즉 HP-GL/2가 등장하면서, 선 너비 정의가 언어에 도입되어 이 단계를 없앨 수 있었다. 또한, 다른 개선 사항 중에서도 더 작은 파일과 더 짧은 파일 전송 시간을 허용하는 이진 파일 형식이 정의되었고, 최소 해상도가 감소되었다.

+ HP-GL/2 명령 예시 명령어 의미 NPx  펜 수; x=1..256 PCx,r,g,b  펜 색상; x=펜, r=빨강, g=녹색, b=파랑, 0..255 PWw,x  펜 너비; w=소수점 있는 mm 단위 펜 너비, x=펜

 AGL 
HP-GL은 베이직 프로그래밍 언어의 확장인 AGL (A Graphics Language)과 관련이 있다. AGL은 휴렛 팩커드 미니컴퓨터에 구현되어 플로터 제어를 단순화했다. AGL 명령은 원하는 그래픽 플로팅 기능을 설명하며, 컴퓨터는 이를 여러 HP-GL 명령으로 플로터에 전달한다.

 같이 보기 
 DMPL, 휴스턴 인스트루먼트의 다른 플로터 언어
 거버 포맷은 또 다른 플롯 설명 형식이다.
 로고, HP-GL과 유사한 그리기 명령을 가진 컴퓨터 언어

 각주 

 더 읽어보기 


 외부 링크 


  (NB. A Python-based HP-GL plotter control library for using vintage pen plotters with contemporary operating systems.)

분류:페이지 기술 언어
분류:벡터 그래픽스