\documenstyle{jarticle}

\title{簡易製図＆プリントアウトツール  Draw Board}
\author{YS11 本名:山川総司}
\date{}

\begin{document}

\maketitle

\begin{center}
\begin{tabular}
  タイトル   & Ｄｒａｗ  Ｂｏａｒｄ \\
  動作機種   & FM-TOWNS全機種(Martyでも起動はできると思いますが、プリント \\
             &  アウトができません。)\\
  動作ＯＳ   & Towns-OS V2.1 以上 \\
  必要メモリ & ２Ｍ以上 \\
  動作確認   & FM-TOWNS 20F  拡張RAM8M \\
             & FM-TOWNS 2 CX 拡張RAM10M
\end{tabular}
\end{center}




\section{概要}
  最近は、FM-TOWNSのプリンタ回りの環境もかなり整ってきて、簡単に.TIFファ
イルをプリントアウトしたりもできるようになってきました。しかし、これらの
難点は、画面上で書くため、せっかく180dpiや360dpiのプリンタなのに、ドット
の荒い絵しか出せなかったということです。 \\
  精密な絵が必要なときは、専用のワープロソフトの作図機能を使ってデータを
作成してプリントアウトすれば済む話ですが、ちょっとした図が欲しいときに、
わざわざリセットをかけてワープロソフトを開くのは大袈裟というものです。で
きれば、テキストエディタの感覚で、T-OSから軽快に立ち上がって、ささっと簡
単な図がかけて、プリントアウトするツールが欲しいところです。と、いうわけ
で開発したのがこのソフトです。 \\
  このソフトは、簡易製図ツールです。ドローツールのたぐいの物です。簡単な
絵を書いて、プリントアウトすることができます。 \\
  このソフトは、全ての絵の図形要素を、ピクセルデータではなく、紙上の位置
と、大きさ(0.1mm単位)で管理しているため、横方向に4096ピクセルに拡大してプ
リントアウトできます。そのため、24ドットプリンタであってもかなりきれいな
線が出せます。 \\
  ベクトル文字パターンカードには対応していませんが、システム付属のフォン
トを利用することができるため、48ドットまたは60ドットフォントを利用するこ
とによって、線がなめらかな文字を印字することができます。\\
  その他の特徴として、図形要素をいくつかまとめて、「カード」という単位に
して管理することができるという点があります。カードとは、ＯＨＰ用の透明な
シートのような物だと思ってください。このソフトでは、そのカードを何枚も重
ねて、それぞれのカードに図を書き入れてゆきます。\\
  なお、このカードの概念がよくわからない場合でも、カードオペレーションを
全く使わずに絵を書くこともできます。\\

\vspace{3mm}

対応確認プリンタ\\
\begin{tabular}
    富士通   & FMPR-354 \\
    富士通   & FMLBP-212 \\
    EPSON    & AP-500 \\
    キャノン & BJ-10v \\
    キャノン & BJ-10v Lite \\
    エプソン & HG4000
\end{tabular}


\section{インストール方法}
  適当なディレクトリに全ファイルを複写して、DRWBOARD.EXPをアイテム登録して
実行してください。\\
  なお、アイテム登録時のコマンドラインパラメーターに以下の物が指定できます。\\

\begin{tabular}
  ファイル名               &  編集するファイル \\
  -fnt フォントファイル名  &  プリントアウト時に使うフォントファイルの指定 \\
  -bprbuf BPRLIB用バッファ &  プリントアウト時にプリンタドライバライブラリ \\
                           &  が使うワークエリアの大きさ。デフォルトは０ \\
                           &  (最小限必要なバッファに加えて確保するバッファ \\
                           &  の大きさ) \\
  -virty 仮想VRAMの縦の長さ&  プリントアウト時に画像データを一旦展開する仮 \\
                           &  想VRAMの縦の長さ
\end{tabular}


  例えば、Q:\FJ2\FONT\MINN60.FNT  (明朝体60ドットフォント) を印刷時に使っ
て、プリントアウト時の画像データ展開用仮想VRAMの縦幅を2048ドットにして、
プリンタドライバライブラリ用のワークエリアを最小値よりも64KB大きく確保し
たい場合は、コマンドラインパラメーターに\\
\begin{verbatim}

  -fnt Q:\FJ2\FONT\MINN60.FNT -virty 2048 -bprbuf 65536

\end{verbatim}

  と書けばＯＫです。なお、ここで、フォントを指定しても、画面に表示される
