P図形の開発
1. PD言語(PDL)とPDソース
2. 図形概要図と入力参考図
3. 開発手順
4. PDソースのプロテクト
5. PDLC.EXE
6. P図形の例
1. PD言語(PDL)とPDソース
パラメタを基に図形を記述する言語を PD言語(PDL) と呼び、PDLで図形を 記述したソースプログラムを PDソース と呼びます。
- P図形 とはPDソース、またはPDソースに記述されている図形のことですが、プログラムについて言及する場合は明示的にPDソースと呼びます。
- PDLについてはヘルプの[PDLリファレンス]を参照してください。
PDソースはテキストファイルです。ファイル名は任意ですが、拡張子は .PD です。PDソースを作成する場合は必ずこの拡張子を指定してください。
P図形を作成するのに特別な環境は必要ありません。メモ帳などのテキストエディタでPDソースを作成(PDLで図形を記述)し、[P図形]コマンドに登録するだけです。
2. 図形概要図と入力参考図
PDソースがあればP図形を実行して図形を作図することができますが、PDソースの他にパラメタ入力を補助する 図形概要図 と 入力参考図 があります。2つの図形を合わせて 参考図 と呼びます。
■ 図形概要図 : 図形の概要を示す図 | ■ 入力参考図 : 入力パラメタを解説する図 |
- 参考図は部品ファイルに登録します。
- PDソースと参考図の部品ファイルは同じ場所におきます。
- 参考図部品ファイル名や図形名はPDソースで(PDLのIREF命令で)指定します。
- パラメタを入力する時には図形概要図と入力参考図を切り替えて表示することができます。
3. 開発手順
P図形を開発する手順は次の通りです。
- PDソースを保存する場所を用意し、その場所を[パラメタ図形作図]コマンドの[PDファイルグループ設定]でPDファイルグループに登録します。
- 最低限必要な事項(P図形名・PDソースファイル名・入力パラメタの仕様)を決めます。P図形名とPDソースファイル名は同じでも構いません。
- 参考図部品ファイルをPDソースと同じ場所に作成します。
- 参考図(図形概要図と入力参考図)を作図して参考図部品ファイルに登録します。参考図の図形名(部品図形名)は自由に付けることができます。
- PDソースを作成します。最初は DTIT・IREF・ACPT などを記述してPDソースを保存します。[パラメタ図形作図]を起動して保存したPDソースを 選択すると、参考図が表示されACPTで指定したパラメタが現れればOKです。※ IREFを記述しないかIREFで指定した参考図が無い場合には参考図は 表示されません。またACPTを記述しなければ入力パラメタは現れません。
- 後はPDソースの編集→[図形|図形作成]を繰り返して図形を完成させて行きます。
- PDLの DCP命令 はデバッグのための命令で、変数や数式・文字列式の値を 標準出力に出力します。既定では標準出力は非表示になっているので見ることができま せんが、[図形|標準出力ウィンドウを表示する]をチェックしておくと、[図形|図形作成] を実行した時に標準出力ウィンドウが開きDCP命令の出力を見ることができます。
4. PDソースのプロテクト
PDソースにプロテクトをかけることができます。
- ソースファイルの一部を暗号化してソースコードを見えなくします。
- テキストエディタによってはその内容を見ることができるかもしれませんが、暗号化されているため判読することはできません。
- プロテクトされたPDソースを更新しないでください。ソースファイルが壊れてしまい復旧できなくなります。
- コピープロテクトではありませんのでバックアップ用にコピーすることはできます。
- コマンドラインツール PDLC.EXE でプロテクトをかけることができます。
5. PDLC.EXE
PDソースをテストするコマンドラインのツールです。Anocad をインストールした場所の <BIN> フォルダに入っています。PDLC.EXE の使い方は次の通りです。
- PDLC /?
PDLC.EXEのヘルプを表示します。 - PDLC <PDsourcefile>
<PDsourcefile> を実行します。 - PDLC
カレントディレクトリの TEST.PD を実行します。 - PDLC /Protect <PDsourcefile>
<PDsourcefile> にプロテクトをかけます。プロテクトをかけた後に<PDsourcefile> をタイプしてみてください。
6. P図形の例
■ test1.pd ※[図形|標準出力ウィンドウを表示する]をチェックしてください。 ' 定義 dtit "カウントアップ" acpt "カウント: ", "N4", maxno, 100 ' 作図 dim c for c = 1 to maxno dcp c; next end ■ test2.pd ' 定義 dtit "立方体の展開図" acpt "(1)1辺の長さ: ", "N8.1", leng, 10 acpt "(2)線の色: ", "N3", col, 1 ' 作図 dim bx, by: bx=0: by=0 dim xp(11), yp(11) zfstat xp( 0)=bx: yp( 0)=by xp( 1)=bx: yp( 1)=by-leng xp( 2)=bx+leng: yp( 2)=by-leng xp( 3)=bx+leng: yp( 3)=by xp( 4)=bx+leng*3: yp( 4)=by xp( 5)=bx+leng*3: yp( 5)=by+leng xp( 6)=bx+leng: yp( 6)=by+leng xp( 7)=bx+leng: yp( 7)=by+leng*2 xp( 8)=bx: yp( 8)=by+leng*2 xp( 9)=bx: yp( 9)=by+leng xp(10)=bx-leng: yp(10)=by+leng xp(11)=bx-leng: yp(11)=by zfattr(-1,col,0,0) zdpline(xp,yp),12,lc zfattr(-1,col,4,0) zdrect(bx,by)-(bx+leng,by+leng) zfline(bx+leng*2,by)-(bx+leng*2,by+leng) zfterm end