(57)【要約】【課題】３Ｄプリンタの印刷状況を表示できるプログラムを提供すること。【解決手段】印刷データに基づく材料の積層を繰り返して造形物を造形する積層造形装置５０に対し印刷指示を行う情報処理装置２０を、前記積層造形装置が材料の積層に用いた前記印刷データの数情報を取得する数情報取得手段４１と、前記数情報を用いて前記造形物の造形の進捗情報を作成する進捗情報作成手段４３と、前記進捗情報を表示装置に表示する表示手段４４と、として機能させるためのプログラム４０を提供する。【選択図】図１
2016173730.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに基づく材料の積層を繰り返して造形物を造形する積層造形装置に対し印刷指示を行う情報処理装置を、
前記積層造形装置が材料の積層に用いた前記印刷データの数情報を取得する数情報取得手段と、
前記数情報を用いて前記造形物の造形の進捗情報を作成する進捗情報作成手段と、
前記進捗情報を表示装置に表示する表示手段と、
として機能させるためのプログラム。
【請求項２】
前記情報処理装置をさらに、前記積層造形装置の積層ピッチを取得する積層ピッチ取得手段として機能させ、
前記数情報取得手段は前記積層造形装置から前記数情報を取得し、
前記進捗情報作成手段は、前記数情報と前記積層ピッチを用いて前記進捗情報として前記造形物の現在高さ情報を算出し、
前記表示手段は、前記表示装置に前記現在高さ情報を表示する請求項１に記載のプログラム。
【請求項３】
前記情報処理装置をさらに、前記積層造形装置の積層ピッチを取得する積層ピッチ取得手段として機能させ、
前記数情報取得手段は前記数情報として１つの前記印刷データに基づく積層が終了した旨の情報を前記積層造形装置から取得し、
前記情報処理装置をさらに、前記積層が終了した旨の情報を前記数情報取得手段が取得した回数をカウントするカウント手段として機能させ、
前記進捗情報作成手段は、前記回数と前記積層ピッチを用いて前記進捗情報として前記造形物の現在高さ情報を算出し、
前記表示手段は、前記表示装置に前記現在高さ情報を表示する請求項１に記載のプログラム。
【請求項４】
前記情報処理装置をさらに、前記積層造形装置の積層ピッチを取得する積層ピッチ取得手段として機能させ、
前記数情報取得手段は、前記情報処理装置が前記積層造形装置に送信した前記印刷データのデータ数を管理する数管理手段から前記データ数を前記数情報として取得し、
前記進捗情報作成手段は、前記データ数と前記積層ピッチを用いて前記進捗情報として前記造形物の現在高さ情報を算出し、
前記表示手段は、前記表示装置に前記現在高さ情報を表示する請求項１に記載のプログラム。
【請求項５】
前記積層ピッチ取得手段は、前記積層造形装置が造形できる上限高さ情報を取得し、
前記表示手段は前記現在高さ情報と前記上限高さ情報を前記表示装置に表示する請求項２〜４いずれか１項に記載のプログラム。
【請求項６】
前記積層ピッチ取得手段は、造形の完了した状態の前記造形物の完了時高さ情報を取得し、
前記表示手段は前記現在高さ情報、前記上限高さ情報及び前記完了時高さ情報を前記表示装置に表示する請求項５に記載のプログラム。
【請求項７】
前記情報処理装置をさらに、前記造形物を造形するために必要な総印刷データ数を取得する総印刷データ数取得手段として機能させ、
前記数情報取得手段は前記積層造形装置から前記数情報及び１つの前記印刷データに基づく積層に要した時間情報を取得し、
前記進捗情報作成手段は、前記総印刷データ数、前記数情報及び前記時間情報を用いて、前記進捗情報として前記造形物の残りの造形に要する残り時間情報を算出し、
前記表示手段は、前記表示装置に前記残り時間情報を表示する請求項１〜６いずれか１項に記載のプログラム。
【請求項８】
前記進捗情報作成手段は、前記総印刷データ数及び前記数情報を用いて前記進捗情報として前記造形物の残りの造形に用いられる残りの前記印刷データのデータ数を算出し、
前記表示手段は、前記表示装置に前記残りの前記印刷データのデータ数を表示する請求項７に記載のプログラム。
【請求項９】
印刷データに基づく材料の積層を繰り返して造形物を造形する積層造形装置に対し印刷指示を行う情報処理装置であって、
前記積層造形装置が材料の積層に用いた前記印刷データの数情報を取得する数情報取得手段と、
前記数情報を用いて前記造形物の造形の進捗情報を作成する進捗情報作成手段と、
前記進捗情報を表示装置に表示する表示手段と、
を有する情報処理装置。
【請求項１０】
印刷データに基づく材料の積層を繰り返して造形物を造形する積層造形装置に対し印刷指示を行う情報処理装置によって行われる進捗表示方法であって、
数情報取得手段が、前記積層造形装置が材料の積層に用いた前記印刷データの数情報を取得するステップと、
進捗情報作成手段が、前記数情報を用いて前記造形物の造形の進捗情報を作成するステップと、
表示手段が、前記進捗情報を表示装置に表示するステップと、
を有する進捗表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置及び進捗表示方法に関する。
【背景技術】
【０００２】
情報処理装置のアプリケーションソフトで作成した文書等をユーザが印刷装置に送信することで印刷することが行われている。また、インクを吐出する印刷技術等を応用して、立体物を表すデータをもとに樹脂などを何層にも積み重ねて立体物を造形する３Ｄプリンタが普及するようになってきた。
【０００３】
ところで、いわゆる用紙への印刷の際、情報処理装置が印刷の進行状況をユーザに通知することが行われる場合がある（例えば、特許文献１参照。）。特許文献１には、印刷装置から印刷処理の進行状況を示す進行状況情報を受信する受信手段と、前記進行状況情報に基づいて印刷処理の進行状況を前記表示装置に出力する出力手段と、として前記情報処理装置を機能させるプログラムが開示されている。
【０００４】
用紙への印刷の際と同様に、３Ｄプリンタが立体物を造形している間も情報処理装置が印刷状況を表示できれば便利である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、３Ｄプリンタを用いた造形中に情報処理装置が印刷状況を表示するには下記の問題があった。説明の便宜上、印刷状況を表示するプログラムを印刷状況表示プログラムと称することにする。
【０００６】
まず、従来の用紙に対する印刷では次のように印刷処理が行われる。１ジョブの印刷データをアプリケーションソフトからプリンタドライバが受け取る。プリンタドライバは１ジョブ内の印刷をページ単位で処理する（例えば、プリンタドライバでのデータ生成処理／印刷データをＯＳ（Operating  System）のスプーラーに転送／スプーラーが印刷装置へ印刷データを転送／プリンタが排紙まで完了）。印刷状況表示プログラムは、プリンタドライバの印刷処理を監視し、印刷状況を適宜更新しながら表示させている。
【０００７】
これに対し、現在、一般に入手可能な３Ｄプリンタ（例えば、樹脂をノズルから吹きかけることで造形する方式）の印刷データは、造形対象の３Ｄモデルをスライスすることにより作成した２次元のページデータの集合体である。このページデータには主に以下の２種類の形式が存在する。
(Ａ)    １ジョブをｎスライス（ページ）で表すデータ形式
(Ｂ)    １ジョブを１スライス（ページ）で表すデータ形式
したがって、（Ｂ）のデータ形式では１ジョブに１スライスしか含まれないので（１ジョブごとに印刷が完了したものとして印刷状況を表示してしまうので）、用紙への印刷に対応した印刷状況表示プログラムでは進行状況を表示できないという問題がある。また、３Ｄモデルのスライス数は膨大になることが一般的であるが、（Ａ）のデータ形式においても膨大なスライス数を用いて進捗状況を適切に表示する技術は考案されていないという問題がある。
【０００８】
本発明は、上記課題に鑑み、３Ｄプリンタの印刷状況を表示できるプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記課題に鑑み、印刷データに基づく材料の積層を繰り返して造形物を造形する積層造形装置に対し印刷指示を行う情報処理装置を、前記積層造形装置が材料の積層に用いた前記印刷データの数情報を取得する数情報取得手段と、前記数情報を用いて前記造形物の造形の進捗情報を作成する進捗情報作成手段と、前記進捗情報を表示装置に表示する表示手段と、として機能させるためのプログラムを提供する。
【発明の効果】
【００１０】
３Ｄプリンタの印刷状況を表示できるプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置により表示される印刷状況の概略を説明する図の一例である。
【図２】印刷システムの構成例を示す図である。
【図３】情報処理装置のハードウェア構成図の一例である。
【図４】３Ｄプリンタのハードウェア構成図の一例である。
【図５】情報処理装置と３Ｄプリンタを含む印刷システムの機能構成図の一例である。
【図６】３Ｄモデルのスライスを模式的に説明する図の一例である。
【図７】情報処理装置が進捗状況画面を表示する手順を示すシーケンス図の一例である。
【図８】情報処理装置が進捗状況画面を表示する手順を示すシーケンス図の一例である。
【図９】情報処理装置が進捗状況画面を表示する手順を示すシーケンス図の一例である。
【図１０】ディスプレイに表示された進捗状況画面の一例を示す図である。
【図１１】情報処理装置と３Ｄプリンタを含む印刷システムの機能構成図の一例である（実施例２）。
【図１２】情報処理装置が進捗状況画面を表示する手順を示すシーケンス図の一例である（実施例２）。
【図１３】情報処理装置と３Ｄプリンタを含む印刷システムの機能構成図の一例である（実施例３）。
【図１４】情報処理装置が進捗状況画面を表示する手順を示すシーケンス図の一例である（実施例３）。
【図１５】情報処理装置と３Ｄプリンタを含む印刷システムの機能構成図の一例である（実施例４）。
【図１６】情報処理装置が進捗状況画面を表示する手順を示すシーケンス図の一例である（実施例４）。
【図１７】ディスプレイに表示された進捗状況画面の一例を示す図である（実施例４）。
【図１８】ディスプレイに表示された進捗状況画面の一例を示す図である（実施例４）。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１３】
図１は、本実施例の情報処理装置２０により表示される印刷状況の概略を説明する図の一例である。情報処理装置２０はプリンタドライバ３０と汎用表示プログラム４０を実行している。３Ｄプリンタ５０はプリンタドライバ３０から送信された３Ｄモデルの１スライス分の印刷データＤに基づいて材料（例えば樹脂）を吐出し、それを繰り返すことで立体物を造形する。
【００１４】
３Ｄプリンタ５０が造形可能な造形物の高さ（以下、上限高さ情報Ｍｈという）は固定である。また、１スライス分で造形される高さである１スライス高さ情報ｈ（積層ピッチ）に関しても、印刷中は一定である場合が多く、情報処理装置２０が予め１スライス高さ情報ｈを保持しておくことができる。
【００１５】
汎用表示プログラム４０は、３Ｄプリンタ５０から造形が終了した又は造形中の印刷データＤのスライス番号Ｎ（数情報の一例）を逐次、取得する。したがって、汎用表示プログラム４０は造形物の現在の高さＨを以下のようにして計算できる。
造形物の現在の高さＨ＝１スライス高さ情報ｈ×スライス番号Ｎ
よって、汎用表示プログラム４０はこの造形物の現在の高さＨをディスプレイ等に表示できる。図示するように、汎用表示プログラム４０は造形物の現在の高さＨ（図１の符号は６０２）と上限高さ情報Ｍｈ（図１の符号は６０３）を進捗状況画面６０１に配置してディスプレイ等に表示する。造形物の現在の高さＨは造形物の造形の進捗情報となる。
【００１６】
したがって、ユーザは造形がどのくらい終了したかという進捗状況をリアルタイムに把握できる。なお、造形物が上限高さ情報Ｍｈとほぼ同じになるとは限らないが、ユーザは自分の造形物の高さを把握しているので、造形物の現在の高さＨが分かれば、造形がどのくらい進捗しているかを把握できる。
【００１７】
このように本実施例の汎用表示プログラム４０は１ジョブのデータ形式に関わりなくスライス番号Ｎを取得できるので、造形の進捗状況をリアルタイムに表示できる。また、造形物の現在の高さＨを寸法値で表示できる。
【００１８】
＜用語について＞
以下の実施例で用いる用語について説明する。
・３Ｄモデル…３Ｄアプリ１０が作成する造形対象の立体物である。
・３Ｄデータ…３Ｄモデルを表すデータである。
・ページデータ…３Ｄモデルをスライスして得られる材料の吐出位置を示すデータであり、１枚を意味する場合と３Ｄモデルの全体分を意味する場合がある。複数のページデータのうちの１つを意味する場合、１ページという場合がある。
・印刷データＤ…１つ以上のページデータである。印刷データとページデータは厳密に区別しない場合がある。
【００１９】
＜構成例＞
図２は、印刷システム１の構成例を示す図である。印刷システム１はネットワーク２を介して接続された情報処理装置２０と３Ｄプリンタ５０を有する。ネットワーク２は主に社内ＬＡＮであるが、ＷＡＮ又はインターネットを含んでいてもよい。また、情報処理装置２０と３Ｄプリンタ５０はＵＳＢケーブルなどの専用線を介して接続されていてもよい。ネットワーク２や専用線は全てが有線で構築されていてもよいし、一部又は全てが無線ＬＡＮ、Bluetooth（登録商標）、などの無線にて構築されていてもよい。
【００２０】
情報処理装置２０は、主にＰＣ（Personal Computer）であるが、後述する３Ｄアプリ１０、汎用表示プログラム４０及びプリンタドライバ３０が動作する装置であればよい。情報処理装置２０としては、例えば、タブレット型端末、スマートフォン、ＰＤＡ（Personal Digital Assistant）、携帯電話、ウェアラブルＰＣ、ゲーム機器、カーナビゲーション端末、電子ホワイトボード、プロジェクタなどがある。
【００２１】
また、情報処理装置２０がサーバ９０に３Ｄデータを送信しておき、サーバ９０が３Ｄアプリ１０及びプリンタドライバ３０を実行し３Ｄプリンタ５０に印刷データＤを送信する形態も可能である。この場合、情報処理装置２０はファイルとして３Ｄデータを有していればよいため、３Ｄアプリ１０及びプリンタドライバ３０を実行する性能を有していなくてもよい。この場合、サーバ９０は３Ｄプリンタ５０から取得したスライス番号Ｎなどを情報処理装置２０に転送し、１スライス高さ情報ｈや上限高さ情報Ｍｈを情報処理装置２０に送信する。情報処理装置２０の汎用表示プログラム４０は造形物の現在の高さＨを算出して表示する。また、サーバ９０が進捗状況画面６０１をＨＴＭＬデータなどで作成し情報処理装置２０に送信してもよい。
【００２２】
３Ｄプリンタ５０は正式には積層造形装置と呼ばれる。３Ｄプリンタ５０は、３Ｄアプリ１０が作成する３Ｄデータ（さらに具体的にはプリンタドライバ３０が３Ｄデータから作成する印刷データＤ）を元に立体物を造形する。３Ｄアプリ１０としては、３ＤＣＡＤや３ＤＣＧがある。３Ｄアプリ１０が出力する３ＤデータのデータフォーマットとしてはＳＴＬ（Standard Triangulated Language）が知られているがこれに限られるものではない。３Ｄプリンタ５０は、３Ｄアプリ１０が作成した３Ｄデータからプリンタドライバ３０が作成した印刷データＤを設計図として、断面形状を積層していくことで立体物を造形する。３Ｄプリンタの造形方法としては、主に、液状の樹脂を塗布して紫外線などを照射し少しずつ硬化させていくインクジェット方式、熱で融解した樹脂を少しずつ積み重ねていくＦＤＭ方式（Fused Deposition Modeling）、粉末の樹脂に接着剤を吹きつけていく粉末固着方式などの造形方法があるが、本実施例では造形方法は問わない。特に断らなければ樹脂を塗布するものとして説明する。
【００２３】
<<ハードウェア構成>>
（情報処理装置）
図３は、情報処理装置２０のハードウェア構成図の一例である。なお、情報処理装置２０の構成は図３に示すものに限られない。
【００２４】
情報処理装置２０は、ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、ＨＤＤ(Hard Disk Drive)５０５、ディスプレイ５０８、ネットワークＩ／Ｆ５０９，キーボード５１１、マウス５１２、メディアドライブ５０７、光学ドライブ５１４、ＵＳＢＩ／Ｆ５１５、及び、これらを電気的に接続するためのアドレスバスやデータバス等のバスライン５１０を備えている。
【００２５】
ＣＰＵ５０１は情報処理装置２０全体の動作を制御する。ＲＯＭ５０２はＩＰＬ等のＣＰＵ５０１の駆動に用いられるプログラムを記憶している。ＲＡＭ５０３はＣＰＵ５０１のワークエリアとして使用される。ＨＤ５０４は３Ｄアプリ１０、プリンタドライバ３０、汎用表示プログラム４０、ＯＳ（Operating System）及び各種データを記憶する。ＨＤＤ５０５は、ＣＰＵ５０１の制御にしたがってＨＤ５０４に対する各種データの読み出し又は書き込みを制御する。ネットワークＩ／Ｆ５０９はネットワーク２を利用してデータ通信するためのインタフェースである。キーボード５１１は文字、数値、各種指示などをユーザが入力するための複数のキーを備えた装置である。マウス５１２は各種指示の選択や実行、処理対象の選択、カーソルの移動などをユーザが入力するための装置である。メディアドライブ５０７は、フラッシュメモリ等の記録メディア５０６に対するデータの読み出し又は書き込み（記憶）を制御する。光学ドライブ５１４は着脱可能な記録媒体の一例としてのＣＤ−ＲＯＭ(Compact Disc Read Only Memory)５１３に対する各種データの読み出し又は書き込みを制御する。ディスプレイ５０８はカーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。ディスプレイ５０８はプロジェクタなどでもよい。ＵＳＢＩ／Ｆ５１５はＵＳＢケーブルやＵＳＢメモリ等を接続するインタフェースである。
【００２６】
なお、３Ｄアプリ１０、プリンタドライバ３０、及び、汎用表示プログラム４０は、記録メディア５０６やＣＤ−ＲＯＭ５１３に記憶された状態で配布されたり、プログラムを配布する配布サーバからダウンロードされることで配布される。
【００２７】
（３Ｄプリンタ）
図４は、３Ｄプリンタ５０のハードウェア構成図の一例である。なお、３Ｄプリンタ５０の構成は図３に示すものに限られない。
【００２８】
３Ｄプリンタ５０は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ２０４、操作パネル２０５、印刷エンジン２０６、ネットワークＩ／Ｆ２０７，ＵＳＢＩ／Ｆ２０８、及び、これらを電気的に接続するためのアドレスバスやデータバス等のバスライン２１０を備えている。
【００２９】
ＣＰＵ２０１はＨＤ２１１に記憶されているプリンタ用プログラムを実行して３Ｄプリンタ５０を統合的に制御する。ＲＡＭ２０２は印刷データ等を一時的に記憶する。ＲＯＭ２０３は３Ｄプリンタ５０の起動用のプログラムや３Ｄプリンタ５０を制御するための各種データ等があらかじめ不揮発的に記憶している。なお、ＣＰＵ２０１、ＲＡＭ２０２及びＲＯＭ２０３は、画像処理や印刷エンジンの動作を制御する専用のＡＳＩＣ（Application Specif ic Integrated Circuit）により構成されていてもよい。 
ＨＤ２１１はプリンタドライバ３０や印刷データ、３Ｄプリンタ５０に対する設定などの各種データを記憶する。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２１１に対する各種データの読み出し又は書き込みを制御する。
【００３０】
操作パネル２０５は、各種情報の表示を行う表示装置（液晶ディスプレイや有機ＥＬ ディスプレイなど）とユーザ操作の受付などを行うタッチパネルの機能を備える。また、操作パネル２０５は固定されたハードキーを有している。印刷エンジン２０６はＣＰＵからの指示により樹脂を積層して立体物を造形するものであり、印刷エンジン２０６は樹脂を吐出する印刷ヘッド、印刷ヘッドを搭載するキャリッジ、キャリッジを主走査方向に駆動する（３Ｄプリンタによっては副走査方向にも駆動する）キャリッジ駆動機構等の各種機構を備える。
【００３１】
ネットワークＩ／Ｆ２０７はネットワーク２を利用して情報処理装置２０とデータ通信するためのインタフェースである。ＵＳＢＩ／Ｆ２０８はＵＳＢメモリなどの記憶媒体や外部装置と接続するためのインタフェースである。
【００３２】
＜印刷システムの機能構成例＞
図５は、情報処理装置２０と３Ｄプリンタ５０を含む印刷システム１の機能構成図の一例である。
【００３３】
<<情報処理装置>>
情報処理装置２０上では３Ｄアプリ１０、プリンタドライバ３０、及び、汎用表示プログラム４０が実行される。
【００３４】
（３Ｄアプリ）
３Ｄアプリ１０が有する機能は、図３に示されている各構成要素のいずれかが、ＨＤ５０４からＲＡＭ５０３上に展開された３Ｄアプリ１０に従ったＣＰＵ５０１からの命令によって動作することで実現される機能、又は機能される手段である。
【００３５】
３Ｄアプリ１０は印刷要求部１１を有する。印刷要求部１１は、情報処理装置２０のＣＰＵ５０１によって実現され、ユーザの指示にしたがって、３Ｄデータ（図５の符号は３Ｄ）の印刷指示を出力する。印刷指示される際の３Ｄデータのデータフォーマットは例えばＳＴＬである。
【００３６】
（プリンタドライバ）
プリンタドライバ３０が有する機能は、図３に示されている各構成要素のいずれかが、ＨＤ５０４からＲＡＭ５０３上に展開されたプリンタドライバ３０に従ったＣＰＵ５０１からの命令によって動作することで実現される機能、又は機能される手段である。
【００３７】
また、プリンタドライバ３０は、図３に示されているＨＤ５０４によって構築されるプリンタ情報ＤＢ３９を有している。まず、プリンタ情報ＤＢ３９について説明する。
【００３８】
【表１】
2016173730.tif 000003
プリンタ情報ＤＢ３９には、３Ｄプリンタ５０の情報として、上限高さ情報Ｍｈの値として１２０〔ｍｍ〕、及び、１スライス高さ情報ｈの値として０．０５〔ｍｍ〕が登録されている。これらの値は、プリンタドライバ３０が３Ｄプリンタ５０と通信した際に取得されたものが保持されていてもよいし、ユーザが手動でプリンタドライバ３０に設定したものでもよい。このように、３Ｄプリンタ５０の静的な情報であればプリンタドライバ３０が保持しておくことができる。
【００３９】
次に、プリンタドライバ３０が有する各機能について説明する。３Ｄプリンタ５０はプリンタ通信部３１、リペティア部３２、スライス部３３、及び、プログラム通信部３４を有している。
【００４０】
プリンタ通信部３１は、図３に示されているＣＰＵ５０１、ＯＳ及びネットワークＩ／Ｆ５０９等によって実現され、３Ｄプリンタ５０と通信する。具体的には３Ｄデータから変換された印刷データＤを３Ｄプリンタ５０に送信する。
【００４１】
リペティア部３２は立体物の造形に関し３Ｄプリンタ５０を制御する。具体的には、リペティア部３２は、３Ｄデータにて表された３Ｄモデルを３Ｄプリンタ５０の仮想空間に配置する。すなわち、３Ｄモデルの向きを設定する。次に、次述するスライス部３３に依頼して、３Ｄモデルをスライスする。リペティア部３２はスライスして得られた３Ｄモデルの断面形状に基づいて各ページデータ（印刷データＤ）を作成する。印刷データＤはＧコードと呼ばれる形式で記述されることが多いが、本実施例では形式を限定しない。リペティア部３２は、プリンタ通信部３１を介して印刷データＤを３Ｄプリンタ５０に送信する。具体的には、３Ｄプリンタ５０と連携しながら印刷データＤに基づいて３Ｄプリンタ５０に制御信号（樹脂の吐出位置など）を送信する。
【００４２】
スライス部３３は、仮想空間に配置された３Ｄモデルの下方から１スライス高さ情報ｈごとの高さで３Ｄモデルをスライスする。詳細は後述する。
【００４３】
プログラム通信部３４は、図３に示されているＣＰＵ５０１によって実現され、所定のＡＰＩ（Application Interface）を介して汎用表示プログラム４０と通信する。具体的には、プリンタ情報ＤＢ３９に記憶されたプリンタ情報（上限高さ情報Ｍｈ、１スライス高さ情報ｈ）を汎用表示プログラム４０に送信する。なお、プログラム通信部３４は、３Ｄアプリ１０から印刷指示を受け取ると、汎用表示プログラム４０を起動させておく。
【００４４】
（汎用表示プログラム）
汎用表示プログラム４０が有する機能は、図３に示されている各構成要素のいずれかが、ＨＤ５０４からＲＡＭ５０３上に展開された汎用表示プログラム４０に従ったＣＰＵ５０１からの命令によって動作することで実現される機能、又は機能される手段である。
【００４５】
汎用表示プログラム４０は取得部４１、ドライバ通信部４２、現在高さ計算部４３、及び、進行状況表示部４４を有している。
【００４６】
ドライバ通信部４２は、図３に示されているＣＰＵ５０１等によって実現され、プリンタドライバ３０と通信する。具体的にはプリンタ情報ＤＢ３９に記憶されたプリンタ情報（上限高さ情報Ｍｈ、１スライス高さ情報ｈ）を、ＡＰＩを介してプリンタドライバ３０から取得する。取得するタイミングは、汎用表示プログラム４０が起動した直後、汎用表示プログラム４０が進捗状況画面６０１を表示する際などであるが、進捗状況画面６０１が表示されるまでに取得できればよい。
【００４７】
取得部４１は、図３に示されているＣＰＵ５０１及びネットワークＩ／Ｆ５０９等によって実現され、３Ｄプリンタ５０と通信する。具体的にはスライス番号Ｎを３Ｄプリンタ５０から取得する。取得部４１がスライス番号Ｎを要求してもよいし、３Ｄプリンタ５０から受動的に通知されてもよい。
【００４８】
現在高さ計算部４３は、図３に示されているＣＰＵ５０１により実現され、スライス番号Ｎと１スライス高さ情報ｈから造形物の現在の高さＨを計算する。
【００４９】
進行状況表示部４４は、造形物の現在の高さＨや上限高さ情報Ｍｈを用いて進捗状況画面６０１を作成し、ディスプレイ５０８に表示する。
【００５０】
<<３Ｄプリンタ>>
３Ｄプリンタ５０が有する機能は、図４に示されている各構成要素のいずれかが、ＨＤ２１１からＲＡＭ２０２上に展開されたプリンタ用プログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能、又は機能される手段である。
【００５１】
３Ｄプリンタ５０は、印刷データ取得部５１、造形処理部５２及び進行状況通知部５３を有している。印刷データ取得部５１は、図４に示されているＣＰＵ２０１及びネットワークＩ／Ｆ２０７などにより実現され、プリンタドライバ３０から印刷データＤを取得する。
【００５２】
造形処理部５２は、図４に示されているＣＰＵ２０１及び印刷エンジン２０６などにより実現され、プリンタドライバ３０から取得した印刷データＤにしたがって、吐出位置を決めるモータの駆動信号、樹脂を吐出させる印刷ヘッドの駆動信号を生成したり、樹脂の温度制御、ＵＶ光の照射・停止などを制御する。
【００５３】
進行状況通知部５３は、図４に示されているＣＰＵ２０１及びネットワークＩ／Ｆ２０７などにより実現され、造形中のページデータ又は造形が完了したページデータのスライス番号Ｎを汎用表示プログラム４０に通知する。通知のタイミングは、進行状況が変化したタイミング（１ページの造形が完了したタイミング）、定期的なタイミング、又は、汎用表示プログラム４０から要求されたタイミングなどであるが、これらに限られるものではない。
【００５４】
＜３Ｄモデルのスライス＞
図６は３Ｄモデルのスライスを模式的に説明する図の一例である。図６のＸ，Ｙ、Ｚは３Ｄプリンタ５０の仮想空間の座標である。３Ｄモデルが仮想空間に配置されることで、３Ｄモデルの座標が確定する。
【００５５】
スライス部３３は、上記のように１スライス高さ情報ｈごとに３ＤモデルのＸＹ平面の断面形状を抽出する。３Ｄデータは、３Ｄモデルの形状を三つの頂点の座標と法線ベクトルにより定義した三角ポリゴンを組み合わせたものであるので、１スライス高さ情報ｈにおける３ＤモデルのＸＹ座標を計算で求めることができる。したがって、ある高さＺにおける３Ｄモデルの断面の座標を全て得ることができる。例えば最も低い高さＺでは、Ｓ１（Ｘ１，Ｙ１）、Ｓ１（Ｘ２，Ｙ２）、Ｓ１（Ｘ３，Ｙ３）、及び、Ｓ１（Ｘ４，Ｙ４）を結ぶ断面形状が得られ、この断面形状の内側が樹脂の吐出範囲になる。これにより、１スライス分のページデータが得られる。
【００５６】
スライス部３３は１スライス高さ情報ｈずつＺ方向の値を大きくして、同様にページデータを作成する。なお、内部に空洞がある３Ｄモデルの場合でも、３Ｄデータでこの空間が表現されていれば、空間のある立体物を造形するページデータが得られる。
【００５７】
＜処理の手順＞
図７は、情報処理装置２０が進捗状況画面６０１を表示する手順を示すシーケンス図の一例である。なお、図７では、説明の便宜上、３Ｄプリンタ５０が印刷データＤを受信終了した後に印刷処理が行われているが、印刷データＤの受信と印刷処理とは部分的に又は全てが並行していてもよい。 
S1：プリンタドライバ３０のリペティア部３２は３Ｄアプリ１０からの印刷開始の指示と共に、３Ｄアプリ１０が作成した３Ｄデータを取得する。
S2：プリンタドライバ３０のリペティア部３２はスライス部３３に対し３Ｄデータをスライスさせる。スライス部３３は、プリンタ情報ＤＢ３９から１スライス高さ情報ｈを読み出し３Ｄデータをスライスする。リペティア部３２はスライスすることで得られる断面形状などに基づき３Ｄプリンタ５０に印刷を行わせるための印刷データＤを生成する。プリンタドライバ３０が、３Ｄデータと共に印刷設定（印刷速度や解像度など）を取得した場合は、印刷データＤに印刷設定を反映させる。なお、３Ｄアプリ１０が３Ｄデータをスライスしてもよい。この場合、３Ｄアプリ１０は予め１スライス高さ情報ｈを保持していてもよいし、プリンタドライバ３０から取得してもよい。
S3：プリンタドライバ３０のプリンタ通信部３１は印刷データＤを３Ｄプリンタ５０に送信する。３Ｄプリンタ５０の印刷データ取得部５１は印刷データＤを取得する。印刷データＤは複数のページデータを含むので、一度に送信される必要はなく、順次送信されてもよい。また、具体的には制御信号の形態で送信されてよい。
S4：３Ｄプリンタ５０の印刷データ取得部５１は樹脂の残量など印刷できる状態か否かを診断し、印刷可能であれば印刷の開始を情報処理装置２０に送信する。
S5：３Ｄプリンタ５０の造形処理部５２は造形を開始し、プリンタドライバ３０から印刷データＤが送信される間、立体物の造形を継続する。
S6：汎用表示プログラム４０のドライバ通信部４２はプリンタドライバ３０から１スライス高さ情報ｈと上限高さ情報Ｍｈを取得する。なお、１スライス高さ情報ｈと上限高さ情報Ｍｈは、図１に示した進捗状況画面６０１を表示するまでの間に取得すればよい。
S7：３Ｄプリンタ５０の進行状況通知部５３は、少なくとも１ページデータの造形が完了するとスライス番号Ｎを汎用表示プログラム４０に送信する。造形中のページデータのスライス番号を送信してもよい。
S8：汎用表示プログラム４０の取得部４１はスライス番号Ｎを取得する。そして、現在高さ計算部４３が１スライス高さ情報ｈとスライス番号Ｎから造形物の現在の高さＨを計算する。進行状況表示部４４は、造形物の現在の高さＨと上限高さ情報Ｍｈを表示する進捗状況画面６０１をディスプレイ５０８に表示する。
S9：汎用表示プログラム４０の取得部４１は、３Ｄプリンタ５０から通知される他、定期的なタイミング、ユーザから指示されたタイミングなどでスライス番号Ｎを取得する。現在高さ計算部４３はスライス番号Ｎを取得するごとに造形物の現在の高さＨを計算し、進行状況表示部４４は、造形物の現在の高さＨが更新された進捗状況画面６０１をディスプレイ５０８に表示する。
【００５８】
３Ｄプリンタ５０は印刷データＤの全てを造形すると印刷の終了をプリンタドライバ３０に返し、図７の処理が終了する。
【００５９】
以上説明したように、本実施例の汎用表示プログラム４０はスライス番号Ｎを取得できるので、印刷データのデータ形式に関わりなく印刷の進捗状況をリアルタイムに表示できる。また、造形物の現在の高さＨを寸法値で表示できる。また、汎用表示プログラム４０は、３Ｄアプリ１０とは通信せずに進捗状況画面６０１を表示できるので、３Ｄアプリ１０に対し汎用的な進捗状況画面６０１を表示できる。
【００６０】
なお、本実施例では、１スライス高さ情報ｈが固定であるかのように説明したが、３Ｄプリンタ５０によっては、ユーザがプリンタドライバ３０に１スライス高さ情報ｈに設定することができる場合がある。ユーザが設定できる１スライス高さ情報ｈは最小積層ピッチ以上かつ最大積層ピッチ以下であり、入力値はこの範囲内に限って受け付けられる。したがって、１スライス高さ情報ｈは３Ｄプリンタ５０から取得されるものやプリンタドライバ３０が保持するものに限られない。この場合、汎用表示プログラム４０は３Ｄアプリ１０からプリンタドライバ３０を経由して１スライス高さ情報ｈを取得する。
【００６１】
＜変形例＞
続いて、本実施例の汎用表示プログラム４０についていくつかの変形例を説明する。
【００６２】
<<変形例１>>
本実施例では、汎用表示プログラム４０がプリンタドライバ３０から１スライス高さ情報ｈを取得したが、汎用表示プログラム４０は３Ｄプリンタ５０から１スライス高さ情報ｈを取得してもよい。
【００６３】
図８は、情報処理装置２０が進捗状況画面６０１を表示する手順を示すシーケンス図の一例である。図８はステップＳ７が図７と異なるため、主にステップＳ７について説明する。
S7：３Ｄプリンタ５０の進行状況通知部５３は、少なくとも１ページデータの造形が完了するとスライス番号Ｎを汎用表示プログラム４０に送信する。進行状況通知部５３はスライス番号Ｎと共に、又は、スライス番号Ｎとは別に１スライス高さ情報ｈを汎用表示プログラム４０に送信する。これにより、現在高さ計算部４３は１スライス高さ情報ｈとスライス番号Ｎから造形物の現在の高さＨを計算できる。
【００６４】
進行状況通知部５３は１スライス高さ情報ｈを１つの造形物が造形されるまでの間に一度だけ送信してもよいし、スライス番号Ｎと共に繰り返し送信してもよいし、また、スライス番号Ｎよりも少ない数だけ送信してもよい。
【００６５】
また、３Ｄプリンタ５０は汎用表示プログラム４０に直接、１スライス高さ情報ｈを送信するのでなく、プリンタドライバ３０に送信してもよい。汎用表示プログラム４０はプリンタドライバ３０から１スライス高さ情報ｈを取得する。
【００６６】
このように、３Ｄプリンタ５０から１スライス高さ情報ｈを取得する場合、３Ｄプリンタ５０に現在、設定されている１スライス高さ情報ｈを取得できる（プリンタドライバ３０が現在、保持している値が実際の１スライス高さ情報ｈと異なっている可能性を考慮する必要がない）。また、プリンタドライバ３０が１スライス高さ情報ｈを保持しておく必要がない。
【００６７】
また、上限高さ情報Ｍｈについても同様であり、汎用表示プログラム４０は３Ｄプリンタ５０から上限高さ情報Ｍｈを取得してもよい。上限高さ情報Ｍｈについて、３Ｄプリンタ５０は１スライス高さ情報ｈと共に上限高さ情報Ｍｈを汎用表示プログラム４０に送信してもよいし、１スライス高さ情報ｈとは別に送信してもよい。また、３Ｄプリンタ５０はプリンタドライバ３０を経由して上限高さ情報Ｍｈを汎用表示プログラム４０に送信してもよい。
【００６８】
<<変形例２>>
また、本実施例の汎用表示プログラム４０は３Ｄモデルの実際の高さ（以下、実際高さｈｘという）を表示してもよい。３Ｄモデルの実際高さｈｘは３Ｄデータから明らかなので、プリンタドライバ３０が仮想空間に配置した３Ｄモデルから算出できる。この実際高さｈｘをプリンタドライバ３０が汎用表示プログラム４０に送信すればよい。
【００６９】
３Ｄアプリ１０がスライスする構成では、次のようにしてプリンタドライバ３０が実際高さｈｘを計算する。（Ａ）のデータ形式の場合、１ジョブのページ数と１スライス高さ情報ｈを掛けることで実際高さｈｘを算出できる。また、（Ｂ）のデータ形式では、ジョブ数と１スライス高さ情報ｈを掛けることで実際高さｈｘを算出できる。いずれの場合も、プリンタドライバは３Ｄアプリ１０から全ての印刷データを受け取るのを待ってから実際高さｈｘを算出する。
【００７０】
この場合、プリンタドライバ３０が全ての印刷データを受け取るまでは時間がかかることが想定されるため、印刷データを全て受け取るまで汎用表示プログラム４０は上限高さ情報Ｍｈを用いて進捗状況画面を表示してよい。そして、全ての印刷データを受け取ると、実際高さｈｘを使用した進捗状況画面を表示してもよい。
【００７１】
図９は、情報処理装置２０が進捗状況画面６０１を表示する手順を示すシーケンス図の一例である。図９はステップＳ６が図７と異なるため、主にステップＳ６について説明する。
S6：汎用表示プログラム４０のドライバ通信部４２は１スライス高さ情報ｈと上限高さ情報Ｍｈだけでなく、実際高さｈｘ（造形の完了した状態の造形物の完了時高さ）をプリンタドライバ３０から取得する。
【００７２】
なお、実際高さｈｘを取得するタイミングはステップＳ６のタイミングに限られず、進捗状況画面６０１を表示するまでの間に表示すればよい。
【００７３】
図１０はディスプレイ５０８に表示された進捗状況画面６０１の一例を示す図である。図１０の進捗状況画面６０１では、上限高さ情報Ｍｈ（符号６０３）に加え実際高さｈｘ（符号６０４）が表示されている。
【００７４】
ユーザは３Ｄモデルの実際高さｈｘと造形物の現在の高さＨを比較して、印刷の進捗を把握することができる。また、３Ｄアプリ１０で表示する３Ｄモデルと３Ｄプリンタ５０の仮想空間に配置された３Ｄモデルの向きが変わるような場合に、ユーザは３Ｄモデルの実際の高さを把握していなくてもよくなる。
【実施例２】
【００７５】
本実施例では、スプール番号を取得して進捗状況画面６０１を表示する汎用表示プログラム４０について説明する。
【００７６】
図１１は、本実施例の情報処理装置２０と３Ｄプリンタ５０を含む印刷システム１の機能構成図の一例である。本実施例において、図５において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【００７７】
ＯＳによっては、プリンタドライバ３０が作成した印刷データＤをスプール部３８に記憶させる。プリンタドライバ３０のプリンタ通信部３１はこのスプール部３８が記憶している印刷データＤを順次、３Ｄプリンタ５０に送信する。
【００７８】
スプール部３８にはスライス番号をカウントする機能がない場合があるものの、上述した「（Ｂ）１ジョブで１スライスデータのデータ形式」では、ジョブ番号Ｊが各印刷データＤに振られる。このジョブ番号Ｊはスライス番号に等しい。スプール部３８はジョブ番号Ｊ（スライス番号）を管理しており、汎用表示プログラム４０は、スプール部３８からジョブ番号Ｊを取得することで、３Ｄプリンタ５０からスライス番号Ｎを取得しなくても、造形物の現在の高さＨを表示できる。
【００７９】
図示するように本実施例のプリンタドライバ３０はスプール部３８を有している。スプール部３８は、図３に示されているＣＰＵ５０１、ＲＡＭ５０３及びＨＤ５０４等によって実現され、リペティア部３２が作成した印刷データＤをジョブ番号Ｊと共に保持する。プリンタ通信部３１は３Ｄプリンタ５０と通信して、造形の進捗に応じてスプール部３８から読み出した印刷データＤを３Ｄプリンタ５０に送信する。
【００８０】
また、プログラム通信部３４はプリンタ通信部３１が３Ｄプリンタ５０に送信したジョブのジョブ番号Ｊを汎用表示プログラム４０に送信する。ジョブ番号Ｊの送信は、進行状況が変化したタイミング（１ページの造形が完了したタイミング）、定期的なタイミング、又は、汎用表示プログラム４０から要求されたタイミングなどであるが、これらに限られるものではない。
【００８１】
図１２は、情報処理装置２０が進捗状況画面６０１を表示する手順を示すシーケンス図の一例である。図１２はステップＳ７，Ｓ８が図７と異なるため、主にステップＳ７、８について説明する。
S7：プリンタドライバ３０のプログラム通信部３４は、少なくとも１ページデータの造形が完了するとジョブ番号Ｊを汎用表示プログラム４０に送信する。
S8：汎用表示プログラム４０のドライバ通信部４２はジョブ番号Ｊを取得する。そして、現在高さ計算部４３が１スライス高さ情報ｈとジョブ番号Ｊから造形物の現在の高さＨを計算する。
造形物の現在の高さＨ＝１スライス高さ情報ｈ×ジョブ番号Ｊ
進行状況表示部４４は、造形物の現在の高さＨと上限高さ情報Ｍｈが含まれる進捗状況画面６０１をディスプレイ５０８に表示する。
S9：汎用表示プログラム４０のドライバ通信部４２は、プリンタドライバ３０から通知される他、定期的なタイミング、ユーザから指示されたタイミングなどでジョブ番号Ｊを取得する。現在高さ計算部４３は、ジョブ番号Ｊを取得するごとに造形物の現在の高さＨを計算し、進行状況表示部４４は造形物の現在の高さＨが更新された進捗状況画面６０１をディスプレイ５０８に表示する。
【００８２】
したがって、本実施例によれば、汎用表示プログラム４０が３Ｄプリンタ５０からスライス番号Ｎを取得しなくても、プリンタドライバ３０からジョブ番号Ｊを取得することで造形物の現在の高さＨを表示できる。
【００８３】
なお、本実施例では「（Ｂ）１ジョブ・１スライスデータのデータ形式」を例に説明したが、「（Ａ）１ジョブ・ｎスライスデータのデータ形式」の場合も、プリンタ通信部３１などが送信したページデータの数をカウントする機能を有すれば同様に造形物の現在の高さＨを表示できる。ただし、この場合、造形が終わる毎にプリンタドライバ３０が３Ｄプリンタ５０にページデータを送信するページデータの送信態様であることが好ましい。
【実施例３】
【００８４】
本実施例では、スライス番号ではなく１スライス分の印刷終了を検出して進捗状況画面６０１を表示する印刷システム１について説明する。
【００８５】
図１３は、本実施例の情報処理装置２０と３Ｄプリンタ５０を含む印刷システム１の機能構成図の一例である。本実施例において、図５において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【００８６】
本実施例の汎用表示プログラム４０はカウント部４５を有している。カウント部４５は、図３に示されているＣＰＵ５０１等によって実現され、取得部４１が３Ｄプリンタ５０から１ページ分の印刷終了の通知Ｐｅを受けた回数をカウントする。印刷終了の通知Ｐｅを受けた回数に１を加えた回数が、現在、３Ｄプリンタ５０が印刷しているスライス番号である。本実施例では印刷終了の通知Ｐｅを受けた回数又は１を加えた回数を特に区別しないで現在印刷ページ数ｋという。
【００８７】
現在高さ計算部４３は、現在印刷ページ数ｋと１スライス高さ情報ｈから造形物の現在の高さＨを計算する。
【００８８】
図１４は、情報処理装置２０が進捗状況画面６０１を表示する手順を示すシーケンス図の一例である。図１４はステップＳ７，Ｓ７-２及びＳ８が図７と異なるため、主にステップＳ７，Ｓ７-２及びＳ８について説明する。
S7：３Ｄプリンタ５０の進行状況通知部５３は、１ページデータの造形が完了すると印刷終了の通知Ｐｅを汎用表示プログラム４０に送信する。
S7-2：汎用表示プログラム４０の取得部４１は印刷終了を取得する。これにより、カウント部４５が現在印刷ページ数ｋをカウントする。
S8：現在高さ計算部４３は１スライス高さ情報ｈと現在印刷ページ数ｋから造形物の現在の高さＨを計算する。進行状況表示部４４は、造形物の現在の高さＨと上限高さ情報Ｍｈが含まれる進捗状況画面６０１をディスプレイ５０８に表示する。
【００８９】
汎用表示プログラム４０は、印刷終了を取得するごとに、造形物の現在の高さＨが更新された進捗状況画面６０１をディスプレイ５０８に表示する。
【００９０】
したがって、本実施例によれば、スライス番号Ｎの代わりに１ページデータの印刷終了を汎用表示プログラム４０が取得しても造形物の現在の高さＨを表示できる。
【００９１】
なお、本実施例では、汎用表示プログラム４０が３Ｄプリンタ５０から直接、印刷終了の通知Ｐｅを取得したが、汎用表示プログラム４０はプリンタドライバ３０を経由して印刷終了の通知Ｐｅを取得してもよい。この場合、汎用表示プログラム４０は３Ｄプリンタ５０との通信が不要になるので、３Ｄプリンタ５０に対する独立性を高めることができる。
【実施例４】
【００９２】
本実施例では、造形の進捗として印刷完了までの残り時間Ｔを表示する印刷システム１について説明する。
【００９３】
図１５は、本実施例の情報処理装置２０と３Ｄプリンタ５０を含む印刷システム１の機能構成図の一例である。本実施例において、図５において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【００９４】
本実施例のドライバ通信部４２はプリンタドライバ３０から総スライスデータ数Ｇｎを取得する。総スライスデータ数Ｇｎは、実際高さｈｘを１スライス高さ情報ｈで割ることで求められ、総印刷データ数である。そして、汎用表示プログラム４０の取得部４１は、スライス番号Ｎだけでなく１ページデータの印刷に要する時間ｈｓを３Ｄプリンタ５０から取得する。
【００９５】
また、本実施例では、汎用表示プログラム４０が残り時間計算部４６を有している。残り時間計算部４６は、図３に示されているＣＰＵ５０１等によって実現され、印刷完了までの残り時間Ｔを算出する。残り時間Ｔの算出方法は以下のとおりである。
残りスライス数Ａ＝総スライスデータ数−最新のスライス番号Ｎ
残り時間Ｔ＝残りスライス数Ａ×１ページデータの印刷に要する時間ｈｓ
図１６は、情報処理装置２０が進捗状況画面６０１を表示する手順を示すシーケンス図の一例である。図１６はステップＳ６，Ｓ７が図７と異なるため、主にステップＳ６，Ｓ７について説明する。
S6：汎用表示プログラム４０のドライバ通信部４２はプリンタドライバ３０から１スライス高さ情報ｈ、上限高さ情報Ｍｈ及び総スライスデータ数Ｇｎを取得する。なお、これらを同時に取得する必要はない。また、総スライスデータ数Ｇｎは、進捗状況画面６０１を表示するまでの間に表示すればよい。
S7：３Ｄプリンタ５０の進行状況通知部５３は、少なくとも１ページデータの造形が完了するとスライス番号Ｎ及び１ページデータの印刷に要する時間ｈｓ（時間情報）を汎用表示プログラム４０に送信する。進行状況通知部５３はスライス番号Ｎと共に、又は、スライス番号Ｎとは別に１ページデータの印刷に要する時間ｈｓを汎用表示プログラム４０に送信する。これにより、残り時間計算部４６は残り時間Ｔを計算できる。
【００９６】
なお、３Ｄプリンタ５０は汎用表示プログラム４０に直接、１ページデータの印刷に要する時間ｈｓを送信するのでなく、プリンタドライバ３０に送信してもよい。汎用表示プログラム４０はプリンタドライバ３０から１ページデータの印刷に要する時間ｈｓを取得する。
【００９７】
図１７は、ディスプレイ５０８に表示された進捗状況画面６０１の一例を示す図である。図１７の進捗状況画面６０１では、印刷完了までの残り時間Ｔ（符号は６０５）が表示されている。したがって、ユーザは印刷完了までどのくらいの時間が必要かを把握できる。
【００９８】
なお、１ページデータの印刷に要する時間ｈｓは過去の実測値なので、将来の１ページデータの印刷に要する時間と同じであるとは限らない。このため、残り時間計算部４６は過去の１ページデータの印刷に要する時間ｈｓを平均した値を１ページデータの印刷に要する時間ｈｓとして、残り時間Ｔを算出してもよい。
【００９９】
あるいは、各ページデータの断面形状の面積と１ページデータの印刷に要する時間ｈｓを比較して単位面積あたりの印刷に要する時間を算出することも有効である。印刷が終わっていない残りのページデータの断面形状の面積の合計を単位面積あたりの印刷に要する時間で割れば、残り時間Ｔを算出できる。
【０１００】
また、残り時間Ｔに加え、又は、残り時間Ｔの代わりに残りスライス数Ａを表示してもよい。図１８は、ディスプレイ５０８に表示された進捗状況画面６０１の一例を示す図である。図１８の進捗状況画面６０１では、印刷完了までの残りページ数（符号は６０６）が表示されている。残りスライス数Ａは一様に減少するので（増加することはないので）ユーザが違和感を感じることを低減できる。
【０１０１】
＜最後＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１０２】
以上の実施例で示した図５などの構成例は、情報処理装置２０及び３Ｄプリンタ５０の処理の理解を容易にするために、主な機能に応じて分割したものである。例えば、プリンタドライバ３０と汎用表示プログラム４０が一体でもよく、プリンタドライバ３０に汎用表示プログラム４０の機能の一部が含まれていたり、汎用表示プログラム４０にプリンタドライバ３０の機能の一部が含まれていたりしてもよい。
【０１０３】
また、処理単位の分割の仕方や名称によって本願発明が制限されることはない。情報処理装置２０及び３Ｄプリンタ５０の処理は、処理内容に応じてさらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１０４】
また、３Ｄプリンタ５０が一度に複数の立体物を造形する機能を備える場合、それぞれの立体物について造形物の現在の高さＨや残り時間Ｔを表示することができる。
【符号の説明】
【０１０５】
１      印刷システム
２０    情報処理装置
３０    プリンタドライバ
４０    汎用表示プログラム
４１    取得部
４２    ドライバ通信部
４３    現在高さ計算部
４４    進行状況表示部
４５    カウント部
４６    時間計算部
５０      ３Ｄプリンタ
【先行技術文献】
【特許文献】
【０１０６】
【特許文献１】特開２０１２−１９０１１５号公報
【図１】
2016173730.tif 000004
【図２】
2016173730.tif 000005
【図３】
2016173730.tif 000006
【図４】
2016173730.tif 000007
【図５】
2016173730.tif 000008
【図６】
2016173730.tif 000009
【図７】
2016173730.tif 000010
【図８】
2016173730.tif 000011
【図９】
2016173730.tif 000012
【図１０】
2016173730.tif 000013
【図１１】
2016173730.tif 000014
【図１２】
2016173730.tif 000015
【図１３】
2016173730.tif 000016
【図１４】
2016173730.tif 000017
【図１５】
2016173730.tif 000018
【図１６】
2016173730.tif 000019
【図１７】
2016173730.tif 000020
【図１８】
2016173730.tif 000021