文字は16ドットフォントの拡大で、がくがくしていますが、プリントアウト時に
は正しくプリントされます。\\


\section{画面説明}
    このソフトが起動すると、画面説明の図にあるような画面になります。ここ
  では、画面上のそれぞれのアイコン／ボタンの役割を説明します。\\

\begin{description}
  \item[(１)メニューバーエリア]
      各種メニューがあります。ファイル操作や図形要素／カードの移動，コピ
    ー、絵のプリントアウト等に使います。
  \item[(２)オペレーションアイコン]
      紙に図形要素を書く、あるいは、紙上に書いてある図形要素の属性を変更
    する時に使います。
  \item[(３)終了ボタン]
      このボタンを押すとプログラムを終了して、Towns-MENUに戻ります。
  \item[(４)メジャー]
      紙の左上角を原点として、縦横それぞれ何センチメートルの位置を画面に
    表示しているかを示しています。
  \item[(５)アンドゥボタン]
      このボタンを押すと、一つ前に行ったオペレーションを取消ます。ただし、
    属性変更を取り消すことはできません。また、アンドゥがきくのは、一段階
    前までです。（アンドゥを行って次にアンドゥを行うということは、一つ前
    のアンドゥを取り消すことだと考えてください）
  \item[(６)拡大／縮小／再描画ボタン]
      上から順に、表示エリアを拡大，縮小，再描画するボタンです。
      属性変更等を行った時、ソフトでは、編集の効率を優先して、属性が変更
    された図形要素が属するカード内の図形要素のみを書き換えるので、重なっ
    ているカード内の図形要素が消えてしまうことがあります。このような場合
    は、再描画ボタンを押すと、全図形要素を書き換えてくれます。
      拡大・縮小は、編集する部分の大きさに合わせて調節してください。  
  \item[(７)ペーパーエリア]
      編集ウィンドウ内に紙のだいたいどの辺りを表示しているのかを示してい
    ます。このウィンドウ内をクリックして、ドラッグすると、表示位置が移動
    します。
  \item[(８)YS11マーク]
      お馴染み(?)作者のマークです。
  \item[(９)編集ウィンドウ]
      編集中の絵を表示します。
  \item[(10)頂点無移動スイッチ]
      このスイッチをオン（反転表示）にすると、図形の頂点が移動しなくなり
      ます。図形の頂点に接続する図形を書く時に、図形がかかれないで、頂点
      が移動してしまうと困るので、そういう場合は、このボタンを使います。
\end{description}


\section{絵の書き方、属性変更のしかた}
\subsection{図形要素を書く}
    紙上に絵を書くには、まず、オペレーションウィンドウの上２段の中から、
  書きたい図形要素を選んで、編集ウィンドウ内の１点（ただし、選んだカー
  ドの中）をクリックします。図形要素には、次の種類があります。\\

\begin{description}
    \item[ライン]
      直線です。頂点は２つです。編集ウィンドウ内の、希望の位置をクリック
      して、もう一方の点をクリックして、確定します。
    \item[ポリライン]
      連続した直線です。希望の頂点をクリックして、最後の頂点で２回クリッ
      クして確定します。
    \item[サークル]
      円です。楕円も含みます。中心点をクリックして、希望の形の円になるよ
      うにカーソルを動かして、もう一度クリックすると、確定します。
    \item[テキスト]
      文字列です。まず、希望の領域の２頂点をクリックして、次に文字列を入
      力ます。
    \item[カーブ]
      曲線です。曲線の両端点をクリックすると、今度は、カーソルに合わせて
      曲率が変化するので、希望の曲線になる位置でもう一度クリックしてくだ
      さい。また、要素変更で、非接続を指定すると、真ん中が空くカーブにな
      って、長さを入れる場合等に使えます。
    \item[ボックス]
      箱型です。両端点をクリックします。
\end{description}

    なお、既存の図形の頂点あるいは制御点を始点とする図形要素を書く場合
  は、画面説明の(10)頂点無移動スイッチをオンにしてください。\\


\subsection{入力した図形要素の頂点（制御点）を移動する}
    既に入力した図形要素の頂点を変更したい場合や、あるいは、テキストの文
  字列を変更したい場合があります。\\
    この場合は、まず、画面説明の(10)頂点無移動モードスイッチがオンになっ
  ている場合は、これをオフにします。続いて、オペレーションアイコンの上２
  段のうちのどれかを選びます。そして、変更したい頂点のマーカーをクリック
  します。すると、そのマーカーが移動するようになるので、希望の位置まで移
  動して、もう一度クリックしてください。\\
    また、サークルやカーブの制御点も同様に移動できます。\\
    文字列を変更したい場合は、テキストのマーカーをクリックして、１秒ほど、
  ボタンを押したままにすると、入力できる状態になるので、新しい文字列を入
  力してください。\\

\subsection{入力した図形要素の属性を変更する／入力した要素を削除する}
    図形要素の属性変更／削除をするには、オペレーションアイコンの下２段の
  なかから、希望のオペレーションを選んで、対象図形要素のマーカーをクリッ
  クします。\\
    属性変更／削除には次の機能があります。\\

\begin{description}
    \item[アローヘッド]
      図形要素の先端に矢印をつけます。ラインまたはポリラインに対して有効
      です。ポリラインの場合は、両端の点にのみ矢印をつけることができます。
    \item[丸め]
      図形要素の頂点の角を取ります。５段階あって、要素のマーカーをクリッ
      クすると、順にまるまっていって、６回目のクリックで元に戻ります。ポ
      リラインまたはボックスに対して有効です。
    \item[太さ]
      図形要素の線を太くします。丸めと同様、５段階あって、６回目のクリッ
      クで元に戻ります。テキスト以外の全ての図形要素に対して有効です。な
      お、現バージョンでは、グラフィックバイオスの都合上、紙にプリントア
      ウトするときに、太さが32ドットを越える場合は、勝手に32ドットとして
      扱ってしまいます。
    \item[ペイント]
      図形要素の内部を塗り潰します。一度塗り潰し指定をしてから、もう一度
      クリックすると、元に戻ります。ポリライン，サークル，ボックスに対し
      て有効です。
    \item[コネクト]
      図形要素の始点と終点の接続を指定します。ポリライン，カーブに対して
      有効です。また、カーブの場合は、非接続指定にすると、カーブの中央部
      分が抜ける形になります。これは、長さを入れる場合に使えます。
\end{description}


\subsection{メニューバーエリアの説明}
  \subsection{SIDEWORKボタン}
    これを押すと、サイドワークメニューが呼び出されます。\\

  \subsection{CARDメニュー}
    \begin{description}
    \item[HOME]
      編集対象となるカードを、ホームカード（常に存在する紙全体と同じ大き
      さのカードにします。
    \item[SELECT]
      編集対象となるカードを選択します。カードの角にあるマーカーをクリッ
      クして選びます。
    \item[MAKE]
      新たにカードを作成します。作成すると、編集対象カードは、新たにでき
      たカードになります。
    \item[DELETE]
      カードとそのカードに含まれる図形要素全てを削除します。
    \item[MOVE]
      カードを移動します。
    \item[COPY]
      カードをコピーします。
    \item[SIZE]
      カードの大きさを変えます。ただし、カードの中の図形要素の大きさは変
      わりません。
    \item[SCALING]
      カードの大きさを変えます。カードに含まれる図形要素もそれに比例して
      大きさが変化します。
    \end{description}

    なお、それぞれの図形要素の入力時は、カードの範囲外に極力出さないよう
    にソフト側でがんばっているんですが、SIZEを使って、カードの範囲を極端
    小さくすると、どうしても、それまでに入力したものがカードの範囲外に出
    てしまいます。カードの枠の外にそのカードに含まれる図形要素があると、
    非常に見づらくなるので、そうならないようにしましょう。\\


  \subsection{EDITメニュー}
  \begin{description}
    \item[MOVE]
      図形要素を移動します。移動したい図形要素のマーカーをクリックして、
      移動先まで動かして、もう一度クリックしてください。
    \item[COPY]
      図形要素をコピーします。コピーしたい図形要素のマーカーをクリック
      して、コピー先まで動かして、もう一度クリックしてください。
    \item[CLEAR]
      編集中のカードと図形要素の全てを消去します。
  \end{description}

  \subsection{FILEメニュー}
  \begin{description}
    \item[SAVE]
      編集中のデータをセーブします。
    \item[LOAD]
      データをロードします。
    \item[SAVE ONE CARD]
      編集中のカードのひとつをセーブします。セーブしたいカードのマーカー
      をクリックしてください。
    \item[LOAD ONE CARD]
      SAVE ONE CARDでセーブしたカードを読み込んで編集中のデータに追加しま
      す。
    \item[PRINTOUT]
      編集中のデータをプリントアウトします。プリンタ設定はシステムソフト
      ウェアで行う必要があります。
  \end{description}


  \subsection{OPTIONメニュー}
  \begin{description}
    \item[MESH OFF]
      メッシュ(方眼のマス目)を消します。
    \item[MESH 5mm]
      5mm 間隔のメッシュを出します。
    \item[MESH 10mm]
      10mm間隔のメッシュを出します。
    \item[PAPER SIZE]
      紙の大きさを変更します。画面に紙の大きさの設定のウィンドウが出る
      ので、そのウィンドウを使って設定してください。なお、A4,B4,B5サイ
      ズにしたい場合は、ボタンで設定が可能ですが、それ以外は、紙の枠が
      出ているエリアをクリックして、任意の大きさに設定してください。
      なお、A4,B4,B5は、それぞれ、プリント時のオーバーサイズを防止する
      ため、 1cmずつ小さく設定してあります。
  \end{description}


\section{ショートカットキーについて}
  このプログラムでは、以下のショートカットキーに対応しています。\\

\begin{verbatim}
    1234567890-^  入力する図形要素の種類,図形属性変更の機能の選択
    C             EDITメニューのCOPY
    M             EDITメニューのMOVE
    S             CARDメニューのSELECT
    U             UNDO
\end{verbatim}


\section{カードについて}
    このソフトの特徴として、カード単位のデータ管理機能があります。このカ
  ード機能によって、ある程度まとまった図形要素をひとつの図形として扱うこ
  とが可能になります。\\
    ある程度まとまった図形要素をまとめて扱うことの意義には、だいたいふた
  つの意義があります。\\
    まず、ひとつ目は、レイアウトが容易になるということです。カードをうま
  く分ければ、あとから何度でも、カードを移動して拡大縮小して自在にレイア
  ウトを変更することができます。\\
    また、ふたつ目に、何度も同じような図形を別なファイルで使うとき、その
  図形をひとつのカードとしてセーブしておいて、何度も使い回すことができる
  という点もあります。ひとつの図形に対して、ある図では、寸法を入れて、あ
  る図では機能の説明を書いて・・・、という場合に便利です。\\
  　その他にも、編集中は、表示範囲の変更等の大きな変更が無いかぎり、編集
  中のカード以外のカードは書換えないので、うまく使うと、処理の高速化にも
  つながるという点もあります。\\
　　このカードの概念がわからない方でも、ガリガリ絵が書けるように、一応、
　紙の大きさと一致するようなカード（ホームカード）が常に存在しますが、カ
　ード概念が理解できる方は、できれば、このホームカードもは何も書かない方
  がいいです\verb+(^_^;)+作った本人が言うんだから間違いありません\verb+(^_^;)+ホームカ
  ードにある物は、あとからレイアウト変更や、再利用が面倒です。\\
　　なお、カードの作成・削除・複写・拡大縮小といったカードオペレーション
　は、メニューバーエリアの説明を参照してください。\\




\section{プリントアウトについて}
    このソフトでは、プリントアウト時の設定はありません。単に、FILEメニュ
  ーの中のプリントアウトを選ぶだけです。プリンターの設定等は、Townsシス
  テムソフトウェアの「設定」アイテムと、プルダウンメニューの設定のプリン
  タ設定を使って行ってください。\\
    なお、プリントアウトを中断するには、マウスのボタンをクリックしてくだ
  さい。中断するか確認してくるので、Yes/Noで答えてください。\\


\section{データファイルについて}
    このソフトでは、データは、全てテキストファイルの形で格納されています
  ので、比較的簡単に、外部アプリケーションからデータファイルを作成するこ
  とができます（その気になればBASICからだってできる）。 例えば、簡単なグ
  ラフや表を作るソフトを作って、DRAW BOARDで読める形式のファイルを出力す
  れば、即プリントアウトできます。\\
    あまり手の込んだことはできませんが、そこはそれ、手軽さ重視というやつ
  ですから、十分意義があると思います\verb+(^_^;)+
    なお、データファイルを作る場合は、余計なスペースや改行は入れないでく
  ださい。元々手で修正することはあまり考えていませんので、このような仕様
  になっております。\\
    と、いうわけで、以下、データファイルのフォーマットです。なお、座標系
  は、紙の左上端を原点として0.1mm 単位となっております。また、図形の位置
  は、属するカードの左上端の座標に対する相対位置になっています。\\


