(57)【特許請求の範囲】
【請求項１】
三次元形状の造形物を造形する造形装置を制御する制御システムであって、
合成するための複数の造形物の造形データを保存するデータ保存部と、
複数の造形物の造形データに基づいて前記造形装置に造形処理を実行させる合成造形指示を受け付ける指示受付部と、
前記複数の造形物の造形データおよび該造形データに対して設定された造形条件を用いて、該複数の造形物の各々につき、造形に必要とされる領域の大きさを算出する算出部と、
前記算出部により算出された各造形物の領域の大きさに基づき、前記造形装置の造形可能領域内における各造形物の配置を決定する配置決定部と、
前記配置決定部により決定された各造形物の配置に基づき、前記複数の造形物の造形データを加工し合成して合成データを生成するデータ生成部と、
前記データ生成部により生成された前記合成データを前記造形装置に送信するデータ送信部とを含み、
前記指示受付部は、前記合成造形指示と一の造形データを生成するための三次元形状データと造形条件とを受け付け、前記データ保存部に保存された複数の造形物の造形データから造形条件が同じ造形データを検索して表示させ、指定された１以上の造形データを、該一の造形データと合成する１以上の造形データとして決定する、制御システム。
【請求項２】
前記指示受付部が受け付けた三次元形状データを描画処理して造形データを生成する描画処理部をさらに含む、請求項１に記載の制御システム。
【請求項３】
前記造形装置は、粉体材料からなる層を結合剤により結合して前記三次元形状の造形物を造形する装置であり、
前記算出部は、データ保存部に保存された、粉体材料と結合剤と造形物の大きさとの組み合わせに応じて造形物間に確保すべき間隔を規定した間隔情報を参照し、該造形物の大きさに該間隔を加えて、前記領域の大きさを算出する、請求項１または２に記載の制御システム。
【請求項４】
前記配置決定部は、前記造形可能領域内に合成造形指示された前記複数の造形物の全てを配置することができないとき、造形不可である旨を表示させる、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
三次元形状の造形物を造形する造形装置を制御する情報処理装置であって、
合成するための複数の造形物の造形データを保存するデータ保存部と、
複数の造形物の造形データに基づいて前記造形装置に造形処理を実行させる合成造形指示を受け付ける指示受付部と、
前記複数の造形物の造形データおよび該造形データに対して設定された造形条件を用いて、該複数の造形物の各々につき、造形に必要とされる領域の大きさを算出する算出部と、
前記算出部により算出された各造形物の領域の大きさに基づき、前記造形装置の造形可能領域内における各造形物の配置を決定する配置決定部と、
前記配置決定部により決定された各造形物の配置に基づき、前記複数の造形物の造形データを加工し合成して合成データを生成するデータ生成部と、
前記データ生成部により生成された前記合成データを前記造形装置に送信するデータ送信部とを含み、
前記指示受付部は、前記合成造形指示と一の造形データを生成するための三次元形状データと造形条件とを受け付け、前記データ保存部に保存された複数の造形物の造形データから造形条件が同じ造形データを検索して表示させ、指定された１以上の造形データを、該一の造形データと合成する１以上の造形データとして決定する、情報処理装置。
【請求項６】
請求項５に記載の情報処理装置と、三次元形状の造形物を造形する造形装置とを含む、造形システム。
【請求項７】
三次元形状の造形物を造形する造形装置を制御する処理をコンピュータに実行させるためのプログラムであって、
複数の造形物の造形データに基づいて前記造形装置に造形処理を実行させる合成造形指示を受け付けるステップと、
前記複数の造形物の造形データおよび該造形データに対して設定された造形条件を用いて、該複数の造形物の各々につき、造形に必要とされる領域の大きさを算出するステップと、
算出された各造形物の領域の大きさに基づき、前記造形装置の造形可能領域内における各造形物の配置を決定するステップと、
決定された各造形物の配置に基づき、前記複数の造形物の造形データを加工し合成して合成データを生成するステップと、
生成された前記合成データを前記造形装置に送信するステップとを実行させ、
前記受け付けるステップでは、前記合成造形指示と一の造形データを生成するための三次元形状データと造形条件とを受け付け、データ保存部に保存された複数の造形物の造形データから造形条件が同じ造形データを検索して表示させ、指定された１以上の造形データを、該一の造形データと合成する１以上の造形データとして決定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元形状の造形物を造形する造形装置を制御する制御システム、情報処理装置、情報処理装置と造形装置とを含む造形システムおよびその制御をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
三次元形状の造形物を造形する装置として、3Dプリンタが普及してきている。3Dプリンタは、接続される情報処理装置において作成された3Dデータに基づき、材料を積層していくことにより立体的な造形物を造形する。この3Dプリンタでは、同じ種類あるいは異なる種類の複数の造形物を同時に造形することが可能である。
【０００３】
従来、複数の造形物を同時に造形する技術として、アプリケーション上で造形する複数の造形物を、配置位置や姿勢をそれぞれ調整し、調整して得られた造形データを造形装置に送信する技術が知られている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術では、１つの3Dデータに基づいて複数の造形物を同時に造形することはできるが、複数の3Dデータに基づいて複数の造形物を同時に造形することはできない。これでは、複数の造形物を造形するのに時間がかかり、粉体材料の使用量も多くなり、効率良く複数の造形物を造形することができないという問題があった。
【０００５】
そこで、複数の3Dデータに基づいて複数の造形物を同時に造形し、効率良く複数の造形物を造形することができるシステム等の提供が望まれていた。
【課題を解決するための手段】
【０００６】
本発明は、上記課題に鑑み、三次元形状の造形物を造形する造形装置を制御する制御システムであって、複数の造形物の造形データに基づいて造形装置に造形処理を実行させる合成造形指示を受け付ける指示受付部と、複数の造形物の造形データおよび該造形データに対して設定された造形条件を用いて、該複数の造形物の各々につき、造形に必要とされる領域の大きさを算出する算出部と、算出された各造形物の領域の大きさに基づき、造形装置の造形可能領域内における各造形物の配置を決定する配置決定部と、決定された各造形物の配置に基づき、複数の造形物の造形データを加工し合成して合成データを生成するデータ生成部と、生成された合成データを造形装置に送信するデータ送信部とを含む、制御システムが提供される。
【発明の効果】
【０００７】
本発明によれば、効率良く複数の造形物を造形することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置と造形装置とを含む造形システムの構成例を示した図。
【図２】情報処理装置のハードウェア構成を例示した図。
【図３】情報処理装置の機能ブロック図。
【図４】印刷条件を設定する画面を例示した図。
【図５】印刷条件を記述したファイルの内容を示した図。
【図６】BoundingCubeおよびBoundingCylinderについて説明する図。
【図７】印刷方式を選択する画面の一例を示した図。
【図８】印刷方式を選択する画面の別の例を示した図。
【図９】合成ファイル選択画面を例示した図。
【図１０】BoundingBoxおよびBoundingCircleについて説明する図。
【図１１】オフセット情報を記述したファイルの内容を示した図。
【図１２】各造形物の配置について説明する図。
【図１３】各造形物の配置を決定する方法を説明する図。
【図１４】印刷およびデータ保存の流れを示したフローチャート。
【図１５】合成印刷の流れを示したフローチャート。
【発明を実施するための形態】
【０００９】
図１は、本実施形態の情報処理装置としてのPCと、三次元形状の造形物を造形する造形装置としての3Dプリンタとを含む造形システムの構成例を示した図である。図１に示すシステムは、PC１０と3Dプリンタ１１とを含み、互いにネットワーク１２に接続され、ネットワーク１２を介して通信を行うように構成されている。造形システムは、PC１０と3Dプリンタ１１のみから構成されていてもよいが、図１に示すように、サーバ装置１３等の他の機器を含んでいてもよい。なお、ネットワーク１２は、有線ネットワーク、無線ネットワークのいずれであってもよく、ルータやプロキシサーバ等の中継装置を介して接続された２以上のネットワークから構成されたものであってもよい。また、PC１０と3Dプリンタ１１は、直接ケーブル等により接続されていてもよい。
【００１０】
造形システムは、PC１０が3Dプリンタ１１に送信するためのデータを生成し、3Dプリンタ１１がそのデータに基づき、三次元形状の造形物を造形する。PC１０は、そのデータを生成するにあたって、サーバ装置１３から造形物を造形するために必要な情報を取得する。
【００１１】
PC１０は、3Dプリンタ１１が三次元造形物を造形するための三次元形状データ（3Dデータ）を作成する3D CADアプリケーションを実装する。また、PC１０は、3Dプリンタ１１を制御するためのプリンタドライバと、アプリケーションからプリンタドライバへ3Dデータを渡すOSも実装する。プリンタドライバは、3Dデータを描画処理して造形データを生成し、3Dプリンタ１１に送信する。
【００１２】
3Dプリンタ１１は、三次元形状の造形物を造形する装置で、粉体材料と結合剤とを使用して造形物を作成する粉末固着方式の3Dプリンタである。この3Dプリンタ１１は、粉体材料からなる所定厚さの層を形成し、その層上の所定の箇所に結合剤を塗布し、その上に粉体材料からなる層を形成することを繰り返して、三次元形状の造形物を造形する。このため、3Dプリンタ１１は、ベース部に設置される造形槽、ベース部を基準として設定された所定の移動経路に沿って移動可能な結合剤付与装置、造形槽に粉体材料を補給する補給装置を含んで構成される。
【００１３】
ベース部は、3Dプリンタ１１が設置される水平な面を有する床や台等とされる。造形槽は、所定の容積を有する密閉された容器である。補給装置は、造形槽内に粉体材料を、指定された厚さで層状に供給する。結合剤付与装置は、層状に供給された粉体材料上から、その粉体材料の層の所定の箇所あるいは領域に結合剤を吐出することにより塗布する。
【００１４】
サーバ装置１３は、上記の必要な情報を記憶し、管理する。必要な情報としては、造形物の造形に使用される粉体材料や結合剤の情報、一度に複数の造形物を造形する場合に、隣り合う造形物との間に確保しなければならない最小の間隔の情報等である。
【００１５】
粉体材料としては、造形物に応じて、フェノール樹脂等の熱硬化性樹脂の粉末、砂、石膏、金属粉等を使用することができる。結合剤としては、粉体同士を接着するためのエポキシ樹脂やウレタン樹脂等からなる接着剤を用いることができる。なお、粉体材料として石膏を用いる場合は、結合剤として水を用いることができる。これらは一例であり、造形物の造形に使用することができる材料であれば、これらの材料に限定されるものではない。これらの情報については後述する。
【００１６】
図２は、PC１０のハードウェア構成を例示した図である。PC１０は、ハードウェアとして、CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５、表示装置２６、入力装置２７を備える。CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５は、バス２８に接続され、バス２８を介して互いにデータ等のやりとりを行う。
【００１７】
CPU２０は、PC１０全体の制御を行う。ROM２１は、PC１０を起動させるためのブートプログラム、表示装置２６や入力装置２７等の動作を制御するためのファームウェア等を格納する。RAM２２は、CPU２０が各種の処理を実行する際の作業領域を提供する。HDD２３は、上記の3D CADアプリケーションやプリンタドライバ、これらソフトウェアを管理するOS、各種のデータを格納する。
【００１８】
通信I/F２４は、PC１０をネットワーク１２に接続し、ネットワーク１２に接続された3Dプリンタ１１やサーバ装置１３との通信を可能にする。入出力I/F２５は、表示装置２６や入力装置２７を接続し、情報の入力や造形物の3Dモデルの表示等を可能にする。表示装置２６は、CRT(Cathode Ray Tube)や液晶ディスプレイ等を用いることができ、入力装置２７は、マウスやキーボードを用いることができる。
【００１９】
PC１０は、そのほか、CD-ROMドライブやSDカードスロット等の外部記憶装置I/F、マイク等の音声入力装置、スピーカ等の音声出力装置等を備えていてもよい。HDD２３は、SSD(Solid State Drive)等であってもよい。
【００２０】
図３は、プリンタドライバにより実現される機能構成を示した機能ブロック図である。プリンタドライバは、PC１０に実装され、実際には、PC１０が備えるCPU２０がプリンタドライバ等を実行することにより各機能が実現される。ここでは、その内容を分かりやすくするために、プリンタドライバが各機能部を備え、各機能部が各機能を実現するものとして説明する。
【００２１】
プリンタドライバ３０は、機能部として、指示受付部３１、算出部３２、配置決定部３３、データ生成部３４、データ送信部３５を少なくとも備える。プリンタドライバ３０は、そのほか、描画処理部３６を備えることができる。プリンタドライバ３０以外であるが、PC１０には、データ保存部３７も備えることができる。
【００２２】
ユーザは、造形物の造形を行いたい場合、アプリケーション上で造形条件（印刷条件）等の印刷設定を行い、造形（印刷）を指示する。ここでは、3Dプリンタ１１というプリンタを使用するため、「造形」に代えて「印刷」という用語を使用して説明する。したがって、造形指示は、印刷指示となり、造形データは、印刷データとなる。
【００２３】
指示受付部３１は、ユーザから印刷設定する旨の指示を受けて、図４に示すような印刷条件を設定させる画面を表示し、ユーザに印刷条件の設定を行わせる。図４に示す画面では、解像度、積層厚、粉体材料の種類、結合剤の種類等を選択し、設定することができるようになっている。
【００２４】
解像度は、結合剤を塗布する際の結合剤の液滴のサイズを規定する。解像度が大きいほど、液滴のサイズが小さく、解像度が小さいほど、液滴のサイズが大きくなる。したがって、解像度を大きくすればするほど、細かい部分を再現することができる。積層厚は、一回に供給する粉体材料の層厚さである。
【００２５】
粉体材料の種類は、積層する粉体として使用する材料の種類であり、結合剤の種類は、粉体材料からなる層上に塗布する結合剤の種類である。解像度等の値は、図４に示すように選択肢として与えることもできるが、規定値として持っていてもよいし、3Dプリンタ１１等から取得してもよい。図４では、解像度については600dpi、積重厚については40μmという値が選択されている。
【００２６】
印刷条件が設定されると、アプリケーションは、造形物（3Dモデル）のBoundingCubeまたはBoundingCylinderの情報を生成し、その情報を印刷条件に含め、プリンタドライバ３０に渡す。図５に、アプリケーションから渡される印刷条件をxml(Extensible Markup Language)等のマークアップ言語で記述されたファイルの一例を示す。図５に示すように、印刷条件は、3Dプリンタ１１のモデル名、粉体材料の情報、結合剤の情報、3Dモデルのサイズ、すなわちBoundingCubeの情報、BoundingCylinderの情報を含む。指示受付部３１は、設定された印刷条件を受け付け、データ保存部３７に保存する。
【００２７】
ここで、BoundingCubeおよびBoundingCylinderについて、図６を参照して簡単に説明する。BoundingCube４０は、図６（ａ）に示すように、3Dモデル４１の上下左右の各方向に最も突出した端部に接する面により構成された直方体である。この例では、3Dモデル４１が、六角柱の物体とされている。BoundingCylinder４２は、図６（ｂ）に示すように、3Dモデル４１が内側に収まる最小サイズの円柱である。
【００２８】
指示受付部３１は、印刷条件が設定された後、印刷設定として、図７に示すような印刷方式を選択する画面を表示させる。印刷方式は、「印刷」、「合成印刷」、「ファイルに保存」から選択することができる。「印刷」は、その3Dデータのみを使用して印刷する処理を指定し、「合成印刷」は、複数の3Dデータを使用して同時に印刷する処理を指定し、「ファイルに保存」は、ファイル名を付けて保存する処理を指定する。図７では、「ファイルに保存」が選択され、ユーザによってファイル名が入力されている。
【００２９】
図８は、印刷方式を選択する画面の別の例を示した図で、「合成印刷」が選択されている。合成印刷が選択された場合、複数の3Dデータを使用し、複数の3Dモデルを合成する処理を行うため、合成する複数のファイルがリストとして表示される。このリストは、データ保存部３７にこれまでに保存されたファイルの一覧であって、印刷しようとしている3Dデータと同じ印刷条件のファイルのみを一覧にしたものである。したがって、使用する粉体材料、結合剤、積層厚、解像度がすべて同じ条件のファイルの一覧である。
【００３０】
ユーザは、図８中、「合成ファイルの選択」ボタンを押下し、印刷しようとしている3Dデータと合成したいリスト中の１以上のファイルを選択することができる。指示受付部３１は、ユーザの「合成ファイルの選択」ボタンの押下を受けて、リストに表示されたファイルを選択させるために、図９に示すような合成ファイル選択画面を表示することができる。ユーザは、この合成ファイル選択画面において、リストに表示された複数のファイルの中から１以上のファイルを合成ファイルとして指定することができる。
【００３１】
指示受付部３１は、ユーザの印刷方式の選択により、作成した3Dモデルの印刷指示、もしくはその3Dモデルの造形データの保存、または複数の造形物を合成して造形する合成造形指示を受け付ける。そして、指示受付部３１は、描画処理部３６に対して受け付けた3Dモデルの3Dデータの処理を指示する。描画処理部３６は、データ保存部３７に保存された印刷設定を取得し、印刷方式が「印刷」、「ファイルに保存」である場合、3Dデータを描画処理して印刷データを生成する。描画処理部３６は、「印刷」の場合、その生成した印刷データを印刷条件とともにデータ生成部３４に送り、「ファイルに保存」の場合、その印刷データを印刷条件とともにデータ保存部３７に保存させる。
【００３２】
印刷方式が「合成印刷」である場合は、受け付けた3Dデータを描画処理して印刷データを生成するとともに、印刷設定で指定された合成ファイルを取得し、印刷データ、合成ファイル、印刷条件を算出部３２に渡す。
【００３３】
算出部３２は、描画処理部３６から渡された印刷設定から3DモデルのBoundingCubeまたはBoundingCylinderの情報を取得し、この情報および印刷データを基に、図１０に示すBoundingBoxまたはBoundingCircleを作成する。BoundingBox４３は、図１０（ａ）に示すようにBoundingCube４０を水平方向に切断した場合の断面であり、BoundingCircle４４は、図１０（ｂ）に示すようにBoundingCylinder４２を水平方向に切断した場合の断面である。算出部３２は、このようなBoundingBox４３やBoundingCircle４４を作成することで、3Dモデルの大きさ（サイズ）を算出することができる。
【００３４】
算出部３２は、印刷設定に基づき、設定された粉体材料および結合剤のサプライ特性データをデータ保存部３７から取得する。サプライ特性データは、予めサーバ装置１３から読み出され、データ保存部３７に保存される。ここでは、データ保存部３７に保存しているが、算出部３２がサーバ装置１３から直接読み出し取得してもよい。算出部３２は、サプライ特性データから予め決められた3Dモデル間に確保すべき間隔を規定した間隔情報（余白情報）を取得する。そして、算出部３２は、造形に必要とされる領域のサイズを算出する。ここでは、算出部３２は、図１０（ａ）、（ｂ）に示す余白を加味して他の3Dモデルを配置することができない配置不可領域４５、４６を決定する。余白は、固定値として設定されていてもよいし、使用する粉体材料や結合剤等のサプライ特性データに応じて決定してもよい。
【００３５】
サプライ特性データは、印刷条件で設定された粉体材料と結合剤とに応じたパラメータを含む。パラメータは、例えば、粉体材料と結合剤と造形する3Dモデルのサイズの組み合わせに応じて3Dモデル間に確保する必要がある間隔を算出することができるようなものである。サプライ特性データは、オフセット情報として与えられ、一例としては、図１１に示すようなxmlで記述されたファイルとすることができる。
【００３６】
図５に示す印刷条件が与えられた場合、結合剤が「instant adhesives2」であるため、結合剤情報のinstant adhesives2の項目を参照する。そして、粉体材料が「polymerized powder1」であるため、粉体材料のpolymerized powder1の項目を参照する。BoundingBoxの幅、奥行きが600pixelであるので、100pixel以上の「offsetMax」を参照し、3Dモデル間を最小30mmまたは709pixel程空ける必要があることを算出することができる。
【００３７】
再び図３を参照して、配置決定部３３は、決定された配置不可領域４５、４６に基づき、3Dプリンタ１１の造形可能領域内に収まるように各3Dモデルの位置を変え、配置する位置の二次元座標を決定する。例えば、合成する全ての3Dモデルが、造形可能領域内の任意の位置に配置されるものとして設定されていた場合、その任意の位置の座標を(0,0)とし、その座標からの差分を算出し、その差分により各3Dモデルの配置を決定することができる。差分は、図１２に示すように3Dモデルの位置を変えてx軸方向、y軸方向へ移動したときのx軸方向の差分、y軸方向の差分として算出することができる。
【００３８】
より具体的には、配置決定部３３は、余白を考慮し、BoundingBox４３またはBoundingCircle４４を使用して、１つずつ3Dモデルを造形槽の造形可能領域内に配置していく。このとき、配置決定部３３は、描画処理された印刷データの中心を基準に配置したBoundingBox４３またはBoundingCircle４４の外周が隣り合う3Dモデルと干渉しないように配置していく。
【００３９】
配置の方法を、BoundingBox４３を使用して配置するものとして説明する。図１３に示すように、3DモデルAの配置を、造形槽の水平方向のサイズで規定した造形可能領域４７内に、印刷条件の直方体の幅、奥行きから得られる3DモデルAの大きさに、最小間隔の余白の幅（オフセット値）を加えた矩形の大きさ、すなわち配置不可領域を、任意の基点を基に配置する。この例では、造形槽の内壁から所定の間隔を余白として取り、その内部を上記の造形可能領域４７としている。そして、この造形可能領域４７の１つの角部（左上）を上記の基点としている。図１３（ａ）に示すように、3DモデルAを配置した後は、合成ファイルの3DモデルBに対して、同様の方法で3Dモデルの大きさとオフセット値を算出する。
【００４０】
算出した後、図１３（ａ）に示す領域Mまたは領域Nのいずれに配置可能かを判断する。この判断は、3DモデルBの大きさとオフセット値に基づき判断することができる。すなわち、3DモデルBの大きさにオフセット値を加味した配置不可領域を求め、領域Mに入るか否か、領域Nに入るか否かより判断することができる。なお、両方の領域に入る場合は、各領域M、Nに設定した優先順位に従って決定することができる。3DモデルBを領域Mに配置した場合は、図１３（ｂ）に示すように領域Mに空き領域があり、別の3Dモデルの配置に使用するため、領域Mを修正することができる。
【００４１】
3DモデルBに対しては、決定した領域Mに再配置し、データ保存部３７に保存された合成ファイルに反映させる。すなわち、合成ファイルを上書きする。そして、図１３（ａ）に示す位置に3DモデルAを配置した印刷データとこの合成ファイルとを１層ずつ合成する。合成後のデータは、3DモデルAと3DモデルBとがオフセット値の間隔をあけて配置されたデータとなる。この処理は、合成ファイルがなくなるまで、または造形可能領域４７に配置することができなくなるまで繰り返し行われ、印刷データに対して１以上の合成ファイルが合成される。
【００４２】
ここでは、図１３に示すように空き領域を２つの3Dモデルで埋めていく方法を例示し、説明したが、これに限られるものではなく、３つ以上の3Dモデルの場合、埋める矩形の空きを細かく管理する方法を採用することもできる。細かく管理することで、より多くの3Dモデルを配置することができ、エラーの通知頻度を減少させることができる。
【００４３】
また、各3Dモデルにそれぞれ余白を考慮すると、余分に余白が考慮された配置になる。２つの3Dモデル間は、いずれかの余白の大きい方を考慮して配置すればよい。そこで、3DモデルA、3DモデルBのいずれのオフセット値が大きいかを判断し、オフセット値が大きい方の値を考慮して、合成する3DモデルBの配置を決定することができる。このように、無駄な余白を考慮しないようにすることで、より多くの3Dモデルを配置し、印刷することができる。
【００４４】
データ生成部３４は、算出された差分に基づき、再配置された位置に造形するデータに印刷データを加工する。データ生成部３４は、各印刷データについてデータを加工し、加工した各データを合成して合成データを生成する。合成データは、複数の3Dモデルを各位置に配置したときの１層分のデータとして生成される。データ生成部３４は、生成した１層分の合成データをデータ送信部３５に渡し、データ送信部３５は、その合成データを3Dプリンタ１１に送信する。
【００４５】
データ生成部３４は、下方の層から順に１層ずつ合成データを生成し、それを１層ずつデータ送信部３５に渡し、データ送信部３５も、１層ずつ合成データを3Dプリンタ１１に送信する。これを全層分繰り返すことにより、3Dプリンタ１１は、複数の造形物を同時に造形する。
【００４６】
ここでは、データ生成部３４が１層分の合成データを生成し、それをデータ送信部３５に渡し、3Dプリンタ１１に送信させるように記載した。しかしながら、実際には、データ生成部３４は、１層分の合成データと印刷条件とを用い、3Dプリンタ１１が解釈可能な印刷コマンドに変換し、その印刷コマンドをデータ送信部３５により3Dプリンタ１１へ送信する。
【００４７】
なお、１つの造形物のみを造形する場合は、データ生成部３４は、位置を変更しないので加工することなく、印刷コマンドに変換し、その印刷コマンドをデータ送信部３５に渡す。データ送信部３５は、その印刷コマンドを3Dプリンタ１１に送信し、3Dプリンタ１１が当該１つの造形物を造形する。
【００４８】
配置決定部３３は、印刷指示された3Dモデルの配置を決定する際、造形可能領域４７内に収まるか否かを判断し、収まる場合、上記の各3Dモデルの配置を決定することができる。配置決定部３３は、造形可能領域４７内に収まらないと判断した場合、印刷データが印刷されない旨のエラー表示を行い、ユーザに知らせることができる。ここでは、配置決定部３３がエラー表示を行うように構成されているが、別途、通知部を設け、その通知部がエラー表示を行うように構成されていてもよい。また、エラー表示ではなく、エラー音等によりユーザに知らせることも可能である。
【００４９】
図１４を参照して、上記の機能部を備えるプリンタドライバが行う印刷またはファイルの保存について説明する。プリンタドライバは、ユーザがアプリケーション上で印刷設定を要求したことを受けて、ステップ１４００から処理を開始する。ステップ１４０５では、印刷条件を設定する画面を表示させ、印刷条件の設定を行わせる。設定された印刷条件は、データ保存部３７に保存される。ユーザは、印刷設定が終了すると、アプリケーションで作成した3Dデータあるいは印刷のために読み出した3Dデータの処理を指示する。
【００５０】
ステップ１４１０では、アプリケーションからOSを介して指示を受け付ける。ステップ１４１５では、データ保存部３７に保存された印刷設定を取得し、ステップ１４２０において、指示された3Dデータを描画処理し、印刷データを生成する。ステップ１４２５では、印刷設定から印刷方式を確認し、印刷かどうかを判断する。印刷である場合、ステップ１４３０へ進み、3Dプリンタ１１に印刷を実行させるために印刷コマンドを生成する。ステップ１４３５で、その印刷コマンドを3Dプリンタ１１に送信し、ステップ１４４５でこの処理を終了する。
【００５１】
ステップ１４２５で印刷でないと判断した場合、ステップ１４４０へ進み、ファイル名を付けてデータ保存部３７に保存する。このとき、印刷条件とともに保存する。これは、合成ファイルのリストを表示させるときに同じ印刷条件をもつ合成ファイルを検索する際、オフセット情報を取得する際、印刷コマンドを生成する際などに使用される。保存が終了したところで、ステップ１４４５へ進み、この処理を終了する。
【００５２】
図１５を参照して、プリンタドライバが行う合成印刷について説明する。図１４と同様、プリンタドライバは、ユーザがアプリケーション上で印刷設定を要求したことを受けて、ステップ１５００からこの処理を開始する。ステップ１５０５では、印刷条件を設定する画面を表示させ、印刷条件の設定を行わせる。設定された印刷条件は、データ保存部３７に保存される。ユーザは、印刷設定が終了すると、アプリケーションで作成した3Dデータあるいは印刷のために読み出した3Dデータの処理を指示する。
【００５３】
ステップ１５１０では、アプリケーションからOSを介して指示を受け付ける。ステップ１５１５では、データ保存部３７に保存された印刷設定を取得し、指示された3Dデータを描画処理し、印刷データを生成する。印刷設定から印刷方式を確認し、印刷か、合成印刷か、ファイルの保存かを判断する。この例では、合成印刷である。印刷データと合成ファイルとを合成するために、ステップ１５２０では、印刷設定で設定された印刷条件から使用する粉体材料や結合剤が何かというサプライ情報を取得する。ステップ１５２５では、得られたサプライ情報からデータ保存部３７に保存された対応するサプライ特性データを取得する。具体的には、粉体材料、結合剤、作成する3Dモデルのサイズの組み合わせに応じたサプライ特定データをデータ保存部３７から読み出し、取得する。
【００５４】
ステップ１５３０では、データ保存部３７に保存された合成ファイルを１つ取得する。ステップ１５３５では、取得した合成ファイルの印刷条件が、印刷設定で設定された印刷条件に一致するかを判断する。一致する場合、ステップ１５４０へ進み、合成する際、3Dモデルのサイズ、3Dモデル間をどれだけあけるかというオフセット値等の3Dモデルを配置するために必要な情報を算出する。ステップ１５４５では、ステップ１５１５で生成された印刷データ、すなわち描画データを取得し、ステップ１５５０で、描画データの3Dモデルと、合成ファイルの3Dモデルとが、造形可能領域４７内に配置可能かどうかを判断する。配置可能か否かは、それらのモデルの位置を変えて造形可能領域４７内にそれらのモデルが収まるか否かにより判断する。
【００５５】
ステップ１５５０で配置可能である場合、ステップ１５５５へ進み、造形可能領域４７内に収まる位置に再配置し、各3Dモデルの配置を決定する。ステップ１５６０では、各3Dモデルの印刷データおよび合成ファイルを加工し、それらを合成して、決定した各3Dモデルの配置を反映したデータを合成データとして生成する。
【００５６】
合成データを生成した後、もしくはステップ１５３５で一致しないと判断した場合、またはステップ１５５０で配置不可と判断した場合、ステップ１５６５へ進み、次の合成ファイルが存在するかを判断する。ステップ１５６５で次の合成ファイルが存在すると判断した場合、ステップ１５３０へ戻り、次の合成ファイルをデータ保存部３７から１つ取得する。
【００５７】
ステップ１５６５で次の合成ファイルが存在しないと判断した場合、ステップ１５７０へ進み、生成された合成データと印刷設定とを用い、印刷コマンドを生成する。この処理は、通常の紙に画像を印刷する場合に描画データを印刷コマンドに変換する処理と同様の処理である。ステップ１５７５では、その印刷コマンドを3Dプリンタ１１に送信し、ステップ１５８０でこの処理を終了する。
【００５８】
印刷条件は、解像度、粉末材料、結合剤の種類、積層厚のみを設定し、その印刷条件に応じてオフセット値を算出する旨を説明してきた。しかしながら、これに限られるものではなく、3Dプリンタ１１のヘッドスピード、結合剤の量等によっても、必要とされる間隔が変わるので、これらを考慮して最適なオフセット値を算出することもできる。
【００５９】
PC１０にプリンタドライバが実装され、１つの情報処理装置内に上記の全ての機能部が実装されるものとして説明してきたが、この機能部は２つ以上の電子機器に分散して実装されていてもよく、情報処理装置ではなく、ICチップ等により実現されてもよい。したがって、情報処理装置のほか、これらの機能部を備える制御システムとして実現することもできる。
【００６０】
これまで本発明を、制御システム、情報処理装置、造形システムおよびプリンタドライバといったプログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【００６１】
したがって、制御システムや情報処理装置が行う情報処理方法、上記プログラムが記録された記録媒体、上記プログラムを提供する外部機器等も提供することができるものである。
【符号の説明】
【００６２】
１０…PC、１１…3Dプリンタ、１２…ネットワーク、１３…サーバ装置、２０…CPU、２１…ROM、２２…RAM、２３…HDD、２４…通信I/F、２５…入出力I/F、２６…表示装置、２７…入力装置、２８…バス、３０…プリンタドライバ、３１…指示受付部、３２…算出部、３３…配置決定部、３４…データ生成部、３５…データ送信部、３６…描画処理部、３７…データ保存部、４０…BoundingCube、４１…3Dモデル、４２…BoundingCylinder、４３…BoundingBox、４４…BoundingCircle、４５、４６…配置不可領域、４７…造形可能領域
【先行技術文献】
【特許文献】
【００６３】
【特許文献１】特開２０１２−９６４２６号公報
【図１】
0006593035.tif 000002
【図２】
0006593035.tif 000003
【図３】
0006593035.tif 000004
【図４】
0006593035.tif 000005
【図５】
0006593035.tif 000006
【図６】
0006593035.tif 000007
【図７】
0006593035.tif 000008
【図８】
0006593035.tif 000009
【図９】
0006593035.tif 000010
【図１０】
0006593035.tif 000011
【図１１】
0006593035.tif 000012
【図１２】
0006593035.tif 000013
【図１３】
0006593035.tif 000014
【図１４】
0006593035.tif 000015
【図１５】
0006593035.tif 000016