(57)【特許請求の範囲】
【請求項１】
３次元データに基づいてスライスデータを生成する情報処理装置であって、
前記３次元データを２次元に投影する投影部と、
前記３次元データを入力する入力部と、
前記スライスデータのスライス面に対して垂直となる第１の方向において、前記スライス面と、前記３次元データが有する第１ポリゴンデータとの距離に基づいて、前記投影部が前記第１ポリゴンデータを投影する際の色を背景色と同一の第１色であるか前記第１色と異なる第２色であるかを前記３次元データを構成する部品ごとに決定する第１決定部と、
同一の部分に対するいずれかの前記決定で前記第２色と決定されると、前記部分を前記第２色とする第２決定部と、
を備え、
前記第１の方向において、前記第１ポリゴンデータが前記スライス面より奥となる距離にあると計算されると、前記第１決定部は、前記第１ポリゴンデータが表であるか裏であるかに基づいて、前記色を決定することを特徴とする情報処理装置。
【請求項２】
前記第１ポリゴンデータが表であると、前記第１決定部は、前記色を前記第１色に決定する請求項１に記載の情報処理装置。
【請求項３】
前記第１ポリゴンデータが裏であると、前記第１決定部は、前記色を前記第２色に決定する請求項１に記載の情報処理装置。
【請求項４】
前記第１の方向において、前記第１ポリゴンデータが前記スライス面と干渉する距離にあると計算されると、前記第１ポリゴンデータを前記スライス面の奥に位置する１以上の第２ポリゴンデータと、前記スライス面の手前に位置する１以上の第３ポリゴンデータとに分割する請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記色は、濃淡を示す陰影が除外された色である請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第１ポリゴンデータは、三角形を示すデータである請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記第１の方向において、前記第１ポリゴンデータが前記スライス面より手前となる距離にあると計算されると、前記第１ポリゴンデータに基づく前記投影を制限する請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記第２決定部は、前記第１決定部による前記第２色とする決定の論理和を計算する請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記投影部が前記３次元データを２次元に投影すると、前記スライスデータが生成される請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
３次元データに基づいてスライスデータを生成する１以上の情報処理装置と、前記情報処理装置に接続される３Ｄプリンタとを有する３Ｄプリンタシステムであって、
前記３次元データを２次元に投影する投影部と、
前記３次元データを入力する入力部と、
前記スライスデータのスライス面に対して垂直となる第１の方向において、前記スライス面と、前記３次元データが有する第１ポリゴンデータとの距離に基づいて、前記投影部が前記第１ポリゴンデータを投影する際の色を背景色と同一の第１色であるか前記第１色と異なる第２色であるかを前記３次元データを構成する部品ごとに決定する第１決定部と、
同一の部分に対するいずれかの前記決定で前記第２色と決定されると、前記部分を前記第２色とする第２決定部と、
を備え、
前記第１の方向において、前記第１ポリゴンデータが前記スライス面より奥となる距離にあると計算されると、前記第１決定部は、前記第１ポリゴンデータが表であるか裏であるかに基づいて、前記色を決定することを特徴とする３Ｄプリンタシステム。
【請求項１１】
３次元データに基づいてスライスデータを生成する情報処理装置が行う情報処理方法であって、
前記情報処理装置が、前記３次元データを２次元に投影する投影手順と、
前記情報処理装置が、前記３次元データを入力する入力手順と、
前記情報処理装置が、前記スライスデータのスライス面に対して垂直となる第１の方向において、前記スライス面と、前記３次元データが有する第１ポリゴンデータとの距離に基づいて、前記投影手順で前記第１ポリゴンデータを投影する際の色を背景色と同一の第１色であるか前記第１色と異なる第２色であるかを前記３次元データを構成する部品ごとに決定する第１決定手順と、
前記情報処理装置が、同一の部分に対するいずれかの前記決定で前記第２色と決定されると、前記部分を前記第２色とする第２決定手順と、
を含み、
前記第１の方向において、前記第１ポリゴンデータが前記スライス面より奥となる距離にあると計算されると、前記第１決定手順では、前記第１ポリゴンデータが表であるか裏であるかに基づいて、前記色を決定する情報処理方法。
【請求項１２】
コンピュータに、３次元データに基づいてスライスデータの生成を実行させるためのプログラムであって、
前記コンピュータが、前記３次元データを２次元に投影する投影手順と、
前記コンピュータが、前記３次元データを入力する入力手順と、
前記コンピュータが、前記スライスデータのスライス面に対して垂直となる第１の方向において、前記スライス面と、前記３次元データが有する第１ポリゴンデータとの距離に基づいて、前記投影手順で前記第１ポリゴンデータを投影する際の色を背景色と同一の第１色であるか前記第１色と異なる第２色であるかを前記３次元データを構成する部品ごとに決定する第１決定手順と、
前記コンピュータが、同一の部分に対するいずれかの前記決定で前記第２色と決定されると、前記部分を前記第２色とする第２決定手順と、
を実行させ、
前記第１の方向において、前記第１ポリゴンデータが前記スライス面より奥となる距離にあると計算されると、前記第１決定手順では、前記第１ポリゴンデータが表であるか裏であるかに基づいて、前記色を決定する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、３Ｄプリンタシステム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）等のデータに基づいて生成されるスライスデータ等から、３次元に造形を行う方法が知られている。
【０００３】
また、３次元の造形において、ポリゴンメッシュの位相情報を修正する方法が知られている。具体的には、まず、ポリゴンメッシュを輪切りにする際に、輪郭ポリゴンラインが得られるようにポリゴンメッシュの位相情報を変更する。次に、変更されたポリゴンラインから輪郭ポリゴンラインを取得し、更に取得した輪郭ポリゴンライン内の領域である内部を正常に塗り潰せるように輪郭ポリゴンラインを修正する方法が知られている（例えば、特許文献１等）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、スライスデータの生成において、非多様体又は干渉等があると、スライスデータが生成できない場合がある。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、スライスデータの生成において、非多様体又は干渉等があっても、スライスデータが生成できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一態様における、３次元データに基づいてスライスデータを生成する情報処理装置は、前記３次元データを２次元に投影する投影部と、前記３次元データを入力する入力部と、前記スライスデータのスライス面に対して垂直となる第１の方向において、前記スライス面と、前記３次元データが有する第１ポリゴンデータとの距離に基づいて、前記投影部が前記第１ポリゴンデータを投影する際の色を背景色と同一の第１色であるか前記第１色と異なる第２色であるかを前記３次元データを構成する部品ごとに決定する第１決定部と、同一の部分に対するいずれかの前記決定で前記第２色と決定されると、前記部分を前記第２色とする第２決定部と、を備え、前記第１の方向において、前記第１ポリゴンデータが前記スライス面より奥となる距離にあると計算されると、前記第１決定部は、前記第１ポリゴンデータが表であるか裏であるかに基づいて、前記色を決定することを特徴とする。
【発明の効果】
【０００７】
本発明の各実施形態によれば、スライスデータの生成において、非多様体又は干渉等があっても、スライスデータが生成できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】本発明の一実施形態に係る情報処理装置の機能構成の一例を示す機能ブロック図である。
【図３】本発明の一実施形態に係る３次元データの例を示す図である。
【図４】本発明の一実施形態に係るスライス面の例を示す図である。
【図５】本発明の一実施形態に係るスライス面の設定の例を示す図である。
【図６】本発明の一実施形態に係るスライス面と第１ポリゴンデータとの距離の計算例を示す図である。
【図７】本発明の一実施形態に係る第１ポリゴンデータを分割する例を示す図である。
【図８】本発明の一実施形態に係るスライスデータの例を示す図である。
【図９】本発明の一実施形態に係る全体処理の一例を示すフローチャートである。
【図１０】本発明の一実施形態に係るスライス面及び視線方向の設定の一例を示す図である。
【図１１】本発明の一実施形態に係る複数の部品で構成される３次元モデルの一例を示す図である。
【図１２】本発明の一実施形態に係る複数の部品での構成において干渉となる場合の一例を示す図である。
【図１３】本発明の一実施形態に係る複数の部品で構成される３次元モデルのスライスデータの一例を示す図である。
【図１４】本発明の一実施形態に係る第１部品のスライスデータの一例を示す図である。
【図１５】本発明の一実施形態に係る第２部品のスライスデータの一例を示す図である。
【図１６】比較例に係る複数の部品で構成される３次元モデルのスライスデータの一例を示す図である。
【図１７】本発明の一実施形態に係る３Ｄプリンタシステムの一例を示す概略図である。
【図１８】本発明の一実施形態に係る３Ｄプリンタの一例を示す概略図である。
【図１９】本発明の一実施形態に係る３Ｄプリンタシステムにおける情報処理装置の機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複した説明を省く。
【００１０】
＜情報処理装置例＞
はじめに、本実施形態に係る情報処理装置のハードウェア構成の一例について説明する。
【００１１】
図１は、本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。図示するように、情報処理装置は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である。以下、情報処理装置がＰＣの例で説明する。
【００１２】
具体的には、ＰＣ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０Ｈ１と、入力装置１０Ｈ２と、メモリ１０Ｈ３と、表示装置１０Ｈ４と、外部記憶装置１０Ｈ５とを有する。このように、ＰＣは、ＣＡＤに係るユーザによる操作の入力及びＣＡＤで設計されたモデルを表示する出力を行う。
【００１３】
ＣＰＵ１０Ｈ１は、プログラムを実行する演算装置及び制御装置である。
【００１４】
入力装置１０Ｈ２は、例えば、マウス、キーボード又はこれらの組み合わせである。また、入力装置１０Ｈ２は、ＣＡＤに係るユーザによる操作を入力する。
【００１５】
メモリ１０Ｈ３は、主記憶装置の例である。また、メモリ１０Ｈ３は、ＣＰＵ１０Ｈ１が用いるプログラム及びデータ等を記憶する。
【００１６】
表示装置１０Ｈ４は、例えば、ディスプレイ等である。また、表示装置１０Ｈ４は、ＣＡＤに係る画面を表示する。
【００１７】
外部記憶装置１０Ｈ５は、例えば、ハードディスク等の補助記憶装置である。また、外部記憶装置１０Ｈ５は、プログラム及びデータ等を記憶する。
【００１８】
なお、ハードウェア構成は、図示する構成に限られない。例えば、ＰＣ１０は、インタフェースを有し、ネットワーク及びケーブル等で外部装置と接続して、データ等を入出力してもよい。
【００１９】
また、ＰＣ１０は、図示するハードウェア以外のハードウェアを更に有してもよい。さらに、ＰＣ１０は、例えば、入力装置１０Ｈ２と、表示装置１０Ｈ４とが一体となっているタッチパネル等の入出力装置を有するハードウェア構成でもよい。
【００２０】
＜機能構成例＞
図２は、本発明の一実施形態に係る情報処理装置の機能構成の一例を示す機能ブロック図である。具体的には、ＰＣ１０は、入力部１０Ｆ１と、計算部１０Ｆ２と、第１決定部１０Ｆ３と、第２決定部１０Ｆ４と、投影部１０Ｆ５とを含む。
【００２１】
＜入力部の例＞
入力部１０Ｆ１は、スライスデータを生成するための３次元データを入力する。具体的には、入力部１０Ｆ１は、入力装置１０Ｈ２（図１）等によって実現され、例えば、３次元データを設計する操作等が入力されると、３次元データが生成される。
【００２２】
＜計算部の例＞
計算部１０Ｆ２は、スライスデータのスライス面に対して垂直となる方向（以下「第１の方向」という。）において、スライス面と、入力部１０Ｆ１が入力する３次元データが有するポリゴンデータ（以下「第１ポリゴンデータ」という。）との距離を計算する。具体的には、計算部１０Ｆ２は、ＣＰＵ１０Ｈ１（図１）等によって実現され、設定されるスライス面と、各第１ポリゴンデータとの距離を計算する。
【００２３】
図３は、本発明の一実施形態に係る３次元データの例を示す図である。以下、図示するようなモデルＭＤＬを示す３次元データが入力される例で説明する。また、モデルＭＤＬは、第１ポリゴンデータの例である三角形の集まり等によって構成されるとする。
【００２４】
図４は、本発明の一実施形態に係るスライス面の例を示す図である。例えば、図３に示す３次元データが入力され、スライスデータが生成される場合には、スライス面ＳＬＰが設定される。スライス面ＳＬＰは、例えば、モデルＭＤＬに対して、図４に図示するように設定される。
【００２５】
図５は、本発明の一実施形態に係るスライス面の設定の例を示す図である。スライスデータを生成するには、例えば、図５（Ａ）に示すように、Ｘ軸、Ｙ軸及びＺ軸で示す３次元上にモデルＭＤＬが置かれ、所定のスライス間隔でスライス面ＳＬＰが設定される。なお、この例では、図５（Ｂ）に示すように、Ｘ軸方向に、スライス間隔で、スライス面ＳＬＰが設定されるとする。この設定では、スライス間隔ごとに、スライスデータが生成される。
【００２６】
これに対して、図５（Ｂ）に示すように、スライス面ＳＬＰに対して垂直となる図示するような方向が第１の方向である。以下、第１の方向の例を視線方向ＤＳとする。即ち、以下、視線方向ＤＳがＸ軸方向である例で説明する。
【００２７】
なお、視線方向ＤＳは、図示する方向に限られない。例えば、視線方向ＤＳは、設定等によって、図示する方向とは異なる方向に設定されてもよい。
【００２８】
図６は、本発明の一実施形態に係るスライス面と第１ポリゴンデータとの距離の計算例を示す図である。なお、図６では、図５に示すモデルＭＤＬに対して、図５に示すようなスライス面ＳＬＰ及び視線方向ＤＳが設定される例で説明する。
【００２９】
モデルＭＤＬは、図６に図示するように、視線方向ＤＳにおいて、スライス面ＳＬＰより奥側に位置する第１ポリゴンデータの例である第１三角形ＰＤ１Ａを有する場合がある。また、モデルＭＤＬは、視線方向ＤＳにおいて、図６に図示するように、スライス面ＳＬＰと干渉する第１ポリゴンデータの例である第２三角形ＰＤ１Ｂを有する場合がある。さらに、モデルＭＤＬは、視線方向ＤＳにおいて、図６に図示するように、スライス面ＳＬＰより手前側に位置する第１ポリゴンデータの例である第３三角形ＰＤ１Ｃを有する場合がある。
【００３０】
例えば、計算部１０Ｆ２（図２）は、原点ＰＯからの各三角形までのそれぞれの距離と、原点ＰＯからのスライス面までの距離とを計算する。このように、各距離が計算されると、ＰＣは、原点ＰＯからのスライス面までの距離と、原点ＰＯからの各三角形までのそれぞれの距離とが比較できる。したがって、距離が計算される計算結果に基づいて、第１ポリゴンデータが、スライス面ＳＬＰより奥となる距離にあるか、スライス面ＳＬＰと干渉する距離にあるか又はスライス面ＳＬＰより手前となる距離にあるかのいずれであるかが計算できる。
【００３１】
また、計算部１０Ｆ２による計算結果に基づいて、第１ポリゴンデータがスライス面ＳＬＰと干渉する距離にあると計算されると、ＰＣは、第１ポリゴンデータを分割する。具体的には、ＰＣは、第１ポリゴンデータをスライス面ＳＬＰより奥に位置する１以上のポリゴンデータ（以下「第２ポリゴンデータ」という。）と、スライス面ＳＬＰより手前に位置する１以上のポリゴンデータ（以下「第３ポリゴンデータ」という。）とに分割する。
【００３２】
図７は、本発明の一実施形態に係る第１ポリゴンデータを分割する例を示す図である。例えば、図７（Ａ）に示すように、図６に示す第２三角形ＰＤ１ＢをモデルＭＤＬが有する例で説明する。
【００３３】
第２三角形ＰＤ１Ｂのように干渉する第１ポリゴンデータがあると、ＰＣは、例えば、図７（Ｂ）に示すように、第２三角形ＰＤ１Ｂを分割する。具体的には、図７（Ａ）に示す第２三角形ＰＤ１Ｂを図７（Ｂ）に示す第２ポリゴンデータＰＤ２及び図７（Ｂ）に示す第３ポリゴンデータＰＤ３に分割する。図示するように、第２ポリゴンデータＰＤ２は、第２三角形ＰＤ１Ｂのうち、スライス面ＳＬＰより奥に位置する三角形である。一方、第３ポリゴンデータＰＤ３は、第２三角形ＰＤ１Ｂのうち、スライス面ＳＬＰより手前に位置する三角形である。
【００３４】
このように、分割すると、ＰＣは、干渉する第１ポリゴンデータを第２ポリゴンデータＰＤ２と、第３ポリゴンデータＰＤ３とに分割できるため、ＰＣは、干渉する第１ポリゴンデータを減らすことができる。
【００３５】
なお、分割は、第２ポリゴンデータＰＤ２と、第３ポリゴンデータＰＤ３とがそれぞれ１つでなくともよい。即ち、第２ポリゴンデータＰＤ２、第３ポリゴンデータＰＤ３又はいずれの両方は、２以上の三角形に分割されてもよい。例えば、図７（Ｃ）に示すように、第２ポリゴンデータは、２つの三角形であってもよい。
【００３６】
また、分割によって生成される第２ポリゴンデータＰＤ２は、以降の処理では、視線方向ＤＳにおいて、スライス面ＳＬＰより奥側に位置する第１ポリゴンデータと同様の処理が行われる。さらに、分割によって生成される第３ポリゴンデータＰＤ３は、以降の処理では、視線方向ＤＳにおいて、スライス面ＳＬＰより手前側に位置する第１ポリゴンデータと同様の処理が行われる。
【００３７】
＜第１決定部の例＞
図２に戻り、第１決定部１０Ｆ３は、計算部１０Ｆ２による計算結果に基づいて、投影部１０Ｆ５が第１ポリゴンデータを投影する際の色を決定する。なお、第１決定部１０Ｆ３は、ＣＰＵ１０Ｈ１（図１）等によって実現される。具体的には、計算部１０Ｆ２による計算結果に基づいて、第１ポリゴンデータがスライス面より奥となる距離にあると計算されると、第１決定部１０Ｆ３は、第１ポリゴンデータが表であるか裏であるかに基づいて、投影部１０Ｆ５が第１ポリゴンデータを投影する際の色を決定する。なお、第１ポリゴンデータは、表を示すポリゴンデータであるか裏を示すポリゴンデータであるかを判断できるデータをそれぞれ有する。
【００３８】
具体的には、第１ポリゴンデータが表であると、第１決定部１０Ｆ３は、色を背景色と同一の色（以下「第１色」という。）に決定する。一方、第１ポリゴンデータが裏であると、第１決定部１０Ｆ３は、第１色とは異なる色（以下「第２色」という。）に決定する。即ち、第２色は、背景色と異なる色である。
【００３９】
なお、第１色及び第２色は、濃淡を示す陰影が除外された色であるのが望ましい。例えば、投影等において、光源の影響が除外されると、濃淡を示す陰影が除外できる。
【００４０】
また、計算部１０Ｆ２による計算結果に基づいて、第１ポリゴンデータがスライス面より手前となる距離にあると計算されると、第１決定部１０Ｆ３は、第１ポリゴンデータに基づく投影を投影されないようにする等の制限を行う。
【００４１】
＜第２決定部の例＞
第２決定部１０Ｆ４は、３次元データが複数の部品で構成される場合において、第１決定部１０Ｆ３によって、同一の部分に対するいずれかの決定で第２色と決定されると、他の部品において、第１色と決定されても、投影部１０Ｆ５が第１ポリゴンデータを投影する際の色を第２色とする。なお、第２決定部１０Ｆ４は、ＣＰＵ１０Ｈ１（図１）等によって実現される。具体的には、各部分に対する第１決定部１０Ｆ３による決定のうち、一度でも第２色であると決定されていると、第２決定部１０Ｆ４は、投影される際の色を第２色とする。
【００４２】
即ち、第２決定部１０Ｆ４は、第１決定部１０Ｆ３によって決定された複数の決定結果に基づいて最終的に投影部１０Ｆ５が第１ポリゴンデータを投影する際の色を決定する。例えば、第２決定部１０Ｆ４は、下記（表１）のように、第１色であるか第２色であるかを決定する。
【００４３】
【表１】
0006606937.tif 000002
上記（表１）に示すように、第２決定部１０Ｆ４は、第１決定部１０Ｆ３によって、同一の部分について、一度でも第２色と決定された場合があると、第２色と決定する。一方、同一の部分について、第１決定部１０Ｆ３が各部品においてすべて第１色と決定すると、第２決定部１０Ｆ４は、第１色と決定する。なお、決定される部分は、例えば、２次元に投影する際のピクセル単位で決定される。
【００４４】
また、上記（表１）に示すように、第２決定部１０Ｆ４は、第２色となった決定結果の論理和（ＯＲ）を計算して実現されてもよい。具体的には、例えば、複数の部品のうち、いずれかの部品において、第１決定部１０Ｆ３による決定で、ＰＣは、第２色と決定された場合を「１」とする。一方、ＰＣは、第１決定部１０Ｆ３による決定で第２色と決定された場合を「０」とする。この場合には、第２決定部１０Ｆ４は、各部品における第１決定部１０Ｆ３による同一の部分に対するそれぞれの決定の論理和を計算する。このようにすると、上記（表１）に示すように、いずれかの部品における決定で、第２色、即ち、「１」となると、第２決定部１０Ｆ４は、投影される際の色を第２色とできる。
【００４５】
＜投影部の例＞
図２に戻り、投影部１０Ｆ５は、第２決定部１０Ｆ４によって決定される色で、３次元データを２次元に投影してスライスデータを生成する。具体的には、投影部１０Ｆ５は、ＣＰＵ１０Ｈ１（図１）等によって実現され、ポリゴンデータを２次元に投影してスライスデータを生成する。
【００４６】
スライスデータは、例えば、スライス面を２値で示すＢＭＰ（Ｂｉｔｍａｐ）形式等の２次元データである。即ち、スライスデータは、例えば、第１色を「０」で示すとすると、第２色を「１」で示すスライスデータ等である。なお、スライスデータは、ＢＭＰ等に限られず、出力先となるプリンタの仕様等に合わせた形式のデータであればよい。また、スライスデータには、第２決定部１０Ｆ４によって決定される色に基づいて、データが入力される。
【００４７】
図８は、本発明の一実施形態に係るスライスデータの例を示す図である。図示するスライスデータは、背景部分と、スライス面より奥にあり、かつ、表を示すポリゴンデータとをそれぞれ第１色で示す例である。図内では、第１色は、黒色である。一方、図示するスライスデータは、スライス面より奥にあり、かつ、裏を示すポリゴンデータを第２色で示す例である。図内では、第２色は、白色である。
【００４８】
図示するようなスライスデータが３Ｄプリンタ等に出力されると、出力先となる３Ｄプリンタ等は、複数のスライスデータに基づいて、立体物を造形することができる。
【００４９】
＜全体処理の流れの一例＞
図９は、本発明の一実施形態に係る全体処理の一例を示すフローチャートである。
【００５０】
ステップＳ０１では、ＰＣは、３Ｄデータを入力する。
【００５１】
ステップＳ０２では、ＰＣは、背景色を設定する。即ち、第１色がステップＳ０２で設定される。また、ステップＳ０２では、第２色に、第１色と異なる色が設定される。なお、第１色及び第２色は、初期値等でそれぞれ設定されてもよい。
【００５２】
ステップＳ０３では、ＰＣは、スライス面と、第１ポリゴンデータとの距離を計算する。
【００５３】
ステップＳ０４では、ＰＣは、ステップＳ０３による計算結果に基づいて、第１ポリゴンデータがスライス面より奥にあるか、スライス面より手前にあるか又はスライス面と干渉するかのいずれであるかを判断する。
【００５４】
次に、第１ポリゴンデータがスライス面より奥にあると判断されると（ステップＳ０４で「奥」）、ＰＣは、ステップＳ０６に進む。また、第１ポリゴンデータがスライス面に干渉すると判断されると（ステップＳ０４で「干渉」）、ＰＣは、ステップＳ０５に進む。さらに、第１ポリゴンデータがスライス面より手前にあると判断されると（ステップＳ０４で「手前」）、ＰＣは、ステップＳ０９に進む。
【００５５】
図示するように、第１ポリゴンデータがスライス面より手前にあると判断されると、ＰＣは、ステップＳ０７及びステップＳ０８のように、対象となる第１ポリゴンデータの色を決定しない等の制限を行う。
【００５６】
ステップＳ０５では、ＰＣは、干渉すると判断された第１ポリゴンデータを第２ポリゴンデータと、第３ポリゴンデータとに分割する。次に、分割よって生成される第２ポリゴンデータに対して、ＰＣは、ステップＳ０６に進む。
【００５７】
ステップＳ０６では、ＰＣは、第１ポリゴンデータが有するデータ等に基づいて、第１ポリゴンデータが表を示すか裏を示すか判断する。次に、第１ポリゴンデータが表を示すと判断すると（ステップＳ０６で「表」）、ＰＣは、ステップＳ０８に進む。一方、第１ポリゴンデータが裏を示すと判断すると（ステップＳ０６で「裏」）、ＰＣは、ステップＳ０７に進む。
【００５８】
ステップＳ０７では、ＰＣは、裏部分を第２色に決定する。
【００５９】
ステップＳ０８では、ＰＣは、表部分を第１色に決定する。
【００６０】
ステップＳ０９では、ＰＣは、すべてのポリゴンデータが終了したか否かを判断する。次に、すべてのポリゴンデータが終了したと判断されると（ステップＳ０９でＹＥＳ）、ＰＣは、ステップＳ１１に進む。一方、すべてのポリゴンデータが終了していないと判断されると（ステップＳ０９でＮＯ）、ＰＣは、ステップＳ１０に進む。即ち、ＰＣは、３次元データが有するすべての第１ポリゴンデータに対して、ステップＳ０３乃至ステップＳ０８が行われるように繰り返し処理を行う。
【００６１】
ステップＳ１０では、ＰＣは、次の第１ポリゴンデータを選択する。
【００６２】
ステップＳ１１では、ＰＣは、同一の部分に対して第２色と決定されたか否かを判断する。まず、図示するように、ステップＳ０７又はステップＳ０８によって、部品ごとに色がそれぞれ決定される。これに対して、ステップＳ１１では、ＰＣは、同一の部分に対して行われたいずれかの決定のうち、第２色と決定されたことがあるか否かを判断する。次に、第１色と決定された場合があっても、同一の部分に対して、いずれかの決定で、１度以上、第２色と決定されていると（ステップＳ１１でＹＥＳ）、ＰＣは、ステップＳ１２に進む。一方、同一の部分に対していずれの決定でも第２色と決定されていないと（ステップＳ１１でＮＯ）、ＰＣは、ステップＳ１３に進む。
【００６３】
ステップＳ１２では、ＰＣは、第１色と決定された部分を第２色と決定する。
【００６４】
また、同一の部分に対して、いずれでも第２色と決定されていない、即ち、同一の部分に対して、すべての部品において、第１色とそれぞれ決定されると（ステップＳ１１でＮＯ）、ＰＣは、第１色とする決定を維持する。
【００６５】
ステップＳ１３では、ＰＣは、すべての部品が終了したか否かを判断する。次に、
なお、ＰＣには、部品ごとにデータが入力されるため、同一の部分であるか否かは、各ポリゴンデータが同一のデータにあるか否か等で判断できる。
【００６６】
ステップＳ１４では、ＰＣは、３次元データを２次元に投影してスライスデータを生成する。
【００６７】
なお、スライス面及び視線方向は、ユーザによる設定又は初期値等によって定められる。
【００６８】
図１０は、本発明の一実施形態に係るスライス面及び視線方向の設定の一例を示す図である。例えば、図１０（Ａ）に示すようなモデルの３次元データが入力されるとする。この例では、まず、ユーザによる設定等で視線方向ＤＳが設定される。また、スライス面に係る設定としてスライス間隔等が設定される。このようなスライス面及び視線方向に係る設定が行われると、スライス面が生成される位置及び角度等が定まり、例えば、図１０（Ａ）に示すモデルの図１０（Ｂ）に示す断面等を見ることができるスライス面が設定できる。
【００６９】
図９に示す処理が行われると、ＰＣは、図８のようなスライスデータを生成することができる。これに対して、スライスデータを生成するのに、３次元モデルと、スライス面との断面線を幾何計算で求める方法等では、３次元モデルにおいて、非多様体があったり、又は自己干渉があったりすると断面線が求まらない場合がある。そのため、スライスデータが生成できない場合がある。
【００７０】
一方で、本発明に係る実施形態では、視線方向において、ＰＣは、スライス面と、第１ポリゴンデータとの距離を計算する。この計算結果に基づいて、投影部１０Ｆ５（図２）が第１ポリゴンデータを投影する際の色が決定される。次に、ＰＣは、決定された色に基づいて、３次元データを２次元データに投影してスライスデータを生成する。このようにすると、ＰＣは、スライスデータの生成において、非多様体又は干渉等があっても、スライスデータを生成できる。
【００７１】
即ち、本発明に係る実施形態では、３次元モデルにおいて、３次元モデルが有する三角形がお互いにめり込んでいたり、離れてしまっていたりする不整合があっても、ＰＣは、スライスデータを生成できる。また、本発明に係る実施形態では、計算に係る処理速度が速くできる場合がある。
【００７２】
特に、３次元データにおいて、非多様体又は干渉等は、微細な箇所にあることが多い。このため、３次元モデルと、スライス面との断面線を幾何計算で求める方法等では、見た目又は３Ｄプリンタで造形する上では、問題がないのに、非多様体又は干渉等があると、スライスデータが生成できない場合がある。これに対して、本発明に係る実施形態では、ＰＣは、スライスデータの生成において、非多様体又は干渉等があっても、３次元データに基づいてスライスデータが生成できるため、３Ｄプリンタ等によって造形を行うことができる。
【００７３】
また、３次元モデルは、複数の部品で構成される場合がある。
【００７４】
図１１は、本発明の一実施形態に係る複数の部品で構成される３次元モデルの一例を示す図である。以下、図示する３次元モデルを例に説明する。なお、図１１（Ａ）は、３次元モデルの側面図を示し、一方、図１１（Ｂ）は、図１１（Ａ）と同一の３次元モデルの正面図を示す。
【００７５】
また、図１１（Ａ）及び図１１（Ｂ）の３次元モデルを立体図で示すと、３次元モデルは、図１１（Ｃ）のように示せる。さらに、図１１（Ｃ）を断面図で示すと、３次元モデルは、図１１（Ｄ）のように示せる。
【００７６】
図示するように、３次元モデル３ＤＭＬは、第１部品ＰＴ１及び第２部品ＰＴ２で構成されるとする。この例では、第１部品ＰＴ１が有する貫通穴に、第２部品ＰＴ２が通るようにアセンブリされるアセンブリ部分ＡＳＭがある。なお、アセンブリ部分ＡＳＭでは、例えば、嵌め合い等のため、第２部品ＰＴ２の直径が、第１部品ＰＴ１の穴径より大きくなるように設計されるとする例である。
【００７７】
このような例は、３次元モデル３ＤＭＬでは、第２部品ＰＴ２が第１部品ＰＴ１の穴径より大きいため、第２部品ＰＴ２が第１部品ＰＴ１に食い込んでいるようになる。そのため、３次元モデル３ＤＭＬでは、いわゆる干渉が起きていると判断される場合が多い。
【００７８】
また、干渉が起きていると判断される場合は、図１１に示すような場合に限られない。
【００７９】
図１２は、本発明の一実施形態に係る複数の部品での構成において干渉となる場合の一例を示す図である。例えば、図１２（Ａ）に示すように、曲面を有する第３部品ＰＴ３及び第４部品ＰＴ４が接触するようにアセンブリされる場合には、アセンブリ部分ＡＳＭ２では、干渉が起きていると判断される場合がある。
【００８０】
また、例えば、図１２（Ｂ）に示すように、第５部品ＰＴ５及び第６部品ＰＴ６が接触するようにアセンブリされる場合には、アセンブリ部分ＡＳＭ３では、干渉が起きていると判断される場合がある。
【００８１】
このように、３次元モデルが複数の部品で構成される等の場合には、干渉が起きていると判断される場合がある。これに対して、例えば、図９に示す全体処理が行われると、スライスデータが生成できる。
【００８２】
図１３は、本発明の一実施形態に係る複数の部品で構成される３次元モデルのスライスデータの一例を示す図である。図１３は、図１１に示すアセンブリ部分ＡＳＭを中心とするスライスデータの一例である。即ち、複数の部品によって構成されるため、干渉が起きていると判断される場合が多いアセンブリ部分ＡＳＭがあっても、ＰＣは、図１３に示すようなスライスデータを生成することができる。
【００８３】
以下、スライスデータを示す図では、第２色Ｃ２と決定された部分を灰色で示す。一方、第１色Ｃ１と決定された部分を黒色で示す。
【００８４】
図１４は、本発明の一実施形態に係る第１部品のスライスデータの一例を示す図である。３次元モデル３ＤＭＬにおいて、図１１に示す第１部品ＰＴ１が単独の部品である、即ち、第２部品ＰＴ２がないとすると、アセンブリ部分ＡＳＭに対して、図１４に示すようなスライスデータが生成される。
【００８５】
図１５は、本発明の一実施形態に係る第２部品のスライスデータの一例を示す図である。３次元モデル３ＤＭＬにおいて、図１１に示す第２部品ＰＴ２が単独の部品である、即ち、第１部品ＰＴ１がないとすると、アセンブリ部分ＡＳＭに対して、図１５に示すようなスライスデータが生成される。
【００８６】
したがって、ＰＣは、図９に示す処理を行うと、図１３のように、図１４及び図１５に示す各スライスデータを合成したスライスデータを生成することができる。このように、ＰＣは、スライスデータの生成において、非多様体又は干渉等があっても、各部品に対するそれぞれの決定結果を合成すると、空洞等が少ないスライスデータを生成できる。
【００８７】
なお、ＰＣは、３つ以上の部品から構成される３次元モデルに対して、図９に示す処理を行ってもよい。具体的には、３つ以上の部品から構成される３次元モデルでは、各部品に対して、ステップＳ０２乃至ステップＳ１０が繰り返し行われる。次に、各部品に対する決定結果に基づいて、ステップＳ１１及びステップＳ１２が行われる。
【００８８】
また、ステップＳ１１及びステップＳ１２は、すべての部品に対して、ステップＳ０２乃至ステップＳ１０が終了した後に行う等のタイミングでもよい。
【００８９】
＜比較例＞
図１６は、比較例に係る複数の部品で構成される３次元モデルのスライスデータの一例を示す図である。即ち、図１６は、図９に示す以外の方法によって生成される図１１に示す３次元モデル３ＤＭＬのスライスデータの例である。非多様体又は干渉等があると、図１６に図示するアセンブリ部分ＡＳＭのように、第２色と決定されるべき部分が第１色と決定されてしまう場合がある。このようなスライスデータによって３Ｄプリンタで造形が行われると、アセンブリ部分ＡＳＭは、空洞となる場合が多い。
【００９０】
＜３Ｄプリンタシステム例＞
図１７は、本発明の一実施形態に係る３Ｄプリンタシステムの一例を示す概略図である。図示するように、３Ｄプリンタシステム１は、ＰＣ１０と、３Ｄプリンタ２０とを有する。
【００９１】
３Ｄプリンタ２０は、液滴を吐出するヘッドを有する。また、３Ｄプリンタ２０は、ＰＣ１０から送信されるデータを受信して、そのデータに基づいて、ヘッドによって成形材を吐出して形成する層を積層することにより、立体物を形成する。一方、ＰＣ１０は、図１に示す情報処理装置等である。
【００９２】
図１８は、本発明の一実施形態に係る３Ｄプリンタの一例を示す概略図である。図示するように、３Ｄプリンタ２０は、例えば、一般的な液滴吐出式の３Ｄプリンタと同様の構成を有する。具体的には、３Ｄプリンタ２０は、立体物を成形するために、成形材を積層していく基盤２０１と、成形材を吐出するヘッド２０２と、ヘッド２０２を支持し、基盤２０１上の空間においてヘッド２０２を移動させるアーム２０３とを含む。
【００９３】
３Ｄプリンタ２０は、図１７に示すＰＣ１０から送信されるスライスデータに応じて、ヘッド２０２から成形材を吐出して一層分の成形を行う。このように、３Ｄプリンタ２０は、層を積層して、立体造形を行う。
【００９４】
３Ｄプリンタ２０は、図１７に示すＰＣ１０と同様の情報処理機能を含む。そして、３Ｄプリンタ２０は、３Ｄプリンタ２０が有する情報処理機能によって、ＰＣ１０からの制御を受け付ける。さらに、３Ｄプリンタ２０は、情報処理機能によって実現される制御部によってアーム２０３の移動及びヘッド２０２からの成形材の吐出等を制御する。
【００９５】
図１９は、本発明の一実施形態に係る３Ｄプリンタシステムにおける情報処理装置の機能構成の一例を示す機能ブロック図である。図示するように、ＰＣ１０は、図１に示す入力装置１０Ｈ２及び表示装置１０Ｈ４等で実現するＬＣＤ６０及び操作部７０に加えて、コントローラ１００及びネットワークＩ／Ｆ１０１を含む。また、ネットワークＩ／Ｆ１０１は、ＰＣ１０がネットワークを介して他の機器と通信するためのインタフェースの例であり、Ｅｔｈｅｒｎｅｔ（登録商標）又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェース等が用いられる。
【００９６】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせ等によって構成され、ＰＣ１０全体を制御する制御部として機能する。図示するように、コントローラ１００は、処理部１１０及びＰＣ１０が３Ｄプリンタ２０を制御するための機能を提供する３Ｄプリンタドライバ１２０を含む。
【００９７】
処理部１１０は、入力される３Ｄデータのスライスデータを生成する図９に示す処理等を行う。まず、図９に示すステップＳ０１では、例えば、ネットワーク等を介してＰＣ１０に３次元データの例である３Ｄデータが入力される。このように３Ｄデータが入力されると、処理部１１０は、３Ｄデータを取得できる。なお、操作部７０に対してユーザの操作が操作を行うと、操作によって指定されたファイルパスのデータを処理部１１０が取得してもよい。
【００９８】
処理部１１０は、入力される３Ｄデータから図９に示す処理等によってスライスデータを生成する。次に、処理部１１０は、入力される３Ｄデータによって造形される立体物の周囲の空間を解析する。この解析の結果、立体物の造形において、鉛直下方が基盤に接しておらず空間になっているため、支持が必要な部分を支持するための支持部が必要となる場合がある。そのため、処理部１１０は、支持部のデータを生成して、元々の３Ｄデータに追加する。このような処理部１１０を実現するためのソフトウェア・プログラムが用いられる。
【００９９】
３Ｄプリンタドライバ１２０は、ＰＣ１０から３Ｄプリンタ２０を動作させるためのソフトウェア・モジュールであり、一般的な３Ｄプリンタのドライバソフトウェアと同様の機能を有する。例えば、３Ｄプリンタドライバ１２０は、一般的な紙のプリンタにおけるプリンタドライバの機能に準じており、入力される３Ｄデータに基づいて３Ｄプリンタ２０を動作させるためのスライスデータ等を生成して、制御用のデータと共に３Ｄプリンタ２０に送信する。
【０１００】
＜まとめ＞
以上の説明から明らかなように、本実施形態に係る情報処理装置及び３Ｄプリンタシステムでは、
・計算部は、スライスデータのスライス面に対して垂直となる第１の方向において、スライス面と、入力部が入力する３次元データが有する第１ポリゴンデータとの距離を計算する構成である。
・第１決定部は、計算部による計算結果に基づいて、部品ごとに、投影部が第１ポリゴンデータを投影する際の色を決定する構成である。
・第２決定部は、部品ごとの第１決定部によるいずれかの決定で第２色と決定されると、第１色と決定された部分を第２色とする構成である。
・投影部は、第２決定部で決定される色で、３次元データを２次元に投影してスライスデータを生成する構成である。
【０１０１】
このように、本発明に係る実施形態では、視線方向等の第１の方向において、計算部は、スライス面と、入力部によって入力される３次元データが有する第１ポリゴンデータとの距離を計算する。この計算結果に基づいて、まず、第１決定部が色を決定する。続いて、同一の部分に対して、第１決定部が部品ごとに決定した各色のうち、いずれかの決定で第２色と決定されていると、第２決定部は、投影部が第１ポリゴンデータを投影する際の色を第２色とする。次に、投影部は、第２決定部で決定される色で、３次元データを２次元に投影してスライスデータを生成する。
【０１０２】
このようにすると、非多様体又は干渉等によって、いずれかの部品において、第１決定部が第１色と決定してしまっても、他の部品において、同一の部分に対して、少なくとも１回以上、第２色と決定されていれば、第２決定部は、第２色と決定できる。
【０１０３】
スライスデータにおいて、第１色とされる部分は、３Ｄプリンタ等によって、造形が行われないため、空洞となる場合が多い。一方、第２色とされる部分は、３Ｄプリンタ等によって、造形が行われる部分である。したがって、非多様体又は干渉等によって、第２色としなければならない部分が第１色とされると、設計で意図していない空洞等が生成されてしまう場合がある。
【０１０４】
これに対して、本発明に係る実施形態では、第２決定部によって、いずれかの部品において、第２色と決定されていれば、第２決定部は、第２色と決定できる。このため、スライスデータの生成において、非多様体又は干渉等があっても、スライスデータが生成できる。
【０１０５】
なお、本発明に係る各処理の全部又は一部は、アセンブラ等の低水準言語、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）又はオブジェクト指向言語等の高水準言語等で記述されるコンピュータに実行させるためのプログラムによって実現されてもよい。即ち、プログラムは、情報処理装置又は１以上の情報処理装置を含む情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【０１０６】
また、プログラムは、コンピュータが読み取り可能な記録媒体に記憶して頒布することができる。なお、記録媒体は、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、フラッシュメモリ、フレキシブルディスク、ブルーレイディスク等の光ディスク、ＳＤ（登録商標）カード又はＭＯ等である。さらに、プログラムは、電気通信回線を通じて頒布することができる。
【０１０７】
さらに、情報処理システムは、ネットワーク等によって相互に接続される２以上の情報処理装置を有し、各種処理の全部又は一部を複数の情報処理装置が分散、並列、又は冗長してそれぞれ処理を行ってもよい。
【０１０８】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【０１０９】
１  ３Ｄプリンタシステム
１０  ＰＣ
２０  ３Ｄプリンタ
ＭＤＬ  モデル
ＳＬＰ  スライス面
ＰＤ１Ａ  第１三角形
ＰＤ１Ｂ  第２三角形
ＰＤ１Ｃ  第３三角形
ＤＳ  視線方向
ＰＤ２  第２ポリゴンデータ
ＰＤ３  第３ポリゴンデータ
Ｃ１  第１色
Ｃ２  第２色
【先行技術文献】
【特許文献】
【０１１０】
【特許文献１】特開２０１５−２４６３１号公報
【図１】
0006606937.tif 000003
【図２】
0006606937.tif 000004
【図３】
0006606937.tif 000005
【図４】
0006606937.tif 000006
【図５】
0006606937.tif 000007
【図６】
0006606937.tif 000008
【図７】
0006606937.tif 000009
【図８】
0006606937.tif 000010
【図９】
0006606937.tif 000011
【図１０】
0006606937.tif 000012
【図１１】
0006606937.tif 000013
【図１２】
0006606937.tif 000014
【図１３】
0006606937.tif 000015
【図１４】
0006606937.tif 000016
【図１５】
0006606937.tif 000017
【図１６】
0006606937.tif 000018
【図１７】
0006606937.tif 000019
【図１８】
0006606937.tif 000020
【図１９】
0006606937.tif 000021