\begin{verbatim}
   Fileの先頭行
   SIGLE             単一カードデータ(LOAD/MERGE可)
   WHOLE px py       全体データ    (LOAD可/MERGE不可)
      px py          ペーパーサイズ

   2行目以降
   NEWCARD x y wx wy 新しいカードデータ開始
      x y            カードの紙上の位置
      wx wy          カードの大きさ

     例  紙の左端から50mm, 上端から50mmの点から、横幅100mm,縦幅140mmの
         カードを開始します

       NEWCARD 500 500 1000 1400



   LINE～ENDOBJECT
   POINT x1 y1 x2 y2 ライン両端
   HARW              先頭矢印
   TARW              終端矢印
   WIDTH w           ラインの太さ

     例  カードの端からの相対座標で(30mm,20mm)-(60mm,40mm),太さ1mm,先頭
         矢印ありの直線を定義します

       LINE
       POINT 300 200 600 400
       HARW
       WIDTH 10
       ENDOBJECT


   POLYLINE～ENDOBJECT
   VERTEX x y        頂点
   RADIUS            丸めの度合い(％単位 0～50)
   CONT              終点始点接続
   FILL              塗りつぶし
   HARW              先頭矢印
   TARW              終端矢印
   WIDTH w           ラインの太さ

     例  50%の丸め有り,終端矢印有り,太さ0.1mmのPOLYLINEを定義します

       POLYLINE
       VERTEX 300 100
       VERTEX 600 400
       VERTEX 100 500
       TARW
       WIDTH 1
       RADIUS 50
       ENDOBJECT



   CIRCLE～ENDOBJECT
   POINT x y rdx rdy 中心点,横径,縦径
   FILL              塗りつぶし
   WIDTH w           ラインの太さ

   例  中心(600,600) 横径400 縦径200 塗りつぶし有り の楕円を定義
         します

       CIRCLE
       POINT 600 600 400 200
       FILL
       ENDOBJECT


   TEXT～ENDOBJECT
   STRING txt        文字列
   POINT x y         左上位置
   WIDTH x y         大きさ

     例  文字列 "YS11" を定義します

       TEXT
       STRING YS11
       POINT 700 700
       WIDTH 800 400
       ENDOBJECT


   ARC～ENDOBJECT
   VERTEX x1 y1 x2 y2 x3 y3 制御点
   CONT              接続
   WIDTH w           ラインの太さ

     例  (500,500),(1000,500),(1000,1000)を制御点とする曲線を
         定義します (ARCじゃなくてCURVEの方が良かったと反省し
         ている(^_^;))

       ARC
       VERTEX 500 500 1000 500 1000 1000
       CONT
       ENDOBJECT


   RECT～ENDOBJECT
   VERTEX x1 y1 x2 y2 両端点
   FILL              塗りつぶし
   RADIUS            丸め度
   WIDTH w           ライン太さ

     例  丸め度20% の矩形を定義します。

       RECT
       VERTEX 100 100 500 300
       RADIUS 20
       ENDOBJECT
\end{verbatim}  



\section{ん－、終わった終わった}
    さて、DRAW BOARDいかがでしょうか？使っていただけるとうれしいんですが
  ね。これを有効に活用すれば、ドキュメントに簡単な図が欲しかったのに、わ
  ざわざ.TIFにするとやっかいだし・・・と思わずに、図を入れてやることもで
  きますよね。ただ、プリンタが無いとちょっと役に立たないかもしれませんが
  \verb+(^_^;)+\\
    それと、このFM-TOWNS拡張ライブラリI ってすごく強力なんですね。実際に
  プログラミングに入ってから(と、いうのはソースをタイプしはじめる段階を
  いう) わずか12日でプリントアウト部分がとりあえず完成してしまうんだから、
  大したもんです。\\
    なお、作った本人も使わないのでは誰も使ってくれないと思うので、これか
  らは自分で作るソフトのドキュメントで図が必要になったら、ばしばしこれで
  図を入れようと思ってます\verb+(^_^;)+\\

\vspace{5mm}

    最後になりましたが、動作確認に協力してくれた、川又君、柳田君、村崎君、
  大介さん、どうもありがとうございました。またよろしくおねがいします。\\

\vspace{5mm}

    ではでは。\\

\begin{center}
\begin{verbatim}
                                ＝☆＝
        ＼＼▼＼＼  PEB01130／ＹＳ－１１／山川総司  ／／▼／／ 
              ／／▲／ t91472sy@sfc.keio.ac.jp  ＼▲＼＼
\end{verbatim}
\end{center}

\begin{thebibliography}{9}
\bibitem{Oh!FM-TOWNS1993-6}
Oh!FM-TOWNS 1993年 6月号,
プリンタドライバライブラリ,
日本ソフトバンク
\end{thebibliography}

\end{document}
