146
MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION DEPOSITION MODELING by Andrew Mason Bachelor of Engineering, Ryerson 2004 A thesis presented to Ryerson University in partial fulfillment of the requirements for the degree of Master of Applied Science in the Program of Mechanical Engineering Toronto, Ontario, Canada, 2006 © Andrew Mason, 2006

MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION DEPOSITION MODELING

by

Andrew Mason

Bachelor of Engineering, Ryerson 2004

A thesis

presented to Ryerson University

in partial fulfillment of the

requirements for the degree of

Master of Applied Science

in the Program of

Mechanical Engineering

Toronto, Ontario, Canada, 2006

© Andrew Mason, 2006

Page 2: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Library and Archives Canada

Bibliothèque et Archives Canada

Published Heritage Branch

Direction du Patrimoine de l’édition

395 Wellington Street Ottawa ON K1A 0N4 Canada

395, rue Wellington Ottawa ON K1A 0N4 Canada

Your file Votre référence ISBN: 978-0-494-18120-1 Our file Notre référence ISBN: 978-0-494-18120-1

NOTICE: The author has granted a non-exclusive license allowing Library and Archives Canada to reproduce, publish, archive, preserve, conserve, communicate to the public by telecommunication or on the Internet, loan, distribute and sell theses worldwide, for commercial or non-commercial purposes, in microform, paper, electronic and/or any other formats. .

AVIS: L’auteur a accordé une licence non exclusive permettant à la Bibliothèque et Archives Canada de reproduire, publier, archiver, sauvegarder, conserver, transmettre au public par télécommunication ou par l’Internet, prêter, distribuer et vendre des thèses partout dans le monde, à des fins commerciales ou autres, sur support microforme, papier, électronique et/ou autres formats.

The author retains copyright ownership and moral rights in this thesis. Neither the thesis nor substantial extracts from it may be printed or otherwise reproduced without the author’s permission.

L’auteur conserve la propriété du droit d’auteur et des droits moraux qui protège cette thèse. Ni la thèse ni des extraits substantiels de celle-ci ne doivent être imprimés ou autrement reproduits sans son autorisation.

In compliance with the Canadian Privacy Act some supporting forms may have been removed from this thesis. While these forms may be included in the document page count, their removal does not represent any loss of content from the thesis.

Conformément à la loi canadienne sur la protection de la vie privée, quelques formulaires secondaires ont été enlevés de cette thèse. Bien que ces formulaires aient inclus dans la pagination, il n’y aura aucun contenu manquant.

Page 3: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Author’s Declaration I hereby declare that I am the sole author of this thesis. I authorize Ryerson University to lend this thesis to other institutions or individuals for the purpose of scholarly research. ________________________ I further authorize Ryerson University to reproduce this thesis by photocopying or by other means, in total or in part, at the request of other institutions or individuals for the purpose of scholarly research. ________________________

ii

Page 4: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Abstract

Multi-Axis Hybrid Rapid Prototyping using Fusion Deposition Modeling

Masters of Applied Science of Mechanical Engineering Ryerson University, Toronto, 2006

Andrew Mason

The objective of this study is to improve prototypes produced by fusion deposition

modeling (FDM). FDM, a method of rapid prototyping, produces parts with desirable

engineering properties. A new drive and extrusion method for continuous and indefinite

deposition of ABS is developed. Process improvements include adding a machining station to

tighten tolerances. Research is initiated into 5-axis deposition, which aims to reduce stair-

stepping errors associated with standard 3-axis deposition. Metrology comparisons to current

industry FDM machines are made showing the improvements implemented tighten tolerance

ranges, while using a larger nozzle orifice diameter to reduce build times.

iii

Page 5: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Acknowledgements

I would like to thank Dr. Vincent Chan for his guidance, encouragement and support

throughout the duration of this project. Special thanks also go out to Joseph Amankrah for his

supervision and machining advice, and to Devin Ostrom for his electrical and related CNC

support. The Mechanical Engineering Department and the Office of Graduate Studies have also

been supportive throughout my time at Ryerson. I would also like to thank NSERC for funding

this research.

iv

Page 6: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table of Contents Author’s Declaration .....................................................................................................................ii

Abstract ....................................................................................................................................... iii

Acknowledgements ......................................................................................................................iv

Table of Contents ..........................................................................................................................v

List of Figures .............................................................................................................................vii

List of Tables................................................................................................................................ix

Nomenclature ................................................................................................................................x

Chapter 1 .......................................................................................................................................1

1.1 Introduction and Industry Needs ...................................................................................1 1.2 Literature Review..........................................................................................................2

1.2.1 Solidifying a Liquid Polymer ................................................................................2 1.2.2 Solidifying a Molten Material ...............................................................................4 1.2.3 Fusing Particles by Laser ......................................................................................6 1.2.4 Joining Particles or Layers with a Binder .............................................................7

1.3 Stair Stepping Error.......................................................................................................8 1.4 Current State of the FDM Industry and Past Research Work .....................................10 1.5 Proposed Research Goals ............................................................................................12

Chapter 2 .....................................................................................................................................14

2.1 Drive System Design...................................................................................................14 2.2 Tangential Drive System.............................................................................................15 2.3 Internally Threaded Pulley and Belt Drive System.....................................................16 2.4 Extrusion Diameter Reduction and Modular Nozzle ..................................................18 2.5 Temperature Control and Insulation............................................................................20 2.6 Drive Notches..............................................................................................................23

Chapter 3 .....................................................................................................................................25

3.1 Geared Drive System...................................................................................................25 3.2 Thread Forces and Stresses .........................................................................................28

Chapter 4 .....................................................................................................................................33

4.1 Extrusion Parameter Calibration .................................................................................33 4.2 3-axis Machine Calibration .........................................................................................34 4.3 Feed Rate Calculations................................................................................................36

Chapter 5 .....................................................................................................................................38

5.1 Prototype part G-code Generation...............................................................................38 5.2 Machining, G-code, and Router Tool Offset Calibration............................................41 5.3 Prototype Parts Produced ............................................................................................44

Chapter 6 .....................................................................................................................................53

6.1 Prototype Metrology ...................................................................................................53 6.2 Topless Pyramid Results with Machining...................................................................55 6.3 Topless Pyramid Results without Machining..............................................................60

v

Page 7: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 7 .....................................................................................................................................64

7.1 Hexapod Introduction..................................................................................................64 7.2 Electrical Work Done..................................................................................................67 7.3 Mechanical Work Done...............................................................................................75 7.4 5-axis G-Code and MasterCAM Post Processor Modifications..................................77

Chapter 8 .....................................................................................................................................81

8.1 Discussion ...................................................................................................................81 8.2 Results and Conclusions..............................................................................................82 8.3 Future Recommendations............................................................................................84

Appendix A – Technical Drawings .............................................................................................86

Appendix B – Source Code .......................................................................................................104

References .................................................................................................................................133

vi

Page 8: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

List of Figures

Figure 1 Stair Stepping Geometry................................................................................................9

Figure 2 Surface Roughness Geometry........................................................................................9

Figure 3 Custom Hexapod..........................................................................................................13

Figure 4 Tangential Drive System..............................................................................................15

Figure 5 Belt Drive.....................................................................................................................17

Figure 6 Modular Nozzle, and Reduction ..................................................................................19

Figure 7 Die Extrusion [13]........................................................................................................20

Figure 8 Heating bands...............................................................................................................21

Figure 9 Ventilation Fume Extractor..........................................................................................22

Figure 10 Cutting Rack Jig.........................................................................................................23

Figure 11 Threaded ABS Geared Drive System ........................................................................26

Figure 12 FDM Extrusion Module..............................................................................................27

Figure 13 FDM Extrusion Module PAS......................................................................................28

Figure 14 Thread Forces [15]......................................................................................................29

Figure 15 Topless Pyramid (15º, 30º, 45º, 60º)...........................................................................38

Figure 16 Pyramid Cross Section Path Deposition Methods .....................................................40

Figure 17 Pyramid Cross Section Path.......................................................................................41

Figure 18 Machining Path ...........................................................................................................44

Figure 19 ABS Burning...............................................................................................................45

Figure 20 3-axis Machine and Computer Setup..........................................................................47

Figure 21 DeskNC Screen Layout...............................................................................................47

Figure 22 Multimeter Temperature Monitoring..........................................................................48

Figure 23 Early Prototype Sample ..............................................................................................49

Figure 24 Deposition ...................................................................................................................50

vii

Page 9: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 25 Multi-layer Deposition................................................................................................50

Figure 26 Underside of Topless Pyramid....................................................................................51

Figure 27 Router Bit Machining .................................................................................................51

Figure 28 Router Bit Machining and Liquefier...........................................................................52

Figure 29 Machined Topless Pyramid Prototype ........................................................................52

Figure 30 Topless Pyramid Touch data.......................................................................................54

Figure 31 45º Error Distances .....................................................................................................55

Figure 32 Initial Hexapod Condition...........................................................................................65

Figure 33 Hexapod Base .............................................................................................................65

Figure 34 Extruder Mounted on Hexapod...................................................................................66

Figure 35 Mounted Extruder Nozzle from Underneath ..............................................................67

Figure 36 Fused Power Supply ...................................................................................................68

Figure 37 Motor Wiring ..............................................................................................................69

Figure 38 Gecko Servo Drive Controller ....................................................................................70

Figure 39 PIC Chip Board...........................................................................................................72

Figure 40 Master PIC Chip Board...............................................................................................73

Figure 41 Communication Board................................................................................................74

Figure 42 Wiring Routed Neatly .................................................................................................75

Figure 43 Motor Clearance Modification....................................................................................76

Figure 44 Replacement Universal Joint ......................................................................................77

Figure 45 MasterCAM 5-axis Tool Path.....................................................................................79

viii

Page 10: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

List of Tables Table 1 Commercial FDM Machine Experimental Accuracies ..................................................11

Table 2 3-axis Machine Motion Range .......................................................................................34

Table 3 3-axis Machine DeskNC Settings ..................................................................................35

Table 4 Gear Drive Stepping Motor Controller Settings ............................................................37

Table 5 MATLAB Code Input Parameters .................................................................................41

Table 6 Machining Offset Calibration Trials ..............................................................................43

Table 7 Linear Dimensional Results with Machining.................................................................56

Table 8 Linear Dimensional Results with Machining Summary ................................................56

Table 9 Angular Dimensional Results with Machining ..............................................................57

Table 10 Angular Dimensional Results with Machining Summary............................................58

Table 11 Average Surface Roughness Results with Machining .................................................59

Table 12 Average Surface Roughness Results with Machining Summary.................................59

Table 13 Linear Dimensional Results without Machining..........................................................61

Table 14 Linear Dimensional Results without Machining Summary .........................................61

Table 15 Angular Dimensional Results without Machining .......................................................62

Table 16 Angular Dimensional Results without Machining Summary ......................................62

Table 17 Average Surface Roughness Results without Machining ............................................63

Table 18 Average Surface Roughness Results without Machining Summary............................63

Table 19 Gecko Wiring Inputs and Outputs................................................................................71

Table 20 FDM Machine Experimental Linear Accuracies .........................................................84

ix

Page 11: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Nomenclature 2D Two Dimensional 3D Three Dimensional 3DP Three Dimensional Printing 3DW Three Dimension Welding ABS Acrylonitrile Butadiene Styrene BIS Beam Interference Solidification BMP Ballistic Particle Manufacturing c Circumference CAD Computer Aided Design CAM Computer Aided Manufacturing CNC Computer Numerical Control dm Pitch Diameter dmin Thread Root Diameter dpitch Gear Pitch Diameter EDM Electron Discharge Machining EMF Electro Magnetic Force f Dynamic Coefficient of Friction

Fa Axial Force FDM Fusion Deposition Modeling Ft Tangential Force GPD Gas Phase Deposition hp Horse Power HRP Hybrid Rapid Prototyping I Current LOM Laminated Object Manufacturing LM Layered Manufacturing n Thread Normal Reaction Force N Number of Population Data Points p Thread Pitch P Power PAS Product Architecture Schematic PIC Peripheral Interface Controller Pshaft Power per Shaft q Thread Twisting Force R Liquefier Head Main Internal Diameter r Pitch Radius rs Die Swell Ratio Rq Actual RMS Surface Roughness Ra,t Theoretical Average Surface Roughness RMS Root Mean Square rnozzle Nozzle Orifice Internal Diameter RP Rapid Prototyping RPM Revolutions per Minute SDM Shape Deposition Manufacturing

x

Page 12: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

SI Statistically Independent SL Stereolithography SLS Selective Laser Sintering t Layer Thickness T Torque Tshaft Torque per Shaft UNC United National Coarse UNF United National Fine UV Ultra Violet v Threaded Rod Velocity V Voltage VAC Volts Alternating Current VDC Volts Direct Current Ve Extrudate Velocity Vr Liquefier Head Velocity w Vertical Thread Force _

x Population Mean xi Data Point Value Greek Letters αdie Die Half-Angle αn Angle of the Thread Normal Reaction Force λ Thread Lead Angle ƞ Efficiency Ø Diameter π Pie σ Standard Deviation ∑ Sum τ Shear Stress θN Normal Build Angle θT Tangential Build Angle

xi

Page 13: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 1

1.1 Introduction and Industry Needs The increasing need to accelerate the design process in industry has led to faster

prototypes at less cost. Depending on the complexity of the prototype, weeks or even months are

required to produce each design iteration by conventional manufacturing methods. There are

many conventional methods of material removal such as: milling, lathe work, drilling, grinding,

electron discharge machining (EDM), and sawing. Each conventional manufacturing process has

inherent restrictions on the geometry of the removal due to the tool geometry. This makes some

part features difficult or impossible to produce.

Processes such as injection molding and casting are also widespread in industry. These

create parts by material addition techniques. Although injection molding is a material addition

process at the final stage, the creation of the mold is typically accomplished by material removal

at high costs. The injection molding process is capable of creating complex and intricate parts.

However, high volume production is often necessary to justify the cost of the mold and tooling,

which makes prototype production very costly. The faster production of prototypes permits an

increase in the number of iterations, allowing for fine tuning of the design. This has potential to

save costly changes needed later in the manufacturing process. Out of these needs, rapid

prototyping (RP) was developed. RP is still in its early stages of development, but is growing

rapidly.

RP is classified as a material addition technique, as opposed to the more common

material removal processes. The part(s), or even assembly/assemblies, are produced in one stage,

in one point, line, or layer at a time. This also classifies RP as a layered manufacturing (LM)

technique. The part(s) are produced directly from the computer aided design (CAD) model after

1

Page 14: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

being optimally oriented and sliced by RP software either in the CAD package, or internally in

the RP machine. This saves the designer from producing technical drawings to communicate

with a toolmaker or machinist. The elimination of skilled workers at this stage of the

manufacturing process also reduces costs. Once the RP machine begins creating the part, little to

no human interaction is required until the part(s) is (are) complete. This can save up to 30%-50%

of the entire manufacturing process time, plus substantial cost savings [1]. RP machines also

give the designer the option of creating complex shapes, even internal geometries, that may not

have been possible with conventional manufacturing processes [2][3].

1.2 Literature Review

The main RP methods can be divided into four major categories. These categories

include: solidifying a liquid polymer, solidifying a molten material, fusing particles by laser, and

joining particles or layers with a binder. Each of these techniques has its own advantages and

disadvantages. Hybrid rapid prototyping, HRP, is a new technology where machining is

performed after deposition. A search of literature did not yield any systems that perform both

deposition and machining in one station, or use more than 3-axis for deposition.

1.2.1 Solidifying a Liquid Polymer

Stereolithography (SL) was the first commercially available RP technology. SL has been

the widest area of research and development in RP. SL is a technique of prototype production

that utilizes an ultra violet (UV) laser to photo-cure a thermoset acrylate polymer resin. The

polymer resin sits in a vat and is maintained at a temperature just below the polymerization

2

Page 15: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

temperature. A movable platform sits within the resin initially just below the surface. The

platform is controllably moved in the vertical direction. This incremental motion controls the

thickness of the layers of the prototype. As the platform is lowered to the depth required, a blade

passes over it, depositing a precision layer of the resin [4].

The laser in SL is used to slightly increase the temperature of the resin at the localized

point where the laser beam contacts the resin surface. The increase in temperature at that

location elevates it above the polymerization temperature of the resin and initiates curing. The

depth into the resin at which the laser penetrates is dictated by the light absorption limit [4].

Typically, the supports are added by the RP software. This allows the laser to create the

custom supports required as it builds the part. Once the prototype is complete, the resin is

approximately 95% cured. The prototype, however, is still very fragile. For this reason, it must

be handled very delicately and placed in a fluorescent oven where it is saturated with UV light

until it is fully cured [2].

After the prototype has completed the curing process, the support material must be

removed manually. Once the supports are removed, there are typically markings left in that

location which may negatively impact the appearance or functionality of the surface. Acceptable

surface finish is attainable in SL by reducing the layer thickness. On each layer, it can take over

a minute to cure a 1.969 in by 1.969 in [50 mm by 50 mm] area with the laser. The resins used in

SL are expensive and are not reusable since they are thermoset polymers. The resins are also

toxic before they are fully cured, which makes handling the fragile prototype more difficult and

dangerous [3].

Beam interference solidification (BIS), which is also still under development, is also

similar to SL, but two interfering lasers are used to cure the resin. There is no elevator platform

required in BIS. The part is created in a vat, below the resin surface. Each laser beam, which

3

Page 16: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

operates at different frequencies, passes through the entire vat, and slightly elevates the

temperature of the resin in contact. A single laser beam does not increase the temperature

significantly enough to reach the polymerization temperature. Only when both lasers intersect,

polymerization occurs. The difficulties are that the laser intensity decreases with depth into the

resin, diffraction occurs because of temperature gradients in the resin, and the previously cured

regions cast shadows that affect the laser [3].

1.2.2 Solidifying a Molten Material

The following RP technologies can all be classified as solidifying a molten material. One

of the emerging methods of RP is Fusion Deposition Modeling (FDM). The material used in

FDM is typically a thermoplastic polymer. The material commercially used for FDM is typically

Acrylonitrile Butadiene Styrene (ABS). The ABS polymer is initially in a solid state, such as a

filament wrapped around a large spool, or in the form of a rod. The material is fed into a

liquefier head that is heated by resistance heaters. These heaters are controlled to elevate the

material above its melting temperature. The solid portion of the material is used as a ram to force

the molten material through a fine nozzle at the end of the liquefier head. The head uses

Computer Numerical Control (CNC) in the X and Y directions. The build table is CNC

controlled in the Z direction. From the cross section data from the RP software, the head is

controlled to deposit the first cross section of the prototype on the build table. The head is then

moved away from the table by one layer thickness, and deposits the next layer. The reason that

FDM technology has so much potential is because an FDM machine can be placed in an office

space with the designers that need it. This allows the designers to produce prototypes whenever

4

Page 17: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

they need to verify part of a design, or communicate and idea to another designer, management,

or a client.

There are several other methods available to form a prototype from a molten material.

Ballistic particle manufacturing (BMP) is another nozzle based system, where tiny molten

droplets 2-3 µin [50-100 µm] are ejected in either a continuous stream or one droplet at a time.

BMP prototypes can be created from several types of materials such as: aluminium, copper, zinc,

lead, tin, and even thermoplastics. As the particles are very small, densities similar to casting are

possible. BMP has three sub-technologies. The first is called BMP1 where which uses “drop on

demand” to deposit spheres of molten material [2]. After each layer is deposited, a milling head

cuts the layer to the required thickness to maintain accuracy in the Z direction. BMP2 is a

similar technology, but the nozzle is controlled by a 5-axis CNC head, so the droplets are always

deposited perpendicular to the tangent of the surfaces to eliminate stair-stepping. A third BMP

technology is called multi jet modeling (MJM), which uses inkjet technology to deposit the

droplets [3].

Three dimension welding (3DW) is a new technology under development that uses arc

welding to build up prototypes. Issues with excessive heat build-up limit the accuracy of this

technology, but thermocouple and water jet cooling implementation helps control heat build-up.

Work is being done to control the size of the weld pool [5]. Shape deposition manufacturing

(SDM) is another layer based method that uses both material addition, and removal. Initially a

molten material is sprayed to produce the rough cross sections of the prototype. Then, a CNC

milling centre is used to remove unwanted material, and each layer is shot-peened to remove

residual stresses. With this technology, it is possible to create prototypes out of stainless steel

with similar to cast material properties.

5

Page 18: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

1.2.3 Fusing Particles by Laser

Another method of producing rapid prototypes is to fuse individual particles together

with a laser. The main method under this category is Selective laser sintering (SLS). SLS

machines work in a similar manner to that of SL machines. The vat in a SLS machine contains a

material in particulate form such as: sand, metals, ceramic powders, wax, nylon, and other non

toxic polymers such as polycarbonates and even ABS [3]. Instead of using a blade as in SL, SLS

machines use a counter rotating roller to spread a precision layer of particles. A low powered

CO2 laser, approximately 20-50 W, then fuses the particles together in the pattern of the

prototypes cross section. For proper fusion, the entire vat is enclosed in an inert environment

such as a Nitrogen atmosphere. Supports are not required in SLS as the un-fused particles act to

support the entire layer built on top of it. When the prototype is complete, the support material

simply falls off the prototype, passed through a sieve, then reused. The vat is maintained just

below the material melting point to reduce excessive thermal distortions from a high powered

laser. The main disadvantages of SLS are thermal distortion and stair-stepping [6]. Thermal

distortion occurs as a result of the fusing process, then cooling. As soon as the prototype is

complete, it is also in a “green state”, similar to SL, because it is just below the melting

temperature. To minimize distortion, the prototype is kept in the SLS machine until it cools,

which can take many hours. A wax part can take 12 h to cool [3]. This makes the build time very

long per prototype as the machine can not be used until the previous prototype is cooled down

and removed. Once the part is sufficiently cooled to transport, it must be post-sintered for full

strength [6].

Gas phase deposition (GPD) produces prototypes by solidifying a material in a gaseous

state. The entire build area is enclosed in an environment of reactive gas. When a laser passes

6

Page 19: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

through the gas, the gas decomposes and a solid is left on the surface of the prototype to build it

to the correct form one layer at a time. Materials such as carbon, silicon, carbides, and silicon

nitrides are the materials that can be solidified to form the prototype directly from a gaseous

state. Other methods of GPD include covering the prototype in a powder for each layer that

reacts with the gas with aid of the laser, to solidify into silicon carbide or silicon nitride [3].

1.2.4 Joining Particles or Layers with a Binder

Producing a prototype where no phase change occurs has a great advantage because of

the lack of thermal distortions. Three dimensional printing (3DP) is a derivative of inkjet

printing technology. The inkjets prints a liquid binding agent to bond a powder. The powder

distribution method is identical to that in SLS to deposit the next layer. Also, in a similar fashion

to SLS, the un-bonded powder acts as support material that can be reused once sieved. When the

print-head deposits the binder onto the powder, it bonds several powder grains together into a

sphere due to surface tension forces. As the powders are very fine, capillary action acts to

distribute the binder to neighbouring grains. This can adversely affect accuracy because of the

randomness of the distribution of the binder. For this reason, each layer is sprayed with a mist of

water droplets. Parts created by 3DP can be very brittle and fragile, depending on the powder

and bonding agent used. Some parts may required firing, once the support powder is removed, to

strengthen the bonds by sintering together the powder. Another option is epoxy coating the

prototype to add strength. It is possible, with the correct powder and bonding agent, to produce

flexible rubber prototypes [3].

7

Page 20: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Another bonding RP process is laminated object manufacturing (LOM) which bonds

entire layers together. Typical materials of LOM are paper and cellulose foils, but any foil

material can be used to create prototypes. Typically a laser is used to cut out each cross section,

and then each layer is bonded together with an adhesive. Stair-stepping in LOM is a function of

the paper thickness. Although the layers are as thin as foils, stair-stepping is very prevalent in

the prototypes. Since the paper layers are cut with a laser, a fire hazard exists which requires

appropriate fire extinguishing safety precautions. Internal cavities are difficult to produce on

LOM machines because of the difficulty of removing the supports. Distortion is a major problem

in LOM prototypes because of water absorption. For this reason, the prototypes must be sealed

once they are complete [7].

1.3 Stair Stepping Error The primary issue with layer based RP is stair-stepping, which is governed by layer

thickness and build angles. Figure 1 and Figure 2 illustrate the geometry associated with 3-axis

deposition and 3-axis machining. The resultant of this geometry imposes an inherent average

surface roughness, Ra,t, even under ideal conditions.

8

Page 21: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 1 Stair Stepping Geometry

Figure 2 Surface Roughness Geometry

From the above geometry, the average theoretical roughness is given by:

,2 stana t N

N

tR inθθ

⎛ ⎞= ⎜ ⎟⎝ ⎠

(1)

,sin

2 tanN

a tN

tR θθ

⎛ ⎞= ⎜⎝ ⎠

⎟ (2)

, cos2a t NtR θ⎛ ⎞= ⎜ ⎟

⎝ ⎠ (3)

where t is layer thickness, and θN is the normal build angle.

9

Page 22: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

A reduction in nozzle size improves surface finish by reducing layer thickness. As layer

thickness decreases, the build time increases because of the increase in number of layers

required for the prototype. Also with smaller nozzles, there are also an increased number of

passes required to fill in each cross section. As the normal build angle, θN, increases, the surface

roughness decreases giving it an inversely proportional relationship.

1.4 Current State of the FDM Industry and Past Research Work

The leading commercially available FDM machines are Dimension 3D by Stratasys,

Invision by 3D Systems, and Zprinter by Z-Corp. The new FDM machines have two nozzles,

one for the prototype material, and the other for the support material which is usually a water

based wax. The support material nozzle (secondary nozzle) works on the same principle as the

prototype material nozzle (primary nozzle) with respect with material deposition. Both nozzles

are attached to the same liquefier head. This allows the same motion controllers to operate the

deposition of both materials during the build process. The entire operation is completed without

human interaction until the removal of the support material.

Small nozzle diameters, producing low layer thickness, can produce problems with

delamination, since the low volume of extruded material solidifies quickly. If sufficient time

isn’t allowed for proper welding to the previous layer, delaminated of the layer may occur from

the liquefier pulling away the extrudate as it deposits [8]. The ABS is deposited at such a low

rate that it re-solidifies in approximately 0.1 sec. The commercial build area environments are

maintained at an elevated temperature between 50 ºC – 80 ºC which improves layer adhesion. [1,

10

Page 23: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

2] For the solid ABS to extrude the molten ABS through the nozzle, the spooled filament is

approximately 0.071 in [1.8 mm] to avoid buckling prior to entering the liquefier head [9].

In the journal “prototype” August 2004 edition [10], Stratasys claim part accuracy ±

0.005 in [± 0.125 mm]. The metrology data within plus/minus one standard deviation will lie

within this tolerance, but will be exceeded by local minimum and maximum errors. The build

volume where the prototypes are built is 8 in x 8 in x 12 in [203 mm x 203 mm x 305 mm].

Depending on the accuracy required, the layer thickness can be toggled between 0.0096 in or

0.0130 in [0.245mm or 0.33mm]. Road widths are approximately 0.0197 in [0.5 mm] wide, with

the smallest features that can be built just under 0.040 in [1 mm]. In September/October 2005,

Time-Compression Technologies presented an article, where the top three FDM machines in

industry were compared by each producing the same four prototypes. The prototypes were each

approximately 2.5 in x 2 in x 1 in. Once complete, the metrology data was captured with a laser

scanner [10]. The overall maximum and minimum tolerances from all four parts are summarized

for each machine in Table 1. The results have been rounded to three decimal places to conform

to results found later in this paper.

Table 1 Commercial FDM Machine Experimental Accuracies

Machine Min. Tol.

(in) Max. Tol.

(in) Dimension -0.030 +0.020 InVision -0.037 +0.045 ZPrinter -0.024 +0.035

In research performed by Madahian [11], a 3-axis paraffin wax RP machine with a milling

station was developed. The goal of the research was to improve surface quality with the addition

of a machining station. Parts produced included: cubic and rectangular prisms, single and multi-

11

Page 24: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

layered cylinders, solid and hollow stepped pyramids. All parts featured vertical sides, so linear

dimensions and tolerances determined quality. The reported averaged tolerances for cubical and

cylindrical shapes were +0.018 in and +0.022 in respectively with machining. Without

machining, tolerances were reported as +0.250 in which exemplifies the difficulty of wax

extrusion through a nozzle. The resultant parts produced were fragile, because they are created

from wax. The wax also requires additional heat to keep the previously deposited material at a

sufficient temperature for interlayer cohesion. An adhesive spray was also required so the wax

parts could adhere to the build base during machining.

1.5 Proposed Research Goals

Eliminating stair stepping completely is not possible with 3-axis deposition, which is

currently the industry standard. Current commercially available machines are capable of keeping

tight tolerances, but with such fine nozzles, build times are measured in hours or days, even to

deposit small volumes of material. By including a machining station, larger nozzles can be used,

as the accuracy is achieved through machining. This also helps reduce build times for both 3-

axis and 5-axis deposition.

The proposed research goal is to prove that it is possible to eliminate stair-stepping, by

increasing degrees of freedom to 5-axis deposition. The 5-axis control will be provided by a

custom built hexapod, as depicted in Figure 3. To obtain comparable results, a proposed FDM

module will be built and mounted to a 3-axis table. After building prototypes this module will

then be transferred to the 5-axis hexapod to produce the same parts. The prototypes will be

compared based on linear and angular dimensions compared to the CAD model. The prototypes

12

Page 25: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

will also be compared to theoretical surface roughness values obtained from Equation (3). To

align with current FDM machines, ABS will be used as the extrudate.

Figure 3 Custom Hexapod

13

Page 26: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 2

2.1 Drive System Design

In order to produce much stronger prototypes with natural cohesive properties, ABS has

been selected as the build material. The previous researcher’s [11] method of material extrusion,

a lead screw driven piston, did not lend itself to extruding ABS. The piston extruder only held a

small amount of wax material, thus it constantly had to be disassembled and refilled. A new

design was required that would allow for continuous ABS material supply. To calibrate the

extrusion parameters, the feeding and heating systems were mounted on a stationary platform.

Mounting of the extruder on the 3-axis machine was delayed until the extrusion parameters were

controllable on the stationary platform.

The “Black Box” system design approach, as laid out by Salustri [12], organizes the RP

module’s functional requirements. The system and all subsystems are recursively considered as

black boxes with only inputs and outputs. The scope of the module under consideration is the

stationary extruder that will mount onto the 3-axis and 5-axis machines. In the top level black

box, the module must input ABS material, and output extrudate at a smaller diameter.

Determining the module’s sub-systems involves defining the sub-functions needed to

accomplish the overall functional requirements. In order to create extrudate, the ABS must be

heated, and reduced in diameter (for round input) which requires an imposed extrusion force.

The black box for the heating system has input of a controlled amount of electrical

energy, and an output of heat. The diameter reduction black box consists of an input of stock

ABS, with an output of reduced diameter ABS. Motion of the ABS is the only output of the

extrusion force black box, which requires an input of a force generated by a stepping motor.

14

Page 27: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

“Opening up” the extrusion force black box reveals the need for mechanical design to

controllably and reliably exert a force onto the ABS [12]. The following design iterations were

carried out to meet this sub-system’s functional requirements.

2.2 Tangential Drive System

ABS is readily available and inexpensive in rod form. The initial design built utilised a

stepping motor driven lead screw as illustrated in Figure 4. Although the lead screw teeth were

sharp, it failed to dig into the tough ABS enough to create positive traction. As a result, the lead

screw just shaved material off the rod, instead of using the tangential component of force to

drive the rod down into the liquefier.

Figure 4 Tangential Drive System

15

Page 28: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

2.3 Internally Threaded Pulley and Belt Drive System

Since the previous method was unsuccessful, positive drive ridges were concluded to be

required on the stock ABS rod, to avoid slippage. To produce equally spaced ridges, the ABS

rod was threaded. As the rod would always be driven down, there was no backlash issue.

Unfortunately, threaded ABS was found not to be commercially available in sufficient lengths. It

would be expensive to have custom made externally, so it was decided to thread rods in house to

save money. Commercial FDM machines use expensive replacement cartridges that contain a 50

in3 spool of ABS filament. The cost of using the threaded rod is approximately 70% cheaper

than the commercial cartridges.

The two smallest, readily available, ABS rods were Ø1/4” and Ø3/8”. Both sizes were

purchased and threaded with UNF (United National Fine) and UNC (United National Coarse)

threads (1/4”-28, 1/4”-20 and 3/8”-24, 3/8”-16 respectively). The UNF threads did not turn out

very well in the ABS. The addendum heights were not consistent for either size. For the UNC

threads, the 3/8”-16 produced the better results. As the stock rod was larger, it was easier to

manually thread with a hand die on the lathe. The 1/4” rod deflected too much while threading,

and therefore only short sections of about 6 in could be threaded at a time. With the 3/8” rod, 20

in sections could easily be produced with visually flawless threads.

In order to drive the threaded rod, an internally threaded pulley was made that would be

driven by a belt. Figure 5 illustrates the internally threaded pulley belt drive configuration used.

The guide used to keep the ABS vertical was made of brass to bear the belt loads. The belt sat on

a Teflon bushing in the guide to allow free slippage while being retained on the pulley. To allow

belt tension adjustability, the motor was allowed to pivot, and then be bolted down to the base.

16

Page 29: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

The motor pulley was wider than the drive pulley to allow the belt to find its own natural height

level.

This system worked very well until full extrusion force was required. During extrusion,

occasionally the belt would jump on the drive pulley. This would occur very infrequently, and

was difficult to find the cause. The ABS threads did not have any visual defects, and extrusion

force was theoretically constant. Several belt tensioned were tried, with similar unsuccessful

results.

Figure 5 Belt Drive

17

Page 30: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

2.4 Extrusion Diameter Reduction and Modular Nozzle

Although the belt drive did not work sufficiently for producing test pieces, it did allow

for the determining of extrusion temperature parameters, and to find the major issues that would

be associated with extrusion. Initially, extrusion force was high, and the ABS would not exit the

nozzle. In order to reduce the diameter of the threaded ABS during extrusion more gradually, an

internal dual stage reducer was implemented which is illustrated in Figure 6. Figure 6 also shows

the modular nozzle in the steel liquefying head. A brass nozzle is threaded to allow for the easy

changing of nozzle diameter. The nozzle has an internal orifice diameter of 5/64”. The following

equation applies when changing the nozzle diameter. In order to maintain a constant feed rate,

the stepping motor providing the drive for the threaded rod must be altered by the following

volumetric deposition relationship in Equation (4) [9].

2

rV = nozzlee

r VR

⎛ ⎞⎜ ⎟⎝ ⎠

(4)

Where Vr and R are the velocity and the main internal diameter of the liquefier head respectively,

and Ve and rnozzle are the velocity and nozzle orifice radius of the extrudate respectively.

18

Page 31: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 6 Modular Nozzle, and Reduction

Both reduction stages have die half-angles, αdie, of 41°. These were cut with a standard

82° countersink. High (shallow) die angles create turbulence in the material flow, and require a

higher extrusion force. With low (gradual) die angles, the surface area of the reducer increases,

which adds additional friction surface area that also increases the extrusion force. To optimize

die half-angle, a parabolic plot, as seen in Figure 7(b), can be produced for extrusion force

versus die angles for the specific extruder [13]. Since disassembly of the liquefier is very

difficult after ABS is liquefied and extruded, the 41° reducers were used. Testing proved that

these modifications helped make extrusion possible, and very consistent. In the previous wax

extruder, leaking, and excessive back flow of molten wax compromised controlled extrusion

rates. With the current extruder design, there are no leaks or back flow. All molten material exits

from the nozzle only.

19

Page 32: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 7 Die Extrusion [13]

2.5 Temperature Control and Insulation

To provide heat to the liquefier head, electrical resistance band heaters are used. Figure 8

illustrates the location of the resistance band heater on the liquefier head just above the nozzle.

The band heaters are wrapped in a silicon insulation fabric to keep the heat transferring into the

liquefier head, and not into the room.

20

Page 33: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 8 Heating bands

During temperature testing, an enclosure was built to house the stationary extruder. The

enclosure was fitted with a duct that was attached to an extraction fan. Fume extraction was

crucial as ABS smokes when it begins to burn. Figure 9 illustrates the setup used.

21

Page 34: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 9 Ventilation Fume Extractor

An open loop manually adjustable temperature controller powers these heaters. The

temperature probe is located in the liquefier head by the nozzle. A digital multi-meter reads the

probe’s temperature of the ABS in Celsius, as it is just about to exit the nozzle. The dial position

on the temperature controller is manually adjusted to maintain 280ºC. ABS begins to soften at

about 100 ºC, starts to flow around 200 ºC, and begins to decompose at 250ºC [14]. Above

270ºC, the ABS extrudes from the nozzle consistently, but begins to burn above 290ºC. Beige,

or naturally colored, ABS is used to visually test for burning. In order to reach these

temperatures, 500W of resistance heaters are required. A 300W band is wrapped around two

inner 100W heaters. With this band heater setup, the analog temperature controller is set to

around setting level 7 of 10. The controller has continuous adjustment, so fine-tuning is possible.

The high temperatures during testing proved to warm up the ABS near the drive location.

The stock material guide that was previously made of brass was replaced with one made of

22

Page 35: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Teflon. This was done to insulate heat from transferring to the drive gears through the guide that

could soften the ABS threads. For this same reason, heat sink fins were machined into the upper

portion of the steel liquefier to promote heat transfer prior to the drive location.

2.6 Drive Notches

The Tangential Drive and Belt Drive systems did not sufficiently provide the required

function of extrusion. One method with promise would be to use a drive gear system that would

engage into notches milled on the ABS. Figure 10 shows the jig made to hold the ABS during

CNC machining of the notches.

Figure 10 Cutting Rack Jig

The jig held four rods, and had a hole/pin system to flip the rods over to ensure 180° of

rotation in the jig. A 60° chamfer end mill was used to cut the ledges. This production method

did not work out well as it took too much time to machine the rods because of the number of

passes required. For each side of the rod, 132 passes were required at a pitch of 0.091 in to

23

Page 36: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

match the drive gear teeth. When including the time for set-up, flipping the rods over, and

afterwards removing the ends of the rods with the location holes, it took over an hour to make

the first four 12 in rods. The resulting machining cuts were also of fairly poor quality and

inconsistent. As a result of the amount of work that would be required to make a sufficient

amount of racked rods for machine calibration and testing, this method was abandoned.

24

Page 37: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 3

3.1 Geared Drive System

Another way to put equally spaced ledges into the rods was to go back to using

conventionally threaded rods. For the thread to match the positive drive gears, new gears with a

smaller pitch and diameter to match the standard 3/8”-16 thread were purchased. These were

spur gears with a Diametral Pitch of 48 teeth per inch, with 44 teeth. This diametral pitch

converts to a linear tangential pitch of 15.95 teeth per inch at the teeth tips, which is only an

error of -0.3%. The number of teeth provides an appropriate Pitch Diameter that allows for

adjustability of engagement to the ABS. The UNC thread was required, opposed to selecting

UNF, to allow for large and strong threads to avoid stripping by the steel drive gears.

Two drive gears engage into the thread of 3/8”-16 UNC ABS rods. Initially only one of

the drive gears was driven, and the other was a follower only. With this arrangement, the single

drive gear would strip the teeth off the ABS. This was because the drive gear would push the

ABS away while driving it down, reducing the amount of engagement. A second set of gears

was added, to distribute the drive to both drive gears, which completely eliminated the stripping

issue since the lateral force components are cancelled.

Gears with a Diametral Pitch of 20 teeth per inch, with 24 teeth were selected. The

secondary drive gears’ teeth are larger than the drive gears, so at any amount of engagement of

the drive gears on the threaded ABS will still provide drive to both drive gears. All gears are on

shafts that are supported by ball bearings for smooth rotation and load bearing capacity. The

exception is where the stepping motor output shaft is connected. Figure 11 illustrates the final

extrusion geared drive system.

25

Page 38: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 11 Threaded ABS Geared Drive System

The threaded ABS is fed through from the top in the machine that has no roof. This

allows for long rods of 20 in to be used. When the end of the rod gets near the drive gears, a new

rod is inserted into the guide. The new rod automatically gets fed into the drive gears via gravity

feed. The teeth automatically engage which allows for indefinite uninterrupted deposition.

Figure 12 illustrates the entire extrusion module including the liquefier head, band

heaters, gear drive stepping motor, drive gears, ABS threaded rod, and the adjustable drive gear

shafts support block. The distance between the shafts is adjustable to obtain the required

26

Page 39: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

engagement between the drive gears and the ABS threaded rod. Teflon spacers were place under

the bearing support structure to insulate the geared drive system from the liquefier. This reduced

the temperatures in the surrounding structure. Figure 12 also includes the L-bracket used to

attach the module to the 3-axis CNC machine. Figure 13 illustrates the module’s overall Product

Architecture Schematic (PAS) for mass, energy, and information exchange in the system [12].

Figure 12 FDM Extrusion Module

27

Page 40: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 13 FDM Extrusion Module PAS

3.2 Thread Forces and Stresses

Due to the helical thread geometry, several forces are produced as resultants from the

force applied from the drive gears. A resultant torque is produced from the lead angle of the

threads that is imposed on the stock ABS. The torque is produced from the tangential angle

component of the extrusion force, at one radius distance on either side (3/16”) of the threaded

ABS rod. The following figure from Juvinall [15] shows a free body diagram of an element on a

thread as an external vertical load, w, is applied on the thread.

28

Page 41: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 14 Thread Forces [15]

From Figure 14, Juvinall [15] presents the sums of the tangential and axial forces as shown

in the following two equations respectively. For the purposes of the following analysis, the Free

Body Diagram (FBD) is taken in as static, constant velocity state in the maximum load condition.

Fatigue is not a factor as each tooth only ever sees one load cycle on its way into the liquefier.

The horizontal component of forces in Section A-A of Figure 14 cancel each other as the same

forces are generated on either side of the threaded ABS, by each drive gear. There is no imposed

load on the inside of the Teflon guide. Thus the only net external forces are produced, creating a

torque about the centreline of the threaded ABS rod. From Juvinal [15],

(5) t nF = 0: q - n( cos + cos sin ) = 0 f λ α λ∑

(6) a nF = 0: w - n( sin + cos cos ) = 0 f λ α λ∑

where q is the twisting force imposed on the threads, and n is the normal reaction force. The

angle of the normal force, αn, for a standard thread is 30°, which is half of the thread angle

which is 60°. The dynamic coefficient of friction between ABS and mild steel, f, is 0.35, and the

lead angle, λ, is calculated from Equation (7) [15],

m

p = arctan * d

λπ⎛⎜⎝ ⎠

⎞⎟ (7)

29

Page 42: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Where dm is the Pitch Diameter of the 3/8”-16 ABS threaded rod, which is equal to 0.3367 in.

The pitch of the threads, p, is 0.0625 in, which is the inverse of 16 threads per inch. Equation (7)

results in a lead angle of 3.38°.

From equations (5) and (6) [15],

n

n

cos + cos sin = w cos cos sinfq

fλ α λ

α λ λ⎛ ⎞⎜ −⎝ ⎠

⎟ (8)

In order to find the vertical load on the ABS threads by the drive gears, the following

stepping motor specification data are used. Based on a programmed table speed of 6 in/min, the

threaded ABS rod travels at a velocity, v, of 0.3740 in/min. These values come from calibrations

in Chapter 4. The circumference of the drive gears, C, is 2.880 in. Therefore the drive shafts

each spin at,

vRPMC

= (9)

which equals 0.1299 rpm. The 6 V stepping motor draws 11.6 mA of current from controller.

This value was determined experimentally. The controller unit draws 1.9 mA to operate the

control board and fan, and there is a total of 13.5 mA drawn during motor operation. The

difference between these values is the amount of current drawn by the motor. Assuming a

stepping motor transmission efficiency, ƞ, of 80%, the power, P, and torque, T, produced by the

stepping motor is governed by the equation,

( ) -5T * RPMP = = * I * V = 0.8 * 0.0116 amps * 6 V = 0.05568 W = 7.46x10 hp

5252η (10)

This power is divided equally to each drive gear through the secondary gear set. Assuming the

secondary drive gears also have 80% efficiency, the power going to each drive gear is,

30

Page 43: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

( )

shaft

*PP =

(11)

which equals 2.99x10-5 hp. Using a rearrangement of Equation 10 to solve for the torque

produced at each shaft, Tshaft, is calculated as,

( ) ( )shaft

shaft

5252*P 5252*0.00514 hpT = = = 1.207441 ft.lb = 14.48929 in.lb

RPM 0.1299 rpm (12)

To find the force exerted on the threaded ABS rod by each drive gear, w, the Pitch Radius, r, of

the drive gear is used as the moment arm, and is found from the Gear Pitch Diameter, dpitch, of a

3/8”-16 thread which is 0.9170 in.

pitchd 0.9170 inr = = = 0.4585 in 2 2

(13)

Thus the force, w, produced at each drive gear tooth is,

shaftT 14.48929 in.lbw = = = 31.602 lb r 0.4585 in

(14)

Plugging this vertical load into Equation (8), the resulting value for q is 14.996 lb. Since there

are two drive gears, each applying a counter clockwise tangential torque as looking from above,

the total torque imposed on the treaded rod is,

mdT = 2q2

⎛⎜⎝ ⎠

⎞⎟ (15)

Using Equation (15), the total resultant twisting torque on the ABS threaded rod is 5.049 in.lb.

This torque acts in a counter clockwise direction about the centreline of the threaded rod, when

looking from above.

This applied torque imposes shear stress, τ, on the threaded ABS rod. Juvinall [15]

presents an equation to calculate this shear stress for external threads as,

31

Page 44: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

( )( )( )3

min

16T =

π (16)

where dmin is the root diameter of the threaded ABS rod, which is 0.2983 in for a 3/8”-16 UNC

thread. From Equation (16), the shear stress in the threaded ABS rod is 0.969 ksi. To avoid the

ABS teeth striping, this stress must be less than the Flexural Modulus of the material. For ABS,

the Flexural Modulus is given as a range, between 5-15 ksi [16]. As the stress in the ABS is less

than five times less than the minimum of this range, the teeth are not in danger of stripping.

The criterion that dictates whether the threaded ABS rod will spin under the applied

vertical loads is the overhauling and self-locking criteria. If a thread is self-locking, this means

that the friction is high enough, between the load and the load bearing surface, that a linear force

is insufficient to produce rotation without an added torque. An overhauling thread will create

rotation from the linear force. Juvinall [15] also presents a self-locking friction criteria

relationship as follows.

n

m

p * cos * d

f απ

⎛ ⎞≥ ⎜

⎝ ⎠⎟ (17)

For the current parameters, this criteria produces, 0.5 ≥ 0.051 which is satisfies the self-locking

criteria. This means that the threaded ABS rod will not spin under the applied linear vertical load.

This was observed and confirmed during extrusion testing. Although there were no sensors

monitoring forces, it was apparent that the only major forces being applied by the drive gears

were driving the threaded ABS rod down into the liquefier.

32

Page 45: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 4

4.1 Extrusion Parameter Calibration

As was mentioned previously, prior to mounting the extruder on the 3-axis machine,

extrusion parameters were controllable. A custom stepping motor driver control box was

previously built by the author’s thesis advisor of this thesis, Dr. Vincent Chan, to work with the

high torque stepping motor used in the current extruder design. The stepping motor and the

controller were both used in Madahian’s [11] wax extruder. The controller uses a loop delay

between pulses to control the time between pulses sent to the motor. There are six settings on the

controller to control speed. Each setting is associated with the number of loops in the software

between pulses.

The number of loops between pulses for settings one to six are: 200, 150, 100, 50, 24, and

3 respectively. Setting 6 is the fastest stepping motor speed and is used only rapidly feed the

ABS in and out of the liquefier when it is empty. Setting 6 is otherwise too fast for extrusion.

While the extrusion system was on the stationary platform, settings 1-5 were used to extrude

ABS to test extrusion parameters. As gravity is the only force acting on the ABS after extrusion,

the diameter of the extrudate is only dependent on the nozzle orifice diameter and the re-

expansion of the ABS after leaving the nozzle. For settings 1-5, approximately 8 in of extrudate

were produced at 280ºC ± 5°C at the nozzle tip. In all cases, the extrudate was very consistently

extruded.

Many measurements were randomly taken from all samples with vernier callipers that

have a resolution of 0.0005 in. For all 5 samples, the extrudate was measured as 0.080 in ±

0.0005 in. Compared to the theoretical nozzle orifice diameter, the die swell ratio, rs, is 1.024.

33

Page 46: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

The value of 0.080 in was taken as the nominal extrudate diameter for the purposes of road

width and layer thickness calculations. Because of the consistent results over a range of

extrusion speeds, statistical analysis was not performed to validate this average.

4.2 3-axis Machine Calibration

The next step was mounting the extruder onto the 3-axis machine. This was done with a

simple steel bracket that bolted to the machine, and to the extruder base. With the extruder

mounted the usable range of motion for each machine axis is summarized in Table 2.

Table 2 3-axis Machine Motion Range Axis Range (in)

X 5

Y 3.5

Z 2.5

Before determining the appropriate feed rate that corresponds to the extrudate velocity, the

axis of the machine must first be calibrated. The 3-axis CNC machine is controlled by a

computer, running DeskNC, which reads G-code data. DeskNC then sends the path to the 3-axis

machines controller board that drives the stepping motors. DeskNC requires calibration for the

3-axis machine to ensure the correct number of pulses be sent to match the physical motion of

each axis on the machine. Madahian [11] previously calibrated DeskNC for his 3-axis wax

extruder. To confirm that this calibration was performed correctly, vernier calipers were used to

confirm the actual distances traversed by the machine in all 3-axis.

34

Page 47: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

G-code was manually written to individually move each axis 2 in to measure the actual

distances traveled for each axis. The reason 2 in was used, was because that is approximately the

range of motion of the z-axis that will be used during prototype production. The calibration was

confirmed with the vernier calipers to have been done correctly. DeskNC settings use values

with the units of pulses per inch to control the machine. Table 3 includes all of the parameters

required in DeskNC using the Step/Direction Driver setting.

Table 3 3-axis Machine DeskNC Settings Default Output Bits Axis Steps Per Unit

(Steps/in)

Max Speed

(Steps/Sec)

Direction

Signals Step Direction

X 402 101 Neg 0 3

Y 805 101 Pos 1 4

Z 4015 1000 Pos 2 5

The Max Speed settings are intended to keep DeskNC from the exceeding the maximum

speed of the stepping motor encoders. If signals are sent faster than the motors can handle, signal

pulses sent by DeskNC will be missed, and registration will be lost. For this machine, this

maximum is roughly 8 in/min for the X and Y axis according to Technical Officer Devin Ostrom

at Ryerson University, whom has experience with the machine. The X and Y axis motors are

limited to 7.5 in/min by the Y axis with these default values. In the g-code the Z-axis limit is

approximately 2 in/min, so the limit is set to 1000 steps/sec, which is just over 1.5 in/min. The

X-axis Max Speed limit could be set to 51 steps/sec to also limit its motion but is not necessary

as both X and Y axis use the same feed rate. In all G-code, feed rates are limited to 7.5 in/min

for the X and Y axis, and 1.5 in/min for the Z-axis, so the internal DeskNC limits are never

35

Page 48: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

exceeded. The Direction Signals are set so that positive X, Y, and Z are set positive right,

forward, and up respectively.

The reason that the Z-axis is not as quick as the other axis is because it uses a different

stepping motor that requires many more pulses per revolution as indicated in Table 3. The

inherent design of the Z-axis table is poor. It uses a single threaded rod to lift/lower the table,

with only two linear bearings on either side of the screw. The rest of the table is cantilevered on

these linear bearings. The threads would occasionally stick under the cantilever bending moment

which would cause the Z-axis table to momentarily pause during traversal, then jump as the

threads unstuck. The project timeline did not allow for a total re-design of the Z-axis table, so a

quick fix solution was implemented. An additional linear guide was mounted on the far end of

the Z-axis table to eliminate the cantilever load placed on the drive screw. This helped alleviate

thread sticking during vertical translation of the Z-axis table.

4.3 Feed Rate Calculations

In order to controllably deposit material onto the build table, the extrudate velocity must

match the traversing speed of the machine in the X and Y directions. The methodology behind

this calibration was to independently calibrate for 2 settings on the stepping motor controller box

with multiples as delays. For example, settings 3 and 4 on the controller correspond to 100 and

50 delay loops per pulse respectively. This way, if the two feed rates found differ by a factor of 2,

the calibration is successful. The method used to determine whether the feed rate matched the

extrudate velocity was by measuring the extrudate after deposition. If the height of the extrudate

was lower than 0.080 in, then the feed rate was too high. Conversely, if the extrudate height was

36

Page 49: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

above 0.080 in, the feed rate was too low. For settings 3 and 4 respectively, feed rates of 3

in/min and 6 in/min produced road widths 0.080 in high.

An Excel spread sheet was used to track the theoretical speed relationship at each

controller setting via the volume relationship between the threaded rod and the extrudate cross

sections. Table 4 lists the number of loops per pulse, the linear speed of the threaded rod, and the

corresponding feed rate for each controller speed setting. For all prototypes produced in the

results section of this report, speed setting 4 on the stepping motor controller was used

corresponding to a feed rate of 6 in/min.

Table 4 Gear Drive Stepping Motor Controller Settings Slowest Fastest 1 2 3 4 5 6

Loops per Pulse 200 150 100 50 24 3 Linear Rod Speed 0.0935 0.1247 0.1870 0.3740 0.7792 6.2333 in/min

Programmed X/Y Feed Rate = 1.5 2.0 3.0 6.0 12.5 100.0 in/min

37

Page 50: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 5

5.1 Prototype part G-code Generation

One of the shapes used to test the accuracy and surface quality of the extruder and 3-axis

machine, is the topless pyramid [17]. A custom configuration of this shape is illustrated in

Figure 15. The topless pyramid has sides with various angles to test the machine’s stair stepping

error as compared to the theoretical error. For this study, the topless pyramid has side angles of

15º, 30º, 45º, and 60º measured from vertical. The hexapod will have approximately 45º of

motion in both pitch and roll. The 15º and 30º surfaces will allow for surface roughness analysis

in the future when the nozzle is not perpendicular to the part surface. The base dimensions in

this study are set to 1.44 in by 2 in, which gives a square top surface. A rectangular base of one

deposition layer thickness is also included to better capture overall linear dimensions of the

prototypes produced.

Figure 15 Topless Pyramid (15º, 30º, 45º, 60º)

Custom software was developed in MATLAB that generates the G-code for this shape.

The G-code output by the program is formatted to be compatible with DeskNC. Currently, the

software can not generate G-code from any .STL or STEP files, which are the standard RP file

38

Page 51: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

formats [18]. The MATLAB program is capable of generating G-code for any size topless

pyramid, with sides at any inclination angle. Instructions for the specific format of the input file

are documented at the beginning of the program.

Three strategies were considered for depositing each layer of the topless pyramids as

illustrated in Figure 16. Method 1) is called zigzag deposition, and ensures that the internal

portion of the cross section is fully deposited. The disadvantages are the poor surface finishes on

both turn-around edges and the inability to hold tight linear tolerances in the traversing direction.

Method 2) is called perimeter zigzag, and can hold tighter external linear tolerances than zigzag

depositing since the perimeter is traversed first. The disadvantage is that variable deposition

speed is required to ensure the inner area is fully deposited. For the final pass, a resultant road

width is needed that is larger than the standard road width. Method 3), called spiral deposition,

first traverses the perimeter and then spirals inward. This results in a stronger structure near the

external edges of each cross section, but the disadvantage is that the nozzle ends up in the centre

of the part, which requires deposition to stop before retracting to deposit the next layer.

39

Page 52: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 16 Pyramid Cross Section Path Deposition Methods

Since the current extruder does not have the ability to instantly stop deposition, the

Perimeter Zigzag deposition method is adopted in the code to produce the deposition paths. The

path illustrated in Figure 17 can be used to deposit each cross-section of any topless pyramid.

The outer perimeter deposition helps hold overall dimensional tolerances, and produces

smoother outer surfaces. The internal zigzag pattern ensures complete, but possibly over,

internal filling on the final pass of each cross section.

40

Page 53: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 17 Pyramid Cross Section Path

For the G-code generation, the physical parameters in Table 5, are used in the code to

calculate the required deposition paths for each layer of the prototype. The full code can be

found in Appendix B. To ensure that the nozzle does not contact the previously deposited layer,

a “Nozzle Offset” is required. The offset used for all parts is 1.25 times the layer thickness.

Table 5 MATLAB Code Input Parameters Road Width 0.080 in

Layer Thickness 0.080 in Feed Rate 6.0 in/min

Nozzle Offset 1.25 times layer thickness

5.2 Machining, G-code, and Router Tool Offset Calibration

The custom MATLAB program also generates the G-code for the machining path. The

purpose of the machining is to remove excess deposited material, and to reduce the ABS to the

final shape in the CAD model. This allows for a larger nozzle diameter because excess material

can be deposited, and then machined off later. For the case when machining will be used for

making the prototype, a slightly different deposition strategy is used. An additional half road

41

Page 54: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

width is added to each side of the part. Instead of depositing around the perimeter a half road

width inside the desired part edge, the centre line of the road width is deposited along the

theoretical perimeter of the part. The router then machines away the excess material to reduce

the prototype to the desired dimensions. The router bit is a two edged straight cutter, with a

cutting diameter of 0.250 in.

The relative position of the router bit with respect to the deposition nozzle is fixed.

Calibration was required to determine the offsets in each axis. The Z-axis offset was initially

measured directly with vernier callipers between the tip of the router and the build table base.

This measurement was 0.727 in. In order to get initial offset values for the X and Y axis the

nozzle was lowered to touch a random point on the build table. This location was then manually

marked on the table. DeskNC was then used to manually move the router bit over and down so

that it was visually over the mark. To move the router bit down to the table, the nozzle must be

moved over at least 2.5 in to avoid hitting the extruder resistance heaters and insulation on the

build table.

From the display screen on DeskNC, the X-axis offset was 3.316 in, and the Y-axis offset

was initially taken as zero. To confirm the accuracy of these offsets, several calibration cubes

were deposited and machined. A modified version of the custom G-code software was made to

generate the G-code for these cubes. The theoretical dimensions of the cubes were 1 in by 1in by

0.160 in, which is equal to two times the layer thickness. Table 6 contains the calibration trials

including the offsets for each axis, the G-code file names, and the bilateral part tolerances used

to calculate the required adjustments to the next iteration. Adjustments to the offsets were made

by the midpoint of the bilateral part tolerance. The iteration termination criterion, was met when

each axis was repeatable and symmetric for two iterations, with all dimensions within ±0.005 in.

42

Page 55: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 6 Machining Offset Calibration Trials

Iteration Number

G-code File Name Axis Offset Used

(in)

Part Bilateral Tolerance

(in) Z -0.727 +0.045”

+0.029” X -3.316 ±0.005”

1 Initial Offsets

Y 0 n/a Router missed the part in the +Y axis by approximately 1/16 in.

Z Z-axis table sticking X -3.318 ±0.004” 2 "Sept7 Machining

Testing.txt" Y -0.125 -0.010” -0.030”

Z Z-axis table sticking X -3.318 ±0.002” 3 updated "Sept7

Machining Testing.txt" Y -0.105 -0.020”

-0.034”

Table sticking affecting Y and Z axis. Z-axis table linear guide added to prevent sticking. Calibration Continued from previous values.

Z -0.764 ±0.005” X -3.318 ±0.002” 4 updated "Sept7

Machining Testing.txt" Y -0.078 +0.005”

-0.001” Z -0.764 ±0.005” X -3.318 ±0.002” 5 updated "Sept15

Machining Testing.txt" Y -0.082 ±0.002”

Z -0.764 ±0.002” X -3.318 ±0.001” 6 updated "Sept15

Machining Testing.txt" Y -0.082 ±0.004”

Z -0.764 Calibrated X -3.318 Calibrated 7 Converged.

Actual Offsets used in code. Y -0.082 Calibrated

*Note: these values should not be considered as overall machine tolerances, as the parts made were fairly simple. If the machine runs for longer, it is possible that error accumulations will cause more complicated prototypes to have errors that exceed these tolerances.

43

Page 56: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 18 depicts the generated path for machining the perimeter of a topless pyramid.

Although not shown in Figure 18, machining also occurs after each layer is deposited. This helps

hold the Z-axis tolerances, as each layer is machined flat at 0.080 in thick. This removes any

imperfections and reduces error stack-up between layers. After all layers are deposited, the top is

machined to the correct height then the router bit mills around the perimeter in vertical steps of

0.010 in [19]. Time did not permit a sensitivity analysis of the machining pitch. Machining starts

off by machining the part down to the correct height, then the perimeters are machined one level

at a time. The router spins clockwise, and travels counter clockwise around the part, using

conventional milling. Conventional milling helps eject the chips away from the part to avoid re-

welding back onto the part. All code associated with machining can also be found in Appendix B.

Figure 18 Machining Path

5.3 Prototype Parts Produced

The following is a chronology of deposition trials, and prototype production. Initially, the

ABS would not adhere to the aluminum Z-axis table, so an ABS sheet was used for a deposition

44

Page 57: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

base because of the excellent cohesive properties of ABS. During initial prototype production, it

was difficult to manually control the extrudate temperature, while making sure that all systems

were working properly. Unfortunately, the project budget did not allow for a closed loop

temperature controller, so initially the parts ended up very crude. The temperature would ramp

up and exceed 290 °C because the temperature controller does not instantly reduce the

temperature at the nozzle. As a result, the ABS would burn and discolor. The discoloration can

be seen as blackening of the naturally colored ABS in Figure 19. Originally black ABS was used,

but it made it difficult to see when it was burning. Beige ABS was also readily available, and

provided additional visual feedback of burning.

Figure 19 ABS Burning

After building several sample depositions, the temperature became easier to control, and

the prototypes no longer contained discoloration from burning. Although the temperature

constantly fluctuates, it was possible to maintain the temperature to 280 °C ± 5 °C by

anticipating when, and how much, to modulate the temperature controller.

45

Page 58: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

While building initial calibration parts, the molten extrudate ABS cohered to the build

table base ABS very well. After deposition, these parts were very difficult to remove from the

base once they were complete. To over come this, several attempts were made to modify the

deposition base. The final solution was to make a base with many hinge points that could be

used to break away from the part. The ABS sheet was cut into strips that were then held together

with Duct Tape on the underside. This allowed the strips to be held tight together during

deposition, then the Duct Tape would act as a hinges to break the base away from the part. The

same breakaway base was reused for all depositions and prototypes built subsequently.

Many practice prototypes were made to ensure machine consistency before collecting

metrology data. Topless Pyramids were made to test the machine, and work out bugs in the

custom program that generates the G-code. Figures 20 and 21 respectively show the 3-axis

machine and computer setup, and the screen layout of DeskNC. DeskNC displayed a graphic of

the machine path, the current lines of G-code, the current X, Y, and Z coordinates, and the

current machining parameters. Figure 22 shows the 3-axis machine in operation, with the Multi-

meter outputting the temperature at the deposition nozzle in degrees Celsius.

46

Page 59: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 20 3-axis Machine and Computer Setup

Figure 21 DeskNC Screen Layout

47

Page 60: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 22 Multimeter Temperature Monitoring

Figure 23 is a picture of one of the first multi-layered prototypes created. Several

prototypes like this one were created during initial testing. Many of these contained flaws that

were later attributed to problems in the custom G-code generation software. They are indicative

of some of the initial difficulties producing consistent prototypes on a custom built machine with

a limited budget. These parts were not included in the following dimensional and surface

roughness analysis assessing the machines quality assessment.

Figures 24 and 25 show the extruder consistently depositing layers of a Topless Pyramid

prototype. Figure 26 shows the bottom side of a typical Topless Pyramid after it has been

removed from the build table base. The road widths and Perimeter Zigzag deposition strategy are

48

Page 61: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

clearly visible. Figures 27 and 28 both show the router machining the perimeter of prototypes.

As can be seen, the chips produced do not re-weld to the part. They only rest on the part, and fall

off when blown or brushed off. Figure 29 shows one of the completed machined Topless

Pyramid prototypes used for geometric analysis in the following chapter.

Figure 23 Early Prototype Sample

49

Page 62: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 24 Deposition

Figure 25 Multi-layer Deposition

50

Page 63: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 26 Underside of Topless Pyramid

Figure 27 Router Bit Machining

51

Page 64: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 28 Router Bit Machining and Liquefier

Figure 29 Machined Topless Pyramid Prototype

52

Page 65: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 6

6.1 Prototype Metrology

To determine accuracy and surface quality, twelve consecutive topless pyramid

prototypes were produced. Six prototypes were made with, and six without, machining. In order

to analyze the accuracy of the prototypes produced with respect to the theoretical CAD model,

several metrology methods were used. Surface roughness average, linear, and also angular

measurements were recorded for each prototype produced. To obtain the linear dimensions from

the prototype, vernier callipers were used. The base of the pyramid is used to assess the X and Y

dimensions of the part. The Z dimensions were also measured directly with a vernier. In order to

determine the surface roughness, and actual angle of each face, the parts were scanned with a

touch probe scanner. A Roland PIX-30 3D scanner was used to capture the surface data of each

prototype. The scanner is capable of achieving accuracy of +/- 0.0004 in. The probe used is a

high aspect ratio needle mounted on a piezo-electric sensor [11].

For all prototypes made, the scanning pitch in the X and Y axis was set to 0.008 in. Z-axis

measurements are taken every X-Y location as defined by the scanning pitch. The pitch is

adjustable by increments of 0.002 in. Scans for each part took approximately 15 hours when the

scanning area was manually set as small as possible based on approximate dimensions and

location of the part on the scanning table. For each part, approximately 45,000 data points were

collected by the scanner. Having the scanner perform an automatic preview to locate the part

increases the scan time by approximately 2-3 hours. When the pitch was reduced to 0.006 in,

part scans approached 2 days each, which was not practical when scanning twelve parts.

Increasing the pitch above 0.008 in would save time, but imperfections in each machining step

would be missed.

53

Page 66: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 30 shows the 3D cloud data, captured by the touch probe scanner, of a machined

topless pyramid produced on the 3-axis machine. A flaw with this style of touch probe scanner is

that it is unable to capture data points on vertical surfaces. As linear dimensions were measured

with vernier callipers, the vertical side data was not required from the parts.

Figure 30 Topless Pyramid Touch data

Imageware Surfacer software was used to isolate each surface from the data cloud. A

plane surface was fit to each side that passed through an average of the data points. Surfacer then

output the distance from each data point to the average plane. These distances were then used to

calculate the root mean square, RMS, actual surface roughness values, Rq, for each of the five

surfaces. The five surfaces include the four angled surfaces, and the top surface, which is

denoted as the 90º surface. Surfacer was also used to measure the best-fit slope angles of each

54

Page 67: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

side for slope analysis. The results of the twelve scans are presented in the following sections of

this report.

6.2 Topless Pyramid Results with Machining

Figure 31 illustrates an example of the error distances of a topless pyramid with machining,

displayed graphically with a rainbow plot for a 45º surface. For the error distances, red

represents +0.010 in, green represents 0.000 in, and dark blue represents -0.019 in perpendicular

from the theoretical best fit plane, on a linear scale. Similar graphics were captured for all

surfaces of all parts produced, including the un-machined prototypes analysed in next section.

Figure 31 45º Error Distances

55

Page 68: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Surfacer outputs all of the error distances in a text file. Microsoft Excel was then used to

calculate the surface roughness average for each surface. All of the following results for the

topless pyramids include 3-axis machining at a vertical pitch of 0.010 in. The linear dimensional

results and tolerances for the six prototypes are available in Table 7.

Table 7 Linear Dimensional Results with Machining

Part # Direction

Nominal Dim (in)

Actual Dim (in)

Tolerance (in)

Error (%)

#1 X 1.440 1.448 +0.008 +0.56 Y 2.000 2.006 +0.006 +0.30 Z 0.560 0.582 +0.022 +3.93

#2 X 1.440 1.448 +0.008 +0.56 Y 2.000 2.009 +0.009 +0.45 Z 0.560 0.576 +0.016 +2.86

#3 X 1.440 1.444 +0.004 +0.28 Y 2.000 2.008 +0.008 +0.40 Z 0.560 0.552 -0.008 -1.43

#4 X 1.440 1.448 +0.008 +0.56 Y 2.000 2.012 +0.012 +0.60 Z 0.560 0.575 +0.015 +2.68

#5 X 1.440 1.446 +0.006 +0.42 Y 2.000 2.016 +0.016 +0.80 Z 0.560 0.546 -0.014 -2.50

#6 X 1.440 1.449 +0.009 +0.63 Y 2.000 2.017 +0.017 +0.85 Z 0.560 0.557 -0.003 -0.46

Included in Table 8 are the linear tolerances and errors averaged from all six prototypes in Table

7, as well as the linear bilateral tolerances for the six prototypes.

Table 8 Linear Dimensional Results with Machining Summary

Direction Avg. Tol.

(in) Min. Tol.

(in) Max. Tol.

(in) Avg. Error

(%) X +0.007 +0.004 +0.009 +0.50 Y +0.011 +0.006 +0.017 +0.57 Z +0.005 -0.014 +0.022 +0.85

56

Page 69: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 9 contains the angular dimensional results and tolerances for the six prototypes. Each

angular dimension was obtained in Surfacer by taking average angles from each side face to the

top surface.

Table 9 Angular Dimensional Results with Machining Part

# Plane (deg)

Actual Inclination (deg)

Error (%)

#1 60 61.0 +1.67 45 49.2 +9.33 30 38.8 +29.33 15 15.5 +3.33

#2 60 59.0 -1.67 45 46.0 +2.22 30 34.0 +13.33 15 14.7 -2.00

#3 60 60.0 0.00 45 44.3 -1.56 30 33.0 +10.00 15 14.7 -2.00

#4 60 63.0 +5.00 45 41.0 -8.89 30 37.0 +23.33 15 14.1 -6.00

#5 60 62.0 +3.33 45 42.3 -6.00 30 33.0 +10.00 15 16.7 +11.33

#6 60 61.0 +1.67 45 45.3 +0.67 30 34.0 +13.33 15 14.8 -1.33

Table 10 includes the average angular inclinations and errors from Table 9, as well as the

angular bilateral tolerances for the prototypes.

57

Page 70: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 10 Angular Dimensional Results with Machining Summary Plane (deg)

Avg. Inclination (deg)

Min. Tol. (deg)

Max. Tol. (deg)

Avg. Error (%)

60 61.0 59.0 63.0 +1.67 45 44.7 41.0 49.2 -0.70 30 35.0 33.0 38.8 +16.56 15 15.1 14.1 16.7 +0.56

In order to analyse the surface roughness values for each build angle on the 3-axis machine,

the same six prototypes were analysed. Figure 31 illustrated the error distances used to calculate

the RMS surface roughness values, which are calculated from Equation (18). Table 11 includes

the RMS surface roughness, Rq, results for the six prototypes. Table 12 lists the RMS surface

roughness values calculated, compared to the theoretical roughness values calculated from

Equation (3). The plane angles in the table are given as the tangential build angles. The relation

between the normal, θN, and tangential, θT, build angles is described in Equation (19). Equation

(20) is used to find the population standard deviation, σ, for each side of each prototype. The

number of data points in the population is N, xi represents each data point value, and _

x is the

mean of the corresponding population.

2

1

1 N

q ii

R xN =

= ∑ (18)

90N Tθ θ= − (19)

2_

1

1 N

ii

x xN

σ=

⎛ ⎞= −⎜ ⎟⎝ ⎠

∑ (20)

58

Page 71: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 11 Average Surface Roughness Results with Machining Part

# Plane (deg)

Theoretical Ra,t(microns)

Rq (microns)

Error(%)

σ (microns)

data ± 1σ (%)

data ± 2σ(%)

#1 90 0 5055 na 5055 62.6 97.1 60 4330 5629 +30.00 5629 65.6 96.8 45 3536 4131 +16.84 4131 67.5 95.6 30 2500 2833 +13.32 2133 69.2 96.0 15 1294 2459 +90.02 2459 59.4 98.4

#2 90 0 3842 na 3840 65.8 97.0 60 4330 4359 +0.67 4359 69.2 95.2 45 3536 3082 -12.83 3082 68.5 95.4 30 2500 4596 +83.84 4596 65.3 96.5 15 1294 1311 +1.31 1311 76.5 96.8

#3 90 0 3226 na 3226 69.0 95.1 60 4330 4923 +13.69 4923 72.9 95.9 45 3536 3650 +3.24 3650 70.3 94.9 30 2500 3257 +30.28 3257 69.6 96.1 15 1294 1289 -0.39 1289 69.3 95.5

#4 90 0 4607 na 4607 65.9 95.8 60 4330 4165 -3.81 4165 72.7 96.4 45 3536 3423 -3.18 3423 74.4 95.6 30 2500 2381 -4.76 2381 70.6 95.5 15 1294 1529 +18.15 1529 85.9 96.1

#5 90 0 4125 na 4125 67.4 95.6 60 4330 3950 -8.78 3949 66.4 95.6 45 3536 3734 +5.61 3734 67.8 95.7 30 2500 2639 +5.56 2639 68.7 96.7 15 1294 1658 +28.12 1658 77.5 96.2

#6 90 0 6866 na 6866 62.6 98.9 60 4330 4957 +14.48 4957 67.2 95.7 45 3536 4445 +25.72 4445 65.7 96.5 30 2500 2320 -7.20 2320 68.0 96.0 15 1294 2219 +71.47 2219 67.7 96.6

Table 12 Average Surface Roughness Results with Machining Summary

Plane (deg)

Theoretical Ra,t

(microns)

Average Rq

(microns) Error (%)

90 0 4620 n/a 60 4330 4664 +7.71 45 3536 3744 +5.90 30 2500 3004 +20.17 15 1294 1744 +34.78

59

Page 72: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Most of the standard deviation values are equal to the corresponding average surface

roughness values because population means, _

x , are all near zero. This is because the raw data

for each plane are distances measured from the best fit plane. For Gaussian distributions, 68.27%

of the data falls within ±1σ, and 95.45% of the data falls within ±2σ.

6.3 Topless Pyramid Results without Machining

After the machined prototypes were produced, six more consecutive prototypes were made

without machining. These parts were made for future comparisons to parts made on the 5-axis

hexapod to determine whether stair stepping can be eliminated. The same procedure was used to

capture the linear, angular, and surface accuracy of the un-machined prototypes, as the machined

prototypes. As previously mentioned, the only difference in the software that generated the G-

code is that the extrudate is deposited to directly achieve the final part dimensions. Table 13

contains the linear results, and Table 14 includes the summaries in the same format as the results

with machining. The angular dimensional results are listed in Table 15, with the summaries in

Table 16. The average surface roughness results are included in Table 17, with the summaries in

Table 18.

60

Page 73: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 13 Linear Dimensional Results without Machining Part

# Direction Nominal Dim

(in) Actual Dim

(in) Tolerance

(in) Error (%)

#7 X 1.440 1.448 0.008 +0.56 Y 2.000 2.004 0.004 +0.20 Z 0.560 0.543 -0.017 -3.04

#8 X 1.440 1.438 -0.002 -0.14 Y 2.000 2.004 0.004 +0.20 Z 0.560 0.549 -0.011 -1.96

#9 X 1.440 1.430 -0.010 -0.69 Y 2.000 1.993 -0.007 -0.35 Z 0.560 0.564 0.004 +0.71

#10 X 1.440 1.447 0.007 +0.49 Y 2.000 2.009 0.009 +0.45 Z 0.560 0.550 -0.010 -1.79

#11 X 1.440 1.443 0.003 +0.21 Y 2.000 2.006 0.006 +0.30 Z 0.560 0.566 0.006 +1.07

#12 X 1.440 1.430 -0.010 -0.69 Y 2.000 1.988 -0.012 -0.60 Z 0.560 0.563 0.003 +0.54

Table 14 Linear Dimensional Results without Machining Summary

Direction Avg. Error

(in) Min. Tol.

(in) Max. Tol.

(in) Avg. Error

(%) X -0.001 -0.010 +0.008 -0.05 Y +0.002 -0.012 +0.009 +0.03 Z -0.004 -0.017 +0.006 -0.74

61

Page 74: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 15 Angular Dimensional Results without Machining Part

# Plane (deg)

Actual Inclination (deg)

Error (%)

#7 60 62.0 +3.33 45 45.0 0.00 30 30.0 0.00 15 16.3 +8.67

#8 60 61.0 +1.67 45 47.0 +4.44 30 36.0 +20.00 15 15.3 +2.00

#9 60 62.0 +3.33 45 43.0 -4.44 30 31.0 +3.33 15 15.7 +4.67

#10 60 63.0 +5.00 45 44.0 -2.22 30 31.0 +3.33 15 16.5 +10.00

#11 60 63.0 +5.00 45 42.0 -6.67 30 30.0 0.00 15 18.5 +23.33

#12 60 63.0 +5.00 45 41.0 -8.89 30 31.0 +3.33 15 16.6 +10.67

Table 16 Angular Dimensional Results without Machining Summary Plane (deg)

Average Inclination (deg)

Min. Tol. (deg)

Max. Tol. (deg)

Avg. Error (%)

60 62.3 61.0 63.0 +3.89 45 43.7 41.0 47.0 -2.96 30 31.5 30.0 36.0 +5.00 15 16.5 15.3 18.5 +9.89

62

Page 75: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 17 Average Surface Roughness Results without Machining Part

# Plane (deg)

Theoretical Ra,t (microns)

Rq (microns)

Error (%)

σ (microns)

data ± 1σ (%)

data ± 2σ(%)

#7 90 0 8155 na 8152 67.9 96.4 60 4330 13652 -60.59 13652 72.0 94.3 45 3536 15273 -46.00 15271 67.0 96.4 30 2500 7969 -60.16 7969 69.8 95.5 15 1294 7088 -31.54 7088 74.2 95.0

#8 90 0 6855 na 6855 73.4 94.7 60 4330 18550 -46.45 18550 78.9 96.6 45 3536 14410 -49.05 14410 66.9 96.0 30 2500 8601 -57.00 8601 72.6 96.3 15 1294 8199 -20.80 8199 76.9 96.0

#9 90 0 8881 na 8881 74.3 94.4 60 4330 11598 -66.52 11598 69.2 95.5 45 3536 13998 -50.51 13998 64.9 96.9 30 2500 7890 -60.55 7890 65.6 96.6 15 1294 6577 -36.47 6577 75.9 94.9

#10 90 0 10978 na 10978 79.1 96.9 60 4330 11698 -66.23 11697 69.4 95.4 45 3536 13886 -50.91 13886 65.1 96.2 30 2500 9018 -54.91 9018 69.5 96.5 15 1294 6870 -33.64 6870 75.4 95.6

#11 90 0 10268 na 10268 69.3 96.2 60 4330 13119 -62.13 13119 71.0 94.4 45 3536 16112 -43.04 16111 65.1 96.7 30 2500 8768 -56.16 8768 65.0 96.6 15 1294 8729 -15.68 8729 71.3 95.4

#12 90 0 8009 na 8009 73.4 95.4 60 4330 11785 -65.98 11785 73.1 94.7 45 3536 13671 -51.67 13671 67.4 95.2 30 2500 8853 -55.74 8853 64.3 97.3 15 1294 7202 -30.43 7202 72.1 94.8

Table 18 Average Surface Roughness Results without Machining Summary Plane (deg)

Theoretical Ra,t (microns)

Average Rq (microns)

Error (%)

90 0 8717 n/a 60 34641 13400 -61.32 45 28284 14558 -48.53 30 20000 8517 -57.42 15 10353 7444 -28.09

63

Page 76: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 7

7.1 Hexapod Introduction

In order to create prototypes with 5-axis control, a custom hexapod machine will provide

the motion of the extruder. This machine was designed and built by Dr. Chan of the Mechanical

Engineering Department at Ryerson University. The initial intention for the hexapod was to

mount a laser for 3D laser scanning parts for reverse engineering purposes. The hexapod consists

of a triangular base that is controlled by six linear actuators. The linear actuators are extended

and retracted with the rotational motion of a threaded rod. The threaded rods are rotated by servo

motors that are actuated by a complex control system.

The servo motor controllers are driven by custom software developed by Dr. Chan written

in Visual Basic. The software inputs 5-axis G-code with X, Y, Z, U, and V coordinates and a

desired feed rate. The X, Y, and Z coordinates are Cartesian 3-axis coordinates, and the U and V

coordinates indicate the pitch and roll angles. The geometric calculations used in the software to

convert the G-code to linear actuator arm lengths were derived by Dr. Chan, and are beyond the

scope of this report.

To allow the triangular base to move, the linear actuators are mounted on basic sheet metal

universal joints at each end. These universal joints were anticipated to rigid enough since all the

loads in the linear actuators are in tension. Figure 32 illustrates the basic layout of the hexapod

machine. This picture was taken while the machine was still in the condition it was at the outset

of the current FDM extrusion research. Figure 33 shows a close-up view of the lower universal

joints.

64

Page 77: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 32 Initial Hexapod Condition

Figure 33 Hexapod Base

65

Page 78: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

The research schedule was made with the assumption that the hexapod would be running

and calibrated by January 2006. As a result, all previous 3-axis testing was concluded in

December 2005. Figures 34 and 35 were taken when the extruder was mounted the first week of

January. Mounts were designed and manufactured that allowed adjustable positional control, so

the deposition nozzle could be centred on the triangular hexapod base. Instead of producing 5-

axis prototypes, effort was put forward to getting the hexapod machine operational.

Mounts

Figure 34 Extruder Mounted on Hexapod

66

Page 79: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 35 Mounted Extruder Nozzle from Underneath

7.2 Electrical Work Done

Before calibration of the machine could be done, the electrical system had to be installed.

Dr. Chan manufactured the electronic control boards, but they still needed to be wired together,

and wired to the motors. The motors and control boards also required a power supply. A power

supply was obtained that had 5 VDC up to 3 amps, and 24 VDC up to 8 amps output, from a 120

VAC input. The stock input to the power supply was a female three-pronged connector, to which

a male connector was not available. The power supply was taken apart, the stock female

67

Page 80: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

connector removed, and a three standard tree prong plug was cut and hardwired into the power

supply.

The 5 VDC was required for the control logic and to power the controllers, and the 24

VDC was required to power each servo drive, and the servo motors for the linear actuators.

Fuses were placed in the 24 VDC output lines of the power supply as illustrated in Figure 36.

These fuses were installed to protect the power supply from potential back electro magnetic

force (EMF) power spikes. The fuse for the 5 VDC outputs was placed near the control boards

as can be seen later in Figure 41 in a white plastic fuse holder.

Figure 36 Fused Power Supply

68

Page 81: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Each stepping motor is equipped with an optically isolated encoder. Each motor has six

wires in total required for motion. The red and black wires in Figure 37 are the positive and

negative 24 VDC wires respectively that supply power the motor armatures. These wires come

from the control boards. The other four wires on the motor are for the operation of the optical

encoder. The blue and green wires are the 5 VDC positive and ground wires that power the

encoder. The white and yellow are Phase A and Phase B encoder wires respectively.

Green

Blue

Black

Red

Yellow

White

Figure 37 Motor Wiring

Gecko drive DC servo drivers “Geckos” were selected to control the linear actuator

stepping motors for their robustness, simplicity, and affordability. The Geckos have three

69

Page 82: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

externally adjustable pots for Limit, Damping, and Gain for system response control stability.

These values are all initially set to the midpoints of the pots, but can be adjusted to optimise

system response. There are twelve screw clamp connectors on the end for input and output wires.

These are numbered from one to twelve numbered from left to right respectively in Figure 38.

Table 19 consists of a summary of the current Gecko wiring, including the screw connector

numbers and labels on the Gecko, and the colour and location of the corresponding wires.

Figure 38 Gecko Servo Drive Controller

70

Page 83: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Table 19 Gecko Wiring Inputs and Outputs # Label Wire to/from Wire Color1 Power Ground - 24 VDC ground from power supply Black 2 +18 to 80 VDC + 24 VDC from power supply Red 3 Arm - - 24 VDC ground to stepping motor Black 4 Arm + + 24 VDC to stepping motor Y/G/Red 5 Err/Res Jumpered to Enc + Brown 6 Enc - - 5 VDC Ground for stepping motor encoder Green 7 Enc + + 5 VDC to stepping motor encoder Blue/Black 8 Phase A To Phase A of stepping motor encoder White 9 Phase B To Phase B of stepping motor encoder Yellow/Red10 Dir Direction from PIC chip control board Black 11 Step Step from PIC chip control board Brown 12 Common/+5VDC + 5VDC from power supply Brown/Black

Table 19 includes a reference to a PIC chip control board. This board was also

manufactured by Dr. Chan, and is shown in Figure 39. A PIC chip is a micro controller, and

stands for Peripheral Interface Controller. It is programable to perform required computation and

communication tasks. The purpose of each PIC chip board is to instruct its respective Gecko

how many pulses, and in which direction, to move its linear actuator stepping motor. The pic

chip board recieves 5 VDC from the power supply and communications from the Master PIC

chip board. The Master PIC chip board is shown in Figure 40. The role of the Master PIC chip is

to receive data from the communication board, and send the appropriate instructions to each PIC

chip. The communication board is the leftmost white board in Figure 41. This board recives data

from the computer, and transmits it to the Master PIC chip board. Once the wiring and

communications were working properly, the wiring was neatly routed from each linear actuator

stepping motor to the control boards as seen in Figure 42. This was done to keep all wires away

from mechanical moving components, and out of the the way so the build area can be observed

from all sides of the machine.

71

Page 84: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

PIC CHIP

Figure 39 PIC Chip Board

72

Page 85: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Master PIC Chip

Figure 40 Master PIC Chip Board

73

Page 86: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

CommunicationsBoard

5 VDC Fuse

Figure 41 Communication Board

74

Page 87: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 42 Wiring Routed Neatly

7.3 Mechanical Work Done

Once the controls system was in place, initial motion testing commenced. It was

immediately apparent that the hexapod was not as rigid as anticipated. To alleviate some of the

vibrations, the table was drilled, tapped, and the frame was bolted down to aluminium table base.

This helped reduce vibrations.

When the linear actuators were moved, one of the lower universal joints interfered with

the gear drive stepping motor. To correct this, a new universal joint was made as illustrated in

Figure 43. The new universal joint was also made of sheet metal, and designed so that the

75

Page 88: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

original geometry was maintained. Interference may still be an issue at the maximum rotation

angles of the hexapod.

Figure 43 Motor Clearance Modification

Further motion testing revealed other mechanical flaws. An internally threaded bushing

inside one of the linear actuators jammed on the threaded rods and stuck. When the linear

actuator was disassembled, the distorted plastic bushing was replaced with a custom made brass

one, which allowed the linear actuator to extend and retract freely. As a result of this jamming,

the corresponding upper universal joint failed. Another sheet metal universal joint was made, as

seen in Figure 44, which maintained the original geometry. The linear actuators stepping motor

76

Page 89: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

shafts were also shortened and remounted to eliminate backlash associated with the motor

motion when changing rotational directions. The brackets holding the linear actuators body to

the universal joint was also riveted and clamped to the actuator body as the original threads

holding them together stripped because of the vibrations. These modifications can also be seen

in Figure 44.

Figure 44 Replacement Universal Joint

7.4 5-axis G-Code and MasterCAM Post Processor Modifications

Generating G-code for a 5-axis machine is more complicated than creating 3-axis code.

With 3-axis G-code, the CAD model can be sliced into layers, and then the G-code can be

generated to fill in each slices cross section. With 5-axis deposition, the extrudate is deposited on

77

Page 90: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

the surface of the previously deposited layer over the entire part. This means that the slices are

not simply taken vertically in the Z-direction. Each deposited layer builds up the part by adding

a shell, of one layer thickness, to the previous layer.

For initial 5-axis prototype parts built by the hexapod, the strategy will be to just deposit

the final shell layer thickness for a topless pyramid. The core of the part will be manufactured by

conventional machining methods. This way the G-code generation was simplified, and the stair

stepping elimination on the external surfaces can still be studied. To generate the outer shell 5-

axis G-code, MasterCAM Mill computer aided manufacturing, CAM, software was used.

MasterCAM includes several 5-axis machining modules including: Curve5ax, Drill5ax,

Swarf5ax, Msurf5ax, and Flow5ax. Flow5ax was used because it was easiest to learn about in

the help files, although each module is capable of creating the tool paths.

MasterCAM’s intended purpose is to generate G-code for machining, not for RP

deposition path generation. For this reason, a slightly different approach is required to setting up

the MasterCAM tool paths. To generate the G-code for the outermost layer of the part, the CAD

model must be one external layer thickness smaller than the final part. To generate the

appropriate depositions paths, an end mill tool must be selected with the same diameter as the

extrudate. Machining overlap must also be set to 0% so the road widths do not overlap. Flow5ax

allows the user to select the order the tool path will be generated for each face. The options are

also presented to choose the start point, traversal direction, maximum axis angles for each

surface to ensure continuity, and the machine can tilt appropriately. If the part surface angle

exceeds the set machine axis limits, MasterCAM compensates to create equivalent road widths.

An example of a tool path with all of the above mentioned characteristics is shown in Figure 45.

78

Page 91: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Figure 45 MasterCAM 5-axis Tool Path

Once the desired tool path is created, a post processor generates the corresponding G-

code. MasterCAM comes with a generic 5-axis post processor called MPGEN5X, which is

capable of generating G-code for various commercially available 5-axis machines. There are

several ways to get 5-axis control in 5-axis machines. An example is a three axis Cartesian tool

head that rotates in a 4th axis, and is coupled with a rotating part holding base. Another example

would be a standard 3-axis machine, coupled with a part holding base that has pitch and roll

capabilities. MPGEN5X does not include, and MasterCAM does not make, a post processor for

a stationary part holding base, where the tool holder contributes all 5-axis motion control.

However, the MPGEN5X post processor includes comments indicating the areas of the code that

can be modified.

79

Page 92: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

MasterCAM post processors have three files associated with them. These file extensions

are .pst, .txt, and .psb, and all must have to have same name and be in same directory. Only

the .pst file requires modification to shape the output G-code produced. As the .pst file is fairly

long, only the modified code within the post processor is available, with indicated modifications,

in Appendix B.

80

Page 93: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Chapter 8

8.1 Discussion

The objective of this study was to investigate the possibility of eliminating stair stepping

errors associated with 3-axis rapid prototyping. The groundwork has been laid out for multi-axis

testing. Currently, an FDM module, including a machining module, has been built. The modules

were mounted on a 3-axis CNC machine to produce prototypes. The shape of the prototypes

being produced was that of a topless pyramid. Custom MATLAB programs were written that

generate the G-code that drives the 3-axis CNC machine. Results have been gathered from the

topless pyramid prototypes built to assess the linear and angular accuracies, as well as the

surface roughness of the prototypes produced for several build angles.

Due to the vibrations during machining, the Z-axis table limited the robustness of the

overall system. Six prototypes were produced before maintenance was required to the Z-axis

table. To maintain the integrity of the results, only consecutively made prototypes were analysed.

After the maintenance, timeline restraints prevented re-making a greater quantity of consecutive

prototypes with machining. As the machine was the only capable of producing six prototypes

with machining, six prototypes were created without machining, so the averaged results of each

would be analogous.

Producing parts with 5-axis deposition requires building up the core volume of the

prototype, using 3-axis or 5-axis deposition, and then using full 5-axis deposition to create the

shell. Multi-axis machining path generation in MasterCAM was used to generate the G-code.

The set-up for generating 5-axis G-code by modifying a MasterCAM post processor was

presented. To get the 5-axis hexapod machine up and running, the electrical system was wired,

81

Page 94: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

and the major mechanical flaws highlighted for future modifications, which are listed in the final

section of this thesis.

8.2 Results and Conclusions

Results for 3-axis prototypes, with and without machining, were gathered to be used for

comparison with results gathered from 5-axis prototypes produced in the future. The prototypes

produced for comparison with these results should use the same build parameters such as feed

rate, nozzle diameter, temperatures, and all other deposition parameters. As expected, the surface

roughness data gathered for the prototypes made are better for the parts that were machined.

Without machining, the parts exhibit stair steps of a full layer thickness. The parts with

machining only have stair steps as a result of the machining steps. The angular data gathered

shows that the average inclinations of all the parts closely match the theoretical values. This

shows that the path generation code properly slices the CAD model and determines the correct

cross section parameters to deposit for each layer. The only unexpected results were that the

linear tolerances were tighter for the deposition only prototypes. This can be attributed to tight

and consistent deposition extrudate accuracy and control. An example of the consistency of the

new extruder is that on one day during testing, the extruder deposited material for over five

hours without any discontinuities, even when new threaded rods were fed in.

The angular results are acceptable for all of the prototypes made with and without

machining as the maximum and minimum bilateral tolerances all straddle the ideal inclination

angles. Linear results for deposition without machining also all have bilateral tolerances that are

on either side of the CAD model dimensions. These results show tendencies of being

82

Page 95: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Statistically independent, (SI), which attributes the fluctuations to random errors. There are not

enough measured values in each axis to perform statistical run tests, as a minimum of 10

measured values are needed to prove statistical independence of the data. To prove statistical

independence of the data, a higher number of consecutively built prototypes are required.

The X and Y linear results for the machined prototypes in Table 8 are all positive one-

sided bilateral tolerances. Without using the run test, it is obvious that there are external non-

random errors involved in the machining, and that the data is not SI as there is only one positive

run grouping in the data. An example of a possible non-random error is tool deflection, which

would account for the parts being bigger in the X and Y directions, but not in the Z-axis.

Compensation in the G-code software could be implemented to correct for these errors.

The surface roughness results with machining in Table 12 have rougher surfaces than the

theoretical values. The surface roughness results without machining in Tables 18 are smoother

than the theoretical, but much rougher than with machining as expected. Campbell [20]

produced a truncheon via several RP methods and experimentally determined that deposition

surface roughness is half of the theoretically predicted values without machining. Campbell [20]

suggests an empirically modified version of Equation (3) in this paper, by a factor of ½, for

better surface roughness prediction. This empirical modification shows consistency with the data

in Table 18 and explains the low surface roughness values measured in the prototypes without

machining.

The primary source of error during machining is due to a lack of rigidity of the Z-axis

build table. By including a counterweight to the table and another linear guide, vibrations

decreased. However, the design of the 3-axis machine does not lend itself to easy modification

of the Z-axis table. The results in this thesis were all obtained after these modifications.

Maintenance of the Z-axis table was required after the first six prototypes were built.

83

Page 96: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

In Table 20, the results from Table 1 have been modified to include minimum and

maximum tolerance data from Madahian [11] and from the results obtained during this thesis,

which are labelled Mason. The machines have also been ranked in order of ascending linear

tolerance ranges. Results from Madahian [11] without machining were not ranked as the

tolerances were not competitive. Although Mason without machining has the tightest tolerance

range, prototypes made with machining had much better surface finishes.

Table 20 FDM Machine Experimental Linear Accuracies

Rank Machine Min. Tol.

(in) Max. Tol.

(in) Tol. Range

(in) 1 Mason w/o machining -0.017 +0.009 0.026 2 Mason w/machining -0.014 +0.022 0.036 3 Dimension -0.030 +0.020 0.050 5 ZPrinter -0.024 +0.035 0.059 4 InVision -0.037 +0.045 0.082 6 Madahian w/machining -0.022 +0.076 0.098

n/a Madahian w/o machining +0.196 +0.265 0.069

As the ranked results in Table 20 indicate, the extrusion module developed during this

research produces prototypes with accuracies competitive to current leading FDM machines in

industry. Vibrations during machining compromise linear accuracy. However, the addition of a

machining module improves the surface quality of inclined planes. Machining allows for the use

of a larger nozzle orifice diameter to produce prototypes that match the CAD model geometry

better than deposition alone. The upgrade to using ABS as extrudate aligns this research with

industry standards, and the proposals for 5-axis deposition will further advance the technology

of RP.

8.3 Future Recommendations

84

Page 97: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

This study can be advanced by further developing the following items:

Before using the 3-axis machine again, the entire Z-axis table should be redesigned with

linear bearings on two sides of the build table to provide smoother motion.

Use a closed loop temperature controller to maintain the extrudate temperature at the nozzle.

Implement twelve zero-backlash universal joints to replace the sheet metal universal joints

on the hexapod. Since they will be smaller, these will also avoid the extruder stepping motor.

Replace the plastic threaded inserts in the hexapod’s linear actuators with brass ones for

smoother, more reliable, motion.

Use lead screws with anti-backlash nuts in the linear actuators to replace the threaded rod.

Develop calibration G-code for the hexapod to ensure accuracy and repeatability of the

machine before producing prototypes.

Adjust system stability controls on the Gecko drives to optimise the system response and

stability.

If time is not available to write full 5-axis G-code generating software, make several CAD

models, of decreasing size for the topless pyramid, and paste together the MasterCAM G-

code output using the modified post processor. To do this will involve determining the

size/shape of each CAD file so the part’s external surfaces are the correct geometry once all

layers are deposited.

85

Page 98: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Appendix A – Technical Drawings A1 – Extruder Drawings

86

Page 99: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

87

Page 100: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

88

Page 101: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

89

Page 102: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

90

Page 103: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

91

Page 104: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

92

Page 105: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

93

Page 106: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

94

Page 107: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

95

Page 108: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

96

Page 109: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

97

Page 110: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

98

Page 111: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

99

Page 112: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

100

Page 113: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

A2 – Hexapod Modifications

101

Page 114: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

102

Page 115: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

103

Page 116: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Appendix B – Source Code

B1 – MATLAB Deposition with Machining Path Generation Code

MAIN CODE Pyramid_Topless.M (sub-function codes follow) clc clear all nozzle_diameter = 5/64 %input('\n\nPlease input the nozzle orafice diameter (fraction or decimal) you are using: '); tic %Inputting Vertecies and normals [top_normal, top_face_vertecies, south_normal, south_face_vertecies, north_normal, north_face_vertecies, bottom_normal, bottom_face_vertecies, west_normal, west_face_vertecies, east_normal, east_face_vertecies] = input_vertecies; clc fprintf('Please wait while the G-Code is being Generated\n') % Find distance between top and bottom plane of prototype prototype_height = top_face_vertecies(1,3) - bottom_face_vertecies(1,3); % End Find distance between top and bottom plane of prototype % Caclulating side inclination angles from vertecies % Angle is defined as vertical to surface tangent (opposite to Directed Studies Report definition) west_angle = atan( (west_face_vertecies(1,1)-west_face_vertecies(2,1)) / (west_face_vertecies(1,3)-west_face_vertecies(2,3))); west_angle_displayed = round((180/pi)*west_angle); south_angle = atan( (south_face_vertecies(1,2)-south_face_vertecies(2,2)) / (south_face_vertecies(1,3)-south_face_vertecies(2,3))); south_angle_displayed = round((180/pi)*south_angle); east_angle = atan( (east_face_vertecies(1,1)-east_face_vertecies(2,1)) / (east_face_vertecies(2,3)-east_face_vertecies(1,3))); east_angle_displayed = round((180/pi)*east_angle); north_angle = atan( (north_face_vertecies(1,2)-north_face_vertecies(2,2)) / (north_face_vertecies(2,3)-north_face_vertecies(1,3))); north_angle_displayed = round((180/pi)*north_angle); % End Caclulating side inclination angles from vertecies % Calculate Cad Model (theoretical) volume (in^3) if west_angle_displayed==15 & south_angle_displayed==30 & east_angle_displayed==45 & north_angle_displayed==60 cad_model_volume = 0.8152; %(1.44x2) end % End Calculate Cad Model (theoretical) volume bottom_base = bottom_face_vertecies(1,1)-bottom_face_vertecies(3,1); bottom_length = bottom_face_vertecies(1,2)-bottom_face_vertecies(2,2); deposition_delay = 0.75; % sec machining_delay = 5*60;%sec layer_thickness = 0.080; nozzle_offset_value = 1.25; %(times current layer thickness)

104

Page 117: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

road_width = 0.080; deposition_overlap = 0.375*road_width; % Extra material deposited to compensate for round profile of deposition. % See "Machining Parameters.xls" for current calibrated offsets. X_offset = -3.318; Y_offset = -0.082; Z_offset = -0.764; X_loss_compensation = 0; Y_loss_compensation = 0.080; Z_loss_compensation = -0.025; X_offset = -3.318 + X_loss_compensation; Y_offset = -0.082 + Y_loss_compensation; Z_offset = -0.764 + Z_loss_compensation; Router_diameter = 0.250; XY_feed_rate = 6.0; Machining_feed_rate = 3.75; Z_feed_rate = 1.5; code_line_number = 10; data_points = 0; % Array for datapoints to be written to a text file. data_points_index = 1; fittest = 1; spindle_speed = 4; layer = 0; height_level = 0; X = 0; Y = 0; Z = 0.12; base_height = 0.080;%inch while height_level < prototype_height + base_height % Looping for every layer. %The Base is actually deposited in the negative heigh_level. %The +base_height is to deposit another layer on the top so it can be machined down to the correct height. layer = layer + 1; if height_level < prototype_height + base_height - layer_thickness %for every layer but the top. base = bottom_base - height_level*( tan(west_angle) + tan(east_angle) ); length = bottom_length - height_level*( tan(south_angle) + tan(north_angle) ); min_x = height_level*tan(west_angle); min_y = height_level*tan(south_angle); else %for the top extra deposited layer only. base = bottom_base - (height_level - layer_thickness)*( tan(west_angle) + tan(east_angle) ); length = bottom_length - (height_level - layer_thickness)*( tan(south_angle) + tan(north_angle) ); min_x = (height_level - layer_thickness)*tan(west_angle); min_y = (height_level - layer_thickness)*tan(south_angle); end cross_sectional_area = base*length; sectional_volume = cross_sectional_area*layer_thickness; nozzle_offset = nozzle_offset_value*layer_thickness; feed_rate = XY_feed_rate; % Setting to always do same feed rate as calibrated for the machine deposition_method = 2; % Setting to always do this deposition method if layer == 1 % print out setup G-Code. clc % fprintf('O Topless_Pyramid_G_Gode - Program Name\n') % fprintf(['N',num2str(code_line_number),' G20 (Inch mode)\n'])

105

Page 118: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

% code_line_number = code_line_number + 10; % fprintf(['N',num2str(code_line_number),' G90 (Absolute mode)\n']) % code_line_number = code_line_number + 10; % fprintf(['N',num2str(code_line_number),' G54 (Set coordinate system to part)\n']) % code_line_number = code_line_number + 10; % fprintf(['N',num2str(code_line_number),' G43 H1 (nozzle height compensation)\n']) %MUST DEFINE H1**********s*********** % code_line_number = code_line_number + 10; % ************************************************************************************************************* % This code is for adding a single layer base to the pyramid. % Must set Z=0 at Z=layer_thickness. Thus the first layer (the base) will be deposited in the -Z region. height_level = height_level - layer_thickness; Z = nozzle_offset - layer_thickness; X = -1.5; Y = -0.75; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Return to home) (-1.5,-0.75,Z)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + (0.5*road_width) - deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y-0.75 Z',num2str(Z),' F',num2str(XY_feed_rate),' (Move to initial position)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; nozzle_offset = nozzle_offset_value*layer_thickness; num_of_x_roads = ceil((base + (2*deposition_overlap)) / road_width); [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap); % Retracting nozzle to move to the next position X = bottom_base + (4*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract over)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = -0.75 - (1.25*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X;

106

Page 119: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = 0 - deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Z = Z + layer_thickness; fprintf(['\nN',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Retract up)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; feed_rate = XY_feed_rate; height_level = height_level + layer_thickness; % ************************************************************************************************************* Z = height_level + nozzle_offset; X = -1.5; Y = -0.75; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(XY_feed_rate),' (Return to home) (-1.5,-0.75,Z)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + (0.5*road_width) - deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y-0.75 Z',num2str(Z),' F',num2str(XY_feed_rate),' (Move to initial position)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end % Calling appropriate function to generate the G-Code for the fittest chromosome selected. nozzle_offset = nozzle_offset_value*layer_thickness; num_of_x_roads = ceil((base + (2*deposition_overlap)) / road_width); %if deposition_method == 1 % Zig-Zag Deposition. [outputs] = function(inputs). MUST be the same as IF statement below.

107

Page 120: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

% [code_line_number, X, Y, Z, data_points, data_points_index] = Zig_Zag(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap); %end if deposition_method == 2 % Perimeter Zig-Zag Deposition [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap); end %if deposition_method == 3 % Spiral Deposition % [code_line_number, X, Y, Z, data_points, data_points_index] = Spiral(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap); %end % Retracting nozzle to move to the next position X = bottom_base + (4*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract over)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = -0.75 - (1.25*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = -1.0; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Z = Z + layer_thickness; fprintf(['\nN',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Retract up)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = 0 - deposition_overlap; Y = -0.75; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Move back in)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z;

108

Page 121: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

data_points_index = data_points_index +1; feed_rate = XY_feed_rate; % Zig-Zag_Machining for machining down to the correct height. if height_level + layer_thickness > prototype_height + base_height % Only do it for the top surface. X = -3.0;%inch fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; fprintf(['N',num2str(code_line_number),' G04 X',num2str(machining_delay*10),' (dwell ',num2str(machining_delay/60),'min)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; height_level = height_level - layer_thickness; while height_level > prototype_height - (2*layer_thickness) height_level = height_level - 0.010; [code_line_number, X, Y, Z, data_points, data_points_index] = Zig_Zag_Machining(height_level, layer_thickness, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, nozzle_offset, code_line_number, data_points, data_points_index, feed_rate, Z_feed_rate, Machining_feed_rate, X_offset, Y_offset, Z_offset, Router_diameter, prototype_height, deposition_overlap, base_height); end height_level = height_level + (3*layer_thickness); end height_level = height_level + layer_thickness; save data_points.txt data_points -ASCII % Outputting data_points array to a text file for openening in Surfacer. data_points_index = data_points_index +1; % Creates a blank line to break up data cloud for each layer. Data file manipulation Steps next. % 1.Open data_points.txt % 2.Find and Replace "0.0000000e+000 0.0000000e+000 0.0000000e+000" with nothing (blank line) OR "***End Cloud***" not including quotes for either. % 3.Open in SURFACER with option Open File As: ASCII Delimited. end % Layer Loop %fprintf(['N',num2str(code_line_number),' G28 (Return to home (0,0,2.5)\n']) %code_line_number = code_line_number + 10; %fprintf(['N',num2str(code_line_number),' G49 (End Tool Height Compensation)\n'])

109

Page 122: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

%code_line_number = code_line_number + 10; %fprintf(['N',num2str(code_line_number),' M01 (End)\n']) %code_line_number = code_line_number + 10; % Perimeter_Machining for stairstep machining the angled sides. %[code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter_Machining(height_level, bottom_base, bottom_length, X, Y, Z, code_line_number, data_points, data_points_index, feed_rate, Z_feed_rate, Machining_feed_rate, X_offset, Y_offset, Z_offset, Router_diameter, prototype_height, north_angle, south_angle, east_angle, west_angle); % Perimeter_Machining_TopDown for stairstep machining the angled sides. [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter_Machining_TopDown(height_level, bottom_base, bottom_length, X, Y, Z, code_line_number, data_points, data_points_index, feed_rate, Z_feed_rate, Machining_feed_rate, X_offset, Y_offset, Z_offset, Router_diameter, prototype_height, north_angle, south_angle, east_angle, west_angle, base_height); feed_rate = XY_feed_rate; fprintf(['\n\nN',num2str(code_line_number),' M02 (End Program and Rewind)\n\n']) save data_points.txt data_points -ASCII % Outputting data_points array to a text file for openening in Surfacer. data_points_index = data_points_index +1; % Creates a blank line to break up data cloud for each layer. Data file manipulation Steps next. % 1.Open data_points.txt % 2.Find and Replace "0.0000000e+000 0.0000000e+000 0.0000000e+000" with nothing (blank line) OR "***End Cloud***" not including quotes for either. % 3.Open in SURFACER with option Open File As: ASCII Delimited. toc SUB-FUNCTION import_verticies.M

function [top_normal,top_face_vertecies,south_normal,south_face_vertecies,north_normal,north_face_vertecies,bottom_normal,bottom_face_vertecies,west_normal,west_face_vertecies,east_normal,east_face_vertecies] = input_vertecies %Inputting Vertecies and normals in a function [top_normal,top_face_vertecies,south_normal,south_face_vertecies,north_normal,north_face_vertecies,bottom_normal,bottom_face_vertecies,west_normal,west_face_vertecies,east_normal,east_face_vertecies] = input_vertecies (dummy) % PROCEDURE FOR FORMATTING THE .STL FILE FOR THIS INPUT % 1. Save CAD model as .stl format (ASCII, Inches, Coarse, should be 12 triangles, check off "Do not translate STL output data to positive space", output coordinate system = default. % 2. Open the .stl file and Remove all text % 3. Convert all coordinates to 3 decimal places, no exponental form. Use Find-Replace function for all numbers in Note Pad to be consistant with rounding. % 4. The numbers should be in formated blocks of 4 lines (3 numbers per line.) These lines are i.surface normal ii.first vertex iii.second vertex iV.third vertex.

110

Page 123: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

% 5. Remove the 2, 4, 6,.... blocks. These blocks are the second triangles that make up each side. The .m file only takes one triangle per side as the vertecies of one triangle provides sufficient information to process the coordinates of each side. % 6. Save the formatted .stl file to .txt and put in the matlab directory (E:\matlabR12\work) with the .m files. importdata('Pyramid_topless_15_30_45_60_90_1.44x2.txt'); vertecies = ans; top_normal = vertecies(1,:); top_face_vertecies(1,:) = vertecies(2,:); top_face_vertecies(2,:) = vertecies(3,:); top_face_vertecies(3,:) = vertecies(4,:); south_normal = vertecies(5,:); south_face_vertecies(1,:) = vertecies(6,:); south_face_vertecies(2,:) = vertecies(7,:); south_face_vertecies(3,:) = vertecies(8,:); north_normal = vertecies(9,:); north_face_vertecies(1,:) = vertecies(10,:); north_face_vertecies(2,:) = vertecies(11,:); north_face_vertecies(3,:) = vertecies(12,:); bottom_normal = vertecies(13,:); bottom_face_vertecies(1,:) = vertecies(14,:); bottom_face_vertecies(2,:) = vertecies(15,:); bottom_face_vertecies(3,:) = vertecies(16,:); west_normal = vertecies(17,:); west_face_vertecies(1,:) = vertecies(18,:); west_face_vertecies(2,:) = vertecies(19,:); west_face_vertecies(3,:) = vertecies(20,:); east_normal = vertecies(21,:); east_face_vertecies(1,:) = vertecies(22,:); east_face_vertecies(2,:) = vertecies(23,:); east_face_vertecies(3,:) = vertecies(24,:); %End Inputting Vertecies and Normal vertecies SUB-FUNCTION Perimeter.M function [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap) perimeter_slow_down = 0.75; %For with machining. Y_deposition_compensation = 0; %in with and without machining. deposition_radius = 0; %For with machining. deposition_overlap = 0; %actually set in Pyramid_Topless, but set to 0 here for with machining.

111

Page 124: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Z = height_level + nozzle_offset; X = min_x + deposition_radius - deposition_overlap; Y = min_y + deposition_radius - deposition_overlap - Y_deposition_compensation; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(perimeter_slow_down*feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = min_y + length - deposition_radius + deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + base - deposition_radius + deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = min_y + deposition_radius - deposition_overlap - Y_deposition_compensation; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + road_width; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y;

112

Page 125: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = min_y + road_width + deposition_radius - Y_deposition_compensation; for road_pass_number = 1 : (num_of_x_roads - 3) % "-3" because 2 are deposited in the perimeter, and the thrid because it is already in position for the first. X = min_x + (road_pass_number*road_width) - deposition_radius; if road_pass_number > 1 % To skip first lower left point of the zig zag pattern (already at the correct X first time). fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end if Y == min_y + road_width + deposition_radius - Y_deposition_compensation % Zig-Zagging to fill in section. Y = min_y + length - road_width - deposition_radius; else Y = min_y + road_width + deposition_radius - Y_deposition_compensation; end if X > (base + min_x - (1.15*road_width) - deposition_radius) % Deposits slower if there is < 15% of a road gap. fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(0.75*feed_rate),' (Move)\n']) else % Deposit at normal speed fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) end code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end if X < (base + min_x - (1.25*road_width) - deposition_radius) % Deposits another road if there is < 25% of a road gap. road_pass_number = road_pass_number + 1; X = min_x + (road_pass_number*road_width) - deposition_radius; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n'])

113

Page 126: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; if Y == min_y + road_width + deposition_radius - Y_deposition_compensation % Zig-Zagging to fill in section. Y = min_y + length - road_width - deposition_radius; else Y = min_y + road_width + deposition_radius - Y_deposition_compensation; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end SUB-FUNCTION Zig_Zag_Machining.M function [code_line_number, X, Y, Z, data_points, data_points_index] = Zig_Zag_Machining(height_level, layer_thickness, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, nozzle_offset, code_line_number, data_points, data_points_index, feed_rate, Z_feed_rate, Machining_feed_rate, X_offset, Y_offset, Z_offset, Router_diameter, prototype_height, deposition_overlap, base_height) fprintf('(Begin Machining)\n') Overlap = 1.25; Router_diameter = Router_diameter/Overlap; Y = Y_offset - (3*Router_diameter); X = min_x + X_offset - (0.5*Router_diameter) - deposition_overlap; % Slightly left of first road width num_of_x_roads = ceil((base + (2*deposition_overlap)) / Router_diameter) + 1; % Using overlap fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move to initial XY)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Z = height_level + layer_thickness + Z_offset + base_height; %this one is for machining all layers.

114

Page 127: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Move down)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; for road_pass_number = 1 : num_of_x_roads prev_Y = Y; if Y == min_y + Y_offset + length + Router_diameter % Zig-Zagging to fill in section. Y = min_y + Y_offset - Router_diameter; else Y = min_y + Y_offset + length + Router_diameter; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(Machining_feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; prev_X = X; X = min_x + X_offset + (road_pass_number*Router_diameter) - (0.5*Router_diameter); % Centred on road width fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(Machining_feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end X = (X_offset - (0.5*Router_diameter)); Y = (Y_offset - (2*Router_diameter)); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move into position for Perimeter Machining)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; %end Router_diameter = Router_diameter*Overlap; % Resetting back to actual Router_diameter from overlap compensation. fprintf('(End Machining)\n\n')

115

Page 128: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

SUB-FUNCTION Perimeter_Machining_TopDown.M

function [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter_Machining_TopDown(height_level, bottom_base, bottom_length, X, Y, Z, code_line_number, data_points, data_points_index, feed_rate, Z_feed_rate, Machining_feed_rate, X_offset, Y_offset, Z_offset, Router_diameter, prototype_height, north_angle, south_angle, east_angle, west_angle, base_height) perimeter_layer_thickness = 0.010; Perimeter_Cuts = ceil(prototype_height/perimeter_layer_thickness); Perimeter_Machining_feed_rate = 7.5; for perimeter_layer = 0 : (Perimeter_Cuts + 10) %+8 to cut the base, +2 to cut into the base. X = X - (0.5*Router_diameter); if abs(X) <= 0.001 % DeskNC can't read exponential terms. X = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(Perimeter_Machining_feed_rate),' (Move Left)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Z = Z_offset + prototype_height - (perimeter_layer*perimeter_layer_thickness); if abs(Z) <= 0.001 Z = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Move Into Perimeter_Machining Position)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = X + (0.5*Router_diameter); if abs(X) <= 0.001 % DeskNC can't read exponential terms. X = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(Perimeter_Machining_feed_rate),' (Move Right)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; if perimeter_layer <= Perimeter_Cuts current_base = bottom_base - (Perimeter_Cuts - perimeter_layer)*perimeter_layer_thickness*( tan(west_angle) + tan(east_angle) );

116

Page 129: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

current_length = bottom_length - (Perimeter_Cuts - perimeter_layer)*perimeter_layer_thickness*( tan(south_angle) + tan(north_angle) ); current_min_x = (Perimeter_Cuts - perimeter_layer)*perimeter_layer_thickness*tan(west_angle); current_min_y = (Perimeter_Cuts - perimeter_layer)*perimeter_layer_thickness*tan(south_angle); else % For cutting the base. current_base = bottom_base; current_length = bottom_length; current_min_x = 0; current_min_y = 0; end % Machining CounterClockWise Y = Y_offset + current_min_y - (0.5*Router_diameter); if abs(Y) <= 0.001 Y = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(Perimeter_Machining_feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = X_offset + current_min_x + current_base + (0.5*Router_diameter); if abs(X) <= 0.001 % DeskNC can't read exponential terms. X = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = Y_offset + current_min_y + current_length + (0.5*Router_diameter); if abs(Y) <= 0.001 Y = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = X_offset + current_min_x - (0.5*Router_diameter); if abs(X) <= 0.001 % DeskNC can't read exponential terms. X = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1;

117

Page 130: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

Y = Y_offset + current_min_y - (0.5*Router_diameter); if abs(Y) <= 0.001 Y = 0; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(Perimeter_Machining_feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end Z = 0.04; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Move Up)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1;

118

Page 131: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

B2 – MATLAB Deposition Only Path Generation Code

MAIN CODE Pyramid_Topless_Deposition_Only.M (sub-function codes follow) clc clear all nozzle_diameter = 5/64 %input('\n\nPlease input the nozzle orafice diameter (fraction or decimal) you are using: '); tic %Inputting Vertecies and normals [top_normal, top_face_vertecies, south_normal, south_face_vertecies, north_normal, north_face_vertecies, bottom_normal, bottom_face_vertecies, west_normal, west_face_vertecies, east_normal, east_face_vertecies] = input_vertecies; clc fprintf('Please wait while the G-Code is being Generated\n') % Find distance between top and bottom plane of prototype prototype_height = top_face_vertecies(1,3) - bottom_face_vertecies(1,3); % End Find distance between top and bottom plane of prototype % Caclulating side inclination angles from vertecies % Angle is defined as vertical to surface tangent (opposite to Directed Studies Report definition) west_angle = atan( (west_face_vertecies(1,1)-west_face_vertecies(2,1)) / (west_face_vertecies(1,3)-west_face_vertecies(2,3))); west_angle_displayed = round((180/pi)*west_angle); south_angle = atan( (south_face_vertecies(1,2)-south_face_vertecies(2,2)) / (south_face_vertecies(1,3)-south_face_vertecies(2,3))); south_angle_displayed = round((180/pi)*south_angle); east_angle = atan( (east_face_vertecies(1,1)-east_face_vertecies(2,1)) / (east_face_vertecies(2,3)-east_face_vertecies(1,3))); east_angle_displayed = round((180/pi)*east_angle); north_angle = atan( (north_face_vertecies(1,2)-north_face_vertecies(2,2)) / (north_face_vertecies(2,3)-north_face_vertecies(1,3))); north_angle_displayed = round((180/pi)*north_angle); % End Caclulating side inclination angles from vertecies % Calculate Cad Model (theoretical) volume (in^3) if west_angle_displayed==15 & south_angle_displayed==30 & east_angle_displayed==45 & north_angle_displayed==60 cad_model_volume = 0.8152; %(1.44x2) end % End Calculate Cad Model (theoretical) volume bottom_base = bottom_face_vertecies(1,1)-bottom_face_vertecies(3,1); bottom_length = bottom_face_vertecies(1,2)-bottom_face_vertecies(2,2); deposition_delay = 0.75; % sec layer_thickness = 0.080; nozzle_offset_value = 1.25; %(times current layer thickness) road_width = 0.080; deposition_overlap = 0; XY_feed_rate = 6.0; Z_feed_rate = 1.5; code_line_number = 10; fittest = 1;

119

Page 132: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

data_points = 0; % Array for datapoints to be written to a text file. data_points_index = 1; spindle_speed = 4; layer = 0; height_level = 0; X = 0; Y = 0; Z = 0.12; base_height = 0.080;%inch while height_level < prototype_height %+ base_height % Looping for every layer. %The Base is actually deposited in the negative heigh_level. %The +base_height is to deposit another layer on the top so it can be machined down to the correct height. layer = layer + 1; if height_level < prototype_height + base_height - layer_thickness %for every layer but the top. base = bottom_base - height_level*( tan(west_angle) + tan(east_angle) ); length = bottom_length - height_level*( tan(south_angle) + tan(north_angle) ); min_x = height_level*tan(west_angle); min_y = height_level*tan(south_angle); else %for the top extra deposited layer only. base = bottom_base - (height_level - layer_thickness)*( tan(west_angle) + tan(east_angle) ); length = bottom_length - (height_level - layer_thickness)*( tan(south_angle) + tan(north_angle) ); min_x = (height_level - layer_thickness)*tan(west_angle); min_y = (height_level - layer_thickness)*tan(south_angle); end nozzle_offset = nozzle_offset_value*layer_thickness; feed_rate = XY_feed_rate; % Setting to always do same feed rate as calibrated for the machine deposition_method = 2; % Setting to always do this deposition method if layer == 1 % print out setup G-Code. clc layer = layer + 1; % fprintf('O Topless_Pyramid_G_Gode - Program Name\n') % fprintf(['N',num2str(code_line_number),' G20 (Inch mode)\n']) % code_line_number = code_line_number + 10; % fprintf(['N',num2str(code_line_number),' G90 (Absolute mode)\n']) % code_line_number = code_line_number + 10; % fprintf(['N',num2str(code_line_number),' G54 (Set coordinate system to part)\n']) % code_line_number = code_line_number + 10; % fprintf(['N',num2str(code_line_number),' G43 H1 % (nozzle height compensation)\n']) % code_line_number = code_line_number + 10; % ************************************************************************************************************* % This code is for adding a single layer base to the pyramid. % Must set Z=0 at Z=layer_thickness. Thus the first layer (the base) will be deposited in the -Z region. height_level = height_level - layer_thickness; Z = nozzle_offset - layer_thickness; X = -1.5; Y = -0.75;

120

Page 133: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Return to home) (-1.5,-0.75,Z)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + (0.5*road_width) - deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y-0.75 Z',num2str(Z),' F',num2str(XY_feed_rate),' (Move to initial position)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; nozzle_offset = nozzle_offset_value*layer_thickness; num_of_x_roads = ceil((base + (2*deposition_overlap)) / road_width); [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter_Deposition_Only(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap, layer); % Retracting nozzle to move to the next position X = bottom_base + (4*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract over)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = -0.75 - (1.25*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = -1; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Z = Z + layer_thickness; fprintf(['\nN',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Retract up)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1;

121

Page 134: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

feed_rate = XY_feed_rate; height_level = height_level + layer_thickness; % ************************************************************************************************************* Z = height_level + nozzle_offset; X = -1.5; Y = -0.75; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(XY_feed_rate),' (Return to home) (-1.5,-0.75,Z)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + (0.5*road_width) - deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y-0.75 Z',num2str(Z),' F',num2str(XY_feed_rate),' (Move to initial position)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end % Calling appropriate function to generate the G-Code. nozzle_offset = nozzle_offset_value*layer_thickness; num_of_x_roads = ceil((base + (2*deposition_overlap)) / road_width); %if deposition_method == 1 % Zig-Zag Deposition. [outputs] = function(inputs). MUST be the same as IF statement below. % [code_line_number, X, Y, Z, data_points, data_points_index] = Zig_Zag(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap); %end if deposition_method == 2 % Perimeter Zig-Zag Deposition [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter_Deposition_Only(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap, layer); end %if deposition_method == 3 % Spiral Deposition % [code_line_number, X, Y, Z, data_points, data_points_index] = Spiral(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap); %end % Retracting nozzle to move to the next position X = bottom_base + (4*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract over)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X;

122

Page 135: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = -0.75 - (1.25*road_width); fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = -1.0; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Retract out)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Z = Z + layer_thickness; fprintf(['\nN',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(Z_feed_rate),' (Retract up)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = 0 - deposition_overlap; Y = -0.75; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Move back in)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; feed_rate = XY_feed_rate; height_level = height_level + layer_thickness; save data_points.txt data_points -ASCII % Outputting data_points array to a text file for openening in Surfacer. data_points_index = data_points_index +1; % Creates a blank line to break up data cloud for each layer. Data file manipulation Steps next. % 1.Open data_points.txt % 2.Find and Replace "0.0000000e+000 0.0000000e+000 0.0000000e+000" with nothing (blank line) OR "***End Cloud***" not including quotes for either. % 3.Open in SURFACER with option Open File As: ASCII Delimited. end % Layer Loop %fprintf(['N',num2str(code_line_number),' G28 (Return to home (0,0,2.5)\n']) %code_line_number = code_line_number + 10;

123

Page 136: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

%fprintf(['N',num2str(code_line_number),' G49 (End Tool Height Compensation)\n']) %code_line_number = code_line_number + 10; %fprintf(['N',num2str(code_line_number),' M01 (End)\n']) %code_line_number = code_line_number + 10; feed_rate = XY_feed_rate; X = -1; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(XY_feed_rate),' (Cool Down in)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; fprintf(['\n\nN',num2str(code_line_number),' M02 (End Program and Rewind)\n\n']) save data_points.txt data_points -ASCII % Outputting data_points array to a text file for openening in Surfacer. data_points_index = data_points_index +1; % Creates a blank line to break up data cloud for each layer. Data file manipulation Steps next. % 1.Open data_points.txt % 2.Find and Replace "0.0000000e+000 0.0000000e+000 0.0000000e+000" with nothing (blank line) OR "***End Cloud***" not including quotes for either. % 3.Open in SURFACER with option Open File As: ASCII Delimited. Toc SUBFUCNTION input_verticies.M code is the same as for with machining above. SUBFUNCTION Perimeter_Deposition_Only.M function [code_line_number, X, Y, Z, data_points, data_points_index] = Perimeter_Deposition_Only(fittest, height_level, base, length, min_x, min_y, num_of_x_roads, X, Y, Z, code_line_number, road_width, nozzle_offset, spindle_speed, data_points, data_points_index, feed_rate, deposition_delay, deposition_overlap, layer) perimeter_slow_down = 1; %For Deposition Only. perimeter_delay = 0; %For Deposition Only. Y_deposition_compensation = 0; %in with and without machining. deposition_radius = (0.5*road_width) + 0.015; deposition_overlap = 0; Z = height_level + nozzle_offset; X = min_x + deposition_radius - deposition_overlap; Y = min_y + deposition_radius - deposition_overlap - Y_deposition_compensation; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' Z',num2str(Z),' F',num2str(perimeter_slow_down*feed_rate),' (Move)\n']) code_line_number = code_line_number + 10;

124

Page 137: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

fprintf(['N',num2str(code_line_number),' G04 X',num2str(perimeter_delay*deposition_delay*10),' (dwell ',num2str(perimeter_delay*deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = min_y + length - deposition_radius + deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(perimeter_delay*deposition_delay*10),' (dwell ',num2str(perimeter_delay*deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + base - deposition_radius + deposition_overlap; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(perimeter_delay*deposition_delay*10),' (dwell ',num2str(perimeter_delay*deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = min_y + deposition_radius - deposition_overlap - Y_deposition_compensation; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(perimeter_delay*deposition_delay*10),' (dwell ',num2str(perimeter_delay*deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; X = min_x + road_width + deposition_radius; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(perimeter_delay*deposition_delay*10),' (dwell ',num2str(perimeter_delay*deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; Y = min_y + road_width + deposition_radius - Y_deposition_compensation; for road_pass_number = 1 : (num_of_x_roads - 3) % "-3" because 2 are deposited in the perimeter, and the thrid because it is already in position for the first.

125

Page 138: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

X = min_x + (road_pass_number*road_width) + deposition_radius; if road_pass_number > 1 % To skip first lower left point of the zig zag pattern (already at the correct X first time). fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end if Y == min_y + road_width + deposition_radius - Y_deposition_compensation % Zig-Zagging to fill in section. Y = min_y + length - road_width - deposition_radius; else Y = min_y + road_width + deposition_radius - Y_deposition_compensation; end if (X > (base + min_x - (1.15*road_width) - deposition_radius)) % Deposits slower if there is < 15% of a road gap. fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(0.75*feed_rate),' (Move)\n']) else % Deposit at normal speed fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) end code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end if layer == 6 %X < (base + min_x - (1.25*road_width) - deposition_radius) % Deposits another road if there is < 25% of a road gap. road_pass_number = road_pass_number + 1; X = min_x + (road_pass_number*road_width) + deposition_radius; fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z;

126

Page 139: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

data_points_index = data_points_index +1; if Y == min_y + road_width + deposition_radius - Y_deposition_compensation % Zig-Zagging to fill in section. Y = min_y + length - road_width - deposition_radius; else Y = min_y + road_width + deposition_radius - Y_deposition_compensation; end fprintf(['N',num2str(code_line_number),' G01 X',num2str(X),' Y',num2str(Y),' F',num2str(feed_rate),' (Move)\n']) code_line_number = code_line_number + 10; fprintf(['N',num2str(code_line_number),' G04 X',num2str(deposition_delay*10),' (dwell ',num2str(deposition_delay),'sec)\n']) code_line_number = code_line_number + 10; data_points(data_points_index,1) = X; data_points(data_points_index,2) = Y; data_points(data_points_index,3) = Z; data_points_index = data_points_index +1; end

127

Page 140: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

B3 – MasterCAM Deposition Path Generation Modified Post Processor

*The following are the modified sections of the post processor MPGEN5X.pst. The page

number indicated denotes where the code is found in the original post processor file when

opened in Microsoft Word. The note in brackets indicates the nature of the modification.

p.14 (removing Tool selection comments)

##### Custom changes allowed below #####

ptoolcomment #Comment for tool tnote = t toffnote = tloffno tlngnote = tlngno pstrtool #Comment for tool if strtool <> sblank, [ strtool = ucase(strtool) *strtool, " " ] pcomment #Comment from manual entry (must call pcomment2 if booleans) pcomment2 pcomment2 #Comment from manual entry scomm = ucase (scomm) if gcode = 1006 | gcode = 1026, scomm else, n, "(", scomm, ")" if gcode <> 1007 & gcode <> 1026, e ##### Stop custom changes ##### p.14-15 (reducing output in “else, #5-axis mode”) ##### Custom changes allowed below ##### if mill_plus, #HEXAPOD DOES NOT USE MILL_PLUS# [ if stagetool <= one, if stagetool = one, if n_tpln_mch > m_one, #Toolplane mode [ if lng3(tox_g), pbld, n, "G93", *tox_g, *toy_g, *toz_g, e

128

Page 141: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

pbld, n, sg07, *s_out, pf_d_ang, *p_out, str_l1, e pbld, n, *sgabsinc, e pcan1, pbld, n, *sgcode, *xout, *yout, strctxt, e ] else, #5 axis mode [ plane_2 = zero pbld, n, sgplane, e pbld, n, sg07, str_l1, e pbld, n, *sgabsinc, e pcan1, pbld, n, *xout, *yout, *p_out, e ] pbld, n, *zout, e pbld, n, scoolant, e !n_tpln_mch ] else, [ if stagetool <= one, if cut_ra_head & use_g45, #Swap xout and yout based on offset axis [ tloffno2 = tlngno + g45_of_add pcan1, pbld, n, *sgcode, pwcs, *sgabsinc, *yout, *p_out, *s_out, *speed, *spindle, pgear, strctxt, e pbld, n, "G45", *tloffno2, *xout, e ] else, [ #pcan1, pbld, n, *sgcode, pwcs, *sgabsinc, *xout, *yout, *p_out, *s_out, #Stock Lines # *speed, *spindle, pgear, strctxt, e #G00 G54 G90 X.9601 Y.2771 C0. B0. S5000 M3 #Stock Lines pcan1, pbld, n, *sgcode, *xout, *yout, *p_out, *s_out, e #G00 X.9601 Y.2771 C0. B0. #First U and V line. ] if stagetool = one, pbld, n, *next_tool, e #pbld, n, "G43", *tlngno, *zout, scoolant, e #G43 H1 Z.48 #Stock Line pbld, n, *zout, e #Z.48# ] ##### Stop custom changes ##### p.15-16 (modifying 5-axis pitch and roll coordinates. Replaced entire code after main “else”) ##### Custom changes allowed below ##### if mill_plus, [ if n_tpln_mch > m_one, [ pcan1, pbld, n, pwcs, e if lng3(tox_g), pbld, n, "G93", *tox_g, *toy_g, *toz_g, e pbld, n, sg07, *s_out, pf_d_ang, *p_out, str_l1, e pbld, n, *sgabsinc, e pcan1, pbld, n, *sgcode, *xout, *yout, strctxt, e ]

129

Page 142: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

else, [ pbld, n, pwcs, e if prv_n_tpln_mch > zero, [ plane_2 = zero pbld, n, sgplane, e pbld, n, sg07, str_l1, e pbld, n, sgabsinc, e ] pcan1, pbld, n, *sgcode, *xout, *yout, *p_out, *s_out, strctxt, e ] pbld, n, *zout, e ] #else, pbld, n, pwcs, sgabsinc, *xout, *yout, *zout, *p_out, *s_out, e #Stock Line else, if p_out = 0 & s_out = -30, [ pbld, n, *xout, *yout, *zout, "U0.", "V-30.", e ] if p_out = 90 & s_out = -45, [ pbld, n, *xout, *yout, *zout, "U-45.", "V0.", e ] if p_out = 180 & s_out = -46, [ pbld, n, *xout, *yout, *zout, "U0.", "V46.", e ] if p_out = 270 & s_out = -46, [ pbld, n, *xout, *yout, *zout, "U46.", "V0.", e ] !n_tpln_mch ##### Stop custom changes ##### p.16-17 (commenting out outputs in “if not(mill_plus)”) ##### Custom changes allowed below ##### if ntools = one, [ #skip single tool outputs, stagetool must be on stagetool = m_one !next_tool ] if progno = zero, progno = one if not(mill_plus), [ #pbld, n, *smetric, e #commented out

130

Page 143: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

#pbld, n, "G00", *sgplane, "G40", "G80", "G90", *sgfeed, "G98", e #commented out ] sav_absinc = absinc absinc = one prefreturn #xout, p_out not output here absinc = zero p_absinc_chng ptoolcomment comment pcan ##### Stop custom changes ##### p.18 (removing outputs) ##### Custom changes allowed below ##### if not(mill_plus), sav_absinc = absinc absinc = one prefreturn #xout, p_out not output here absinc = sav_absinc ptoolcomment comment pcan sav_absinc = absinc absinc = zero p_absinc_chng ##### Stop custom changes ##### p.18-19 (replacing code after main “else” to set the feed rate). ##### Custom changes allowed below ##### pbld, n, scoolant, e pbld, n, sccomp, spindle, e pbld, n, s_plock, e pbld, n, s_slock, e absinc = one prefreturn #xout, p_out not output here absinc = sav_absinc if mill_plus, [ pbld, n, sg28, *g74zabs, "L1", e #EOF on prv_gcode = 1003 if prv_gcode = 1003, pbld, n, sg28, *g74xabs, *g74yabs, e pbld, n, sg07, str_l1, e if lng3(tox_g), pbld, n, "G93", "X0.", "Y0.", "Z0.", e if prv_gcode = 1003, frc_cinit = one protretinc if prv_gcode = 1003,

131

Page 144: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

[ pbld, n, sg07, s_out, pf_d_ang, p_out, str_l1, e ] ] #else, pbld, n, *sg28, protretinc, e # Stock Line else, pbld, n, protretinc, e prefreturn #Refernce return if not(mill_plus), [ #pbld, n, *sgcode, *sg28, *sgabsinc, "Z0.", e #Stock Line with G28 pbld, n, *sg01, "Z2.0", "F6.0", *sgfeed, e #Modified to include G01 and Feed Rate. Line1. if toolchng = one, pbld, n, *sgcode, *sg28ref, "X0.", "Y0.", e ] ##### Stop custom changes ##### p.21 (removing feed rate output, “#” comments out code) plinout #Output to NC of linear movement - feed if mill_plus, [ pbld, n, sgplane, e pbld, n, sgabsinc, e pbld, n, sgfeed, e ] #pcan1, pbld, n, `sgcode, sgplane, sgabsinc, sgfeed, pccdia, #xout, yout, zout, p_out, s_out, p_mpls_feed, `feed, strctxt, scoolant, e #Stock Lines pcan1, pbld, n, `sgcode, xout, yout, zout, e if nc_lout <> m_one & feed = zero, psfeederror

132

Page 145: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

References [1] Hur J. et al., Hybrid rapid prototyping system using machining and deposition. Computer-Aided Design 34 (2002) 741-754. [2] Yan, X. et al., Survey: A review of rapid prototyping technologies and systems. Computer-Aided Design, Vol, 28. No. 4, pp. 307-318, 1996. [3] Pham, D.T. et al., A comparison of rapid prototyping technologies. International Journal of Machine Tools & Manufacture 38 (1998) 1257-1287. [4] Williams, R.E. et al., Investigation of the effect of various build methods on the performance of rapid prototyping (stereolithography). Journal of Materials Processing Technology 61 (1996) 173-178. [5] Jandric, M. et al., Effect of heat sink on microstructure of three-dimensional parts built by welding-based deposition. International Journal of Machine Tools & Manufacture 44 (2004) 785-796. [6] Hongjun, L. et al., A note on rapid manufacturing process of metallic parts based on SLS plastic prototype. Journal of Materials Processing Technology 142 (2003) 710-713. [7] Karunakaran, K.P. et al., Efficient stock cutting for laminated manufacturing. Computer-Aided Design 34 (2002) 281-298. [8] Tyberg, J. et al., FDM systems and local adaptive slicing. Materials and Design 20 (1999) 77-82. [9] Grida, I. et al., Extrusion freeforming of ceramics through fine nozzles. Journal of the European Ceramic Society 23 (2003) 629-635. [10] Dimension Printing, Online Articles, http://www.dimensionprinting.com/company/company-articles.shtml (April, 2006). [11] Madahian P., Implementation and testing of a 3-D hybrid rapid prototyping system capable of deposition and machining. Ryerson University Masters Thesis Report (2003). [12] Salustri F., Design Methodologies, http://deseng.ryerson.ca/dm1016/ (April, 2006). [13] Groover, M.P., Fundamentals of Modern Manufacturing: Materials, Processes, and Systems, John Wiley & Sons, Inc, New York, 1999. [14] Zhong, W. et al., Short fiber reinforced composites for fused deposition modeling. Materials Science and Engineering A301 (2001) 125–130.

133

Page 146: MULTI-AXIS HYBRID RAPID PROTOTYPING USING FUSION

[15] Juvinal, R.C. et al., Fundamentals of Machine Component Design, 3rd Edition. John Wiley & Sons, Inc, New York, 2000. [16] Rosato, D.V. et al., Plastics Design Handbook. Springer-Verlag. USA, 2001. [17] Pandey, P.M. et al., Improvement of surface finish by staircase machining in fused deposition modeling. Journal of Materials Processing Technology 132 (2003) 323-331. [18] Pratt, M.J. et al., Progress towards an international standard for data transfer in rapid prototyping and layered manufacturing. Computer-Aided Design 34 (2002) 1111-1121. [19] Chen, Y.H. et al., The development of a layer based machining system. Computer-Aided Design 33 (2001) 331-342. [20] Campbell, R.I. et al., Surface roughness visualisation for rapid prototyping models. Computer-Aided Design 34 (2002) 717-725.

134