三次元物体モデルの3Dプリントが可能な方法及びシステム
3Dプリンタでプリント可能な建築構造の表現を生成する方法において、建築構造の、多面体を含む建築モデルを提供するステップと、前記多面体のうちの少なくとも1つと、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップと、結合された出力多面体を使用して、3Dプリンタでプリント可能な建築構造の表現を生成するステップと、を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
同時係属中の出願の参照
優先権は、2009年10月8日に出願された「Method and System for enabling three−dimensional object models」という名称の米国特許出願第12/575,919号明細書の優先権を主張するものである。
【0002】
本発明は、一般的には3Dプリントに関し、より詳細には3Dモデルの処理に関する。
【背景技術】
【0003】
以下の用語は、従来技術による文献に見られる任意の定義に従って、又は本明細書に従って、すなわち、以下のように解釈することができる。
凸包:conv(S)として示される、三次元空間S⊆R3における幾何学的物体の集合の凸包は、Sを含む最小の(包含的な)凸集合である。
凸多面体:凸多面体は、有限個の閉半空間H={h∈R3|A・h≦B}の交じわりとして与えられる凸集合Q⊆R3であり、式中、A・h≦Bは一次式系である。nが定義半空間の個数であると仮定する場合、Aは{3×n}行列であり、Bは長さnのベクトルであり、hは、凸多面体内に含まれる点を表す変数である。
多面体:有界の凸多面体P⊂R3が多面体である。
超平面:三次元空間において、超平面は通常の平面であり、空間を2つの半空間に分ける。
支持超平面:超平面は、Sが全体的に、超平面により決まる2つの閉半空間のうちの一方内に含まれ、Sが超平面上に少なくとも1つの点を有する場合、ユークリッド空間R3内の集合Sを支持する。閉半空間は、超平面を含む半空間である。
幅:width(S)として示される集合S⊆R3の幅は、conv(S)を支持する平行超平面間の最小距離である。
方向幅:正規化ベクトルvを考えると、widthv(S)として示される方向幅は、conv(S)を支持し、vに直交する平行超平面間の距離である。
ポリゴンメッシュ:ポリゴンメッシュは、非構造格子とも呼ばれ、例えば、3D(三次元)コンピュータグラフィックス及びソリッドモデリングにおいて多面体物体の形状を定義する頂点、辺、及び面の集まりである。面は通常、レンダリングを簡易化するために、三角形、四辺形、又は他の凸ポリゴンからなるが、より一般的な凹ポリゴン、穴を有するポリゴン等で構成されてもよい。一般に、入力は、幾何学的物体の付随関係を取り出せるように、幾何学的情報及び十分な位相幾何学的情報を含むべきである。
STL:STLは、米国に所在の企業「3D Systems(登録商標)」により制作されるステレオリソグラフィCAD(コンピュータ支援設計)ソフトウェアに固有のファイル形式である。このファイル形式は、他の多くのソフトウェアパッケージによりサポートされ、ラピットプロトタイピング及びコンピュータ支援製造に広く使用されている。STLファイルは、色、テクスチャ、又は他の一般的なCADモデル属性の表現のない三次元物体の表面のジオメトリを記述する。STL形式は、ASCII(情報交換用米国標準コード)及びバイナリ表現の両方を指定する。一般に、通常、バイナリファイルがよりコンパクトであるため、バイナリファイルがより一般である。一般に、各STLファイルは、三次元デカルト座標系を使用して三角形の単位法線及び頂点(右手の法則による順)により未処理の非構造三角形からなる表面も記述する。VRML等の他のファイル形式が、テクスチャ及び色をサポートする。
3D(三次元)プリント:は、従来のラピットプロトタイピング技術に関連する独自の形態のプリントである。3D物体は、材料の連続した断面を層化し、結び付けることにより作成される。3Dプリンタは通常、他の積層造形技術よりも高速であり、手頃であり、且つ使用が容易である。プリンタの分解能は層厚で与えられ、XY分解能はDPI(ドット数/インチ)で与えられる。通常、層厚は約100μm(0.1[mm](ミリメートル))であり、XY分解能はレーザプリンタの分解能と同等である。粒子(3Dドット)は直径約50μm〜100μm(0.05mm〜0.1mm)である。
ラピット:「ラピット」という用語は、現方法を使用したモデルの構築が、使用される方法並びにモデルのサイズ及び複雑性に応じて、例えば、数時間から数日かかり得るため、相対的である。ラピットプロトタイピング用の積層システムは通常、モデルを数時間で生成することができるが、使用される機械のタイプ並びに同時に生成されるモデルのサイズ及び数に応じて大きく変化し得る。
プリント可能モデル:モデルは、内部で対毎に交差しないボリュームを結合する閉2D(二次元)多様体の集合を含むと共に、あらゆる凸片のZ方向(垂直)幅が所与の閾値よりも大きく、あらゆる凸片のXY方向(水平)幅が所与の閾値を超える(X、Y、及びZは軸である)ような凸分解も存在する場合、プリント可能である。実際には、3Dプリント可能モデルは、3Dプリンタでプリント可能なモデルである。したがって、モデルは、上記の第1の定義、例えば、交差するボリュームに従わない場合であっても3Dプリント可能であり得る。
【0004】
3Dプリントは急速に成長しつつある市場であり、2011年までに3Dプリンタが300,000台になると推定される。3D建築モデルの現在の作成は通常、手動で実行される。これは遅く、高価であり、経験を要する(通常、専門的なサービス提供者による)労働集約的なプロセスである。
【0005】
例えば、rapidtoday.comにおいてオンラインで入手可能な「Despite Housing Woes,Architectural 3D Printing Thrives」という名称のRapidTodayの記事は、「RapidTodayが話したサービス提供者のうち、略全員が、図面ファイルを3Dプリント可能にするために、広範囲にわたるファイルの修復が必要であることが多かったと述べた。QuickARCのMackieは総コストの20%、すなわち、構築される典型的なUS$3,000モデルのUS$600と見積もられ・・・。修復が容易でないのは、容易に見えない場合があるが、ラピットプロトタイピングを短絡させる建築CADファイルでのギャップ及び穴である。これらの問題は現在、DeskArtesからのMagics、VisCamRP、MeshWorks、3Data Expert・・・のようなメッシュ修復プログラムを使用して、ラピットプロトタイピングサービス提供者の専門家が苦心して発見し修復している。この問題に対する高速ソフトウェアによる解決は遠い。」と述べている。
【0006】
この10年間で、3Dプリンタは、コンピュータ支援設計(CAD)モデル及びアニメーションモデル等のデジタルデータから3Dの物理物体を生成する一般的なツールになった。その結果、ラピットプロトタイピングの使用は今では、多くの分野で一般的である。特に、建築家は3Dプリントから大きな恩恵を受け得る。建築家は、数日さらには数ヶ月ではなく数時間以内で正確な3D建築物体を生成することができる。これらのプロトタイプは、進行中に建築プロジェクトを繰り返し再評価するための自然なメカニズム及び早い段階での問題の検出を可能にする。今では、3Dプリントは、速度、低コスト、及び使用のし易さに関して最適化することができ、プロトタイプの正確性及び機械的強度があまり重要ではない場合、工学設計の概念的な段階中の検査に適する。
【0007】
国際的な「Z Corporation(登録商標)」、イスラエルの「Object Geometries(登録商標)」、並びに米国に所在の「3D Systems(登録商標)」企業及び「Stratasys(登録商標)」企業等の多くの周知のファームが、3D物理物体を生成する装置を製造している。これらの様々な装置は、いくつかの異なる競合する技術に基づく。明らかなことに、異なる製造業者により生成される3Dプリンタ及び同じ製造業者により生成される異なるモデルは、異なる特徴を呈し、別様に動作し、通常、異なる制限に制約される。しかし、すべてではないにせよ大半の3Dプリンタは、積層製造技術に基づき、積層製造技術は、図1に概略的に示されるように、製造すべきモデルを比較的薄い水平断面105に変形し、それから、製造が完成するまで連続した層106、107等を作成する。様々な3Dプリンタの違いの1つは、層が構築されて、プリントすべき3Dモデルのパーツを作成する方法である。分解能は通常、層厚で与えられ、XY分解能はドット数/インチ(DPI)で与えられる。通常、層厚は約1/100μm(0.1mm)であり、XY分解能はレーザプリンタの分解能と同等である。粒子(3Dドット)は直径約1/50μm〜1/100μm(0.05mm〜0.1mm)である。
【0008】
従来の3Dプリンタは、有効なプリント可能モデルが供給された場合のみ、正確な3D物理物体を生成することができる。そのようなモデルは、例えば、STL(ステレオリソグラフィ)ファイル形式でポリゴンメッシュとして表現される。ポリゴンメッシュとして表現される有効モデルは、閉2D多様体、すなわち、自己交差等のアーチファクトを略有さない水密物体を表すポリゴンスープ(ポリゴンの任意の集合)又は互いに略交差しない閉2D多様体の集まりを含む。有効なプリント可能モデルは、様々なプリント装置により科される追加要件を満たす(異なるプリント装置は、異なる技術に基づくため、異なる要件を課す)。
【0009】
3D物体の正確で一貫した表現が、モデリング、シミュレーション、視覚化、CAD(コンピュータ支援設計)、CAM(コンピュータ支援製造)、有限要素解析等の従来の用途により求められる。しかし、取得される3Dモデルは通常、手で作成されたにせよ、又は自動ツールで作成されたにせよ、エラー及び非一貫性を含む。例えば、モデルは、誤って方向付けられ、交差、又は重複するポリゴン、亀裂、及びT字形接合部を含み得、加えて、ポリゴンが欠け、位相幾何学的情報が一貫しないことがある。問題は、設計者のエラー又はモデリングツールのソフトウェアエラーによる。これらのエラーは、(i)CAD形式(例えば、IGES(初期グラフィックス交換仕様)、STEP(製品モデルデータ交換規格)、DXF(図面相互交換形式)、CATIA(コンピュータ支援三次元インタラクティブアプリケーション)又はAutoCADからのバイナリファイル)間、B−Spline又はNURBSベース(非均一関係B−Spline)形式間の自動転送、(ii)工学解析システム(例えば、三角形表面メッシュ)への幾何学的変形等のデータ交換問題により悪化する。取得された3Dモデルから多様体モデルを再構築する技法は、効率、ロバスト性、自動化のレベル、事前条件等に従って様々である。自動化のレベルは、必要とされるユーザ入力に関して測定される。事前条件は、(i)入力集合内のポリゴンが一貫した向きであり、(ii)入力パーツが閉2D多様体である等であるがこれらに限定されない要件を含む。従来技術による一手法によれば、シーンに関連する許容性が、いくらかの許容差内でモデル内の亀裂を「充填」するか、又は特徴を結合するために使用される。境界に基づく手法等の他の手法は、入力ポリゴンメッシュがどのように一緒であるかのソリッド構造を推論しようとし、非多様体ジオメトリが存在する場合、不正確に実行する可能性が高い。従来技術によれば、すべての手法は、エラーのサイズがモデルの最小特徴よりも大きい場合、上手く機能しない。劣化した入力が実際用途では一般的であり、数値エラーは不可避であるため、この問題を考慮せずに実施されるアルゴリズムは、不正確な結果をもたらし得、劣化又は略劣化した入力で実行される間、無限ループ又は単にクラッシュし得る(例えば、「Computational Geometry:Teory and Applications」,volume 40,pages 61−78,2008において公表された「Classroom examples of robustness problems in geometric computations」という名称の記事においてLutz Kettner等により提示されるように、又はStefan Schirra,「Robustness and precision issues in geometric computation」,「Handbook of Computational Geometry」(Jorg−Rudiger Sack and Jorge Urrutia,editors),chapter 14,pages 597−632,Elsevier Science Publishers,2000)により提示されるように)。
【0010】
従来技術によれば、建築家はCADソフトウェア(例えば、米国に所在のAutoDesk(登録商標)により開発されたAutoCAD(登録商標)及びRevit(登録商標)、Google SketchUp)を使用して、様々な3Dデジタルモデルを生成する。これらのモデルは、壁、階段、屋根等の建築パーツを含み得る。各パーツを表すデータは、破損し得るか、又は非一貫性を含み得る。データが完全な場合であっても、個々の各パーツは、不十分な厚さであり得るか、又は重力に打ち勝って空中に浮き得るため、3Dプリントに適さないことがある。最後に、一緒に組み合わせられたすべてのパーツが、互いに交差、特異点を含むため、3Dプリントに適さないことがある。
【0011】
CADソフトウェアは、約30年前の発足以来、常に進化してきた。商用3D CAD技術は、SolidWorks(登録商標)、Inventor(登録商標)、PTC(登録商標)、SolidEdge(登録商標)、並びに3D空間での解析性能及び設計性能に改良を提供する多くの他の製品等の工学ソフトウェア設計と共に出現した。ラピットプロトタイピングの最初の技法は、1980年代後半に提供され、3D CADソフトウェア設計により生成される実際の有形モデルをもたらすために、すぐ後に商用3Dプリンタが続いた。今日、これらは多くの分野で普遍であり、広範囲の用途に使用され、比較的少数での生産品質パーツの製造にさえも使用されている。彫刻家によっては、この技術を使用して、美術品展示のために複雑な形状を生成する者もいる。それでもやはり、ソフトウェア入力の品質は比較的満足のいかないものである。3Dプリンタへの入力データがいくつかのエラーを含み得ることは、Materialise(登録商標)、Marcam(登録商標)、及びDeskartes(登録商標)等のCAD後の診断及び修復ソフトウェアの開発に繋がった。
【0012】
3Dプリントの問題は従来技術において認識されており、様々な解決策が提案されてきた。例えば、米国特許第2005/038549号明細書には、ラピットプロトタイピング構築ファイルの適応変更を実行するシステム及び方法が開示されている。この方法は、三次元物体のデジタル記述を記憶したラピットプロトタイピング構築ファイルを読み取るステップを含む。記述は、複数の構築ファイル修正アルゴリズムから構築ファイル修正アルゴリズムを選択する動作も含む。別の例では、米国特許第5,705,117号明細書は、プロトタイプパーツを生成するステレオリソグラフィプロセスを提示し、このプロセスでは、非光重合材料のインサートが、結果として生成されるパーツ内に含められて、機能するプロトタイプパーツを生成する。インサートを生成されるプロトタイプパーツ内に配置することができるように、一連のSTLファイルが、個々の断面でのプロトタイプパーツを形成するために定義される。非光重合インサートは、断面が形成される都度、生成されるパーツの一断面に手動で位置決めされる。
【0013】
加えて、米国特許第7,343,216号明細書は、モデルへの群葉の繰り返しの配置及び取り出しに役立つ建築現場モデルを組み立てる方法を提示する。現場モデルは、上位シェル部分及び下位シェル部分として構築され、モデルの群葉はシェルパーツに取り付けられる。現場モデルの上位シェル部分は、下の基礎部分に取り外し可能に取り付けられるように構成される。したがって、現場モデルからのシェルの取り外しによっても、現場モデルから群葉を一動作で取り外すことができる。さらに、日本国特許第11339070号明細書は、サブファイル内のソリッドサブモデルをサーフェス処理し、メインファイルに取り入れ、メインソリッドモデルと結合することにより、サーフェスモデルを生成する方法を提示する。このために、部分的な切断、メインソリッドモデルの投影追加等の変更動作が実行される。
【発明の概要】
【0014】
上記観察に基づいて、当分野には、ポリゴンメッシュ(例えば、非多様体メッシュ、交差する三角形、T字形接続部を有するメッシュ等)として表現される破損及び非一貫性を有し得るモデルを比較的大きなプリント装置セットに使用される有効なプリント可能モデルに変形することができる方法及びシステムを提供する持続した必要性がある。
【0015】
当分野には、破損又は非一貫性を有し得る3D物体デジタルモデルを、ラピットプロトタイピング(RP)とも呼ばれるプロセスである固体自由造形(SFF)を使用することにより自動的に構築することができる物理物体モデルに変形することができる方法及びシステムを提供する持続した必要性もある。
【0016】
ラピットプロトタイピングソフトウェアのベンダーとしては、Materialise、Deskartes、Marcam Engineering、Kxinc、及びCADspanが挙げられる。
【0017】
加えて、当分野には、建物及び景観等の建築分野に見られるモデル並びに科学的視覚化及び物理的シミュレーション等の他の多くの分野に見られるモデルの処理が可能な方法及びシステムを提供することが必要である。さらに、当分野には、破損したモデルを修復し、3Dプリント、組み立て計画等の様々なプロセスの非一貫性をなくすように構成された方法及びシステムを提供する必要がある。さらに、当分野には、薄いパーツを、その機能を保ちながら厚化する動作が可能であり、存在し得る交差及び特異点をなくし、すべてのパーツを、1つ又は複数の閉2D多様体を含む、アーチファクトが略ない単一のプリント可能モデルに統合する方法及びシステムを提供する必要がある。
【0018】
本明細書において言及されるすべての公開文献及び特許文献並びにそれらの文献内で直接又は間接的に引用される公開文献及び特許文献の開示は、参照により本明細書に援用される。
【0019】
本発明の特定の実施形態は、3D(三次元)デジタル物体モデルを、主に建築用途であるが、それに限定されない3Dプリンタに有効な3Dプリント可能形態に変換する方法及びシステムを提供しようとする。
【0020】
本発明の特定の実施形態は、(建築家、技師、及び建設)ユーザが3Dモデルプリント技術を完全に利用できるようにする技術を提供しようとする。
【0021】
現在のソフトウェア(Autodesk Revit、SketchUp等)を3Dプリンタと共に使用して3D設計モデルをプリントしようとする場合、設計から正確な建築3Dモデルを生成するには、手動での修正が必要である。これは、スケール問題、異なる設計ソフトウェア及び3Dプリンタの異なるタイプ間の互換性の結果である。
【0022】
本発明の特定の実施形態は、エラーのない正確で精密にスケーリングされたサイズ変更可能な3Dモデルを、使用される3D設計ソフトウェア及び3Dプリンタに関係なく、キーに触れるだけで自動的に提供しようとする。
【0023】
本発明の特定の実施形態は、既存の3D設計を、3Dプリンタによる使用に対応するSTL形式又は他の適した形式に変換するように動作可能な方法において、モデルプロトタイプ形成で節減される時間が、モデル毎に数週間から週時間に大幅に低減する、方法を提供しようとする。
【0024】
本発明の特定の実施形態は、価格制約及びプリンタ制限により設計毎に1つのモデルが作成されることに代えて、望みに応じて同じモデルの多くのコピーを作成する能力及び/又は異なるスケールでモデルをプリントする能力を提供しようとする。
【0025】
本発明の特定の実施形態は、従来の3Dモデリングは高い計算能力を必要とする動作であるため、例えば、クラウド計算を使用して、建築家、3Dプリントサービス提供者、及び3Dプリンタ製造業者を結び付け、それにより、計算能力を可能にするようとする。
【0026】
入力ファイル形式は、例えば、Autodesk Revit、Google Sketchup、AutoCAD DXF/DWG、VRML、STLのうちの任意又はすべてを含み得る。
【0027】
編集は、例えば、分割、セクション/ステージ、簡略化(ポリゴン低減)、分離(シェル、材料)のうちの任意又はすべてを含み得る。
【0028】
出力は3Dプリント可能モデル(例えば、STL、複数材料)を含み得る。
【0029】
プロセスは、修復、選択(インタラクティブ)、厚化、及び結合(プリント可能なSTL)を含み得る。
【0030】
本発明の特定の実施形態は、建築家に利点を提供しようとし、例えば、現在の3Dモデルプリントプロセスとは対照的に、好ましくは、計画された設計を顧客に示す能力を提供し、様々な設計代替を調べることができ、顧客との良好な視覚的やりとりを提供し、計画を保存し、顧客からの即時フィードバックが可能であり、建築家がプロセスを完全に制御できるようにし、同じモデルのコピー及び/又は同じモデルの異なるサイズのプリントを作成する1つ又は複数のシステムを提供しようとする。
【0031】
建築家は、モデルを3Dソフトウェアからウェブサイトにアップロードすることができ、又はプロセスをクラウド計算で実行することができる。
【0032】
本明細書に示され説明される一方法によれば、以下の動作のうちのいくつか又はすべてが実行される:
a.例えば、ストレートスケルトン、中心軸、又は代替の方法を使用して多面体の3Dスケルトンを見つけるステップ、
b.
スケルトンキューブのミンコフスキー加算を計算するステップであって、この和は、本明細書では「膨張スケルトン」とも呼ばれる、計算するステップ、及び
c.元の多面体と膨張スケルトンとの和を計算するステップ。
【0033】
特定の実施形態の特定の利点は、既存のエンティティの厚さがすでに所定の最小厚よりも大きい場合、本明細書に示され説明される方法により厚化されないことである。
【0034】
したがって、特定の実施形態によれば、1つ又は複数の3D物体の非一貫性3D(三次元)モデルを有効なプリント可能3Dモデルに変形する方法において、
a)入力モデルファイル及び/又はモデラーデータを受信して、1つ又は複数のパーツを有する入力3Dモデルを生成するステップと、
b)入力3Dモデルを解析し、1つ又は複数の非一貫性をなくすステップと、
c)3Dモデルの1つ又は複数のパーツを、その機能を保ちながら厚化させるステップと、
d)1つ又は複数のパーツの内積の和を統合し、それにより、自己交差及び/又は2つ以上のパーツの交差をなくし、有効なプリント可能3Dモデルを生成するステップと、
を含む、方法が提供される。
【0035】
本発明の実施形態によれば、方法は、入力モデルファイル及び/又はモデラーデータをインポートするステップをさらに含む。
【0036】
本発明のさらなる実施形態によれば、インポートするステップは、以下のうちの1つ又は複数をさらに含む:
a)入力モデルファイルをパーズするステップ、及び
b)モデリングアプリケーションからモデラーデータを得るステップ。
【0037】
本発明のさらに別の実施形態によれば、方法は、1つ又は複数の事前定義される基準に従って3Dモデルをスケーリング又はクリッピングするステップをさらに含む。本発明のさらに別の実施形態によれば、スケーリングするステップは、自動的に実行されて、3Dプリンタにより定義される境界ボックスを修復する。
【0038】
本発明のさらに別の実施形態によれば、スケーリングするステップは、ユーザにより提供される事前定義されるスケーリング係数に基づいて手動で実行される。
【0039】
本発明のさらに別の実施形態によれば、方法は、閲覧者がGUI(グラフィカルユーザインタフェース)を使用して方法の各ステップを制御するステップをさらに含む。
【0040】
本発明のさらに別の実施形態によれば、方法は、2つ以上の分離したモデルパーツを接続し、単一の接続された3Dモデルを形成する物理的解析に基づいて、3Dモデルを変更するステップをさらに含む。
【0041】
本発明のさらなる実施形態によれば、方法は、3Dモデルを1つ又は複数の分離したサブモデルに分割するステップをさらに含む。
【0042】
本発明のさらなる実施形態によれば、方法は、略独立してプリントすべき少なくとも1つの分離したサブモデルを選択するステップをさらに含む。
【0043】
本発明のさらなる実施形態によれば、方法は、3Dモデルから1つ又は複数の特異点をなくすステップをさらに含む。
【0044】
本発明の実施形態によれば、厚化するステップは、以下のうちの1つ又は複数をさらに含む:
a)垂直に厚化するステップ、及び
b)水平に厚化するステップ。
【0045】
本発明の別の実施形態によれば、厚化するステップは、
a)3Dモデルが凸サブパーツを有するか否かを判断し、有さない場合、3Dモデルのパーツを凸サブパーツに分解するステップと、
b)各サブパーツの幅を計算するステップと、
c)垂直幅が第1の事前定義される値よりも小さい対応するサブパーツを垂直方向に沿って厚化させ、水平幅が第2の事前定義される値よりも小さい対応するサブパーツを水平方向に沿って厚化させるステップと、
をさらに含む。本発明のさらに別の実施形態によれば、3Dプリントすべき3Dモデルをエクスポートするステップをさらに含む。
【0046】
本発明のさらに別の実施形態によれば、エクスポートするステップは、以下のうちの1つ又は複数をさらに含む:
a)サポートされるファイル形式でモデルを表す出力モデルファイルに3Dモデルを記憶するステップ、及び
b)3Dモデルを3Dプリンタに送信するステップ。
【0047】
本発明のさらに別の実施形態によれば、出力モデルファイルは、3Dプリントに使用すべきSTL(ステレオリソグラフィ)ファイルである。
【0048】
システムは、1つ又は複数の3D物体の非一貫性3D(三次元)モデルを有効なプリント可能3Dモデルに変形するように構成され、
a)データ記憶装置から提供される入力モデルファイル及び/又はモデラーデータと、
b)サブシステムであって、
b.1 データ記憶装置から提供される入力モデルファイル及び/又はモデラーデータを受信して、1つ又は複数のパーツを有する入力3Dモデルを生成し、
b.2 入力3Dモデルを解析し、1つ又は複数の非一貫性をなくし、
b.3 3Dモデルの1つ又は複数のパーツを、その機能を保ちながら厚化させ、
b.4 1つ又は複数のパーツの内積の和を統合し、それにより、自己交差及び/又は2つ以上のパーツの交差をなくし、それにより、有効なプリント可能3Dモデルを生成する
ように構成される、サブシステムと、
c)有効なプリント可能3Dモデルをプリントする3Dプリンタと、
を備える。
【0049】
機械により実行可能であり、1つ又は複数の3D物体の非一貫性3D(三次元)モデルを有効なプリント可能3Dモデルに変換する命令のプログラムを明確に具体化する機械可読のプログラム記憶装置であって、方法は、
a)入力モデルファイル及び/又はモデラーデータを受信して、1つ又は複数のパーツを有する入力3Dモデルを生成するステップと、
b)入力3Dモデルを解析し、1つ又は複数の非一貫性をなくすステップと、
c)3Dモデルの1つ又は複数のパーツを、その機能を保ちながら厚化させるステップと、
d)1つ又は複数のパーツの内積の和を統合し、それにより、自己交差及び/又は2つ以上のパーツの交差をなくし、有効なプリント可能3Dモデルを生成するステップと、
を含む、プログラム記憶装置。
【0050】
本発明の特定の実施形態によれば、3Dプリンタでプリント可能な建築構造の表現を生成するコンピュータ化された方法も提供され、この方法は、建築構造の多面体を含む建築モデルを提供するステップと、プロセッサを使用して、多面体のうちの少なくとも1つと、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップと、結合された出力多面体を使用して、3Dプリンタでプリント可能な建築構造の表現を生成するステップと、を含む。
【0051】
さらに、本発明の特定の実施形態によれば、方法は、ミンコフスキー加算するステップの前に、多面体の中からの各非凸多面体を凸多面体に分解するステップを含み、ミンコフスキー加算するステップは、少なくとも1つの凸多面体と、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップを含む。
【0052】
さらに本発明の特定の実施形態によれば、方法は、3Dプリンタで表現をプリントするステップも含む。
【0053】
さらに本発明の特定の実施形態によれば、分解するステップは、多面体の中からの各非凸多面体を三角形以外の凸多面体に分解するステップと、少なくとも1つの個々の非凸多面体への試みに失敗した場合、個々の非凸多面体をポリゴンに分解し、ポリゴンを結合するステップと、を含む。
【0054】
本発明の特定の実施形態によれば、入力ジオメトリを3Dプリント可能モデルに変換するコンピュータ化された3Dプリントシステムも提供され、このシステムは、多面体と単純で小さな凸形状とのミンコフスキー和を計算し、それにより、3Dプリント可能モデルを生成するように動作可能なプロセッサを含むミンコフスキー加算器と、3Dプリント可能モデルを表現する出力を生成するように動作可能な出力生成器と、を備える。
【0055】
さらに本発明の特定の実施形態によれば、少なくとも1つの凸多面体は凸多面体のすべてを含む。
【0056】
さらに本発明の特定の実施形態によれば、上記形状は単純で小さな凸形状を含む。
【0057】
さらに本発明の特定の実施形態によれば、上記形状は立方体を含む。
【0058】
さらに本発明の特定の実施形態によれば、上記立方体は、例えば、1mm×1mm×1mmの立方体を含む。
【0059】
本発明の特定の実施形態によれば、コンピュータ可読プログラムコードが内部に具体化されたコンピュータ使用可能媒体を備えるコンピュータプログラム製品も提供され、コンピュータ可読プログラムコードは、実行されて、3Dプリンタでプリント可能な建築構造の表現を生成する方法を実施するように構成され、方法は、建築構造の、多面体を含む建築モデルを提供するステップと、多面体のうちの少なくとも1つと、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップと、結合された出力多面体を使用して、3Dプリンタでプリント可能な建築構造の表現を生成するステップと、を含む。
【0060】
さらに本発明の特定の実施形態によれば、ポリゴンのうちの少なくともいくつかは三角形である。
【0061】
さらに本発明の特定の実施形態によれば、方法は、ミンコフスキー加算により生成されるミンコスフスキー和のうちの少なくともいくつかを結合し、それにより、少なくとも1つの結合出力多面体を生成するステップも含む。
【0062】
さらに本発明の特定の実施形態によれば、分解の結果である凸多面体の各集合のミンコフスキー和のみが結合される。
【0063】
本発明の特定の実施形態によれば、3Dプリントのために建築モデルを準備するシステムも提供され、このシステムは、少なくとも1つのミンコフスキー和計算を使用して、建築モデルを修復する修復器を備える。
【0064】
さらに本発明の特定の実施形態によれば、修復はモデルの少なくとも1つの小さなギャップを修復することを含む。
【0065】
さらに本発明の特定の実施形態によれば、修復は少なくとも1つの欠落面を修復することを含む。
【0066】
コンピュータ可読プログラムコードが内部に具体化された、通常は有形のコンピュータ使用可能媒体又はコンピュータ可読記憶媒体を備えるコンピュータプログラム製品も提供され、コンピュータ可読プログラムコードは、実行されて、本明細書に示され説明される方法のうちの任意又はすべてを実施するように構成される。本明細書に示され説明される計算ステップのうちの任意又はすべてをコンピュータで実施し得ることが理解される。本明細書における教示による動作は、所望の目的のために特別に構築されたコンピュータ又はコンピュータ可読記憶媒体に記憶されたコンピュータプログラムにより所望の目的のために特別に構成される汎用コンピュータにより実行し得る。
【0067】
本明細書に示され説明される任意の方法及び装置により使用又は生成される情報等の情報の処理、例えば、コンピュータ画面若しくは他のコンピュータ出力装置への表示、記憶、受け入れを行うために、任意の適したプロセッサ、ディスプレイ、及び入力手段を使用することができ、上記プロセッサ、ディスプレイ、及び入力手段は、本発明の実施形態のうちのいくつか又はすべてによれば、コンピュータプログラムを含む。本明細書に示され説明される本発明の任意又はすべての機能は、処理に使用される、汎用又は特別に構築された従来のパーソナルコンピュータプロセッサ、ワークステーション、又は他のプログラム可能な装置、又はコンピュータ、又は電子計算装置と、表示のためのコンピュータディスプレイ画面、及び/又はプリンタ、及び/又はスピーカーと、光ディスク、CDROM、磁気光学ディスク、又は他のディスク等の機械可読メモリと、記憶のためのRAM、ROM、EPROM、EEPROM、磁気カード、光学カード、又は他のカードと、受け入れるためのキーボード又はマウスとにより実行することができる。上記で使用される「プロセス」という用語は、例えば、コンピュータのレジスタ及び/又はメモリ内で発生又は存在し得る物理的、例えば、電子的な現象として表現されるデータの任意の種類の計算、又は処理、又は変形を含むことが意図される。プロセッサという用語は、単一の処理ユニット又は複数の分散した若しくは遠隔のそのようなユニットを含む。
【0068】
上記装置は、任意の従来の有線又は無線デジタル通信手段を介して、例えば、有線又はセルラ電話回線又はインターネット等のコンピュータネットワークを介して通信し得る。
【0069】
本発明の装置は、本発明の特定の実施形態によれば、命令プログラムを含むか、又は記憶する機械可読メモリを含むことができ、命令は、機械により実行されると、本明細書に示され説明される本発明の装置、方法、特徴、及び機能のうちのいくつか又はすべてを実施する。代替又は追加として、本発明の装置は、本発明の特定の実施形態によれば、任意の従来のプログラミング言語で書くことができる上記のようなプログラムと、任意選択的に、本発明の教示により任意選択的に構成又は起動可能な汎用コンピュータ等であるが、それに限定されない、プログラムを実行する機械とを含み得る。本明細書に組み込まれる任意の教示は、どこであろうとも、物理的な物体又は物質を表す信号に対して適宜動作し得る。
【0070】
上記で参照された実施形態及び他の実施形態を次項で詳細に説明する。
【0071】
テキスト又は図面内に現れるいずれの商標も、その所有者の所有物であり、本明細書では、本発明の実施形態をいかに実施し得るかの一例を説明又は例示するためだけに現れる。
【0072】
別途明記しない限り、以下の考察から明らかなように、本明細書の考察全体を通して、「処理」、「計算」、「推定」、「選択」、「ランク付け」、「等級付け」、「算出」、「特定」、「生成」、「再評価」、「分類」、「生成」、「生産」、「ステレオマッチング」、「登録」、「検出」、「関連付け」、「スーパーインポーズ」、「取得」等の用語の利用が、計算システムのレジスタ及び/メモリ内の電子的数量等の物理的数量として表現されるデータを処理し、且つ/又は変形して、計算システムのメモリ、レジスタ、又は他のそのような情報記憶装置、伝送装置、又はディスプレイ装置内の物理的数量として同様に表現される他のデータにするコンピュータ、又は計算システム、又はプロセッサ、又は同様の電子計算装置の動作及び/又はプロセスを指すことが理解される。「コンピュータ」という用語は、非限定的な例として、パーソナルコンピュータ、サーバ、計算システム、通信装置、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)及び他の電子計算装置を含むデータ処理性能を有する任意の種類の電子装置を包含するものとして広く解釈されるべきである。
【0073】
本明細書は、単に明確にするために、特定のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、個々の製品等に固有の用語で説明され得る。この用語は、例として動作の一般原理を明確且つ簡潔に伝えることが意図され、本発明の範囲をいかなる特定のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、又は個々の製品にも限定することを意図しないことが理解されよう。
【0074】
本明細書に別個に列挙される要素は、別個の構成要素である必要はなく、代替として、同じ構造であってもよい。
【0075】
本明細書に説明されるステップのうちのいくつか又はすべては、とりわけコンピュータプロセッサを利用し得る。
【0076】
本発明を理解し、本発明をいかに実施し得るかを見るために、特定の実施形態を添付図面を参照して、単に非限定的な例として説明する。
【図面の簡単な説明】
【0077】
【図1】図1は、プリントすべきモデルを比較的薄い水平断面に変形し、それから、プリントが完了するまで連続する層を作成する従来技術による3Dプリント技術の概略図である。
【図2】図2は、本発明の実施形態による、3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形(変換)するシステムの概略図である。
【図3】図3は、本発明の実施形態による、3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形する方法のフローチャートである。
【図4A】図4Aは、本発明の実施形態による自己交差モデルの概略図である。
【図4B】図4Bは、本発明の実施形態により適切な辺の導入を通してT頂点をなくすことの概略図である。
【図4C】図4Cは、本発明の実施形態により、欠落している四辺形を追加することにより水密モデルを形成することの概略図である。
【図4D】図4Dは、本発明の実施形態により、誤った向きのポリゴンを反転させることにより水密モデルを形成することの概略図である。
【図5A】図5Aは、本発明の実施形態により、修復ステップ中、単一の三角形を、上と下の三角形との距離をゼロにしながら、ゼロ容積の角柱に変換することの概略図である。
【図5B】図5Bは、本発明の実施形態による膨張動作の概略図である。
【図5C】図5Cは、本発明の実施形態による薄いパーツを含む階段に適用される一般的な厚化動作の概略図である。
【図6A】図6Aは、本発明の実施形態による位相幾何学的特異点を含むモデルの概略図である。
【図6B】図6Bは、本発明の実施形態により、ステッチング動作が適用され、それにより、位相幾何学的特異点をなくすモデルの概略図である。
【図7】図7は、本発明の実施形態によるメッシュを有する2つの水密壁を統合することの概略図である。
【図8】図8は、本発明の実施形態による、STLファイル形式を表示し、ユーザが3Dプリントすべきモデル物体を制御し選択できるようにするサンプルGUIの図である。
【図9A】図9A及び図9Bは一緒に解釈されて、本発明の実施形態により動作可能な三次元物体モデルのプリントを可能にする方法の簡略化されたフローチャート図を形成する。
【図9B】図9A及び図9Bは一緒に解釈されて、本発明の実施形態により動作可能な三次元物体モデルのプリントを可能にする方法の簡略化されたフローチャート図を形成する。
【図10】図10は、図9Aのステップ900の実行に適した適応分解方法の簡略化されたフローチャート図である。
【図11】図11A及び図11Bは、図9A、図9B、及び図10の方法を使用した処理前後の壁の平面図である。
【図12】図12は、本発明の実施形態の実施態様例の図である。
【図13】図13は、図12の図に対応する擬似コードである。
【発明を実施するための形態】
【0078】
説明を簡易かつ明確にするために、図に示される要素が必ずしも一定の縮尺で描かれているわけではないことが理解されよう。例えば、明確にするために、いくつかの要素の寸法は、他の要素と比較して誇張され得る。さらに、適切であると考えられる場合、参照番号は図の間で繰り返されて、対応又は類似する要素を示し得る。
【0079】
別途明記しない限り、以下の考察から明らかなように、本明細書の考察全体を通して、「処理」、「計算」、「算出」、「特定」等の用語の利用が、データを処理し、且つ/又は変換して他のデータにするコンピュータの動作及び/又はプロセスを指し、データが、例えば、電子的数量等の物理的数量として表現されることが理解されよう。「コンピュータ」という用語は、非限定的な例として、パーソナルコンピュータ、サーバ、計算システム、通信装置、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、及び他の電子計算装置を含むデータ処理性能を有する任意の種類の電子装置を包含するものとして拡大して解釈されるべきである。本明細書における教示による動作は、所望の目的のために特別に構築されたコンピュータ又はコンピュータ可読記憶媒体に記憶されたコンピュータプログラムにより所望の目的のために特別に構成される汎用コンピュータにより実行し得る。
【0080】
本発明の実施形態によれば、システム200(図2)により生成されるモデルは、有効なプリント可能モデル又は略してプリント可能モデルと呼ばれる。一般に、プリント可能モデルは、様々なプリント装置により課される事前定義される要件セットを満たす。異なるプリント装置は、異なる技術に基づくため、異なる要件セットを課す。本発明によれば、システム200は、比較的大きなプリント装置セットを満たし、建物及び景観等の様々な建築モデル並びに科学的視覚化及び物理的シミュレーション等の他の多くの分野に見られるモデルを処理する。
【0081】
簡潔にするために、以下の本発明の詳細な説明は主に、3Dプリントに使用されるモデルに関連する。しかし、3Dプリントのみに限定されるものとして考えられるべきではなく、本発明は、破損したモデルの修復及び組み立て計画の非一貫性の除去等に関連することもできる。
【0082】
図2は、例えば、ポリゴンメッシュ(例えば、非多様体メッシュ、交差三角形、T字形接合部を有するメッシュ等)として表現される3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形(変換)する、本発明の実施形態によるシステム200の概略図である。本発明の実施形態によれば、従来のソフトウェアモデリングツール(例えば、AutoCad(登録商標)及びRevit(登録商標))のユーザ(例えば、建築家)は、建物、景観等の物体の3Dモデルを作成する。そのような各ツールにより作成される(デジタル)モデルは、3Dの個々の任意のパーツ(例えば、壁、階段、及び屋根)と、3D空間でのそれぞれの対応する位置(すなわち、並進移動及び向き)とを備える。いくつかの従来のファイル形式が、モデルを記憶するためにこれらのモデリングツールにより使用される(例えば、STL(ステレオリソグラフィ)及びPLY(ポリゴン)ファイル形式)。これらのモデリングツールのいくつかでは、第三者の開発者がメインアプリケーションを拡張し、一般に「プラグイン」と呼ばれる他のコンピュータプログラムを通して新しい特徴を提供することができる。すなわち、ホストアプリケーションは、プラグインがそれ自体をホストアプリケーションに登録する方法を含め、プラグインが使用できるサービスと、プラグインとデータを交換するためのプロトコルとを提供する。本発明の実施形態によれば、サブシステム215は、独立したアプリケーション又はプラグインのいずれかであることができ、入力として、3D空間内の物体のモデルを受け入れることができる。システム200は、3D空間内の物体モデルのファイルを、対応するモデラーデータ211(例えば、メモリユニット(図示せず)から提供され、そのような物体モデルを有効なプリント可能3D物体モデルに変形(変換)すると共に受信するサブシステム215と、有効な三次元物体モデルをプリントする3Dプリンタ220とを備える。本発明の実施形態によれば、モデラーデータ211は、ソリッドモデリングデータ及び/又はポリゴンスープ(ポリゴンの任意の集合)を含むことができる。
【0083】
本発明の実施形態によれば、3Dデジタルモデルは、サブシステム215により調べられて(自動的に)、破損又は非一貫性が突き止められる。1つ又は複数の破損又は非一貫性が見つかった場合、サブシステム215はそれらを修復する。次に、プリントするモデルが、プリンタ分解能に十分な厚さではない薄いパーツの厚化等の対応する動作を適用することにより準備される(自動的に)。機能的なパーツ(例えば、階段等)も識別され、次に、専用厚化動作が適用され、それにより、それらの機能性を保持する。個々のすべてのパーツは、プリント準備が整った(例えば、十分に厚く、「空中に浮遊」しない)後、統合され、交差をなくし、場合によっては特異点をなくす。その結果、最終的な一貫したモデルが得られ、これは、3Dプリンタ220によりプリント(造形)することができる。本発明の実施形態によれば、システム200は、STL(ステレオリソグラフィ)、VRML(仮想現実モデリング言語)、及びX3D(3Dコンピュータグラフィックスを表現するためのXMLに基づく(拡張可能マークアップ言語)ファイル形式)ファイル形式のモデルをパーズすることが可能である。システム200は、AutoCad(登録商標)及びRevit(登録商標)等のモデラー(モデリングソフトウェア)により生成されるモデルも、それらの対応するアプリケーションプログラムインタフェース(API)を通して受け入れる。さらに、システム200は、様々な3Dプリンタによりパーズ可能であり、したがって、3Dモデルを表現するプリントの共通形式としての役割を果たすSTLファイル形式等の様々なファイル形式で有効なプリント可能モデルを生成することができる。
【0084】
本発明の実施形態によれば、システム200の入力において受信されるモデルファイル206は、破損し得るか、又は非一貫性を含み得る。個々のパーツの物理的なサイズが、3Dプリントに対して比較的小さい場合もあり、他方、含まれるすべてのパーツを有するモデル全体のサイズが、3Dプリントに対して比較的大きい場合もある。加えて、個々のパーツは、内部で互いに交差し得、又は頂点若しくは辺における境界で互いに交差し得、特異点を生じさせ得る。したがって、一連の動作がサブシステム215により適用され、入力モデル(ファイル)206を、ラピットプロトタイピング及び同様の要件を有する他の用途に使用可能なモデルに変形(変換)する。適用される一連の動作は、9フェーズ等の事前定義された数のフェーズを含むパイプラインとして実施され、フェーズのうちのいくつかは、任意選択的であり得、迂回することができる。
【0085】
本発明の実施形態によれば、システム200は、3D物体の破損又は非一貫性を有し得るデジタルモデルを、ラピットプロトタイピング(RP)とも呼ばれるプロセスである固体自由造形(SFF)を使用して自動的に構築できる物理物体のモデルに変形できるようにする。
【0086】
プリント可能モデルは、例えば、3Dプリンタ220の事前定義される要件により指定される境界ボックス内に収まらなければならない。本発明の別の実施形態によれば、モデルが境界ボックスよりも相対的に大きい場合、縮小するか、又は境界ボックスでクリッピングしなければならない。
【0087】
図3は、3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形する、本発明の実施形態による方法のフローチャート300である。この実施形態によれば、方法は、例えば、示されるように適宜順番付けられた以下のステップ:インポート305、修復315、スケーリング320、厚化(膨張)325、支持340、選択(クリッピング)345、統合350、特異点除去360、及びエクスポート365、のうちのいくつか又はすべてを含み、ステップのうちのいくつかは、任意選択的であり、迂回することができる(支持ステップ340及び特異点除去ステップ360等)。ステップ305において、モデルデータがインポートされる。モデルを表す入力モデルファイル206(図2)は、サブステップ306においてSTL等のサポートされるファイル形式をパーズすることにより得られるか、又はデータは、モデリングアプリケーションAPI(アプリケーションプログラミングインタフェース)を通して、ステップ307においてモデリングアプリケーションから直接得られる。ステップ315において、(物体)モデルが受信され、解析され、非一貫性(もしあれば)が除去される。このために、閉2D多様体(互いに交差し得る)が生成される。この動作は修復と呼ばれる。次に、ステップ320において、モデルは、ユーザの選択に従って、3Dプリンタ220(図2)により定義される境界ボックス内に収まるように自動的に、又はユーザ提供のスケーリング係数により手動でスケーリングされる。このために、モデルの特徴の座標が現実世界座標にマッピングされる。この結果、当然ながら、それでもなお、3Dプリンタ220により定義される建物容積からはみ出るため、所与の3Dプリンタ220(図2)による造形(プリント)には比較的大きなモデルが生成され得る。ステップ330において、独立したビューアを使用して、各フェーズの出力、特に最終出力を閲覧(且つ必要であればセットアップ/調整)することができ、出力は個々に3Dプリンタ220(図2)に送信することができる。ユーザは、異なる種類のモデル物体の膨張を可能にすること、1つ又は複数の個々の(サブモデル)要素をプリントするか否かを判断すること、3Dプリンタ220を選択すること、スケーリング係数を選択すること等のシステム200の対応する構成を実行することができる。次に、ステップ325において、薄いパーツの厚化等の動作を適用し、パーツの機能性をさらに考慮(保持)することにより、モデルの3Dプリントへの準備が整う。その後、ステップ340において、モデルは、例えば、支持梁を追加して、2つ以上の分離した構成要素を接続することにより、物理的解析に基づいて変更され、単体の接続されたモデルを形成する。その後、選択ステップ345が適用され、このステップにおいて、3Dプリントすべき1つ又は複数のモデルパーツが選択される。このステップは、選択された3Dポインタにより定義される境界ボックスから完全又は部分的にはみ出たパーツの自動却下で開始される。個々のパーツの手動選択も同様にサポートされる。ビューアを使用して、ユーザの選択を実行する。ビューアは、却下パーツとは異なるように選択パーツをレンダリングした状態で全体モデルを表示し、2つの相補的な部分集合を区別する。2つの部分集合のレンダリングは、ユーザにより別個に制御される。ステップ350において、ステップ340において生成されたソリッドパーツ(又は複数のパーツ)の内積の和が統合され、それにより、自己交差及び異なるパーツ間の交差がなくなる。次に、ステップ360において、特異点をモデルからなくす。すなわち、特異的な頂点及び辺が識別され、削除され、それにより、単体の(特異点のない)多様体が生成されるか、又はモデルがステッチングされて、いくつかの実質的に分離した2D多様体が生成される。最後に、ステップ365において、モデルはエクスポートされる。モデルは、サポートされるファイル形式でモデルを表現する出力モデルファイルで記憶するか、又はステップ370において、3Dプリンタ220(図2)に送信することができる。
【0088】
本発明の実施形態によれば、ユーザは、ビューアを使用して上記ステップの各ステップの出力を観察し、ビューアは、ユーザにより制御される様々なビューからモデルを三次元でレンダリングすることができるインタラクティブソフトウェア構成要素である。ステップ305中の解析動作では、比較的多くの計算時間が必要であり得るため、ユーザはその複雑性を制御することができる。したがって、デフォルトにより、低複雑性解析を実行することができる。ユーザは、例えば、ステップ315において適用される修復プロセスの結果を閲覧することもできる。破損又は非一貫性が残っており、ユーザにより観察される場合、高複雑性解析を適用することができる。本発明の実施形態によれば、ステップ305の結果は、アーチファクトを略含まない1つ又は複数の閉2D多様体を含む有効なモデルである。しかし、2D多様体は破損し、互いに交差している可能性があり得る。
【0089】
本発明の実施形態によれば、修復(ステップ315において適用される)は、3Dソリッドの一貫したモデルの再構築を可能にすると共に、ポリゴンの任意の集合(ポリゴンスープ)からの、適切なソリッドパーツを画定する境界表現の取得を可能にする。非有向3D多様体(例えば、クラインの管)及び非閉2D多様体(例えば、メビウスの輪)は、適切なソリッドを画定しないため、不当な入力を含む。
【0090】
本発明の実施形態によれば、入力モデル(例えば、STLファイルにより提示される)を自動的に修復する異なる方法(技法)セットが提供される。これらの方法は、効率と品質とをトレードオフすることができ、例えば、最も効率的な戦略をデフォルトで使用することができる。ユーザは、結果を見て、結果が満足のいくものになるまでモデルの再処理を要求することが可能であり得る。したがって、インポートステップ305の結果は、互いに交差するアーチファクトが略ない1つ又は複数の閉2D多様体を含む有効なモデルであることができる。比較的高品質のモデルを得る方法は、非一貫性が略ないモデルを生成することができ、このために、T.M.Murali等(「Consistent Solid and Boundary Representations from Arbitrary Polygonal Data Computer Graphics」,Proceedings of the 1997 Symposium on Interactive 3D Graphics,Providence,pages 155−162,1997という名称の記事において)により紹介された技法を実施することができる。この技法によれば、空間は、入力ポリゴンを支持する平面により分離される凸多面体領域に分割される。ソリッド領域は、領域の境界の不透明度に基づく規則:1)大半が透明な境界を共有する2つの隣接するセルは、同じソリッド性を有する(すなわち、一方がソリッドである場合、他方もソリッドである)可能性が高く、2)大半が不透明な境界を共有する2つの隣接するセルは、逆のソリッド性を有する(すなわち、一方がソリッドである場合、他方はソリッドではない)可能性が高く、3)境界のないセル(すなわち、点を無限遠で含む、外部にあるセル)はソリッドではない、から導出される一次式系を解くことにより識別される。ソリッド領域が識別されると、交差、同一平面上のポリゴン、又は接続されていないポリゴンのない一貫したソリッドモデル及び境界表現を出力することができる。
【0091】
本発明の実施形態によれば、平面グラフに一般に知られているオイラーの公式を利用する解析が、各モデルパーツに独立して適用される。v、e、及びfが各パーツの頂点、辺、及び面のそれぞれを示すものとする。そうすると、式v+f=e−2が保たれなければならない。比較的あまり時間がかからない修復戦略は通常、以下のように進められる。まず、同一の三角形、劣化した三角形/辺等の同一の特徴及び劣化した特徴が削除される。次に、ε閉特徴が統合され、辺を分割することにより、T字形接合部がなくなる。そのような分割は、元のポリゴンに取って代わる2つのポリゴンをもたらす。
【0092】
地形は地面の垂直寸法である。地形は通常、地形特徴の高さに関して表され、単面に関係する辺を境界とする非多様体2D表面により表される。単面に関係する辺を境界とする3D空間内の非多様体2D表面は、地形を表すか、又は単に、ゼロ容積パーツの不完全な表現を含む。修復フェーズはそのような表面を識別する。地形表面はそのようにして分類され、壁等の物体の不完全な表現は修復される。残りの表面は削除される。そのような表面の修復動作により、逆向きの2D表面及び境界に沿った1D(一次元)表面がもたらされることになる。これにより、厚化ステップ325により処理可能なゼロ容積パーツが生成される。
【0093】
本発明の実施形態によれば、モデルが3Dプリンタの要件(構成)を満たすには相対的に大きなモデルである場合、モデルを縮小するか(ステップ320)、又は例えば、プリンタの事前定義される要件により指定される境界ボックスでクリッピング(ステップ345)しなければならない。スケーリング動作は、モデルの特徴の座標を現実世界の座標にマッピングする。さらに、クリッピング動作は、モデルを構成するパーツの中から、境界ボックス内に全体的に含まれるパーツのみを選択する。本発明の実施形態によれば、スケーリング動作は、結果として生成されるモデルが不十分な厚さのパーツを含み得るため、厚化ステップ325の前に適用される。本発明の別の実施形態によれば、クリッピング動作は、統合ステップ350の前に適用され、個々のパーツの手動選択をサポートすることもできる。ビューアを使用して(ステップ330において)、ユーザの選択を実行する。例えば、ビューアは、選択されたパーツを選択されていないパーツとは別様にレンダリングして、2つの相補的な部分集合を区別した状態でモデル全体を表示することができる。2つの部分集合のレンダリングは、ユーザにより別個に制御することができる。
【0094】
本発明の実施形態によれば、厚化・膨張ステップ325中、モデルの各パーツが解析されて、このパーツが3Dプリントに十分な厚さであるか否かが判断される。十分な厚さではない場合、パーツは、結果として生成されるパーツが十分な厚さになるように変更される。無差別的な厚化は、機能の観点から元のモデルに一致しない歪んだモデルを生成し得る。したがって、専用の手続きが、パーツの機能を保ちながら、識別されたパーツの所定の群に適用される。CADモデルは、壁、窓、階段、マリオン、屋根、床、地形等の異なるタイプのパーツを含む。異なるタイプのパーツは、作成される間に分類される。分類が保存される場合、ステップ325において、本発明の実施形態による新規の厚化方法(アルゴリズム)が適用される。本発明の別の実施形態によれば、厚化ステップを2回適用して、従来の3Dプリンタ220(図2)により課される2つの異なる対応する厚化基準を満たすことができる。第1の基準によれば、すべてのパーツは垂直方向で十分な厚さを有する必要がある。これは垂直厚化と呼ぶことができる。水平厚化と呼ばれる第2の基準によれば、すべてのパーツは、XY平面に含まれるすべての方向で十分な厚さを有する必要がある(X及びYは座標系内の軸である)。一般に、垂直厚化動作及び水平厚化動作は、2つの様式で異なる。第1に、垂直厚化は、一方向を処理するため、比較的あまり複雑ではない。第2に、膨張は、パーツの特定の群に対して垂直方向に沿って適用される。tv及びthが垂直(層)及び水平最小厚さ(事前定義される値を有する)のそれぞれであると仮定する。厚化動作は、例えば、説明されるように適宜順序付けられた以下のサブステップのうちのいくつか又はすべてを含む。第1に、すべてのパーツは凸サブパーツ(プロトタイプ)に分解され、多くの場合、入力モデル(ファイル)は既に凸サブパーツを含む。第2に、各サブパーツの幅が計算される。次に、幅がtvよりも小さなサブパーツは、垂直方向に沿って厚化され、水平幅がthよりも小さなサブパーツは、適切な水平方向に沿って厚化される。サブパーツが不十分な厚さとして識別される場合、その境界の1つ又は複数の面は、境界の特徴の関連を保ちながら並進移動する。所与の距離dに沿った厚化により、特徴はd方向に並進移動することになる。3つのタイプの厚化動作、すなわち、スケーリング、膨張、及びオフセットがある。Pがパーツであり、wv及びwhがPの垂直幅及び水平幅のそれぞれであると仮定する。垂直幅の方向に向けられた正規化ベクトルはdv=(0,0,1)である。水平幅の方向に向けられた正規化ベクトルがdh=(dx,dy,0)であると仮定する。Pがスケーリングを使用して厚化する場合、以下の1つ又は複数の事前定義される基準(スケーリング係数)が使用される。垂直厚化が適用される場合、パーツはz次元のみにスケーリングされる。適用されるスケーリング係数は、所望の幅と幅との比率、すなわち、tv/wvである。水平厚化が適用される場合、パーツはx次元及びy次元においてスケーリングされる。x及びyスケーリング係数はdx・th/wh及びdy・th/whのそれぞれである。これにより、拡大が最小であるが、それでも十分な厚さのパーツを生成する。
【0095】
fが、幅方向に直交する平面により支持される特徴であり、Fがf、fの関連特徴、及びそれらの特徴に関係する頂点を含む集合であると仮定する。fが面である場合、Fはその面と、fの境界上のすべての頂点及び辺とを含む。fが辺である場合、Fはその辺と、2つの関係する面と、これらの関係する2つの面の境界上のすべての頂点及び辺とを含む。fが頂点である場合、Fはその頂点と、頂点に関係するすべての面と、関係するこれらの面の境界上のすべての頂点及び辺とを含む。Pが膨張を使用して厚化する場合、F内の特徴は、幅要件を満たすように並進移動する。F内の特徴は、垂直厚化及び水平厚化のそれぞれで幅方向に向けられた長さ(tv−wv)及び又は(th−wh)のベクトルにより並進移動する。続けて、モデル全体が、図5B(パーツ520及び525)に概略的に提示されるように調整される。Pがオフセットを使用して厚化される場合、F内のすべての特徴の支持平面は、垂直厚化及び水平厚化のそれぞれで幅方向に向けられた長さ(tv−wv)及び又は(th−wh)のベクトルにより並進移動する。
【0096】
プロトタイプの幅は、プロトタイプとプロトタイプの同一コピーとの侵入深さであり、侵入深さは、原点と、プロトタイプと原点を通るその反射とのミンコフスキー和との最小距離である(例えば、E.BerberichによりMathematics in Computer Science,Springer,2009に提出された「Arrangements on Parametric Surfaces II:Concretization and Applications」という名称の記事に提示されるように)。
【0097】
2つのプロトタイプP及びQのミンコフスキー和の正規マップは、Pの正規マップとQの正規マップとの球形オーバーレイである。プロトタイプP毎に、Pの正規マップ及びその反射の正規マップが計算される。次に、2つの正規マップのオーバーレイが計算され、Pとその反射とのミンコフスキー和の正規マップが得られる。その後、ミンコフスキー和の面が得られる。最後に、原点と面との垂直距離及び水平距離が計算される。垂直距離及び水平距離が、tv及びthのそれぞれよりも小さい場合、本発明の実施形態によれば、厚化動作(例えば、スケーリング、膨張、及びオフセット)のうちの1つが、距離基準を満たすまで適用される。垂直方向では、1回の適用で比較的十分である。しかし、水平方向での距離基準を満たすには、厚化を2回以上(すなわち、数回のループで)適用することが必要であり得る。
【0098】
本発明の実施形態によれば、入力モデル(ファイル)は、3D空間内の2D表面として表現される地形パーツを含み得る。地形表面は、非ゼロ容積を有するソリッドパーツに変換する必要がある。このために、まず、入力モデル内のすべての地形表面が識別される。通常、地形表面の分類が入力モデル内に保持される。本発明のこの実施形態によれば、修復ステップ315中に最初は地形表面として分類されなかった地形表面が識別される。地形表面が識別されると、表面頂点がXY平面に平行する平面に投影され、必要な境界ポリゴンが導入され、3Dプリントに有効な2D多様体が形成される。p(p=(px,py,pz))が、最小の頂点座標pzを有する地形表面の点であると仮定する(X、Y、及びZは座標系の軸である)。次に、z=vz−tvでの投影を含む平面を、最小垂直幅基準を満たしながら配置することができる。
【0099】
本発明の別の実施形態によれば、薄いパーツの境界への並進移動動作が屋根又は床に関連する場合、モデル全体を調整する必要がある。並進移動と調整との組み合わせられた動作は膨張と呼ばれる。一般に、膨張動作は、最小の垂直座標を有する並進移動された特徴よりも上にあるパーツの特徴に影響する厚化動作の変形と見なすことができる。したがって、膨張動作は実質的に、モデルパーツの内部間に交差を導入しない。
【0100】
本発明のさらに別の実施形態によれば、辞書編纂的にソートされたすべてのパーツのすべての点の補助データ構造が、まずz座標、次にy座標、そして最後にX座標に従って保持される。Pが不十分な厚さのパーツであり、p=(px,py,pz)が、厚化動作中に並進移動されるPのすべての点の中からの最小のz座標を有する境界上の点であると仮定する。vzが並進移動ベクトルであるとも仮定する。次に、pz以上のz座標を有するパーツのうちの略すべての点が、vzだけ並進移動する。これらの点は、補助データ構造内で比較的容易に見つけることができ、次に、関係する辺及び面が並進移動された点まで更新される。
【0101】
既知のように、一般的な厚化は、無差別に適用された場合、物体を歪ませ得る。一般的な厚化動作は、結果として生成される物体が、モデラー(例えば、建築家)により当初果たすように設計された目的にかなわない点までオペランド物体を変形させ得る。階段及びマリオンは、そのような歪みを比較的受けやすい。したがって、本発明の実施形態によれば、入力モデルが階段又はマリオンを含み、自動的又はユーザにより階段又はマリオンとして識別可能な場合、(ユーザにより制御される)専用厚化動作が適用され、専用厚化動作は、ソースと呼ばれる元のモデルパーツをターゲットと呼ばれる新しいモデルパーツで置換し、ターゲットは、(i)ソースと同じ機能を提供し、(ii)幅基準を満たす。このために、既製の3Dプリント可能パーツの比較的大きなデータベースが作成され、3Dプリント可能パーツの機能に従って分類される。パーツの候補ペア(除去すべきソースパーツ及びソースパーツに代えて挿入すべきターゲットパーツ)は、本発明の実施形態により、システム200(図2)により自動的に示唆することができる。システム200では、ユーザは候補を追加又は削除することができ、ユーザは、都合のよいインタラクティブな選択を行うために、ビューアを使用してターゲットパーツをオーバーライドすることもできる。ペアが認証されると、(特定のソースパーツとターゲットパーツとの置換が認可され、ソースパーツの境界ボックスが計算され、ターゲットパーツは境界ボックス内に収まるようにクリッピングされ、最後に、スケーリングされたターゲットパーツがソースパーツに代えて挿入される。
【0102】
本発明の実施形態によれば、入力モデルは、比較的良好に支持されないパーツ又は「空中に浮遊する」パーツを含み得る。本発明のこの実施形態によれば、そのような入力モデルの造形(プリント)は、以下の2ステップを達成することにより可能にし得る。第1のステップ中、各パーツの層は、各層の特定の個片が固化する間に、首尾良く積層される。第2のステップ中、固化しなかった個片が洗浄されて除去される(これらの両ステップは図3において支持ステップ340として示されるものと思われる)。浮遊パーツと呼ばれる比較的良好に支持されないパーツは分離され、原点及び残りのパーツに対する位置を失う。したがって、そのような浮遊パーツが識別される。浮遊パーツ毎に、浮遊パーツを支持する新しいパーツの導入が提供される。支持パーツは、一方では、浮遊パーツの重心に接続され、他方では、ある方向において光線に直面する第1のパーツに接続される。撮影方向として、負の垂直方向をデフォルトで使用し得る。
【0103】
本発明の実施形態によれば、モデルはさらに、3Dプリンタ220により定義される建築容積、通常、主軸に位置合わせされたボックス内に収まらないことがある。本発明の実施形態によれば、建築容積は、プリントすべきすべてのパーツを含む必要がある。建築容積から完全又は部分的にはみ出るすべてのパーツは、自動的に却下し得る。デフォルトにより、完全に建築容積内部にあるすべてのパーツがプリントに選択されることに留意されたい。加えて、ユーザは、閲覧ステップ330において、例えば、建築容積からはみ出るパーツを3Dプリントに選択できないという条件下で、ビューアを利用して手動選択を適用することができる。システム200は、選択ステップ345中に適用される細分動作もサポートし、この動作では、3Dプリントすべきパーツが選択される。ユーザは、モデルを構成するパーツの集合をいくつかの(分離した)部分集合に細分するようにシステムに要求することができる。これは、モデルが全体的に建築容積内に含まれない場合に有用になり得る。さらに、自動ツールが、モデルを、独立して造形(プリント)可能なサブモデルに分割することができる。ユーザは、ビューアを利用してパーツをある部分集合から別の部分集合に移すことができる。次に、異なる部分集合を独立して処理し得る。
【0104】
本発明の実施形態によれば、修復ステップ315から出力されるモデルは、アーチファクトが略ない水密のパーツを含む。しかし、パーツが交差し、その和が閉2D多様体を表さない場合がある。加えて、厚化ステップ325は交差の数をさらに増大させる恐れがある(モデルパーツの境界間の交差を内部間の交差で置換もする恐れもある)。したがって、パーツの内部間の交差は統合ステップ350において除去され、統合ステップ350は、本発明の実施形態により、異なる特徴を有する2つの方法を利用し得る。第1の方法は、従来技術による双対マーチングキューブ(DMC:dual marching cubes)アルゴリズムの拡張であり(「Dual Marching Cubes:Primal Contouring of Dual Grids」,Computer Graphics Forum,volume 24,number 1,pages 195−201,2005)という名称の記事においてS.Schaefer等提示されるような)、第2の方法は、「Partitioning Polyhedral Objects into Non−Intersecting Parts」,IEEE Computer Graphics and Applications,volume 8,number 1,pages 53−67,1988という名称の記事においてM.Segalにより紹介される従来技術による技法の実施である。
【0105】
双対マーチングキューブアルゴリズムは、物体(パーツ)の周囲に適応容積分割(8分木)を構築するように動作可能であり、マーチングキューブ(MC)アルゴリズムを8分木に適用することに代えて、双対グラフが構築され、次に、マーチングキューブアルゴリズムが双対グラフに適用される。DMCアルゴリズムは、入力表面により近い出力の生成が可能である。加えて、DMCアルゴリズムは容積関数を必要とし、容積関数の値は、密度情報又は表面までの距離を表す。本発明のこの実施形態によれば、従来の双対マーチングキューブアルゴリズム(方法)は、等値面関数に代えて非一貫性メッシュを処理するように拡張され、3Dプリントに適した単一の有効メッシュを生成する。換言すれば、双対マーチングキューブアルゴリズムは2D多様体メッシュに適用され、メッシュの和である単一の閉2D多様体面が作成される。マーチングキューブアルゴリズムはボクセル(容量ピクセル)(メッシュの集合には定義されない)の角に距離フィールド(等値面)を必要とし、MCアルゴリズムは双対グラフに適用されるため、8分木(各ノードが最高で8つの「子」を有するツリーデータ構造)内のボクセル毎に双対点及び値を有する必要がある。双対点は入力表面上に配置され(例えば、単一平面がボクセルを通る場合、その平面がボクセル内の唯一の特徴であるとき、双対点はその平面又は頂点に配置される)、値は比較的小さな負の値に設定される。次に、本発明の実施形態によれば、最大深度に達し、ボクセルがなお細分を必要とする場合、レイトレーシングを使用して、ボクセルの中心が入力ボリュームの内部にあるか、それとも外部にあるかを判断することができ、値はそれに従って設定される。「レイトレーシング」は、システムを通る波又は粒子の経路を計算する周知の従来の方法である。比較的小さな負の値が使用される理由は、これにより、入力表面に比較的近い出力表面を有することができるためである。
【0106】
本発明の別の実施形態によれば、結合ステップ350から生じるモデルは、位相幾何学的特異点を含み得る。したがって、ステップ360において、そのような特異点をポリゴンの非多様体集合からなくして、多様体ポリゴン面を作成する。モデルの特異点をなくすこのステップは、特異点を有するモデルが一般にプリント可能であるため、任意選択的である。他方、多くの場合、連結されない構成要素を有さないモデルを有することが望まれる。特異点をなくすステップ360は、例えば、IEEE Transactions on Visualization and Computer Graphics,volume 7(2),pages 136−151,2001に発表された「Cutting and Stitching:Converting Sets of Polygons to Manifold Surfaces」という名称の記事においてA.Gueziec等により紹介されるアルゴリズムに基づくことができる。モデルの特異点をなくすために、まず、特異頂点及び特異辺が識別される。次に、識別された特異頂点が乗算され、特異辺を通って切断されて、いくつかの分離した多様体ソリッドパーツが生成される。任意選択的なステッチング動作が要求される場合(例えば、ユーザにより要求される)、多様体としての表面を維持するために、境界辺が合体する。実施されるアルゴリズムの変形により、代替のプロトタイプの幅が3Dプリントに十分に大きいことを保証する。特異点は、ユーザ選択に従って禁止し得る。
【0107】
本発明の実施形態によれば、エクスポートステップ365中、出力3Dモデルは、STLファイル形式等のサポートされるファイル形式で記憶されるか、又は3Dプリンタ220(図2)に直接送信されて、造形される。サポートされるファイル形式の1つでファイルに記憶された出力3Dモデルは、任意の時間に読み取り、3Dプリンタに送信することができる。システム200(図2)の出力がいくつかのモデルを含む場合、各モデルを別個のファイルに記憶することができる。同様に、そのような各3Dモデルファイルは、任意の都合のよい時間に3Dプリンタに送信することができる。
【0108】
本発明の実施形態によれば、ビューアと呼ばれる独立したインタラクティブ構成要素により、ユーザは、ステップ300において、図3に提示されるステップのそれぞれ1つの出力を閲覧し、特定の変更を加え、デフォルト設定をオーバーライドすることができる。ビューアは、モデルを画面(ディスプレイ)上のウィンドウにレンダリングして、特定の視点から見た三次元デジタルモデルを、画面を含む2D平面上に投影する。ユーザは、視点をインタラクティブに、且つ比較的平滑に変更させることができる。ユーザは、正投影を使用するか、それとも期待投影を使用するか等の他の関連する閲覧パラメータを変更することもできる。ビューアは、ユーザが様々なシステムパラメータを設定、リセット、又はオーバーライドできるようにするグラフィカルユーザインタフェース(GUI)を備えることができる。3Dプリンタ220(図2)は、プリントすべきすべてのパーツを含む建築容積、通常は主軸に位置合わせされたボックスを定義する。ビューアは、3Dプリンタ220により課される建築容積をレンダリングし、建築容積から完全又は部分的にはみ出ているため、却下されなければならないパーツを強調表示することができる。デフォルトにより、完全に建築容積内部にあるすべてのパーツはプリントに選択される。ビューアは、プリントに選択されたパーツをレンダリングする。ビューアは、選択されていないパーツをレンダリングすることもでき、2つの完全な集合を、ユーザが選択パーツ及び非選択パーツを区別できるようにレンダリングすることができる。ビューアは、ユーザが、システム200(図2)によりなされたデフォルト選択をオーバーライドし、パーツを選択集合から非選択集合に移し、非選択集合から選択集合に移すことができる(例えば、建築容積からはみ出ており、プリントに選択できないパーツを除く)。
【0109】
本発明の別の実施形態によれば、ユーザは、モデルを構成するパーツの集合をいくつかの部分集合に細分するようにシステム200に要求することができる。これは、モデルが全体的に建築容積内に含まれない場合に特に有用になり得る。自動ツールが、モデルを、独立して造形(プリント)可能な(別個の)サブモデルに分割する。異なる集合内のパーツは別様にレンダリングされ、ユーザは、パーツをある集合から別の集合に移すことができる。次に、異なる集合は略独立してさらに処理される。ビューアにより、ユーザは、修復ステップ315の出力である「修復された」モデルを調べることができる。ユーザは、結果に満足しない場合、異なる修復戦略を選択し、修復動作の適用を繰り返すことができる。さらに、ビューアは、異なる戦略の検証方式を使用することができ、モデル内の3Dプリントに影響し得る潜在的なアーチファクトを表示することができる。ビューアにより、ユーザは、それらの潜在的なアーチファクトに印を付け、修復動作のヒントとして提供することもできる。本発明のさらに別の実施形態によれば、ビューアにより、ユーザはスケーリング係数を動的に変更することもできる。加えて、ビューアにより、ユーザは、垂直及び水平厚化基準の設定等のシステム200の多くのパラメータを変更することができる。ビューアは、ビューアがなければ一般的な厚化動作により歪み、意図される機能を失う選択パーツの制御された置換が可能である。さらに、本発明のさらに別の実施形態によれば、ビューアにより、ユーザは、ステップ370においてモデルを3Dプリンタ220に送信する前、又はステップ366において出力モデルファイルに保存する前に(ユーザは、所定の形式セットから所望の出力ファイル形式を選ぶことができる)、モデルを調べることができる。
【0110】
図4Aは、本発明の実施形態により、入力モデル内の面として現れ得る自己交差ポリゴン400の概略図である。モデルパーツ405及び410の辺「a」及び「b」は互いに交差する。右上の有界領域は画定され閉じられるが、左下の有界領域はそうではない。しらみ潰しの修復戦略がこの欠陥を修復する。特に、無効な面を含む自己交差ポリゴンはいくつかのポリゴンに分けられ、そのうちのいくつかは保持され、他は削除される。
【0111】
図4Bは、本発明の実施形態により適切な辺417の導入を通してT頂点416をなくす概略図である。
【0112】
図4Cは、本発明の実施形態により、モデル425内に欠けた四辺形426を追加することにより水密モデル425’を形成する概略図である。面を含む上のポリゴンは、左側の部分のモデルから欠けている。欠けているポリゴンが追加されて、右側の水未モデルを形成する。
【0113】
図4Dは、本発明の実施形態により、誤った向きのポリゴン431を反転させることにより水密モデル430’を形成する概略図である。ポリゴンの境界上の頂点の順は、反時計回りでなければならない。左側のパーツのモデル内の面を含む上のポリゴンの境界上の頂点は、時計回りの順である。これは、矢印432により図に示されるように、下にある平面への法線が誤って下に向けられていることを暗に示す。誤って向けられたポリゴンの境界上の頂点の順を逆にして、右側の水密モデルを形成する。
【0114】
図5Aは、本発明の実施形態により、修復ステップ315(図3)中、上の三角形511と下の三角形512との距離をゼロにしながら、単一の三角形505をゼロ容積の角柱に変換する概略図である。上の三角形511及び下の三角形512は、図5Aでは、明確にするために隔てられている。この図は、地形データの処理を示す。地形は地面の垂直寸法であり、通常、地形特徴の高さに関して表され、単面に関係する辺を境界とする非多様体2D表面により表される。修復ステップ315中、分離した単一の三角形505が識別され、地形として分類される。次に、逆の向きを有する三角形が、角柱510を形成する他の特徴と共に導入される。これにより、厚化ステップ325により処理可能なゼロ容積パーツになる。
【0115】
図5Bは、本発明の実施形態による、ステップ325(図3)において適用される膨張の概略図である。膨張したモデル520’は、別様にスケーリングされた箱の形状を有する2つのパーツ526’及び527’を備える(2つのパーツ526及び527を含む元の(非膨張)モデル520と同様に)。下の箱527’の上面を含む平面は、上の箱526’の下面も含む。下の箱527’は、垂直方向において不十分な厚さである。したがって、下の箱527’は垂直方向に膨張する。すなわち、上面及びそれに関連する特徴(すなわち、境界上の頂点及び辺)は、正のZ方向に沿って並進移動する。その結果、下の箱527’の上面を含む平面よりも上にあるすべての特徴も同様に並進移動する。
【0116】
図5Cは、本発明の実施形態により、一般的な厚化動作が階段530(薄いパーツからなる)に適用され、階段530’を生成する概略図である。階段530’’は、一般的に生成された階段モデル530’に代えてユーザが選択することができる代替である。階段530’’は、階段530に適用される厚化動作を拡大し、次に、元のパーツ、すなわち、階段530の境界ボックスによりクリッピングした結果であるか、又はユーザがシステム200(図2)を通してアクセスすることができる階段のデータベースから抽出されたモデルの例である。
【0117】
例えば、本発明の実施形態により、一般的な厚化動作を薄いパーツからなるマリオンモデルに適用して、隣接する窓ユニットを分割するパーツを含むマリオンモデルを生成し得る。窓は通常、3Dプリントに選択されない。一般的なスケーリングの結果は、厚い窓の仕切り及び小さな窓(高さ及び幅に関して)を含む。窓の数を減らすことを犠牲として、窓のサイズを保つことが望ましい場合がある。
【0118】
図6Aは、本発明の実施形態による、位相幾何学的特異点611及び612を含むモデル605、610、及び615の概略図である。これらのモデルは非多様体ソリッドパーツを形成する。非多様体(特異)辺611及び頂点612は、より厚いペンで描かれている。
【0119】
図6Bは、本発明の実施形態による、ステッチング動作が適用され、それにより、位相幾何学的特異点611及び612(図6A)が除去されたモデル605、610、及び615の概略図である。特異頂点611’及び特異辺612’が識別される。次に、識別された特異頂点611’及び特異辺612’に関係する頂点が乗算される。最後に、境界辺が合体して、多様体としての表面を維持する。本発明の実施形態によれば、サブシステム215(図2)により、ステッチング中、新たに導入されたプロトタイプの幅が3Dプリントに十分に大きいことが保証される。
【0120】
図7は、本発明の実施形態によれば、2つの水密壁705及び710と、例えば、Revit(登録商標)ソフトウェアにより作成されたメッシュとの統合の概略図である。本発明の実施形態によれば、従来の双対マーチングキューブアルゴリズム(方法)は、等値面関数に代えて非一貫性メッシュを処理するように拡張され、3Dプリントに適した単一の有効メッシュを生成する。換言すれば、双対マーチングキューブアルゴリズムは2D多様体メッシュに適用され、メッシュの和である単一の閉2D多様体面が作成される。マーチングキューブアルゴリズムはボクセル(メッシュの集合には定義されない)の角に距離フィールド(等値面)を必要とし、MCアルゴリズムは双対グラフに適用されるため、8分木内のボクセル毎に双対点及び値を有する必要がある。双対点は入力表面上に配置され(例えば、単一平面がボクセルを通る場合、その平面がボクセル内の唯一の特徴であるとき、双対点はその平面又は頂点に配置される)、値は比較的小さな負の値に設定される。次に、本発明の実施形態によれば、最大深度に達し、ボクセルがなお細分を必要とする場合、レイトレーシングを使用して、ボクセルの中心が入力ボリュームの内部にあるか、それとも外部にあるかを判断することができ、値はそれに従って設定される。比較的小さな負の値が使用される理由は、これにより、入力表面に比較的近い出力表面を有することができるためである。その結果、この方法をモデル715に適用することにより、3Dプリントに有効な単一の連続した2D多様体ソリッドメッシュ730が生成される。提案される方法(双対マーチングキューブアルゴリズムから拡張される)は、建築(建物、例えば、建物及び景色の3Dモデル)又は他の任意の分野に使用することができる。
【0121】
図8は、本発明の実施形態による、STLファイル形式を表示し、ユーザがモデル物体を制御し、3Dプリントすべきモデル物体を選択できるようにするサンプルGUIの図である。この実施形態によれば、例えば、STLモデルファイルを使用することにより比較的大きなモデルを3Dでプリントするには問題があり得る。したがって、モデルを2つ以上のサブモデルに自動的に分割し、各サブモデルを独立してプリントすることができる自動ツールが提示される。換言すれば、STLファイルは、それぞれが閉2D多様体メッシュを含むように、2つ以上の有効なSTLファイルに分割することができる。入力及び出力形式ファイルを表示し、STLの無効領域に印を付け、ユーザがプリントすべき1つ又は複数のパーツを選択できるようにする対応するGUI(グラフィカルユーザインタフェース)を提供することもできる。このGUIは、すべてのモデルパーツ及びSTL出力を表示することができ、したがって、建築家が、例えば、3Dプリントすべきパーツを選択できるようにする。GUIは、3Dプリントに影響し得るSTLファイル内のアーチファクト(ギャップ、交差、及び劣化/同一平面上の三角形/辺等)を表示し、建築家にこれらの特定の問題のあるパーツを変更するか、それとも3Dプリントに続くかを判断させるSTL検証ツールを備えることもできる。加えて、STLファイルは、GUIにより視覚化できるVRML等の他の形式に変換することもできる。
【0122】
例えば、デジタルモデルソリッドモデルは、本発明の実施形態により、システム200(図2)への入力として提供し、システム200により処理し、3Dプリンタ220(図2)によりプリントし、物理的なソリッドモデルを生成し得る。デジタルモデルソリッドモデルは、例えば、建築家Joseph(Yossi) Cory博士により設立された賞を獲得した建築スタジオであるGeotectura(登録商標)により設計された建築構造であり得る。ソフトウェアツールを使用して、デジタルモデルを画面にレンダリングすることができ、レンダリングツールは、デジタルモデルを含む3Dデータを2D画面上に投影する。
【0123】
図9A及び図9Bは一緒になって、本発明の特定の実施形態により動作可能な、三次元物体モデルのプリントを可能にする方法の簡略化されたフローチャート図を形成する。図9A及び図9Bの方法は通常、例えば、示されるように適宜順序付けられた以下のステップのうちのいくつか又はすべてを含む。
ステップ810:建築構造の建築三次元モデル(Revit、Sketchup、DXF/DWG、VRML、STL等)を提供する。
ステップ820:シーングラフにロードする。
ステップ830:例えば、既知の技法を使用して事前処理を行うべきか否かを判断する。
ステップ840:任意選択的に、又は用途に適切な場合、例えば、既知の技法を使用して、面の向き/法線方向の修正を実行する。
ステップ850:任意選択的に、又は用途に適切な場合、デローネイ三角形分割等の従来の技法を使用して三角形分割を行う。
ステップ860:任意選択的に、又は用途に適切な場合、例えば、従来の技法を使用して丸め/摂動処理を実行する。
ステップ870:任意選択的に、又は用途に適切な場合、例えば、従来の技法を使用して、初期分解/分割を多面体/ソリッドに対して実行する。
ステップ880:モデル内の非凸多面体毎に、凸分解を行い_それにより、各非凸多面体から凸多面体の集合を生成する。
ステップ890−
モデル内の少なくとも1つ(例えば、すべて)の凸多面体に対して、単純で小さな凸形状、例えば、立方体とのミンコフスキー和を計算し、それにより、モデル内の凸多面体毎に膨張凸多面体を生成しようとする。例えば、厳密な計算カーネルを有する市販のCGALパッケージを使用することができ、ミンコフスキー和アルゴリズム計算は通常、アルゴリズムの相違をもたらす劣化したジオメトリ及び/又はコンピュータの不十分な数値精度等の様々な制限により失敗する。したがって、通常、最高精度の計算アルゴリズム、例えば、他のカーネルよりも「厳密な計算カーネル」を有するCGALが使用される。
ステップ900:ステップ890が、特定の凸多面体に対して失敗すると予測されるか、又は失敗する場合(エラー状況又はプロセスクラッシュ)、そのような凸多面体毎に適応分解(例えば、図10による)を行う。
ステップ930:好ましくは、メモリの容量に達しつつあること(memory blow−up)を監視しながら、ステップ890において生成された膨張凸多面体を「大きく」結合しようとする。
ステップ935:任意選択的に、メモリの容量に達しつつあることが検出される場合、対処ステップを行う。
ステップ940:元の凸物体のミンコフスキー和及び元々は非凸物体の結合したミンコフスキー和を適したプリント形式、例えば、STLに変換する。
ステップ950:3Dプリンタを使用して、STL又は他の所望の形式の建築三次元構造をプリントする。
【0124】
図10は、図9A、図9Bのステップ900の実行に適した適応分解方法の簡略化されたフローチャート図である。図10の方法は通常、例えば、示されるように適宜順序付けられた以下のステップのうちのいくつか又はすべてを含む。
ステップ960−
モデルが失敗した凸多面体を表すために使用する単純な形状(例えば、三角形)毎に、単純で小さな凸形状、例えば、立方体とのミンコフスキー和を計算し、それにより、膨張三角形を生成する。
ステップ970:ステップ110において生成された膨張三角形を「小さく」結合しようとし、それにより、中空形状を得る。
ステップ975:結合ステップ120に失敗した場合、結合に使用されたCGAL。
【0125】
図9A、図9B、及び図10の方法、特にステップ880〜930は通常、様々な劣化事例を含む建築三次元モデルの処理及び従来の劣化したジオメトリを3Dプリンタでプリントできないことの解消に特に適する。建築三次元モデルは、プリントするために縮小し得るが、3Dプリンタは、プリンタに依存する最小厚未満の要素をプリントすることができない。
【0126】
建築モデルに対するミンコフスキー加算の本実施態様では、多面体と立方体とのミンコフスキー加算は往々にして失敗する。本明細書に記載の適応分解が、失敗のない建築3Dモデルのミンコフスキー和の計算に役立つ。この技法は、非中空ジオメトリを中空にレンダリングし得るという点で反直観的であるが、これは建築3Dモデルの3Dプリントには妥当である。しかし、他の使用には許容不可能であり得る。非中空のジオメトリが要求される場合、結果と元の物体とを結合する追加のステップを実行することにより達成することができる。
【0127】
通常、図9A、図9B、及び図10の方法により生成されるすべての幾何学的エンティティは、少なくとも最小厚を有する。通常、図9A、図9B、及び図10の方法は、小さなギャップの修復及び/又は欠けた面の修復に対して動作可能である。
【0128】
これより図9A及び図9Bを参照すると、ステップ810は、例えば、ソフトウェアツールキットを使用して、建築三次元モデル(Revit、Sketchup、DXF/DWG、VRML、STL等)等であるがこれらに限定されない入力を受信し得る。
【0129】
法線方向修正及び三角形分割が、図9A及び図9Bのステップ830の実行に適した技法の例である。
【0130】
ステップ820は、例えば、シーングラフ技術を使用して、さらに処理するために、例えば、モデルを内部データ構造/リポジトリにロードすることを含み得る。
【0131】
ステップ840に関して、法線の方向により面の向きを特定することができる。3Dモデルは、時には一貫しない法線方向を含むことがあるため、修正が利用される。既知の修正技法があり、Rhino3Dソフトウェア等のいくつかの従来のソフトウェアパッケージは、法線方向修正のツールを提供する。
【0132】
ステップ850に関して、ファイル形式に応じて、必ずしも三角形を使用する必要がないジオメトリのいくつかの表現があり得る。
【0133】
形状/ポリゴンは、テセレーション/三角形分割、例えば、例:トーラステセレーションにより別のジオメトリ表現に変換し得る。
【0134】
例えば、ファイル形式はポリゴン記述を含むことができ、その場合、各ポリゴンは、従来のポリゴン三角形分割方法を使用して三角形分割することができる。
【0135】
ステップ880及び890に関して、多面体の凸分解及び多面体の3Dミンコフスキー加算は、例えば、CGAL(計算幾何学アルゴリズムライブラリ)により提供される機能であり、CGALのマニュアルはオンラインcgal.org/manualにある。
【0136】
ステップ890に関して、三角形と立方体とのミンコフスキー和が、三角形の頂点に位置決めされた立方体の凸包であることが理解される。通常、ステップ970の後、方法は、好ましくは、メモリが容量に達しつつあること等のエラー状況を監視しながら、ステップ890において生成された膨張凸多面体を「大きく」結合しようとする(ミンコフスキー加算の出力は、本明細書では「膨張凸多面体」と呼ばれる)。処理された各多面体は通常、処理されたモデル(出力)の部分である。通常、劣化したエンティティ(例えば、ゼロの長さの辺を有する三角形)以外、すべてのエンティティが処理される。
【0137】
ステップ935において、通常、メモリの容量に達しつつあることが検出される場合、プロセスは終了するか、又は「停止」させられる。
【0138】
ステップ975において、単純な結合の以下の疑似コードを利用し得る。
typedefCGAL::Nef_polyhedron_3<Kernel>Nef_polyhedron;
Nef_polyhedronN;
for(int i=0;i<n;i++)
{
Nef_polyhedronP;
std::ifstream in(fname[i]);
in>>P;
N=N.join(P);
}
特定のCGALバージョンでの多面体の大きな集合の結合の問題を回避するために、Nef_Polyhedronを「リセット」する(ファイルに書き込みし、再び読み取ることにより)以下のコード(Windowsオペレーティングシステムで実行され、VS2008を使用してコンパイルされる、GMP、MPFRライブラリ、Exact_predicates_exact_constructions_kernelカーネルを使用するCGALバージョン3.5.1)。
Write(N,”temp.nef3”);
delete N;
N=new Nef_polyhedron;
Read(N,”temp.nef3”);
【0139】
ステップ890の失敗は、エラー状況又はプロセスクラッシュにより判断し得る。この場合、通常、システムは、例えば、図10に説明されるようなより単純な形状に分解することを含む適応分解を実行する。
【0140】
ステップ935に関して、メモリリークは最終的に、性能の極度の減速に繋がり得る。限界において、動作時間はエンドレスになり、メモリ切れによりプログラムがクラッシュする。通常、第1の動作の処理時間が測定され、結果として生成される平均が基準として使用される。動作がこの基準よりもはるかに遅くなる場合、これは問題の指標として機能する。
【0141】
図9及び図10の方法の動作の前後の例が図11A及び図11Bに示され、これらの図は、図9及び図10の方法を使用する処理の前後の各壁の平面図である。例えば、縮小後の壁厚は0.1mmであり、これはプリント可能ではない。図11A及び図11Bでは、立方体の半分サイズが1/2*1mmであるため、各矢印は0.5mmである。処理後の壁厚は
=0.5+0.5+0.1=1.1mmであり、これはプリント可能である。
【0142】
本明細書に示され説明される特定の実施形態の特定の利点は、劣化していない限り、三角形が失敗しないが、特定の実施形態により劣化した三角形が事前認識されて無視され、それにより、失敗状況がなくなることである。
【0143】
シーングラフ等の任意の適したデータ構造を、処理中の3Dシーンのリポジトリとして使用し得る。データ構造はDAG(有向非周期グラフ)を含み得る。
【0144】
Graffiti 3Dツールキット及びアプリケーションフレームワークは、本発明の特定の実施形態の実施に有用な3Dアプリケーションフレームワークであり、Windows OpenGLに基づくアプリケーション及びSaaSフレームワークの両方に使用し得る(グラフィックス集約的なアプリケーション用のC++API及びSaaSフレームワーク用のC#.net APIが利用可能である)。OpenGLに基づく3Dビューア、プロプライエタリスーパーセットファイル形式及びシーングラフ、Autodesk Revit、Google Sketchup、AutoCAD DXF/DWG、STL、VRML等の広範囲の関連するファイル形式サポートが、本発明の特定の実施形態の実施に有用であり得る。
【0145】
本明細書で使用される立方体のサイズは、ソフトウェアのパラメータであり、通常、プリンタの性能の関数である。例えば、プリンタが少なくとも1mm厚の壁のみをプリント可能な場合、1mm×1mm×1mmの立方体をすべての凸物体に使用し得る。壁厚が0の場合、処理される壁
の厚さは1mmになる。換言すれば、縮小後の壁厚=0mm(プリントできないことが自明)である場合、本明細書に示され説明される処理後の壁厚
=0.5+0.5+0=1mmである。
【0146】
通常、ステップ970の後に、ステップ890において生成された膨張凸多面体の結合を実行するステップが続く。続けて、システムは、結果として生成された3Dプリント可能モデルをSTL又は他の形式に変換し、所望の形式の3Dプリント可能モデルを出力し得る。
【0147】
図12は、本発明の実施形態の実施形態例の一般的に自己説明的な流れ図である。性能を最適化するために、ステップ1240でのループ等の時間のかかるループ内の計算は、例えば、従来のスレッドプールパターンを使用して並列計算で計算し得る。特定の実施形態によれば、図12の方法は、ステップ1210が一般的に、図9を参照して上述したステップ810〜820と同様であり、ステップ1230が一般的に、図9を参照して上述したステップ830〜870と同様であり、ステップ1240〜1250が一般的に、図9を参照して上述したステップ880と同様であり、ステップ126〜1270が一般的に、図9を参照して上述したステップ890と同様であり、ステップ1280〜1290が一般的に、図9を参照して上述したステップ900と同様であり、ステップ1300〜1310が一般的に、図10を参照して上述したステップ960と同様であり、ステップ1320が一般的に、図10を参照して上述したステップ970と同様であり、ステップ1330が一般的に、図9を参照して上述したステップ930と同様であり、ステップ1340が一般的に、図9を参照して上述したステップ940と同様であるように実施し得る。
【0148】
図13は図12の図の疑似コードである。疑似コードは、例えば、
List<Polyhedra>model=Input()
cube=プリンタの性能により立方体を構築(例えば、1×1mm)
Preprocessing(model)
foreach(Polyhedra polyhedra in model)
List<ConvexPolyhedra>=ConvexDecomposition(polyhedra)
Foreach convexPolyhedra
processed1=MinkowskiSum(convexPolyhedra+cube)
if(failed)
list<Triangle/SimpleObject>list=AdaptiveDecompose()
foreach(Triangle triangle in list)
processed2=MinkowskiSum(triangle+cube)
ENDFOREACH
Union(List<processed2>)
ENDIF
ENDFOREACH
Union(List<processed1>)
ENDFOREACH
Output3DPrintable(ProcessedModel, STL format)
を含み得る。
【0149】
本明細書に示される方法及びシステムは、以下の任意に関連付けられた用途に有用である:建築家、インテリアデザイナー、3D建築モデルをプリントする必要がある顧客、ST修復/修正ソフトウェア組織及びサービス提供者、3Dプリントサービス、3Dプリンタ/ラピットプロトタイピング機組織、並びにCADソフトウェア提供者。3Dモデルを生成する適したソフトウェアを備えた汎用コンピュータ等の任意の適した装置を使用して、本明細書に示され説明される方法への入力を生成し得る。任意の適した3Dプリンタを使用して、本明細書に示され説明される方法により生成されるデジタル出力の3Dプリントアウトを生成し得る。ネットワークを使用して、そのようなコンピュータ及び/又はそのようなプリンタの間並びに/或いは本明細書に示され説明される機能のうちの任意を有するサーバ、又はクライアントコンピュータ、又はプロセッサの間で通信し得る。任意の適したコンピュータ化されたデータ記憶ユニット、例えば、コンピュータメモリを使用して、本明細書に示され説明される方法への入力、暫定的な作業生産品、又はそれにより生成されるデジタル出力を記憶し得る。本明細書に説明される計算機能のうちの任意又はすべては、プロセッサで実施し得、例えば、従来のプロセッサ内に組み込まれたモジュールを含み得る。
【0150】
「必須の」、「要求される」、「必要とされる」、及び「しなければならない」等の用語が、明確にするために本明細書内で説明される特定の実施態様又は用途の文脈の中で行われる実施の選択を指し、代替の移植から限定を意図しないことが理解される。同じ要素が、必須又は要求されるものとして定義されなくてもよく、又はすべてなくすことさえも可能である。
【0151】
プログラム及びデータを含む本発明のソフトウェア構成要素が、所望の場合、CD−ROM、EPROM、及びEEPROMを含むROM(読み取り専用メモリ)形態で実施し得、又は様々な種類のディスク、様々な種類のカード、及びRAM等であるがこれらに限定されない任意の他の適したコンピュータ可読媒体に記憶し得ることが理解される。ソフトウェアとして本明細書に説明される構成要素は、代替として、所望の場合、従来の技法を使用して全体的又は部分的にハードウェアで実施してもよい。逆に、ハードウェアとして明細書に説明される構成要素は、代替として、所望の場合、従来の技法を使用して全体的又は部分的にソフトウェアで実施してもよい。
【0152】
本発明の範囲内には、とりわけ、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するコンピュータ可読命令を搬送する電磁信号、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行する機械可読命令、機械により実行可能であり、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行する命令プログラムを明確に具体化する、機械により可読のプログラム記憶装置、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するコンピュータ可読プログラムコードを内部に具体化し、且つ/又はそのようなプログラムコードを含む、実行可能コード等のコンピュータ可読プログラムコードを有するコンピュータ使用可能媒体を含むコンピュータプログラム製品、任意の適した順に実行された場合、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてによりもたらされる任意の技術的効果、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に、単独で、又は組み合わせて実行するようにプログラムされた任意の適した装置、又はデバイス、又はそのような組み合わせ、プロセッサ及び協働する入力装置及び/又は出力装置をそれぞれ有し、本明細書に示され説明された任意のステップをソフトウェア内で実行するように動作可能な電子装置、コンピュータ又は他の装置を、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するように構成させる、ディスク又はハードドライブ等の情報記憶装置又は物理的な記録、例えば、メモリ又はインターネット等の情報ネットワークに事前記録され、ダウンロードされる前又は後に、本明細書に示され説明される任意の方法のステップのうちの任意又はすべてを任意の適した順に実施するプログラム、そのようなプログラムをアップロード又はダウンロードする方法、及びそのようなプログラムを使用する1つ若しくは複数のサーバ及び/又は1つ若しくは複数のクライアントを含むシステム、並びに単独で、又はソフトウェアと併せて本明細書に示され説明される任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するハードウェアが含まれる。本明細書に説明される任意のコンピュータ可読媒体又は機械可読媒体は、非一時的なコンピュータ可読媒体又は機械可読媒体を含むことが意図される。
【0153】
本明細書に説明した任意の計算又は他の形態の解析は、適したコンピュータ化された方法により実行し得る。本明細書に説明した任意のステップはコンピュータにより実施し得る。本明細書に示され説明される本発明は、(a)コンピュータ化された方法を使用して、本明細書に説明した任意の問題又は任意の目的に対する解決策を識別することであって、解決策は任意選択的に、本明細書に説明した問題又は目的にプラスに影響する本明細書に説明された判断、動作、製品、サービス、又は任意の他の情報のうちの少なくとも1つを含む、識別すること、及び(b)解決策を出力することを含み得る。
【0154】
別個の実施形態の文脈の中で説明した本発明の特徴は、単一の実施形態に組み合わせて提供することも可能である。逆に、簡潔にするために、単一の実施形態の文脈の中で、又は特定の順に説明された、方法ステップを含む本発明の特徴は、別個に、又は任意の適した下位組み合わせで、又は異なる順に提供することもできる。「例えば」は、本明細書では、限定を意図しない具体例の意味で使用される。任意の図面に結び付けて示されるデバイス、装置、又はシステムは、実際には、特定の実施形態では単一のプラットフォームに統合することができ、又は光ファイバ、Ethernet、無線LAN、ホームPNA、電力線通信、セル電話、PDA、Blackberry GPRS、GPSを含む衛星、又は他のモバイル伝達等であるがこれらに限定されない任意の適切な有線結合又は無線結合を介して結合することができる。本明細書に示され説明された説明及び図面では、システム及びシステムのサブユニットとして説明又は示される機能を方法及び方法内のステップとして提供することもでき、方法及び方法内のステップとして説明又は示される機能をシステム及びシステムのサブユニットとして提供することもできることが理解される。図面内の様々な要素を示すために使用される縮尺は、単なる例示であり、且つ/又は提示を明確にするために適切であり、限定を意図しない。
【技術分野】
【0001】
同時係属中の出願の参照
優先権は、2009年10月8日に出願された「Method and System for enabling three−dimensional object models」という名称の米国特許出願第12/575,919号明細書の優先権を主張するものである。
【0002】
本発明は、一般的には3Dプリントに関し、より詳細には3Dモデルの処理に関する。
【背景技術】
【0003】
以下の用語は、従来技術による文献に見られる任意の定義に従って、又は本明細書に従って、すなわち、以下のように解釈することができる。
凸包:conv(S)として示される、三次元空間S⊆R3における幾何学的物体の集合の凸包は、Sを含む最小の(包含的な)凸集合である。
凸多面体:凸多面体は、有限個の閉半空間H={h∈R3|A・h≦B}の交じわりとして与えられる凸集合Q⊆R3であり、式中、A・h≦Bは一次式系である。nが定義半空間の個数であると仮定する場合、Aは{3×n}行列であり、Bは長さnのベクトルであり、hは、凸多面体内に含まれる点を表す変数である。
多面体:有界の凸多面体P⊂R3が多面体である。
超平面:三次元空間において、超平面は通常の平面であり、空間を2つの半空間に分ける。
支持超平面:超平面は、Sが全体的に、超平面により決まる2つの閉半空間のうちの一方内に含まれ、Sが超平面上に少なくとも1つの点を有する場合、ユークリッド空間R3内の集合Sを支持する。閉半空間は、超平面を含む半空間である。
幅:width(S)として示される集合S⊆R3の幅は、conv(S)を支持する平行超平面間の最小距離である。
方向幅:正規化ベクトルvを考えると、widthv(S)として示される方向幅は、conv(S)を支持し、vに直交する平行超平面間の距離である。
ポリゴンメッシュ:ポリゴンメッシュは、非構造格子とも呼ばれ、例えば、3D(三次元)コンピュータグラフィックス及びソリッドモデリングにおいて多面体物体の形状を定義する頂点、辺、及び面の集まりである。面は通常、レンダリングを簡易化するために、三角形、四辺形、又は他の凸ポリゴンからなるが、より一般的な凹ポリゴン、穴を有するポリゴン等で構成されてもよい。一般に、入力は、幾何学的物体の付随関係を取り出せるように、幾何学的情報及び十分な位相幾何学的情報を含むべきである。
STL:STLは、米国に所在の企業「3D Systems(登録商標)」により制作されるステレオリソグラフィCAD(コンピュータ支援設計)ソフトウェアに固有のファイル形式である。このファイル形式は、他の多くのソフトウェアパッケージによりサポートされ、ラピットプロトタイピング及びコンピュータ支援製造に広く使用されている。STLファイルは、色、テクスチャ、又は他の一般的なCADモデル属性の表現のない三次元物体の表面のジオメトリを記述する。STL形式は、ASCII(情報交換用米国標準コード)及びバイナリ表現の両方を指定する。一般に、通常、バイナリファイルがよりコンパクトであるため、バイナリファイルがより一般である。一般に、各STLファイルは、三次元デカルト座標系を使用して三角形の単位法線及び頂点(右手の法則による順)により未処理の非構造三角形からなる表面も記述する。VRML等の他のファイル形式が、テクスチャ及び色をサポートする。
3D(三次元)プリント:は、従来のラピットプロトタイピング技術に関連する独自の形態のプリントである。3D物体は、材料の連続した断面を層化し、結び付けることにより作成される。3Dプリンタは通常、他の積層造形技術よりも高速であり、手頃であり、且つ使用が容易である。プリンタの分解能は層厚で与えられ、XY分解能はDPI(ドット数/インチ)で与えられる。通常、層厚は約100μm(0.1[mm](ミリメートル))であり、XY分解能はレーザプリンタの分解能と同等である。粒子(3Dドット)は直径約50μm〜100μm(0.05mm〜0.1mm)である。
ラピット:「ラピット」という用語は、現方法を使用したモデルの構築が、使用される方法並びにモデルのサイズ及び複雑性に応じて、例えば、数時間から数日かかり得るため、相対的である。ラピットプロトタイピング用の積層システムは通常、モデルを数時間で生成することができるが、使用される機械のタイプ並びに同時に生成されるモデルのサイズ及び数に応じて大きく変化し得る。
プリント可能モデル:モデルは、内部で対毎に交差しないボリュームを結合する閉2D(二次元)多様体の集合を含むと共に、あらゆる凸片のZ方向(垂直)幅が所与の閾値よりも大きく、あらゆる凸片のXY方向(水平)幅が所与の閾値を超える(X、Y、及びZは軸である)ような凸分解も存在する場合、プリント可能である。実際には、3Dプリント可能モデルは、3Dプリンタでプリント可能なモデルである。したがって、モデルは、上記の第1の定義、例えば、交差するボリュームに従わない場合であっても3Dプリント可能であり得る。
【0004】
3Dプリントは急速に成長しつつある市場であり、2011年までに3Dプリンタが300,000台になると推定される。3D建築モデルの現在の作成は通常、手動で実行される。これは遅く、高価であり、経験を要する(通常、専門的なサービス提供者による)労働集約的なプロセスである。
【0005】
例えば、rapidtoday.comにおいてオンラインで入手可能な「Despite Housing Woes,Architectural 3D Printing Thrives」という名称のRapidTodayの記事は、「RapidTodayが話したサービス提供者のうち、略全員が、図面ファイルを3Dプリント可能にするために、広範囲にわたるファイルの修復が必要であることが多かったと述べた。QuickARCのMackieは総コストの20%、すなわち、構築される典型的なUS$3,000モデルのUS$600と見積もられ・・・。修復が容易でないのは、容易に見えない場合があるが、ラピットプロトタイピングを短絡させる建築CADファイルでのギャップ及び穴である。これらの問題は現在、DeskArtesからのMagics、VisCamRP、MeshWorks、3Data Expert・・・のようなメッシュ修復プログラムを使用して、ラピットプロトタイピングサービス提供者の専門家が苦心して発見し修復している。この問題に対する高速ソフトウェアによる解決は遠い。」と述べている。
【0006】
この10年間で、3Dプリンタは、コンピュータ支援設計(CAD)モデル及びアニメーションモデル等のデジタルデータから3Dの物理物体を生成する一般的なツールになった。その結果、ラピットプロトタイピングの使用は今では、多くの分野で一般的である。特に、建築家は3Dプリントから大きな恩恵を受け得る。建築家は、数日さらには数ヶ月ではなく数時間以内で正確な3D建築物体を生成することができる。これらのプロトタイプは、進行中に建築プロジェクトを繰り返し再評価するための自然なメカニズム及び早い段階での問題の検出を可能にする。今では、3Dプリントは、速度、低コスト、及び使用のし易さに関して最適化することができ、プロトタイプの正確性及び機械的強度があまり重要ではない場合、工学設計の概念的な段階中の検査に適する。
【0007】
国際的な「Z Corporation(登録商標)」、イスラエルの「Object Geometries(登録商標)」、並びに米国に所在の「3D Systems(登録商標)」企業及び「Stratasys(登録商標)」企業等の多くの周知のファームが、3D物理物体を生成する装置を製造している。これらの様々な装置は、いくつかの異なる競合する技術に基づく。明らかなことに、異なる製造業者により生成される3Dプリンタ及び同じ製造業者により生成される異なるモデルは、異なる特徴を呈し、別様に動作し、通常、異なる制限に制約される。しかし、すべてではないにせよ大半の3Dプリンタは、積層製造技術に基づき、積層製造技術は、図1に概略的に示されるように、製造すべきモデルを比較的薄い水平断面105に変形し、それから、製造が完成するまで連続した層106、107等を作成する。様々な3Dプリンタの違いの1つは、層が構築されて、プリントすべき3Dモデルのパーツを作成する方法である。分解能は通常、層厚で与えられ、XY分解能はドット数/インチ(DPI)で与えられる。通常、層厚は約1/100μm(0.1mm)であり、XY分解能はレーザプリンタの分解能と同等である。粒子(3Dドット)は直径約1/50μm〜1/100μm(0.05mm〜0.1mm)である。
【0008】
従来の3Dプリンタは、有効なプリント可能モデルが供給された場合のみ、正確な3D物理物体を生成することができる。そのようなモデルは、例えば、STL(ステレオリソグラフィ)ファイル形式でポリゴンメッシュとして表現される。ポリゴンメッシュとして表現される有効モデルは、閉2D多様体、すなわち、自己交差等のアーチファクトを略有さない水密物体を表すポリゴンスープ(ポリゴンの任意の集合)又は互いに略交差しない閉2D多様体の集まりを含む。有効なプリント可能モデルは、様々なプリント装置により科される追加要件を満たす(異なるプリント装置は、異なる技術に基づくため、異なる要件を課す)。
【0009】
3D物体の正確で一貫した表現が、モデリング、シミュレーション、視覚化、CAD(コンピュータ支援設計)、CAM(コンピュータ支援製造)、有限要素解析等の従来の用途により求められる。しかし、取得される3Dモデルは通常、手で作成されたにせよ、又は自動ツールで作成されたにせよ、エラー及び非一貫性を含む。例えば、モデルは、誤って方向付けられ、交差、又は重複するポリゴン、亀裂、及びT字形接合部を含み得、加えて、ポリゴンが欠け、位相幾何学的情報が一貫しないことがある。問題は、設計者のエラー又はモデリングツールのソフトウェアエラーによる。これらのエラーは、(i)CAD形式(例えば、IGES(初期グラフィックス交換仕様)、STEP(製品モデルデータ交換規格)、DXF(図面相互交換形式)、CATIA(コンピュータ支援三次元インタラクティブアプリケーション)又はAutoCADからのバイナリファイル)間、B−Spline又はNURBSベース(非均一関係B−Spline)形式間の自動転送、(ii)工学解析システム(例えば、三角形表面メッシュ)への幾何学的変形等のデータ交換問題により悪化する。取得された3Dモデルから多様体モデルを再構築する技法は、効率、ロバスト性、自動化のレベル、事前条件等に従って様々である。自動化のレベルは、必要とされるユーザ入力に関して測定される。事前条件は、(i)入力集合内のポリゴンが一貫した向きであり、(ii)入力パーツが閉2D多様体である等であるがこれらに限定されない要件を含む。従来技術による一手法によれば、シーンに関連する許容性が、いくらかの許容差内でモデル内の亀裂を「充填」するか、又は特徴を結合するために使用される。境界に基づく手法等の他の手法は、入力ポリゴンメッシュがどのように一緒であるかのソリッド構造を推論しようとし、非多様体ジオメトリが存在する場合、不正確に実行する可能性が高い。従来技術によれば、すべての手法は、エラーのサイズがモデルの最小特徴よりも大きい場合、上手く機能しない。劣化した入力が実際用途では一般的であり、数値エラーは不可避であるため、この問題を考慮せずに実施されるアルゴリズムは、不正確な結果をもたらし得、劣化又は略劣化した入力で実行される間、無限ループ又は単にクラッシュし得る(例えば、「Computational Geometry:Teory and Applications」,volume 40,pages 61−78,2008において公表された「Classroom examples of robustness problems in geometric computations」という名称の記事においてLutz Kettner等により提示されるように、又はStefan Schirra,「Robustness and precision issues in geometric computation」,「Handbook of Computational Geometry」(Jorg−Rudiger Sack and Jorge Urrutia,editors),chapter 14,pages 597−632,Elsevier Science Publishers,2000)により提示されるように)。
【0010】
従来技術によれば、建築家はCADソフトウェア(例えば、米国に所在のAutoDesk(登録商標)により開発されたAutoCAD(登録商標)及びRevit(登録商標)、Google SketchUp)を使用して、様々な3Dデジタルモデルを生成する。これらのモデルは、壁、階段、屋根等の建築パーツを含み得る。各パーツを表すデータは、破損し得るか、又は非一貫性を含み得る。データが完全な場合であっても、個々の各パーツは、不十分な厚さであり得るか、又は重力に打ち勝って空中に浮き得るため、3Dプリントに適さないことがある。最後に、一緒に組み合わせられたすべてのパーツが、互いに交差、特異点を含むため、3Dプリントに適さないことがある。
【0011】
CADソフトウェアは、約30年前の発足以来、常に進化してきた。商用3D CAD技術は、SolidWorks(登録商標)、Inventor(登録商標)、PTC(登録商標)、SolidEdge(登録商標)、並びに3D空間での解析性能及び設計性能に改良を提供する多くの他の製品等の工学ソフトウェア設計と共に出現した。ラピットプロトタイピングの最初の技法は、1980年代後半に提供され、3D CADソフトウェア設計により生成される実際の有形モデルをもたらすために、すぐ後に商用3Dプリンタが続いた。今日、これらは多くの分野で普遍であり、広範囲の用途に使用され、比較的少数での生産品質パーツの製造にさえも使用されている。彫刻家によっては、この技術を使用して、美術品展示のために複雑な形状を生成する者もいる。それでもやはり、ソフトウェア入力の品質は比較的満足のいかないものである。3Dプリンタへの入力データがいくつかのエラーを含み得ることは、Materialise(登録商標)、Marcam(登録商標)、及びDeskartes(登録商標)等のCAD後の診断及び修復ソフトウェアの開発に繋がった。
【0012】
3Dプリントの問題は従来技術において認識されており、様々な解決策が提案されてきた。例えば、米国特許第2005/038549号明細書には、ラピットプロトタイピング構築ファイルの適応変更を実行するシステム及び方法が開示されている。この方法は、三次元物体のデジタル記述を記憶したラピットプロトタイピング構築ファイルを読み取るステップを含む。記述は、複数の構築ファイル修正アルゴリズムから構築ファイル修正アルゴリズムを選択する動作も含む。別の例では、米国特許第5,705,117号明細書は、プロトタイプパーツを生成するステレオリソグラフィプロセスを提示し、このプロセスでは、非光重合材料のインサートが、結果として生成されるパーツ内に含められて、機能するプロトタイプパーツを生成する。インサートを生成されるプロトタイプパーツ内に配置することができるように、一連のSTLファイルが、個々の断面でのプロトタイプパーツを形成するために定義される。非光重合インサートは、断面が形成される都度、生成されるパーツの一断面に手動で位置決めされる。
【0013】
加えて、米国特許第7,343,216号明細書は、モデルへの群葉の繰り返しの配置及び取り出しに役立つ建築現場モデルを組み立てる方法を提示する。現場モデルは、上位シェル部分及び下位シェル部分として構築され、モデルの群葉はシェルパーツに取り付けられる。現場モデルの上位シェル部分は、下の基礎部分に取り外し可能に取り付けられるように構成される。したがって、現場モデルからのシェルの取り外しによっても、現場モデルから群葉を一動作で取り外すことができる。さらに、日本国特許第11339070号明細書は、サブファイル内のソリッドサブモデルをサーフェス処理し、メインファイルに取り入れ、メインソリッドモデルと結合することにより、サーフェスモデルを生成する方法を提示する。このために、部分的な切断、メインソリッドモデルの投影追加等の変更動作が実行される。
【発明の概要】
【0014】
上記観察に基づいて、当分野には、ポリゴンメッシュ(例えば、非多様体メッシュ、交差する三角形、T字形接続部を有するメッシュ等)として表現される破損及び非一貫性を有し得るモデルを比較的大きなプリント装置セットに使用される有効なプリント可能モデルに変形することができる方法及びシステムを提供する持続した必要性がある。
【0015】
当分野には、破損又は非一貫性を有し得る3D物体デジタルモデルを、ラピットプロトタイピング(RP)とも呼ばれるプロセスである固体自由造形(SFF)を使用することにより自動的に構築することができる物理物体モデルに変形することができる方法及びシステムを提供する持続した必要性もある。
【0016】
ラピットプロトタイピングソフトウェアのベンダーとしては、Materialise、Deskartes、Marcam Engineering、Kxinc、及びCADspanが挙げられる。
【0017】
加えて、当分野には、建物及び景観等の建築分野に見られるモデル並びに科学的視覚化及び物理的シミュレーション等の他の多くの分野に見られるモデルの処理が可能な方法及びシステムを提供することが必要である。さらに、当分野には、破損したモデルを修復し、3Dプリント、組み立て計画等の様々なプロセスの非一貫性をなくすように構成された方法及びシステムを提供する必要がある。さらに、当分野には、薄いパーツを、その機能を保ちながら厚化する動作が可能であり、存在し得る交差及び特異点をなくし、すべてのパーツを、1つ又は複数の閉2D多様体を含む、アーチファクトが略ない単一のプリント可能モデルに統合する方法及びシステムを提供する必要がある。
【0018】
本明細書において言及されるすべての公開文献及び特許文献並びにそれらの文献内で直接又は間接的に引用される公開文献及び特許文献の開示は、参照により本明細書に援用される。
【0019】
本発明の特定の実施形態は、3D(三次元)デジタル物体モデルを、主に建築用途であるが、それに限定されない3Dプリンタに有効な3Dプリント可能形態に変換する方法及びシステムを提供しようとする。
【0020】
本発明の特定の実施形態は、(建築家、技師、及び建設)ユーザが3Dモデルプリント技術を完全に利用できるようにする技術を提供しようとする。
【0021】
現在のソフトウェア(Autodesk Revit、SketchUp等)を3Dプリンタと共に使用して3D設計モデルをプリントしようとする場合、設計から正確な建築3Dモデルを生成するには、手動での修正が必要である。これは、スケール問題、異なる設計ソフトウェア及び3Dプリンタの異なるタイプ間の互換性の結果である。
【0022】
本発明の特定の実施形態は、エラーのない正確で精密にスケーリングされたサイズ変更可能な3Dモデルを、使用される3D設計ソフトウェア及び3Dプリンタに関係なく、キーに触れるだけで自動的に提供しようとする。
【0023】
本発明の特定の実施形態は、既存の3D設計を、3Dプリンタによる使用に対応するSTL形式又は他の適した形式に変換するように動作可能な方法において、モデルプロトタイプ形成で節減される時間が、モデル毎に数週間から週時間に大幅に低減する、方法を提供しようとする。
【0024】
本発明の特定の実施形態は、価格制約及びプリンタ制限により設計毎に1つのモデルが作成されることに代えて、望みに応じて同じモデルの多くのコピーを作成する能力及び/又は異なるスケールでモデルをプリントする能力を提供しようとする。
【0025】
本発明の特定の実施形態は、従来の3Dモデリングは高い計算能力を必要とする動作であるため、例えば、クラウド計算を使用して、建築家、3Dプリントサービス提供者、及び3Dプリンタ製造業者を結び付け、それにより、計算能力を可能にするようとする。
【0026】
入力ファイル形式は、例えば、Autodesk Revit、Google Sketchup、AutoCAD DXF/DWG、VRML、STLのうちの任意又はすべてを含み得る。
【0027】
編集は、例えば、分割、セクション/ステージ、簡略化(ポリゴン低減)、分離(シェル、材料)のうちの任意又はすべてを含み得る。
【0028】
出力は3Dプリント可能モデル(例えば、STL、複数材料)を含み得る。
【0029】
プロセスは、修復、選択(インタラクティブ)、厚化、及び結合(プリント可能なSTL)を含み得る。
【0030】
本発明の特定の実施形態は、建築家に利点を提供しようとし、例えば、現在の3Dモデルプリントプロセスとは対照的に、好ましくは、計画された設計を顧客に示す能力を提供し、様々な設計代替を調べることができ、顧客との良好な視覚的やりとりを提供し、計画を保存し、顧客からの即時フィードバックが可能であり、建築家がプロセスを完全に制御できるようにし、同じモデルのコピー及び/又は同じモデルの異なるサイズのプリントを作成する1つ又は複数のシステムを提供しようとする。
【0031】
建築家は、モデルを3Dソフトウェアからウェブサイトにアップロードすることができ、又はプロセスをクラウド計算で実行することができる。
【0032】
本明細書に示され説明される一方法によれば、以下の動作のうちのいくつか又はすべてが実行される:
a.例えば、ストレートスケルトン、中心軸、又は代替の方法を使用して多面体の3Dスケルトンを見つけるステップ、
b.
スケルトンキューブのミンコフスキー加算を計算するステップであって、この和は、本明細書では「膨張スケルトン」とも呼ばれる、計算するステップ、及び
c.元の多面体と膨張スケルトンとの和を計算するステップ。
【0033】
特定の実施形態の特定の利点は、既存のエンティティの厚さがすでに所定の最小厚よりも大きい場合、本明細書に示され説明される方法により厚化されないことである。
【0034】
したがって、特定の実施形態によれば、1つ又は複数の3D物体の非一貫性3D(三次元)モデルを有効なプリント可能3Dモデルに変形する方法において、
a)入力モデルファイル及び/又はモデラーデータを受信して、1つ又は複数のパーツを有する入力3Dモデルを生成するステップと、
b)入力3Dモデルを解析し、1つ又は複数の非一貫性をなくすステップと、
c)3Dモデルの1つ又は複数のパーツを、その機能を保ちながら厚化させるステップと、
d)1つ又は複数のパーツの内積の和を統合し、それにより、自己交差及び/又は2つ以上のパーツの交差をなくし、有効なプリント可能3Dモデルを生成するステップと、
を含む、方法が提供される。
【0035】
本発明の実施形態によれば、方法は、入力モデルファイル及び/又はモデラーデータをインポートするステップをさらに含む。
【0036】
本発明のさらなる実施形態によれば、インポートするステップは、以下のうちの1つ又は複数をさらに含む:
a)入力モデルファイルをパーズするステップ、及び
b)モデリングアプリケーションからモデラーデータを得るステップ。
【0037】
本発明のさらに別の実施形態によれば、方法は、1つ又は複数の事前定義される基準に従って3Dモデルをスケーリング又はクリッピングするステップをさらに含む。本発明のさらに別の実施形態によれば、スケーリングするステップは、自動的に実行されて、3Dプリンタにより定義される境界ボックスを修復する。
【0038】
本発明のさらに別の実施形態によれば、スケーリングするステップは、ユーザにより提供される事前定義されるスケーリング係数に基づいて手動で実行される。
【0039】
本発明のさらに別の実施形態によれば、方法は、閲覧者がGUI(グラフィカルユーザインタフェース)を使用して方法の各ステップを制御するステップをさらに含む。
【0040】
本発明のさらに別の実施形態によれば、方法は、2つ以上の分離したモデルパーツを接続し、単一の接続された3Dモデルを形成する物理的解析に基づいて、3Dモデルを変更するステップをさらに含む。
【0041】
本発明のさらなる実施形態によれば、方法は、3Dモデルを1つ又は複数の分離したサブモデルに分割するステップをさらに含む。
【0042】
本発明のさらなる実施形態によれば、方法は、略独立してプリントすべき少なくとも1つの分離したサブモデルを選択するステップをさらに含む。
【0043】
本発明のさらなる実施形態によれば、方法は、3Dモデルから1つ又は複数の特異点をなくすステップをさらに含む。
【0044】
本発明の実施形態によれば、厚化するステップは、以下のうちの1つ又は複数をさらに含む:
a)垂直に厚化するステップ、及び
b)水平に厚化するステップ。
【0045】
本発明の別の実施形態によれば、厚化するステップは、
a)3Dモデルが凸サブパーツを有するか否かを判断し、有さない場合、3Dモデルのパーツを凸サブパーツに分解するステップと、
b)各サブパーツの幅を計算するステップと、
c)垂直幅が第1の事前定義される値よりも小さい対応するサブパーツを垂直方向に沿って厚化させ、水平幅が第2の事前定義される値よりも小さい対応するサブパーツを水平方向に沿って厚化させるステップと、
をさらに含む。本発明のさらに別の実施形態によれば、3Dプリントすべき3Dモデルをエクスポートするステップをさらに含む。
【0046】
本発明のさらに別の実施形態によれば、エクスポートするステップは、以下のうちの1つ又は複数をさらに含む:
a)サポートされるファイル形式でモデルを表す出力モデルファイルに3Dモデルを記憶するステップ、及び
b)3Dモデルを3Dプリンタに送信するステップ。
【0047】
本発明のさらに別の実施形態によれば、出力モデルファイルは、3Dプリントに使用すべきSTL(ステレオリソグラフィ)ファイルである。
【0048】
システムは、1つ又は複数の3D物体の非一貫性3D(三次元)モデルを有効なプリント可能3Dモデルに変形するように構成され、
a)データ記憶装置から提供される入力モデルファイル及び/又はモデラーデータと、
b)サブシステムであって、
b.1 データ記憶装置から提供される入力モデルファイル及び/又はモデラーデータを受信して、1つ又は複数のパーツを有する入力3Dモデルを生成し、
b.2 入力3Dモデルを解析し、1つ又は複数の非一貫性をなくし、
b.3 3Dモデルの1つ又は複数のパーツを、その機能を保ちながら厚化させ、
b.4 1つ又は複数のパーツの内積の和を統合し、それにより、自己交差及び/又は2つ以上のパーツの交差をなくし、それにより、有効なプリント可能3Dモデルを生成する
ように構成される、サブシステムと、
c)有効なプリント可能3Dモデルをプリントする3Dプリンタと、
を備える。
【0049】
機械により実行可能であり、1つ又は複数の3D物体の非一貫性3D(三次元)モデルを有効なプリント可能3Dモデルに変換する命令のプログラムを明確に具体化する機械可読のプログラム記憶装置であって、方法は、
a)入力モデルファイル及び/又はモデラーデータを受信して、1つ又は複数のパーツを有する入力3Dモデルを生成するステップと、
b)入力3Dモデルを解析し、1つ又は複数の非一貫性をなくすステップと、
c)3Dモデルの1つ又は複数のパーツを、その機能を保ちながら厚化させるステップと、
d)1つ又は複数のパーツの内積の和を統合し、それにより、自己交差及び/又は2つ以上のパーツの交差をなくし、有効なプリント可能3Dモデルを生成するステップと、
を含む、プログラム記憶装置。
【0050】
本発明の特定の実施形態によれば、3Dプリンタでプリント可能な建築構造の表現を生成するコンピュータ化された方法も提供され、この方法は、建築構造の多面体を含む建築モデルを提供するステップと、プロセッサを使用して、多面体のうちの少なくとも1つと、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップと、結合された出力多面体を使用して、3Dプリンタでプリント可能な建築構造の表現を生成するステップと、を含む。
【0051】
さらに、本発明の特定の実施形態によれば、方法は、ミンコフスキー加算するステップの前に、多面体の中からの各非凸多面体を凸多面体に分解するステップを含み、ミンコフスキー加算するステップは、少なくとも1つの凸多面体と、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップを含む。
【0052】
さらに本発明の特定の実施形態によれば、方法は、3Dプリンタで表現をプリントするステップも含む。
【0053】
さらに本発明の特定の実施形態によれば、分解するステップは、多面体の中からの各非凸多面体を三角形以外の凸多面体に分解するステップと、少なくとも1つの個々の非凸多面体への試みに失敗した場合、個々の非凸多面体をポリゴンに分解し、ポリゴンを結合するステップと、を含む。
【0054】
本発明の特定の実施形態によれば、入力ジオメトリを3Dプリント可能モデルに変換するコンピュータ化された3Dプリントシステムも提供され、このシステムは、多面体と単純で小さな凸形状とのミンコフスキー和を計算し、それにより、3Dプリント可能モデルを生成するように動作可能なプロセッサを含むミンコフスキー加算器と、3Dプリント可能モデルを表現する出力を生成するように動作可能な出力生成器と、を備える。
【0055】
さらに本発明の特定の実施形態によれば、少なくとも1つの凸多面体は凸多面体のすべてを含む。
【0056】
さらに本発明の特定の実施形態によれば、上記形状は単純で小さな凸形状を含む。
【0057】
さらに本発明の特定の実施形態によれば、上記形状は立方体を含む。
【0058】
さらに本発明の特定の実施形態によれば、上記立方体は、例えば、1mm×1mm×1mmの立方体を含む。
【0059】
本発明の特定の実施形態によれば、コンピュータ可読プログラムコードが内部に具体化されたコンピュータ使用可能媒体を備えるコンピュータプログラム製品も提供され、コンピュータ可読プログラムコードは、実行されて、3Dプリンタでプリント可能な建築構造の表現を生成する方法を実施するように構成され、方法は、建築構造の、多面体を含む建築モデルを提供するステップと、多面体のうちの少なくとも1つと、サイズがプリンタの性能を表す別の形状とをミンコフスキー加算するステップと、結合された出力多面体を使用して、3Dプリンタでプリント可能な建築構造の表現を生成するステップと、を含む。
【0060】
さらに本発明の特定の実施形態によれば、ポリゴンのうちの少なくともいくつかは三角形である。
【0061】
さらに本発明の特定の実施形態によれば、方法は、ミンコフスキー加算により生成されるミンコスフスキー和のうちの少なくともいくつかを結合し、それにより、少なくとも1つの結合出力多面体を生成するステップも含む。
【0062】
さらに本発明の特定の実施形態によれば、分解の結果である凸多面体の各集合のミンコフスキー和のみが結合される。
【0063】
本発明の特定の実施形態によれば、3Dプリントのために建築モデルを準備するシステムも提供され、このシステムは、少なくとも1つのミンコフスキー和計算を使用して、建築モデルを修復する修復器を備える。
【0064】
さらに本発明の特定の実施形態によれば、修復はモデルの少なくとも1つの小さなギャップを修復することを含む。
【0065】
さらに本発明の特定の実施形態によれば、修復は少なくとも1つの欠落面を修復することを含む。
【0066】
コンピュータ可読プログラムコードが内部に具体化された、通常は有形のコンピュータ使用可能媒体又はコンピュータ可読記憶媒体を備えるコンピュータプログラム製品も提供され、コンピュータ可読プログラムコードは、実行されて、本明細書に示され説明される方法のうちの任意又はすべてを実施するように構成される。本明細書に示され説明される計算ステップのうちの任意又はすべてをコンピュータで実施し得ることが理解される。本明細書における教示による動作は、所望の目的のために特別に構築されたコンピュータ又はコンピュータ可読記憶媒体に記憶されたコンピュータプログラムにより所望の目的のために特別に構成される汎用コンピュータにより実行し得る。
【0067】
本明細書に示され説明される任意の方法及び装置により使用又は生成される情報等の情報の処理、例えば、コンピュータ画面若しくは他のコンピュータ出力装置への表示、記憶、受け入れを行うために、任意の適したプロセッサ、ディスプレイ、及び入力手段を使用することができ、上記プロセッサ、ディスプレイ、及び入力手段は、本発明の実施形態のうちのいくつか又はすべてによれば、コンピュータプログラムを含む。本明細書に示され説明される本発明の任意又はすべての機能は、処理に使用される、汎用又は特別に構築された従来のパーソナルコンピュータプロセッサ、ワークステーション、又は他のプログラム可能な装置、又はコンピュータ、又は電子計算装置と、表示のためのコンピュータディスプレイ画面、及び/又はプリンタ、及び/又はスピーカーと、光ディスク、CDROM、磁気光学ディスク、又は他のディスク等の機械可読メモリと、記憶のためのRAM、ROM、EPROM、EEPROM、磁気カード、光学カード、又は他のカードと、受け入れるためのキーボード又はマウスとにより実行することができる。上記で使用される「プロセス」という用語は、例えば、コンピュータのレジスタ及び/又はメモリ内で発生又は存在し得る物理的、例えば、電子的な現象として表現されるデータの任意の種類の計算、又は処理、又は変形を含むことが意図される。プロセッサという用語は、単一の処理ユニット又は複数の分散した若しくは遠隔のそのようなユニットを含む。
【0068】
上記装置は、任意の従来の有線又は無線デジタル通信手段を介して、例えば、有線又はセルラ電話回線又はインターネット等のコンピュータネットワークを介して通信し得る。
【0069】
本発明の装置は、本発明の特定の実施形態によれば、命令プログラムを含むか、又は記憶する機械可読メモリを含むことができ、命令は、機械により実行されると、本明細書に示され説明される本発明の装置、方法、特徴、及び機能のうちのいくつか又はすべてを実施する。代替又は追加として、本発明の装置は、本発明の特定の実施形態によれば、任意の従来のプログラミング言語で書くことができる上記のようなプログラムと、任意選択的に、本発明の教示により任意選択的に構成又は起動可能な汎用コンピュータ等であるが、それに限定されない、プログラムを実行する機械とを含み得る。本明細書に組み込まれる任意の教示は、どこであろうとも、物理的な物体又は物質を表す信号に対して適宜動作し得る。
【0070】
上記で参照された実施形態及び他の実施形態を次項で詳細に説明する。
【0071】
テキスト又は図面内に現れるいずれの商標も、その所有者の所有物であり、本明細書では、本発明の実施形態をいかに実施し得るかの一例を説明又は例示するためだけに現れる。
【0072】
別途明記しない限り、以下の考察から明らかなように、本明細書の考察全体を通して、「処理」、「計算」、「推定」、「選択」、「ランク付け」、「等級付け」、「算出」、「特定」、「生成」、「再評価」、「分類」、「生成」、「生産」、「ステレオマッチング」、「登録」、「検出」、「関連付け」、「スーパーインポーズ」、「取得」等の用語の利用が、計算システムのレジスタ及び/メモリ内の電子的数量等の物理的数量として表現されるデータを処理し、且つ/又は変形して、計算システムのメモリ、レジスタ、又は他のそのような情報記憶装置、伝送装置、又はディスプレイ装置内の物理的数量として同様に表現される他のデータにするコンピュータ、又は計算システム、又はプロセッサ、又は同様の電子計算装置の動作及び/又はプロセスを指すことが理解される。「コンピュータ」という用語は、非限定的な例として、パーソナルコンピュータ、サーバ、計算システム、通信装置、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)及び他の電子計算装置を含むデータ処理性能を有する任意の種類の電子装置を包含するものとして広く解釈されるべきである。
【0073】
本明細書は、単に明確にするために、特定のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、個々の製品等に固有の用語で説明され得る。この用語は、例として動作の一般原理を明確且つ簡潔に伝えることが意図され、本発明の範囲をいかなる特定のプログラミング言語、オペレーティングシステム、ブラウザ、システムバージョン、又は個々の製品にも限定することを意図しないことが理解されよう。
【0074】
本明細書に別個に列挙される要素は、別個の構成要素である必要はなく、代替として、同じ構造であってもよい。
【0075】
本明細書に説明されるステップのうちのいくつか又はすべては、とりわけコンピュータプロセッサを利用し得る。
【0076】
本発明を理解し、本発明をいかに実施し得るかを見るために、特定の実施形態を添付図面を参照して、単に非限定的な例として説明する。
【図面の簡単な説明】
【0077】
【図1】図1は、プリントすべきモデルを比較的薄い水平断面に変形し、それから、プリントが完了するまで連続する層を作成する従来技術による3Dプリント技術の概略図である。
【図2】図2は、本発明の実施形態による、3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形(変換)するシステムの概略図である。
【図3】図3は、本発明の実施形態による、3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形する方法のフローチャートである。
【図4A】図4Aは、本発明の実施形態による自己交差モデルの概略図である。
【図4B】図4Bは、本発明の実施形態により適切な辺の導入を通してT頂点をなくすことの概略図である。
【図4C】図4Cは、本発明の実施形態により、欠落している四辺形を追加することにより水密モデルを形成することの概略図である。
【図4D】図4Dは、本発明の実施形態により、誤った向きのポリゴンを反転させることにより水密モデルを形成することの概略図である。
【図5A】図5Aは、本発明の実施形態により、修復ステップ中、単一の三角形を、上と下の三角形との距離をゼロにしながら、ゼロ容積の角柱に変換することの概略図である。
【図5B】図5Bは、本発明の実施形態による膨張動作の概略図である。
【図5C】図5Cは、本発明の実施形態による薄いパーツを含む階段に適用される一般的な厚化動作の概略図である。
【図6A】図6Aは、本発明の実施形態による位相幾何学的特異点を含むモデルの概略図である。
【図6B】図6Bは、本発明の実施形態により、ステッチング動作が適用され、それにより、位相幾何学的特異点をなくすモデルの概略図である。
【図7】図7は、本発明の実施形態によるメッシュを有する2つの水密壁を統合することの概略図である。
【図8】図8は、本発明の実施形態による、STLファイル形式を表示し、ユーザが3Dプリントすべきモデル物体を制御し選択できるようにするサンプルGUIの図である。
【図9A】図9A及び図9Bは一緒に解釈されて、本発明の実施形態により動作可能な三次元物体モデルのプリントを可能にする方法の簡略化されたフローチャート図を形成する。
【図9B】図9A及び図9Bは一緒に解釈されて、本発明の実施形態により動作可能な三次元物体モデルのプリントを可能にする方法の簡略化されたフローチャート図を形成する。
【図10】図10は、図9Aのステップ900の実行に適した適応分解方法の簡略化されたフローチャート図である。
【図11】図11A及び図11Bは、図9A、図9B、及び図10の方法を使用した処理前後の壁の平面図である。
【図12】図12は、本発明の実施形態の実施態様例の図である。
【図13】図13は、図12の図に対応する擬似コードである。
【発明を実施するための形態】
【0078】
説明を簡易かつ明確にするために、図に示される要素が必ずしも一定の縮尺で描かれているわけではないことが理解されよう。例えば、明確にするために、いくつかの要素の寸法は、他の要素と比較して誇張され得る。さらに、適切であると考えられる場合、参照番号は図の間で繰り返されて、対応又は類似する要素を示し得る。
【0079】
別途明記しない限り、以下の考察から明らかなように、本明細書の考察全体を通して、「処理」、「計算」、「算出」、「特定」等の用語の利用が、データを処理し、且つ/又は変換して他のデータにするコンピュータの動作及び/又はプロセスを指し、データが、例えば、電子的数量等の物理的数量として表現されることが理解されよう。「コンピュータ」という用語は、非限定的な例として、パーソナルコンピュータ、サーバ、計算システム、通信装置、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、及び他の電子計算装置を含むデータ処理性能を有する任意の種類の電子装置を包含するものとして拡大して解釈されるべきである。本明細書における教示による動作は、所望の目的のために特別に構築されたコンピュータ又はコンピュータ可読記憶媒体に記憶されたコンピュータプログラムにより所望の目的のために特別に構成される汎用コンピュータにより実行し得る。
【0080】
本発明の実施形態によれば、システム200(図2)により生成されるモデルは、有効なプリント可能モデル又は略してプリント可能モデルと呼ばれる。一般に、プリント可能モデルは、様々なプリント装置により課される事前定義される要件セットを満たす。異なるプリント装置は、異なる技術に基づくため、異なる要件セットを課す。本発明によれば、システム200は、比較的大きなプリント装置セットを満たし、建物及び景観等の様々な建築モデル並びに科学的視覚化及び物理的シミュレーション等の他の多くの分野に見られるモデルを処理する。
【0081】
簡潔にするために、以下の本発明の詳細な説明は主に、3Dプリントに使用されるモデルに関連する。しかし、3Dプリントのみに限定されるものとして考えられるべきではなく、本発明は、破損したモデルの修復及び組み立て計画の非一貫性の除去等に関連することもできる。
【0082】
図2は、例えば、ポリゴンメッシュ(例えば、非多様体メッシュ、交差三角形、T字形接合部を有するメッシュ等)として表現される3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形(変換)する、本発明の実施形態によるシステム200の概略図である。本発明の実施形態によれば、従来のソフトウェアモデリングツール(例えば、AutoCad(登録商標)及びRevit(登録商標))のユーザ(例えば、建築家)は、建物、景観等の物体の3Dモデルを作成する。そのような各ツールにより作成される(デジタル)モデルは、3Dの個々の任意のパーツ(例えば、壁、階段、及び屋根)と、3D空間でのそれぞれの対応する位置(すなわち、並進移動及び向き)とを備える。いくつかの従来のファイル形式が、モデルを記憶するためにこれらのモデリングツールにより使用される(例えば、STL(ステレオリソグラフィ)及びPLY(ポリゴン)ファイル形式)。これらのモデリングツールのいくつかでは、第三者の開発者がメインアプリケーションを拡張し、一般に「プラグイン」と呼ばれる他のコンピュータプログラムを通して新しい特徴を提供することができる。すなわち、ホストアプリケーションは、プラグインがそれ自体をホストアプリケーションに登録する方法を含め、プラグインが使用できるサービスと、プラグインとデータを交換するためのプロトコルとを提供する。本発明の実施形態によれば、サブシステム215は、独立したアプリケーション又はプラグインのいずれかであることができ、入力として、3D空間内の物体のモデルを受け入れることができる。システム200は、3D空間内の物体モデルのファイルを、対応するモデラーデータ211(例えば、メモリユニット(図示せず)から提供され、そのような物体モデルを有効なプリント可能3D物体モデルに変形(変換)すると共に受信するサブシステム215と、有効な三次元物体モデルをプリントする3Dプリンタ220とを備える。本発明の実施形態によれば、モデラーデータ211は、ソリッドモデリングデータ及び/又はポリゴンスープ(ポリゴンの任意の集合)を含むことができる。
【0083】
本発明の実施形態によれば、3Dデジタルモデルは、サブシステム215により調べられて(自動的に)、破損又は非一貫性が突き止められる。1つ又は複数の破損又は非一貫性が見つかった場合、サブシステム215はそれらを修復する。次に、プリントするモデルが、プリンタ分解能に十分な厚さではない薄いパーツの厚化等の対応する動作を適用することにより準備される(自動的に)。機能的なパーツ(例えば、階段等)も識別され、次に、専用厚化動作が適用され、それにより、それらの機能性を保持する。個々のすべてのパーツは、プリント準備が整った(例えば、十分に厚く、「空中に浮遊」しない)後、統合され、交差をなくし、場合によっては特異点をなくす。その結果、最終的な一貫したモデルが得られ、これは、3Dプリンタ220によりプリント(造形)することができる。本発明の実施形態によれば、システム200は、STL(ステレオリソグラフィ)、VRML(仮想現実モデリング言語)、及びX3D(3Dコンピュータグラフィックスを表現するためのXMLに基づく(拡張可能マークアップ言語)ファイル形式)ファイル形式のモデルをパーズすることが可能である。システム200は、AutoCad(登録商標)及びRevit(登録商標)等のモデラー(モデリングソフトウェア)により生成されるモデルも、それらの対応するアプリケーションプログラムインタフェース(API)を通して受け入れる。さらに、システム200は、様々な3Dプリンタによりパーズ可能であり、したがって、3Dモデルを表現するプリントの共通形式としての役割を果たすSTLファイル形式等の様々なファイル形式で有効なプリント可能モデルを生成することができる。
【0084】
本発明の実施形態によれば、システム200の入力において受信されるモデルファイル206は、破損し得るか、又は非一貫性を含み得る。個々のパーツの物理的なサイズが、3Dプリントに対して比較的小さい場合もあり、他方、含まれるすべてのパーツを有するモデル全体のサイズが、3Dプリントに対して比較的大きい場合もある。加えて、個々のパーツは、内部で互いに交差し得、又は頂点若しくは辺における境界で互いに交差し得、特異点を生じさせ得る。したがって、一連の動作がサブシステム215により適用され、入力モデル(ファイル)206を、ラピットプロトタイピング及び同様の要件を有する他の用途に使用可能なモデルに変形(変換)する。適用される一連の動作は、9フェーズ等の事前定義された数のフェーズを含むパイプラインとして実施され、フェーズのうちのいくつかは、任意選択的であり得、迂回することができる。
【0085】
本発明の実施形態によれば、システム200は、3D物体の破損又は非一貫性を有し得るデジタルモデルを、ラピットプロトタイピング(RP)とも呼ばれるプロセスである固体自由造形(SFF)を使用して自動的に構築できる物理物体のモデルに変形できるようにする。
【0086】
プリント可能モデルは、例えば、3Dプリンタ220の事前定義される要件により指定される境界ボックス内に収まらなければならない。本発明の別の実施形態によれば、モデルが境界ボックスよりも相対的に大きい場合、縮小するか、又は境界ボックスでクリッピングしなければならない。
【0087】
図3は、3D物体の破損し非一貫性を有し得るモデルを有効なプリント可能モデルに変形する、本発明の実施形態による方法のフローチャート300である。この実施形態によれば、方法は、例えば、示されるように適宜順番付けられた以下のステップ:インポート305、修復315、スケーリング320、厚化(膨張)325、支持340、選択(クリッピング)345、統合350、特異点除去360、及びエクスポート365、のうちのいくつか又はすべてを含み、ステップのうちのいくつかは、任意選択的であり、迂回することができる(支持ステップ340及び特異点除去ステップ360等)。ステップ305において、モデルデータがインポートされる。モデルを表す入力モデルファイル206(図2)は、サブステップ306においてSTL等のサポートされるファイル形式をパーズすることにより得られるか、又はデータは、モデリングアプリケーションAPI(アプリケーションプログラミングインタフェース)を通して、ステップ307においてモデリングアプリケーションから直接得られる。ステップ315において、(物体)モデルが受信され、解析され、非一貫性(もしあれば)が除去される。このために、閉2D多様体(互いに交差し得る)が生成される。この動作は修復と呼ばれる。次に、ステップ320において、モデルは、ユーザの選択に従って、3Dプリンタ220(図2)により定義される境界ボックス内に収まるように自動的に、又はユーザ提供のスケーリング係数により手動でスケーリングされる。このために、モデルの特徴の座標が現実世界座標にマッピングされる。この結果、当然ながら、それでもなお、3Dプリンタ220により定義される建物容積からはみ出るため、所与の3Dプリンタ220(図2)による造形(プリント)には比較的大きなモデルが生成され得る。ステップ330において、独立したビューアを使用して、各フェーズの出力、特に最終出力を閲覧(且つ必要であればセットアップ/調整)することができ、出力は個々に3Dプリンタ220(図2)に送信することができる。ユーザは、異なる種類のモデル物体の膨張を可能にすること、1つ又は複数の個々の(サブモデル)要素をプリントするか否かを判断すること、3Dプリンタ220を選択すること、スケーリング係数を選択すること等のシステム200の対応する構成を実行することができる。次に、ステップ325において、薄いパーツの厚化等の動作を適用し、パーツの機能性をさらに考慮(保持)することにより、モデルの3Dプリントへの準備が整う。その後、ステップ340において、モデルは、例えば、支持梁を追加して、2つ以上の分離した構成要素を接続することにより、物理的解析に基づいて変更され、単体の接続されたモデルを形成する。その後、選択ステップ345が適用され、このステップにおいて、3Dプリントすべき1つ又は複数のモデルパーツが選択される。このステップは、選択された3Dポインタにより定義される境界ボックスから完全又は部分的にはみ出たパーツの自動却下で開始される。個々のパーツの手動選択も同様にサポートされる。ビューアを使用して、ユーザの選択を実行する。ビューアは、却下パーツとは異なるように選択パーツをレンダリングした状態で全体モデルを表示し、2つの相補的な部分集合を区別する。2つの部分集合のレンダリングは、ユーザにより別個に制御される。ステップ350において、ステップ340において生成されたソリッドパーツ(又は複数のパーツ)の内積の和が統合され、それにより、自己交差及び異なるパーツ間の交差がなくなる。次に、ステップ360において、特異点をモデルからなくす。すなわち、特異的な頂点及び辺が識別され、削除され、それにより、単体の(特異点のない)多様体が生成されるか、又はモデルがステッチングされて、いくつかの実質的に分離した2D多様体が生成される。最後に、ステップ365において、モデルはエクスポートされる。モデルは、サポートされるファイル形式でモデルを表現する出力モデルファイルで記憶するか、又はステップ370において、3Dプリンタ220(図2)に送信することができる。
【0088】
本発明の実施形態によれば、ユーザは、ビューアを使用して上記ステップの各ステップの出力を観察し、ビューアは、ユーザにより制御される様々なビューからモデルを三次元でレンダリングすることができるインタラクティブソフトウェア構成要素である。ステップ305中の解析動作では、比較的多くの計算時間が必要であり得るため、ユーザはその複雑性を制御することができる。したがって、デフォルトにより、低複雑性解析を実行することができる。ユーザは、例えば、ステップ315において適用される修復プロセスの結果を閲覧することもできる。破損又は非一貫性が残っており、ユーザにより観察される場合、高複雑性解析を適用することができる。本発明の実施形態によれば、ステップ305の結果は、アーチファクトを略含まない1つ又は複数の閉2D多様体を含む有効なモデルである。しかし、2D多様体は破損し、互いに交差している可能性があり得る。
【0089】
本発明の実施形態によれば、修復(ステップ315において適用される)は、3Dソリッドの一貫したモデルの再構築を可能にすると共に、ポリゴンの任意の集合(ポリゴンスープ)からの、適切なソリッドパーツを画定する境界表現の取得を可能にする。非有向3D多様体(例えば、クラインの管)及び非閉2D多様体(例えば、メビウスの輪)は、適切なソリッドを画定しないため、不当な入力を含む。
【0090】
本発明の実施形態によれば、入力モデル(例えば、STLファイルにより提示される)を自動的に修復する異なる方法(技法)セットが提供される。これらの方法は、効率と品質とをトレードオフすることができ、例えば、最も効率的な戦略をデフォルトで使用することができる。ユーザは、結果を見て、結果が満足のいくものになるまでモデルの再処理を要求することが可能であり得る。したがって、インポートステップ305の結果は、互いに交差するアーチファクトが略ない1つ又は複数の閉2D多様体を含む有効なモデルであることができる。比較的高品質のモデルを得る方法は、非一貫性が略ないモデルを生成することができ、このために、T.M.Murali等(「Consistent Solid and Boundary Representations from Arbitrary Polygonal Data Computer Graphics」,Proceedings of the 1997 Symposium on Interactive 3D Graphics,Providence,pages 155−162,1997という名称の記事において)により紹介された技法を実施することができる。この技法によれば、空間は、入力ポリゴンを支持する平面により分離される凸多面体領域に分割される。ソリッド領域は、領域の境界の不透明度に基づく規則:1)大半が透明な境界を共有する2つの隣接するセルは、同じソリッド性を有する(すなわち、一方がソリッドである場合、他方もソリッドである)可能性が高く、2)大半が不透明な境界を共有する2つの隣接するセルは、逆のソリッド性を有する(すなわち、一方がソリッドである場合、他方はソリッドではない)可能性が高く、3)境界のないセル(すなわち、点を無限遠で含む、外部にあるセル)はソリッドではない、から導出される一次式系を解くことにより識別される。ソリッド領域が識別されると、交差、同一平面上のポリゴン、又は接続されていないポリゴンのない一貫したソリッドモデル及び境界表現を出力することができる。
【0091】
本発明の実施形態によれば、平面グラフに一般に知られているオイラーの公式を利用する解析が、各モデルパーツに独立して適用される。v、e、及びfが各パーツの頂点、辺、及び面のそれぞれを示すものとする。そうすると、式v+f=e−2が保たれなければならない。比較的あまり時間がかからない修復戦略は通常、以下のように進められる。まず、同一の三角形、劣化した三角形/辺等の同一の特徴及び劣化した特徴が削除される。次に、ε閉特徴が統合され、辺を分割することにより、T字形接合部がなくなる。そのような分割は、元のポリゴンに取って代わる2つのポリゴンをもたらす。
【0092】
地形は地面の垂直寸法である。地形は通常、地形特徴の高さに関して表され、単面に関係する辺を境界とする非多様体2D表面により表される。単面に関係する辺を境界とする3D空間内の非多様体2D表面は、地形を表すか、又は単に、ゼロ容積パーツの不完全な表現を含む。修復フェーズはそのような表面を識別する。地形表面はそのようにして分類され、壁等の物体の不完全な表現は修復される。残りの表面は削除される。そのような表面の修復動作により、逆向きの2D表面及び境界に沿った1D(一次元)表面がもたらされることになる。これにより、厚化ステップ325により処理可能なゼロ容積パーツが生成される。
【0093】
本発明の実施形態によれば、モデルが3Dプリンタの要件(構成)を満たすには相対的に大きなモデルである場合、モデルを縮小するか(ステップ320)、又は例えば、プリンタの事前定義される要件により指定される境界ボックスでクリッピング(ステップ345)しなければならない。スケーリング動作は、モデルの特徴の座標を現実世界の座標にマッピングする。さらに、クリッピング動作は、モデルを構成するパーツの中から、境界ボックス内に全体的に含まれるパーツのみを選択する。本発明の実施形態によれば、スケーリング動作は、結果として生成されるモデルが不十分な厚さのパーツを含み得るため、厚化ステップ325の前に適用される。本発明の別の実施形態によれば、クリッピング動作は、統合ステップ350の前に適用され、個々のパーツの手動選択をサポートすることもできる。ビューアを使用して(ステップ330において)、ユーザの選択を実行する。例えば、ビューアは、選択されたパーツを選択されていないパーツとは別様にレンダリングして、2つの相補的な部分集合を区別した状態でモデル全体を表示することができる。2つの部分集合のレンダリングは、ユーザにより別個に制御することができる。
【0094】
本発明の実施形態によれば、厚化・膨張ステップ325中、モデルの各パーツが解析されて、このパーツが3Dプリントに十分な厚さであるか否かが判断される。十分な厚さではない場合、パーツは、結果として生成されるパーツが十分な厚さになるように変更される。無差別的な厚化は、機能の観点から元のモデルに一致しない歪んだモデルを生成し得る。したがって、専用の手続きが、パーツの機能を保ちながら、識別されたパーツの所定の群に適用される。CADモデルは、壁、窓、階段、マリオン、屋根、床、地形等の異なるタイプのパーツを含む。異なるタイプのパーツは、作成される間に分類される。分類が保存される場合、ステップ325において、本発明の実施形態による新規の厚化方法(アルゴリズム)が適用される。本発明の別の実施形態によれば、厚化ステップを2回適用して、従来の3Dプリンタ220(図2)により課される2つの異なる対応する厚化基準を満たすことができる。第1の基準によれば、すべてのパーツは垂直方向で十分な厚さを有する必要がある。これは垂直厚化と呼ぶことができる。水平厚化と呼ばれる第2の基準によれば、すべてのパーツは、XY平面に含まれるすべての方向で十分な厚さを有する必要がある(X及びYは座標系内の軸である)。一般に、垂直厚化動作及び水平厚化動作は、2つの様式で異なる。第1に、垂直厚化は、一方向を処理するため、比較的あまり複雑ではない。第2に、膨張は、パーツの特定の群に対して垂直方向に沿って適用される。tv及びthが垂直(層)及び水平最小厚さ(事前定義される値を有する)のそれぞれであると仮定する。厚化動作は、例えば、説明されるように適宜順序付けられた以下のサブステップのうちのいくつか又はすべてを含む。第1に、すべてのパーツは凸サブパーツ(プロトタイプ)に分解され、多くの場合、入力モデル(ファイル)は既に凸サブパーツを含む。第2に、各サブパーツの幅が計算される。次に、幅がtvよりも小さなサブパーツは、垂直方向に沿って厚化され、水平幅がthよりも小さなサブパーツは、適切な水平方向に沿って厚化される。サブパーツが不十分な厚さとして識別される場合、その境界の1つ又は複数の面は、境界の特徴の関連を保ちながら並進移動する。所与の距離dに沿った厚化により、特徴はd方向に並進移動することになる。3つのタイプの厚化動作、すなわち、スケーリング、膨張、及びオフセットがある。Pがパーツであり、wv及びwhがPの垂直幅及び水平幅のそれぞれであると仮定する。垂直幅の方向に向けられた正規化ベクトルはdv=(0,0,1)である。水平幅の方向に向けられた正規化ベクトルがdh=(dx,dy,0)であると仮定する。Pがスケーリングを使用して厚化する場合、以下の1つ又は複数の事前定義される基準(スケーリング係数)が使用される。垂直厚化が適用される場合、パーツはz次元のみにスケーリングされる。適用されるスケーリング係数は、所望の幅と幅との比率、すなわち、tv/wvである。水平厚化が適用される場合、パーツはx次元及びy次元においてスケーリングされる。x及びyスケーリング係数はdx・th/wh及びdy・th/whのそれぞれである。これにより、拡大が最小であるが、それでも十分な厚さのパーツを生成する。
【0095】
fが、幅方向に直交する平面により支持される特徴であり、Fがf、fの関連特徴、及びそれらの特徴に関係する頂点を含む集合であると仮定する。fが面である場合、Fはその面と、fの境界上のすべての頂点及び辺とを含む。fが辺である場合、Fはその辺と、2つの関係する面と、これらの関係する2つの面の境界上のすべての頂点及び辺とを含む。fが頂点である場合、Fはその頂点と、頂点に関係するすべての面と、関係するこれらの面の境界上のすべての頂点及び辺とを含む。Pが膨張を使用して厚化する場合、F内の特徴は、幅要件を満たすように並進移動する。F内の特徴は、垂直厚化及び水平厚化のそれぞれで幅方向に向けられた長さ(tv−wv)及び又は(th−wh)のベクトルにより並進移動する。続けて、モデル全体が、図5B(パーツ520及び525)に概略的に提示されるように調整される。Pがオフセットを使用して厚化される場合、F内のすべての特徴の支持平面は、垂直厚化及び水平厚化のそれぞれで幅方向に向けられた長さ(tv−wv)及び又は(th−wh)のベクトルにより並進移動する。
【0096】
プロトタイプの幅は、プロトタイプとプロトタイプの同一コピーとの侵入深さであり、侵入深さは、原点と、プロトタイプと原点を通るその反射とのミンコフスキー和との最小距離である(例えば、E.BerberichによりMathematics in Computer Science,Springer,2009に提出された「Arrangements on Parametric Surfaces II:Concretization and Applications」という名称の記事に提示されるように)。
【0097】
2つのプロトタイプP及びQのミンコフスキー和の正規マップは、Pの正規マップとQの正規マップとの球形オーバーレイである。プロトタイプP毎に、Pの正規マップ及びその反射の正規マップが計算される。次に、2つの正規マップのオーバーレイが計算され、Pとその反射とのミンコフスキー和の正規マップが得られる。その後、ミンコフスキー和の面が得られる。最後に、原点と面との垂直距離及び水平距離が計算される。垂直距離及び水平距離が、tv及びthのそれぞれよりも小さい場合、本発明の実施形態によれば、厚化動作(例えば、スケーリング、膨張、及びオフセット)のうちの1つが、距離基準を満たすまで適用される。垂直方向では、1回の適用で比較的十分である。しかし、水平方向での距離基準を満たすには、厚化を2回以上(すなわち、数回のループで)適用することが必要であり得る。
【0098】
本発明の実施形態によれば、入力モデル(ファイル)は、3D空間内の2D表面として表現される地形パーツを含み得る。地形表面は、非ゼロ容積を有するソリッドパーツに変換する必要がある。このために、まず、入力モデル内のすべての地形表面が識別される。通常、地形表面の分類が入力モデル内に保持される。本発明のこの実施形態によれば、修復ステップ315中に最初は地形表面として分類されなかった地形表面が識別される。地形表面が識別されると、表面頂点がXY平面に平行する平面に投影され、必要な境界ポリゴンが導入され、3Dプリントに有効な2D多様体が形成される。p(p=(px,py,pz))が、最小の頂点座標pzを有する地形表面の点であると仮定する(X、Y、及びZは座標系の軸である)。次に、z=vz−tvでの投影を含む平面を、最小垂直幅基準を満たしながら配置することができる。
【0099】
本発明の別の実施形態によれば、薄いパーツの境界への並進移動動作が屋根又は床に関連する場合、モデル全体を調整する必要がある。並進移動と調整との組み合わせられた動作は膨張と呼ばれる。一般に、膨張動作は、最小の垂直座標を有する並進移動された特徴よりも上にあるパーツの特徴に影響する厚化動作の変形と見なすことができる。したがって、膨張動作は実質的に、モデルパーツの内部間に交差を導入しない。
【0100】
本発明のさらに別の実施形態によれば、辞書編纂的にソートされたすべてのパーツのすべての点の補助データ構造が、まずz座標、次にy座標、そして最後にX座標に従って保持される。Pが不十分な厚さのパーツであり、p=(px,py,pz)が、厚化動作中に並進移動されるPのすべての点の中からの最小のz座標を有する境界上の点であると仮定する。vzが並進移動ベクトルであるとも仮定する。次に、pz以上のz座標を有するパーツのうちの略すべての点が、vzだけ並進移動する。これらの点は、補助データ構造内で比較的容易に見つけることができ、次に、関係する辺及び面が並進移動された点まで更新される。
【0101】
既知のように、一般的な厚化は、無差別に適用された場合、物体を歪ませ得る。一般的な厚化動作は、結果として生成される物体が、モデラー(例えば、建築家)により当初果たすように設計された目的にかなわない点までオペランド物体を変形させ得る。階段及びマリオンは、そのような歪みを比較的受けやすい。したがって、本発明の実施形態によれば、入力モデルが階段又はマリオンを含み、自動的又はユーザにより階段又はマリオンとして識別可能な場合、(ユーザにより制御される)専用厚化動作が適用され、専用厚化動作は、ソースと呼ばれる元のモデルパーツをターゲットと呼ばれる新しいモデルパーツで置換し、ターゲットは、(i)ソースと同じ機能を提供し、(ii)幅基準を満たす。このために、既製の3Dプリント可能パーツの比較的大きなデータベースが作成され、3Dプリント可能パーツの機能に従って分類される。パーツの候補ペア(除去すべきソースパーツ及びソースパーツに代えて挿入すべきターゲットパーツ)は、本発明の実施形態により、システム200(図2)により自動的に示唆することができる。システム200では、ユーザは候補を追加又は削除することができ、ユーザは、都合のよいインタラクティブな選択を行うために、ビューアを使用してターゲットパーツをオーバーライドすることもできる。ペアが認証されると、(特定のソースパーツとターゲットパーツとの置換が認可され、ソースパーツの境界ボックスが計算され、ターゲットパーツは境界ボックス内に収まるようにクリッピングされ、最後に、スケーリングされたターゲットパーツがソースパーツに代えて挿入される。
【0102】
本発明の実施形態によれば、入力モデルは、比較的良好に支持されないパーツ又は「空中に浮遊する」パーツを含み得る。本発明のこの実施形態によれば、そのような入力モデルの造形(プリント)は、以下の2ステップを達成することにより可能にし得る。第1のステップ中、各パーツの層は、各層の特定の個片が固化する間に、首尾良く積層される。第2のステップ中、固化しなかった個片が洗浄されて除去される(これらの両ステップは図3において支持ステップ340として示されるものと思われる)。浮遊パーツと呼ばれる比較的良好に支持されないパーツは分離され、原点及び残りのパーツに対する位置を失う。したがって、そのような浮遊パーツが識別される。浮遊パーツ毎に、浮遊パーツを支持する新しいパーツの導入が提供される。支持パーツは、一方では、浮遊パーツの重心に接続され、他方では、ある方向において光線に直面する第1のパーツに接続される。撮影方向として、負の垂直方向をデフォルトで使用し得る。
【0103】
本発明の実施形態によれば、モデルはさらに、3Dプリンタ220により定義される建築容積、通常、主軸に位置合わせされたボックス内に収まらないことがある。本発明の実施形態によれば、建築容積は、プリントすべきすべてのパーツを含む必要がある。建築容積から完全又は部分的にはみ出るすべてのパーツは、自動的に却下し得る。デフォルトにより、完全に建築容積内部にあるすべてのパーツがプリントに選択されることに留意されたい。加えて、ユーザは、閲覧ステップ330において、例えば、建築容積からはみ出るパーツを3Dプリントに選択できないという条件下で、ビューアを利用して手動選択を適用することができる。システム200は、選択ステップ345中に適用される細分動作もサポートし、この動作では、3Dプリントすべきパーツが選択される。ユーザは、モデルを構成するパーツの集合をいくつかの(分離した)部分集合に細分するようにシステムに要求することができる。これは、モデルが全体的に建築容積内に含まれない場合に有用になり得る。さらに、自動ツールが、モデルを、独立して造形(プリント)可能なサブモデルに分割することができる。ユーザは、ビューアを利用してパーツをある部分集合から別の部分集合に移すことができる。次に、異なる部分集合を独立して処理し得る。
【0104】
本発明の実施形態によれば、修復ステップ315から出力されるモデルは、アーチファクトが略ない水密のパーツを含む。しかし、パーツが交差し、その和が閉2D多様体を表さない場合がある。加えて、厚化ステップ325は交差の数をさらに増大させる恐れがある(モデルパーツの境界間の交差を内部間の交差で置換もする恐れもある)。したがって、パーツの内部間の交差は統合ステップ350において除去され、統合ステップ350は、本発明の実施形態により、異なる特徴を有する2つの方法を利用し得る。第1の方法は、従来技術による双対マーチングキューブ(DMC:dual marching cubes)アルゴリズムの拡張であり(「Dual Marching Cubes:Primal Contouring of Dual Grids」,Computer Graphics Forum,volume 24,number 1,pages 195−201,2005)という名称の記事においてS.Schaefer等提示されるような)、第2の方法は、「Partitioning Polyhedral Objects into Non−Intersecting Parts」,IEEE Computer Graphics and Applications,volume 8,number 1,pages 53−67,1988という名称の記事においてM.Segalにより紹介される従来技術による技法の実施である。
【0105】
双対マーチングキューブアルゴリズムは、物体(パーツ)の周囲に適応容積分割(8分木)を構築するように動作可能であり、マーチングキューブ(MC)アルゴリズムを8分木に適用することに代えて、双対グラフが構築され、次に、マーチングキューブアルゴリズムが双対グラフに適用される。DMCアルゴリズムは、入力表面により近い出力の生成が可能である。加えて、DMCアルゴリズムは容積関数を必要とし、容積関数の値は、密度情報又は表面までの距離を表す。本発明のこの実施形態によれば、従来の双対マーチングキューブアルゴリズム(方法)は、等値面関数に代えて非一貫性メッシュを処理するように拡張され、3Dプリントに適した単一の有効メッシュを生成する。換言すれば、双対マーチングキューブアルゴリズムは2D多様体メッシュに適用され、メッシュの和である単一の閉2D多様体面が作成される。マーチングキューブアルゴリズムはボクセル(容量ピクセル)(メッシュの集合には定義されない)の角に距離フィールド(等値面)を必要とし、MCアルゴリズムは双対グラフに適用されるため、8分木(各ノードが最高で8つの「子」を有するツリーデータ構造)内のボクセル毎に双対点及び値を有する必要がある。双対点は入力表面上に配置され(例えば、単一平面がボクセルを通る場合、その平面がボクセル内の唯一の特徴であるとき、双対点はその平面又は頂点に配置される)、値は比較的小さな負の値に設定される。次に、本発明の実施形態によれば、最大深度に達し、ボクセルがなお細分を必要とする場合、レイトレーシングを使用して、ボクセルの中心が入力ボリュームの内部にあるか、それとも外部にあるかを判断することができ、値はそれに従って設定される。「レイトレーシング」は、システムを通る波又は粒子の経路を計算する周知の従来の方法である。比較的小さな負の値が使用される理由は、これにより、入力表面に比較的近い出力表面を有することができるためである。
【0106】
本発明の別の実施形態によれば、結合ステップ350から生じるモデルは、位相幾何学的特異点を含み得る。したがって、ステップ360において、そのような特異点をポリゴンの非多様体集合からなくして、多様体ポリゴン面を作成する。モデルの特異点をなくすこのステップは、特異点を有するモデルが一般にプリント可能であるため、任意選択的である。他方、多くの場合、連結されない構成要素を有さないモデルを有することが望まれる。特異点をなくすステップ360は、例えば、IEEE Transactions on Visualization and Computer Graphics,volume 7(2),pages 136−151,2001に発表された「Cutting and Stitching:Converting Sets of Polygons to Manifold Surfaces」という名称の記事においてA.Gueziec等により紹介されるアルゴリズムに基づくことができる。モデルの特異点をなくすために、まず、特異頂点及び特異辺が識別される。次に、識別された特異頂点が乗算され、特異辺を通って切断されて、いくつかの分離した多様体ソリッドパーツが生成される。任意選択的なステッチング動作が要求される場合(例えば、ユーザにより要求される)、多様体としての表面を維持するために、境界辺が合体する。実施されるアルゴリズムの変形により、代替のプロトタイプの幅が3Dプリントに十分に大きいことを保証する。特異点は、ユーザ選択に従って禁止し得る。
【0107】
本発明の実施形態によれば、エクスポートステップ365中、出力3Dモデルは、STLファイル形式等のサポートされるファイル形式で記憶されるか、又は3Dプリンタ220(図2)に直接送信されて、造形される。サポートされるファイル形式の1つでファイルに記憶された出力3Dモデルは、任意の時間に読み取り、3Dプリンタに送信することができる。システム200(図2)の出力がいくつかのモデルを含む場合、各モデルを別個のファイルに記憶することができる。同様に、そのような各3Dモデルファイルは、任意の都合のよい時間に3Dプリンタに送信することができる。
【0108】
本発明の実施形態によれば、ビューアと呼ばれる独立したインタラクティブ構成要素により、ユーザは、ステップ300において、図3に提示されるステップのそれぞれ1つの出力を閲覧し、特定の変更を加え、デフォルト設定をオーバーライドすることができる。ビューアは、モデルを画面(ディスプレイ)上のウィンドウにレンダリングして、特定の視点から見た三次元デジタルモデルを、画面を含む2D平面上に投影する。ユーザは、視点をインタラクティブに、且つ比較的平滑に変更させることができる。ユーザは、正投影を使用するか、それとも期待投影を使用するか等の他の関連する閲覧パラメータを変更することもできる。ビューアは、ユーザが様々なシステムパラメータを設定、リセット、又はオーバーライドできるようにするグラフィカルユーザインタフェース(GUI)を備えることができる。3Dプリンタ220(図2)は、プリントすべきすべてのパーツを含む建築容積、通常は主軸に位置合わせされたボックスを定義する。ビューアは、3Dプリンタ220により課される建築容積をレンダリングし、建築容積から完全又は部分的にはみ出ているため、却下されなければならないパーツを強調表示することができる。デフォルトにより、完全に建築容積内部にあるすべてのパーツはプリントに選択される。ビューアは、プリントに選択されたパーツをレンダリングする。ビューアは、選択されていないパーツをレンダリングすることもでき、2つの完全な集合を、ユーザが選択パーツ及び非選択パーツを区別できるようにレンダリングすることができる。ビューアは、ユーザが、システム200(図2)によりなされたデフォルト選択をオーバーライドし、パーツを選択集合から非選択集合に移し、非選択集合から選択集合に移すことができる(例えば、建築容積からはみ出ており、プリントに選択できないパーツを除く)。
【0109】
本発明の別の実施形態によれば、ユーザは、モデルを構成するパーツの集合をいくつかの部分集合に細分するようにシステム200に要求することができる。これは、モデルが全体的に建築容積内に含まれない場合に特に有用になり得る。自動ツールが、モデルを、独立して造形(プリント)可能な(別個の)サブモデルに分割する。異なる集合内のパーツは別様にレンダリングされ、ユーザは、パーツをある集合から別の集合に移すことができる。次に、異なる集合は略独立してさらに処理される。ビューアにより、ユーザは、修復ステップ315の出力である「修復された」モデルを調べることができる。ユーザは、結果に満足しない場合、異なる修復戦略を選択し、修復動作の適用を繰り返すことができる。さらに、ビューアは、異なる戦略の検証方式を使用することができ、モデル内の3Dプリントに影響し得る潜在的なアーチファクトを表示することができる。ビューアにより、ユーザは、それらの潜在的なアーチファクトに印を付け、修復動作のヒントとして提供することもできる。本発明のさらに別の実施形態によれば、ビューアにより、ユーザはスケーリング係数を動的に変更することもできる。加えて、ビューアにより、ユーザは、垂直及び水平厚化基準の設定等のシステム200の多くのパラメータを変更することができる。ビューアは、ビューアがなければ一般的な厚化動作により歪み、意図される機能を失う選択パーツの制御された置換が可能である。さらに、本発明のさらに別の実施形態によれば、ビューアにより、ユーザは、ステップ370においてモデルを3Dプリンタ220に送信する前、又はステップ366において出力モデルファイルに保存する前に(ユーザは、所定の形式セットから所望の出力ファイル形式を選ぶことができる)、モデルを調べることができる。
【0110】
図4Aは、本発明の実施形態により、入力モデル内の面として現れ得る自己交差ポリゴン400の概略図である。モデルパーツ405及び410の辺「a」及び「b」は互いに交差する。右上の有界領域は画定され閉じられるが、左下の有界領域はそうではない。しらみ潰しの修復戦略がこの欠陥を修復する。特に、無効な面を含む自己交差ポリゴンはいくつかのポリゴンに分けられ、そのうちのいくつかは保持され、他は削除される。
【0111】
図4Bは、本発明の実施形態により適切な辺417の導入を通してT頂点416をなくす概略図である。
【0112】
図4Cは、本発明の実施形態により、モデル425内に欠けた四辺形426を追加することにより水密モデル425’を形成する概略図である。面を含む上のポリゴンは、左側の部分のモデルから欠けている。欠けているポリゴンが追加されて、右側の水未モデルを形成する。
【0113】
図4Dは、本発明の実施形態により、誤った向きのポリゴン431を反転させることにより水密モデル430’を形成する概略図である。ポリゴンの境界上の頂点の順は、反時計回りでなければならない。左側のパーツのモデル内の面を含む上のポリゴンの境界上の頂点は、時計回りの順である。これは、矢印432により図に示されるように、下にある平面への法線が誤って下に向けられていることを暗に示す。誤って向けられたポリゴンの境界上の頂点の順を逆にして、右側の水密モデルを形成する。
【0114】
図5Aは、本発明の実施形態により、修復ステップ315(図3)中、上の三角形511と下の三角形512との距離をゼロにしながら、単一の三角形505をゼロ容積の角柱に変換する概略図である。上の三角形511及び下の三角形512は、図5Aでは、明確にするために隔てられている。この図は、地形データの処理を示す。地形は地面の垂直寸法であり、通常、地形特徴の高さに関して表され、単面に関係する辺を境界とする非多様体2D表面により表される。修復ステップ315中、分離した単一の三角形505が識別され、地形として分類される。次に、逆の向きを有する三角形が、角柱510を形成する他の特徴と共に導入される。これにより、厚化ステップ325により処理可能なゼロ容積パーツになる。
【0115】
図5Bは、本発明の実施形態による、ステップ325(図3)において適用される膨張の概略図である。膨張したモデル520’は、別様にスケーリングされた箱の形状を有する2つのパーツ526’及び527’を備える(2つのパーツ526及び527を含む元の(非膨張)モデル520と同様に)。下の箱527’の上面を含む平面は、上の箱526’の下面も含む。下の箱527’は、垂直方向において不十分な厚さである。したがって、下の箱527’は垂直方向に膨張する。すなわち、上面及びそれに関連する特徴(すなわち、境界上の頂点及び辺)は、正のZ方向に沿って並進移動する。その結果、下の箱527’の上面を含む平面よりも上にあるすべての特徴も同様に並進移動する。
【0116】
図5Cは、本発明の実施形態により、一般的な厚化動作が階段530(薄いパーツからなる)に適用され、階段530’を生成する概略図である。階段530’’は、一般的に生成された階段モデル530’に代えてユーザが選択することができる代替である。階段530’’は、階段530に適用される厚化動作を拡大し、次に、元のパーツ、すなわち、階段530の境界ボックスによりクリッピングした結果であるか、又はユーザがシステム200(図2)を通してアクセスすることができる階段のデータベースから抽出されたモデルの例である。
【0117】
例えば、本発明の実施形態により、一般的な厚化動作を薄いパーツからなるマリオンモデルに適用して、隣接する窓ユニットを分割するパーツを含むマリオンモデルを生成し得る。窓は通常、3Dプリントに選択されない。一般的なスケーリングの結果は、厚い窓の仕切り及び小さな窓(高さ及び幅に関して)を含む。窓の数を減らすことを犠牲として、窓のサイズを保つことが望ましい場合がある。
【0118】
図6Aは、本発明の実施形態による、位相幾何学的特異点611及び612を含むモデル605、610、及び615の概略図である。これらのモデルは非多様体ソリッドパーツを形成する。非多様体(特異)辺611及び頂点612は、より厚いペンで描かれている。
【0119】
図6Bは、本発明の実施形態による、ステッチング動作が適用され、それにより、位相幾何学的特異点611及び612(図6A)が除去されたモデル605、610、及び615の概略図である。特異頂点611’及び特異辺612’が識別される。次に、識別された特異頂点611’及び特異辺612’に関係する頂点が乗算される。最後に、境界辺が合体して、多様体としての表面を維持する。本発明の実施形態によれば、サブシステム215(図2)により、ステッチング中、新たに導入されたプロトタイプの幅が3Dプリントに十分に大きいことが保証される。
【0120】
図7は、本発明の実施形態によれば、2つの水密壁705及び710と、例えば、Revit(登録商標)ソフトウェアにより作成されたメッシュとの統合の概略図である。本発明の実施形態によれば、従来の双対マーチングキューブアルゴリズム(方法)は、等値面関数に代えて非一貫性メッシュを処理するように拡張され、3Dプリントに適した単一の有効メッシュを生成する。換言すれば、双対マーチングキューブアルゴリズムは2D多様体メッシュに適用され、メッシュの和である単一の閉2D多様体面が作成される。マーチングキューブアルゴリズムはボクセル(メッシュの集合には定義されない)の角に距離フィールド(等値面)を必要とし、MCアルゴリズムは双対グラフに適用されるため、8分木内のボクセル毎に双対点及び値を有する必要がある。双対点は入力表面上に配置され(例えば、単一平面がボクセルを通る場合、その平面がボクセル内の唯一の特徴であるとき、双対点はその平面又は頂点に配置される)、値は比較的小さな負の値に設定される。次に、本発明の実施形態によれば、最大深度に達し、ボクセルがなお細分を必要とする場合、レイトレーシングを使用して、ボクセルの中心が入力ボリュームの内部にあるか、それとも外部にあるかを判断することができ、値はそれに従って設定される。比較的小さな負の値が使用される理由は、これにより、入力表面に比較的近い出力表面を有することができるためである。その結果、この方法をモデル715に適用することにより、3Dプリントに有効な単一の連続した2D多様体ソリッドメッシュ730が生成される。提案される方法(双対マーチングキューブアルゴリズムから拡張される)は、建築(建物、例えば、建物及び景色の3Dモデル)又は他の任意の分野に使用することができる。
【0121】
図8は、本発明の実施形態による、STLファイル形式を表示し、ユーザがモデル物体を制御し、3Dプリントすべきモデル物体を選択できるようにするサンプルGUIの図である。この実施形態によれば、例えば、STLモデルファイルを使用することにより比較的大きなモデルを3Dでプリントするには問題があり得る。したがって、モデルを2つ以上のサブモデルに自動的に分割し、各サブモデルを独立してプリントすることができる自動ツールが提示される。換言すれば、STLファイルは、それぞれが閉2D多様体メッシュを含むように、2つ以上の有効なSTLファイルに分割することができる。入力及び出力形式ファイルを表示し、STLの無効領域に印を付け、ユーザがプリントすべき1つ又は複数のパーツを選択できるようにする対応するGUI(グラフィカルユーザインタフェース)を提供することもできる。このGUIは、すべてのモデルパーツ及びSTL出力を表示することができ、したがって、建築家が、例えば、3Dプリントすべきパーツを選択できるようにする。GUIは、3Dプリントに影響し得るSTLファイル内のアーチファクト(ギャップ、交差、及び劣化/同一平面上の三角形/辺等)を表示し、建築家にこれらの特定の問題のあるパーツを変更するか、それとも3Dプリントに続くかを判断させるSTL検証ツールを備えることもできる。加えて、STLファイルは、GUIにより視覚化できるVRML等の他の形式に変換することもできる。
【0122】
例えば、デジタルモデルソリッドモデルは、本発明の実施形態により、システム200(図2)への入力として提供し、システム200により処理し、3Dプリンタ220(図2)によりプリントし、物理的なソリッドモデルを生成し得る。デジタルモデルソリッドモデルは、例えば、建築家Joseph(Yossi) Cory博士により設立された賞を獲得した建築スタジオであるGeotectura(登録商標)により設計された建築構造であり得る。ソフトウェアツールを使用して、デジタルモデルを画面にレンダリングすることができ、レンダリングツールは、デジタルモデルを含む3Dデータを2D画面上に投影する。
【0123】
図9A及び図9Bは一緒になって、本発明の特定の実施形態により動作可能な、三次元物体モデルのプリントを可能にする方法の簡略化されたフローチャート図を形成する。図9A及び図9Bの方法は通常、例えば、示されるように適宜順序付けられた以下のステップのうちのいくつか又はすべてを含む。
ステップ810:建築構造の建築三次元モデル(Revit、Sketchup、DXF/DWG、VRML、STL等)を提供する。
ステップ820:シーングラフにロードする。
ステップ830:例えば、既知の技法を使用して事前処理を行うべきか否かを判断する。
ステップ840:任意選択的に、又は用途に適切な場合、例えば、既知の技法を使用して、面の向き/法線方向の修正を実行する。
ステップ850:任意選択的に、又は用途に適切な場合、デローネイ三角形分割等の従来の技法を使用して三角形分割を行う。
ステップ860:任意選択的に、又は用途に適切な場合、例えば、従来の技法を使用して丸め/摂動処理を実行する。
ステップ870:任意選択的に、又は用途に適切な場合、例えば、従来の技法を使用して、初期分解/分割を多面体/ソリッドに対して実行する。
ステップ880:モデル内の非凸多面体毎に、凸分解を行い_それにより、各非凸多面体から凸多面体の集合を生成する。
ステップ890−
モデル内の少なくとも1つ(例えば、すべて)の凸多面体に対して、単純で小さな凸形状、例えば、立方体とのミンコフスキー和を計算し、それにより、モデル内の凸多面体毎に膨張凸多面体を生成しようとする。例えば、厳密な計算カーネルを有する市販のCGALパッケージを使用することができ、ミンコフスキー和アルゴリズム計算は通常、アルゴリズムの相違をもたらす劣化したジオメトリ及び/又はコンピュータの不十分な数値精度等の様々な制限により失敗する。したがって、通常、最高精度の計算アルゴリズム、例えば、他のカーネルよりも「厳密な計算カーネル」を有するCGALが使用される。
ステップ900:ステップ890が、特定の凸多面体に対して失敗すると予測されるか、又は失敗する場合(エラー状況又はプロセスクラッシュ)、そのような凸多面体毎に適応分解(例えば、図10による)を行う。
ステップ930:好ましくは、メモリの容量に達しつつあること(memory blow−up)を監視しながら、ステップ890において生成された膨張凸多面体を「大きく」結合しようとする。
ステップ935:任意選択的に、メモリの容量に達しつつあることが検出される場合、対処ステップを行う。
ステップ940:元の凸物体のミンコフスキー和及び元々は非凸物体の結合したミンコフスキー和を適したプリント形式、例えば、STLに変換する。
ステップ950:3Dプリンタを使用して、STL又は他の所望の形式の建築三次元構造をプリントする。
【0124】
図10は、図9A、図9Bのステップ900の実行に適した適応分解方法の簡略化されたフローチャート図である。図10の方法は通常、例えば、示されるように適宜順序付けられた以下のステップのうちのいくつか又はすべてを含む。
ステップ960−
モデルが失敗した凸多面体を表すために使用する単純な形状(例えば、三角形)毎に、単純で小さな凸形状、例えば、立方体とのミンコフスキー和を計算し、それにより、膨張三角形を生成する。
ステップ970:ステップ110において生成された膨張三角形を「小さく」結合しようとし、それにより、中空形状を得る。
ステップ975:結合ステップ120に失敗した場合、結合に使用されたCGAL。
【0125】
図9A、図9B、及び図10の方法、特にステップ880〜930は通常、様々な劣化事例を含む建築三次元モデルの処理及び従来の劣化したジオメトリを3Dプリンタでプリントできないことの解消に特に適する。建築三次元モデルは、プリントするために縮小し得るが、3Dプリンタは、プリンタに依存する最小厚未満の要素をプリントすることができない。
【0126】
建築モデルに対するミンコフスキー加算の本実施態様では、多面体と立方体とのミンコフスキー加算は往々にして失敗する。本明細書に記載の適応分解が、失敗のない建築3Dモデルのミンコフスキー和の計算に役立つ。この技法は、非中空ジオメトリを中空にレンダリングし得るという点で反直観的であるが、これは建築3Dモデルの3Dプリントには妥当である。しかし、他の使用には許容不可能であり得る。非中空のジオメトリが要求される場合、結果と元の物体とを結合する追加のステップを実行することにより達成することができる。
【0127】
通常、図9A、図9B、及び図10の方法により生成されるすべての幾何学的エンティティは、少なくとも最小厚を有する。通常、図9A、図9B、及び図10の方法は、小さなギャップの修復及び/又は欠けた面の修復に対して動作可能である。
【0128】
これより図9A及び図9Bを参照すると、ステップ810は、例えば、ソフトウェアツールキットを使用して、建築三次元モデル(Revit、Sketchup、DXF/DWG、VRML、STL等)等であるがこれらに限定されない入力を受信し得る。
【0129】
法線方向修正及び三角形分割が、図9A及び図9Bのステップ830の実行に適した技法の例である。
【0130】
ステップ820は、例えば、シーングラフ技術を使用して、さらに処理するために、例えば、モデルを内部データ構造/リポジトリにロードすることを含み得る。
【0131】
ステップ840に関して、法線の方向により面の向きを特定することができる。3Dモデルは、時には一貫しない法線方向を含むことがあるため、修正が利用される。既知の修正技法があり、Rhino3Dソフトウェア等のいくつかの従来のソフトウェアパッケージは、法線方向修正のツールを提供する。
【0132】
ステップ850に関して、ファイル形式に応じて、必ずしも三角形を使用する必要がないジオメトリのいくつかの表現があり得る。
【0133】
形状/ポリゴンは、テセレーション/三角形分割、例えば、例:トーラステセレーションにより別のジオメトリ表現に変換し得る。
【0134】
例えば、ファイル形式はポリゴン記述を含むことができ、その場合、各ポリゴンは、従来のポリゴン三角形分割方法を使用して三角形分割することができる。
【0135】
ステップ880及び890に関して、多面体の凸分解及び多面体の3Dミンコフスキー加算は、例えば、CGAL(計算幾何学アルゴリズムライブラリ)により提供される機能であり、CGALのマニュアルはオンラインcgal.org/manualにある。
【0136】
ステップ890に関して、三角形と立方体とのミンコフスキー和が、三角形の頂点に位置決めされた立方体の凸包であることが理解される。通常、ステップ970の後、方法は、好ましくは、メモリが容量に達しつつあること等のエラー状況を監視しながら、ステップ890において生成された膨張凸多面体を「大きく」結合しようとする(ミンコフスキー加算の出力は、本明細書では「膨張凸多面体」と呼ばれる)。処理された各多面体は通常、処理されたモデル(出力)の部分である。通常、劣化したエンティティ(例えば、ゼロの長さの辺を有する三角形)以外、すべてのエンティティが処理される。
【0137】
ステップ935において、通常、メモリの容量に達しつつあることが検出される場合、プロセスは終了するか、又は「停止」させられる。
【0138】
ステップ975において、単純な結合の以下の疑似コードを利用し得る。
typedefCGAL::Nef_polyhedron_3<Kernel>Nef_polyhedron;
Nef_polyhedronN;
for(int i=0;i<n;i++)
{
Nef_polyhedronP;
std::ifstream in(fname[i]);
in>>P;
N=N.join(P);
}
特定のCGALバージョンでの多面体の大きな集合の結合の問題を回避するために、Nef_Polyhedronを「リセット」する(ファイルに書き込みし、再び読み取ることにより)以下のコード(Windowsオペレーティングシステムで実行され、VS2008を使用してコンパイルされる、GMP、MPFRライブラリ、Exact_predicates_exact_constructions_kernelカーネルを使用するCGALバージョン3.5.1)。
Write(N,”temp.nef3”);
delete N;
N=new Nef_polyhedron;
Read(N,”temp.nef3”);
【0139】
ステップ890の失敗は、エラー状況又はプロセスクラッシュにより判断し得る。この場合、通常、システムは、例えば、図10に説明されるようなより単純な形状に分解することを含む適応分解を実行する。
【0140】
ステップ935に関して、メモリリークは最終的に、性能の極度の減速に繋がり得る。限界において、動作時間はエンドレスになり、メモリ切れによりプログラムがクラッシュする。通常、第1の動作の処理時間が測定され、結果として生成される平均が基準として使用される。動作がこの基準よりもはるかに遅くなる場合、これは問題の指標として機能する。
【0141】
図9及び図10の方法の動作の前後の例が図11A及び図11Bに示され、これらの図は、図9及び図10の方法を使用する処理の前後の各壁の平面図である。例えば、縮小後の壁厚は0.1mmであり、これはプリント可能ではない。図11A及び図11Bでは、立方体の半分サイズが1/2*1mmであるため、各矢印は0.5mmである。処理後の壁厚は
=0.5+0.5+0.1=1.1mmであり、これはプリント可能である。
【0142】
本明細書に示され説明される特定の実施形態の特定の利点は、劣化していない限り、三角形が失敗しないが、特定の実施形態により劣化した三角形が事前認識されて無視され、それにより、失敗状況がなくなることである。
【0143】
シーングラフ等の任意の適したデータ構造を、処理中の3Dシーンのリポジトリとして使用し得る。データ構造はDAG(有向非周期グラフ)を含み得る。
【0144】
Graffiti 3Dツールキット及びアプリケーションフレームワークは、本発明の特定の実施形態の実施に有用な3Dアプリケーションフレームワークであり、Windows OpenGLに基づくアプリケーション及びSaaSフレームワークの両方に使用し得る(グラフィックス集約的なアプリケーション用のC++API及びSaaSフレームワーク用のC#.net APIが利用可能である)。OpenGLに基づく3Dビューア、プロプライエタリスーパーセットファイル形式及びシーングラフ、Autodesk Revit、Google Sketchup、AutoCAD DXF/DWG、STL、VRML等の広範囲の関連するファイル形式サポートが、本発明の特定の実施形態の実施に有用であり得る。
【0145】
本明細書で使用される立方体のサイズは、ソフトウェアのパラメータであり、通常、プリンタの性能の関数である。例えば、プリンタが少なくとも1mm厚の壁のみをプリント可能な場合、1mm×1mm×1mmの立方体をすべての凸物体に使用し得る。壁厚が0の場合、処理される壁
の厚さは1mmになる。換言すれば、縮小後の壁厚=0mm(プリントできないことが自明)である場合、本明細書に示され説明される処理後の壁厚
=0.5+0.5+0=1mmである。
【0146】
通常、ステップ970の後に、ステップ890において生成された膨張凸多面体の結合を実行するステップが続く。続けて、システムは、結果として生成された3Dプリント可能モデルをSTL又は他の形式に変換し、所望の形式の3Dプリント可能モデルを出力し得る。
【0147】
図12は、本発明の実施形態の実施形態例の一般的に自己説明的な流れ図である。性能を最適化するために、ステップ1240でのループ等の時間のかかるループ内の計算は、例えば、従来のスレッドプールパターンを使用して並列計算で計算し得る。特定の実施形態によれば、図12の方法は、ステップ1210が一般的に、図9を参照して上述したステップ810〜820と同様であり、ステップ1230が一般的に、図9を参照して上述したステップ830〜870と同様であり、ステップ1240〜1250が一般的に、図9を参照して上述したステップ880と同様であり、ステップ126〜1270が一般的に、図9を参照して上述したステップ890と同様であり、ステップ1280〜1290が一般的に、図9を参照して上述したステップ900と同様であり、ステップ1300〜1310が一般的に、図10を参照して上述したステップ960と同様であり、ステップ1320が一般的に、図10を参照して上述したステップ970と同様であり、ステップ1330が一般的に、図9を参照して上述したステップ930と同様であり、ステップ1340が一般的に、図9を参照して上述したステップ940と同様であるように実施し得る。
【0148】
図13は図12の図の疑似コードである。疑似コードは、例えば、
List<Polyhedra>model=Input()
cube=プリンタの性能により立方体を構築(例えば、1×1mm)
Preprocessing(model)
foreach(Polyhedra polyhedra in model)
List<ConvexPolyhedra>=ConvexDecomposition(polyhedra)
Foreach convexPolyhedra
processed1=MinkowskiSum(convexPolyhedra+cube)
if(failed)
list<Triangle/SimpleObject>list=AdaptiveDecompose()
foreach(Triangle triangle in list)
processed2=MinkowskiSum(triangle+cube)
ENDFOREACH
Union(List<processed2>)
ENDIF
ENDFOREACH
Union(List<processed1>)
ENDFOREACH
Output3DPrintable(ProcessedModel, STL format)
を含み得る。
【0149】
本明細書に示される方法及びシステムは、以下の任意に関連付けられた用途に有用である:建築家、インテリアデザイナー、3D建築モデルをプリントする必要がある顧客、ST修復/修正ソフトウェア組織及びサービス提供者、3Dプリントサービス、3Dプリンタ/ラピットプロトタイピング機組織、並びにCADソフトウェア提供者。3Dモデルを生成する適したソフトウェアを備えた汎用コンピュータ等の任意の適した装置を使用して、本明細書に示され説明される方法への入力を生成し得る。任意の適した3Dプリンタを使用して、本明細書に示され説明される方法により生成されるデジタル出力の3Dプリントアウトを生成し得る。ネットワークを使用して、そのようなコンピュータ及び/又はそのようなプリンタの間並びに/或いは本明細書に示され説明される機能のうちの任意を有するサーバ、又はクライアントコンピュータ、又はプロセッサの間で通信し得る。任意の適したコンピュータ化されたデータ記憶ユニット、例えば、コンピュータメモリを使用して、本明細書に示され説明される方法への入力、暫定的な作業生産品、又はそれにより生成されるデジタル出力を記憶し得る。本明細書に説明される計算機能のうちの任意又はすべては、プロセッサで実施し得、例えば、従来のプロセッサ内に組み込まれたモジュールを含み得る。
【0150】
「必須の」、「要求される」、「必要とされる」、及び「しなければならない」等の用語が、明確にするために本明細書内で説明される特定の実施態様又は用途の文脈の中で行われる実施の選択を指し、代替の移植から限定を意図しないことが理解される。同じ要素が、必須又は要求されるものとして定義されなくてもよく、又はすべてなくすことさえも可能である。
【0151】
プログラム及びデータを含む本発明のソフトウェア構成要素が、所望の場合、CD−ROM、EPROM、及びEEPROMを含むROM(読み取り専用メモリ)形態で実施し得、又は様々な種類のディスク、様々な種類のカード、及びRAM等であるがこれらに限定されない任意の他の適したコンピュータ可読媒体に記憶し得ることが理解される。ソフトウェアとして本明細書に説明される構成要素は、代替として、所望の場合、従来の技法を使用して全体的又は部分的にハードウェアで実施してもよい。逆に、ハードウェアとして明細書に説明される構成要素は、代替として、所望の場合、従来の技法を使用して全体的又は部分的にソフトウェアで実施してもよい。
【0152】
本発明の範囲内には、とりわけ、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するコンピュータ可読命令を搬送する電磁信号、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行する機械可読命令、機械により実行可能であり、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行する命令プログラムを明確に具体化する、機械により可読のプログラム記憶装置、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するコンピュータ可読プログラムコードを内部に具体化し、且つ/又はそのようなプログラムコードを含む、実行可能コード等のコンピュータ可読プログラムコードを有するコンピュータ使用可能媒体を含むコンピュータプログラム製品、任意の適した順に実行された場合、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてによりもたらされる任意の技術的効果、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に、単独で、又は組み合わせて実行するようにプログラムされた任意の適した装置、又はデバイス、又はそのような組み合わせ、プロセッサ及び協働する入力装置及び/又は出力装置をそれぞれ有し、本明細書に示され説明された任意のステップをソフトウェア内で実行するように動作可能な電子装置、コンピュータ又は他の装置を、本明細書に示され説明された任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するように構成させる、ディスク又はハードドライブ等の情報記憶装置又は物理的な記録、例えば、メモリ又はインターネット等の情報ネットワークに事前記録され、ダウンロードされる前又は後に、本明細書に示され説明される任意の方法のステップのうちの任意又はすべてを任意の適した順に実施するプログラム、そのようなプログラムをアップロード又はダウンロードする方法、及びそのようなプログラムを使用する1つ若しくは複数のサーバ及び/又は1つ若しくは複数のクライアントを含むシステム、並びに単独で、又はソフトウェアと併せて本明細書に示され説明される任意の方法のステップのうちの任意又はすべてを任意の適した順に実行するハードウェアが含まれる。本明細書に説明される任意のコンピュータ可読媒体又は機械可読媒体は、非一時的なコンピュータ可読媒体又は機械可読媒体を含むことが意図される。
【0153】
本明細書に説明した任意の計算又は他の形態の解析は、適したコンピュータ化された方法により実行し得る。本明細書に説明した任意のステップはコンピュータにより実施し得る。本明細書に示され説明される本発明は、(a)コンピュータ化された方法を使用して、本明細書に説明した任意の問題又は任意の目的に対する解決策を識別することであって、解決策は任意選択的に、本明細書に説明した問題又は目的にプラスに影響する本明細書に説明された判断、動作、製品、サービス、又は任意の他の情報のうちの少なくとも1つを含む、識別すること、及び(b)解決策を出力することを含み得る。
【0154】
別個の実施形態の文脈の中で説明した本発明の特徴は、単一の実施形態に組み合わせて提供することも可能である。逆に、簡潔にするために、単一の実施形態の文脈の中で、又は特定の順に説明された、方法ステップを含む本発明の特徴は、別個に、又は任意の適した下位組み合わせで、又は異なる順に提供することもできる。「例えば」は、本明細書では、限定を意図しない具体例の意味で使用される。任意の図面に結び付けて示されるデバイス、装置、又はシステムは、実際には、特定の実施形態では単一のプラットフォームに統合することができ、又は光ファイバ、Ethernet、無線LAN、ホームPNA、電力線通信、セル電話、PDA、Blackberry GPRS、GPSを含む衛星、又は他のモバイル伝達等であるがこれらに限定されない任意の適切な有線結合又は無線結合を介して結合することができる。本明細書に示され説明された説明及び図面では、システム及びシステムのサブユニットとして説明又は示される機能を方法及び方法内のステップとして提供することもでき、方法及び方法内のステップとして説明又は示される機能をシステム及びシステムのサブユニットとして提供することもできることが理解される。図面内の様々な要素を示すために使用される縮尺は、単なる例示であり、且つ/又は提示を明確にするために適切であり、限定を意図しない。
【特許請求の範囲】
【請求項1】
3Dプリンタによりプリント可能な建築構造の表現を生成するコンピュータ化された方法において、
建築構造の、多面体を含む建築モデルを提供するステップと、
プロセッサを使用して、前記多面体のうちの少なくとも1つと、サイズが前記プリンタの性能を表す別の形状とをミンコフスキー加算するステップと、
前記結合された出力多面体を使用して、前記3Dプリンタによりプリント可能な前記建築構造の表現を生成するステップと、
を含むことを特徴とする、方法。
【請求項2】
請求項1に記載の方法において、前記ミンコフスキー加算するステップの前に、前記多面体の中からの各非凸多面体を凸多面体に分解するステップも含み、前記ミンコフスキー加算するステップが、少なくとも1つの凸多面体と、サイズが前記プリンタの性能を表す別の形状とをミンコフスキー加算するステップを含むことを特徴とする、方法。
【請求項3】
請求項1に記載の方法において、前記3Dプリンタで前記表現をプリントすることも含むことを特徴とする、方法。
【請求項4】
請求項2に記載の方法において、前記分解するステップが、前記多面体の中からの各非凸多面体を三角形以外の凸多面体に分解しようとするステップと、少なくとも1つの個々の非凸多面体への試みに失敗した場合、前記個々の非凸多面体をポリゴンに分解し、前記ポリゴンを結合するステップと、を含むことを特徴とする、方法。
【請求項5】
入力ジオメトリを3Dプリント可能モデルに変換するコンピュータ化された3Dプリントシステムにおいて、
多面体と単純で小さな凸形状とのミンコフスキー加算を計算し、それにより、3Dプリント可能モデルを生成するように動作可能なプロセッサを含むミンコフスキー加算器と、
3Dプリント可能モデルを表現する出力を生成するように動作可能な出力生成器と、
を備えることを特徴とする、システム。
【請求項6】
請求項2に記載の方法において、前記少なくとも1つの凸多面体が前記凸多面体のすべてを含むことを特徴とする、方法。
【請求項7】
請求項1又は2に記載の方法において、前記形状が単純で小さな凸形状を含むことを特徴とする、方法。
【請求項8】
請求項7に記載のシステムにおいて、前記形状が立方体を含むことを特徴とする、システム。
【請求項9】
請求項8に記載のシステムにおいて、前記立方体が1mm×1mm×1mmの立方体を含むことを特徴とする、システム。
【請求項10】
コンピュータ可読プログラムコードが具体化されたコンピュータ使用可能媒体を備えるコンピュータプログラム製品において、前記コンピュータ可読プログラムコードが、実行されて、3Dプリンタでプリント可能な建築構造の表現を生成する方法を実施するように構成され、前記方法が、
建築構造の、多面体を含む建築モデルを提供するステップと、
前記多面体のうちの少なくとも1つと、サイズが前記プリンタの性能を表す別の形状とをミンコフスキー加算するステップと、
前記結合された出力多面体を使用して、前記3Dプリンタでプリント可能な建築構造の表現を生成するステップと、
を含むことを特徴とする、コンピュータプログラム製品。
【請求項11】
請求項4に記載の方法において、前記ポリゴンのうちの少なくともいくつかが三角形であることを特徴とする、方法。
【請求項12】
請求項1又は2に記載の方法において、前記ミンコフスキー加算により生成されるミンコスフスキー和のうちの少なくともいくつかを結合し、それにより、少なくとも1つの結合出力多面体を生成するステップも含むことを特徴とする、方法。
【請求項13】
請求項12に記載の方法において、分解の結果である凸多面体の各集合のミンコフスキー和のみが結合されることを特徴とする、方法。
【請求項14】
3Dプリントのために建築モデルを準備するシステムにおいて、少なくとも1つのミンコフスキー加算計算を使用して、前記建築モデルを修復する修復器を備えることを特徴とする、システム。
【請求項15】
請求項8に記載のシステムにおいて、前記修復が前記モデルの少なくとも1つの小さなギャップを修復することを含むことを特徴とする、システム。
【請求項16】
請求項8に記載のシステムにおいて、修復が少なくとも1つの欠落面を修復することを含むことを特徴とする、システム。
【請求項1】
3Dプリンタによりプリント可能な建築構造の表現を生成するコンピュータ化された方法において、
建築構造の、多面体を含む建築モデルを提供するステップと、
プロセッサを使用して、前記多面体のうちの少なくとも1つと、サイズが前記プリンタの性能を表す別の形状とをミンコフスキー加算するステップと、
前記結合された出力多面体を使用して、前記3Dプリンタによりプリント可能な前記建築構造の表現を生成するステップと、
を含むことを特徴とする、方法。
【請求項2】
請求項1に記載の方法において、前記ミンコフスキー加算するステップの前に、前記多面体の中からの各非凸多面体を凸多面体に分解するステップも含み、前記ミンコフスキー加算するステップが、少なくとも1つの凸多面体と、サイズが前記プリンタの性能を表す別の形状とをミンコフスキー加算するステップを含むことを特徴とする、方法。
【請求項3】
請求項1に記載の方法において、前記3Dプリンタで前記表現をプリントすることも含むことを特徴とする、方法。
【請求項4】
請求項2に記載の方法において、前記分解するステップが、前記多面体の中からの各非凸多面体を三角形以外の凸多面体に分解しようとするステップと、少なくとも1つの個々の非凸多面体への試みに失敗した場合、前記個々の非凸多面体をポリゴンに分解し、前記ポリゴンを結合するステップと、を含むことを特徴とする、方法。
【請求項5】
入力ジオメトリを3Dプリント可能モデルに変換するコンピュータ化された3Dプリントシステムにおいて、
多面体と単純で小さな凸形状とのミンコフスキー加算を計算し、それにより、3Dプリント可能モデルを生成するように動作可能なプロセッサを含むミンコフスキー加算器と、
3Dプリント可能モデルを表現する出力を生成するように動作可能な出力生成器と、
を備えることを特徴とする、システム。
【請求項6】
請求項2に記載の方法において、前記少なくとも1つの凸多面体が前記凸多面体のすべてを含むことを特徴とする、方法。
【請求項7】
請求項1又は2に記載の方法において、前記形状が単純で小さな凸形状を含むことを特徴とする、方法。
【請求項8】
請求項7に記載のシステムにおいて、前記形状が立方体を含むことを特徴とする、システム。
【請求項9】
請求項8に記載のシステムにおいて、前記立方体が1mm×1mm×1mmの立方体を含むことを特徴とする、システム。
【請求項10】
コンピュータ可読プログラムコードが具体化されたコンピュータ使用可能媒体を備えるコンピュータプログラム製品において、前記コンピュータ可読プログラムコードが、実行されて、3Dプリンタでプリント可能な建築構造の表現を生成する方法を実施するように構成され、前記方法が、
建築構造の、多面体を含む建築モデルを提供するステップと、
前記多面体のうちの少なくとも1つと、サイズが前記プリンタの性能を表す別の形状とをミンコフスキー加算するステップと、
前記結合された出力多面体を使用して、前記3Dプリンタでプリント可能な建築構造の表現を生成するステップと、
を含むことを特徴とする、コンピュータプログラム製品。
【請求項11】
請求項4に記載の方法において、前記ポリゴンのうちの少なくともいくつかが三角形であることを特徴とする、方法。
【請求項12】
請求項1又は2に記載の方法において、前記ミンコフスキー加算により生成されるミンコスフスキー和のうちの少なくともいくつかを結合し、それにより、少なくとも1つの結合出力多面体を生成するステップも含むことを特徴とする、方法。
【請求項13】
請求項12に記載の方法において、分解の結果である凸多面体の各集合のミンコフスキー和のみが結合されることを特徴とする、方法。
【請求項14】
3Dプリントのために建築モデルを準備するシステムにおいて、少なくとも1つのミンコフスキー加算計算を使用して、前記建築モデルを修復する修復器を備えることを特徴とする、システム。
【請求項15】
請求項8に記載のシステムにおいて、前記修復が前記モデルの少なくとも1つの小さなギャップを修復することを含むことを特徴とする、システム。
【請求項16】
請求項8に記載のシステムにおいて、修復が少なくとも1つの欠落面を修復することを含むことを特徴とする、システム。
【図1】
【図2】
【図3】
【図4A】
【図4B】
【図4C】
【図4D】
【図5A】
【図5B】
【図5C】
【図6】
【図6A】
【図6B】
【図8】
【図9A】
【図9B】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図2】
【図3】
【図4A】
【図4B】
【図4C】
【図4D】
【図5A】
【図5B】
【図5C】
【図6】
【図6A】
【図6B】
【図8】
【図9A】
【図9B】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【公表番号】特表2013−507679(P2013−507679A)
【公表日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2012−532714(P2012−532714)
【出願日】平成22年10月5日(2010.10.5)
【国際出願番号】PCT/IL2010/000810
【国際公開番号】WO2011/042899
【国際公開日】平成23年4月14日(2011.4.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.ETHERNET
【出願人】(512091372)スリーディー エム.ティー.ピー.リミテッド (1)
【氏名又は名称原語表記】3D M.T.P. LTD.
【Fターム(参考)】
【公表日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願日】平成22年10月5日(2010.10.5)
【国際出願番号】PCT/IL2010/000810
【国際公開番号】WO2011/042899
【国際公開日】平成23年4月14日(2011.4.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.ETHERNET
【出願人】(512091372)スリーディー エム.ティー.ピー.リミテッド (1)
【氏名又は名称原語表記】3D M.T.P. LTD.
【Fターム(参考)】
[ Back to top ]