JPH04503634A - 立体造形方法および装置 - Google Patents

立体造形方法および装置

Info

Publication number
JPH04503634A
JPH04503634A JP1511123A JP51112389A JPH04503634A JP H04503634 A JPH04503634 A JP H04503634A JP 1511123 A JP1511123 A JP 1511123A JP 51112389 A JP51112389 A JP 51112389A JP H04503634 A JPH04503634 A JP H04503634A
Authority
JP
Japan
Prior art keywords
liquid
layer
level
polymerizable liquid
blade
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1511123A
Other languages
English (en)
Other versions
JP3030855B2 (ja
Inventor
オルムキスト,トーマス、エー.
ハル,チャールズ、ダブリュ.
モドレク,ボルゾ.
セルクチェウスキー,アンドルジェイ、アール.
ジェイコブ,ポール、エフ.
ルイス,チャールズ、ダブリュ.
ルイス,マーク、エー.
リラン,アブラハム.
Original Assignee
スリーディー、システムズ、インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26940037&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH04503634(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by スリーディー、システムズ、インコーポレーテッド filed Critical スリーディー、システムズ、インコーポレーテッド
Publication of JPH04503634A publication Critical patent/JPH04503634A/ja
Application granted granted Critical
Publication of JP3030855B2 publication Critical patent/JP3030855B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C35/00Heating, cooling or curing, e.g. crosslinking or vulcanising; Apparatus therefor
    • B29C35/02Heating or curing, e.g. crosslinking or vulcanizing during moulding, e.g. in a mould
    • B29C35/08Heating or curing, e.g. crosslinking or vulcanizing during moulding, e.g. in a mould by wave energy or particle radiation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D9/00Level control, e.g. controlling quantity of material stored in vessel
    • G05D9/12Level control, e.g. controlling quantity of material stored in vessel characterised by the use of electric means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C41/00Shaping by coating a mould, core or other substrate, i.e. by depositing material and stripping-off the shaped article; Apparatus therefor
    • B29C41/02Shaping by coating a mould, core or other substrate, i.e. by depositing material and stripping-off the shaped article; Apparatus therefor for making articles of definite length, i.e. discrete articles
    • B29C41/12Spreading-out the material on a substrate, e.g. on the surface of a liquid
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/10Processes of additive manufacturing
    • B29C64/106Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
    • B29C64/00Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
    • B29C64/10Processes of additive manufacturing
    • B29C64/106Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material
    • B29C64/124Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material using layers of liquid which are selectively solidified
    • B29C64/129Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material using layers of liquid which are selectively solidified characterised by the energy source therefor, e.g. by global irradiation combined with a mask
    • B29C64/135Processes of additive manufacturing using only liquids or viscous materials, e.g. depositing a continuous bead of viscous material using layers of liquid which are selectively solidified characterised by the energy source therefor, e.g. by global irradiation combined with a mask the energy source being concentrated, e.g. scanning lasers or focused light sources
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F23/00Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm
    • G01F23/22Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm by measuring physical variables, other than linear dimensions, pressure or weight, dependent on the level to be measured, e.g. by difference of heat transfer of steam or water
    • G01F23/28Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm by measuring physical variables, other than linear dimensions, pressure or weight, dependent on the level to be measured, e.g. by difference of heat transfer of steam or water by measuring the variations of parameters of electromagnetic or acoustic waves applied directly to the liquid or fluent solid material
    • G01F23/284Electromagnetic waves
    • G01F23/292Light, e.g. infrared or ultraviolet
    • G01F23/2921Light, e.g. infrared or ultraviolet for discrete levels
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F23/00Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm
    • G01F23/30Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm by floats
    • G01F23/32Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm by floats using rotatable arms or other pivotable transmission elements
    • G01F23/36Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm by floats using rotatable arms or other pivotable transmission elements using electrically actuated indicating means
    • G01F23/366Indicating or measuring liquid level or level of fluent solid material, e.g. indicating in terms of volume or indicating by means of an alarm by floats using rotatable arms or other pivotable transmission elements using electrically actuated indicating means using optoelectrically actuated indicating means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29KINDEXING SCHEME ASSOCIATED WITH SUBCLASSES B29B, B29C OR B29D, RELATING TO MOULDING MATERIALS OR TO MATERIALS FOR MOULDS, REINFORCEMENTS, FILLERS OR PREFORMED PARTS, e.g. INSERTS
    • B29K2995/00Properties of moulding materials, reinforcements, fillers, preformed parts or moulds
    • B29K2995/0037Other properties
    • B29K2995/0072Roughness, e.g. anti-slip
    • B29K2995/0073Roughness, e.g. anti-slip smooth

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】
立体造形による層の再コーテイング
【発明の背景】
本発明は三次元物体の製造のための改良された立体造形の方法および装置に関す る。 近年、「立体造形による三次元物体の製造のための装置」と題する米国特許第4 .575.330号に記載されたような「立体造形」システムが実用化されてい る。 基本的に、立体造形は、重合性液体の多数の薄層を各層の上に連続的に硬化させ 、すべての薄層が結合されて部品全体を形成させることにより、複雑な立体プラ スチック部品を自動的に製作するための方法である。重合化された各層は、本質 的に、希望の三次元物体の薄い横断面である。この技術では、部品は、文字通り 、液状プラスチックの槽の中で産み出される。この加工方法は、設計構想を迅速 に具体的な形状にし、原型を作るために極めて有効である。さらに、複雑な部品 も工具を要さずに迅速に製作できる。このシステムは、コンピュータを利用して 断面パターンを生成するので、CAD/CAMシステムと容易に連結することが できる。 現在、好ましい重合体は紫外線で硬化するものであり、その硬化はそれらを実用 的な模型製作材料とするほど十分に高速である。部品製作時に重合化されない液 体はそのまま使用可能であり、槽内に残って以後の部品を製作することができる 。紫外線レーザが、既定のパターンで検流計鏡X−Y走査装置によりその液体の 表面上を移動する小さな高強度の紫外線スポットを作る。走査装置は、コンピュ ータ生成ベクトルなどによって駆動される。精密かつ複雑なパターンがこの技術 によって容易に作成できる。 立体造形システムには、レーザ走査装置、重合性液体を入れるための槽、槽内を 上下できる物体支持台、および、制御コンピュータが含まれる。システムは、一 度に一つの薄層断面を形成し、層単位で希望の三次元物体を作り上げることによ りプラスチック部品を自動的に製作するようにプログラムされる。 通常の立体造形手順では、粘稠な硬化性プラスチック液体の薄層がすでに硬化し ているはずの層の上に付与され、その重合性液体の薄層が重力によって平滑にな るだけの十分な時間が経過した後、コンピュータ制御放射線゛ ビームが薄層上 を移動し、そのプラスチック液体を十分に硬化させ、その上に以後の層が付与で きるようにする。 薄層が平滑になるための待機時間は、重合性液体の粘度、層の厚さといったいく つかの要因によって異なる。 通常、硬化層は、垂直可動な物体支持台に支持されており、液状プラスチックが 硬化層上に満たされるように希望の層厚さに等しい距離だけ、粘稠重合性液体の 浴の表面下に浸漬される。表面が平坦になると、層は放射線による硬化の準備が 整ったことになる。 立体造形の詳細については、完全に述べられたものとして、それぞれに付帯され た付属書または参照によりそれぞれと一体を成す資料を含む、参照によりそのま ま本明細書と一体を成す、米国特許第4,575.330号および以下に挙げる 係属中の米国特許出願書に論及されている。 米国特許出願番号第339,246号「立体造形におけるカールの低減J (1 989年4月17日出願)米国特許出願番号第331.664号「立体造形によ る高分解能三次元物体の製造のための方法および装置」(1989年3月31日 出願) 米国特許出願番号第183,015号[立体造形による三次元物体の製造のため の方法および装置J (1988年4月18日出願) 米国特許出願番号第182,801号[立体造形による三次元物体の製造のため の方法および装置J (1988年4月18日出願) 米国特許出願番号第268,429号「部分重合化部品を硬化させるための方法 J (1988年11月8日出願) 米国特許出願番号第268,428号「部分重合化部品を仕上げるための方法J  (1988年11月8日出願)米国特許出願番号箱268,408号「部分重 合化部品から排液するための方法J (1988年11月8日出願) 米国特許出願番号箱268’、816号「ビームの輪郭を描くための装置および 方法J (1988年11月8日出願) 米国特許出願番号箱268.907号「立体造形による製造におけるドリフトを 補正するための装置および方法J(1,988年11月8日出願) 米国特許出願番号箱268,837号「立体造形装置を較正・標準化するための 装置および方法J(1,988年11月8日出願) 米国特許出願番号箱249,399号F立体造形による三次元物体の製造のため の方法および装置J (1988年9月26日出願) 米国特許出願番号箱365.444号「統合化立体造形J (1989年6月1 2日出願) 米国特許出願番号箱265,039号「液体の水準を測定・制御するだめの装置 および方法J (1988年10月31日出願) 現在必要とされており、これまで利用できなかったことは、プラスチックの各層 を形成するためのサイクル時間を短縮するための手段である。本発明は、その必 要性を満たすものである。 本発明はまた、液体の水準を測定・制御するための装置および方法、特に、立体 造形装置における使用液体の水準を測定・制御するための装置および方法に関す る。 多くの科学実験および工業用途では、液体の水準の測定を必要とする。ここで用 いる「液体の水準」とは、重力場または他の加速座標系における液体表面の高度 を意味する。この表面は、その液体の上表部のこともあれば、(液体が別の液体 の上に浮いている場合)下部のこともある。液体は、多くの可能性が考えられ、 海でもあり、自動車のガソリンタンク内のガソリンでもあり、試験管内の液体薬 品でもあり得る。こうした液体の水準を測定するために、浸漬棒、杭の側面に塗 装された線、試験管側面の印、フロートなど、各種の手段が長年にわたって採用 されている。しかし、液体の水準を極めて精密かつ高い信頼性をもって測定でき る装置の必要性が存在する。 この種の装置は、工業用途で特に有益であり、液体の水準を希望の高度に維持す るためにポンプのプランジャ、ダイヤフラムその他の、:11節装置などの水準 維持装置と組み合わせることができる。 特に、立体造形装置は、使用液体の水準の極めて精確な管理を必要とする。前述 のチャールズ・W、ハルの米国特許第4,575.330号は、立体造形による 三次元物体の製造のための装置を開示している。この立体造形装置で用いられる 使用液体は、通常、紫外線の照射によって硬化可能な液状感光性重合体である。 米国特許第4.575,330号に記載されているように、好ましい実施例にお ける使用液体の水準は、紫外線のビームが一定の平面で精確に焦点を維持するよ うに一定の水準に維持されなければならない。 液状感光性重合体の表面の紫外線ビームの全強度および強度分布(「ビームの輪 郭」)は、他の要因(液状感光性重合体の特性、ビームが単一のスポットに留ま っている時間など)と関連して、ビームの暴露により硬化または重合化する感光 性重合体の深さおよび輪郭を決定する。ビームの輪郭は、ビームが液状感光性重 合体の既定の水準で既知の輪郭を有するように焦点を結ぶので、液状感光性重合 体の水準によって異なる。液状感光性重合体が既定の水準と異なる水準を有した 場合、ビームの輪郭の相違は、硬化した感光性重合体の幅およびその深さを予定 の深さおよび幅とは異なるものにさせる。 さらに、液状感光性重合体の水準が既定の水準よりも高ければ、硬化した感光性 重合体の深さは、先行の硬化層まで到達して付着するために十分でなく、物体の 構造結合性にとって不都合な結果を生じることになる。反対に液状感光性重合体 の水準が低ければ、新しい層が予定よりも薄くなり、物体の再現精度に不都合と なる。 液状感光性重合体の水準は、液状感光性重合体の硬化、加熱、蒸発などによって 生じる収縮にかかわらず維持されなければならない。立体造形装置の初期の機種 では、この水準は、排液路を設けることによって維持していた。 液状感光性重合体の水準は、排液路をわずかに超える所まで(表面張力により) 上昇した。しかし、排液路は、立体造形装置によって作成される部品の高分解能 を可能にするほど十分な精度で液状感光性重合体の水準を管理できない。従って 、液体の水準を測定するさらに精密な手段の必要性が存在する。
【発明の要約】
要約すれば、本発明は、適切な放射エネルギに応答して硬化する重合性液体の表 面で当該の物体の連続的な薄肉の横断面単層を形成することによって三次元物体 を作成するための新しい改良された立体造形システムを提供する。本発明は特に 、この方法によって形成される各層のサイクル時間を短縮するための改良された 立体造形の方法およびシステムに関する。 本発明に従えば、初めに、重合性液体の層が物体支持台の表面に付与される。希 望の層厚さの平滑な層を得るために層の表面上をブレードで引くことにより、余 分な重合性液体が層から掻き取られる。放射線などの硬化媒質が平滑にされた層 の上表面または作業表面に事前に選択されたパターンで当てられ、それによりそ の層が十分に硬化し、希望の三次元物体を形成するために以降の層が同様にして 付与され硬化できるようにする。 現在好ましい実施例では、物体支持台は、それらの層が付与される表面を有して おり、槽内の重合性液体の浴中を上下できるように適応され設けられている。支 持台は、その表面(最新の硬化層の場合もある)が、一般には希望の層厚さより も大きい距離だけ重合性液体の浴の上面より下にあるように洛中に下げられる。 次に支持台は、表面の粘稠な重合性液体が浴の上面よりも上に位置するように引 き上げられる。水平移動ドクターブレードが希望の厚さの重合体の液層ができる ように余分な重合性液体を掻き取る。支持台は平滑にされた重合性液体の層の上 面が浴とほぼ同じ水準になるように下げられる。 その後、硬化放射線が図形パターンで平滑にされた層の上に当てられ、その薄い 液体層を硬化させ、その結果、以降の1以上の重合性液体の層がその上に付与で きるようになる。一部硬化した固体層を持った物体支持台は、重合性液体がその 固体層上に流入できるように浴の表面からさらに下げられ、上記のサイクルが繰 り返される。 このプロセスは、それらの層を一体に結合しながら多数の連続的に形成される層 の作成によって、希望の三次元物体が形成されるまで継続する。立体造形の最終 製品は、以後の取扱いに対して十分な強さを有していなければならない。通常、 物体は形成後に最終硬化が行われる。 上記の手順において、浴中の重合性液体の水準は、特にその平滑にされた層が浴 中に下げられて放射線によって硬化される際に一定の水準に維持されるように注 意しなければならない。本質的に、浴中の液体が液体の平滑な層の境界を形成す るからである。現在好ましい実施例では、浴の水準が適切な方法で検出され、あ る水準が希望の水準と比較され、その差異に応答して、浴内のピストンまたはプ ランジャが水準を希望の設定点に制御するように浴内で上下する。 三次元物体は、光硬化性樹脂の表面をヘリウム−カドミウムレーザによる紫外線 などの放射ビームを移動させ、それが当たった部位の液体を凝固させることによ って一度に1水平層ずつ形成される。樹脂の吸収により紫外線が深く透過するの を妨げ、薄層が形成されるようにする。 本発明はまた、電磁線ビームを発生するだめの装置、および、衝突してくる電磁 線ビームの位置の変化に応答して電気信号を変化させる検出器を含む、液体の水 準を測定するための新しい改良された装置を提供する。このビーム検出器は、液 体の水準に対して垂直方向の一定距離に設置される。ビームは、液体表面に対し て一定の角度で第1の光路に沿って液体表面に向けて発せられ、液体表面から検 出器への第2の光路に沿ってビーム検出可能位置に反射される(ビームは可視光 である必要はないが、「光路」という用語を使用する)。液体の水準の変化は、 ビームが検出器に衝突する地点を変え、それによっで検出器からの電気信号の変 化を生じさせる。この信号は、その後、ポンプ、ダイヤフラム、プランジャなど の液体の水準を管理する装置を制御するために使用することができる。 液体の表面は、平坦である、または、液体の表面の高度が変化する場合でも、ビ ームに関して同一角度を保つものと仮定する。従って、ビームが液体表面から反 射する角度は変化しない。表面が平坦でない場合、ビームは反射されないか、ま たは、予測できない角度で反射される。波または乱れが予想される場合は、偏揺 れ、縦揺れおよび横揺れを防止するように加重された鏡付フロートを液体表面に 置いてビームを反射させてもよい。 好ましい実施例では、電磁線ビームを発生させるための装置はレーザであり、検 出器は液体表面に垂直方向に沿って液体表面からずらして位置する多数の結合さ れた光電池である。レーザによる放射線は、好ましくは、液体の状態を変化させ てならない。光電池のそれぞれの電気出力を比較し、それによってビームが光電 池に衝突した時のビームの位置の移動を検出するために、電子回路が備わってい る。液体の水準が変化すると、ビームはそれ以上、同じ位置の光電池に衝突しな い。ある光電池は以前より多くのビームを受け、別の光電池は以前より少なく受 ける。これが、作用される光電池のそれぞれからの電気出力を変化させる。比較 回路がこの相違を検出し、液体の水準を表示する計器もしくは液体の水準を変化 させるための装置(プランジャなど)のいずれか一方、または、双方を駆動させ る。 本発明の液体の水準を測定するための装置は、迅速で、高信頼性を有する、極め て敏感に反応する装置である。 この装置は、液体の水準を極めて精密に測定し、それに従って極めて精確にその 水準を維持することができる。 現在、本発明に従って製作された液体の水準測定装置は、少なくとも±0.5ミ ル(±0.005インチ)の範囲内で液体の水準を測定しく維持する)ことがで きる。 すなわち、本発明の立体造形の方法および装置は、形成される各層のサイクル時 間を著しく短縮し、寸法精度を向上させ、未処理強度および最終硬化強度を増大 させる。さらに本発明の水準測定・制御装置は、液体の水準を迅速に、高信頼性 をもって、精確に測定できるシステムの長期にわたって存在する必要性を満たす ものである。 本発明の上記その他の目的および利益は、例示的な実施例の添付図面と併せて、 以下の詳細な説明によって明らかとなろう。
【図面の簡単な説明】
第1図は、本発明の特徴を具体化した立体造形システムの断面図である。 第2図は、第1図に示す実施例をさらに説明する第1図のシステムの斜視図であ る。 第3図から第6図は、立体造形の手順の各段階における第1図に示す槽の略断面 図である。 第7図は、本発明に従って製作された三次元物体の斜視図である。 第8図は、本発明の液体の水準測定装置の好ましい実施例を備えた立体造形装置 の一部の斜視図である。 第9図は、本発明の好ましい実施例の側面立面図である。 第10図は、液体の水準および入射角を変化させた条件のもとての本発明の好ま しい実施例のレーザビームがとる光路の側面立面図である。 第11図は、本発明の好ましい実施例で使用される2セル型光検出器の正両立面 図である。 第12図は、本発明の好ましい実施例の2セル型光検出器と関係する電子部品の ブロック図である。 第13図は、閉鎖容積問題の説明図である。 第14図は、ブレードギャップ設定用のねし山付伸縮自在針の説明図である。 第15図は、ブレードに取り付けられた針の拡大図である。 第16図は、ブレード移動方向の迎え角を有するブレードの断面図である。 第17図から第19図は、第16図のブレードの別様の断面形状の説明図である 。 第20図は、水準検出フロートの別様の形状の説明図である。 第21図は、フロートを含む水準検出装置の説明図である。 第22図は、第21図の装置の光検出器の説明図である。 第23図は、5LA−250で使用されている再コーテイング用ソフトウェアの フローチャートである。
【実施例】
第1図および第2図は、本発明の特徴を具体化した三次元物体を形成するための 立体造形システムを図式的に示すものである。これらの図面に示すように、槽1 0は重合性液体の浴11を入れるために備わっている。物体支持台12は、槽1 0内に配置されており、モータ(図示せず)によって槽内を上下するようにフレ ーム要素13および14によって適合されている。支持台12は、そこに本発明 に従って三次元物体が形成される部位である水平表面15を有している。槽10 には、その一方の壁面の上部にトラフ16が設けてあり、トラフ内にはプランジ ャまたはピストン17が配置されており、槽10内の重合性液体の上面20の水 準を制御するためにモータ18によって上下される。 浴11の上面20の水準は、ある角度で上面20に向けられているHe−Neレ ーザなどの線源21および、2セル型検田器などが可能である放射線検出器22 によって検出される。検出器22の位置は、He−Neレーザからの放射線を受 けるように上面20に関して余角をとるように調整される。モータ18によるプ ランジャ17の移動を制御するために制御システム23が備えられている。 コンピュータ制御放射線源24が浴]1の上方に配置されており、浴11の上面 20に既定のパターンで紫外線その他の種類の硬化放射線などの硬化媒質を発し 、当該の放射線が作用した部分の支持台上の層の重合性液体を硬化させる。線源 24の移動および動作ならびに物体支持台12の上下動は、以下に詳述するよう に、本発明のシステムのコンピュータ制御システム25の一体部分である。 槽10の上部にドクターブレード26が装備されており、槽の上部を水平方向に 移動するように適応されている。ブレード支持27は、槽10の一方の側面に沿 って配置されたレール30および31に滑動できるように設置されている。ねじ 山付駆動軸32がブレード支持27のねし山付通路(図示せず)を通っており、 モータ33による軸の回転によってブレード支持27が移動し、それによりブレ ード26が槽の上部を水平に移動する。 第1図および第2図に示した立体造形システムの動作は、一連の図面、第3図か ら第6図によく示されている。 まず第3図において、物体支持台12が、その水平表面]5が浴の上面20から れずかな距離に位置するように重き性液体の浴11内に位置決めされることから 立体造形の手順は始まる。この距離は、硬化される重合性液体の層の希望の厚さ よりも大きい。水平表面15のすぐ上の重合性液体の層が、硬化した時に、三次 元物体の最初の固体層を形成する。 プロセスの次の段階は第4図に示される。物体支持台12は、水平表面15上の 重合性液体の層34が浴11の上面20より上に保たれるように引き上げられる 。この重合性液体は比較的粘稠な液体であり、そのため、層が浴から引き上げら れた時に、支持台12の水平表面15の縁からすぐに流出しない。ドクターブレ ード26が水平方向に移動し、その下縁35が層34から余分な重合性液体を掻 き取り、上部作業表面36を平滑にする。 作業表面36に希望の水準を付与するために適切なブレード速度が経験的に決定 される。さらに、平滑な水準34を付与するために特定の速度でドクターブレー ド26による1以上のパスが必要な場合もある。通常のブレード速度は、はぼ毎 秒1〜10インチの間であろう。低粘度の重合性液体が使用される場合は、硬化 するまで液体を留めておく囲い枠を用いてもよい。 層34の作業表面36がドクターブレード26によってならされた後、物体支持 台12は第5図に示すように浴11中に下げられ、層34の平滑作業表面36は 浴11の上面20と同じ高さ、すなわち同一平面となる。層34を囲む浴11の 重合性液体は、本質的に層36の外周を支持する壁となる界面37を形成する。 物体支持台12および層34の浴11への浸漬によって生じる作業表面34また は浴11の上面20のいずれの乱れも、比較的わずかであり、すぐにおさまる。 コンピュータ制御放射線源24は、上面の何らかの乱れを解消するために短い遅 延をもって作動され、好ましくは紫外線その他の適切な放射線である硬化媒質を 既定のパターンで層34の作業表面36上に当て、放射線が作用する部位の重合 性液体を硬化させる。層34は十分に硬化され、以後同様にして作成される付加 的な層を支えるために、また、立体造形が終わり最終硬化前の成形物体の取扱い を容易にするために必要な未処理強度を得る。 層34の照射後、物体支持台12はさらに、第6図に示すように引き下げられ、 浴11から重合性液体が先行の硬化層34上に流入し、新しい層38を形成し、 プロセスの新たなサイクルが開始される。 上述のようにして、一連の重合化した層が第1図に示すように積層され、このと き各層は事実上、希望の三次元物体40の薄い断面である。個々の層の厚さは、 重合性液体の組成および粘度ならびに硬化放射媒質の性質および強度にもとづい て変更できる。しかし、通常の厚さは、約0.005から0.01インチまでの 範囲である。 前述の立体造形システムによって形成された最終三次元物体40は、槽10から 取り出され、三次元物体の境界表面内に残っている未硬化材料の硬化を完了させ るためにさらに処理が行われる。必要な場合、サンダ仕上げなどの表面仕上げを 行ってもよい。 本発明では、広範な硬化媒質と同様、各種の重合性液体が使用できる。しかし現 在のところ、アクリル樹脂などの光重合性液体が、その硬化のための紫外線とと もに好ましい。好ましくは、重合性液体の粘度は、100センチポアズを超えな ければならず、約1000〜6000センチポアズの範囲が好ましい。 本発明の好ましい実施態様の一例として、本発明の譲受人によって開発され、第 1図および第2図に図式的に示したコンピュータ制御立体造形システムは、第7 図に示した三次元物体を形成するために使用された。この物体の底面は8.25 X8.25インチ、最大高さは約4インチ、最小高さは約1インチであった。肉 厚は約0゜25インチであった。重合性液体は、デソト拳ケミカル・カンパニー 社製の4112−65樹脂と称する比較的粘稠な樹脂を使用した。その浴の温度 は約30℃に維持された。作成する各層の厚さは約0.02インチであった。作 成する各層について、本発明の特徴を具体化する以下の手順に従った。立体造形 システムの物体支持台を4112−65樹脂の浴中に沈め、希望の厚さよりも厚 めの重合性液体の初層を形成するために液状樹脂を支持台の表面上に流入させる 。支持台を引き上げ、その初層が浴よりも上にあるようにする。毎秒約1インチ で移動するブレードが1パスで約0.1インチの重合性液体を掻き取り、支持台 の支持表面に約0.02インチの重合性液体を残す。支持台はその後、層の平滑 な作業表面が浴の上面と同じ高さになるように下げられる。層は、約15ミリワ ツトの出力で約325ナノメートルの波長で放射線を発するHe−Cdレーザか らの紫外線を受ける。 各層のサイクルの合計時間は約35秒であった。従来の方法によりこうした部品 を製作するための時間は、層サイクル当たり約165秒であった。この実施例に おいて本発明の実施態様を利用することにより節約された合計時間は、約7,5 時間であった。 次に、第8図について説明する。本発明の水準測定の面に関する好ましい実施例 が、樹脂槽30の使用液体20(デソト#65などの紫外線硬化性感光性重合体 )の水準を測定するために立体造形装置10に付属されて示されている。第8図 に示す立体造形装置は、本発明の好ましい実施例の追加および関連装置とは別で あり、米国特許第4,575,330号(すでに参照により一体を成している) に示されており、頭字語5LA−1の名称により3Dシステムズ社によって販売 されている商用立体造形装置に見られる基本的な形式を有している。 立体造形装置10は、樹脂槽30の壁60にある通路50によって樹脂槽30と 連絡している副槽40が付加されている。副槽の寸法は、本発明の好ましい実施 例では7×4インチである。使用液体20が、樹脂槽30および副槽40を満た している。使用液体は、副槽から樹脂槽へ、また逆に、樹脂槽から副槽へ、自由 に流れることができる。樹脂槽(従って、副槽)の使用液体の水準は、部品(立 体造形により製作される物体を「部品」と称する)の立体造形製作を実行するた めに既定の水準に精確に管理されなければならない。本発明の装置は、図示され た好ましい実施例の形式により、この目的を達成する。 副槽40の側面下方の樹脂槽30にヘリウム−ネオンレーザ100が装備されて いる。このレーザは、その出力ビームが副槽の側面に沿って真上に発せられるよ うに心合せが行われている。本発明の好ましい実施例では、ユニフェーズ社の1 508レーザが良好であった。ユニフェーズ1508レーザは、その低価格、小 型であること、および、低出力要求条件を理由に選択された。このレーザから発 する光は使用液体を重合化させない。 ヘリウム−ネオンレーザの出力ビーム110は、副槽上方の張出しに取り付けら れた鏡120(ロリン・オブティクス社#60.21)に向けて上方に発せられ る。 この鏡は、第9図でよくわかるように、副槽40の使用液体の表面70への第1 の光路に沿ってビームを屈折させる。ビームは、表面70に対して角度βで使用 液体の表面にぶつかる(入射角は90″−βである)。角度βは、ビームの検出 可能成分が第2の光路114に沿って反射されるような値を持つ。角度の可変範 囲は、使用液体およびレーザの特性ならびに槽の寸法にもとづいて、その第2の 光路の要求条件に適合する。ここで説明する好ましい実施例では、この角度は1 5″である。 本明細書に説明する装置は、樹脂槽ではなく5.副槽の樹脂の水準をII定する 。これは、部品製作の各サイクルで部品または支持体が樹脂表面を通過する時に 主槽に気泡その他の表面の乱れが生じる恐れがあるので、有利だからである。こ うした気泡その他の表面の乱れにビームが当たった場合、ビームが誤った角度で 樹脂表面から反射する原因となる可能性がある。他の表面の乱れは、誤ったビー ムの屈折の原因となり得る浸漬部品の上部に生しるかもしれず、こうした乱れを 平滑にするために時間かかかることになる。これらは樹脂のふくれ、または、ブ レードの引きのために、再コーテイングにおいてブレードにより過剰な樹脂が押 し出されてしまった領域を含む。こうした問題は、閉鎖容積部分を有する、また は、大形の平坦な水平表面を有するある種の部品形状の場合に特に深刻となるが 、そうした形状については後に詳述する。副槽の樹脂の水準を測定することによ り、上記の問題は、最小限になるかまたは完全に解決される。 使用液体の表面70からの反射後、ビームは、ビームが液体表面70にぶつかっ た時の液体表面に対する角度と同じ角度で第2の光路114に沿って戻る。その 後、ビームは、鏡120と反対側の副槽40の側面のプランジャーハウジング8 5に取り付けられた2セル型光検出器130に当たる。鏡は、使用液体の水準が 希望の高さにある時にビームが2セル型光検出器130に当たるように調整され る。鏡は、使用液体の水準が希望の高さにある時にビームを使用液体の表面から 2セル型光検出器に反射させるように調整された後は、移動または回転すること はない。 第11図に示すような、良好な2セル型光検出器は、シリコン・ディテクター・ コーポレーション社製の、製品番号SD113−24−21−021として知ら れているものである。他の製品および大きさの2セル型光検出器も満足できるで あろう。ハママツ二次元PSD(Sl 544)や二次元ラテラルセル(SIB 52)といった線形PSD (位置検出器)も適応できるであろうし、長さ単位 で大量の出力を測定し表示することを目的とする装置の場合には好ましいかもし れない。2セル型光検出器は2の並列光電池140から成る。2セル型光検出器 は、並列光電池140が一方が他方の上にあり、両方の光電池か使用液体の水準 より上にあるように、プランジャハウジング85に取り付けられている。光検出 器は、第2の光路114と直角に交差するように傾けることができ、これは第9 図および第12図でよくわかる。こうすることにより、光検出器のビームの輪郭 を、ビームが本来円形の輪郭であった場合に、楕円にならず、円になるようにで きる。 液体の水準がカール、加熱などによる収縮のために上下した場合、ビームは表面 70の異なる点に当たる。従って、ビームは2セル型光検出器の異なる点に当た る。 ビームのこの作用は第9図の影線で示されており、図では使用液体の低位水準8 0はビームを第2の光路150に沿って反射し、2セル型光検出器に対して低位 の点にぶつかる。使用液体の水準の変化はこの作用を図示するために誇張されて いるが、本発明の好ましい実施例は、既定の高さにその水準を維持するために使 用液体の水準をCI定するものである。水準の変化は、そうした水準の変化が以 下の説明するようにすばやく補正されるので、ごくわずかである。 使用液体の水準の所与の変化は、値βにかかわらず、ビームが2セル型光検出器 にぶつかる点で同じ変位を生じる。第10図は、水準82から高位水準84への 使用液体の水準の変化の結果を図示している。水準82と84との間の差は垂直 距離dである。2の異なるビームは、第1の光路]51および152に沿って到 達し、それぞれ、角度β1およびβ2で液体の表面にぶつかると示されている。 (第1の水準82についての)第2の光路153および154は、垂線Pの同一 の点Y1に交わるように設定されている。使用液体の水準が水準84まで上昇す ると、ビームはそれぞれ第2の光路155および156をたどる。単純な三角法 による計算は、両方の第2の光路155および156は垂線Pの同一の点Y2に 交わり、YlとY2との間の垂直距離は使用液体の水準の垂直変化、値dの2倍 であることを示している。従って、βの変化は、本発明に従って液体の水準を測 定する方法の精度に影響しない。選択するβの値は、主として、装置の制約条件 内のビームの良好な反射を得る角度に依存する。 使用液体の水準の変化は、2セル型光検出器によって発せられた電気信号の変化 をもたらす。2セル型光検出器の光電池140は、厚さ1ミル未満の狭いスリッ ト160によって分離されている(第11図参照)。2セル型光検出器がレーザ によって照射されていない時、または、レーザビームが光電池140の間のスリ ット160を精確に中心としていない時は、両方の光電池の出力は等しい。ビー ムが移動して他方のセルではなく一方のセルに当たるようになった場合、出力は 等しくなくなる。 比較回路による不等出力の比較は、以下に述べるように、プランジャ95を駆動 させるために、ステップモータ90に送られる信号を生じる。プランジャ95( 第9図参照)は、使用液体の水準を維持するために必要に応じて上下する。 プランジャは、使用液体の水準を空間的にほぼ一定の水準に維持する。これは、 レーザビームの焦点を保つために有利である。部品製作の各サイクルで槽に新し い樹脂を供給する何らかの樹脂供給システムの場合のように、水準が変化できる ようになっている場合、レーザは新しい水準について再び焦点合わせされなけれ ばならないであろう。 第12図について説明する。光電池140の電流出力205および207は、各 光電池の出力をO〜−2,5ボルトの間の電圧に変換する電流/電圧変換器20 0に供給される。電流/電圧変換器200の2の電圧出力215および217( 各光電池140が各自の出力を有する)は減算器220に供給され、そこで電圧 出力は減算される。基準電圧の加算により(図示せず)、電圧出力215と21 7との間の差は、0〜+5ボルトの間の信号225である。液体が希望の水準に あれば、信号225は+2.5ボルトになる。 信号225は、アナログ/ディジタル変換器230に送られ、そこで信号はディ ジタル信号235に変換され、コンピュータ240に送られる。コンピュータ2 40は、信号235を希望の液体の水準の既定のディジタル信号と比較し、ステ ップモータ制御装置245を起動させる。 ステップモータ制御装置245は、次に、液体の水準を希望の値に戻すために液 体を変位させるためにプランジャ95を上下に移動させるステップモータ90( 好ましい実施例では、ミナリック・エレクトリック社のLAS3802−001 ステツプモータ)を作動させる。 コンピュータは、最初の浸漬動作の後ただちに液体の水準を測定するようにプロ グラムされており、この動作において、部品は、支持台を液体中に深めに動かし て浸漬された後、支持台は引き上げられ、部品上に次の層を描く。使用液体の水 準は、製作プロセスにおけるこの特定時間にのみ測定され制御される。コンピュ ータは、この特定時間にのみ信号235を基準電圧と比較し、ステップモータ制 御装置245がステップモータ90を動作させる時間および方向を決定する、ス テップモータ制御装置245への信号242を生成する。 本発明の再コーテイング装置の補助的な実施例では、ブレード再コーテイングプ ロセスに関連したいくつかのパラメータを変更できる能力が備わっており、これ らのパラメータには、ドクターブレードと槽の樹脂浴の表面との間の距離である ブレードギャップ、ブレードと部品上部との間の距離であるブレードクリアラン スがある。 通常、ブレードクリアランスは、形成される次の層の層厚さと同じであるが、そ うでない場合もある。 ブレードギャップの最適な大きさは、いくつかの検討事項の比較考量によって異 なる。大きなブレードギャップは、平滑になるのに時間を要し、樹脂浴の表面に しわを生じる恐れがあるので問題である。これがそうした問題となる理由は、ブ レードギャップが、部品の上部を掻取りのために樹脂表面より上に引き上げなけ ればならない程度および、その後に、次の層の硬化が始められる前に部品の上部 を下げなければならない程度を決定するからである。例えば、ブレードギャップ が125ミル、希望のブレードクリアランスが20ミルである場合、部品の上部 は掻取りが始められる前に樹脂表面よりも105ミルだけ引き上げられなければ ならず、その後、硬化が始められる前に125ミルだけ下ろされなければならず 、それにより部品の上部は樹脂表面下20ミルにあるようになる。部品上部の移 動が大きくなればなるほど、支持台および支持体ならびに部品の他の部分による 液状樹脂内外への移動による樹脂表面に生じ得る乱れは大きくなる。この乱れは 上述では「しわ」と述べた。これらのしわは、通常、樹脂と部品との界面で生じ る。 ブレードギャップが小さい場合も問題である。ブレードギャップが小さくなれば なるほど、通常、ドクターブレードが所定の掻取りで大量の樹脂を押し出すこと になるからである。例えば、ブレードギャップが0ミルであり、ドクターブレー ドが浴の表面で正確に保たれている場合、上述のしわの問題は低減できるかもし れないが、ドクターブレードは、槽の表面全体から樹脂を掻き取らなければなら ないかもしれない。これは樹脂のわずかな波を生じ、槽の側面にあふれさせ、樹 脂表面の気泡を生じ破裂させる可能性がある。 25ミルのブレードギャップが上述の両者の問題の良好な妥協点となることがわ かっている。通常、ブレードギャップは部品製作前に一度設定すれば、その後、 部品製作を通じて一定に維持される。 変更が有利である別のパラメータは、ブレードクリアランスである。しかし、ブ レードギャップと異なり、ブレードクリアランスは、部品製作前に一度だけでは なく、部品製作においてブレードクリアランスを変更できることが望ましい。 可変ブレードクリアランスは、段階再コーテイングが可能になるので有利である 。段階再コーテイングは、各掻取りで異なるブレードクリアランスおよび、恐ら く異なるブレード速度によって、所定の層の再コーテイングのためにブレードの 多数の掻取りが使用される場合である。例えば、次の層の層厚さが20ミルであ るとすれば、段階再コーテイングプロセスでは、ブレードクリアランスは、第1 の掻取りで60ミル、第2の掻取りで40ミル、第3の掻取りで20ミルとなる かもしれない。その結果、各掻取りで、再コーテイングに単一の掻取りが使用さ れた場合に比べ゛C少量の樹脂が掻き取られ、再コーテイングに単一の掻取りが 使用された場合に比べてブレード前面に樹脂のふくれが生じることが少ない。ブ レード前面に大きなふくれが生じることは、閉鎖容積の樹脂がブレードとぶつか った場合に問題となる。閉鎖容積がある場合、重力により、ブレードの下に大き なふくれの樹脂が流れ込み、ブレードの跡に形成される平滑な層の希望の層厚さ を乱す可能性がある。最初の時にふくれを生じさせなければ、この問題はそれほ ど深刻にはならないであろう。この問題は、第13図によって示すことができ、 掻取り途中のブレード300が示されている。部品304は、ブレードクリアラ ンスとなる距離303だけブレードより下に下げられている。平滑な樹脂層30 1は、ブレードの跡に形成されるが、参照番号302て指示された余分な樹脂の ふくれがブレードの前面に生じる。ブレードが参照番号305て指示された閉鎖 容積の樹脂にぶつかった時、ふくれ302が十分に大きい場合、ふくれによる樹 脂は、指示されているようにブレードの下に流れ込み、平滑な層301の形成を 乱す恐れがある。 この作用は、ブレードが部品の平坦な水平表面を移動している場合は、樹脂がブ レードの下に流れ込む余地が少ないので、それほど大きくない。 変更できるもう一つのパラメータは、ブレード速度、それも特に、各掻取りにつ いて異なる速度が指定できる段階掻取りにおけるブレード速度である。部品形状 に合わせてブレード速度を設定できるようにすることが有利である。ブレードが 部品の大きい平坦な水平領域を移動している場合、ブレードの移動が速すぎれば 、引張りによって過剰な樹脂が掻き取られる恐れがあり、それはブレード下の樹 脂を個別の速度で動かすことになる。例えば、ブレードが毎秒5インチで動いて いる時、ブレード下1ミルの樹脂は毎秒4インチで、さらにその下の樹脂は毎秒 3インチで動かされるかもしれない。ある場合には、平坦な領域でも引張りが相 当深刻になり、すべての液状樹脂がブレードによって掻き取られるかもしれない 。 従って、大きい平坦領域では、上記の問題が生じないようにブレード速度を減速 することが望ましいであろう。 他方、閉鎖容積の上では、ブレードが過度に緩慢に移動した場合、これは、ふく れの樹脂がブレードの下に流れ込むのに多くの時間がかかることになる。従って 、閉鎖容積の上では、樹脂が流れ込むだけの時間がないようにブレードの移動速 度を高めることが望ましい。しかし、速度を過度に高めると、樹脂の波がブレー ドの前面に形成され、気泡を生じたり破裂させたりする恐れがあるので、速度を 過度に高めることはできない。 残念ながら、部品製作中に、部品形状にもとづいて動的にブレードの速度を変化 させることは難しい。しかし、段階再コーテイングの各掻取りについて可変速度 が付与された場合、各掻取りのブレード速度および掻取り数は、通常の部品につ いて上述の問題を最小限にするように選択できる。例えば、大きな平坦な領域と 閉鎖容積か合わさっているような一定の部品の場合、各掻取りで比較的緩慢なブ レード速度により5〜10の範囲で、層ごとに多数の掻取りを使用することが望 ましいかもしれない。 多数の掻取りにより、各掻取りで少量の樹脂だけが押し出され、その結果、閉鎖 容積にぶつかった時でもふくれが生じてブレードの下に流れ込むことができなく なる。 他方、緩慢なブレード速度による、大形の平坦な水平部品の表面から樹脂を過度 に押し出すという問題は、最小限になる。これは、ブレードがすべての樹脂を掻 き取るほど十分に引張りを生じることができないからである。 さらに、緩慢なブレード速度は、大きなふくれが形成できないので、閉鎖容積の 上では問題とはならず、緩慢なブレード速度でもブレードの下に流れ込む樹脂の 問題はほとんど、または、まったく生じない。 掻取り開始前に部品が樹脂中に過浸漬される程度を変化できることも有利である 。前述のように、部品は、通常、次の層の希望の層厚さよりも大きい厚さだけ樹 脂の表面に下に浸漬される。例えば、本発明の論受入である、3Dシステムズ社 により製造されている5LA−250として公知のSLAの商用実施例では、好 ましい層厚さは1 / 2 mm以下である。5LA−250では、部品は、通 常、樹脂中に8市過浸漬され、この厚さは通常の層厚さの数倍である。従って、 層厚さに応じてこのパラメータを変更できることが望ましい。 通常の再コーテイングサイクルは、以下の段階を含む。 1)部品の深い過浸漬、2)樹脂表面の水準の検出および調整、3)浸漬の引き 上げ、4)掻取り、5)表面が安定するまでの遅延。層厚さより大きい厚さの過 浸漬は、掻取りにおいて平滑にできる部品の上部に樹脂のふくれが生じることを 保証するだけでなく、段階2)の樹脂の水準検出を妨げる可能性のある表面の乱 れが高速に平滑になることを保証する。部品が表面近くに浸漬された場合、部品 の上に形成し得る何らかの表面の乱れが平滑化するために、より多くの時間がか かるであろう。これは、部品の上部と樹脂との間の「通路」が小さくなり、乱れ を平滑にするのに必要な樹脂の動きを制限するからである。従って、層厚さより も大きい過浸漬により、水準検出はそれに応じてさらに精確になる。さらに、過 浸漬が1層の厚さに制限された場合、1層2mm(約20ミル)以下の薄い層厚 さはあまり望ましいものではないだろう。 しかし、こうした層厚さは、高分解能によるある種の部品を製作するには必要か もしれない。従って、深い過浸漬はまた、この範囲での薄層を使用することを容 易にすすなわち、この実施例では、ブレードギャップ、ブレードクリアランス、 過浸漬の深さおよびブレード速度を変化できる能力、ならびに、段階再コーテイ ングを使用できる能力は、特定の部品形状に合わせた特注のブレード再コーテイ ングを改善させるための手段をイ」与し、それにより、これらの形状に関した特 定の問題を克服することができる。 補助的な実施例において、ブレード設計をさらに効率的にするために変更するこ とができる。5LA−250では、ドクターブレードの断面は1/8インチの幅 を有する方形である。さらに、ブレードは、ブレードおよびその支持体が片持ち ぼりに似たようにブレードの移動を案内する支持レールと一端だけで支持されて いる。これは、フラッタおよびねじれとして公知の問題を生じる可能性かあり、 それはブレードの不支持端の揺れやねじれとなり、不均一な層厚さなどの再コー テイングプロセスの不具合につながる。不支持端がねじれや揺れを生じる程度は 、ブレード長の平方に比例する。生じ得る付加的な問題は、この問題によるブレ ードギヤツブの設定である。このプロセスは、それぞれが不具合を生じ得る多数 の段階を含んでおり、また、時間のかかるものである。 さらに、そのプロセスは、トルクを与えることになるねじを回転する必要があり 、従って、ブレードを変形させる。 やはり3Dシステムズ社によって開発された、5LA−500として公知の立体 造形システムの新しい商用実施例では、ブレードは、5LA−250で用いられ ているブレードから設計し直されている。 初めに、ブレー ドギャップの設定をより容易に得ることを可能にするために、 マイクロメータねじがブレードの各端に付与されており、このねじが、樹脂表面 上のブレードの各端の高さがブレードにトルクを与えることなく1/2ミルの許 容差で公知の値に独立して調整されるようにする。 さらに、ねじ山の付けられた伸縮自在な針がブレードの各端に一つずつ備わって おり、6針はブレードの底面から既知の距離たけ出るようになっており、その距 離は期待のブレードギャップに等しい。現在のところ、針はブレードの底面から 25ミル出るようになっている。異なるブレードギャップが希望であれば、異な る量だけ伸びる針を使用することができる。 このような針は第14図および第15図に図示されている。第14図は、両端に 針401および402が備わっているブレード400を示している。第15図は 、ブレードに取り付けられた針の一方の拡大図である。図示されたように、針は 、ブレードの底面408から距離404だけ出ている延長部分403を有してい る。5LA−500では、この距離は25±0.5ミルである。図のように、針 は、好ましくは、60回転/インチのマイクロメータねじであるねじ山部分40 5を有している。 ブレードの針取付部は参照番号409て識別されている。図のように、取付部は 、ブレードの底面から針が出る程度を制御するための、針のねじ山部分がねじ込 まれることができるねじ山部分406および止め407を有している。 ブレードギャップを設定するには、針が適切な量たけ出るまでブレードの中に針 をねじ込むことにより取り付け、ブレードの一端のマイクロメータねじをその端 の針が樹脂表面に触れるまで回転する。これは、針の先端が、1/4〜1/2ミ ルの範囲で接した時に樹脂表面と容易に観察できる大きなメニスカスを形成する ので、目視により容易に判断できる。従って、針は1/4〜1/2ミルの許容差 で表面に位置させることができる。次に、ブレードの他方の端のマイクロメータ ねじを、その端の針が樹脂表面に触れるまで調整する。その後、ブレードを引き 上げてから、両方の針が同時に表面に接するかどうかを調べるために引き下げる 。同時に接しない場合は、接するようになるまで上記のサイクルを繰り返す。両 方の針が同時に表面に接すれば、ブレードギャップは設定されたとみなし、針は ねじ込まず、それ以上出さない。 しかし、針はブレードの重さが同一であるように取付部に保持される。 針をブレードに取り付けるための他の手段も、ラチェット機構で使用されている ものに類似の戻り止めピンおよびレリースボタンの使用を含め、可能である。 ブレードのねじれや揺れを低減するために、第2のレールを付加して、レールの 各端がそのレールによって支持されるようにすることができる。これは、ブレー ドの不支持端のねしれや揺れを低減または解消するであろう。 こうした二重レール支持により、ブレードは、強度を増すとともに、ブレード中 央の揺れを低減するために厚くすることができる。厚いブレードは、より大きく たわむので、1つの支持だけでは支持できないかもしれない。 現在、5LA−500のブレードは、幅1/8インチ、3/16インチおよび1 /4インチのものが入手できる。 さらにまた、第16図に示すように、ブレードの断面は変更することができ、長 方形である必要はない。まず、ブレードの底面は、底面付近のブレードの非水平 な縁が参照番号506および507で指示されるような、それぞれ、迎え角およ び離れ角として公知の、角を樹脂表面と形成するように構成することができる。 迎え角はブレードの移動方向の角であり、離れ角は他方の縁の角である。これら の角は、ブレードの下への樹脂゛の流れをいっそう改善するために付加される。 こうした角がない場合、ブレードの下で乱れが生じ、気泡を生じる可能性がある 。 気泡は、ブレード下をブレードとともに移動し、ブレードが部品表面を掻き取っ た後に残る恐れがあるので問題である。結果として、気泡は部品の不良を生じる であろう。ブレードの縁に角を付けることにより、ブレードの下の圧力勾配が低 減され、液体の分割を小さくし、従って、乱れの発生および気泡の形成を少なく する。部品形状によるが、これらの角は5〜8@の間の範囲とすることができ、 また、迎え角は離れ角と異なるようにできることがわかっている。5LA−50 0の場合、6″の迎え角が使用されている。 第16図のブレードは、どちらの方向にも掻き取りできるように相称形として示 されている。または、移動方向の迎え角によるいずれかの方向に選択的に掻き取 るために非対称形のブレードを使用することも可能であろう。 その他のブレード構成も可能である。 第17図は、第16図のブレードで各頂角が曲線である場合を示している。これ は樹脂表面の乱れをさらに低減できるだろう。第18図は底面全体が曲面となっ ている例である。第19図は底面が鋭利な頂角となっている例である。 次に、5LA−500の水準測定装置について説明する。この装置は、前述の2 セル型光検出器によって生じる可能性のある問題を解消している。前述のように 、2セル型光検出器は気泡の影響を受けやすい恐れがある。 上記の装置でこの問題を解決するために、気泡が形成されないように副槽が付加 されており、樹脂の水準は副槽で検出される。しかし、樹脂の層が米国特許出願 番号第365.444号に記載されたような重質な不混和性液体上に支持される 場合、副槽の水準は、仮定ではあるが、主槽の樹脂の水準の正確な決定要素とは ならないかもしれない。その理由は、部品製作中に、主槽の樹脂が副槽に対して 不均等に消費される可能性があるからである。 この不均等さのために、副槽の液体は、全体として見た場合、主槽の液体と同じ 密度ではならなくなる。このことが副槽の樹脂の水準を誤って高すぎるように示 す原因となるかもしれない。 この問題を解決するために、5LA−500では、前述の2セル型光検出器では なく、主槽の樹脂の水準を検出するためのフロートを含む装置が使用されている 。こ−のフロートは、気泡の影響を比較的受けにくく、従って、副槽ではなく主 槽の樹脂の水準を検出するために使用できるという利点がある。その理由は、フ ロートの側面に気泡が付着してもフロートの重さ、それゆえ、フロートが浮いて いる水準を変えることはないためである。従って、副槽は必要とせず、フロート は、樹脂層が重質の不混和性液体上に浮いている場合でも樹脂の水準を正確に検 出する。 フロートは多様な形状をとることができる。5LA−500の場合、現在、その フロートは、約50 cc以上の容積を持つ小型缶の形をしている。さらに、フ ロートは有利なようにテフロン被覆されており、フロート上部に乗ったり、側面 を濡らしたいずれの樹脂もすばやくはね落とし、相当の期間フロートの重さをほ とんど変えることはない。 気泡がフロートの下に滞留できたとしたら、フロートの浸漬の程度を変えるので 誤った水準測定を生じるかもしれない。こうした場合、この問題を解決するため に、気泡をフロートの下に滞留させない、第20図に示すような別のフロート設 計が可能である。 S L A、 −500で現在使用されているフロート装置を第21図に示す。 図示されたように、装置は、フロート602、支持棹603、軸受604および 光学検出回路605を有している。図のように、支持棹はフロートに連結されて おり、フロートは槽600内の樹脂表面601に浮いている。支持棹はまた、軸 受604を支点として上下に可動できる。5LA−500では、軸受604は有 利なように等級9の軸受となっている。 光学検出回路605は第21図に詳しく図示する。図示されたように、回路は、 支持棹603に結合されている部材6051、それぞれ光線6056および60 57を発する発光ダイオード(LED)6052および6053、ならびに、そ れぞれ光線6056および6057のしゃ断されていない存在を検出する光検出 器6054および6055を含んでいる。光検出器は、前述の、光検出器の電気 信号に応答して樹脂の水準を上下させるためのプランジャその他の装置(図示せ ず)と電子工学的に結合されている。 液体の水準の何らかの変化は、フロートの対応した垂直変位を生じさせる。これ は次に、支持棹603を軸受604を支点として傾斜させ、部材6051を液体 の変位の大きさとなる距離だけ垂直に移動させる。 図示のように、部材6051が2の光線6056および6057の間にあって、 いずれの光線もしゃ断していない限り、しゃ断されていない光線の存在がそれぞ れ光検出器6054および6055によって検出され、樹脂の水準は正しい高さ にあると推定される。光検出器の不良によって対応するLEDからの何らかの光 線を拾って検出されることもあるので、部材6051が対応する光検出器への一 方の光線の通過を十分にしゃ断するほど傾けられた場合にのみ、樹脂は誤った水 準にあると推定される。この場合、光検出器に電気的に結合されたプランジャそ の他の装置は、樹脂の水準すなわちフロートを正しい高さに位置決めするために 上下いずれかに動かされる。光検出器6054によって検出される光線6056 が部材によってしゃ断された場合は、樹脂の水準は低すぎると推定され、その場 合、樹脂の水準が正しい高さまで上昇するまでプランジャその他の装置は下げら れる。 光検出器6055によって検出される光線6057が部材によってしゃ断された 場合は、樹脂の水準は高すぎると推定され、その場合、樹脂の水準が正しい高さ まで下げられるまでプランジャその他の装置は上げられる。光線6056および 6057の両方が同時に部材6051によってしゃ断されることはない点に留意 しなければならない。従って、この装置は、樹脂の水準が正しくない高さである 場合に、その適切な対応が樹脂の水準を上げることであるか、または、下げるこ とであるかに関して、曖昧さはまずほとんど存在しない。 次に、5LA−250で使用される再コーテイング用ソフトウェアについて説明 する。フローチャートによるソフトウェアの仕様を第23図に示す。このソフト ウェアを利用する前に、使用者はまず、支持台の移動を制御するために用いられ る一定のパラメータを指定しなければならない。これらのパラメータは、ZAS ZV、ZWおよびZDである。米国特許出願番号第331,644号に詳述され たように、支持台はPROCESSコンピュータとして既知のコンピュータの制 御のもとにある。 ZAは、PROCESSコンピュータが支持台を加速または減速させる量である 。ZVは、支持台が得ることができる最大速度である。ZDは、支持台を掻取り 前に液状樹脂中に過浸漬させるための深さである。前述のように、ZDは、通常 、層厚さよりも大きい。ZWは、安定化のための遅延であり、掻取り後に支持台 が下げられた後、槽の樹脂と同じ水準の部品の上部に樹脂層の上面を付与するた めに、PROCESSコンピュータが待機ヲ指示される時間量である。PROC ESSコンピュータは、部品上部の樹脂を硬化させる前にZWによって指定され た時間量だけ待機する。 これらのパラメータのほかに、使用者は、層ごとの掻取り数を示すSN、入城速 度を意味し、すべての掻取りが指定の速度で行われることを指示するGVといっ た、各層または一定範囲の層についての他の変数を指定することができる。使用 者はまた、1から7の各掻取りに関するそれぞれ個別の速度であるVlからVl を指定することもできる。これらの値を設定することにより、使用者は、掻取り ごとに速度を変化させたいと指示することができる。 プロセスはステップ700に始まり、この場合、層Nが描かれる。次に、ステッ プ701で、支持台は、ZAおよびZvにより決定された速度でZDの深さだけ 樹脂表面下に下げられる。ステップ703では、支持台が動かされてから樹脂を 安定化させるために浸漬後の遅延が実施される。 ステップ704ては、2セル型光検出器からの読みが得られ、検出回路から導か れた偏り(BCVAL−BIASと識別される)について補正される。その読み は、UPLIMと指示される上限値およびLOWLIMと指示される下限値と比 較される。読みがこれらの2値の間にあれば、樹脂の水準は正しい高さにあると 推定される。 水準が正しい高さにあると仮定して、ステップ705では、フラグが設定された かどうか検査される。フラグは使用者が押すキーに応答して設定され、使用者が 手作業により槽に樹脂を足す、または、槽から除くことを指示する。フラグが設 定されていない場合、ステップ708で、層N+1の掻取り数SNがOより大き く、かつ、ブレードが掻取り中にぶつからないような安全な位置に支持台がある ことを判定するために検査が行われる。支持台の位置の上限は簡略記憶名N05 WEEPで指示される。 これらの条件が満たされた場合、ステップ709において、内部カウンタ5WE EPがまずOに初期化されてから、増分される。ステップ712で、ブレードが 槽の前部にあるか後部にあるかを判定するために検査される。 その時槽の前部にあれば、ステップ713で、ブレードは、5WEEPの現在値 にもとづく速度で(SWE E PDISTにより指定された距離だけ)槽の後 部に向かって掻取りを行う。 ブレードか槽の後部に達すると、通例、簡略記憶名LIMIT 5WITCHで 識別されるスイッチを動作させる。リミットスイッチが作動すれば、ステップ7 27で、SNにより指定されたすべての掻取りがその層について実行されたかど うかを判定するために検査が行われる。掻取りが行われていなければ、ステップ 709にジャンプして戻り、上述のサイクルが繰り返される。 ステップ714に戻って、リミットスイッチが作動しない場合、ブレードは後部 に向かって毎秒0.5インチの速度でゆっくりと移動し、リミットスイッチが2 秒以内に作動すれば、ステップ722にジャンプする。それでも作動しない場合 、プロセスはステップ721て終了する。 ステップ712に戻り、ブレードが槽の後部にある場合、ステップ717で、ブ レードは現在の掻取り数の関数であるはずの速度で槽の前部に向かって掻取りを 行い、その後、ステップ718で、リミットスイッチが作動したかどうかを確認 するために検査が行われる。スイッチが作動ずればステップ722にジャンプす る。作動しない場合、ブレードは前部に向かって毎秒0. 5インチの速度でゆ っくりと移動し、リミットスイッチが2秒以内に作動すれば、ステップ722に ジャンプする。それでも作動しない場合、プロセスはステップ721で終了する 。 支持台(および部品)が樹脂表面下に過浸漬された直後の段階であるステップ7 04に戻って、樹脂の水準が正しい高さにない場合、ステップ723において、 樹脂の水準が高すぎるのか低すぎるのかを確認するために検査が行われる。BC VAL−B IASがUPLIMよりも大きければ、樹脂の水準は低すぎるので あり、プランジャは下げられなければならない。ステップ724では、プランジ ャがすでに槽の底にあるかどうかを確認するために検査が行われ、プランジャが 槽の底になければ、ステップ725および726においてプランジャは下げられ 、簡略記憶名PLUNGPO5で識別されるプランジャ位置が更新される。ステ ップ727で、樹脂を安定させるために遅延が開始され、再び樹脂の水準を検査 するためにステップ704にジャンプする。その後、上述のサイクルが繰り返さ れる。 ステップ724に戻って、プランジャが槽の底にある場合、水準を上げるための 唯一の方法は、槽に樹脂を加えることである。ステップ732で、水準が再び検 査され、水準がまだ低すぎるという場合、ステップ733および734で、使用 者は、手作業で樹脂を加えることを指示するキーを押すようにめられる。このキ ーが押されるまで、プロセスはループに入る。キーが押されると、フラグ(ステ ップ703で検査されるものと同じフラグ)が設定される。使用者が当然のこと として樹脂を槽に足している間、ステップ739でプロセスは樹脂の水準が現在 水準になるまでループに入る。樹脂の水準が現在水準になると、ステップ740 で、十分な樹脂が足されたことを指示するメツセージが使用者に示され、ステッ プ704にジャンプする。 ステップ705に戻り、樹脂が加えられ樹脂の水準が正しい高さになった後に、 フラグはリセットされなければならない。この状態はステップ705および70 6で検出され、ステップ707でフラグはリセットされる。 ステップ723に戻って、BCVAL−B IASがLOWLIMよりも小さい 場合、樹脂の水準は高すぎることを示し、プランジャは上げられなければならな い。ステップ728で、プランジャがすでにその可能な最高位置にある(0で指 示される)かどうかを確認するために検査が行われる。プランジャが最高位置に なければ、ステップ729および730においてプランジャは上げられ、簡略記 憶名PLUNGPO8で識別されるプランジャ位置が更新される。その後、ステ ップ727で、樹脂を安定させるために遅延が開始され、ステップ704にジャ ンプする。 ステップ728に戻り、プランジャがすでにその可能な最高位置にあり、それ以 上上げられない場合、使用者は槽の樹脂の一部を除去するように通告されるはず である。ステップ741で樹脂の水準がまだ高すぎるかどうかを判定するために 検査が行われ、ステップ742および743で、使用者は、樹脂を除去するよう にめるメツセージが送られ、そのメツセージを認めるキーを押すように要求され る。キーが押されるまでプロセスはループに入る。キーが押されると、ステップ 744でフラグが設定され、その後、ステップ745で、使用者が樹脂を除去し ている間、樹脂の水準は、適切な高さになるまで検査される。樹脂の水準が適切 な高さになるまで、プロセスはループに入る。樹脂の水準が正しい高さになると 、ステップ746て使用者は樹脂の除去を停止するように通知され、ステップ7 04にジャンプする。ステップ705から707では、前述のように、フラグが リセットされる。 水準測定は、各層で実施される必要はないが、1)熱膨張、2)収縮、および、 3)支持台の支持によって生じた変位、のいずれかの理由で水準が変化した可能 性がある場合には必要であることに留意しなければならない。 これらのいずれも存在しない場合、水準測定は各層について行う必要はない。 ステップ749に戻って、層N+1のすべての掻取りが実行されると、ZWであ る安定化のための遅延が開始され、ステップ750および751で、層N+1の ベクトルか計算され、ステップ751でこれらのベクトルによって層か描かれる 。ベクトルの計算および層の描写に関する詳細は、米国特許出願番号節331, 644号に記載されている。 その後、上記のサイクルが部品の残りのすべての層について繰り返される。 以下に、5LA−500で使用されている、再コーテイング用ソフトウェアのバ ージョン3.60のリストを記載する。このソフトウェアは、TURBOPAS CALで書かれた以下のモジュールを含んでおり、その各モジュールを記載する 。 モジュール説明 UTLSWEEP、PAS 部品製作において掻取りを制御する。BUI LDとともに使用される。 5INSTEP、PAS 再コーテイングにおける支持台の正弦波ステップを行わせる。 MACHINE、PRM 掻取りの入力/デフオールドパラメータを含む。 AUTOLEVEL、PAS 層の描写の間の水準測定を実行する。 UTLADJUST、PAS 部品製作前に樹脂の水準を設定するために使用される。 RECOATER,PAS BUI LDに無関係な再コーテイング動作を実行するために上記のプログラム を使用する。 米国特許出願番号節331,644号の詳細によれば、BUI LDは、部品の 製作を統制するプログラムである。 上述のように、上記のプログラムは、実際上、BUILDと連係して使用される 。同時に、これらのプログラムは、第23図によって説明した機能とほとんど同 様の機能を付与する。しかし、RECOATER,PASは、BUILDから独 立して再コーテイングを実行するための手段を付与する。このソフトウェアのリ ストは以下のunit UTLSWEEP; (SD+ Sし1 (−冒寓麿冨霞冨シ鳳禦翼寓翼厘讃茸驕四富禦寓冨菖;雪冒請認繻卑■な瓢臆軍 冨=翼==朦t#=軍30 Systems Stareolithograp hy System SoftwareUTL5WEEP、工NC 9LA Recoater blade and plunger utili ty 1nclude file。 11/15/88 GOF File craated。 11/28/88 GOF Updated for production  5LA250 board。 11/30/88 GOF Add BldSweep、inc、 5olid ify 1nterfaces withRichard、 Its his  fault!0110コ/89 GOF Commant out all i f keypressad from sweepercode。 01/1コ/89 GOF Put MonitorLaserBeamDri ft as a part of PD。 posセdipdelay。 01/ill/89 GOF 工ntegrata with Jon’s S LA 500 version。 01/24/89 JFT工f raquasted 5paad is >  MaxSafeSineSpaedvalocity。 o1/31/89 JFT Pa5s ZAccel & ZV*loc as  paramatars t。 ZFraeMove & ZMovaGivanDistanca。 o1/27/89 GOF Add PD2.tha 5acond post  dip delay for satplunger proc− 01/31/89 GOF Add routina to read and  write Machine、prm(MaxBladaMoves) 02101/89 GOF Add PD2. DrainAccsl、and  DrainVeloc t。 sweap、prm。 02107/89 GOF Add XP 5upport、’ (axtra  Platform) Als。 changa V@ll0Cto Floatt。 02/24/89 GOF Add exit to SatPlunger  if itsg OK tha firstRaadBiCall。 02/27/89 GOF Minor cleanup and comme nts。 03107/89 JFT On PlungarLlp full 5tro ke、add batterassuranc@of gatting to  top、 Echo 5tall messaga if wadon’t r each it。 03/17/89 JFT工t’s only fitting that I ’m writing this ona green display、 T o accomodate the 5LA−500゜MaxPlungaMo vas has bacons greater than wax工nt、  So。 variables in this unit that take ass ignment fromMaxPlungeMoves ara trans formed to longint。 04/10/89 JFT Change Velocity to Peri od。 05/22/89 JFT Change blade malfunctio n alert to allowuser to reposition b lada。 o7105/89 JFT Single Co11 Holding Tor qua。 09/20/89 JFT/RAG Addad sweapar Ca1ib ration procaduraand 5upport for NCR。 −−−−−−一−−−−−−−−−−−−−−−−−−一一一−−−−−−−− −−−−−−−−−−−−−−−−一−−1(會★☆☆壷☆☆倫☆會**脅★☆ ☆★會嚢壷☆☆☆☆*☆☆☆會☆☆★☆☆**☆★嚢嚢*嚢☆☆会★☆☆☆嚢☆ ☆☆★☆)interface (会会會dk☆會★☆会會☆☆*嚢☆肴☆慟慟☆☆峠☆★嚢肴☆☆脅峠嚢☆☆☆ ☆嚢嚢峠壷☆☆嚢嚢☆壷☆嚢☆倫嚢会)(math、coprocessor  5upport 1(SIFOPT N+3 (9DEFINE C0PI (SELSE) (SUNDEF C0P) +5END工F) ype (SIFDEF C0P) FloatType wr Single;+5ELSEI FloatType ! RaalB (SEND工F) ($工product、1ncl onst (MaxPlungeM口V@tr+ sw :1OOO; l(for th a 5ilver scraw l (Novin product、inc+ 1 (MaxPlungeMovas −2800; for the gold  screw )defaultPariod +s+ 3; (5econds  per sweep 1minplungemovag ! l+m1nPe riod w 0.1: maxPeriod w 10X Bits: array[o、、3] of Byte −(S09.SOA、 SO6,505);(global variablaslNoSwaep :  boolean;PlungerPos : longint; (Mada ”long工ntfrom integer for 500、)Machxn aType : string+MaxBladaMovas : integ ar;DafaultPlungerStepsPerMil : real; (file contents ) NumSweeps : int@ger;Period : array[1 ,,7] of FloatType;BladeGap : array[1 ,,7] of integer;Bias : integer; PlungaMotorDelay : integerXPlungStar t : FloatTyp@; (not used )UpLim : An t−@qllriLowLim : intagar+ BladaGapLO: FloatType;Po5tDipDalay :  intagar;NumChecks : xntegar;PD2 : i nteger; XP : FloatType; SHowSWEEP : boolaan;ProcassSpeadM :  Real ;(☆☆★會☆壷☆☆命☆☆☆☆嚢☆☆*愉☆☆會会☆☆☆会☆倫会 自☆會嚢☆☆會脅★愉☆*愉肴☆☆会☆☆☆☆壷☆)procedure Ra adSWEEPxPRMfi1g+procadura R,aaclKACH 工NExPRMfileHprocadure WriteKACH工NExP RMfile;procadura SwaeperBack(period  : raal; 5topCoda : integer) Xprocedu re SweeparForward(period: real; 5top Coda :土ntager); procedure MoveBlade(period: real; 5t opCode:integer);proceaura PlungerHol dinqTorqua; (υ5e after any plungermo ve of 11 procedure PlungarDown(numMoves : lon gint; var 5topCode :integer) : procedure PlungarUp(numMoves : longi nt; var 5topCode :integarl H procadura 工n1ts%lIaeparandPlunger(op tion: integar;varStopCoda : intager) tprocadure 工nitswaepar(option:int@ge r;var 5topCode :integer)s prOCadur+!! RaadB i Co11(r@CurS : Ch ar ; Va r F 1nalし■al: lnt@qP!:i1’ )  ; procedure WhichBladaLimit(var LimitS witch: integer) t(procadura AddRamov aRaszn(var FinalLaval: int@ger) ; )p rocedure S@tPlunger(numsstPlungarg:i nteger;varFinalLav@↓:intager )tproca dure DoSwaap(DipDepth、LayerD@pth:raa l;RalaxatzonTima:integer);procadura  expswaaparBack(speed+raal);procadura  @×pSW@@perFOrward(speed:raal);proce dur@axpMov@Blada(period:raal);procad ure SwaepCal;(會☆☆☆会会膏會☆會☆☆會嚢*☆☆☆*愉會☆ ☆☆☆☆會會會☆脅★会☆☆☆☆☆★☆脅會☆☆嚢☆*☆☆☆☆☆☆*)imp lemantation onst LnStaps: array[1,60] of 工ntagar −(40 0,200,100,060,50,45,40,35,コ0,25,20.1 B、16,14,12,10,10゜fl、8,8,8,6,6,6,5,5, 5,4,4,4,4,4,3,3,3,2,2,2,2,2,1,1,1.l、 l。 1.1,1,1,1.i、1.O,O,O,O,O,O,O,O);SwapC oil W 5309; SweepLim sr 53os; defaultBladeGap W 100; (percant 1def aultBias m OH defaultPlungaMotorDelay ! 8;defaultP lungstart w 3.5+ (1nches −not usedno w ) dafaultUpLim w 5+ defaultLowLim w −5BdefaultBladaGapLo  = 0.125; (inches−batweenliquid and  blada 1dafaultPostDipDalay ! 3; (5ec onds 1defaultNumchecks m −1; (automa tic mode )defaultPD2 − 2; dafaultDA ! ’0.8’:dafaultDV m ’o、s’7 dafaultXP m ’0.0’;SwaapDist +a 12+12 StepItar : intager;SwaapStap二integer ;PlungaStap : integer;dalayt工me : in teg@r;うunkl乃unksc : int@q@rrjunkXay  : char; (☆☆☆☆☆☆嚢★會☆會☆☆會嚢☆☆☆☆☆☆☆嚢☆☆☆☆☆☆☆☆脅*嚢☆ dk☆嚢★☆☆☆*僑★☆☆☆☆会4に*☆肴☆☆)procedure Sw eapDefaults;i、coda : integer; egin Numswaaps ニー IT for i :+w l to 7 do beginPariod[i] : w defaultPeriod;Blad@Gap[i] ニー dafau ltBladaGap;end? Bias :w defaultBias;PlungaMotorD@lay  ニー d@faultPlungeMotorDelayjPlungSta rt := dafaultPlungstart;UpLim ニー Bia s + dafaultUpLimXLowLim := Bias +def aultLowLim;BladeGapLO:= defaultBlada GapLo★25.4; (convertto mm ) PostDipDelay :w dafaultPostDipDelay; NurnChecks :y defaultNumchacks; (aut omatic modePD2 := dafaultPD2;DraznAc cel ニー dafaultDA;DrainVeloc :w dafau ltDVHXP : −RaalVal(dafaultXP、coda) ; ShowSweep :1IIfals酊and; (☆會**脅☆会4に☆☆☆☆*嚢☆會☆☆會*☆☆嚢☆會会愉☆會貴☆☆☆☆ 禽☆會嚢嚢會☆☆☆☆☆☆☆☆☆愉命嚢肴☆)procedure ReadS WEEPxPRMfila;onst anyfile w 53F7 SwaapFila : Text; Line : String; i、jj、k)c、1ndex : integar;DirInfo : 5 aarchRac;egin 工f ShowSweep then vritaln (+ Rstadin +g machine、pnnfile、’); FindFirst (’\3dsysXMachina、PRM’ 、any fila、DirInfo) 7if DosError <> Othan  baginwindow(1,1,80,25);C1rScr; gotoxy(1,21); writeln; writeln(’ ERROR: Machina、PRM not fou nd。 1); UsarWaitX Halt(1); end; (″″−−−−−−−−−−−−−−−−−−−−−−−−−−−−一−−−− −−−−−−−−−−−−−−−−−−−−−1assign(SwaepFi la、 ’\3dsys XMachina 、 pnn ’ ) ;rasa t(SweepFila); i:1IIOX rap@at raadln(swaepFila、1ineluntil 1ine = ’ 5WEEP、PRM’;while (Not Eof(SweepFile) )and (i <wa 27)do beginr@ ad l n (Sw e ep F 11 e r 11 n e ) rif 1ine[l] < > If’ then 1nc(i);if i −1then begin NumSwaeps : sa 工ntVal(copy(1土na、1.pot(’!’、1ine)−1)乃 プ)Iand; if (i >W 2) and (i <m 15) then be+gi nif (i mad 2) −0 tnen Pariod[i div 2] :+wRaalVal (copy(line、 l、pos(’ !  ’ 、 1ine) −L) 、 jj )alsa BladeGap[i  div2] :mround(RealVal(copy(line、 1.p os(’ ! ’ 、1ine)()、うj));(1(BladaGap[i  div 2]ニー(1/1000) ★ (25,4) ★BladaGap [i div 2]; 1(covart !ll1ls to mm )if  (BladaGap[i div 2] <m 0)than BladaG ap[i div 2] ニー 0;if (BladeGap[i div  2] > 999)than BladaGap[i div 2] :w 9 997and; caga i of 16 : Bias : 冨 IntVal(copy(line、l、pos(’ ! ’ 、1ine)− 1) 、jj) ;11 : PlungeMotorDelay :x工nt Val (COpY (line、 x 、 pOB (’ ! ’ 、 1i ne) −1) r ] jj il8 : PlungStart ニーRe alVal(copy(line、l、pos(’!’、1ine)−1)乃j );19 : UpLim :− 工ntVal(copy(line、l、pos(’ ! ’ 、1ine)− 1) 乃j) :20 : LowLj:m :m 工ntVal(copy(line、l、pos(’!’Jine)−4)、j j)X21 : BladaGapLOニー (25,41*RealVal (copy(line、 1.pos (’  ! ’ 、 1ine)−1) 、 jj ) ;(convert 1nch es to M 1fl(22: postDipDelay :=工ntVa l(copy(line、1.pos(’ ! ’ Jine)−1)、jj) ;)22 : NumChacks : −工ntVal(copy(line 、l+pO8(’!’、1lna)−1)+ jj);[1(24: PD2  :菖 工ntVal(copy(line、1.pos(’ l ’ 、1ine)− U +jj)r )23 : DrainAccal:sw copy(lin e、l、pos(” 、1ine)−1);24 : Dra 1nVQIOc  : −copy (l xna r l r pOB (” r l Ln@  ) −1) +25 : XP :諺 RahlVal(copy(line、l、pos(’ l ’ 、1ine) −4) 、jj) ;26 : ShowSweep :wa (upcasa (line[1])m ’S’ );and; ndr C1ose(SweepFile) Xfor i :w 1to 7 do  beginif (Period[il > maxsweepPeriod)  than Period[il :wxmaxswaepPariodr if (Period(il < minsweepPariod) then  Period[il 声minsweepPeriod; ndj UpLim :m Bias + UpLim;LoWLim :m Bias  + LoWLim;if showswsap then beginwri teln(’H@r@ ar@ the 9appercentages−−’  ) ;for i :w 1 to 7 do writeln(’Gap’ 、i、’ is’、BladaGap[il); ’ and; ZSaf@SW@@p ニー ZBladeLaval + 0−060 (W arp tolarance + 1010m1l+ xp; end; (☆☆☆**峠****************嚢☆★*☆★☆**倫嚢☆肴 食肴會★會會嚢肴☆☆☆貞☆慟☆★脅★)procadure ReadKAC H工NEXPMfilQ;onst anyfile we 5コFF SweepFila : TaXt; Line : String; i、jj、kk、1ndex : integer;Dir工nfo : 5e archRac;begin 1f ShowSwaap than writeln (’ Raading  KACH工NE、PRMfil@、’); FindFirst (’\3dsys\Machine、PRM’ 、any file、Dir工nfo) ;if DosError <> Othen  beginwindow(1,1,80,25):C1r!30r; 90toxy(1,21)r writeln; writeln(’ ERROR: Machine、pnn not fou nd。 1); UsarWait; Halt(1): end? (−−一−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− −一−−−−−−−−−−−−−)assign(SwaepFila、 ’\ 3dsys\MaCI’1lna −pr!n ’ ) iresset(Sw aepFila) ;i ニー 07 epeat readln(SweapFile、1ine)until 1ine s+  ’MACH工NE、PRMl;while (Not Eof(SwaepFi lg)) and (i < 3) do beginreadln(Swaa pFila、1ine) ;if 1ina[l] <> +i’ then  1nc(土);case i of l: begin MachineType :冨copy(line、1.7) ;Proces sSpeedM :wRaalVal(copy(lina、8,8)。 jj) ; end ; 2 : MaxBladeMoves :w工ntVal(copy(line 、l、pos(’ ! ’ 、1ine)()、フコ);3 : Defaul tplungarStepsParMil :=RaalVal(copy(l ine、1.pos(’!’、1ine)−1)、jj);end+ and; close(swaapFila); end; (会☆★倫☆*脅會*☆★肴☆☆☆貴★☆會嚢☆☆会☆會☆☆☆☆命★☆嚢☆* 峰☆自☆☆☆倫☆會☆★☆☆☆★☆☆)procadure WritaMAC HINExPRMfile;C口nst ParamFileName m ’\3DSYSXMACHINE、XYZI ;NawNam@ w ’\3DSYSXMACH工NE、PRM’;工0ar r、i、m、n、valcoda : integerXj : 1ongin t+ r : raal; ParamFilaLine、AppendTaxt : 5tr80;Par amFile、NewFile: text;Dir工nfo : 5aarc hRac;InputL+ins、 : string;begin opanParamFila :m ParamFilaName;assig n(ParamFila、OpenParamFila);rewrite(P aramFile):assign(NewFile、NawName);ra sat(NewFile); while not eof(NewFile)do beginreadln (NewFile、InputLine):writeln(ParamFzl et工nputLine)rand; re!Write(NeWFlle)i工0arr :z 工0result; 1f 工0err <> Othen beginOpenParamFile  :m ParamFileName:assign(ParamFile、○ penParamFilel ;reset(ParamFile): 工0err :wm 工0result;if 工0arr <> Othen  OpenParamFile :wa ”end; [IOerror) if工0arr ++++ Othen b@gin土:■OF reset(ParamFila); rep@at raadln (paramFila 、 paramFilaLine) ; writeln(newFile、paramFileLin@);until  paramFilaLine m ’MACHINE、PRMl;readl n (paramFila 、 paramFilaLina) rwhile  (paramFilaLina[1] m ” ) or (paramFi laLine[1]writeln (newFile 、 paramFil aLine ) ;raadln(paramFila、paramFileL ina)Hand; writeln(newFile、paramFileLina); (Th3 −5 Ls themachine model #、) Str(MaxBladeMovas、paramFileLine):wri teln(newFile、paramFileLine+’ ! Maxim umbladesteps to cross vat″戸readln(pa ramFile) ; (We just wrota a new val  hereso throw old away、)while not eof (paramFile)d。 egin raadln (paramFila、 paramFileLine) ;w riteln(newFile、paramFileLine)rend: end: close(NewFile): close(ParamFila)r end; (肯☆★★★☆★*膏★☆★★*嚢☆★貴☆☆嚢*4に嚢**嚢命★★☆☆脅★ ★★★☆☆☆貴☆膏☆☆嚢☆★會嚢肴☆貴)procadure Rotata Stap(DirStap: 工ntager;var InputByte: 工ntagar)j egin Stap工tar :vm ((Stap工tar + DirStap) +  4) nod 4;InputByte ニー Bits[5tep工tar ];end; (☆☆☆☆会会會☆☆会会*会会☆☆会会☆貞☆☆嚢☆☆☆☆☆☆☆**☆☆☆ 會☆★★☆4に☆☆嚢☆脅☆☆☆★☆★☆★)procadura BanDa lay(dal:intagar);x :integer; i :intagar; j :integar; epeat 工NC(X); for i :m 1to xo do 1nc(j); + 100 us  )until X>m dal; and; (★☆★脅☆☆*☆★☆☆☆☆嚢★脅命★嚢会☆嚢會嚢☆☆倫☆☆☆☆☆☆4に *☆嚢★★★嚢☆*倫☆☆*嚢嚢☆☆)function SwaaparPa ramatar(pariod : real): raal;(Faad t his tha dasirad period and it will r eturn theappropriata parameter )(to  sweep at that pariod、You than faad t hat # to theappropriata ) (sweaper moving procedure。 sweaparParam : raal;egin RoundPeriod :+w round(pariod);if Rou ndPeriod > maxsweepPeriod than Round Period :wzmaxswaapPgriod; (* check for the machine type so the  appropiata☆)〔★Parametar Value for t he blade sweep is assigned *)if ((Pr ocassSpeadM * 10) < 1) then(肴wYsE 28 6 values 会)case RoundPeriod ofl : gw aaparParam :W pariodlParam; (SquareM oves 5tart hare、)2 : swaaparparam :”  parxod2Param;3 : sweeperParam ニー pa rioa:iparam;4 : sweeperParam :wa per iod4Param;5 : swaeperParam :wa pario d5Param;6 : swaeparParam :w+ pariod6 Param;7二sweep@rparamニーpariod7Param;( sineMovesstart here、1 8 : sweaparParam :m pariod8Param;9 :  swaeperparam :+m pariod9Param;10 :  swaeparparam :” periodlOParam;11 : s weaperParam :m periodllParam;x2 : sw eaparParam :+m par土od12Param;13 : sw eeperParam :冨psriod13Param;14 : swea parparam :wa period14Param;15 : swea perparam ニー p1!りl’lod15Parami16 : sw eeptarParam :!II pariod16Param;lse egin if (RoundPeriod > 16) and (RoundPeri od < 21)than sweeperParam :m period1 6Param −((RoundPeriod −16)☆((period1 6Param−pariod21Param) /4 ) ) :if (Ro undPeriod > 20) and (RoundPeriod < 1 31)then sweeperParam := period21Para m −((RoundPeriod −20) * ((period21Pa ram−period30Param) /10) ) ;and H and als* (★ NCRコ86 VALUES *)(☆all NCR386 valuas are 5ins moves *)case RoundPa rioci ofl : sweeparParam :vm 1.2 ; 2  : swaaparParam :wzl、2 ; 3: sweeperParam :w 1.2 ; 4 : sWaepar Param :mO,8; s : swaeparparam :w O,6; 6 : swaapar param :m015 ; 7 ’: swaeperParam :1110−4 j 8 : swea parParam ニー0.35 ; 9 : swaaparParam :wm O’、31 ;10 : swe aparParam :wmO,26j 11 : swaaperParam ニー 0−245 ; 12 : sw eeparParam ニー0.22 ; 13 : swa@parParam ニー0.205 ; 14 : ssw aaparParam :wO,19j 15 : swaeparParam :m O,18; 16 : swae parParam :mO,16; 17 : sweap@rParam :va 0.152 ; 18 : s b℃aparParamニー0.13757 19 : swaaparParam ニー 0.1:15 ; 20 : s waapsrparam ニー0.13 ; 21 : swaeperParam :m O,12: 22 : sswa aparParam:=0.115 ; 23 : swaeparParam ニー 0.11 ; 24 : swa aparParam:mo、105 F 25 : swaaparParam :wa 0.1; 26 : swaa perParamニー0.097 ; 27 : sweaparParam :m O,0935+ 28 : sw aaperParam :wO,09; 29 : sweaparParam slm O,087: コo : sw eaperParam:=0.085 ; and (嚢 case NCRコ86 嚢)iSweaperParamet er :! swesperParam:end: (会会*嚢☆★☆脅舎壷☆☆會☆*☆肴☆☆☆☆☆☆☆會4を倫☆☆壷☆☆☆命 ☆☆☆☆☆會嚢★☆☆壷会會☆☆☆☆)function Swa*p@rSq rVelocity (v@l : raal ) : r@!a’l ;(C onverts a’valocity in 1nches per 5ec ond to the swaapersprivataunits、Smal ler trueVals correspond to greaterve lociti@s、 1 (Th1s function is no lcngar usad+1tr uaVel : raal; agin if val <+s l then trueVel :W 76else  if vel <wa 2 than truaVal :m (vel −1 ) * (36−76)+76 else if vel <w 3 then trueVel :w (va l −2) ★ (2コ−36)+ 36 alsa if vel <= 4 then truaVel :x (ve l −3) 愼 (17−23)+ 2コ elsa if val <m 5 then t、ruaVal :m (v @l −4) ☆ (12(7)+17 elsa if vel <w 6 then trueVel :m (va l −5) ☆ (10−12)+12 elsa if vel <w 7 then truaVal :! (ve l −6) ☆ (9−40)+10 elsa if vel <w 8 then trueVal :m (va l −7) ★ (7−9)+ 9 else if vel <w 9 than trueVal :+=+ ( vel −8)* (6−71+ 7 else if val <w 10 then truaVel := (v al −9) 會 (6−7)+ 7 else truaVel :! !BSwaeperSqrVelocity  :w truevelXand: (嚢嚢★懺★☆☆☆會☆☆☆★☆☆☆會★★☆嚢★★*愉☆★倫☆☆☆★*脅☆ ★☆☆*愉☆☆☆倫★喚☆會脅★*)procedure SweaperBa ck(period : real; 5topCode : integer ) :l wa abnonnal −11m1t hit before c omplatad move(ZStage ) 2 w abnormal −kayprassad3 = 5tall 1 i : intager; key : char; 5peed : realX agin speed :w SwaeparParamatar(period); ( speed holds a rawparamatar nowl if period < MinSafeSinaPariod than b egindelaytim@ :m trunc(spa@d) ;if (Z StagaPos < ZSafaSweep) than exit;por t[swaaplxml := SFF;i ニー 0; ifShowSwaapthanwritaln(’ 5WEEPERBACK  ’);epeat if (port[swaepLiml and 540) <> 540 t hen beginport[swapcoill :ss 500;Blad aPos :w MaxBladaMovas;5topCode :wa O ; exit; (hit 11m1t 5w1tch 1ndr inc(BladePosl; if i <m 59 than 1nc(i) (ramp upelse  if BladePos > (MaxBladaMoves −60) (r amprotatastep(1,swaepstap);port[swep coill :111((port[swepcoill and 5F3)  orl(swaepstep and 5OF) ;BenDelay(dal aytime + LnSteps[il) ;until ((keypra ssad)or l (BladePos >m MaxBladeM−ove s):port[swapcoill ニー 500:(if kaypras sad then beginkey :1+1 Raadkey; 5topCode :m 2; end;’1 if BladaPos >wr MaxBladaMovas than b aginif ShowSwaep than writaln(’ *嚢☆  ERRoR: 5TALL 1nSW@@p@r BaCk ’)+ dala; (1000)? ba If! p ; BladePos ニー MaxBladeMovas;5topCode : wa 3; end; and else sinamove(MaxBladaMoves、5peed、’r ’、’r’、5topcoda);ndH C會☆★**☆☆☆☆☆☆會☆☆☆會☆☆会会**嚢☆☆☆☆會☆☆☆☆☆脅☆ 愉☆★嚢會肴☆貞☆☆*☆☆☆☆☆☆)procedure SweeperF orward(period : realX 5topCode :inta ger); i : intagar+ key : char: 5peed : real; egin speed :m SwaeparParameter(period)H(s peed holds a rawparamatar nowl if period < MinSafeSinaPeriod then b agindalaytima :! trunc(speed);if (ZS tagePos < ZSafeSwaap) then exit;port [swaepliml ニー SFF;i :ズ0X if ShowSweep then writaln(’ 5WEEPERF ORWARD ’ ) :epeat if (port[sweepLim] and 520) <> 520 t han beginport[swapcoill :w 500;Blade Pos :x O; 5topCode ニー 0: exit; (home 11m1t 5w1tch 1end; dec(BladaPos); if i <wr 59 than 1nc(i) (ramp upelse  if Bla、daPos < 60 (ramp down 1than  i :w BladePog +1;rOt a t e s tQp (−1 t SW@ ap st ap ) jport[swapcoill :m  ((port[swepcoill and 5F3) orl(swaeps tep and 5OF) XBenDelay(d@laytima +Ln Staps[il) ;untxl ((k@ypr@@re@d’j Or  l (BladaPos <−0) ;port[SwapCo土1] ニー  Soo;(if keypresgad then beginkey :”  Raadkay; 5topCode :m 2; end; 1 if BladePos (W Othan beginif ShowSwa ap then writeln(’ ☆嚢☆ ERROR: 5TALL i nSweepar Forward l);BladaPos :m O; 5topCode :m 3: beep: delay(1000); end+ and else sinemove(MaxBladeMoves 、 5peed、  ’ r’ 、 ’ l ’ 、 5topcode) :@(We should never reach )(this point。 end; (★★☆☆★☆☆☆貞★☆★★*☆☆*肴☆貴★★肴★*嚢*噛★***肴★☆ 嚢★會☆會☆☆★壷嚢★★会☆☆★自嚢)procedure MovaBla de(period : real; 5topCoda:integer): RoundPeriod : integer;swaaperParam ;  real;begin (Datermina machine type、)if (’ Proce ssSpaedM☆10 )>−1,than(NCR920)(Too co ol+ JFT)begin if BladePos <> Otb@n axpsinemova(Max BladaMovas 。 !9wapsrParam@tar(period ) 、’r’ )else  expsinemova(MaxBladaMovas 。 SwaeperParau+atar(period )、’l’ );end  alsia begin (Wysa 286 ) if period >wa MinSafaSinePariodthan  if BladaPos <> Othanexpsinemove (Max BladeMoves 、 SweaparParameter (pario d) 、 ’ r ’ j alsa axpginemove (MaxBladeMovas 、 Swaaper Parameter (period) 、 ’ l ’ j else if BladePos <> o thanswaeperfor ward (period 、 5topCoda)4! l SQ Btj4 !@p@rbaCk (pariod r S tOpCOd@ ) rend H end; (☆★★☆☆☆会嚢☆☆☆會嚢☆**☆☆★☆貴☆貴☆★貴★★★☆☆*嚢☆會 ☆★☆*責☆☆☆★☆★貴會☆★☆★☆)procadure Plunger HoldingTorqua+egin if 5tep工tar >−509 than port[swapcoill ニー (508☆ 16 and  5FO)@lsa port(swapcoill :m (S04 嚢 16  and !5FO):ndH (★☆☆☆☆★★★☆★★★☆★★嚢☆☆僑☆**命☆☆★**会☆★★脅★★ ☆★★★資★☆☆★★☆★☆★☆★☆★貴)procedure Plunga rDown(numMovas : longint; var 5topCo de :integer) H (☆峰numMoves of Omeans go to Plunger  11m1t *1j★)ir ] r k : in teqerrm : l ongint; () (Changed from integer to  accomodataSLA−500,1 begin if PlungerPos >m MaxPlungaMoves then  exit;i f n u m M o v e s < > l t h  a nRaad3 DStats+File (ZStagaPos 、 Pl ungarPos 、JunkSC) ;if ShowSwesp than  writeln(’ MOVTNG PLUNGERDOWN −gatti ng 1avel 、 ’ l ;if numMoves m Othan  m :m MaxPlungeMoves alsa m :+wnurlLM OVtli ; k :嵩 1; port[swapcoill ニー (plungestep ” 16 a nd !jFo );repeat inc(k) ; for j :wa l to minplungamoves do beg inrotatestap (1,plungastap) ;port(Sw apcoill =−((port[swapcoill and 5FOJ  orl(plungastap倫16 and 5FO):dalay(Plu ngaMotorDalay) ;and; inC(PlungarPos ) ;until (k >m m) or  (PlungarPos >m MaxPlungaMoves) ;if n umMoves <> 1 tban PlungarHoldingTorq ua;(if numMovas <> l then 1゛Updata3D StataFile(ZStagaPos、PlungerPog、JunkS C);char (☆★☆☆☆貞☆☆☆*☆★嚢会会☆☆☆☆☆貴☆嚢*命☆☆*倫☆會峠貴会嚢 ★☆會☆☆*会☆☆會★☆☆*☆)procedure PlungarUp( numMoves : longint; var 5topCoda :in teger); (☆☆★ numMoves of Omeans go to Plunga r 11m1t 會嚢☆)=、j、に: integer; m : 10ngint; HitLimit : boolean;begin HitLimit := false;PlungtrStaLlad ニー  false;MaxPlungeMovas give great@r as surance that theplungar reaches the  top、)StopCoda :vm 3−; (Default to 5t all、sat to Owhan wehit 5w1tch、) if Plung@rPog <wa Othan exit;ifnumMo vas<>1then RaadlDStateFile(ZS taq@PO5,PlungerPo s、JunkSC);if numMovas x Othen Plunga rPos :s++ 2☆MaxPlungeMovqsrif 5howSw aep than writelr+(’ MoV工NG PLUNGERUP  −8Qヒtxng 1evel 、’ )iif numMoves m O than m :m 2 ☆MaxPlungeMoves alse ha  :=numMoves: k :謬1; port[swapcoill :m (plungestap * 16 a nd SFO)irepeat inc(k) r for j :we l to minplungemoveg do beg inrOt a ta B t @ p (−1r p l unq @ S  t ap ) rport[swepcoil) :wa ((port(sw epcoill and 5FO)or )(plungastep會16 a nd 5FO);delay(PlungeMotorDelay);and; dac(PlungarPos): R(port[sweepLiml and 580) <> 580 tha n beginport[swapcoill :m GoOXPlunger Pos := 0r StopCode :y O; HitLimit :!l true;(Update3DStateFile  OK for numMoves −1)tlpdate:1DstataF ila (ZStagaPos 、 PlungerPos 、 JurikS C) ;exit; (plunqer top 11m1t 5w1tch  1end; until (k >m m) or (PlungerPos <冨0);i f numMoves <> 1 then PlunigerHolding Torque;(工f this was a full−stroke mo ve、check to see if wehit tha 11m1t 5 w1tch、 工f wa didn’t、廿tan display tha tsituation according to OpMode+)if n umMoves m Othan beganif not HitLimit  than PlungerStallad :wa true;end; (if numMoves <> 1 than IUpdata3DStat eFila(ZStagePos、PlungarPos、JunkSC);a nd+ (壷愉會☆☆會嚢*會★★☆☆★嚢☆☆會☆☆会☆☆☆★*☆☆☆★☆☆裔嚢☆ ☆肴★★☆肴★☆☆嚢會☆★☆金☆☆嚢)procadure ReadBiC all (recurs : char ; Var FinalLavel  : intager j ; (会☆☆ racurs w Rm recursive raadings  to check validityN w non−recursiva r eadingS wa avaraga of 5 simpla strai ght bi−callvalues with no validity c hacks 6町onst し■elReading m 128;b、i、j、count、に、newl evel、sum、5itopcoda : intagar;jun)cst r、sign : string;begin count :w l; if R@curs ” ’S’ than count ニー 5+Sum: go; for k :wm 1to count do beginport[780 ] ニー 12; (addr ADCport −780has 16cha nnsls、use 5 1 for i :讃1 to 100 do 1nc(j) ; (10ug ) i :sIO; repeat inc(i)X b ニー port[sコニ0に nemlAvel ニー port[530c]。 until (b<128) or (i>2000);(re−repeat  this looi))NewLevel :wt NewLavsl −L avalRaading;FinalLavel :wr NawLevel; sum :wm sum + FinalLavel;if ShowSw@e p than beginl) ’ (writeln(’ NawLevel  wa’、NawLevel、’clrscr; If N@’WIIaV@1> Othan sign ニー ’−’ als a sign :” ’+’;junkstr :w concat(’New  1evel m’、sign、intstr(abs(Newし1vel)  ) ) ?centertext(]unkStr、1)rdelay(100 ): end; endX (for l to count )if (ShowSweep)  and (count > l) than beginif Sum >  Othen FinalLevel := trunc((sum /coun t)+0.5) elsa FinalLavel :w trunc((sum /count )−0,5)r () (writeln(’ AvaLeva1m’、FinalLevel、 ” );1if NewLeval > Othen sign :tx ’− ’ else sign :w ’+’;junkstr :w concat (’New 1evel m’、sign、intstr(abs(NewLe vel)))rcantartext(]unkstrll)?delay(2 00); and+ if (Recurs −’S’) than exxt;if (NewLe vel m B工As) and (Recurs = ’R’) than  begin(test for 1aser blocked or off  bi−cell )PlungerUp(20,5topCode) ;Rea dBiCall(’N’、NewLevel)?if NewLeval =  B工As then beginPlungarDown(40,5topCo de)rReadBiCall(’N’、NewLevel);if NewL avel = B工As then begincentertext(’ER ROR: La5er Beam is blocked oroff B1− Ce11.’、1): userwait: Halt(11; end; PlungerUp(40,5topCode) ;end; PlungarDown (20、5topCoda) :and; (Naw し=val −BXAS )end; (ReadBiCall )(*脅☆☆ ☆峠****倫☆☆★★會*肴4に壷☆貴☆☆會☆嚢★☆☆☆☆★嚢☆★貴☆★ ☆肴☆★肴★★★☆☆★)procadura WhiehBladeLimi t(var LimitSwitch: intager) ;(l w fr ont、 2 +a+ back、 3 MRnaitfier )begin if (port[sweapLiml and 520) <> cP20  then beginport[swapcoill :m ′50o:Lim itSwitchニー 1; BladePos :wm O; exit+ (home 11m1t 5w1tch )end? if (port[swaepLim] and 540) <> 640 t han beginport[swepcoill ニー 500;Limit Switch:m 2F BladePos :wlMaxBladaMoveg;exit; (bac k 11m1t 5w1tch )end; LimitSwitch :s+ 3;ndr (*☆☆★會☆*會☆會☆会会☆冑★★☆☆會☆*嚢**肴☆☆☆☆*嚢★会☆ 倫☆☆會★**會★肴會肴★★)procedure工n ltsweepar andPl unqer (optign : integer ;var 5 topCoda : integer) ;wastakey : charX k、k : integer: begin port[SコOBI := S98; (工nit 8255 +port[ 530B] := 598; (control portlport[swe pcoill ニー 0: (8255port C)port[sweepl im] ニー 0; (8255port BldelaY(1) X WhichBladaLimit(k)c); (this 5ets Bla daPos )if )ck = 3 than begineepH W r l t @ l n ; Centerln(”CAUTTON: Sweeper blade not  in homeposition、 l ) ; centerln(’ You may manually repositi on the blade atfrontof vat、l); usarvaitH delay(1); +H1kkニー−1234; WhichBladaLimit(k)c);()()Window(lj、8 0,25) ;(1()Writeln(lck): if kk ! 3 then begingotoxy(1,1)r DrawBox(3,7,73,14,2);rapaat delay(10 0) until keypressadHうun)ckay :m raad kay;CursorOni Halt(1): ndH ndH PlungerPos :x MaxPlungeMoves +150X(P ad it so we)GJOW it qoas to 11m1t ]P lungarUp(0,5topCode);PlungerDown((Ma xPlungaMovas div 2) 、5topCode) ;pxun gerpos :” MaxPlungeMoves dlV 2;if Sh owSweep then beginwriteln(’ 5WEEPER, PLUNGER,AND ZSTAGE 工N工T工入り工ZED1); delay(800); ndH if kayprassad then wastekay :w RaadK ey;and7 (☆★★峠*******肴★☆★嚢★★峰*****峰***嚢★*資*☆☆ ☆☆☆嚢☆**☆★☆★肴)wastekey : char: kk : xntegar; begin port[930B] ニー 598; (主nit 8255 )port( 530B] := 5987 (control port)port[swa pcoill ニー J (8255port c)port[sweepli m] :w 0X(8255port B)dalay(1)H WhichBladeLimit(k)c) ; (this 5ets Bl adaPos lif kk m 3 then beginb@ @p 7 writelnr cantarln(’ Sweepar blade not in homa  position。 program aborting、’ ) ;centerln(’ You  may manually raposition the blade a tfront of vat、’); usarwaitr if (port[swaepLiml and ’1i20) <> 920  than beginport[sweeplxml ニー 500Fend  alsa begin gotoxy(1,1); DrawBox(’3,7,73,14,2) ;rapaat delay( 100) until kayprassadHjunkkey := rea dkeyHCurSOrOn? Halt(1); end; end; end+ (★☆☆會會壷壷會肴☆嚢*喰☆★嚢★☆☆☆☆*嚢**嚢☆會脅☆★☆會☆★ 會金嚢肴☆☆★☆貴命☆嚢☆☆峠自倫)procedur@ LiquidSt ableDelay;(Take bic@ll raadings unti l the diffaranca betweenreadings is  within epsilon a 5pecifiad number of  times inarow、) C口nst NumOfODeltaRaadsNeeded m 5:daltaEpsi lon Ill 3;1evel、olciLavel : intagarX numofODsltaRaads : intagar;bagin numofODeltaRaads :m 0rReadBiCall (’  S ’ 、 1evel ) ;RaadBiCall (雷S’ 、oldl aval) ;whila (abs(level −oldlavel) >  d@1taEpsilonl and(NumOfODeltaRsadg  < )JumOfODaltaReadsNeadad) d。 bagin ReadBiCall(’S’ 、1evel) ;RaadBiCall ( ’ S ’ 、 oldlaval ) ;if abs(lavel −ol dLevel) <= deltaEpsilon thaninc(NumO fODaltaRaads) Xend? end; (☆☆★☆脅會**☆嚢☆☆會★☆命肴★*☆★***☆☆☆☆☆會*貞☆☆★ ☆*脅☆慟☆☆嚢☆僑☆嚢☆嚢嚢嚢)procedure SatPlunge r(numsetPlunqars:integer;varFinalLev el二integer ) X1evel、oldlaval、timesth ru、5topcode : integer;0KfirstTry : b oolaan;zpos : realX pPos : longint; junksc : integer; begin (SetPlunger l(金 (*命會懺−壷會4に*嚢*d k会会嚢會☆☆)if PMWriteFlag then b@ginRaa d3DStateFila(zPos、pPos、junlcsc)HRaad BiCall(’N’、l@val);Append(PMWritaFil@ ) ;Writeln(PMWriteFile、zPos:2:6.’ :  ’、pPos:l、’ : ’。 laval:l、’ SetPlungar commencas、、、’); C1osia(PM’Writ@File);@nd7 (會☆☆*倫會☆☆倫壷☆☆☆★☆☆嚢) 嚢)OKfirstTry :=  falsa+TimasThru :wa O; if ShowSw@ap than beginif NumSetPlun gars m −1than writaln(’AUTOMAT工CMODE ’) elsa writeln(’Number of LevelChecksi m’、nums@tPlungers);@nd: () ReadBiCell(’N’、1evel);Hif (laval  <UpLim) and (level > lowlim) than ba ginif ShowSweap than writeln(’Bi−cal l 1evel OK firsttime through SatPlun gar、 ’ ) ;(☆ (貴会☆☆會嚢会会☆★嚢☆☆☆会☆☆)if P MWritaFlag th@n baginRead3 DS tataF  11 @ (Z POS g p PO5g ] unksC) rReadB iCsll(’N’、1evel);Append(PMWriteFile) :Writeln(PM’l+1riteFil@、zPos:2:6.’ :  ’、 pPos:l、’ : ’。 1evel:1.’ SetPlungar completed、’);C1 ose(PMWriteFile):and; (☆★會愉★☆★★★金☆★4に*☆*嚢) 肴)exit; end; if NumSstPlunqers m−1then )′umSetPlu ngars := 25;rep@at if ShowSwaep than writeln(’READ工NG B ニーCELL’);RaadBiCell(’N’、1evel);if (N umSetPlungars m 25) and (TimasThru>s +l) and(LeV@l<−UpLxm) and (laval>mLo wLim) thenOKfirs’tTry:m true;(★ if T imesThru m Othan bagin(do a validity  tast here −−1o1dlaval :寓1aval; PlungarUp(20,5topCode);ReadBiCall(奮N ’、1evel);if 1eval 瓢o1dlavel then beg inPlungerDown(40,5topCoda)HRaadBiCel l(’N’、1aval):if (1aval * oldlavel )  and (1evel w bias ) thenegin writeln; writeln(’ERROR: La5ar Beam is not wi thin ausable bi−call range、’);writel n; UsarWait+ (AddRamoveRasin(level); )Halt(1);and ; end else PlungerDown(20,5topCode);an d; (TimesThru W O)*)if 1evel > UpLim  than baginepeat Plunqel:Down(1,5topCode)jReadBiCall( ’N’ 、1evel);until 1evel < UpLim;end; =t 1evel < LowLim then beginepeat PlungerUp(1,5topCode):RaadBiCall(’N’ 、1evel);until 1evel > LowLim;end; (tha 5tate file is not updated in Pl unger moves ofl case、、、) Updata3DStateFile (ZStagePos 、 Plung arPog 、 5topCoda) ;inc(TxmtsThru)r LiquidStableDalay ;()(命 (l dalay(PD2  ★1ooo)H*)(if not((TimasThru > NumSa tPlungars) or 0KfirstTry)than dalay( PD2☆1ooo); )until (TimagThru > NumSe tPlungers) or 0KfirsitTry;if ShowSwe ap than writaln (’ F工NAL LEVEL”’、Fin alL4v@l); (*(☆★脅☆★會☆☆嚢**会☆☆嚢☆☆)if PMWritaFlag  than beginRead3DStataFile(zPos、pPos、 junksc);RaadBiCall(’N’、1aval);Appand (PMWriteFile) ;Writeln(PMWriteFile、z Pos:2:6.’:嘗、pPos:1.會、+。 1avel:lr ’ SatPlunger completed 、’); C1ose(PMWritaFile);and; (☆☆會☆貞☆會會會會★★☆★會會☆) 嚢)(★☆☆☆☆會☆脅☆★★嚢☆ ★☆☆嚢★嚢★★★☆★**肴會會☆嚢☆☆☆☆☆☆貴★★★☆☆☆☆☆*嚢☆ )p r ロ c a d u r e OneSwaep (index: intagar ; DipDepth  、 LayarDapth : real ) ;vB’( stopcode : integar;currentZPos : rea l;junkPlungerPos : longint;(脅if curr entZPos > Othan DipDepth :w 8 else D ipDepth:= 6;會) if 1ndax IW 1 then bsgin if ShowSw@ep th@n writaln(’ ZMova !’  、 (−(−DipDepth−Blad@GapL。 + (LayerDapth * BladaGap[1ndexコ/Zoo) )/25.4)ニア:3); ZMovaGiv@nDistanc@(ZAccal、ZValoc、−(− DipDepth −BladaGapLO+ (LayarDepth 會 BladaGap(indexl/Zoo))/ 25.4(conv、to 1nches)) and a’lsa begin if ShowSwaep then writeln(’ ZMove= ’  r (−((LayarDapth嚢BladeGap[1ndexl/10 0)−(LayarDepth * BladaGap[1ndex−4]/100) )/25.4) ニア:3)  +ZMov@GivanDistanca(ZAccal、ZValoc、− ((LayarDepth ★BladeGap[1ndexl/100)−( LayarDepth ★ BladaGap[1ndex−1]/100) )/25.4) ;@nd; MovaBlada(Pariod[ind@x] 、5topCoda) ; and; (*会会*会会☆會☆會☆☆☆★嚢★☆*会會☆★☆☆☆☆★嚢★☆☆☆☆☆☆ **嚢會☆★☆自☆☆★會★☆☆*☆☆会嚢)p r OC@ d u r a  D OS W @ ’!! p (D 1 p D a p t h r L  a Y a ’X: D@e p t h : r a a l rRala xationTime: integer) ;1evel、oldlaval 、iswaep、5topcoda : intagar;currentZP og : real;junkPlungarPos : longint;( ☆if currentZPos > Othan DipDapth :wa  8 else DipDepthニー 67☆) (ZW=RelaxationTima in 5econds // ZD= DipDepth in MZVxZtableValoc // ZA :m  ZtableAccal // Naxt LayerThickness  wa LayerDapth ]if Showsw@ep than beg inwriteln(’ LayerTh、icknass(mm)−’、La yerDapth:5:3゜(nils)m’ 、(LayarDapth*1 OOO/25.4):5二3);writeln(’ ZMOV@ −嘗、(− DipDapth/25+4):7二3.’ inchasl)i writeln(’ +m’、−DipDapthニア:3.’ mm ’); and; (Move down ZD、DipD@pth、IZMovaGivenDi stancs (ZAcc@l 、 ZVeloc 、 −DipDapth/  25 、4 ) ;(−ait po 1 pelay(コ500); LiquidStableDelay ;(★ delay (postDip Dalay☆1000); *)if (numchacks <> O) a nd 、 (not dsamoFlag) thenS @ t P 1un q a r (numch aCkfs r l @VQ l ) rif s howsiweap then beginwriteln(’Zstag*P o5m’、ZgtagaPosニア:2);writeln (’ Blade GapLO/25 、4− ’ 、 (BladaGapLO/25 、4)  ニア :2戸writeln(’DipDepth (milI!i)−’、( DipDepth/25.4)ニア:3);writeln(’LayerDe pth (nils)m’、(LayerDapth/25.4)ニア:3)H writeln(’l−2−3+4+m’、(ZStagaPos −(Bla daGapLO/25.4)−(DipD@pth/25.4) + (LayarDepth/25.4))ニア:3);Wr ite l n  (’ Z S a fesW@ap” ’ r ZS a f@SW@@p  ニア : 3 ) rusarwait; end; (no sweep case ) (Note this critera does not 1nvolve  BladeGap[il、 1if (numswaaps <11! O)  or ((ZStagePos −(BladaGapLO/25.41if  ShowSweep than writeln(’*★” Unsafe t o EAW@ep、’ ) r(Mova elavator up to t ha ’draw naxt 1ayer’ position。 if ShowSwesp than writeln(’ ZMove=’  、 (−(LayarDapth−DipDepth)725.4) ニア:3 ) ;ZMovaGivanDistanca (ZAccal 、 ZVel oc 、 −(Lay@rDapth−DipDepth ) /25.4); dalay(5); Dalay(R@laxationTima(ZW) ) ;exit; ndH for igwaap :wm 1 to numsw@aps do beg inon@SV@@p (1fAW@@p r DipDapth I LaY @rD@pth ) ;end; (Now bring the system to pre−swaap p lus part 1ayerthie)cnassi、 ) if ShowSwaep than writaln(’ ZMova−’+ (−(BladaGapLO−(LayerDapth * BladaGap [numSwaaps]/100)+LayarDepth)/25.4)ニア :3);if not HopNguyan then beginif da moFlag than ZMoveGivenDistanca (ZAccel 、 ZValoc  、 −(BladeGapLO−(LayarDepth ” BladaGa p[numSweaps]/100)ZMoveGivanDisloo)Z  (ZAccal 、 ZValoc 、 −(BladeGapLO−(Lay erDepthBladaGap(numSwaapsl/100)十Laye rDapth)/25.4);and; delay(10); ndH (★★****−h*☆★☆☆*******☆☆脅☆☆*嚢★☆☆貴☆☆☆☆ ☆☆★☆★☆肴★★*貴☆☆****肯★☆嚢)(貴脅☆★★會*会会会会** 貴會☆會☆脅★會*貴★☆★会脅會★☆倫☆☆貴☆☆食*☆☆☆☆☆☆食☆會☆ ☆脅會☆☆☆)funCt ion expswaapersqrVe l Q C1ty (Vlll : r@ML l ) : r@& l ;(Conv erts a valocity in 1nches per 5acond  to thss sweep@rsprivat@ units、 Smal ler trueVels correspond to greaterve locities+ 1 trueVel = real; begin if Vial <W l then truaVel +m 76@lse  if vel <W 2 than truaVeL :m (val −1)  * (36−76)+76 else if vel <m 3 then trueVal :wg (v al −2) * (23−36)+ 36 else if vel <va 4 then trueVel F! (v ex −3) * (17−23)十23 alse if val <++w 5 than trueV@l :wm  (v@l −4) ★ (12−47)+ 17 alas if val (W 6 than truaVal :s++ ( val −5)* (10−12)+ 12 alga if vel <w 7 then truaV@l :++++  (v@l −6) 會 (9−40)+10 alsa if vel <wt 8 then truaVel :w (v al −7) ★ (7−9)+ 11 alse if val <w 9 then truaVel :m (v+ al −8) ☆ (6−7)+ 9 alse if Vlll <! 10 than truaVel =m ( val −9) ☆ (6−7)+ 9 alsa trueVel :m 5;axpswaaparsqrvexoc ity :w trueval;end; procedure expsweeperBack;(5topCoda O va nonnal raturn (could be the 11m1t  )l m abnormal −11m1t hit before com pleted move(ZStage ) 2 m abnormal −keypressed3−5tall 1 i : intager; に@y : char; ()(5peed = raal; )begin dalaytime :m trunc(spaad) ;if (ZStag aPos < ZSaftSweap) than axit;port[sw eapliml :m SFF;BladePog :wa MaxBlada Movas;exit; (hit l土wit 5w1tch )and: 1nc(BladePos) : rotatastap(1,Swaapstep) ;(if kaypras gad then beginkey :t−= Readkey: delay(1000) : b @ e p ; BladaPos :s++ MaxBladaMoveg;and: and; (☆☆會嚢☆會☆☆☆☆☆★脅會嚢★☆☆倫會☆命會☆4に命会會☆會4に☆★ ☆☆會会嚢☆会☆嚢☆☆☆愉☆★☆☆☆★★☆)i : intagar; に@y : char; ()(gpe@d : raal; 1egin dalaytima :m trunc(stpead) ;if (Z8ta gaPos < ZSafaSwaap) than exit;part[s waepliml ニー SFF;i :麿0; if ShowSwaap than writaln(−5WEEPERFO RWARD l ) ;r@p@at if (port[swaapLim] and 520) <> ’320  then beginport[5w@pcoil] ニー 90JBlada Pos :wg O; axit; (home 11m1t 5w1tch )@nd; dec(BladaPos)+ if i <s++ 59 than 1nc(i) (ramp up )e lse if BlaaaPos < 60 (ramp down )tha n i +lll BladaPosi + 11rotatastep(−1 ,swaapstep) :par−t(swapcoill ニー ((po rt(swepcoill and 5F3) or)(sweepstep  and 9OF) IBanDalay(dalaytime + LnSta ps[1l)iuntil ((keypressed) or ) (Bla d@Pos (+m o);port[swapcoill ニー 500;( if kayprassad then begink@’f ニー R@tM 1key; and: 1 if BladePos <w Othen baginif ShowSwa ap then writaln(’ 命命★ ERROR: 5TALL 1 nSW@@p@r FOr’War(1’ ) FBladePos :wm  O; b@ @p ; dalay(1000): and; and; procadura axpMoveBlade(period=real); SinaMoveParam : real;begin (l[if pariod < 2 then baginif BladeP os <> o than axpsweaperforwardelsa a xpswaaperback;and elsia begin case period of 2 : SinaMovaParam :sw 10−5;3 : SinaM ovePara+n :m 6.8;4 : SinaMoveParam : 露6.2;5 : SineMoveParam :m 6.1:6 : Si naMoveParam :wa 4;7 : SinaMovaParam  :wg 3;8 : 5in4!MOV@Parafn := 2.9879  : SinaMovaParam ;m 2.97F10: SinaMove Param :s+’2.95;and+ if BladePos <> o thenexpsinemova (Ma xBladaMovas 、 S ineMovaParam 、 ’ r ’  )1se e Xp S l nemove (Max B l ad eMov e ! i r S l n eMov @Pa ram t ’ 戟@’ ) r endX ) sinemoveparam :I!period;(1(if BladaP og <> Othenaxpsinamove (MaxBladeMove s 、 S inaMoveParam、 ’ r ’ )@lse axpsinemove(MaxBladeMoves、Sin6MovePa rarn、’l’);1if BladePos <> Othen axps weaparforward(period)else expswaaper back(period);and; (☆★會会会会会脅★☆脅☆★倫☆嚢☆☆命☆☆會會☆會會☆☆会會嚢☆☆嚢☆ 貴★☆嚢☆倫會礁・☆☆嚢嚢☆☆嚢☆★☆)rasp : integar+ thaDalay : intagsr;raalDalay : raal; hourl、hour2゜ m1nd、m1n2゜ 5acl、5ac2゜ 5ec1100,5ac2100 : WORD ;bs+g釦 epeat writ@(’1) for 5quare、2) for 5ina ?’  ) ;rsadln(rasp ); if rasp m 1than baginwrite(’Raw dela y ? ’ );raadln(thaDelay );GetTime(ho url、 m1ni、 5acl、 5aclloo) ;Lf BladeP os <> Othansweeperforward(theDalay、5 topCode)1se SWa e p@ rl)a ck (theD@ l ay(St−0pCo d@! ) ;and else if rasp w 2 than beg inwrite(’Raw dalay ? ’ )ireadln(real Dalay )HGetTime(hourl、 m1ni’、 5acl、  5aclloo) ;if BladePog <> Othenaxpsin emove (MaxBladeMoves 、 realDelay、 ’  r ’ )else expsinamova (MaxBladeMoves 、 realDel ay 、 ’ 1 ’ )and: GetTim@(hour2.m1n2,5ec2.gac2100);wri teln(’5tart: +、hourl、’:’、m1ni、’:’、5a cl、’:’。 5eclloo:2) ; writ@ln(’5tart: ’、 hour2. ’:’、 m1n2.  ’:’、 5ac2. ’:”。 5ac2100:2); until false; (forever)and; (貞☆*☆☆會脅☆*会會会脅命★☆会壷☆☆☆☆會*嚢嚢愉☆会會☆☆★☆☆ ☆嚢☆☆☆會*慟☆★☆*☆☆☆☆*嚢)begin (blade must be at tha front、alr@ady  checked inutlzstage 1nit ) swaapDafaultg; RaadSWEEPxPRMfile;RaadKAC[NExPRMfila ;BladePos :m O: 5tap工tar :m O; NoSwgep :m false; ZClearBuffar; Read3 DStateFile (ZStagePos 、 Plunga rPos 、 j unksC) ;end。 unit S工N5TEPf (組錦I麿−冨鳳冒Aロ1菖■龍I富=寓==冨鳳m、lll!nmm!l叫關 l璽藁mmm斗l−コD Systams Steraolithograph y System Software−−−−−−−−−−−−−−−−−−− 一−−−−−−−−−−−−−−−−−−−−−−−−−−−−一−−−−−− 1(***食☆★☆★貴☆会★★**☆*☆★☆*貴★★*☆☆会★☆☆*☆倫 ☆嚢☆★☆☆會☆脅会会☆★自會貴★肴★☆★)interfaca usas CRT、DOS、UTLZSTAGE、UT工り工TYlionst MaxSafeSineSpeed = l;BladaPos : inte ger;procedure sinemova(st@ps: intaga rHSwaepPariod: real;device、dir : cha r; 5topcode:土ntager)fprocaclure axps in@move(steps:intager; rawParam: rea l; dir: char)r (貴会★☆☆会☆☆會貴會貴嚢倫會**貴☆會嚢☆☆會☆會☆会☆☆☆會☆會會 會☆會☆会☆會☆會愉☆會☆愉☆☆☆*倫)implamantation cons;t JB ” 9300; (plunC3trr raCOatar addre SS)JRC−5308; (8255: 4 MSB: plungar)C oilDataPort ** 5309+ (4LSB: racoatar )MaxBladaMoves ” 1255; (pr@ −m1crost @pping )SwapCoil −5309+ SwaapLim sw 9308; function SwaaparValocity(工nchesParsa c:real):real;(No longer ussad−−JFT、4 /3/89 )(Used by SinaMove to correct  the valocity paramatar t。 correct 5peed、) val : r@alt begin if工nchesPersac < 0.1 then vel :m (工n ch@sP@rsac 10.1)會0.11 alsa if 工nchagParsac <m O,2than vel  :m((工nchesPsrsac −0,1) 7 0.1) ☆ (0,2 375−0,11) + 0+11elsa if 工nchesParsac  <w O,5than vel :m((工nch、esPersac −0 ,2) 7 0.1) ☆ (0,68−0,2375) + 0.2375e lse if 工nchasPersac <w 1.Othen vel : wr((工nchesPars@c −0,5) / Oj) ☆ (1,55 −0,68) + 0.68;SweeperVelocity :xa va l;end; () (sinemove: microstepping of recoa ter and plungar: 5aadascription of p aramater at begin of file、La5t t@5tr asults: batter performanca with CoPr oc N+、 Ramp seamad t。 ba to slow for higher velocities (>1 0)、so AccalRampMax :m2 without furth er tests i Te5t for this procedure:X 工CRO1,PAS (se@conditional defin@s) ) (No longer used+Expginamove is used  1nstead−−JFT。 procedura sinemove(staps: intagerXSw aepPeriod: raal;(1@”J’LC@raLr : char + 5topeoda:integer) 1onst DAnglaArray : array[o、、7] of integer  m(10,10,10,15,15,15,30,30) ;AccelRa mpMax : 土ntegar ! 2;RampXAngth : int @1qli!r −4;tYP@ LookUpTabla −array (o、 、45] of real; 5tapcount : int@gar+Xi、X2 : real; Fld、AccalValua : intager;DIndex、 DAn gla : intager;5inOfAnqlJ、C05OfAncile  : integer;QuartarPi、PeriodPoint : i nteger;FldTimes : ]JookUpTabla;BitFa ctor : integer;xoBit、xxBit、x;Bit : i ntagar;Co11ABitl、Co11ABit2 : integer ;Co11BBitl、Co11BBit2 : integer;Singl eBit、FLdCount : integer;う、d口ubl@、acc alcount : integar;singla、null : inta gar;口utput : int@ger; rllp : xntager; whichLim : integer;valoc : real; begin if (ZStagaPos < ZSafeSwaap) then exi t;port[swaapliml ニー SFF;valoc :wa Sw a@parVe1ocity(12,1/SwaspPeriod) ;if  device m ’p’ than BitFactor :wa 1als a BitFactor :+m 16;Co11ABitl ニー 32 d iv BitFactor;(20H,2) Co11ABit2 ニー 16 div BitFactor;(10H,1 ) CoilBBitl ニー 128 div BitFactor;(80H, 81 Co11Bit2 ニー 64 div BitFactor;(40M、4) (Fldl Fld :m round(100/veloc+0.5)r(Dangle) D工nc1@X ニー round(valoc+0.5)−17ifD工nd ex < Othen DIndex :III o;ifD工ndax >7 than DIndex :s 7;for j :m Oto Dxndex  do Dangle :wa DAnqleArray[う];(Build  a table of values for the five−four thg periodinterval、1 (The extra quarter 1ats us 1ook up c osines aasily、1for jニー Oto (5☆Quarte rPi)d。 FldTimes[jlニー5in(pi / 180 * DAngle *  j) * Fld;for 5tapcount :s++ l to 5t eps do baginif (port[sw@apLiml and 5 20) <> 920 thenagin if upcasa(dir)+w’R’ thanegin port[swapcoil] ニー Goo:bladePos:wo; 5topCoda :m O; exit; and; end else if (port[sweapLiml and 940)  <> 940 thanegin if upcase(dir)s++’L’ thanegin port[swapcoil] −Goo;k)ladePos:mMaxBl adaMoves;5topCode :m O; exit; and; and; if (stapcount (! RampLangth) than be ginAccelValue : w AccelRampMax★round (valoc/3 )☆(RampL ength−stepcount+1)div RampLength; (a ccallif AccelValue < 1 then AccelVal ue :m 17and; if ((steps−stapcount+4) <m RampLangt h) then beginA ccelvalue : − AccelRampMax*round (veloc/3)☆(Ramp L ength −(5taps−stepcount ) )div Rampし =ngth: if AccelValua < )than AccalValue :ur  1;arid elsga if (stapeount > RampLa ngth)thanAccelValua ニー 1; (Po1nt SinOfAngl@at lo or hi and of  table。 dep@nding on 5tep )(direction、CosCo5 0fAn is one−quartar pi ahead ofthis、 ) if upcaga(dir) wa ’L’than SinOfAngle  :w 0alsa SinOfAngl@:++m 360 div DAn gla;cosofAJ′1g1a :Ill SinOfAngla + Q uartarPi;for PariodPoint :w Oto (4☆Q uarterPi)do baginXi ニー FldTimas[SinO fAnglal;if Xi > 0廿ten X1bit ニー Co11A Bitl (3220H)alsa if Xi < Othan X1bit  := Co11ABit2 (1610HI@1g@X1bit :ww O ; X2 :m FldTimes[CosCo50fAn];if X2 > o  then X2bit ニー coilBBitl (12880H)als a if X2 < Othan X2bit =−Co11BBit2 (6 440Hlelse X2bit :W O; xoBitニーo; if abs(Xi) < abs(X2) than bagindoubl a :w abs(round(Xi +0.5))iSingleBit ニ ー X2bit;and: if abs(X2) <! abs(Xi) then begindoub le :wa abs(round(X2 +0.5));SinglaBit  :m X1biU@nd ; single :! abs(round(abs(Xi)−abs(X2)+ 0−5));null :w Fld−double−singla;for  accelcount :m 1to AccelValua (!Obegi nif upcasa(dir) s++ ’L’ then begin ( leftlif double > Othan beginfor j :W  Oto doubl@do port[coilDataPortl ニーX 1bit+X2bit: @nd: if singla > Othen beginfor j :m Oto  single do port[coilDataPortl :wSingl eBit; and; if null > Othan beginfor j :w Oto nu ll do port[coilDataPortl :wXOBit; end; (enddirm”l1響) and also bagin (dir llr”)(right ) 土f null > o than beginfor j :w Oto n ull do port[coilDataPortl :wXOBit; ndi if single > Othan beginforう=w Oto si ngle do port[coilDataPortl :wSinglaB it+ and; if doubla > Othen beginfor j :w Oto  doubla do port[coilDataPortl :wXlbit +X2bit X ndr end;(dirIIr−春) end H(accelcount l(Updata 1ookup tab le pointars、)if upcasa(dir) W ’R’ th @n beginSinOfAngla ニー SinOfAngle−4;e nd @lse begin SinOfAngla ニー SinOfAngla+4;@nd; CosCo50fJv1 :+w 5inOfAn91@ + Quartar Pi;@nd7 (for SinofAngle、、、1and; (sta ps) port[coilDataPortl :m 5FF;if BladaPo s <m Othan bagin() (if ShowSwaap tha n writeln(’ ☆☆☆ERROR: 5TALL 1nSW@@p@ r SineMova Forward ’ ) ; )BladePos : m O; 5topCoda :m コ; b@IIp ; delay(1000); and t end; (☆☆會☆會☆☆嚢倫会★會会嚢☆☆★☆☆☆☆☆☆嚢☆嚢会会f*☆☆會☆☆ ☆会会☆**会☆☆☆☆☆**肴脅★)procedure axpsinem ov@(steps:intager; rawParam= real; d ir: char); C口nst DAngleArray : array[o+−7] of intagar  =(IOlloJo、15,15,15,30,30);AccelRamp Max : 支ntager −2;RampLength : intaga r w 4;5tapcount : integer;)Q、X2 : re al; Fld、Acc@1Valu@: integar;D工ndex、 DAng le : intagsr;5inOf劫gl@、CogOfAngle :  zntagartQuartarPi、PariodPoint : inta ger;FldTimas : LookUpTabla;BitFactor  : 土ntegar+X0Bit、XIBit、X2Bit : intag ar;Co11ABitl、Co11ABit2 : integar;Co1 1BBLtl、Co11BBit2 : integer;SinglaBit 、FLdCount : 土ntegar;j、doubla、acealco unt : intagar+single、null : intagar; output : 土ntagar; r@p : intagar; whichLim : intagar;valoc : raal; begin if (ZStag@Pos < ZSafeSwaep) than exi t;port[sweepliml :+w SFF;veloc :m ra wParam;BitFactor :w IU CoilABitl ニー 32 div BitFactor; (20H, 2)coilABit2 :W 16 div BitFactor; (lo g、:LICoilBBitl := 128 div BitFactor;  (80H,81coilBBit2 ニー 64 div BitFacto r; [40)1,41(Fldl Fld :st round(100/veloc+0.5)i(Dangle ) D工nd@X ニー round(valoc+o+5)−1;ifD工nda x < o then D工ndax :m o;土fD工ndax > 7  than D工ndax :wh 7;forう ニーa Oto D工nd@ X do Dangl@ ニー DAj191@IArray[]]?(Set  QuartsrPi to one−fourth pariod、IQua rtarPi :st 90 div DAngla;(Build a ta ble of values for the five−fourthg p eriodintarval、) (The extra quarter 1ets us 1ook up c osines easily。 for jニー Oto (5★QuarterPi) d。 FldTimes[jl:=sin(pi / 180 倫 DAngle 食  う) * Fld;for 5ltepcount :wa 1to 5te ps do beginif (port[sw@apLiml and 52 0) <> 920 th@nb@gin if upcasa(dir)m’R’ thenagin port[swapcoill −Goo:bladePos:xo; exit; and; @nd else if (port[swaapLiml and 540)  <> s40 thenegin if upcasa(dir)m’L’ thenegin port[swapcoill ニー SOO;bladePos:swMax BladeMoves:exit; and+ and; if (stepcount <w RampLength) then be gin入 ccelValua : am if AccalValua < 1than ACC@1lValue:”  1;and; if ((steps−stapcount44) (+g RampLang th) than beginACC+alValu! : ! AccalRampMax*round(valoc/3)*(RampLan gth−(steps−stapcount))div RampLangth + if AccelValua < l than AccelValua ?”  1Xand alsa if (St@pcOunt > RampLang th) thenAccalValua :! l; (Po1nt SinOfAngle at lo or hi end of  tabla。 if upcasa(dir) wa ’L’than SinOfAngla  :w 0alse SinOfAnglg ! −360div DAngl @;cosofAngle :wm SinOfAngla + quarte rPi;for PeriodPoint ニー Oto、 (4* Quar tarPi) do baginXi :m FldTimes[SinOfA ngla];if Xi > Othan X1bit :m Co11入Bi tl (コ2 20H1else if Xi < Othan X1bit  ニー Co11ABit2 (161LOHI@lso X1bit ニー 0 X X2 :sw FldTimes[CosOCo50fAn;if X2 >  Othan X2bit ニー Co11BBitl (128BOHIels e if X2 < Othen X2bit := Co11BBit2 ( 6440)11else X2bit :va O: X0Bit ニー 0; if abs(Xi) < abs(X2) than begindoubl e :wr abs(round(Xi +0.5));SingleBit  ニーw X2bitiand: if abs(X2) <s++ absi(Xi) than begind ouble :wh abg(round(X2 +0.5));Single Bit ニー X1bit;and; singla :wm abs(round(abs(Xi)−abs(X2) +0.5));null =wx Fld−doubla−single;fo r accelcount :wm 1ta AccalValua do b aginif upcass(41r) m ’L’ than begin  (leftlif doubla > Othen baginfor j : w Oto doubla do port[coilDataPortl : wXlbit+X2bit; end; 土f single > Othan baginfor j =wa Oto  single do port[coilDataPortl :vmSin glaBit; @nc1: if null > Othan beginfor j :1w Oto n ull do port[coilDataPortl ニーX0Bit; end; (and dir m”1”) and else bagiri (dir ”r”1(right) if null > Othan ’beginfor j :wz Oto  null c3o port[coilDataPortl :wgoBitr ndj it single > o then beginfor j :m Oto  singla do port[coilDataPortl :+wSin gleBit; and; if doubl@> Othan beginforプ:m Oto dou bla do port[coilDataPortl : −Xlbit+X 2bit; *nd; and; (dir ”r”) @nd; (accalcountl (Updata 1ookup tabla pointers、)if up case(dir) s+ ’R’ then beginSinOfAngl e ニー SinOfAngle−17and alsa begin SinOfAngla ニー SinOfAngla+1;and; CosCo50fAn :m SinOfAngl@+ □uarterpi; and; (for SinOfAngla、、、1end; (iitaps ) port[coilDataPortl ニー5FF;if BladePos  <m o than begin(1(if ShowSwaap than  writaln(’ 峠* ERROR: 5TALL 1nSWIl@pe r SlntMOVQ Forward ’)i)BladaPog :wa  O; b a @!p ; dalay(1000); end; end; (***☆☆☆★☆☆☆★★★★☆★脅★☆☆☆☆☆☆*脅☆☆☆☆*嚢★☆★ 會☆嚢★☆☆☆橋★**嚢☆會倫★*☆)end、^Z !会会會★☆☆會☆☆嚢脅☆★会會☆★☆☆☆命嚢☆會☆☆★☆☆☆☆**☆☆ ☆☆會☆★☆會★☆☆☆★☆☆☆嚢☆☆**肴☆I Build Parama ter Fil@r Version 3.60 − ☆會貴会會☆☆★會★4に嚢倫會☆會★☆會★★嚢☆会会会☆會會會☆☆★ ☆会会會☆☆☆☆☆☆☆☆會i PartNama: Date: 1 工mportant Data: ! 1ast altsrtd: 工 會★嚢會☆☆☆★☆会会会☆嚢☆☆☆☆會☆☆會會☆☆會☆★貴☆☆☆會☆ ★☆☆☆★☆☆☆☆嚢*☆! place options togathar  1nside of quotesX use ”’ if n。 options ! General Paramatars800 Elevator boa rd base addressloo al@vator pitchl、5 56 XY−only 5cale factor; Usa 3.556 f or工nchesand 5liza reswloo。 111.0.0 rrho、o、。 17000 Y−coordinate offsets5000 Max n umb@r of bytsas par block Ln La5er Q ueue26000.260oOMinimum X and Y of va t araa (for graphicsviewport) コ9000,39000 Maximum X and Y of vat a rea#TOP、”DC+嘲’ ! Drift Correction on #BTM、”ZW 30X! Z−axis wait time 1nsec onds ZD 8F !Z−axxs dip dapth in mmZV O−2;  ! Z−axis VelOCltyparamater ZA O,2” 工 Z−axis accelerationparamat er !会会会会壷会会嚢☆☆☆會☆☆會會會嚢☆☆会☆轟☆☆☆倫☆会嚢☆☆☆*☆ ☆☆☆會金4に☆会会会会冑☆☆愉*☆☆*嚢MACHINE、PRM I MACH工NE、PRM machine paramatar file  05/18/89SLA−2501!Ieachingヒype620 !  !IIaximum blade 5teps to cross vatO− 03I plungar 5teps par nil of el@vato r movemantBEAM、PRM I PROFXTJ: Parameters Table! Version  3.60 5000、コ2767 beam rest positionr Beam  Profils Data3 numbar of profile 5ans ors3 5econd 5ensor channel 番63104.55 452 SaMOr $1 changed 3−24−89 MJHO,04 51/2 nil hole multiplier to get mWo、 ou6 1 n1l O,005922m1ls changed 3−24−89 MJHO,00 0724n11g 1’ first 5ensor channel #4752.6543 5 ensor $2 changed 3−24−89 MJHo、040 1/ 2 nil hole multiplier to get mWQ、0LO 21ni1 0.00776 2 m1ls changed 3−24−89 MJHO, 000634n1ls コ2767、コ2767 position of 2 nil hole ( $3ン0.040 1/2 nil hole multiplier to  get rnWo、0010 1 n11 0−00605 2 m1ls 0.00063 4 m11g 13 # points in thermistor calibratio n table19900.10 t@mparatura calibrat ion tabla、 、。 15720.15 format is resistance (ohms) 、tamparature(C) 12490.20 10000.25 8057.30 65コ1,35 5321.40 4370.45 3604.50 2986.55 2486.60 2081.65 1 Fast、 Medium & Slow Ca1ibration De lay Values! 1ine format is 5piral ti me (ms) 、 between points (sees。 1/10 see ras)。 r b@twaen rows (sacs120.0.OFast: 20  ms、turnaround as quickly asposgible 50.0.5,5 Medium: 50 ms、l/2 sec、55ecs 100.20J20 Slow: 100 ms、 20 secg、 2 m 1nutes! Slew Rate Lim1t Parameterslo oo maximum 5tep in aither axis2 dela y batwaan 5tep points in millisecond s!会☆會脅★☆會★嚢☆會☆☆會会會会☆会會☆自☆☆会*会命嚢會會☆☆☆ ☆會☆☆☆☆☆★嚢☆会愉★*嚢☆☆倫☆☆☆☆金POWER,PRM r PO籠RV:I+60 Paramaters File!会☆☆自☆☆會 會☆會★☆喚☆自會会會貴☆☆嚢會会★**☆☆☆☆貴会会☆会★☆☆☆會★☆ 貴會★☆☆会會★☆☆☆**☆5WEEP、PRM I S貿ΣEP、PRM 05718/89! 1 ! Is numsweeps lo 1 Pi sweep velocityloo 1 Gl blada  gap as a percent of next 1ayerthic) cnass (ignore if NSm1)1o r P2 100 1 G2 10 1 P3 100 1G3 10 1 P4 1oo 、 : G4 10 ! ps 100 r Gs xo r p6 1oo !G6 xo r P7 100 1G7 0 1Bよりias wh@n Ha las@r is blocked9  ! MD plunge Motor Delay : delay batw een plungarmotor pulses (ms) 3.0 ! PS PlungStart : 1nches plunger  moves down t。 its 5tart position4 1 UL UPLIM : bi− cell activate 1evel−4+ LL LOWLIM: bi −cel、l activate 1evelo、125 ! BG Blad aGapLO−distance between 1iquid andre coater blade (inches)−1! NCNumber of  checks for leveling (0−> 5 or−1for  auto mode *自会 )0.3 ! DA Draining ele vator accelerationo、5 1 DV Draining  elevator velocityo I XP @Xtra Platfo rmheight(nils)、ZSafaSwaap+wZBladaLav al+60m±1+xpnoshow ! Show or NNo−5ho  swa@p 1nfo (S or N in thefirst colum n ) !☆會会会会会會會会命命*愉☆会会*☆会☆☆會会会命嚢會会☆脅會☆☆☆☆ 会會愉會☆☆会☆☆會倫☆☆☆會會☆☆☆☆☆☆ZSTAGE、PRM ! ZSTAGE Parametars FilaI Version 3. 60 旧’ command 1ine options: /NEGZ、/S、7M 8oo elevator control board 工10 addr@ ss、5 acceleration parameterl valocit y paramatar2000000 big distance (max  movament for up or down)100000 # of  m1crostaps par 1nch2000 timaout val ueloooo ZBlad@Lave1 10000 ZLiquidLavalloooo ZUnloadLaval ^2 program AutoLevel;uses art、util土tyl、 utlsweep、windowgHjunksc : integer; DisplayWind : wind;ExitSave : pointe r;Done : boolean; Ho1dKay : chart thaL4v@1: integar;+ 9F+ )procedure E xitAutoLavel X(5F−1egin cursoron: DefaultWindow; C1rSCr; ExitProc :w ExitSaverand; clrscr; centertext (’ Auto−Levalling Program  Vl 、1’ 、2 ) ;centertext(’Press L to  l4vel、 X to exit、 ’ r 4) Hand; centertext (’Auto−Levelling in progr ess 、 、 、 ’ 、 6) rSetPlunger (−x 、 t he掬ve1) ;cantartext(’Levelled at ’ 、 6) ;write (PlungerPos ) :wrxtexn (”  ) i userwait; DrawMainScreen: end: egin (工n1tialize program、)ExitSava :m Exi tProc;ExitProc ニー @ExitAutoLaval;Cur iiOrOff; Done :ag false; (工n1tializa 5creen、)ClrmCrr DefineWindow (DisplayWind 、 5 、5 、75  、20 、2) ;FrameWindow(DisplayWj、nd); ActivataWindow(DisplayWind) ;orawMax nscraani (Raad keys、1 (”Xll k@y ax土t+s、)(”L” key autolaval s、)epeat epeat delay(Zoo): until kayprasgad; Ho1dKey := upcase(RaadXey) ;if Ho1dK ay −嘲X’ than Done ニー trua;if Ho1dKay  −’L’ than DoAutoLaval;until Done; and、^2 (02101/89 JFT Mada 1nto a unit from  Wayna Vir++son’s code。 02/27/119 JFT Modifiad Too Hlgh” or  ”Too Lowllsectionsto read until a pe ak is raachad、than raad until thaabs (leval) is 1asss than a thrashold va lua−Tha us@r isadding or removing re sin during this tima。 03101/89 JFT Above fix only works wa ll for rasinramoval、Go to modifi@d o ldar m@thod with epsilon of 5゜Changa  user massag@si。 05104/119 JFT Fixed (?) tha bug that  caus@d rep@atedadjustments when the  bicall was bullsayed、Changad userme ssages and 5ounds、 Ramoved nead to p rass key whenadjustment complete。 05/25/89 JFT Usa procadura HandlaKay boardRaquast 1nadjust resin 1evel 1o ops so that the user may abortw/ctrl −c or break。 06/16/89 JFT Length@n move dona by p lunger from 40 to 60when checking to  see if ws’ra on tha bicell、 Al5o us eupLim ′and lLowLim 1nstaad of セwica  upLim and twice lowLim。 08103/89 JFT 工n CheckLavel、if 2nd or  3rd raadings arsio than call it off  the bicall、 )(會☆**◆☆☆會嚢☆會☆*慟嚢☆會會*峠* ***會*☆☆☆會★★★*☆會會☆☆森★*☆☆☆*☆會★☆☆☆☆☆)un it UtlAdjust; (S M 16]84,0,01 (9D十;工+) (☆☆☆★肴脅☆☆☆會☆會☆會☆☆☆會**☆☆慟☆☆會☆★會肴會命**会 嚢貴☆☆會☆★*☆☆脅★☆☆☆☆☆★肴金)int@rface usas Crt、Dos、Utllityl、UtlSwe@p、UtlZS tage、Windows;procedure AddRamoveResi n(var FinalLevel: intager);p r o c a  d u r e procReadBicel l (displaydalay : inta gar ; echo : boolean) Hprocedura Lon gReadBiCall(displaydalay:xntagar)jpr ocedure procPlungerUp(echo:boolaan); procadure procPlungerDown(echo:boole an)H(☆☆☆☆☆☆☆☆★☆★☆☆脅☆貴★★☆慟肴★★嚢☆☆☆☆會★★ 嚢★嚢☆★☆會★★嚢★☆會☆★☆嚢☆★☆★★★☆)implementat ion onst spgilon m 2; (+/−bias variation used  in add/ramOVeresin 1 opt、gtopc : integer;valocity2 : real ; key、jun)c)cay : char;ユey@l : intagar ; dssla、ytima : intaggr;onbic@ll、l@val adjusted : boolaan+tempstring : stri ng;AlartWind、DataWind : wind;(★☆**★會 嚢會嚢會*命★☆☆☆會☆貴☆會*☆☆☆☆會☆會☆☆☆會☆*嚢☆會☆☆會☆ ☆☆☆嚢☆★☆☆峠嚢☆☆)p r o c e d u r e procRaadBicell (displaydalay : intag er ; acha : boolaan ) ;(工f acho is t rue than writa Igv@ls to 5creen)プunk 5tr:string; sign :sitring; begin RaadBiCall(’N’、1evel):土f echo then b eginif leval < Othan sign :? ’+’ els a sign :m ’−’;(Ravarsa 51gn5 for dis play)if leval m Othan siign :m ” ; ( Ogets n。 sign) junkstr :w concat(’The 1iquid 1evel  is’、sign、IntStr(abs(leval)))icenterT ext(junkstrj);end; d@1ay(displaydalay) :end; (☆嚢脅☆會☆會會☆會*嚢☆☆☆☆会嚢☆☆命會會☆貴★*貴☆★★*☆☆☆ ☆☆★命会☆★★★☆★*命倫嚢★☆★峠)procedure LongRa adBiCall (displaydalay: integer) ;be gin epeat procReadBicell(digplaydalay、falsa);  (don’tgchot。 1sevals to 5creen)until keyprassad; key ニー Raadkey; and; (☆命舎会4に愉☆☆舎☆會☆会☆肴★☆會☆☆☆☆☆嚢☆*自☆☆☆☆☆☆☆ 会☆☆☆倫脅會嚢☆*☆☆☆会会4に☆☆會☆町procedure proc PlungarUp(echo:boolsan);begin laveladjustad :” falsetrap@at PlungarUp(10,gtopc)+procRaadBicall(1 ,echo) ;until keypressed; jun)C)Cey ニー upcasa(Readkey);end; (☆*倫*脅會會会☆☆☆脅☆會☆会☆☆★*☆會★☆会☆☆會★☆☆會★☆☆ ★★☆☆☆會**嚢☆會★☆嚢☆嚢☆☆★脅)procadura procP lungarDown(@cho:boolean)+egin leveladjustad := zalsa;epeat Plun Cie r Down (X Or S t OpC) rpr 0 cRea d B i Ce 11(lt e chO) runtil ke ypressad; 1unkk@!yニー upcasa(Readkey):and; (会*会☆會☆★☆會☆☆☆★*嚢☆嚢☆*☆★嚢会★☆☆脅☆青☆脅☆★*☆ 嚢会☆會嚢☆嚢☆嚢嚢會☆☆☆貴★★★嚢☆☆)procadure DoBe ep(fraq、time : integer);begin sound(freq); delay(time); nosound: and: (会☆★脅會☆會☆☆嚢☆★☆*肴☆☆☆★脅会★★*脅★脅★☆☆☆*壷*貴 壷☆冑會査★資☆★貴☆嚢***☆☆★★*嚢)procedure DoFi nalAdjustment;xJevel、tempint、returnc oda : xntegerlwagtaKay : char; begin ActivataWindow(AlertWind) ;clrscr; if onbicell than begin (otharwisg sa tplungar gatspissad ) centertext(’P@rforming automated fin e adjustmentof rasin 1ava1.’、2):cant artext (’ PI@!agll! 5tand by 、’ + 5  ) rActivataWindow(DataWind)rclrscr; ReaclBiceLL(’N’、L@V@kl);(1(t@mp1.nt  ニー at) i do C0urSa a(!ju!!t!1lant fi rsttempint ニー 32; (do coursa adjustm ent first 1apaat HandlaKeyboardRaquast(wastaKey ) ;if  (level > uplim) than baginr@paat for i :m l to tampint do baginplunga rDown (1,RaturnCoda) ;dalay(400div t ampint) ;end; (of i ) ReadBiCall(’N’、1avel);until 1evel <  UpLim;endj if (laval < lowlim) than beginepeat for i :m l to tampint do beginPlunga rUp (1,raturncode ) ;d@1ay(400div ta mpint) :endj (’ I ReadBiCall(’N’、1aval):until rgval >  LowLim;end; clrscr; eantartext(’Pausing to allow resin t 。 5ettle、’、1)f delay(50oo) ; (allow settling time ) C1rScr; (Pausa completed 1tampint :w  l; (nOW do finar adjustment IRaadBi call(’S’、lav@l);until (lev@l < uplim ) and (lav@l > lowlim) :ActivataWind ow(AlartWind)yclrscr; cantsrtaxt(’Re5in 1aval now adjusted  for partbuilding、 ’ 、4) : 1avaladjustad ニー true;delay(2500)r baap; and; (if onbicall 1and; l of dofinal djustment l(脅☆貴会*嚢☆★Ik☆☆☆会会★★会☆*壷会☆☆ 會★會★☆☆☆会會W*肴会★★☆☆★★☆★☆☆自★*嚢☆☆嚢倫☆)pro cdur@ChackLaval;(raadg and avaluatas  if on or off bicalland 5ets boolean  bicall accordingly )raturncode 、 fi rstleval 、 5acondlavel 、 thirdleval  、 tempint: 土nt@qerr C1rScr; onbxcell ニー false;Cantertaxt(’Checki ng resin 1eve1. ’ 、 1) ;Centertext(’ Please 5tand by、’H5);flrgtleVQl :w ( 1B secondlevel :l1ll 0rthirdlevel :x OH ActivateWindow(DataWind) Xclrscr; RaadBicell (電S ’ 、firstlavel);if (fi rstlevel > 2☆uplirn) or (firstlevel  < 2Qowlim)then onbicell :m trueelse  b@qin (first gave bias type rn11dLnq  □couldstill be dead on IP l unq@rUp  (60r rn tu rn Cod@ ) 7(Th1s delay a dded to thwart the recurrentadjustme nt bug、) Delay(3000); RaadBicell (’ S ’ 、 s@condleval ) ;P lungarDown (1;、p、 raturncoda ) ;(Th1 s d@lay added to thwart the recurren tadjustment bug、 ) Delay(3000); ReadBicall(マS’、thirdl@val)rPI un9@ra p (60r r@turncod@) ;(both 2nd and 3r d must not give bias readingto be on  bicell ) (会 if not (sacondlavalin(bias−apssllon、 、bias+epsilonl) andnot (thirdlevel i n[bias−apsilon、、bias+apsilon])than 0 nBicall ?” true;肴) (☆ if ((sacondlavsl > uplim) or (sacond laval <1owlim)) and ((thirdleval > uplim) or (thirdlevel  <1owlim)) then OnBicall :1111 tfullF☆) if ((5acondLevel > bias + epsilon )  or (thirdLav@l < bias −jpsilon ) )th an 0nBxcall :m t1@;(Tha following wa s add@d to accomodate 5LAs withbiase s outside of the range −1,、+1. Whan  off the bicell。 those 5LAs showad as on the bicell、  Th1s 5hould catchthat case、−−JPT 1 if (5acondLevel m bias ) or (thirdLa vel −m bias) then 0nBicell :trt fals e;ActivateWindow(AlartWind)H@nd; (al se ) and: (of chackleval )returncoda、midp lunga、plungamove = integer;egin midplunge := maxplungemoves div 22pl ungamove :m abs(midplungs −plungerpo sl ;(always put plunger in mid posit ion beforestarting part ) (for now always go all the way to to p )p 1unq’l! rup (Or rntu L”ncode )  ?plungerdown(maxplungamovss div 2,5t opc) ;updata3dstataf ile (zstagapos  、 plungarpos 、 returncode ) H(if tra cking showsi no problsm than activat efollowing 1nstaad )(if plungarpos <  midplunga thanplungardown (plungamo va 、 5topc ) +if plungarpog > midplu nga thanplungerup (plungamava 、 5top c) ; )FramaWindow(DataWind);Activata Window(DataWind);ClrgCr: c@ntartaxt(’Pausing to allow resin t o s@ttle、’、1)Hdelay(10000); (wait 10  sac for 1avel to 5tabilizefter fast plunge’ move )AetivataWindow(入1 artWind)rend; (canterplungar )(貴会★★☆ 会★*貴☆☆******☆*貴☆☆☆脅★☆☆★☆★☆☆☆☆*愉☆*貴★★ 嚢☆*☆債★★貞自☆☆)procedure AddRemoveResin (var FinalLavel: integer):onst CoarsaAd)ustLxm −xo;var tampint、oldlavel、plungamova、option、r aturncode :intager; kQY r Wa S+−@ key: Cha r rt@mpreal :  real; PeakRaachad : boolaan;MaxReading : i nteger;egin DafineWindow(AlertWind、10,7,70,18,2) ;DefinaWindow(DataWind、1.0,23,70,25. 1);DefaultWindow; C1rScr; writelnl centerln(Product++ Re5in Lavel入djust ment Utility’):writeln; centerln(’Copyright (C) 1989 by 3D S ystems、工r1C,I) Hpentarln(’3D Systems  StereoLithography Systam’);FrameWin dow(AlertWind);(FramaWindow(DataWind ); )(DataWind Lm framed in、CantarPlu ngar lActivataWindow(AlartWind);(fir st sea if already did 1evel check )( shovswaep :wm true: )if not 1aveladj ustad than begincentertext(’工nitiali zing resin adjustmentapparatus、’、2)t cantartext(’Please 5tand by、’15);cen tarpiunger; CheckLevel; Dalay(300); if 0nBicell than beginActivateWindow (AlertWind);C1rScr; centertext(’The resin 1evel is curra ntlyin’、2); centertext(’an acceptable range for  partbuilding、’、3): cantartext(’Manual adうugtmant will b eunnecesgsary、’、5):DoFinalAdjustmant ;Updata3 DStataFile (ZStagaPos 、 Plu ngerPos 、 5topc ) ;@xit; and; (if 0nBic*ll )ActivateWindow(Al artWind);C1rScr; for tempint :w l to 3 do beg土nb@ep; delay(loo); end; (of tampint )centertext(’Th@ re sin 1aval is not in anaecaptsible ’  p 2 ) rcentertext(’range for part bu ilding、 ’ 、3) ;centertext(嘗AMANUALad justmantwillbenecessary:’、5)r cantartext(’Look at the white leveli ng pointer atth@’、7); cantartext (’ raar of f−h@ vat、’ t 8  ) rcantartext (’工s resin touching t he point@r? ’ 、9) ;While keyprassad  do wastekay ?−raadkay; (catchall pra vious keys IWastakey ニー Readkey; (q@ tnaW k@’f l(LEVEL Too HIGH) 工f Upcase(wastekey) w ’Y’ than begin  ’(1evel to。 centertext(’The resin 1evel is too h igh、 ’ 、 l) :centertext(’Please ramo ve resin until the beepsounds、’、5); cantartext(’5top r@moving rasin when  you hearthe beep、’、6); P@akRaachad :wm false;MaXRaading ニー  01 apaat HandleK@yboardRaquast(wasteKay );Aet ivateWindow(DataWind);r*acibicall(’N ’、1evel)z (need eiL!LCk readher・ ) (dalay(10);) ActivateWindow(AlartWind):if abs(lev @l) > MaxRaading than MaxRaading:W a bs(laval); if (abs(lav@l) < MaxRaading) and(Max Raading > 50) than PaakRaachad =1111 true;()(Until  (laval < bias−epsilon) or (level >b ias+epsilan) ; ) ()(、Until Paa)cRaachad and (abs(leve l) <CoarseAdjugtLim); )Until abs(loy al) > uplim+1((bias ) +apsilon)7 (bicall values nagativa at bicall to p )cantartext(’Press anykayto contin ua、、、’、8);epeat DoBeep(Zoo、1000); (delay(501; ) Until kayprassiad;wastakey :m raadke y;clrscr; centertext (’ Usar finished ramoving  resin、 ’ 、 5 ) :Chackしavel; (to、che ck for too much H,quidremoved ) if not onbicell then beginClrScr; centertext(’Re5in 1avel not in accep tableranga、’、5); DoBeap(100,1000): dalay(2000)t addr@moverasin(stopc)7and; (if not o nbicell lDoFinalAdjustment;Updata3 D StateFila (ZStagsPos 、 PlungarPog 、  5topc ) ;exit; @nd; (if 1evel too high )(IJVEL Too  LOW I C1rScr; cantartext(’Th@rasin 1evel is too lo w、’、l);centertext(’Plaaga add resin  5IaaY until theba@p 5ounds、’、5); Paa)cRaachad =+w falsa;MaxReaaxng ?− o; epeat HandleKeyboardRequast(wasteKey );Act ivateWindow(DataWind) ;raadbicall(’N ’、lev@l); (need quick readhere ) (delay(10);I ActivateWindow(AlertWind);if abs(lev el) > MaXRaading then MaxReading:= a bs(level); then PeakReached :! true;+1(Until (l evel < bias−epsilon) or (level >bias +epsilon) ; ) (1(Until Pea)cRaached and (abs(level ) <coarsaAdjustLim)j )Until abs(lava l) > uplim+1((bias ) +epsilon); centertext(’Press any kay to continu e、、、’、8);epeat DoBaap(100,1000); delay(50); until kayprsss@ci;wastakey =w readka y;C1rSCr; cant@rtaxt(’Usar finished adding res in、 ’ 、 5) ;Checkし=val; (to be 5ura  before attemptingfinaladjustmant ) if not onbicell then baginCantarText (’Re5in lev@l not in acceptablarange 、’、5): DoBaap(100,1000); delay(2000); addremovaresin(stopc);end; (if not o nbicall )DoFinalAcljustmant;Updata3D StataFile (ZStagaPos 、 PlungerPos 、  5topc) ;exit; and; (if not l@valadjustad )clrscr; cantartext(’Re5in 1evel is now adjus tad for partbuilding、’、4); delay(25001: beep; end; (addremovaresin )(**☆肴☆青★★*脅☆☆* ☆☆會☆★☆★☆嚢會☆☆☆★☆☆☆*嚢會嚢★★☆★☆☆*嚢嚢☆★*嚢☆嚢 嚢脅嚢嚢脅嚢☆)begin leveladjusted :wm falserend。 +2 (−諺諺箇■冨−諺厘旙禦−埠禦一履麿30 Systems StaraoL ithography Systam SoftwaraRECOATER,P AS SLA−250Racoater wipar and plungar Co ntrol ProgramRacant H1stow了: 971278B Ver 3.30 first relaasad for  breadboardtasting 10/17/88 Var 3.301 modified to bauti lity/1nitialization for final 5LA250 11/15/88 Ver 3.:31 copi@d from Rac口a tl −uB@ C口mmonutl★、inc files 01/11/89 Var 3.32 remove sweeper for ward back −−> usemove move sweaper 01/25/89 Var 3.33 JF’r r@movad swaep ar valocitybiasing −−> pass dasirad  velocity in in/s@c to MoveBlada。 SweaparForward or SweeperBack、 Check s constant S工MULAT工0Nto sea if we wa nt to run this as a simulation (n。 communication with 5LA) (u+5aful for  running onworkstations not attached  to 5LAs)。 01/30/89. JFT merged with Wayne ’ s  updated AddRemoveResinprocedures。 02101/89 USES Windows、 Move AddRamov eResin to unitUtlAcijus、 USES UtlAdj us。 02/16/89 Adjust 5tart Po5ition 5ets  new ZPlungaSetPosand 5ands the eleva tor to that position。 03107/89 JFT Added exit proc to forw ard sweepar。 03109/89 JFT Racalibrated sweep peri ods t。 account for final compiler options。 03/10/89 JFT Fixed UtlAdjust so that  it may bebroken out of。 0:1728789 JP’T V3.42 Changa sweep pe riod nowbullat−proofed to 1nput。 03/30/89 JPT V3.43 Writa paramaters  to machina、pr′m1nstead of zstage、prm +05/25/89 JFT V3,61 Allow usiar to b reak out of adjustresin 1evel 1oops。 06107/89 JF’T V3.61B Make stirring a asiar to break outof。 06/15/89 、JPT V3.61CBstttar gtirrin9  utility(multi−gpa@d)。 06/16/89 JFT V3.61D Batter bicell ch ack (seeUtl入djustt、pas)。 o6/16/89 JFT V3.61E Fix 5tir utility  by using theindaxar’s MA (Mode Alte rnate) command。 07105/89 JFT V3.61F Single Co11 Hold ing Torque。 07/21/89 JFT V3.62 Changad varsion # 。 07/24/89 .7FT V3.6コ Fixed adjust ras in 1evel (?)。 ++++−++++++++++−++++++−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−−−−1(S M 1.63B4,0,0) (So−を工+) (R+) usas Crt、Dos、Utilityl、UtlSweap。 UtlZStage 、 windows 、 UtlAdjust 、工nd axar ;(S工product、1nc) Version工d m ’3.63’:工ndant w 19X epsilon !ll; (+、’ −bias variation us ed in add/removeresin I Simulation m fals@X(工s this a simula tion (no 5LA)?Op tt S tOpC: l n t e  C1e r rSweepPariod : real;keyI junkk ey : charllevel:integer; dalaytima : intagar+onbicall、1evelad justad : boolean;temp’string : strin g;TopWind 、 BottomWind 、釦troWind : W ind;5aveExit : pointer+(峰★脅☆★★☆☆會*嬌☆ ★☆倫★貴☆貴★*倫*自☆*慟*☆☆★脅☆★☆嚢☆☆會☆★★会肴☆☆☆會 肴☆☆*嚢)Procedure CantsrText(tampstrin g : string;RowNumber :Int@Ic1er ) ; egin qOtOXy(1t rO■■山@ r ) rClrEalt if length(tampstring) >s+ (lo(WindMa x)−1o(WindMin))then gotoxy(1,rownumb er)e l s e gotoxy(((lo(WindMax)−1o(WindMin)71en gth(tempstrinq)) div2)、rovnumbar); write(tempstring) :endX ) (☆☆☆☆☆☆☆☆☆会☆☆會☆☆★貴★☆*貴☆☆貴★☆嚢☆****倫★☆ 嚢☆貴★****愉★★★★☆★★嚢☆貴★☆)procadura Exit Recoatar;egin sweeperFOrWa rci (:3 r S topc ) ;cur gOrOn; ExitProc :! 5avaExitHHalt(0); end: (☆貴会**会☆☆*嚢☆☆☆嚢★會**脅☆☆★★*愉★★★嚢★★★*** *☆★☆☆★☆★*☆★☆*☆☆嚢★脅★★肴)procedure Disp layLavelBうunkStr : stringH sign : string[1]X egin procReadBicall(500,true);end; procedure DefaultWindow2;egin DafaultWindOWi window(1,1,80,22);end: procadur@ShowPowarManu;1 : xntegari junkstr : !1trln(i;egin DefaultWindow2; C1rScr; FrameWindow(BottomWind);(ActivataWin dow(BottomWind);DigplayLavaly ) DafaultWindow2; centertext(Product+’ R@coatar Utilit y ControlProgram’、l)+ Wrltlllni cantartext(’Version ’+Version工d+’ So ftware Re1aasa’ +Ram 3 D r 2 ) rcent ertext(’Copyright (C)1989 by 3D Syst ems、 工nc、’、3);centertext(’30 systems  La5ar StareoLithographySystem’、4)7 if Simulation then csntartext(’SIMtJ LAT工ON INPROGRESS’、5); for l:=l to 5 do Wrl?、Qln+F r a m aW  l n dow (TopW l nd ) iActivataWindo w(TopWind);C1rScr; writeln(’ 1. Adjust Re5in Laval Util ity ”4 ;writeln(’ 2.Sweep ’);writeln (’ 3.ChangeSweep、Pariod’);writeln(’  4.LowarLiquid’)HWrLtaln (’ 5− Ra1se  Liquzd ’ ) ;writeln(’ −6,Ad′3ust Bui lding 5tart Po5ition’);writeln(’ 7.5 tir Liquidl);writ@(’ X、Exit’); D@faultWindow2H csntert@xt(’Please make a sg@l*ction 、’ 、1g);writeln; ・nd7 pl”QC@dur@ Writ@ZStart’L@V@ l (News  tartZ Llavel : real ) ;Con≦t ParamFilaNama wr ’\3DSYSXFiACH工NE、XY Z’;NewNama s+ ―\3DSYS\MkCH工NE、PRM’;工 0arr、i、m、n、valcoda : intagar+j = lon gint+ r : real; ParamFilaLine、 AppandTaxt = 5tr80;Pa ramFila、NewFile: text;工nchDistancast r : 5tr130;DirInfo : s@archRac;工nput Line : string;bagin openParamFila :m ParamFileNama;ass+i gn(ParamFila、OpenParamFile) ;rawrita (ParamFila):as+sign(NewFile、NawName) ;reset(NewFile) X while not eof(NewFile) do beginraadl n(NewFile、InputLinel:writeln (ParamF ile、 InputLine) rend; rewrite(NewriLel+ xO@rr :! 工Or @ m u l t 7if l0arr <>  Othen baginOpanParamFil* :m ParamFil saName;assLqn (ParamFile 、 OpanParam Fila ) ;rasat(ParamFila) ;xo*rr :111  工Or@mu1tfif roerr <> Othan OpenPara mFila :w ”ana: (工o error) Rl0arr m Othan begini i−0; r@set(ParamFila): r@paat readln (paramFila 、 paramFilaLin@) ; writeln(newFile、paramFilaLine);until  paramFilaLina wz ’ZSTAGE、PRM’;whila  (not eof(ParamFila)) and (i <s+ 9)  do b@ginfor j:ml to 255 do ParamFila Lina[il:m”:raadln(ParamFile、ParamFil aLina);if i < 7 th@n vrit@ln(NewFile 、ParamFilaLir+e)alsa bagin if−i m 7 than appandTaxt :m ’ZLiquid Lavel’; alsa writeln(NewFile、ParamFileLine)  ;ndt (ParamFileLine[l] <> ’I”) then 1nc(1 );and: while not eof(paramFila) d。 bagin raadln (paramFil@、 paramFileL、ins )  :wr lt@ l n (n ewF il e r pa ramF 11  @Ll nla ) rend: and+ ZPlungaSetPog :m NewStartZLavel + 0. 315; (8mm 1overthan 5tart、) closq(NewFile) ; close(ParamFila) rand; prOc@C1ur@ ZSurfacePositxon(var ZVal ua : real) ;onst ZVSlow m ’O,1OOOOO’X(Slow 5peed for  setting 1avalskey: char; dumbk@ytOK : booLaan;5topCode : inta ger;ZVSetZ : 5tr10; bagin dumbkey :+w falsa;ActivataWindow(Top Wind);clrscr; Cantartext(’Use up and down arrows f orpositioning、 ’ 、 l) ;centertext(’  5pace to halt、 ’ 、 2) ;Centertext(’  S to 5hift to slow 5paed、’ 、コ);Cente rtext(’ and X when at the desired 1a ve1.’、4);、zvsatz :W ZVeloc;epeat OK ニー falsa。 epeat key :W lzl; HandleKayboardRequest(key) ;key :m u pcase(key) :if dumbkey then )(@yawl  l;dumbkey:=false; if key in [4172,180,電 I、電S’ 、 ’XI ]  than OK :m true;(up and down arrows  1until 0Kr case key of $72 : bagin if not NagZStage thenZFraaMoy@(ZAcce l、ZVSatZ、’UP ’) algaZFraeMovs (ZAcce l 、 ZVSatZ 、 ’ DOWN ’ ) ;dumbksy ;gm tru@; ndf 参80 : bagin if not NagZStaga th@nZFraeMove(ZAccg l、ZVSatZ、’DOWN’) alsaZFreaMova(ZAcce l、ZVSatZ、’UP ’);dumbkey :m trua; and; ’S’:begin ZVSatZ :m ZVSlow; (change to slowspe ad I C@ntartsxt(’5hifted to slow 5peed’ 、  6) ;cantartext(’ for final position ing、 ’ 、7) ;@ndH ’X’: begin () ZValu@I ニー −absi(ZStagePos) ;@xit ; and; arid ; until falsaF ndH prQC@1dur@! Adj uS tBu 11dstart ;ins tring : 5trinq;valcod@ : int@ger;うun k5tr : string; NewStart : real; Tamp : real; bagin StopKey :m true; Tamp ニー ZLiquidLevel;Activatawindow( BottomWind);clrscr; Centertext(’Moving elevator to curra nt 5tartposition、 、 、 ’ 、l) IGotoZPo s(1)F cantartext(’Po5ition the alevator at  the desir@d 5tartposition、 ’ 、 1) : ZSurfacaPosition(ZLiquidLaval);clrsc r; AetivateWindow(Bottom%l7ind);C1r11er ; プunkstr :W concat(’A new build start ing 1sivel has bean@nt@r@d、’); centertext(junk5tr、l);ActivateWindow (TopWind)sCl r !i Cr ; cantartext(’入CC@pt this n@W 1aval ?’  +2)japaat dalay(100) until Ksypressed; if tamp <> ZLiquidLevel than baginif  upcase(raadkay)m’Y’ thanWritaZStart Lavel (ZLiquidLavel)else ZLiquidLave l =m tamp;and; 5topKay :m falsa; GoToZPos(2); (Go to Chack Re5in Leve l position、)(1(ZReadParms;) ndH procedure SatNawDalay:instring : str ing;valcode : integer;うunkstr : stri ng; tempReal : raal; bagin ActivataWindow(BottomWind):jun)cstr  :+* concat(’Enter gwaapar period [no w’、RaalStr(SweepPeriod、2)、’ g]: ’)rC @ nt @ rt@ Xt (] un kS t r r 1 ) ;ra adln(instring); if instring <> ” than bagintampRaal  :w RaalVal(instring、valcoda) ;if (t@ mpR,aal > maxswaepPsriod) than tampR aal ’ :wamaxswaapPeriod: if (tampRaal < minsweapPeriod) than  tampRaal :mminswaapPmmlns; and; cursoroff+ if (valcoda w O) and (insitring〈>I T ) than SwaepPariod :mtampReal; junkstr :wm coneat(’Swaeper period n ow sat t。 ’、RaalStr(SweapPeriod、2)、’ 5aeonds’) ;centertext(うunkstr、’1):delay(:1000) ; and; procedure GetSalactionl;bagin rapaat ActivataWindow(BottomWind);DisplayLa vel ; ActivateWindow(TopWind)rHandlaKeyboa rdRequast(key);key sur upcase(key);i f key inじ1+ 、 、+7″、 ’X’ ] then exit+ until false; ndr (☆*嚢☆貴会壷會愉★會嚢會會会會★貴☆☆**命*嚢會☆貴☆貴★★☆☆倫 ☆*金会命命會*嚢嚢愉☆☆嚢貴★☆脅貴脅☆)procedure DoBe ep(freq、time : integer)Hegin sound(fraq); dalay(−time); nosound; end; (★会會命★☆貴会会☆會☆☆★嚢貞☆☆☆**嚢★☆**☆☆☆☆**☆★☆ ☆☆会☆☆★☆☆☆會倫☆☆★☆☆★☆☆*貞)proceduredoUpL iquid;bagin ActivateWindow(BottomWind)HprocPlung erDown(true)rActivateWindov(TopWind) ;and7 (★☆★☆***僑嚢★☆☆☆嚢★☆☆☆★☆冑會☆***倫☆脅☆★★☆*嚢 ☆☆*肴☆☆**☆會☆☆☆☆☆☆★*☆*☆)procedure doDo wnLiquidXb@gin 入ctivataW土ndow(BottomWind);procPlung erUp(true);ActivataWindow(TopWind)Ha nd; (☆☆☆☆☆會☆☆☆★嚢☆脅☆☆*☆★★*☆★☆貴會☆☆☆☆☆★***倫 ☆☆☆☆★☆*☆☆☆青☆青★☆☆☆★*☆★)procedure 5tir ; wastaKay : chart endPos : long工nt7 andPosstr : string;abortstir、5top :  booiaan;accal、veloc : string;(−−−−−− −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− −一−−−−−−−−−−−1procadura E1evatorCo+t nand(thacmd : string ):response : gt rlncl;bagin if thecmd <> l’ then if SendCmdTo工nd axer(thacmd+’’lZTimaout) <> 。 than begin beap; and alsa if RaadRasponseFromlndaxar(resp onse、zTimeout)〈〉 0 then begin k)@ @p ; end; @nd; (++++++ +++++++++++ +++++ +++++++++  −−−−−−−−−−−−−−−−−−−−−)bagin andPos :s+ trunc(zstapsPer工nch * (−1 ) * (zLiquidLavel−0,5))i S t r (e nd POm t @n d POSS tr ) rAc tivateWindov(BottomWind) ;C1rScr; Wr4.ta(’ ST工Rfast/madium/slow (f/m/S ) : ’);rapaat delay(100) until kaypr assad;wagtaKey ニー UpCase(RaadXay) ;a bortstir :w falsa;casia wastaKay of ’S’ : bagin accal :m ’0.5’: Valoc :wa +1+。 @nd; ’M’ : begin accal :m 151; valoc :m 151; ndj ’F’ : bagin accal:+w’101F veloc :m ’10’; end; else abortstir ニー true:end; if not abortstir then beginClrScr; Write(’ ST工RRING : press、any key to  abort、、、−’ );GoToZPos(2); El*vatorCommand(’E MAλ’ + accal + ’  V’ + veloc ) ;r@p@at if KeyPressad then 5top :m trua;dela y(100)t if xayprstssaa then 1stOp ニー truatun til (5top ); C1rScr; Write(’ Aborting 5stir operation、、、  ’ ) fEl@VatOrCO!I1mand(’に’ );ZGoHome H GoToZPos(2); and; C1rScr: 入ctivataWindow(TopWind);and; (★会☆☆☆嚢☆会会★☆☆☆★☆☆☆☆☆*☆☆☆*嚢會會*脅☆☆*慟会★ ☆倫脅☆☆☆☆☆☆☆☆★會☆☆☆嚢☆會☆☆)b@gin (RaCoate r l TaxtBackground(Black);TextColor(Whit e); 5avaExit :m ExitProc;ExitProc :w @Ex itRacoater;DafaultWindowH clrscr; DefinaWindow (TopWind 、 Indent−1、7、8 O−Indant 、16 、l ) ;DafinsWindow(Bott omWind、 1o、23.)0,25,1);DefinsWindow( 工ntroWind、10,7,70,1.2);if Simulation  then 0nBicell :m falsa;Read3DJtateF ile(ZStagaPos、PlungerPog、stopc)H5wa@ pPariod ニー DefaultPariod;LavalAdjust @d :1Ill false;dalaytime :m trunc(Sw aepPeriod):CursorOff; FrameWindow(工ntroWind) ;ActivateWind ow(Intro%4ind) :C1rScr; C@nterTmt(’Elevator moving to check  resin 1evelclrscr+ epeat ShowPow@rManu; ActivataWindow(BottomWind) ;Activata Window(TopWind) ;GatSelactionl; cas@key of ’1’: AdaemoveRasin(stopc)r’ 2 ’ : Mo veBlade (SweepPeriod 、 5topc) ;’3’:  SatNawDalay; ’4’: doDownLiquid;+5曾: doUpl、1quid; 161: AdjustBuildSta、rt;’7’: 5tir; ’X’: Halt(0)f and: key :w ’ リ untxl false; Cursorσn;。 (We exit through abort、 、、 we naver  reach hare、 )and。 上述のように本発明を特定の実施例について述べてきたが、各種の変更例が使用 できる。例えば、余分な重合性液体はドクターブレードによって掻き取られると 説明したが、レーキその他の除去手段も利用できることは明らかである。また、 重合性液体の浴の上面の水準を検出するための手段として放射線源および検出器 について述べ°たが、機械式、電子式、空気式その他の広範な装置がこの水準を 検出するために使用できる。例えば、フロートによる装置について説明した。他 の修正および改良も本発明の範囲を逸脱せずに使用することができる。従って、 本発明は、添付請求の範囲によるところ以外、0かなる制限も受けるものではな い。 浄書(内容に変更なし) Az几ノー 浄書(内容に変更なし) A’XIジグ fk−、zz 浄書(内容に変更なし) 浄書(内容に変更なし) F/6.23c 手 続 補 正 書 (方式) 国際調査報告

Claims (49)

    【特許請求の範囲】
  1. 1.三次元物体を形成するための立体造形システムであって、 (a)物体支持装置と、 (b)物体支持装置の表面に重合性液体の薄層を付与するための装置と、 (c)希望の厚さの重合性液体の平滑な層を得るために、付与された層から余分 な重合性液体を掻き取るための装置と、 (d)重合性液体の平滑な層に既定のパターンで硬化媒質を当てるための装置と を含むシステム。
  2. 2.請求項1記載の立体造形システムであって、重合性液体の浴を入れるように 適応された槽を含むシステム。
  3. 3.請求項2記載の立体造形システムであって、槽内で物体支持装置を上下させ るための装置を含むシステム。
  4. 4.請求項1記載の立体造形システムであって、掻取り装置がドクターブレード であるシステム。
  5. 5.請求項1記載の立体造形システムであって、ドクターブレードを平面移動さ せるための装置が備わっているシステム。
  6. 6.請求項3記載の立体造形システムであって、物体支持装置を上下させるため の装置が、物体支持装置に付与された表面に重合性液体の薄層を形成するために 重合性液体の浴内で物体支持装置を下降させるための装置を有しているシステム 。
  7. 7.請求項6記載の立体造形システムであって、物体支持装置を上下させるため の装置が、物体支持装置の表面の重合性液体の層を浴の上面より上に引き上げる ための装置を有しているシステム。
  8. 8.請求項7記載の立体造形システムであって、掻取り装置がドクターブレード であるシステム。
  9. 9.請求項7記載の立体造形システムであって、物体支持装置を上下させるため の装置が、物体支持装置の表面の重合性液体の平滑な層を、層の上面が構内の浴 の上面と同じ高さになるように浴内に下降させるための装置を有しているシステ ム。
  10. 10.請求項2記載の立体造形システムであって、槽内の浴の水準を制御するた めの装置を含むシステム。
  11. 11.請求項10記載の立体造形システムであって、槽内の浴の水準を制御する ための装置が、浴内を上下できる浴内に配置されたピストンを有しているシステ ム。
  12. 12.請求項11記載の立体造形システムであって、槽内の重合性液体の水準を 検出するための装置および、検出された水準に応答して浴内でピストンの垂直位 置を調整するための装置を含むシステム。
  13. 13.請求項12記載の立体造形システムであって、検出された浴水準を表す信 号を生成するための装置と、その水準信号を希望の浴水準を表す基準信号と比較 するための装置と、さらに、検出信号と基準信号の差に応答してピストンの垂直 位置を調整するための装置とを含むシステム。
  14. 14.請求項1記載の立体造形システムであって、重合性液体を硬化させるため に紫外線を発生するためのレーザを含むシステム。
  15. 15.請求項14記載の立体造形システムであって、レーザがHe−Cdレーザ であるシステム。
  16. 16.請求項14記載の立体造形システムであって、レーザの移動および出力を 制御するためのコンピュータ制御システムを含むシステム。
  17. 17.請求項16記載の立体造形システムであって、物体支持装置の移動を制御 するためのコンピュータ制御システムを含むシステム。
  18. 18.立体造形により三次元物体を形成するための方法であって、 (a)物体支持装置に備わった表面に重合性液体の薄層を付与することと、 (b)付与された層から余分な重合性液体を撞き取ることにより表面の重合性液 体の層を希望の厚さに平滑にすることと、 (c)重合性液体の平滑な層に既定のパターンで硬化媒質を当て、その層を十分 に硬化させ、その結果、その層が以降の1以上の重合性液体の層を支えられるよ うにすることを含む方法。
  19. 19.請求項18記載の方法であって、硬化媒質が、紫外線、赤外線、可視光、 電子線、X線およびガンマ線から成る一群から選択された放射線である方法。
  20. 20.請求項19記載の方法であって、重合性液体が紫外線によって硬化可能で あり、硬化媒質が紫外線である方法。
  21. 21.請求項18記載の方法であって、重合性液体の層が、物体支持装置の表面 を重合性液体の浴中に浸漬することによってその表面に付与されることを含む方 法。
  22. 22.請求項18記載の方法であって、重合性液体の付与された層が浴から引き 上げられ、余分な重合性液体が水平移動するドクターブレードによって掻き取ら れ、物体支持装置の表面に希望の厚さの重合性液体の平滑な層を形成させること を含む方法。
  23. 23.請求項18記載の方法であって、重合性液体の層が平滑にされた後、物体 支持装置が、重合性液体の平滑な層の上面が浴の上面と同じ高さになるように浴 中に下降されることを含む方法。
  24. 24.請求項23記載の方法であって、重合性液体の平滑な層の上面が浴と同じ 高さに配置された後、層が硬化媒質に暴露されることを含む方法。
  25. 25.請求項24記載の方法であって、平滑な層が硬化媒質に暴露された後、物 体支持装置がさらに重合性液体の浴内に下ろされ、重合性液体の次の層が先行し て硬化した層の上に流入できるようになることを含む方法。
  26. 26.請求項18記載の方法であって、重合性液体の多数の薄層が付与され、平 滑にされ、硬化されることにより三次元物体を形成することを含む方法。
  27. 27.請求項18記載の方法であって、硬化媒質が、波長約300〜350ナノ メートル、出力約10〜30ミリワットでHe−Cdレーザから放出される紫外 線であることを含む方法。
  28. 28.請求項19記載の方法であって、ドクターブレードの水平移動速度が毎秒 約0.25〜10インチであることを含む方法。
  29. 29.請求項18記載の方法であって、硬化媒質の適用によって重合化される重 合性液体の層の厚さが約0.005〜0.04インチであることを含む方法。
  30. 30.液体の表面の水準を測定するための装置であって、 (a)電磁線のビームを発生させ第1の光路に方向づけ、ビームの検出可能な一 部が液体の表面から第2の光路で反射するように液体の表面に当てるための装置 と、(b)衝突してくる電磁線の移動に応答して電気信号を変化させる検出器と 、 (c)液体の表面の水準に垂直な一定距離で、かつ、反射されたビームが検出器 と交差するように第2の光路に沿って検出器を取り付けるための装置とを含む装 置。
  31. 31.請求項30記載の装置であって、検出器からの電気信号に応答して液体の 水準を変更するための装置を含む装置。
  32. 32.請求項30記載の装置であって、検出器からの電気信号に応答して液体の 水準を表示するための装置を含む装置。
  33. 33.液体の表面の水準を測定するための装置であって、 (a)出力が液体の表面の上方から液体の表面へ第1の光路に沿って方向づけら れ、液体の表面から第2の光路で反射するように方向づけられているレーザと、 (b)それぞれが出力を有しており、衝突してくる光度によって変化する電気信 号をその出力に生じる、連結された多数の光電池と、 (c)レーザ出力が連結された光電池の1以上に衝突するように液体の表面の水 準に対して垂直方向にそれぞれ一つずつ上方に光電池が心合せされており、連結 された多数の光電池を第2の光路に沿った液体の表面の上方に取り付けるための 装置とを含む装置。
  34. 34.請求項33記載の装置であって、多数の入力および1出力を有する比較回 路で、各入力は連結された多数の光電池の1つの異なる出力と接続されており、 連結された光電池のそれぞれによって生じた電気信号の相対振幅を比較し、この 比較回路の出力に応答して信号を生成するための比較回路を含む装置。
  35. 35.請求項34記載の装置であって、液体の水準を比較回路の出力に応答させ るための、比較回路に接続された装置を含む装置。
  36. 36.請求項35記載の装置であって、水準変更装置が液体の水準を既定の水準 に戻すために比較回路からの信号の変化に応答するものである装置。
  37. 37.立体造形装置であって、 (a)相乗的エネルギに応答してその物理状態を変化させる液体媒質本体と、 (b)電磁線のビームを発生するための装置と、(c)電磁線ビーム発生装置か らの電磁線のビームを第1の光路に方向づけ、ビームの検出可能な一部が液体の 表面から第2の光路に沿って反射するように液体の表面に当てるための装置と、 (d)衝突してくる電磁線の位置の変化に応答して電気信号を変化させる検出器 と、 (e)液体の表面の水準に垂直な一定距離で、かつ、反射されたビームが検出器 と交差するように第2の光路に沿って検出器を取り付けるための装置とを含む装 置。
  38. 38.液体の表面の水準を測定するための方法であって、 (a)電磁線のビームを発生する段階と、(b)電磁線のビームを第1の光路に 沿って方向づけ、ビームの検出可能な一部が液体の表面から第2の光路に沿って 反射するように液体の表面に当てる段階と、(c)液体の水準の変化によって液 体の水準に垂直な一定距離で第2の光路の変位を検出する段階とを含む方法。
  39. 39.立体造形システムにおいて部品層の上に既定の厚さの重合性液体のほぼ平 滑な層を付与するための方法であって、 既定の厚さよりも大きい厚さだけ重合性液体本体の中に部品層を浸漬した後、部 品層を引き上げ、部品層の上に重合性液体の層を付与する段階と、 ドクターブレードを、ブレードと部品層との間に一定の隙間をもって、重合性液 体の層の上を一度以上移動させ、各移動時に余分な重合性液体を掻き取り、最後 の移動において、ブレードと部品層との間の隙間がほぼ既定の厚さに等しく、結 果的にほぼ平滑な層を形成する段階とを含む方法。
  40. 40.請求項39記載の方法であって、ドクターブレードと部品層との間の隙間 が掻取りごとに漸次小さくなる方法。
  41. 41.請求項40記載の方法であって、ドクターブレードの移動速度が掻取りご とに変更できる方法。
  42. 42.第1の部品層の上に既定の厚さを有する第2の部品層を形成するための立 体造形装置であって、第1の層を既定の厚さよりも大きい厚さだけほぼ一定の体 積の重合性液体中に浸漬するための装置と、重合性液体の層が第1の層の上にで きるように第1の層を引き上げるための装置と、  重合性液体の層が既定の厚さになるまで余分な液体を掻き取ることによって重合 性液体の層を平滑にするためのドクターブレードと、 平滑にされた重合性液体の層に相乗的エネルギを付与することによって第2の層 を形成するための装置とを含む装置。
  43. 43.請求項42記載の装置であって、水準を有する、ほぼ一定の体積の重合性 液体を入れるための槽と、 槽内の重合性液体の水準を検出し、検出された水準を既定の水準と比較するため の装置と、 水準検出装置に応答して、液体の水準がほぼ既定の水準になるまで槽の液体中を 上下するためのプランジャとを含む装置。
  44. 44.請求項43記載の装置であって、槽に連結された副槽であり、重合性液体 が槽と副槽間を流出入できるようになっており、副槽の液体の水準が槽の水準を 表し、水準検出装置が副槽の液体の水準を検出する2セル型検出器である副槽を 含む装置。
  45. 45.請求項43記載の装置であって、水準検出装置が、 槽の重合性液体に浮いているフロートと、フロートに連結された第1の端および 第2の端を有する棹であり、フロートの垂直変位が棹の第2の端の拡大された垂 直変位を生じるように、両端間の固定点について回転できるように連結された棹 と、 液体の水準が事実上既定の水準にないことを指示する既定の変位範囲の外に第2 の端があるかどうかを検出するための装置とを含む装置。
  46. 46.請求項42記載の方法であって、ドクターブレードが断面を有しており、 水平線と角度を作るブレードの移動方向のブレードの底面に非水平な縁をその断 面が有している装置。
  47. 47.請求項46記載の方法であって、水平線との角度が約5〜8°の範囲内に ある装置。
  48. 48.2端および底面ならびに質量を有するドクターブレードと、立体造形シス テムにおける重合性液体の表面との間の隙間を既定の値に設定するための方法で あって、 各針が事実上既定の値だけ底面の上に出ているように各端にブレードの底面に2 の伸縮自在の針を着脱できるように付属する段階と、 その端の針が液体の表面に触れるまで第1の非トルク誘導ねじ装置を調整するこ とによってブレードの一端を下げる段階と、 その端の外が液体の表面に触れるまで第2の非トルク誘導ねじ装置を調整するこ とによってブレードの一端を下げる段階と、 ブレードを引き上げてから下げ、両針がほぼ同時に液体の表面に接触するように 非トルク誘導ねじ装置の再調整を可能にする段階と、 ブレードの質量を著しく変更することなく、針を伸縮する段階とを含む方法。
  49. 49.請求項48記載の方法であって、非トルク誘導ねじ装置がマイクロメータ ねじであることを含む方法。
JP1511123A 1988-09-26 1989-09-26 立体造形方法および装置 Expired - Fee Related JP3030855B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US24939988A 1988-09-26 1988-09-26
US249,399 1988-09-26
US26503988A 1988-10-31 1988-10-31
US265,039 1988-10-31

Related Child Applications (3)

Application Number Title Priority Date Filing Date
JP37376999A Division JP3294833B2 (ja) 1989-09-26 1999-12-28 立体造形方法及び装置
JP37376899A Division JP3419724B2 (ja) 1988-10-31 1999-12-28 液面レベル測定装置および立体造形装置
JP2000000410A Division JP3373830B2 (ja) 1988-09-26 2000-01-05 立体造形方法及び装置

Publications (2)

Publication Number Publication Date
JPH04503634A true JPH04503634A (ja) 1992-07-02
JP3030855B2 JP3030855B2 (ja) 2000-04-10

Family

ID=26940037

Family Applications (3)

Application Number Title Priority Date Filing Date
JP1511123A Expired - Fee Related JP3030855B2 (ja) 1988-09-26 1989-09-26 立体造形方法および装置
JP2000000410A Expired - Lifetime JP3373830B2 (ja) 1988-09-26 2000-01-05 立体造形方法及び装置
JP2001069484A Expired - Lifetime JP3359026B2 (ja) 1988-09-26 2001-03-12 立体造形方法及び装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2000000410A Expired - Lifetime JP3373830B2 (ja) 1988-09-26 2000-01-05 立体造形方法及び装置
JP2001069484A Expired - Lifetime JP3359026B2 (ja) 1988-09-26 2001-03-12 立体造形方法及び装置

Country Status (11)

Country Link
EP (3) EP0681905B1 (ja)
JP (3) JP3030855B2 (ja)
KR (1) KR100189270B1 (ja)
AT (3) ATE130793T1 (ja)
CA (1) CA1337955C (ja)
DE (3) DE68929292T2 (ja)
ES (1) ES2082782T3 (ja)
HK (3) HK1002908A1 (ja)
IL (1) IL91784A (ja)
SG (1) SG49722A1 (ja)
WO (1) WO1990003255A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008110608A (ja) * 1997-05-13 2008-05-15 Three D Syst Inc 立体造形法により形成される三次元物体の選択された薄層に関する表面特徴を特定する方法および装置

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5094935A (en) * 1990-06-26 1992-03-10 E. I. Dupont De Nemours And Company Method and apparatus for fabricating three dimensional objects from photoformed precursor sheets
DE59101958D1 (de) * 1990-12-21 1994-07-21 Eos Electro Optical Syst Verfahren und vorrichtung zum herstellen eines dreidimensionalen objekts.
DE4112695C3 (de) * 1990-12-21 1998-07-23 Eos Electro Optical Syst Verfahren und Vorrichtung zum Herstellen eines dreidimensionalen Objekts
US5460758A (en) * 1990-12-21 1995-10-24 Eos Gmbh Electro Optical Systems Method and apparatus for production of a three-dimensional object
US5474719A (en) * 1991-02-14 1995-12-12 E. I. Du Pont De Nemours And Company Method for forming solid objects utilizing viscosity reducible compositions
DE4134265C2 (de) * 1991-10-16 1993-11-25 Eos Electro Optical Syst Vorrichtung und Verfahren zur Herstellung eines dreidimensionalen Objekts mittels Stereographie
JP2805674B2 (ja) * 1993-03-22 1998-09-30 ソニー株式会社 光学的造形方法および光学的造形装置
FR2713541B1 (fr) * 1993-12-09 1997-04-30 Laser Int Sa Procédé et installation pour la fabrication de pièces par phototransformation de matière.
DE19514740C1 (de) * 1995-04-21 1996-04-11 Eos Electro Optical Syst Vorrichtung und Verfahren zum Herstellen eines dreidimensionalen Objektes
DE19515165C2 (de) * 1995-04-25 1997-03-06 Eos Electro Optical Syst Vorrichtung zum Herstellen eines Objektes mittels Stereolithographie
US5910319A (en) * 1997-05-29 1999-06-08 Eli Lilly And Company Fluoxetine enteric pellets and methods for their preparation and use
FR2790418B1 (fr) 1999-03-01 2001-05-11 Optoform Sarl Procedes De Prot Procede de prototypage rapide permettant l'utilisation de materiaux pateux, et dispositif pour sa mise en oeuvre
WO2002026419A1 (de) 2000-09-25 2002-04-04 Generis Gmbh Verfahren zum herstellen eines bauteils in ablagerungstechnik
DE10047614C2 (de) 2000-09-26 2003-03-27 Generis Gmbh Vorrichtung zum schichtweisen Aufbau von Modellen
DE10047615A1 (de) 2000-09-26 2002-04-25 Generis Gmbh Wechselbehälter
DE10117875C1 (de) 2001-04-10 2003-01-30 Generis Gmbh Verfahren, Vorrichtung zum Auftragen von Fluiden sowie Verwendung einer solchen Vorrichtung
DE10227673B4 (de) * 2001-06-20 2007-04-05 Hamacher, Renate Füllstandsanzeige
WO2003089218A1 (en) * 2002-04-17 2003-10-30 Stratasys, Inc. Smoothing method for layered deposition modeling
DE10222167A1 (de) 2002-05-20 2003-12-04 Generis Gmbh Vorrichtung zum Zuführen von Fluiden
US7807077B2 (en) 2003-06-16 2010-10-05 Voxeljet Technology Gmbh Methods and systems for the manufacture of layered three-dimensional forms
DE10327272A1 (de) 2003-06-17 2005-03-03 Generis Gmbh Verfahren zum schichtweisen Aufbau von Modellen
DE102004008168B4 (de) 2004-02-19 2015-12-10 Voxeljet Ag Verfahren und Vorrichtung zum Auftragen von Fluiden und Verwendung der Vorrichtung
DE102004025374A1 (de) 2004-05-24 2006-02-09 Technische Universität Berlin Verfahren und Vorrichtung zum Herstellen eines dreidimensionalen Artikels
JP4034758B2 (ja) * 2004-06-04 2008-01-16 独立行政法人科学技術振興機構 光造形ファブリケーション法を利用した金属構造体の製造方法
US7690909B2 (en) * 2005-09-30 2010-04-06 3D Systems, Inc. Rapid prototyping and manufacturing system and method
US7585450B2 (en) * 2005-09-30 2009-09-08 3D Systems, Inc. Rapid prototyping and manufacturing system and method
DE102006030350A1 (de) 2006-06-30 2008-01-03 Voxeljet Technology Gmbh Verfahren zum Aufbauen eines Schichtenkörpers
DE102006038858A1 (de) 2006-08-20 2008-02-21 Voxeljet Technology Gmbh Selbstaushärtendes Material und Verfahren zum schichtweisen Aufbau von Modellen
DE102007033434A1 (de) 2007-07-18 2009-01-22 Voxeljet Technology Gmbh Verfahren zum Herstellen dreidimensionaler Bauteile
US10226919B2 (en) 2007-07-18 2019-03-12 Voxeljet Ag Articles and structures prepared by three-dimensional printing method
DE102007049058A1 (de) 2007-10-11 2009-04-16 Voxeljet Technology Gmbh Materialsystem und Verfahren zum Verändern von Eigenschaften eines Kunststoffbauteils
DE102007050679A1 (de) 2007-10-21 2009-04-23 Voxeljet Technology Gmbh Verfahren und Vorrichtung zum Fördern von Partikelmaterial beim schichtweisen Aufbau von Modellen
DE102007050953A1 (de) 2007-10-23 2009-04-30 Voxeljet Technology Gmbh Vorrichtung zum schichtweisen Aufbau von Modellen
DE102008058378A1 (de) 2008-11-20 2010-05-27 Voxeljet Technology Gmbh Verfahren zum schichtweisen Aufbau von Kunststoffmodellen
DE102010006939A1 (de) 2010-02-04 2011-08-04 Voxeljet Technology GmbH, 86167 Vorrichtung zum Herstellen dreidimensionaler Modelle
DE102010013733A1 (de) 2010-03-31 2011-10-06 Voxeljet Technology Gmbh Vorrichtung zum Herstellen dreidimensionaler Modelle
DE102010013732A1 (de) 2010-03-31 2011-10-06 Voxeljet Technology Gmbh Vorrichtung zum Herstellen dreidimensionaler Modelle
DE102010014969A1 (de) 2010-04-14 2011-10-20 Voxeljet Technology Gmbh Vorrichtung zum Herstellen dreidimensionaler Modelle
DE102010015451A1 (de) 2010-04-17 2011-10-20 Voxeljet Technology Gmbh Verfahren und Vorrichtung zum Herstellen dreidimensionaler Objekte
DE102010056346A1 (de) 2010-12-29 2012-07-05 Technische Universität München Verfahren zum schichtweisen Aufbau von Modellen
DE102011007957A1 (de) 2011-01-05 2012-07-05 Voxeljet Technology Gmbh Vorrichtung und Verfahren zum Aufbauen eines Schichtenkörpers mit wenigstens einem das Baufeld begrenzenden und hinsichtlich seiner Lage einstellbaren Körper
DE102011111498A1 (de) 2011-08-31 2013-02-28 Voxeljet Technology Gmbh Vorrichtung zum schichtweisen Aufbau von Modellen
DE102012004213A1 (de) 2012-03-06 2013-09-12 Voxeljet Technology Gmbh Verfahren und Vorrichtung zum Herstellen dreidimensionaler Modelle
DE102012010272A1 (de) 2012-05-25 2013-11-28 Voxeljet Technology Gmbh Verfahren zum Herstellen dreidimensionaler Modelle mit speziellen Bauplattformen und Antriebssystemen
DE102012012363A1 (de) 2012-06-22 2013-12-24 Voxeljet Technology Gmbh Vorrichtung zum Aufbauen eines Schichtenkörpers mit entlang des Austragbehälters bewegbarem Vorrats- oder Befüllbehälter
DE102012020000A1 (de) 2012-10-12 2014-04-17 Voxeljet Ag 3D-Mehrstufenverfahren
DE102013004940A1 (de) 2012-10-15 2014-04-17 Voxeljet Ag Verfahren und Vorrichtung zum Herstellen von dreidimensionalen Modellen mit temperiertem Druckkopf
DE102012022859A1 (de) 2012-11-25 2014-05-28 Voxeljet Ag Aufbau eines 3D-Druckgerätes zur Herstellung von Bauteilen
DE102013003303A1 (de) 2013-02-28 2014-08-28 FluidSolids AG Verfahren zum Herstellen eines Formteils mit einer wasserlöslichen Gussform sowie Materialsystem zu deren Herstellung
DE102013018182A1 (de) 2013-10-30 2015-04-30 Voxeljet Ag Verfahren und Vorrichtung zum Herstellen von dreidimensionalen Modellen mit Bindersystem
DE102013018031A1 (de) 2013-12-02 2015-06-03 Voxeljet Ag Wechselbehälter mit verfahrbarer Seitenwand
DE102013020491A1 (de) 2013-12-11 2015-06-11 Voxeljet Ag 3D-Infiltrationsverfahren
EP2886307A1 (de) 2013-12-20 2015-06-24 Voxeljet AG Vorrichtung, Spezialpapier und Verfahren zum Herstellen von Formteilen
DE102014004692A1 (de) 2014-03-31 2015-10-15 Voxeljet Ag Verfahren und Vorrichtung für den 3D-Druck mit klimatisierter Verfahrensführung
DE102014007584A1 (de) 2014-05-26 2015-11-26 Voxeljet Ag 3D-Umkehrdruckverfahren und Vorrichtung
KR102288589B1 (ko) 2014-08-02 2021-08-12 복셀젯 아게 특히 냉간 주조 방법에 사용되는 방법 및 주조 몰드
NL2013861B1 (en) * 2014-11-24 2016-10-11 Additive Ind Bv Apparatus for producing an object by means of additive manufacturing.
DE102015006533A1 (de) 2014-12-22 2016-06-23 Voxeljet Ag Verfahren und Vorrichtung zum Herstellen von 3D-Formteilen mit Schichtaufbautechnik
DE102015102221A1 (de) * 2015-02-17 2016-08-18 Krones Ag Verfahren zum Herstellen einer Vorrichtung zum Tragen von zu reinigenden Behältern, sowie Vorrichtung zum Tragen von zu reinigenden Behältern
DE102015003372A1 (de) 2015-03-17 2016-09-22 Voxeljet Ag Verfahren und Vorrichtung zum Herstellen von 3D-Formteilen mit Doppelrecoater
DE102015006363A1 (de) 2015-05-20 2016-12-15 Voxeljet Ag Phenolharzverfahren
DE102015011503A1 (de) 2015-09-09 2017-03-09 Voxeljet Ag Verfahren zum Auftragen von Fluiden
DE102015011790A1 (de) 2015-09-16 2017-03-16 Voxeljet Ag Vorrichtung und Verfahren zum Herstellen dreidimensionaler Formteile
DE102015015353A1 (de) 2015-12-01 2017-06-01 Voxeljet Ag Verfahren und Vorrichtung zur Herstellung von dreidimensionalen Bauteilen mittels Überschussmengensensor
DE102016013610A1 (de) 2016-11-15 2018-05-17 Voxeljet Ag Intregierte Druckkopfwartungsstation für das pulverbettbasierte 3D-Drucken
WO2018140028A1 (en) * 2017-01-27 2018-08-02 Hewlett Packard Development Company, L.P. Automatic spreader bar blade material positioning for additive manufacturing
GB201704676D0 (en) 2017-03-24 2017-05-10 Rolls Royce Plc Recoater for additive layer manufature
DE102017006860A1 (de) 2017-07-21 2019-01-24 Voxeljet Ag Verfahren und Vorrichtung zum Herstellen von 3D-Formteilen mit Spektrumswandler
EP3683040A1 (en) * 2017-07-21 2020-07-22 CL Schutzrechtsverwaltungs GmbH Optical determining device for an apparatus for additively manufacturing three-dimensional objects
DE102018006473A1 (de) 2018-08-16 2020-02-20 Voxeljet Ag Verfahren und Vorrichtung zum Herstellen von 3D-Formteilen durch Schichtaufbautechnik mittels Verschlussvorrichtung
US11104075B2 (en) 2018-11-01 2021-08-31 Stratasys, Inc. System for window separation in an additive manufacturing process
EP3873722A4 (en) 2018-11-01 2022-08-17 Stratasys, Inc. METHOD OF STRUCTURAL SEPARATION FROM A HARDENING INTERFACE IN AN ADDITIONAL MANUFACTURING PROCESS
DE102019000796A1 (de) 2019-02-05 2020-08-06 Voxeljet Ag Wechselbare Prozesseinheit
DE102019007595A1 (de) 2019-11-01 2021-05-06 Voxeljet Ag 3d-druckverfahren und damit hergestelltes formteil unter verwendung von ligninsulfat
CN116499958B (zh) * 2023-06-29 2023-09-01 德阳市产品质量监督检验所 一种材料腐蚀程度实时监测装置及监测方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2621808A (en) * 1945-08-24 1952-12-16 Frazier Simplex Apparatus responsive to variations in liquid level
US3272174A (en) * 1965-09-07 1966-09-13 Gen Motors Corp Remote level indication
US3953845A (en) * 1975-02-04 1976-04-27 Lawrence Peska Associates, Inc. Oil level indicator
US4247784A (en) * 1978-12-18 1981-01-27 Eastman Kodak Company Measurement of material level in vessels
IT1192344B (it) * 1978-12-20 1988-03-31 Ceda Spa Misuratore di livello
US4247508B1 (en) * 1979-12-03 1996-10-01 Dtm Corp Molding process
JPS56100316A (en) * 1980-01-16 1981-08-12 Hirakawa Denki Kk Liquid level indicator for molten glass
FR2482290A1 (fr) * 1980-05-09 1981-11-13 Poncet Pierre Perfectionnements a la detection photoelectrique du niveau du bain dans les lingotieres de coulee continue
US4508970A (en) * 1982-07-15 1985-04-02 Motorola, Inc. Melt level sensing system and method
JPS60147615A (ja) * 1984-01-13 1985-08-03 Hitachi Ltd 液面測定方法
US4575330A (en) * 1984-08-08 1986-03-11 Uvp, Inc. Apparatus for production of three-dimensional objects by stereolithography
JPS61114818A (ja) * 1984-11-09 1986-06-02 Fujitsu Ltd 立体形状形成装置
JPS6237109A (ja) * 1985-08-10 1987-02-18 Fujitsu Ltd 立体形状形成装置
ES2063737T3 (es) * 1986-06-03 1995-01-16 Cubital Ltd Aparato y metodo para modelizacion tridimensional.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008110608A (ja) * 1997-05-13 2008-05-15 Three D Syst Inc 立体造形法により形成される三次元物体の選択された薄層に関する表面特徴を特定する方法および装置

Also Published As

Publication number Publication date
EP0361847A3 (en) 1991-10-09
DE68929292T2 (de) 2001-08-23
SG49722A1 (en) 1998-06-15
JP2001287272A (ja) 2001-10-16
KR100189270B1 (ko) 1999-06-01
EP0361847B1 (en) 1995-11-29
HK1004477A1 (en) 1998-11-27
DE68929292D1 (de) 2001-05-23
EP0681904B1 (en) 2002-01-09
ATE200644T1 (de) 2001-05-15
JP3359026B2 (ja) 2002-12-24
DE68929366T2 (de) 2002-09-26
EP0681904A2 (en) 1995-11-15
EP0681905A1 (en) 1995-11-15
JP3373830B2 (ja) 2003-02-04
CA1337955C (en) 1996-01-23
WO1990003255A1 (en) 1990-04-05
ATE130793T1 (de) 1995-12-15
JP2000141496A (ja) 2000-05-23
ES2082782T3 (es) 1996-04-01
EP0681904A3 (en) 1996-02-07
IL91784A0 (en) 1990-06-10
DE68924952D1 (de) 1996-01-11
DE68924952T2 (de) 1996-06-13
EP0361847A2 (en) 1990-04-04
JP3030855B2 (ja) 2000-04-10
IL91784A (en) 1993-07-08
ATE211679T1 (de) 2002-01-15
KR900701494A (ko) 1990-12-03
DE68929366D1 (de) 2002-02-14
HK1002908A1 (en) 1998-09-25
EP0681905B1 (en) 2001-04-18
HK1009595A1 (en) 1999-06-04

Similar Documents

Publication Publication Date Title
JPH04503634A (ja) 立体造形方法および装置
US5258146A (en) Method of and apparatus for measuring and controlling fluid level in stereolithography
US5174931A (en) Method of and apparatus for making a three-dimensional product by stereolithography
EP1025982B1 (en) Method and apparatus for stereolithographically forming three dimensional objects with reduced distortion
KR100257135B1 (ko) 서포트를 포함하는 스테레오리스그래피를 이용한 3차원 물체 형성방법 및 장치
CN109689342B (zh) 固化可光聚合的扩散反射性材料的方法
JP2008302607A (ja) 三次元造形装置、および三次元造形方法
US5496683A (en) Method of and apparatus for optically shaping photo-setting resin
CN114072274A (zh) 通过增材制造生产光学元件的方法和机器
CN108437452A (zh) 一种移动拼接式的上投影方式的3d成型系统
JPH08338753A (ja) 光硬化性液の液面高さ測定装置
Wang et al. Manufacture of 3-dimensional objects by reactive inkjet printing
JP2001287273A (ja) 立体造形方法及び装置
JP3392177B2 (ja) 光硬化性樹脂の供給装置
JP3641276B2 (ja) 立体像形成方法
CN206011731U (zh) 一种高精度高速度连续3d打印机
JP2023531229A (ja) 光硬化型3dプリンタ及びプリンティング方法
JP3419724B2 (ja) 液面レベル測定装置および立体造形装置
KR20190023014A (ko) 광경화성 3d 프린터 및 제품 성형방법
CN208035374U (zh) 基于全反射原理提高成型效果的光固化成型设备
KR102264538B1 (ko) 3d 프린터의 출력물 정밀도 향상을 위한 출력 방법
KR0178874B1 (ko) 평탄화 기구를 사용하여 매질의 층을 형성하는 스테레오리토그라피에 의하여 3차원 물체를 형성하는 방법 및 장치
CN114008619A (zh) 用于输出用于生产光学元件的制造文件的方法和系统
CN108454100B (zh) 基于全反射原理提高成型效果的光固化成型设备
JPH0224124A (ja) 光学的造形法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090210

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees