ZSINPT
【機能】
アイデント・ディジタズ・文字入力を行う
【使用形式】
call zsinpt(ifm,iopt,icol,itbl,ipnt,xyz,ns,ich,iret)
【引数説明】
[INPUT]
ifm : 入力モード
-1 = AUTO (IDENT入力可能)
0 = IDENT
1 = PDIG (IDENT入力可能)
2 = PEND (IDENT入力可能)
3 = PCEN (IDENT入力不可)
5 = PIN2 (IDENT入力不可)
6 = PONT (IDENT入力不可)
10 = 文字入力
11 = 数値入力
iopt(4,10) : オプションメニューの文字列(NULLをターミネータとする)
icol(10,2) : オプションメニューの色番号/背景色
ipnt(5) : 入力フラグ
(1) 0= 入力モード自由 / 1=入力モード固定
(2) 0= 認識マークをつける / 1= 認識マークをつけない
2= 色を変更する / -1= ミスクに従う
(3) 0= 一時割込み実行する / 1= 一時割込み実行しない
(4) 0= ID 入力時に GP モード指示を許さない /
GP 入力時に ID モード指示を許さない
1= ID 入力時に GP モード指示を許す /
GP 入力時に ID モード指示を許す
2= GP 入力時に ACT 指示を許す /
ID 入力時に GP モード指示を許さない
(5) : トリムの組数指定
0= トリムをしない
1= トリムの組数(トリムコモンを初期化する)
-1= トリムの組数(トリムコモンを初期化しない)
xyz(10) : 座標値
(1)(2)(3) : 相対(極/円筒)座標値の場合、基準座標として入力値を参照する
[INPUT/OUTPUT]
[OUTPUT]
ifm : 入力モード(ルーチン内で入力モードを変更した時のみ出力)
-1 = AUTO
0 = IDENT
1 = PDIG
2 = PEND
3 = PCEN
5 = PIN2
6 = PONT
ipnt(5) : 入力フラグ
(5) : トリムの組数指定
0= トリムをしない
1= トリムの組数なし
-1= トリムの組数あり
itbl(13) : 認識した情報
(1) : スクリーン番号 (ISN) [iret=10のとき:オプション番号/
iret= 4のとき数値の数(最大10)]
(2) : U.V.S.番号 (IUVS)
(3)(4) : 指示したスクリーン座標(XY)
(5) : G−No. (要素指示した場合:ifm=1,7,10,の時0)
(6) : G−No. (交点認識した場合:ifm=4,5)
(7) : クラス番号 (ICLS)
(8) : アイテム番号 (INO)
(9-10) : グループ名称 (ZGRP)
(11-12): アイテム名称
(13) : 指示した入力タイプ
-2= CLASS , -1= GROUP , 0= ITEM / IDENT
1= PDIG , 2= PEND , 3= PCEN , 4= PIN1(1点入力で判定)
5= PIN2 , 6= PONT ,
11= 絶対座標(SQRS) , 12= 相対座標(DSQRS)
13= 絶対円筒座標(CYCS) , 14= 相対円筒座標(DCYCS)
15= 絶対極座標(SPCS) , 16= 相対極座標(DSPCS)
xyz(10) : 座標値( iret=4 のとき最大10個まで数値が入る)
(1)(2)(3) : 決定されたXYZ座標値
(4)(5)(6) : 指示したXYZ座標値
(7)(8)(9) : 第2要素を指示したのXYZ座標値(PINT)
ns : 文字数(バイト数:MAX = 256 Byte)
ichr(64) : 文字列
iret : リターン
-6= 入力エラー
-5= MENU
-4= スペシャルメニュー
-3= UND−(REDO)
-2= UND+(UNDO)
-1= REJECT
0= C/R,C/Cのみ
1= GP,ID入力
2= COPY
3= ACT
4= 数値が入力された
5= B/S
6= 文字
8= FREE
10= オプションが押された
11= コマンド割り込み
【機能説明】
・入力モードが、AUTO,PDIG,PENDでipnt(1)=0の場合には、指定した
入力モードにIDENT入力ができます。
そのときには、カーソルの形状がAUTOカーソルとなります。
・数値入力の時は、","(相対入力)、";"(絶対入力)ができます。
xyzに入力値をリターンし、itbl(1)にその数値列をリターンします。
数値列の最大個数は、10個です。
・割り込みコマンド(リターンフラグ=11)が入力した場合、コマンドを
終了すると割り込み入力したコマンドを実行します。
・オプションメニューを使用するときは、あらかじめiopt,icolの変数領域を
0クリアする必要があります。
クリアする例、
(フォートランの場合)
dimension iopt(4,10), icol(10,2)
:
call clear(iopt,40,0)
call clear(icol,20,0)
icol(1,1)=2
icol(1,2)=9
call movec(iopt(1,1),1,'オプション',1,10)
call zsinpt(ifm,iopt,icol,itbl,ipnt,xyz,ns,ich,iret)
:
(GALの場合)
dimension iopt(4,10) icol(10,2)
:
iopt=0
icol=0
icol(1,1)=2
icol(1,2)=9
scall movec(iopt(1,1),1,'オプション',1,10)
scall zsinpt(ifm,iopt,icol,itbl,ipnt,xyz,ns,ich,iret)
: