(57)【特許請求の範囲】
【請求項１】
造形する３次元造形物の３次元モデルを所定の間隔にスライスし、前記３次元造形物の輪郭を示す輪郭線によって構成されたスライスモデルにおいて、前記スライスモデル内の領域を、造形する造形領域と造形しない非造形領域とに分けるスライスモデルの領域判定装置であって、
前記輪郭線には、前記３次元造形物の造形領域の外郭の形状を示す島輪郭線と、前記３次元造形物の穴の形状を示す穴輪郭線とが含まれ、
前記スライスモデルを記憶する記憶部と、
前記記憶部に記憶された前記スライスモデルの前記輪郭線から、所定の輪郭線を抽出し、抽出した前記所定の輪郭線を対象輪郭線に設定する対象輪郭線設定部と、
前記対象輪郭線設定部によって設定された前記対象輪郭線が前記島輪郭線であるか否かを判定する第１輪郭線判定部と、
前記第１輪郭線判定部によって前記対象輪郭線が前記島輪郭線であると判定された場合、前記対象輪郭線を最も隣接した位置で外側から囲む直近外囲輪郭線が設定されているか否かを判定する直近外囲輪郭線判定部と、
前記直近外囲輪郭線判定部によって、前記直近外囲輪郭線が設定されていると判定された場合、前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する第２輪郭線判定部と、
前記第２輪郭線判定部によって、前記直近外囲輪郭線が前記島輪郭線であると判定された場合、前記対象輪郭線を前記スライスモデルから削除し、前記対象輪郭線を削除したスライスモデルを前記記憶部に記憶する削除部と、
前記記憶部に記憶された前記スライスモデルの領域を前記造形領域と前記非造形領域とに分ける領域判定部と、
を備えた、スライスモデルの領域判定装置。
【請求項２】
前記直近外囲輪郭線判定部は、
前記対象輪郭線上の所定の点から所定の方向に向かうように走査線を設定する走査線設定部と、
前記走査線設定部によって設定された前記走査線と、前記スライスモデルの前記輪郭線のうち前記対象輪郭線以外の一の輪郭線とが交差する交差点をカウントするカウント部と、
前記カウント部によってカウントされた前記交差点の数が奇数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていると判定し、前記カウント部によってカウントされた前記交差点の数が偶数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていないと判定する第１外囲判定部と、
前記第１外囲判定部によって前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定された場合、前記対象輪郭線と前記一の輪郭線との間の距離を算出する距離算出部と、
前記第１外囲判定部によって前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定された前記一の輪郭線が複数ある場合、前記距離算出部によって算出された前記距離のうち最も小さい値の距離に対応した前記一の輪郭線が前記直近外囲輪郭線であると判定する第２外囲判定部と、
を備え、
前記第２輪郭線判定部は、前記第２外囲判定部によって判定された前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する、請求項１に記載されたスライスモデルの領域判定装置。
【請求項３】
前記記憶部に記憶された前記スライスモデルの前記島輪郭線と前記穴輪郭線とにおいて、前記島輪郭線の周回方向を一の方向に設定し、前記穴輪郭線の周回方向を前記一の方向とは逆の他の方向に設定する周回方向設定部を備え、
前記第１輪郭線判定部は、前記対象輪郭線設定部によって設定された前記対象輪郭線の周回方向が前記周回方向設定部によって設定された前記一の方向の場合、前記対象輪郭線は前記島輪郭線であると判定し、
前記第２輪郭線判定部は、前記直近外囲輪郭線の周回方向が前記周回方向設定部によって設定された前記一の方向の場合、前記直近外囲輪郭線は前記島輪郭線であると判定する、請求項１または２に記載されたスライスモデルの領域判定装置。
【請求項４】
３次元造形物を造形する３次元造形装置と、
請求項１から３までの何れか一つに記載されたスライスモデルの領域判定装置と、
を備えた、３次元造形システム。
【請求項５】
造形する３次元造形物の３次元モデルを所定の間隔にスライスし、前記３次元造形物の輪郭を示す輪郭線によって構成されたスライスモデルにおいて、前記スライスモデル内の領域を、造形する造形領域と造形しない非造形領域とに分けるスライスモデルの領域判定方法であって、
前記輪郭線には、前記３次元造形物の造形領域の外郭の形状を示す島輪郭線と、前記３次元造形物の穴の形状を示す穴輪郭線とが含まれ、
前記スライスモデルを記憶する記憶工程と、
前記記憶工程で記憶した前記スライスモデルの前記輪郭線から所定の輪郭線を抽出し、抽出した前記所定の輪郭線を対象輪郭線に設定する対象輪郭線設定工程と、
前記対象輪郭線設定工程で設定した前記対象輪郭線が前記島輪郭線であるか否かを判定する第１輪郭線判定工程と、
前記第１輪郭線判定工程において前記対象輪郭線が前記島輪郭線であると判定した場合、前記対象輪郭線を最も隣接した位置で外側から囲む直近外囲輪郭線が設定されているか否かを判定する直近外囲輪郭線判定工程と、
前記直近外囲輪郭線判定工程において前記直近外囲輪郭線が設定されていると判定した場合、前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する第２輪郭線判定工程と、
前記第２輪郭線判定工程において前記直近外囲輪郭線が前記島輪郭線であると判定した場合、前記対象輪郭線を前記スライスモデルから削除し、前記対象輪郭線を削除したスライスモデルを記憶する削除工程と、
前記記憶工程または前記削除工程で記憶した前記スライスモデルの領域を前記造形領域と前記非造形領域とに分ける領域判定工程と、
を包含する、スライスモデルの領域判定方法。
【請求項６】
前記直近外囲輪郭線判定工程は、
前記対象輪郭線上の所定の点から所定の方向に向かうように走査線を設定する走査線設定工程と、
前記走査線設定工程で設定した前記走査線と、前記スライスモデルの前記輪郭線のうち前記対象輪郭線以外の一の輪郭線とが交差する交差点をカウントするカウント工程と、
前記カウント工程でカウントした前記交差点の数が奇数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていると判定し、前記カウント工程でカウントした前記交差点の数が偶数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていないと判定する第１外囲判定工程と、
前記第１外囲判定工程で前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定した場合、前記対象輪郭線と前記一の輪郭線との間の距離を算出する距離算出工程と、
前記第１外囲判定工程で前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定した前記一の輪郭線が複数ある場合、前記距離算出工程で算出した前記距離のうち最も小さい値の距離に対応した前記一の輪郭線が前記直近外囲輪郭線であると判定する第２外囲判定工程と、
を包含し、
前記第２輪郭線判定工程において、前記第２外囲判定工程で判定した前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する、請求項５に記載されたスライスモデルの領域判定方法。
【請求項７】
前記記憶工程で記憶した前記スライスモデルの前記島輪郭線と前記穴輪郭線とにおいて、前記島輪郭線の周回方向を一の方向に設定し、前記穴輪郭線の周回方向を前記一の方向とは逆の他の方向に設定する周回方向設定工程を包含し、
前記第１輪郭線判定工程では、前記対象輪郭線設定工程で設定した前記対象輪郭線の周回方向が前記周回方向設定工程で設定した前記一の方向の場合、前記対象輪郭線は前記島輪郭線であると判定し、
前記第２輪郭線判定工程では、前記直近外囲輪郭線の周回方向が前記周回方向設定工程で設定した前記一の方向の場合、前記直近外囲輪郭線は前記島輪郭線であると判定する、請求項５または６に記載されたスライスモデルの領域判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スライスモデルの領域判定装置、３次元造形システム、および、スライスモデルの領域判定方法に関する。
【背景技術】
【０００２】
従来から、３次元造形物を造形する３次元造形装置が知られている。この種の３次元造形装置では、例えば、コンピュータ支援設計装置（ＣＡＤ装置）を用いて、３次元造形物を造形するための３次元モデルのデータを作成している（例えば、特許文献１参照）。そして、３次元モデルを所定の間隔でスライスすることで、３次元造形物の断面形状に対応したスライスモデルのデータを作成している。３次元造形装置は、スライスモデルのデータに沿った断面形状の樹脂材料を硬化させながら順次積層することによって、所望の３次元造形物を造形する。
【０００３】
図８（ａ）は、３次元造形物Ａ１００の平面図である。図８（ｂ）は、３次元造形物Ａ１００の側面図である。この３次元造形物Ａ１００の形状は、直径が異なる２つの円柱形状のものを上下方向に並べた形状である。３次元造形物Ａ１００の形状は、平面視において、中央部分が切り抜かれた形状である。図９は、図８（ｂ）の位置ＰＴ１００で３次元造形物Ａ１００をスライスしたスライスモデルＳＭ１００を示した図である。なお、図８（ａ）、図８（ｂ）、図９において、斜線が引かれた領域は造形領域である。スライスモデルＳＭ１００は、３次元造形物Ａ１００の形状を示す輪郭線によって構成されている。この輪郭線には、例えば、３次元造形物Ａ１００の造形領域の外郭を示す輪郭線Ｌ１０１と、３次元造形物Ａ１００の穴の形状を示す輪郭線Ｌ１０２とが含まれる。以下の説明において、３次元造形物の造形領域の外郭を示す輪郭線を「島輪郭線」と称する。３次元造形物の穴の形状を示す輪郭線を「穴輪郭線」と称する。
【０００４】
図９において、島輪郭線Ｌ１０１と穴輪郭線Ｌ１０２との間の領域Ｄ１０１は造形領域である。穴輪郭線Ｌ１０２よりも内側の領域Ｄ１０２は、穴を示しており、造形されない非造形領域である。
【０００５】
例えば、スライスモデルＳＭ１００において、輪郭線Ｌ１０１、Ｌ１０２が島輪郭線か穴輪郭線かを識別するために、それぞれの輪郭線Ｌ１０１、Ｌ１０２において周回方向が設定されている。例えば、島輪郭線Ｌ１０１の周回方向は時計回りの方向に設定されている。また、穴輪郭線Ｌ１０２の周回方向は反時計回りの方向に設定されている。コンピュータプログラムは、設定された輪郭線の周回方向によって、輪郭線が島輪郭線か穴輪郭線かを判定している。
【０００６】
ところで、コンピュータプログラムにおいて、スライスモデルＳＭ１００の領域を造形領域と非造形領域とに分けるために、輪郭線Ｌ１０１、Ｌ１０２に対して交差し、かつ、所定の方向（例えば、図９では、左から右へ向かう方向）に走査する直線状の走査線ＳＬ１００を設定する。また、コンピュータプログラムには、スライスモデルＳＭ１００の領域を造形領域と非造形領域とに分けるための変数ｎ（ここでは、内部レベルｎという。）が設定されている。例えば、内部レベルｎの初期値は「０」である。走査線ＳＬ１００を所定の方向に走査して輪郭線Ｌ１０１、Ｌ１０２と交差した際、輪郭線Ｌ１０１、Ｌ１０２がどの方向から走査線ＳＬ１００と交差したかを判定する。ここでは、輪郭線が一の方向（図９では、下から上へ向かう方向）から走査線ＳＬ１００と交差した場合、内部レベルｎの値に「１」を加算する。一方、輪郭線が一の方向とは異なる他の方向（図９では、上から下へ向かう方向）から走査線ＳＬ１００と交差した場合、内部レベルｎの値に「１」を減算する。図９のスライスモデルＳＭ１００では、交差点Ｐ１０１、Ｐ１０３において、内部レベルｎの値に「１」が加算される。そして、交差点Ｐ１０２、Ｐ１０４において、内部レベルｎの値に「１」が減算される。コンピュータプログラムは、内部レベルｎの値が「０」以外の場合、内部レベルｎに対応した領域（図９では、領域Ｄ１０１）を造形領域と判定し、内部レベルｎの値が「０」の場合、内部レベルｎに対応した領域（図９では、領域Ｄ１０２）を非造形領域と判定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００３−５３５７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
図１０は、図８（ｂ）の位置ＰＴ１１０で３次元造形物Ａ１００をスライスしたスライスモデルＳＭ１１０を示した図である。図８（ｂ）において、位置ＰＴ１１０は、３次元造形物Ａ１００を構成する２つの円柱形状のものの境目となる位置である。そのため、図１０のスライスモデルＳＭ１１０には、下側の円柱形状のものの上端の外郭を示す島輪郭線Ｌ１１１と、上側の円柱形状のものの下端の外郭を示す島輪郭線Ｌ１１２とが設けられている。図１０において、斜線が引かれた領域は、造形領域である。図１０では、島輪郭線Ｌ１１１と穴輪郭線Ｌ１１３との間には、他の島輪郭線Ｌ１１２が設けられている。スライスモデルＳＭ１１０において、島輪郭線Ｌ１１１と島輪郭線Ｌ１１２との間の領域Ｄ１１１、および、島輪郭線Ｌ１１２と穴輪郭線Ｌ１１３との間の領域Ｄ１１２は、造形領域である。一方、穴輪郭線Ｌ１１３よりも内側の領域Ｄ１１３は、非造形領域である。
【０００９】
コンピュータプログラムは、スライスモデルＳＭ１１０の輪郭線に対して交差するような走査線ＳＬ１１０を設定する。そして、走査線ＳＬ１１０を走査して内部レベルｎの値が推移することで、スライスモデルＳＭ１１０の領域を造形領域と非造形領域とに分けている。このとき、交差点Ｐ１１１、Ｐ１１２において、内部レベルｎの値にそれぞれ「１」が加算されるため、交差点Ｐ１１２では、内部レベルｎの値が「２」となる。交差点Ｐ１１３において、内部レベルｎの値に「１」が減算されるため、内部レベルｎの値が「１」となる。同様にして、交差点Ｐ１１４では内部レベルｎの値が「２」、交差点Ｐ１１５では内部レベルｎの値が「１」、交差点Ｐ１１６では内部レベルｎの値が「０」となる。
【００１０】
コンピュータプログラムは、内部レベルｎの値が「０」の場合、内部レベルｎに対応した領域が非造形領域であると判定する。上述したように、スライスモデルＳＭ１１０において、本来、領域Ｄ１１３は非造形領域である。しかしながら、領域Ｄ１１３では内部レベルｎの値が「１」であるため、コンピュータプログラムは、領域Ｄ１１３を造形領域と判定してしまうおそれがあった。
【００１１】
本発明はかかる点に鑑みてなされたものであり、その目的は、造形する３次元造形物の３次元モデルを所定の間隔でスライスしたスライスモデルにおいて、スライスモデルの領域を造形領域と非造形領域とに適切に分けることが可能なスライスモデルの領域判定装置、３次元造形システム、および、スライスモデルの領域判定方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明に係るスライスモデルの領域判定装置は、造形する３次元造形物の３次元モデルを所定の間隔にスライスし、前記３次元造形物の輪郭を示す輪郭線によって構成されたスライスモデルにおいて、前記スライスモデル内の領域を、造形する造形領域と造形しない非造形領域とに分けるスライスモデルの領域判定装置である。前記輪郭線には、前記３次元造形物の造形領域の外郭の形状を示す島輪郭線と、前記３次元造形物の穴の形状を示す穴輪郭線とが含まれている。前記領域判定装置は、記憶部と、対象輪郭線設定部と、第１輪郭線判定部と、直近外囲輪郭線判定部と、第２輪郭線判定部と、削除部と、領域判定部とを備えている。前記記憶部は、前記スライスモデルを記憶する。前記対象輪郭線設定部は、前記記憶部に記憶された前記スライスモデルの前記輪郭線から、所定の輪郭線を抽出し、抽出した前記所定の輪郭線を対象輪郭線に設定する。前記第１輪郭線判定部は、前記対象輪郭線設定部によって設定された前記対象輪郭線が前記島輪郭線であるか否かを判定する。前記直近外囲輪郭線判定部は、前記第１輪郭線判定部によって前記対象輪郭線が前記島輪郭線であると判定された場合、前記対象輪郭線を最も隣接した位置で外側から囲む直近外囲輪郭線が設定されているか否かを判定する。前記第２輪郭線判定部は、前記直近外囲輪郭線判定部によって、前記直近外囲輪郭線が設定されていると判定された場合、前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する。前記削除部は、前記第２輪郭線判定部によって、前記直近外囲輪郭線が前記島輪郭線であると判定された場合、前記対象輪郭線を前記スライスモデルから削除し、前記対象輪郭線を削除したスライスモデルを前記記憶部に記憶する。前記領域判定部は、前記記憶部に記憶された前記スライスモデルの領域を前記造形領域と前記非造形領域とに分ける。
【００１３】
従来では、例えば、図１０のような島輪郭線Ｌ１１１と穴輪郭線Ｌ１１３との間に他の島輪郭線Ｌ１１２が設けられているスライスモデルＳＭ１１０の場合、領域Ｄ１１３は非造形領域であるにも関わらず、領域Ｄ１１３を造形領域と判定するおそれがある。これは、島輪郭線Ｌ１１２が最も隣接した位置で島輪郭線Ｌ１１１によって外側から囲まれているためだと考えられる。このことは、図８（ｂ）の位置ＰＴ１１０のように、３次元造形物Ａ１００を構成する複数の形状のものの境目の位置で３次元造形物Ａ１００をスライスしたスライスモデルＳＭ１１０の場合に起こり得ると考えられる。島輪郭線Ｌ１１２は、造形領域を判定する上で不必要な輪郭線である。そこで、前記領域判定装置では、直近外囲輪郭線判定部によって、島輪郭線である対象輪郭線を最も隣接した位置で外側から囲む直近外囲輪郭線が設定されているか否かを判定する。ここで、「直近外囲輪郭線」とは、対象輪郭線を外側から囲む輪郭線のうち、最も隣接した位置で対象輪郭線を囲む輪郭線、すなわち、直近の位置で対象輪郭線を外側から囲む輪郭線である。第２輪郭線判定部は、直近外囲輪郭線判定部によって直近外囲輪郭線が設定されていると判定された場合、直近外囲輪郭線が島輪郭線であるか否かを判定する。そして、直近外囲輪郭線が島輪郭線である場合、削除部は、対象輪郭線をスライスモデルから削除している。よって、図１０の島輪郭線Ｌ１１２のような造形領域を判定する上で不必要な島輪郭線をスライスモデルから削除することができる。したがって、例えば、図１０のスライスモデルＳＭ１１０のように、島輪郭線Ｌ１１２が最も隣接した位置で島輪郭線Ｌ１１１によって外側から囲まれている場合であっても、スライスモデルＳＭ１１０の領域を造形領域と非造形領域とに確実に分けることができる。
【００１４】
本発明の好ましい一態様によれば、前記直近外囲輪郭線判定部は、走査線設定部と、カウント部と、第１外囲判定部と、距離算出部と、第２外囲判定部とを備えている。前記走査線設定部は、前記対象輪郭線上の所定の点から所定の方向に向かうように走査線を設定する。前記カウント部は、前記走査線設定部によって設定された前記走査線と、前記スライスモデルの前記輪郭線のうち前記対象輪郭線以外の一の輪郭線とが交差する交差点をカウントする。前記第１外囲判定部は、前記カウント部によってカウントされた前記交差点の数が奇数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていると判定し、前記カウント部によってカウントされた前記交差点の数が偶数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていないと判定する。前記距離算出部は、前記第１外囲判定部によって前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定された場合、前記対象輪郭線と前記一の輪郭線との間の距離を算出する。前記第２外囲判定部は、前記第１外囲判定部によって前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定された前記一の輪郭線が複数ある場合、前記距離算出部によって算出された前記距離のうち最も小さい値の距離に対応した前記一の輪郭線が前記直近外囲輪郭線であると判定する。前記第２輪郭線判定部は、前記第２外囲判定部によって判定された前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する。
【００１５】
上記態様では、スライスモデル上に設定された走査線と、対象輪郭線以外の一の輪郭線とが交差する交差点の数が奇数の場合、その一の輪郭線は、対象輪郭線を外側から囲む輪郭線である。対象輪郭線を外側から囲む一の輪郭線が複数ある場合、複数の一の輪郭線のうち対象輪郭線に対して最も近くに位置する一の輪郭線を、直近外囲輪郭線と判定することができる。さらに、直近外囲輪郭線が島輪郭線である場合、対象輪郭線をスライスモデルから削除することができる。
【００１６】
本発明の好ましい他の一態様によれば、前記記憶部に記憶された前記スライスモデルの前記島輪郭線と前記穴輪郭線とにおいて、前記島輪郭線の周回方向を一の方向に設定し、前記穴輪郭線の周回方向を前記一の方向とは逆の他の方向に設定する周回方向設定部を備えている。前記第１輪郭線判定部は、前記対象輪郭線設定部によって設定された前記対象輪郭線の周回方向が前記周回方向設定部によって設定された前記一の方向の場合、前記対象輪郭線は前記島輪郭線であると判定する。前記第２輪郭線判定部は、前記直近外囲輪郭線の周回方向が前記周回方向設定部によって設定された前記一の方向の場合、前記直近外囲輪郭線は前記島輪郭線であると判定する。
【００１７】
上記態様によれば、第１輪郭線判定部は、対象輪郭線の周回方向が一の方向であるか否かを判定することで、対象輪郭線が島輪郭線であるか否かを容易に判定することができる。また、第２輪郭線判定部は、直接外囲輪郭線の周回方向が一の方向であるか否かを判定することで、直接外囲輪郭線が島輪郭線であるか否かを容易に判定することができる。
【００１８】
本発明に係る３次元造形システムは、３次元造形物を造形する３次元造形装置と、上述した何れかに記載されたスライスモデルの領域判定装置と、を備えている。
【００１９】
上記態様によれば、上述した何れかに記載されたスライスモデルの領域判定装置を備えた３次元造形システムを提供することができる。
【００２０】
本発明に係るスライスモデルの領域判定方法は、造形する３次元造形物の３次元モデルを所定の間隔にスライスし、前記３次元造形物の輪郭を示す輪郭線によって構成されたスライスモデルにおいて、前記スライスモデル内の領域を、造形する造形領域と造形しない非造形領域とに分けるスライスモデルの領域判定方法である。前記輪郭線には、前記３次元造形物の造形領域の外郭の形状を示す島輪郭線と、前記３次元造形物の穴の形状を示す穴輪郭線とが含まれている。前記領域判定方法は、記憶工程と、対象輪郭線設定工程と、第１輪郭線判定工程と、直近外囲輪郭線判定工程と、第２輪郭線判定工程と、削除工程と、領域判定工程とを包含する。前記記憶工程では、前記スライスモデルを記憶する。前記対象輪郭線設定工程では、前記記憶工程で記憶した前記スライスモデルの前記輪郭線から所定の輪郭線を抽出し、抽出した前記所定の輪郭線を対象輪郭線に設定する。前記第１輪郭線判定工程では、前記対象輪郭線設定工程で設定した前記対象輪郭線が前記島輪郭線であるか否かを判定する。前記直近外囲輪郭線判定工程では、前記第１輪郭線判定工程において前記対象輪郭線が前記島輪郭線であると判定した場合、前記対象輪郭線を最も隣接した位置で外側から囲む直近外囲輪郭線が設定されているか否かを判定する。前記第２輪郭線判定工程では、前記直近外囲輪郭線判定工程において前記直近外囲輪郭線が設定されていると判定した場合、前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する。前記削除工程では、前記第２輪郭線判定工程において前記直近外囲輪郭線が前記島輪郭線であると判定した場合、前記対象輪郭線を前記スライスモデルから削除し、前記対象輪郭線を削除したスライスモデルを記憶する。前記領域判定工程では、前記記憶工程または前記削除工程で記憶した前記スライスモデルの領域を前記造形領域と前記非造形領域とに分ける。
【００２１】
本発明の好ましい他の一態様によれば、前記直近外囲輪郭線判定工程は、走査線設定工程と、カウント工程と、第１外囲判定工程と、距離算出工程と、第２外囲判定工程とを包含する。前記走査線設定工程では、前記対象輪郭線上の所定の点から所定の方向に向かうように走査線を設定する。前記カウント工程では、前記走査線設定工程で設定した前記走査線と、前記スライスモデルの前記輪郭線のうち前記対象輪郭線以外の一の輪郭線とが交差する交差点をカウントする。前記第１外囲判定工程では、前記カウント工程でカウントした前記交差点の数が奇数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていると判定し、前記カウント工程でカウントした前記交差点の数が偶数の場合、前記一の輪郭線は前記対象輪郭線を外側から囲むように配置されていないと判定する。前記距離算出工程では、前記第１外囲判定工程で前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定した場合、前記対象輪郭線と前記一の輪郭線との間の距離を算出する。前記第２外囲判定工程では、前記第１外囲判定工程で前記一の輪郭線が前記対象輪郭線を外側から囲むように配置されていると判定した前記一の輪郭線が複数ある場合、前記距離算出工程で算出した前記距離のうち最も小さい値の距離に対応した前記一の輪郭線が前記直近外囲輪郭線であると判定する。前記第２輪郭線判定工程において、前記第２外囲判定工程で判定した前記直近外囲輪郭線が前記島輪郭線であるか否かを判定する。
【００２２】
本発明の好ましい他の一態様によれば、前記記憶工程で記憶した前記スライスモデルの前記島輪郭線と前記穴輪郭線とにおいて、前記島輪郭線の周回方向を一の方向に設定し、前記穴輪郭線の周回方向を前記一の方向とは逆の他の方向に設定する周回方向設定工程を包含する。前記第１輪郭線判定工程では、前記対象輪郭線設定工程で設定した前記対象輪郭線の周回方向が前記周回方向設定工程で設定した前記一の方向の場合、前記対象輪郭線は前記島輪郭線であると判定する。前記第２輪郭線判定工程では、前記直近外囲輪郭線の周回方向が前記周回方向設定工程で設定した前記一の方向の場合、前記直近外囲輪郭線は前記島輪郭線であると判定する。
【発明の効果】
【００２３】
本発明によれば、造形する３次元造形物の３次元モデルを所定の間隔でスライスしたスライスモデルにおいて、スライスモデルの領域を造形領域と非造形領域とに適切に分けることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る３次元造形システムの断面図である。
【図２】３次元造形システムの平面図である。
【図３】３次元造形システムのブロック図である。
【図４】スライスモデルの輪郭線が島輪郭線か穴輪郭線かを判別するための手順を示す図である。
【図５】スライスモデルにおいて、不必要な輪郭線を削除した後に、領域判定を行う手順を示したフローチャートである。
【図６】スライスモデルの一例を示した図である。
【図７】図６のスライスモデルから不必要な輪郭線を削除した後のスライスモデルを示した図である。
【図８】従来技術を説明する図であり、図８（ａ）は、３次元造形物の平面図であり、図８（ｂ）は、３次元造形物の側面図である。
【図９】従来技術を説明する図であり、図８（ｂ）の位置ＰＴ１００で３次元造形物をスライスしたスライスモデルを示した図である。
【図１０】従来技術を説明する図であり、図８（ｂ）の位置ＰＴ１１０で３次元造形物をスライスしたスライスモデルを示した図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照しながら、本発明の実施形態に係るスライスモデルの領域判定装置（以下、領域判定装置という。）を備えた３次元造形システムについて説明する。なお、ここで説明される実施形態は、当然ながら特に本発明を限定することを意図したものではない。また、同じ作用を奏する部材・部位には同じ符号を付し、重複する説明は適宜省略または簡略化する。
【００２６】
図１は、本実施形態に係る３次元造形システム１０の断面図である。図２は、３次元造形システム１０の平面図である。図３は、３次元造形システム１０のブロック図である。なお、図面中の符号Ｆ、Ｒｒ、Ｌ、Ｒは、それぞれ前、後、左、右を示している。ただし、これらは説明の便宜上の方向に過ぎず、３次元造形システム１０の設置態様を何ら限定するものではない。
【００２７】
３次元造形システム１０は、３次元造形物を造形するシステムである。図１に示すように、３次元造形システム１０は、３次元造形装置１０Ａと、領域判定装置１００（図３参照）とを備えている。３次元造形装置１０Ａは、３次元造形物の断面形状を用意し、液体の光硬化性樹脂を硬化させて断面形状に対応した形状の樹脂層を順次積層することによって、３次元造形物を造形する装置である。ここで、「断面形状」とは、３次元造形物を所定の厚み（例えば、０．１ｍｍ）ごとにスライスしたときの断面の形状である。「光硬化性樹脂」とは、所定の波長を含む光が照射されると、硬化する樹脂である。３次元造形装置１０Ａは、台１１と、槽１２と、ホルダ１３と、光学装置１４と、制御装置１６とを備えている。
【００２８】
台１１は、ケース２５に支持されている。台１１には、光硬化性樹脂２３に照射する光を通過させる開口２１が形成されている。槽１２は、液体の光硬化性樹脂２３を収容する。槽１２は、台１１上に取り付け可能に載置されている。図２に示すように、槽１２は、台１１に載置された状態において、台１１の開口２１を覆う。槽１２は、光を透過させることのできる材料、例えば、透明な材料によって形成されているとよい。
【００２９】
図１に示すように、ホルダ１３は、槽１２の上方、かつ、台１１の開口２１の上方に配置されている。ホルダ１３は、下降したときに槽１２内の光硬化性樹脂２３に浸漬し、上昇するときに、光が照射されて硬化した光硬化性樹脂２３を吊り上げるように昇降自在に構成されている。ここでは、台１１には、上下方向に延びた支柱４１が設けられている。支柱４１の前方には、スライダ４２が取り付けられている。スライダ４２は、支柱４１に沿って昇降自在であり、モータ４３によって上方または下方に移動する。ここでは、ホルダ１３は、スライダ４２に取り付けられており、支柱４１の前方に配置されている。ホルダ１３は、モータ４３によって上方または下方に移動する。
【００３０】
光学装置１４は、台１１の下方に配置されている。光学装置１４は、槽１２内に収容された液体の光硬化性樹脂２３に所定の波長からなる光を照射する装置である。光学装置１４は、台１１の下方に設けられたケース２５に収容されている。光学装置１４は、プロジェクタ３１と、ミラー３２とを備えている。プロジェクタ３１は、光を発する光源であり、台１１の前部の下方に配置されている。プロジェクタ３１は、ホルダ１３よりも前方に配置されている。プロジェクタ３１の後部には、レンズ３４が配置されている。プロジェクタ３１は、レンズ３４を通じて前方から後方に向かって光を発する。ミラー３２は、プロジェクタ３１から発せられた光を槽１２に向かって反射させる部材である。ミラー３２は、台１１に形成された開口２１の下方、かつ、プロジェクタ３１の後方に配置されている。プロジェクタ３１から発せられた光は、ミラー３２によって反射され、台１１の開口２１を通じて槽１２内の光硬化性樹脂２３に照射される。
【００３１】
制御装置１６は、ホルダ１３が取り付けられたスライダ４２を昇降自在に制御するモータ４３、および、光学装置１４のプロジェクタ３１に接続されている。制御装置１６は、モータ４３を駆動することによって、スライダ４２およびホルダ１３を上方または下方に移動させる。制御装置１６は、プロジェクタ３１から発せられる光のエネルギー、光度、光量、光の波長帯域、光の形状、光を照射させる位置および光を発するタイミングなどを制御する。なお、制御装置１６の構成は特に限定されない。例えば、制御装置１６は、コンピュータであり、中央演算処理装置（以下、ＣＰＵという。）と、ＣＰＵが実行するプログラムなどを格納したＲＯＭと、ＲＡＭなどを備えていてもよい。
【００３２】
以上、本実施形態に係る３次元造形装置１０Ａの構成について説明した。本実施形態に係る３次元造形装置１０Ａでは、造形する３次元造形物に対応した３次元モデルのデータ（以下、造形物モデルという。）を用意する。そして、造形物モデルを所定の間隔で水平方向にスライスすることによって、３次元造形物の断面形状に対応した２次元のスライスモデルのデータを複数作成する。ただし、造形物モデルをスライスする方向は、水平方向に限定されず、例えば、垂直方向であってもよい。ここでは、スライスモデルのデータとは、ＳＴＬデータのことである。以下、２次元のスライスモデルのデータを単に「スライスモデル」とも称する。
【００３３】
ところで、図９に示すように、例えば、造形する３次元造形物Ａ１００のスライスモデルＳＭ１００は、３次元造形物Ａ１００（図８（ａ）および（ｂ）参照）の形状を示す輪郭線によって構成されている。この輪郭線には、例えば、３次元造形物Ａ１００の外郭を示す島輪郭線Ｌ１０１と、３次元造形物Ａ１００の穴の形状を示す穴輪郭線Ｌ１０２とが含まれている。島輪郭線Ｌ１０１よりも内側であって、穴輪郭線Ｌ１０２よりも外側の領域Ｄ１０１は、光硬化性樹脂２３が硬化する領域、すなわち、造形領域である。一方、穴輪郭線Ｌ１０２よりも内側の領域（ただし、穴輪郭線Ｌ１０２よりも内側に他の島輪郭線がある場合、穴輪郭線Ｌ１０２よりも内側であって、他の島輪郭線よりも外側の領域）Ｄ１０２は穴であり、その領域は光硬化性樹脂２３が硬化しない領域、すなわち、造形されない非造形領域である。
【００３４】
ここでは、スライスモデルＳＭ１００において、島輪郭線Ｌ１０１と穴輪郭線Ｌ１０２とを識別するために、それぞれの輪郭線において周回方向が設定されている。例えば、島輪郭線Ｌ１０１の周回方向は時計回りであり、穴輪郭線Ｌ１０２の周回方向は反時計回りである。ただし、島輪郭線Ｌ１０１の周回方向と穴輪郭線Ｌ１０２の周回方向とは異なっていればよい。例えば、島輪郭線Ｌ１０１の周回方向が反時計回りであり、穴輪郭線Ｌ１０２の周回方向が時計回りであってもよい。
【００３５】
なお、スライスモデルの輪郭線の周回方向が分からないため、その輪郭線が島輪郭線か穴輪郭線かが分からない場合には、以下の手順で輪郭線を判定することができる。図４は、スライスモデルＳＭ１１の輪郭線Ｌ１１が島輪郭線であるか穴輪郭線であるかを判定するための手順を示した図である。以下では、図４のスライスモデルＳＭ１１を用いて、スライスモデルＳＭ１１の輪郭線Ｌ１１が島輪郭線であるか穴輪郭線であるかを判定（以下、輪郭線判定という。）する手順について説明する。ここでは、輪郭線判定をするために、「三角形の符号付き面積」を用いる。「三角形の符号付き面積」とは、三角形の面積にプラスまたはマイナスの符号を付加した面積のことである。例えば、図４に示すような多角形を構成する輪郭線Ｌ１１の場合、まず、成す角度が鋭角である任意の凸頂点を抽出する。ここでは、例えば、頂点ｐを抽出する。次に、頂点ｐと隣合う頂点ｑおよび頂点ｒを抽出する。ここで、三角形△ｐｑｒの符号付き面積を求める。三角形△ｐｑｒの符号付き面積をＳとすると、面積Ｓは、以下の式（１）で表される。
Ｓ＝（ｐ．ｘ−ｒ．ｘ）・（ｑ．ｙ−ｒ．ｙ）−（ｑ．ｘ−ｒ．ｘ）・（ｐ．ｙ−ｒ．ｙ）  ・・・（１）
上記式（１）において、ｐ．ｘおよびｐ．ｙはそれぞれ頂点ｐのｘ座標およびｙ座標、ｑ．ｘおよびｑ．ｙはそれぞれ頂点ｑのｘ座標およびｙ座標、ｒ．ｘおよびｒ．ｙはそれぞれ頂点ｒのｘ座標およびｙ座標を示している。ここで、面積Ｓが「０」より小さい場合、すなわち、面積Ｓが負である場合、輪郭線Ｌ１１は島輪郭線であると判定する。一方、面積Ｓが「０」より大きい場合、すなわち、面積Ｓが正である場合、輪郭線Ｌ１１は穴輪郭線であると判定する。次に、三角形△ｐｑｒの符号付き面積Ｓと、輪郭線Ｌ１１の周回方向とを関連付ける。面積Ｓが負である場合、輪郭線Ｌ１１の周回方向を、例えば、一の方向（ここでは、時計回りの方向）とし、面積Ｓが正である場合、輪郭線Ｌ１１の周回方向を一の方向とは逆の方向（ここでは、反時計回りの方向）とする。
【００３６】
上述したように、図１０のスライスモデルＳＭ１１０では、島輪郭線Ｌ１１１と穴輪郭線Ｌ１１３との間には、他の島輪郭線Ｌ１１２が設けられている。ここでは、島輪郭線Ｌ１１１と島輪郭線Ｌ１１２との間の領域Ｄ１１１、および、島輪郭線Ｌ１１２と穴輪郭線Ｌ１１３との間の領域Ｄ１１２は、造形領域である。一方、穴輪郭線Ｌ１１３よりも内側の領域Ｄ１１３は、非造形領域である。
【００３７】
例えば、図１０のように走査線ＳＬ１１０を設定し、走査線ＳＬ１１０を走査して内部レベルｎの値を推移させる。そして、内部レベルｎの値に基づいて、スライスモデルＳＭ１１０の領域を造形領域と非造形領域に分ける。このとき、図１０に示すように、交差点Ｐ１１２では、内部レベルｎの値が「２」となる。そして、交差点Ｐ１１３では内部レベルｎの値が「１」となり、交差点Ｐ１１４では内部レベルｎの値が「２」となる。本来、領域Ｄ１１３は非造形領域である。しかし、領域Ｄ１１３では内部レベルｎの値が「１」であるため、コンピュータプログラムは、領域Ｄ１１３を造形領域と判定してしまうおそれがある。
【００３８】
このようにコンピュータプログラムが造形領域を誤判定する理由として、島輪郭線Ｌ１１１と穴輪郭線Ｌ１１３との間に、他の島輪郭線Ｌ１１２が設けられていることが考えられる。この島輪郭線Ｌ１１２は、図８（ｂ）の位置ＰＴ１１０のように、３次元造形物Ａ１００を構成する複数の形状のものの境目となる位置でスライスしたスライスモデルＳＭ１１０を作成した際に設けられる輪郭線である。島輪郭線Ｌ１１２が設けられていることによって、コンピュータプログラムはスライスモデルＳＭ１１０の造形領域を誤判定する。島輪郭線Ｌ１１２は、スライスモデルＳＭ１１０の造形領域を判定する際、不必要となる輪郭線である。ここでは、島輪郭線Ｌ１１２を最も隣接した位置で外側から囲む直近外囲輪郭線が島輪郭線である場合、島輪郭線Ｌ１１２は不必要な輪郭線であるといえる。図１０のスライスモデルＳＭ１１０の場合、島輪郭線Ｌ１１２に対する直近外囲輪郭線が島輪郭線Ｌ１１１であるため、島輪郭線Ｌ１１２は、不必要な輪郭線である。この不必要な島輪郭線Ｌ１１２をスライスモデルＳＭ１１０から削除することで、スライスモデルＳＭ１１０の領域を、造形領域と非造形領域とに正確に分けることができる。
【００３９】
そこで、本実施形態では、図３に示すように、領域判定装置１００を用いて、不必要な輪郭線をスライスモデルから削除した後、スライスモデルのどの領域が造形領域であり、どの領域が非造形領域であるかを判定（以下、領域判定という。）する。領域判定装置１００は、造形する３次元造形物の３次元モデルを所定の間隔にスライスしたスライスモデルにおいて、スライスモデルのどの領域が造形領域であり、どの領域が非造形領域であるかを判定する装置である。領域判定装置１００は、３次元造形装置１０Ａと別体であってもよく、３次元造形装置１０Ａに内蔵されていてもよい。例えば、領域判定装置１００は、コンピュータであり、ＣＰＵが実行するプログラムなどを格納したＲＯＭとＲＡＭなどを備えていてもよい。ここでは、コンピュータ内に保存されたプログラムを使用して、スライスモデルの領域を判定する。領域判定装置１００は、３次元造形システム１０のための専用のコンピュータであってもよく、汎用のコンピュータであってもよい。
【００４０】
図５は、スライスモデルにおいて、不必要な輪郭線を削除した後に、領域判定を行う手順を示したフローチャートである。図６は、スライスモデルＳＭ２１の一例を示した図である。なお、図６において、スライスモデルＳＭ２１の造形領域は、斜線で示された領域である。ここでは、図６のスライスモデルＳＭ２１を用いて、領域判定装置１００が、スライスモデルＳＭ２１の不必要な輪郭線を削除した後で、スライスモデルＳＭ２１のどの領域が造形領域であり、どの領域が非造形領域であるかを判定する手順について説明する。
【００４１】
図６のスライスモデルＳＭ２１は、輪郭線Ｌ（１）〜Ｌ（７）によって構成されている。輪郭線Ｌ（１）〜Ｌ（７）のうち、輪郭線Ｌ（１）〜Ｌ（４）、Ｌ（６）およびＬ（７）は、島輪郭線である。輪郭線Ｌ（５）は穴輪郭線である。ここでは、島輪郭線Ｌ（１）に対する直近外囲輪郭線が島輪郭線Ｌ（２）である。また、島輪郭線Ｌ（６）に対する直近外囲輪郭線が島輪郭線Ｌ（７）である。よって、図６のスライスモデルＳＭ２１では、不必要な島輪郭線、すなわち、削除対象となる島輪郭線は、島輪郭線Ｌ（１）、Ｌ（６）である。
【００４２】
まず、ステップＳ１０１では、スライスモデルを作成する。ここでは、造形する３次元造形物の３次元モデルを所定の間隔で水平方向にスライスすることによって、３次元造形物の断面形状に沿った２次元のスライスモデルを複数作成する。なお、図６のスライスモデルＳＭ２１は、作成した複数のスライスモデルのうちの１つである。
【００４３】
次に、ステップＳ１０２では、スライスモデルＳＭ２１の各輪郭線において、周回方向を設定する。ここでは、島輪郭線Ｌ（１）〜Ｌ（４）、Ｌ（６）およびＬ（７）の周回方向をそれぞれ時計回りに設定する。一方、穴輪郭線Ｌ（５）の周回方向を反時計回りに設定する。
【００４４】
次に、各輪郭線Ｌ（１）〜Ｌ（７）を対象にして、以下のステップＳ１０３〜Ｓ１０８の処理を行う。ここでは、輪郭線Ｌ（１）を対象にして、以下のステップＳ１０３〜Ｓ１０８の手順を説明する。以下において、対象となる輪郭線のことを「対象輪郭線」と称する。
【００４５】
まず、ステップＳ１０３では、対象輪郭線Ｌ（１）が島輪郭線であるか穴輪郭線であるかを判定する。ここでは、まず、領域判定装置１００は、スライスモデルＳＭ２１の輪郭線Ｌ（１）〜Ｌ（７）のうち対象輪郭線となる輪郭線Ｌ（１）を抽出し、抽出した輪郭線Ｌ（１）を対象輪郭線に設定する。領域判定装置１００は、対象輪郭線Ｌ（１）の周回方向によって、対象輪郭線Ｌ（１）が島輪郭線か穴輪郭線かを判定する。対象輪郭線Ｌ（１）が島輪郭線であると判定された場合、次にステップＳ１０４の処理を行う。ここでは、対象輪郭線Ｌ（１）は島輪郭線であるため、次にステップＳ１０４の処理を行う。一方、仮に、対象輪郭線Ｌ（１）が穴輪郭線であると判定された場合、以下のステップＳ１０４〜Ｓ１０８の処理は行わず、次の輪郭線Ｌ（２）を対象輪郭線に設定してステップＳ１０３〜Ｓ１０８の処理を行う。例えば、対象輪郭線が輪郭線Ｌ（５）である場合、対象輪郭線Ｌ（５）は穴輪郭線であるため、以下のステップＳ１０４〜Ｓ１０８の処理は行わず、次の輪郭線Ｌ（６）を対象輪郭線に設定してステップＳ１０３〜Ｓ１０８の処理を行う。
【００４６】
次に、ステップＳ１０４では、対象輪郭線Ｌ（１）を外側から囲む輪郭線を求める。ここで、「対象輪郭線を外側から囲む輪郭線」とは、閉じた空間を形成する輪郭線であり、その閉じた空間に対象輪郭線が収まっている輪郭線のことをいう。ここではまず、対象輪郭線Ｌ（１）に対して、走査線ＳＬ２１を設定する。この走査線ＳＬ２１の一端は、対象輪郭線Ｌ（１）上の所定の点である。走査線ＳＬ２１の一端の位置、すなわち、所定の点の位置は特に限定されない。例えば、走査線ＳＬ２１の一端の位置は、対象輪郭線Ｌ（１）の最左点Ｐ２１の位置である。走査線ＳＬ２１は、点Ｐ２１から所定の方向に走査する線である。例えば、所定の方向は図６において点Ｐ２１から左方に向かう方向である。しかし、この所定の方向は特に限定されず、例えば、点Ｐ２１から右方に向かう方向または点Ｐ２１から上方に向かう方向であってもよい。
【００４７】
走査線ＳＬ２１を設定した後、走査線ＳＬ２１が対象輪郭線Ｌ（１）以外の輪郭線Ｌ（２）〜Ｌ（７）とそれぞれいくつ交差したかを、輪郭線Ｌ（２）〜Ｌ（７）ごとにカウントする。例えば、図６では、走査線ＳＬ２１と輪郭線Ｌ（２）とは、点Ｐ２２で交差しており、交差した点（以下、交差点ともいう。）の数は、「１」である。同様に、走査線ＳＬ２１と輪郭線Ｌ（３）、走査線ＳＬ２１と輪郭線Ｌ（４）、走査線ＳＬ２１と輪郭線Ｌ（５）、走査線ＳＬ２１と輪郭線Ｌ（６）、走査線ＳＬ２１と輪郭線Ｌ（７）が交差した点の数は、ぞれぞれ、「２」、「０」、「１」、「１」、「３」である。本実施形態では、交差点の数が奇数である輪郭線が対象輪郭線Ｌ（１）を外側から囲む輪郭線であると判定される。図６では、走査線ＳＬ２１と輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との交差点の数がそれぞれ奇数である。よって、ここでは、輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）が対象輪郭線Ｌ（１）を外側から囲む輪郭線であると判定される。なお、対象輪郭線Ｌ（１）を外側から囲む輪郭線に関する情報は、領域判定装置１００に記憶される。一方、交差点の数が偶数である輪郭線は対象輪郭線Ｌ（１）を外側から囲まない輪郭線であると判定される。図６では、走査線ＳＬ２１と輪郭線Ｌ（３）、Ｌ（４）との交差点の数がそれぞれ偶数である。ここでは、輪郭線Ｌ（３）、Ｌ（４）は、対象輪郭線Ｌ（１）よりも外側に配置されているが、対象輪郭線Ｌ（１）を外側から囲んではいない。よって、輪郭線Ｌ（３）、Ｌ（４）は対象輪郭線Ｌ（１）を外側から囲まない輪郭線であると判定される。
【００４８】
次に、ステップＳ１０５では、対象輪郭線Ｌ（１）を外側から囲む輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）の中で、対象輪郭線Ｌ（１）に対する直近外囲輪郭線Ｌｍｉｎを求める。ここでは、まず、対象輪郭線Ｌ（１）と輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との間の最小距離をそれぞれ求める。詳しくは、対象輪郭線Ｌ（１）上における走査線ＳＬ２１の一端Ｐ２１と輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との間の最小距離をそれぞれ求める。そして、一端Ｐ２１と輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との間のそれぞれの最小距離のうち、最も値が小さい最小距離の輪郭線を直近外囲輪郭線Ｌｍｉｎとする。図６のスライスモデルＳＭ２１では、対象輪郭線Ｌ（１）と、対象輪郭線Ｌ（１）を外側から囲む輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との間のそれぞれの最小距離のうち、最も値が小さい最小距離の輪郭線は、輪郭線Ｌ（２）である。よって、この場合、輪郭線Ｌ（２）が対象輪郭線Ｌ（１）に対する直近外囲輪郭線Ｌｍｉｎとなる。
【００４９】
次に、ステップＳ１０６では、直近外囲輪郭線Ｌｍｉｎが島輪郭線であるか否かを判定する。ここでは、直近外囲輪郭線Ｌｍｉｎの周回方向によって、直近外囲輪郭線Ｌｍｉｎが島輪郭線か穴輪郭線かを判定する。直近外囲輪郭線Ｌｍｉｎの周回方向が時計回りであり、直近外囲輪郭線Ｌｍｉｎが島輪郭線であると判定された場合、次にステップＳ１０７に進む。ここでは、直近外囲輪郭線Ｌｍｉｎは、輪郭線Ｌ（２）である。輪郭線Ｌ（２）は島輪郭線である。そのため、この場合、次にステップＳ１０７に進む。一方、直近外囲輪郭線Ｌｍｉｎの周回方向が反時計回りであり、直近外囲輪郭線Ｌｍｉｎが穴輪郭線であると判定された場合、次にステップＳ１０８に進む。例えば、対象輪郭線が輪郭線Ｌ（３）の場合、直近外囲輪郭線Ｌｍｉｎは、輪郭線Ｌ（５）となる。輪郭線Ｌ（５）は穴輪郭線である。そのため、対象輪郭線が輪郭線Ｌ（３）である場合、次にステップＳ１０８に進む。
【００５０】
直近外囲輪郭線Ｌｍｉｎが島輪郭線であると判定された場合、次にステップＳ１０７では、対象輪郭線Ｌ（１）をスライスモデルＳＭ２１から削除する。ここでは、直近外囲輪郭線Ｌｍｉｎ（輪郭線Ｌ（２））は島輪郭線であるため、直近外囲輪郭線Ｌｍｉｎが対象輪郭線Ｌ（１）を最も隣接した位置で外側から囲む輪郭線であるといえる。そのため、対象輪郭線Ｌ（１）が設けられていることによって、領域判定装置１００が造形領域を誤判定するおそれがある。よって、図６のスライスモデルＳＭ２１において、対象輪郭線Ｌ（１）は不必要な輪郭線である。そのため、ステップＳ１０７では、領域判定装置１００は、対象輪郭線Ｌ（１）をスライスモデルＳＭ２１から削除する。
【００５１】
直近外囲輪郭線Ｌｍｉｎが穴輪郭線である、すなわち、島輪郭線ではないと判定された場合、次にステップＳ１０８では、対象輪郭線Ｌ（１）をスライスモデルＳＭ２１から削除せずに、ステップＳ１０８の処理を終了する。
【００５２】
ステップＳ１０７またはステップＳ１０８の処理が終了した後、対象輪郭線を変更し、輪郭線の数の分、ステップＳ１０３〜Ｓ１０８の処理を繰り返し行う。
【００５３】
なお、図６のスライスモデルＳＭ２１では、輪郭線Ｌ（１）に対する直近外囲輪郭線が島輪郭線Ｌ（２）であるため、輪郭線Ｌ（１）はスライスモデルＳＭ２１から削除される。同様に、輪郭線Ｌ（６）に対する直近外囲輪郭線が島輪郭線Ｌ（７）であるため、輪郭線Ｌ（６）もスライスモデルＳＭ２１から削除される。不必要な輪郭線を削除した後のスライスモデルＳＭ２１’は、図７に示すとおりである。なお、図７では、造形領域は斜線で示された領域である。不必要な輪郭線を削除した後のスライスモデルＳＭ２１’は、領域判定装置１００に記憶されている。
【００５４】
輪郭線の数の分、ステップＳ１０３〜Ｓ１０８の処理を繰り返し行い、不必要な輪郭線を削除した後、ステップＳ１０９では、領域判定装置１００は、従来技術と同様の方法で、スライスモデルＳＭ２１’のどの領域が造形領域であり、どの領域が非造形領域であるかを判定するとよい。例えば、図７に示すように、輪郭線Ｌ（２）〜Ｌ（５）、Ｌ（７）と交差するように領域判定用の走査線ＳＬ２２を設定する。そして、走査線ＳＬ２２を図７の左から右への方向に走査することで、内部レベルｎの値を推移させる。ここでは、内部レベルｎの値は図７に示したように推移している。そして、内部レベルｎの値が「０」以外の場合、その内部レベルｎに対応した領域を造形領域と判定する。一方、内部レベルｎの値が「０」の場合、その内部レベルｎに対応した領域を非造形領域と判定する。このようにして、図６のスライスモデルＳＭ２１を図７のスライスモデルＳＭ２１’に変更した後、スライスモデルＳＭ２１’の領域を造形領域と非造形領域とに適切に分けることができる。
【００５５】
なお、ステップＳ１０２〜ステップＳ１０９の処理は、他のスライスモデルに対しても行われる。このようにして、３次元造形物の断面形状に沿った複数のスライスモデルにおける領域を造形領域と非造形領域とに分ける。
【００５６】
なお、領域判定装置１００によって各スライスモデルの領域を造形領域と非造形領域とに分けた後、各スライスモデルに沿って３次元造形物を造形する。例えば、図７のスライスモデルＳＭ２１’を使用して、スライスモデルＳＭ２１’に対応した断面形状を造形する。具体的には、造形領域Ｄ２１〜Ｄ２４に対応する領域に位置する光硬化性樹脂２３にプロジェクタ３１から発せられた光を照射させることで、造形領域Ｄ２２〜Ｄ２４に対応する領域に位置する光硬化性樹脂２３を硬化させる。一方、非造形領域Ｄ２５に対応する領域に位置する光硬化性樹脂２３には、プロジェクタ３１から発せられた光を照射させない。このことによって、非造形領域Ｄ２５に対応する位置には、造形させないようにする。
【００５７】
なお、本実施形態では、図３に示すように、領域判定装置１００は、記憶部５２と、周回方向設定部５４と、対象輪郭線設定部５６と、第１輪郭線判定部５８と、直近外囲輪郭線判定部６０と、第２輪郭線判定部６２と、削除部６４と、領域判定部６６とを備えている。
【００５８】
記憶部５２は、３次元造形システム１０が造形しようとする３次元造形物の造形物モデル、および、造形物モデルを所定の間隔にスライスしたスライスモデルを記憶している。また、記憶部５２には、図５のステップＳ１０４において、対象輪郭線を外側から囲む輪郭線に関する情報が記憶されている。記憶部５２には、不必要な輪郭線が削除された後のスライスモデルＳＭ２１’が記憶されている。
【００５９】
周回方向設定部５４は、記憶部５２によって記憶されたスライスモデルＳＭ２１の島輪郭線Ｌ（１）〜Ｌ（４）、Ｌ（６）およびＬ（７）と、穴輪郭線Ｌ（５）とにおいて、互いに異なる周回方向を設定する。ここでは、周回方向設定部５４は、島輪郭線Ｌ（１）〜Ｌ（４）、Ｌ（６）およびＬ（７）の周回方向を時計回りに設定し、穴輪郭線Ｌ（５）の周回方向を反時計回りに設定する。本実施形態では、時計回りが本発明の「一の方向」に対応する。反時計回りが本発明の「一の方向とは逆の他の方向」に対応する。なお、周回方向設定部５４は、図５のステップＳ１０２の処理を行う。
【００６０】
対象輪郭線設定部５６は、記憶部５２に記憶されたスライスモデルＳＭ２１の輪郭線Ｌ（１）〜Ｌ（７）から、所定の輪郭線を抽出し、抽出した輪郭線を対象輪郭線に設定する。上述した例では、ステップＳ１０３のうち、輪郭線Ｌ（１）を対象輪郭線として設定する処理を行う。ここでは、輪郭線Ｌ（１）が上記所定の輪郭線に対応する。
【００６１】
第１輪郭線判定部５８は、図５のステップＳ１０４のうち、対象輪郭線設定部５６によって設定された対象輪郭線Ｌ（１）が島輪郭線であるか否かを判定する処理を行う。ここでは、第１輪郭線判定部５８は、対象輪郭線Ｌ（１）の周回方向が時計回りの場合、対象輪郭線Ｌ（１）は島輪郭線であると判定する。例えば、対象輪郭線が輪郭線Ｌ（５）の場合、輪郭線Ｌ（５）の周回方向が反時計回りであるため、第１輪郭線判定部５８は、対象輪郭線である輪郭線Ｌ（５）は穴輪郭線であると判定する。
【００６２】
直近外囲輪郭線判定部６０は、第１輪郭線判定部５８によって対象輪郭線Ｌ（１）が島輪郭線であると判定された場合、対象輪郭線Ｌ（１）に対する直近外囲輪郭線Ｌｍｉｎが設定されているか否かを判定する。具体的には、直近外囲輪郭線判定部６０は、走査線設定部６０ａと、カウント部６０ｂと、第１外囲判定部６０ｃと、距離算出部６０ｄと、第２外囲判定部６０ｅとを備えている。直近外囲輪郭線判定部６０は、走査線設定部６０ａと、カウント部６０ｂと、第１外囲判定部６０ｃと、距離算出部６０ｄと、第２外囲判定部６０ｅとによって、対象輪郭線Ｌ（１）に対する直近外囲輪郭線Ｌｍｉｎが設定されているか否かを判定する。なお、図６のスライスモデルＳＭ２１において、輪郭線Ｌ（７）は、他の輪郭線によって外側から囲まれていない。そのため、対象輪郭線が輪郭線Ｌ（７）の場合、直近外囲輪郭線判定部６０は、対象輪郭線Ｌ（７）に対する直近外囲輪郭線は設定されていないと判定する。
【００６３】
走査線設定部６０ａは、図５のステップＳ１０４のうち走査線ＳＬ２１を設定する処理を行う。走査線設定部６０ａは、対象輪郭線Ｌ（１）上の所定の点から所定の方向に向かうように走査線ＳＬ２１を設定する。ここで、上記所定の点とは、例えば、対象輪郭線Ｌ（１）の最左点Ｐ２１である。上記所定の方向とは、例えば、図６において、最左点Ｐ２１から左方に向かう方向である。
【００６４】
カウント部６０ｂは、図５のステップＳ１０４のうち、走査線設定部６０ａによって設定された走査線ＳＬ２１と、スライスモデルＳＭ２１の輪郭線のうち対象輪郭線Ｌ（１）以外の輪郭線Ｌ（２）〜Ｌ（７）とが交差する交差点を、輪郭線Ｌ（２）〜Ｌ（７）ごとにカウントする処理を行う。
【００６５】
第１外囲判定部６０ｃは、図５のステップＳ１０４のうち、カウント部６０ｂによってカウントされた交差点の数が奇数の場合、対応する輪郭線（図６では、輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７））は対象輪郭線Ｌ（１）を外側から囲むように配置されていると判定する処理を行う。第１外囲判定部６０ｃは、ステップＳ１０４のうち、カウント部６０ｂによってカウントされた交差点の数が偶数の場合、対応した輪郭線（図６では、輪郭線Ｌ（３）、Ｌ（４））は対象輪郭線Ｌ（１）を外側から囲むように配置されていないと判定する処理を行う。
【００６６】
距離算出部６０ｄは、図５のステップＳ１０５のうち、第１外囲判定部６０ｃによって対象輪郭線Ｌ（１）を外側から囲むように配置されていると判定された輪郭線と、対象輪郭線Ｌ（１）との間の距離を算出する処理を行う。ここで、「距離」とは最小距離のことをいう。例えば、図６において、対象輪郭線が輪郭線Ｌ（１）の場合、対象輪郭線Ｌ（１）を外側から囲むように配置されている輪郭線は、輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）である。よって、ここでは、距離算出部６０ｄは、対象輪郭線Ｌ（１）と輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との間の最小距離をそれぞれ求める。
【００６７】
第２外囲判定部６０ｅは、距離算出部６０ｄで算出した対象輪郭線Ｌ（１）と輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）との間のそれぞれの距離のうち、最も小さい値の距離に対応した輪郭線を直近外囲輪郭線Ｌｍｉｎと判定する。ここでは、対象輪郭線Ｌ（１）と輪郭線Ｌ（２）との間の距離が最も小さい値である。そのため、第２外囲判定部６０ｅは、輪郭線Ｌ（２）を直近外囲輪郭線Ｌｍｉｎに設定する。
【００６８】
第２輪郭線判定部６２は、直近外囲輪郭線判定部６０によって、直近外囲輪郭線Ｌｍｉｎが設定されていると判定された場合、直近外囲輪郭線Ｌｍｉｎが島輪郭線であるか否かを判定する。ここでは、第２輪郭線判定部６２は、直近外囲輪郭線判定部６０の第２外囲判定部６０ｅによって判定された直近外囲輪郭線Ｌｍｉｎが島輪郭線であるか否かを判定する。第２輪郭線判定部６２は、直近外囲輪郭線Ｌｍｉｎの周回方向が時計回りである場合、直近外囲輪郭線Ｌｍｉｎは島輪郭線であると判定する。一方、第２輪郭線判定部６２は、直近外囲輪郭線Ｌｍｉｎの周回方向が反時計回りである場合、直近外囲輪郭線Ｌｍｉｎは穴輪郭線であると判定する。第２輪郭線判定部６２は、図５のステップＳ１０６の処理を行う。
【００６９】
削除部６４は、第２輪郭線判定部６２によって、直近外囲輪郭線Ｌｍｉｎが島輪郭線であると判定された場合、対象輪郭線Ｌ（１）をスライスモデルＳＭ２１から削除する。図６のスライスモデルＳＭ２１では、輪郭線Ｌ（１）および輪郭線Ｌ（６）がスライスモデルＳＭ２１から削除される。そして、削除部６４は、対象となる輪郭線Ｌ（１）および輪郭線Ｌ（６）を削除したスライスモデルＳＭ２１’（図７参照）を記憶部５２に記憶する。削除部６４は、図５のステップＳ１０７の処理を行う。
【００７０】
領域判定部６６は、記憶部５２に記憶されたスライスモデルＳＭ２１’、すなわち、削除部６４によって輪郭線Ｌ（１）および輪郭線Ｌ（６）が削除されたスライスモデルＳＭ２１’の領域を造形領域と非造形領域とに分ける。領域判定部６６がスライスモデルＳＭ２１’の領域を判定する方法は特に限定されず、例えば、図５のステップＳ１０９のような従来の方法であってもよい。
【００７１】
以上、従来では、例えば、図１０のような島輪郭線Ｌ１１１と穴輪郭線Ｌ１１３との間に他の島輪郭線Ｌ１１２が設けられているスライスモデルＳＭ１１０の場合、領域Ｄ１１３は非造形領域であるにも関わらず、領域Ｄ１１３を造形領域と判定するおそれがある。これは、島輪郭線Ｌ１１２が最も隣接した位置で島輪郭線Ｌ１１１によって外側から囲まれているためだと考えられる。このことは、図８（ｂ）の位置ＰＴ１１０のように３次元造形物Ａ１００を構成する複数の形状のものの境目の位置で３次元造形物Ａ１００をスライスしたスライスモデルＳＭ１１０の場合に起こり得ると考えられる。島輪郭線Ｌ１１２は、造形領域を判定する上で不必要な輪郭線である。そこで、図６に示すように、領域判定装置１００では、直近外囲輪郭線判定部６０によって、島輪郭線である対象輪郭線Ｌ（１）に対する直近外囲輪郭線Ｌｍｉｎが設定されているか否かを判定する。第２輪郭線判定部６２は、直近外囲輪郭線判定部６０によって直近外囲輪郭線Ｌｍｉｎが設定されていると判定された場合、直近外囲輪郭線Ｌｍｉｎが島輪郭線であるか否かを判定する。そして、削除部６４は、直近外囲輪郭線Ｌｍｉｎが島輪郭線である場合、対象輪郭線Ｌ（１）をスライスモデルＳＭ２１から削除している。よって、図６の島輪郭線Ｌ（１）のような造形領域を判定する上で不必要な島輪郭線をスライスモデルＳＭ２１から削除することができる。したがって、例えば、図６のスライスモデルＳＭ２１のように、島輪郭線Ｌ（１）が最も隣接した位置で島輪郭線Ｌ（２）によって外側から囲まれている場合であっても、スライスモデルＳＭ２１の領域を造形領域と非造形領域とに確実に分けることができる。
【００７２】
本実施形態では、スライスモデルＳＭ２１上の所定の位置Ｐ２１から所定の方向（例えば、図６の左方へ向かう方向）に向かうように設定された走査線ＳＬ２１と、対象輪郭線Ｌ（１）以外の一の輪郭線とが交差する交差点の数が奇数の場合、その一の輪郭線は、対象輪郭線Ｌ（１）を外側から囲む輪郭線である。図６のスライスモデルＳＭ２１では、対象輪郭線Ｌ（１）を外側から囲む輪郭線は、輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）である。ここでは、対象輪郭線Ｌ（１）を外側から囲む輪郭線Ｌ（２）、Ｌ（５）〜Ｌ（７）のうち、対象輪郭線Ｌ（１）に対して最も近くに位置する輪郭線が対象輪郭線Ｌ（１）に対する直近外囲輪郭線Ｌｍｉｎであると判定することができる。図６のスライスモデルＳＭ２１では、直近外囲輪郭線Ｌｍｉｎは、輪郭線Ｌ（２）である。よって、直近外囲輪郭線Ｌｍｉｎ（輪郭線Ｌ（２））が島輪郭線である場合、対象輪郭線Ｌ（１）をスライスモデルＳＭ２１から削除することができる。
【００７３】
本実施形態では、周回方向設定部５４は、島輪郭線の周回方向を時計回りに設定する。また、周回方向設定部５４は、穴輪郭線の周回方向を反時計回りに設定する。よって、第１輪郭線判定部５８は、対象輪郭線Ｌ（１）の周回方向が時計回りか反時計回りかを判定することで、対象輪郭線Ｌ（１）が島輪郭線であるか否かを容易に判定することができる。また、第２輪郭線判定部６２は、直近外囲輪郭線Ｌｍｉｎの周回方向が時計回りか反時計回りかを判定することで、直近外囲輪郭線Ｌｍｉｎが島輪郭線であるか否かを容易に判定することができる。
【符号の説明】
【００７４】
１０  ３次元造形システム
１０Ａ  ３次元造形装置
１３  ホルダ
１４  光学装置
５２  記憶部
５４  周回方向設定部
５６  対象輪郭線設定部
５８  第１輪郭線判定部
６０  直近外囲輪郭線判定部
６０ａ  走査線設定部
６０ｂ  カウント部
６０ｃ  第１外囲判定部
６０ｄ  距離算出部
６０ｅ  第２外囲判定部
６２  第２輪郭線判定部
６４  削除部
６６  領域判定部
１００  領域判定装置（スライスモデルの領域判定装置）
【図１】
0006469498.tif 000002
【図２】
0006469498.tif 000003
【図３】
0006469498.tif 000004
【図４】
0006469498.tif 000005
【図５】
0006469498.tif 000006
【図６】
0006469498.tif 000007
【図７】
0006469498.tif 000008
【図８】
0006469498.tif 000009
【図９】
0006469498.tif 000010
【図１０】
0006469498.tif 000011