From RepRap
Revision as of 09:50, 17 August 2011 by Cclor (talk | contribs) (Power supply)
Jump to: navigation, search
Crystal Clear action run.png

Release status: Experimental

Assemble MetalicaRap vers. 2.0.jpg
An Electron Beam 3D Metal Powder Printer with Solar Cell Fab. ability, including microscope vision system (SEM) & Z axis metal correction in a vacuum.(Design stage).
EBM,categories =Powder
CAD Models
External Link
please contact us via mail forum below


MetalicaRap, An Open 3D Metal & Home Solar Cell Printer.

Design criteria

The printer should have the following characteristics:

  • a build volume at of about 30cm x 30cm x30cm
  • produces dimensionally finished parts +/- 20 µ m over 20mm
    • with metallurgy equivalent to wrought iron milled metal parts (full strength, >98% density)
  • it is largely self reproducing (i.e. it can print many of its own parts)
  • electrical supply is single phase for now 120v AC
  • minimum consumables beyond metal powder (avoiding need for e.g.argon gas etc.)
  • cost for parts which it cannot itself print plus the raw material for printable parts is less than the cost of a used car
  • the build-rate can be slow i.e. 0.2 kg per hour
  • max height 2.4m so it can fit in a home.

Initial decision making

An electron beam printer is chosen due to the printability & wall plug to metal efficiency of the electron gun vs. a powerful laser.

Due to lack of control in metal powder deposition & molten metal forming droplet/distortions in conventional ebeam 3D printing (e.g Arcam 3d) a tolerance of 300µ in the Z axis is a typical with 10µ powder, (Finer powders are prone to magnetic forces and typically unwieldy, though powder demagnetization and non ferrous construction is a possibility, this demands an error correction which is based round a Vision system using 4-sector, independent channel axial Back Scatter electron detector (BSE) Scanning Electron Microscope (SEM) combined with image processing. The pseudo stereo SEM picture data can be converted to true 3D dimensional data (asymmetrical 4-source BSE photometric stereo 3D-imaging), Enabling sub µ metal height measurement. Z axis dimensional mistakes in any particular layer can be found and corrected by removal of high points through Electron beam machining / ebeam vaporization of the metal. This brings the XYZ axis to 20µ error over 20mm (IT grade 7 See IT grade table here [2]. (What is the source of this information Rapatan?GreenAtol 23:07, 8 August 2011 (UTC))

Essential PreRead

. Existing Commercial Electron Beam 3D printer click link in square brackets here [3], Factory at home, See [4], 3d Printed Rocket Engine Takes Flight ! See here at 2:40[5] (a stainless steel 3d Print)

Remember: What is contributed is more important than the expertise or qualifications of the contributor.

Support MetalicaRap Development

We are currently trying to raise money to make a RepStrap version of MetalicaRap.

We need an estimated 50K euro, and have so far raised close to 4000 euro.

You can donate money:

There are many other ways you can help further the development of MetalicaRap. Please read this page to get an idea of current development status. We can be contacted on RepRap IRC channel, [email protected] or best at RepRap MetalicaRap forum

(Where is this estimate from Rapatan, and how exactly is the money being handled and by whom? GreenAtol 23:07, 8 August 2011 (UTC))



We are now 7 months in to the development of a printer capable of printing in all common metals, which can largely print itself. If you want to talk to us, one of the team should be available on RepRap IRC [6] every Sunday at 20:00 local time in the UK which is 12:00 Pacific Standard Time, 15:00 Eastern Standard Time, 20:00 Greenwich Mean Time, 21:00 Central European Time.

Critically it may offer the ability to largely print the most expensive bits including the electron gun (Equivalent to printing a 600W fiber laser in a Selective Laser Sintering machine). This gun will point in to a vacuum chamber above a build platform covered in metal powder.

For now the self replication will not include the vacuum chamber as it will be welded from stainless steel 304 NPS14(355.60)0.312(7.925) pipe & plate , the power supply is under construction from bought in parts, one pump will initially be purchased.

If you would like to help out with general research; for example currently we need help with:


  • We need approximately 90 hours of CAD have recieved 1.5 so far, we could do it much quicker with VacuCAD as all the standard parts are already defined, anybody?
  • We also need a vacuum engineer to check our chamber thickness etc anybody?
  • Material science research on pros/cons. for materials for each electron gun and coil element in a 10<math>^-</math><math>^4</math> Torr vacuum
  • Which insulating washers between cathode and 1st anode (6KV) ? Which ceramic?
  • Which wire for coil windings ? (4A) telflon coated copper? Maybe?

  • Which insulator and structural material for insulating beam between cathode and anode (120KV min), which ceramic? See page 5 [[7]] (Clarify, Rapatan?GreenAtol 23:07, 8 August 2011 (UTC))


  • Familiarize yourself with Software, choose either Universal Accelerator Library (UAL) or Code_Aster familiarize with API environment, With Universal Accelerator Library (UAL) develop methods to create "lens coil" focus control dependent on X,Y beam position and "X Y deflection coil" raster control (CRT style raster). Or with code_aster develop thermal model to track temperature in build volume SOFTWARE DEVELOPMENT
  • Researching the sourcing/ price of components suppliers for our mechanical vacuum and high voltage challenges?' What limited out-gassing cheap 4A cable e.g. tefelon coated , limited out-gassing cheap Signal cable , and 15KV cable exterior 1KW cable is available ? In chamber these need to be limited outgasing required [8][9]units Torr Liters Per Square Cm. Per Second' INTERNET RESEARCH
  • Use your network to help us find more technical specialists, the technical specialists we currently have are very busy people already and needed in electron gun & material science design area." NETWORKING
  • Follow the links on our website and try out our design questions ! PHYSICS & ELECTRONICS RESEARCH
  • Help us research the scanning electron microscope signal processing and image processing." See Topographic SEM solution for metalicarap [10] MATHS RESEARCH
  • "Help us get technical drawings for existing electron beam welding gun designs from contacts or patent listings, great for new ideas" ENGINEERING NETWORKINGGeneral vacuum material science book here [11] or [12]

None of the processes in them selves are new , they have all been done in other contexts, what is new is that it may offer finished parts requiring no further machining, verification of parts tolerance and bring error correction to metal powder 3D printing for the first time, thus enabling full strength finished dimensional parts production.

For those space buffs, NASA is also making their own machine but with wire not powder, to use EBM's excellent metal grain control ability to achieve "aeroelastic and acoustic tailoring into aircraft structures" For details see here [13], and have now recently purchased an Arcam EBM 3D printer.

kind regards

MetalicaRap team

Contact: click here [14] Rapatan


"Since Jones and Swainson many other techniques for rapid prototyping have been developed. Three of the most significant are selective laser sintering (SLS), filament deposition modeling (FDM), and the MIT powder/ink-jet-glue process.A rapid prototyping machine that can make most of its own component parts will clearly be easier to design if one avoids things like high-powered lasers; having the machine make a laser from scratch would be difficult. More subtly, ink-jet print heads (though cheap) are intrinsically hard to make as they involve micro-fabrication, and so a machine based on them would be unlikely (in the medium term) to be able to liberate itself from that one bought-in part. " [15] Adrian Bowyer

Even though SLS was one of the 3 major contenders for the reprap machine, it was rejected due to the difficulty of self manufacturing the laser. Yet using an electron beam may offer easier self manufacture, due to it largely consisting of 3 simple elements; a cathode metal ring, an anode metal tube and a hot wire.

Another key issue is producing verified, dimensionally finished parts. Commercial metal powder printers, both laser and electron based, can not measure the individual parts they produce during production, unlike conventional machining methods. MetalicaRap could due to the inclusion of a layer by layer measuring system (stereo, 3d scanning electron microscope).

The challenges of Z axis control is expected to be greatly helped by the vision system and z axis correction method EBM/vaporization (Vision systems are currently in development stage on state of the art commercial machines.)

"I would point out that this is a very complex and expensive project whether it has a laser in it or not, and that it is altogether possible to make a laser. There are quite a number of DIY high power laser projects out there already and it may be practical to print a companion widget to help make the laser in one form or another, making parts you cannot print directly. Simply draw a box around both things and there you have your largely self producing printer. However I agree the electron gun is still likely to be quite a bit easier for the same power level, especially as long as complications due to magnetic forces, grounding, X-ray radiation, and calibration do not turn out to be too bad a problem, and I wouldn't expect them to. Also, I'm not sure the subtractive machining is needed. Commercial printers report being able to produce finished parts for jet engines and medical implants etc. without it, but granted maybe there are details the manufacturers don't put on their web sites."GreenAtol 23:07, 8 August 2011 (UTC)

Advantages of current chosen design approach

  • Fully functional parts directly from standard metals
  • For most parts it may offer dimensionally finished metal parts IT grade 7
  • Good metallurgy on all common metals (Melting process rather than sintering process ensures near 100% of solid material)
  • Closed loop system
    • Self measurement of finished part tolerances.
    • May offer automatic self correction (subtractive machining steps during build process and feedback with compensation used in the additive process).

Additional Benefits; Can print thin film CIGS Solar cells in existing vacuum chamber with existing electron gun, will be able to self print additional required parts for solar cell printer.


  • Vacuum chamber needs on going maintenance (how much?).
  • Given the quantity and quality of metal/materials used in 10-4 torr vacuum chamber construction they may have high cost or be hard to obtain. (Limited outgasing required, more info: [16][17])
  • Difficultly in managing metal powders, indicated by the need to have layer error correction, Problem area's including; powder layer flatness, metal meniscus blob formation (verification needed), metal powder trapped in work piece (i.e. designed internal closed cavities, designed internal porous or honeycomb structures most likely impossible without additional processing or work on the part after printing).
  • Quality Control may be a hurdle to overcome - on the fly heat treatment process development (to overcome residual stress left in work piece) may be desirable but optional. This is a problem in general for additive manufacturing of all sorts at present.
  • Adequate surface finish may require post processing, depending on the purpose of the part (what do commercial EBM machines get?).
  • Non-desktop size, chamber approx 1m cube.

Main elements

MetalicaRap in it's current form has 7 main elements which form the printer hardware proper:

  • electron gun including deflection assemblies in a 14 inch dia. gun tube 1.6 m long.
  • and metal powder dispenser trough hopper, with a cartesian 8cm diameter topological pick up ring. ( in a box created from 8 cm thick sheet of 304 stainless/ aluminum by milling or EBM (80mm thick))
  • build platform in a 14 inch dia. build platform tube 1.20 m? long (this first version will be tall)
  • SEM for vision system/feedback regarding the shape of the part and what's going on in the chamber, using the 12kg trough hopper pick up ring.
  • vacuum pump: roughing pump and, distributed Ion pump or oil diffusion pump or turbo pump.
  • Power supply - known to be doable, knowledge of how to do it widespread.
A low power gun build example
Low power gun in operation.. See [1]
Electron Gun Elements
Coil wiring diagram
Gun Calculator, download MetalicaRap.ods below
Lens Coil Calculator , download MetalicaRap.ods below
large part Costs, download MetalicaRap.ods below

Electron Gun

For the prototype we suggest one gun in a chamber that can bu used to test either guns design, Once we see the outcome of the test we can decide to try two guns again if necessary. The one gun will be stationary situated 1m above build platform, a sensor pick up ring will be attached to a 12Kg gravity fed powder hopper just above the build surface, using sliding slotted plates to release the powder, ( just like those old air vents in houses but ours will have sharpened edges). A second powder hopper will gravity feed the 12 kg hopper, it will be situated up in the side of the 14 inch gun tube and will obscure a little part of the build chamber from the beam( a necessary compromise). So we are no longer restricting the design to known technology, i.e. 2 guns. One close to the target and one far from the target, 1m away (having functions SEM / Micro vaporizing and melting across build area respectively). we are implementing the second design step first with one gun and just a back-scatter detector ring, close to the workpiece mounted on the Cartesian XY system ( do we need Z? ), (Technical background: See 5.2 [18]see lecture 4.02/11/04[19],[20]

Providing Sub µm Topological mode SEM vision system (See [21])

Additionally providing Micro vaporization (See gun layout Page 3 [22] down to 10µ to 40µ spot size), Initially this would be used to flatten every tenth layer of the build through high points / blobs removal (is this needed?). Future software development could provide live modeling of build, so through the adjustment of beam melting path in following layers errors/ blobs could be taken account of as they arise, thereby limiting the need for blob removal to critical surfaces.

Static Electron Gun B 5KW max (80KV to 150KV 33mA) 1 m above build platform. Providing additive printing through melting at high beam deflection speeds, enabling high build rates

Providing build platform metal powder heating and melting, spot size 100µ (may be inaccurate) pointing accuracy 10µ (may be inaccurate). This higher power gun probably will require the inclusion of a liquid cooling cathode housing system. The current one may well too.

General material issues;

Nickel(1453 C melt), stainless steel(1400 C melt) and molybdenum (2617 C melt) are best materials for electron guns as (others like brass contain zinc which out-gasses intensely when it gets hot, which can lead to ionization and flash overs.) Ceramic or glass are good for insulating elements and can cope along with tungsten(3410 C melt) at over 2600 C creates a high enough current by thermionic emission. Carbon nanotube coated needles have been used and may be worth investigating.

The materials usually have limited lifespan due to sublimation at higher temperatures.

    • Stainless steel 304 as printing active metal comes later.
    • High vacuum <math>10^-</math><math>^5</math> to <math>10^-</math><math>^4</math> Torr.
      • NiCr Alloy (10-16) Hexagonal x40 halfhexagonal x16 endpieces x16, 384 bolts (what does this mean?), copper wire, main door can use a Viton O ring perhaps, or a metal to metal seal with vacuum oil or vacuum wax as a sealant.
    • Roughing pump (initially purchased Vane pump e.g. Varian DS102 1.5x10<math>10^-</math><math>^3</math>Torr )
    • High vacuum Ion pump or turbo pump (Use electron guns to pump chamber down? (how exactly?) 50L/s max 1.5x10<math>10^-</math><math>^1</math><math>^1</math>Torr) Most likely it will be a diffusion pump as they are by far the lowest cost to get to the vacuum levels needed.

Research (by Rapatan?): A turbo pump is extremely expensive e.g. Turbovac 50L/s 1.5x10<math>10^-</math><math>^9</math>Torr).

Breakthrough! This turbo pump cost has been a block to costs coming down, but after redesign a Ion pump seems a good solution, 300 ?x 15mm diameter 26mm long stainless tubes with 8mm titanium plates on either side covering the end of the tubes, thereby the titanium plates acts as cathodes and tubes are anodes, these are situated around the outside of the lens coils providing magnetic fields and a 8KV supply hooked up, we have create a electron gun and ion pump combination.

Another alternative is use an oil diffusion pump but this may be of limited use as it puts some silicon oil vapor in to the chamber which will be cracked if in contact with tungsten filament (at 2600 C) producing oil by products that reduce the vacuum and affect the quality of final produced metal parts, there is an existing home build design, see here: [23],[24] (use google translate) though some people have had success with using the chilling unit from an air conditioner in-between pump and chamber [25].

"I'm pretty sure oil diffusion pump is the way to go. The cooled condensation baffles in between the pump and the chamber is adequate to prevent any significant amount of oil getting in the chamber at these pressures. This is mentioned in a variety of sources on oil diffusion pumps." GreenAtol 23:07, 8 August 2011 (UTC)

  • metal powder dispenser/build platform

Options include:

    • screw/twin chamber design/gravity deposit (what does this mean?GreenAtol 23:07, 8 August 2011 (UTC))
    • Deposit powder in a relatively poorly controlled way, then use a wiper or knife edge blade which scrapes the excess off the surface, leaving a powder layer of reliable thickness. This is used in DMLS machines
    • Metal Vapor protection Gun protection disc, Waiste metal SEM pickup,& wiper protection (what does this mean?GreenAtol 23:07, 8 August 2011 (UTC))
    • The Arcam EMB uses a "textured roller". Presumably a roller is textured with a pattern of holes which is loaded with powder, then the powder falls out of the holes, and a little random redistribution occurs on the way down to the workpiece surface for a reasonably uniform powder layer of repeatable thickness.
    • Leveling the surface of the powder bed may be possible using ultrasonic lubrication to briefly fluidize the powder bed. It might cause unacceptable settling though.
    • Electrospray may be possible. Simple, no moving parts. More research needed.
    • What else?
      • The density of the powder is lower than the density of the solid metal. So if the powder is only deposited using say the textured roller the upper level of the powder bed will get higher than the surface of the part being printed. How is this dealt with in the Arcam printers? Please clarify Rapatan.
      • With the vision feedback, the layer thickness repeatability and uniformity is no longer be nearly as critical as it can be compensated for.
      • Variable layer thickness might (?) be desirable to provide fine control of the vertical resolution using thin layers where desired, while still allowing relatively high build speeds that come with thick layers for other areas.

File:Gun Coil Pump Cost calculator MetalicaRap.ods

Power supply

Power supply with Arc sense, arc quench and arc count.

Cartesian 1kW gun power supply circuit construction will be based around 2 MOT serialized 85KV(1Kw) and 6 stage crofton walton ladder for the positive 15 Kv x6= 90KV

CW Calculator Help & Tool for any one who want's a fast overview [26]

Transformers and ladder 3 phases

Beam Simulation and Control Software

Those looking for entertainment might look at the open source Unified Accelerator Library (UAL) that has a 30yr track record of simulation and control of electron beam movement so this could be an option for a Electron beam focus model and a Control/Simulation approach. But UAL lacks thermal models and metal powder melting modeling so it's main use may be to get the beam spot landing on the powder at the correct position and with the desired diameter defined in the G code from skeinforge. (You can down load UAL here [27], [28] Introduction here, [29]

Manuel for UAL's Design Toolkit called MADX where you can enter a hardware definition i.e. collection of coils along a beam start with two solennoids at 0.1m and -6 m, beam at 0m along latticeset, at 3KW 100 micron diameter (MetalicaRap will likely have 3 XY deflector coils for beam deflection, 2 "Solenoid" for beam lenses) then run simulation of beam with OFFLINE MODEL UAL 1.9 here [30].

The hardware definition of coil positions is called the "lattice". The control ONLINE UAL 1.11 will them apply this simulation to the control of the electron guns in real time. Ignore the following elements we don't have them in MetalicaRap: BeamBean, electric kicker,Kicker, RF cavity, taylor map, wake, wriggler .

This has the advantage of being a closed loop system, which while simulating the beam movement simultaneously records models coils, guns, motors inputs; voltage values, current values etc. Then when you run the real world machine these form the drive instructions to the machine, any sensors picking up deviations are resolved through alarms or the software "reality checking" and thus improving the model. It also is designed as a multi user, multi platform software environment. Some draw backs may be over complexity of the system.

  • Possible open source software that may be useful: Fast Network "EPICS" ? for running UAL on, See here [31] [32] More Info here[33]

Thermal Modeling Software

Quick start instructions on thermal modeling software:

  • Open Source thermal real time model software Code_aster Introduction here[34],
    • Download code-aster software (Windows) here [35],
    • Download extra element GetDP.exe here[36] (put GetDP.exe in c:\ASTER\OUTILS\gmsh\)[37],
    • Download code-aster software (Linux to compile) here[38],
    • Download extra element GetDP.exe here[39] (put GetDP.exe in c:\ASTER\OUTILS\gmsh\) once it is installed and extra element has been copied then as it finishs select option to run code aster.

First select your problem type definition files from the wiki i.e.Thermal program example See here (Use login user: getdp password: getdp) [40]

Second build your mesh of shape you require to be tested, with code_aster sub module Gmsh: you can find it In ASTK prg window under menu item Tools Gmsh \\\ then in Gmsh window select GEO in drop down sub menu //// or import shape via .stl file In ASTK prg window, menu item Tools, Gmsh , then in Gmsh window select; MESH submenu

Third run solver to solve the problem you have defined above by selecting the SOLVER submenu in the GetDP window and hit GetDP button. In GetDP window choose source files for problem; name.PRO file(the problem defined in an example text file from GetDP wiki ) Choose name.MSH ( mesh file defining geometry) Then in GetDP window select options and tick "display client messages" option, then hit Pre then Cal then Pos buttons and then see window called message console window and it will tell you what happened, the output results files name.PRE name.RES name.POS will be in the same directory as the name.PRO file you selected for input.

General info;(Gmsh is a three-dimensional finite element grid generator with a build-in CAD engine and post-processor) See here [41] Can access Gmsh through Graphic user interface or directly through unix or TCPIP socket via code_aster sub module getDP Download GetDP.exe here[42] (put GetDP.exe in c:\ASTER\OUTILS\gmsh\ or specify path to existing location) Overview here [43]See here [44]GetDP documentation here [45], Thermal program example See here (Use login user: getdp password: getdp) [46] Documentation for relevant thermal model calculations See Thermics module R5.02 booklet: / General Architecture D00301a.pdf In DDocsHTML (Down load following two links, unzip to same folder) [47] [48], Complete Guide to code_aster documentation here [49], Software Principles explained here[50] ,Aster documentation source here [51] , home page here [52] wiki[53],

Research Corner Welcomes Your Contribution

If these knowledge areas are new to you, remember to use your networking skills to talk to others, that friend or uncle may be just that expert!

Design/research questions:

  • A. Find magnetic optics simulation packages and run simulations for a Pierce Electron gun running between 50W to 1KW 100KV  ? ( given cathode is 1.6m from target max deflection 8 degrees ) ( spot size vs Cathode voltage, ideal guns , for max 60 KV and max 100 KV guns) ( N.B. All lens are magnetic not electrostatic because to achieve high enough resolution implies guns at 60KV + , to deflect the beam Electrostatic lens must be similar leading to insulation problems and high distortions.)
  • B. Possible pit falls of running an SEM at 100W in four-source photometric stereo Ruderford back scatter mode ?
  • (Depth of field of measurements layer errors over 200µ height, typical SEM power is 0.1W. )
  • C. Target metal surface temperature measurement would be a big advantage, Do you know of a electron bombardment based remote temperature measurement approach?.
  • D. Quantify relationship between cathode surface tolerances and electron gun performance, (spot size variation , 2nd order effects etc ) Quantify range of gun performance at cathode tolerances of IT 7.
  • E. Which pattern of beam movement a "fixed raster pattern (like a TV scan)" or "point and fire where needed" in a) preheat stage? ( taking temp up to 20 C below melting point) b)melting/sintering part shape? (scanning coil eddy curents overcome with delays?,scanning blanked out areas leads to time wasting?, variable shaped beam more efficient?, Interference from other signals- X ray , secondary electrons , luminescence , beam induced currents?, Clear path for beam? )

Design question feed back / discussion. Add your ideas here!

Principle Software Tasks

Include the following models for tracking the process; 

Thermal Real Time Model; this allows us to keep track of the thermal changes across the build chamber or cooling path as the electron gun pulses strike the build volume powder. Considering the following 4 situations conduction rates: 1. Metal powder & solid metal volumes experiencing direct electron energy deposition (i.e. heat around electron penetrated regions, the depth of these volumes increases with Cathode Gun Voltage KV & vary with metal type) see electron penetration model [54], 2. solid metal thermal conduction volumes (the completed elements of final metal part under construction), 3. metal powder conduction volumes (the surrounding powder), 4. chamber/boundary thermal conditions (vacuum region, build box). See electron strike model for different metals and different cathode Voltages.

In general for any unit volume receiving an amount of energy per second to be raised by 1 degree K (the metals specific heat capacity) from a distant energy source, the amount of energy (W or J/s) arriving from that energy source(the electron beam) via a path; The paths energy transit rate (the conduction rate) is dependent on the cross sectional area of path, the length of path and the temperature difference between the ends of the path, ( "thermal conductivity, units in W/deg.K). The volume changes size by the surrounding pressure (atmospheric pressure, indicating the density of the material).

So from known initial temperature conditions combining the specific heat capacity, thermal conductivity and density to calculate paths, then summing these paths leads to knowing the temperature of a specific unit piece of metal and its physical state, solid or liquid or vaporized (temperature above or below its melting point or vaporization point at any particular time). The following should be considered; variation of mass with scan speed, bed preheating scans. See for more background technical information. [55] [56].

Electron gun beam focus model.

To highlight  resolution operational compromises between; the higher the gun cathode voltage the tighter gun focus, so the smaller the beam spot size on the metal powder giving rise to a higher XY minimum feature size (lens adjustment can alleviate. See lens simulation [57]), yet also the higher cathode voltage the faster the  electrons go, so the deeper the electron energy deposition/giving rise to deeper vaporization holes, giving less vertical Z resolution, (used during Z axis error correction mode). Also surface tension is correlated with temperature, and works in opposition to wetting effect flattening the surface of the melt pool (if the melt pool diameter is small compared to the thickness of the metal layer it may appear as a molten blob of metal). See possible software solution Unified Accelerator Library (UAL) with supporting networks EPICS below.

Combining the above two models with the work piece metallic properties we can develop, a Work piece removal model and a Work piece melting model Beyond this we need a control system with monitoring and a network structure.

MetalicaRap Construction; Physics Principles/Disscussion. .Metallurgy Disscussion. .High Voltage Disscussion

Metal Powder Printing; Powder issues

Powder issues

The initial test run prints will be made in stainless steel 30µ (Pre cool final printed parts from this powder is therefore likely to achieve a tolerance of 250µ) and chromium cobalt under 50µ 30µ?( Pre cool final printed parts from this powder is therefore likely to achieve tolerance of 250µ)metal powder [58]supplier[59], and then later the challenges of Titanium 4µ powder will be considered (Pre cool final printed parts from this powder is therefore likely to achieve tolerance of 20µ). See article on micro sls [60]. See example machine [61],See example of twin chamber 3D printer[62]. Though through subtractive machining we may be able to bring critical surfaces of most of parts down to 20µ. stainless is 316L grain size -45µ+10µ product purpose 3D printing good fluibility, 60gbp a kilo best price 80 kg per buy delivery 3 month. Powder is manufactured from cold rolled metal (e.g. 304 approx 1.8 Euro a KG 07/20111) by Electron Beam Melting of a rod of feed material which then is momentarily caught on spinning plate and flung thereafter, thereby solidify by cooling. See [63]

The magnetic metals lead to magnetizing of Iron based metal powders so should be avoided where possible, (the main magnetic metals are Iron, Nickel, Cobalt Iron)

The metal powders are not good to ingest or breath in so mask should be worn. The metal powders may get caught in the fine folds of your skin so gloves should be worn.

All metal powders can burn easier than solid blocks, the active metals are most flammable and difficult to handle; Titanium 4µ (other active metals include Aluminum, , zirconium ), then the moderate range metals e.g. Cobalt Chromium 50µ and finally low range Stainless steel 30µ . General fire avoidance should be followed, Avoid sparks and open flames, Avoid dust clouds( through dumping action of powders), and use appropriate tools. Design principles of fire avoidance should include; appropriate grounding of equipment, avoid excess mechanical friction in design. For active metals consider glove box contained nitrogen clean up environment or just a liquid based vacuum cleaner.

First layers are tricky to print  ; first layer must weld well to metal to stop part warping , because cold platform contact hot metal residual stress tries to snap build platform so build platform needs to be thick to resist this force, must also need to be reusable after each print must be milled.

Safety issues

The amount of Xray produced is proportional to the voltage applied to the apparatus, So for your your old TV it was at 30KV but as long as you keep the electrons in a box that was no problem. But If you do like those crazy people in hospitals fire them all round the place precautions need to be taken, MetalicaRap keeps the electrons and the target in a metal box 7.925mm thick.

We can use this formula to calculate the dose rate,

R (rad/sec) = 50 x V (kV) x I (mA) x Ztarget / [r (cm)]2 x 74 where V is acceleration voltage, I beam current, Z constant for target metal type, r distance from target. Formula from RADIATION SAFETY MANUAL (REVISED MARCH 2010) THE SCIENCE AND TECHNOLOGY OF IONIZING RADIATION page 11 [64]

Lets calculate the dose inside the box we find;

The dose rate inside the chamber at 14 cm from a copper target operated like metalicrap at 100kV and 14 mA is: 50 x 100 x 14 x 29/ (7cm)2 x 74 = 560 rad/sec.

The recommended shielding from this level of radiation for working hours use is 1.2mm of lead. Our chamber is made out of stainless steel 304 each 3mm thickness is equivalent to 1mm thickness of lead shielding, our chamber is 7.925mm thick, So over twice the required shielding is provided by the chamber. So no further shielding materials are required.

Current status

If you want to talk to us; One of the team should be available on RepRap IRC [65] every Sunday at 20:00 local time in the UK which is 12:00 Pacific Standard Time, 15:00 Eastern Standard Time, 20:00 Greenwich Mean Time, 21:00 Central European Time.

We are based in Copenhagen Denmark at though one of our main engineer is in Lancashire UK.

Tuesday night is open night where you can come to labitat in frederikaberg denmark and meet the team. Curently electron gun test rig and repstrap vacuum chamber including pumps and gauges under electrical maintenance.

We are particularly looking out for; Software development, Draftsmanship, Metal machining & Independent Ceramic Insulator research.

Get involved! the current team donate there free time, Current tech team; 1 software developers, 1 electrical engineer and 1 mechanical Design Engineer all part time.

(very occasional advice from; 1 Ultra high vacuum metal deposition specialist, 2 physicist, 1 High voltage system designer).

Do get in touch. See the talk page and forum for more discussion : [[66]].

Related Projects

Specialist Parts Chamber CF flange Electrical connectors, Other (1x 140KV 2KW , , 6x SEM PIN diode pickups low current low voltage,

Main Deflector Coil driver solutions; a) Raster 30cmx30cm b) point and shoot Driver circuit choice Coil position options 1)7 degrees at bottom of gun 2)nearer build table.

3x 12mm Motor shaft Vacuum chamber motion feed through. 10-5 Torr Low torque version and high torque for 700W build platform motor.

Files and Parts

All design files need to be in .DXF format for compatibility.

Sub Assemblies and Related

EBS=Electron beam sinterer/melting.

sequence - electron gun parts repstrapped EBS. Assembled tested in repstrap vacuum chamber. Metal powder deposition mechanism parts repstraped EBS . Gun depoosition assembled tested. MetalicarapVacuumChamber parts Electron beam sintered by our system. MetalicarapVacuumchamber assembled tested. 5 Elements assembled and tested.


Photos and Drawings

Version 2.0

File:MetalicaRap vers. 2.04.dwg

Assemble MetalicaRap_vers._2.0

MetalicaRap V. 2

File:Gun coil section side view MetalicaRap vers. 2.0.pdf

Gun & coil section side view 1:2

File:Hopper sense ring MetalicaRap v2.pdf

Hopper sense ring section side & plan view 1:2

File:Build platform MetalicaRap v2.pdf

Build platform piston section side view 1:5

Version 1.0

alt text

File:MetalicaRap vers. 1.0.pdf

Plan view

Cartesian Gun A

Side View build table

Plan view build table

Side Section of Build table actuator

Build table drum

Build table guide bearings

Metal powder over spill tray , XY lead screw



You can download all 9 design files here : File:MetalicaRap vers1 9 of 9.pdf

Print the drawings add any modifications then scan and upload them to the site. We need to collaborate on ideas, this is open design.

Create and Upload your modified version of the above design drawings. No need to ask Be FREE'

The more the better the design, lets try for a dozen?

AMQ- A Million Questions section, no need to ask just add your thoughts

Note diference between minimum feature size tolerance, part final tolerance, printer machining tolerance, printer repeatability, post cool down tolerance. So should we design mechanics around 400µ Tolerance so it will still work if we don't get to 20µ/50µ. many commercial powder printers end up printing at 250 µ pre cool tolerance spec. But 400 µ may be more realistic since after printing,part cools down Kinks, coils & warps even if many printer can achieve feature size of 50µ. Though with post print subtractive ebeam machining we could bring it back to 50µ? Depends on parts shape, use ..etc

How will the 10µ metal powder effect the mechanics?

Self reproducing tolerance critical parts design around? / buyin ?


Cathode surface 10µ CHECK WITH EGN 2 gun cross point spec.

Threads ETC 10µ check Mechanical eng.

How do we avoid materials that out gass in high vacuum and so stop vacuum forming.? ..... Two suggestions from an Open source day Copenhagen, Use electric field to pull waste metal away switch on in between beam vaporizing pulses so avoid bending beam.-ve may magnetize powder switching on and off , To protect guns have 2 motorized slotted sheets just above the powder, the hole where the slots cross is where beam enters -ve will slow beam down too much So N.G. as beam may reach 8000m/sn mechanical movement approx 1m/ S

Cathode tungsten pin is heated to 2500o C electron source overheating surrounding mechanical construction once been at 2500o C for 2 days. Ideas to reduce heating of surroundings 1. Not wire connection but use RF aerial to Aeriel connection, insulator which? Principles behind problem Types of energy exchange EM radiation , no convection (vacuum) , Conduction through supports.?

First layers are tricky to print WHY residual tension left in metal. powder thermal pre-treatment to degass and avoid powder balls and good flow.

  • seach in google scholar for METAL POWDER BEAM any thing about why the first layers are so tricky to print and result in most residual stress. [67], [68]


More Examples

Practical manufacturing walk through

Manufacturing walk through Time/Cost

Given Electricity is 2kwh per hour .5Euro/hr

Part A

Material; Stainless steal, Size; 300x300x200mm Weight; 15Kg 10µ Stainless powder (40Euro/kg) melt print 100µ Z layer thickness

1 minute per 100µ each layer See below;

1 minute per Z 100µ layer, each layer preheated 20 degrees Centigrade under melting-point followed by printed by beam

5.33 minute per Every 10th layer Z axis correction see below ;

SEM ( part assumed to occupy 1/9 of whole print area; 1/9* 300*300=10 000<math>mm^2</math> measurement at every 10µ, SEM picture 500x500 pixel so 5mmx5mm, So for 10,000<math>mm^2</math> need 400 SEM pictures 10,000/25= 400 4x pictures from 4 picups gives effect of different angles? for 3D picture reconstruction so real distances, 400 5mmx5mm pictures, 250ms a picture = 100sec. plus time of mechanical movement of electron gun between .024m square patches at .03m per second is 12y strips each 0.3m strip takes 10 seconds to travel, so in all takes 120 seconds to cover build area( Risk of underestimate factor x100 ) 100+120=220 or 3.66 min Remove metal by Vaporization 1ms per 70µ diameter spot area 4000x10-6<math>mm^2</math> ( 850µs duration & 150µs beam movement) 1/10 of part high(Risk of underestimate factor x2) ( 1/10*10 000mm2/ 4000x10-6 <math>mm^2</math>= 1x105 spots 1x105 spots*1ms= 100Sec 1.66min

Time so far 200* Z correction layers 5.33 Min each 1066 + 1800 printed layer 1min each = 2866 min ( 2.0 days)

Cost 690 Euro materials 600Euro Electricity 90

Part B

Material; Aluminum Size; 300x300x20mm Weight; 1.5Kg Aluminum 15Euro 10µ powder, melt print 100µ Z layer thickness

Time 20* Z correction layers 5.33 Min each + 180 printed layer 1min each = 287 Min 4.8 hours

Cost 27 Euro materials 22 Euro Electricity 5 Euro

Further manufacturing walk through


injection molding powder

Aluminum powder 15 Euro/Kg 10µ

Carbon chromium 40Euro a kg. 74µ

Stainless powder 40Euro/kg 10µ

Possible self-replicated vacuum chamber: Anders used Blender to draw this rough sketch of a vacuum chamber made from hexagonal parts printed in a MetalicaRap.

Self replication

Self-replication of a vacuum chamber runs into the "how to make a match box inside a match box problem".

MetalicaRap V2's solution:Buy your 2 sizes of tube cut to length, the larger for chamber and build chamber the smaller for the spacing rings, weld the smaller in the larger as rings, weld in your self printed parts which are now large enough to fit
The hopper sensor box is too large to print in the build chamber, and you don't want the challenge of welding boxs that are air tight, so you by a plate as thick as the box and slightly over size(250Kg if 304), remove the build chamber from the bottom of your working printer, clamp the over size plate in and use your printer in subtractive electron beam machining mode with the beam striking at an angle by the use of an extra deflection coil, thereby cutting up the material you want to remove and then breaking the cut bits of with normal hand tools.

Future Development ..Green Tech./Solar Cell production.. Focus on products that serve the environment

A solar cell production plant design that MetalicaRap will be able to print, that will then utilize MetalicaRap's vacuum chamber and beam for solar cell manufacturing processes of; spluttering, deposition rate of a few micrometers per minute / electron beam heating evaporation deposition EBPVD [69] / possibly a micro pulsed electron deposition process, and so produce thin film CIGS solar cells at under 11 cents per Watt peak. We have had some interest from solar cell production professionals already!

So Solar cells cost for a family 3 Bed house; Average Electricity usage 4200KW per year, 4200KW/365days*4.93 Equivalent Hrs peak sunshine= 4200KW/1800Hrs=2.3KW peak of solar cell panels required, at 11 cents per Watt peak the solar cell's would cost 253 dollars from MetalicaRaps plant, cost of inverter plus extras 1300 dollar, so it may offer an uninstalled system at under 1,600 dollars,( current price for uninstalled system is around 14,000 dollars (jan 2011)).

(Calculation based on cloudy areas of world, 1KWatt peak solar panel system under 4.9 hours peak sunshine per day gives approx 1800KWh per year, A desert area at low latitude would be up to twice as good as this.)

Further future developments

Critical Design Review, Review of decisions made so far

In chronological order

1.metal.......................... Vs ..composite. ........... .........Why .Metals needed for high stress high temp contexts , engines, solar plants.. -ve ........................ +ve metals 100 % recyclable fits Cradle to Cradle Design See [70]

2.additive.Sintering........ Vs Subtractive EDM?.................Why Tool path manual intervention required.Consumables......... -ve ..Powder management ............ +ve

3.ebeam..Vs laser .....Why A)laser below 50W,small size part 5x5x5cm,slow B) Laser above 150W cost, permit , Wall plug efficiency , optics .-ve .not so cool , difficulty diagnostics...+ve solar cell printer possible

4.powder...........................Vs foil..........................................Why foil waste removal.................................-ve .Harder solid parts.& powder management...... +ve & correction sub. Vs one pass blind process ... ....Why .reliability Verifiable tolerance............................................. -ve ...Complexity..................... ................ +ve

6.gravity hopper................ Vs twin chamber........................ Why avoid old powder reuse fresh every time easier prep ............ -ve their must be a good reason to use 2 build chamber? e.g. EOS is. +ve static top of chamber gun with just sensor ring on cartesian axis Top gun shoots through sensor ring from top........... Vs two gun would ensure spot size on vaporisation but could add in again if existing does not work. Why So SEM near table Sensors PIN Diodes 164$ each not 64x PINdiodes . Pros & Cons of two guns design

8. Passive cooling Vs Water cooling for 5KW gun .............Why .Air cooling fins on cathode head block and on high voltage copper enclosed connector plus ducted fan & fins -ve need to be FEL modeled to check conductance. +ve Simplicity no water ( though could add later ).

9 Tungsten thermionic cathode filament.2600C. Vs .hot Field emission cathode ..Why Cost of IrCe, field emission required UHV, .Thermionic is OK in high vacuum... -ve hot spots poor beam focus reduced filament lifetime....... +ve cheap.

10. .Internal coils. Vs .External coils .... ....Why .to achieve small enough spot size as spherical aborations are zero on axis of lens and increase as you move out, ... -ve cost of low outgassing wire ., so higher current thicker wire and heat ? more experimentation needed.. +ve cheap

11. Split hopper ..... Vs ..One large dispenser hopper.....Why ..cost chamber size less force required on motion feed through............... -ve ..complexity of refill mechanism ( shutter with knife edges ) ............... +ve. initial lower cost

...................................... Vs ...............................................Why ............................................................................................... -ve ..................................................... +ve

....................................... list in importance order, bold text indicates more thought required

Useful links

EBM introduction [71]

Images EBM / EBW [72]

General background Videos EBW see here [73]

Back ground Information on Electron beam processes; electron beam welding / vaporization EBM(1), EBM 3D printing(2),

Scanning electron microscope SEM background(3)(4).



More technical sites

3. ,


Self Replication Engineering Options See section 2. [74].

EBM technical background lecture See here [75]

General background Videos EBW see here [76]

Discussion of Advantages and Disadvantages of different Tool head processes.

Futher Reading

Vacuum chamber principles; Essential reading before you weld/construct your vacuum chamber, Basic Vacuum technology by Varian

Maths behind vacuum processes ( Not for the faint hearted )[77]

Completed for now Research items and old design infomation

The electron gun (1.KW, 90KV)

Which metals for cathode/anode/wehnelt electrodes? '(tungsten / tungsten /molybdenum, alternatives?)

Which metal for "soft iron core" surrounding coil windings, unalloyed soft iron for yoke e.g. "Hyperm O", cobalt iron alloys for pole pieces if needed e.g. Permendur Vacoflux

Which thermal conducting material for anode support structure? copper See page 5 [9]

a)Thermionic emission regime

a).1 Ribbon hot filament design tungsten at 2500C 0.3 A/cm2(melts at 3410C)?or Thoriated Tungsten 1.16 A/cm2 or Tantalum 2.3 A/cm2(melts at 2996C)? Tungsten alternatives?

b)Thermionic and field emission regime with field emission cathode disadvantage requires 10 − 7 Torr vacuum, so baked-out Vacuum systems are required Vacuum system heated up to 200 C for 24 Hr under vacuumbut give the advantage of electrical break down no longer regarded as a threat.

b).1 Schottky emitters, / Zr coated tungsten tip ?, e.g. IrCe or LaB6 80 A/cm2// Difficult to stop it reacting with its own support material.

  • What insulator for surrounding the central stalk that makes the internal electrical connection to the hot IrCe metal ring which goes up through the cathode stem? Do later on UHV version.


old info Some say the "lots of small rigid parts joined together" approach -- illustrated on the right -- has "too many joins" for a vacuum chamber. Would a relatively soft material in the gaps between parts -- like the Pb lead between parts of a stained-glass window -- compress enough to make it air-tight? Normally use copper wire to make up "CF flange".[78]

As the main consideration is avoiding non MetalicaRap conventional machining, can you make the copper wire pinch/seal of a CF flange out of the edge of a purchased plain rectangular plate? Is there a better approach? Print the coper flange then uncoil?

NB. It can also weld finished parts together placed in the chamber, the chamber is twice as wide XY as build area approximately, as it needs space for removable metal powder hoppers!, can you use this extra space?,

Chamber 1.3m high, 1m wide, 0.6m depth powder build chamber is 0.3m High 0.3m Bredth 0.3m wide

Door size is up to you, could be a full side eg 1.3m by 1m.

Outstanding questions,

Which insulator for cylinder holding 100KV terminal in electrical feed-through in to chamber ? PTFE? See page 5 [7] Which insulator to secure tungsten wire? Which ceramic?

Which wire for coil windings ? (4A) telflon coated copper? Maybe? Which thermal conducting material for anode support structure? copper 20100 alternatives? See page 5 [9] What insulator for surrounding the central stalk that makes the internal electrical connection to the hot IrCe metal ring which goes up through the cathode stem?

  • Self study the material science to help us with its development free at this site[79]'' STUDY

Rejected design approaches

  • Cartesian Electron Gun A 600W (60KV 10mA) close to build platform on Cartesian X,Y support. Providing subtractive micro vaporizing and vision system

Design Tools

Electron Gun Collector(/cathode) Simulation Software (not for the faint hearted!)

Some people suggest the most acurate way for Electron gun design is it to be done manually with formula through consideration of 3 effects on electrons; Electromagnetic fields, laws of motion, Space charge (electrons pushing on each other). Here are two formula explanations and manuel calculations of pierce guns,; first a large non filament gun example See here [80], Second an example of Pierce weld gun See fig.3 [81] ), See final equations to give velocity of electron in equation(1.9) and beam current as (equation 2.10)See equations here [82] .

Others argue simulation software is accurate enough and necessary it was used 1980's onwards to refine design of the electron gun, See example design process of a gun cathode See page 19 here [83].

Cathode voltage choice controls minimum penetration depth of electrons energy in to the metal powder/target, beam current choice influences power transfer rate from electron beam to metal, once cathode voltage and max beam current are decided, Electron Gun Collector/cathode Simulation programs are used to design the appropriately cathode anode surface shapes to achieve the said max beam current at the applied cathode voltage, while maintaining at the gun crossover point the required beam power (Watts) at the optimum gun crossover diameter (cm) (gun crossover is situated in the middle of the anode see main electron gun diagram above), the gun crossover diameter is the primary factor controlling the final beam spot size on build platform/target ( other negative effects come from coil imperfections and aperture electron wave interference patterns) .

  • For comparison try to get hold of open source charge particle/electron trajectory analysis programs, some times called electron gun computer simulation programs, like SAM or ULTRASAM (USAM) (By m Tiunov BINP russia )or maybe TREDI with modification?Get here[84], ( # -indicates confirmed as currently for commercial sale with no useful free trial version, #EGUN [85] / #EGN2w, windows version/ #EGN2w is currently seen as obsolete but will work fine for us, byBill Herrmannsfeldt, Reinard Becker University of Frankfurt/M, [86]) or #TRAK or #MAGIC). GENERAL RESEARCH

But for now we will try with a general magnetostatic program like Poisson for tracking through coils and calculating resultant forces on coils ( later we track beam live with UAL see above ) and unfortunately we have no solution for cathode anode design as we require space charge calculations and temperature and field regime "Schottky emission" which this CPO student limited version blocks, but you can get to know the principles behind it by play with CPO, ( CPO Boundary element method simulation program student version for standard pierce gun cathode shape/ solutions, Download CPO here [87] install and run in XP compatibility mode! (right click properties / compatibility tab) , Pictures [88] Installation help[89]).

Poisson/Superfish are a suite programs for Unix or Windows, containing the key subprograms called; automesh and poisson and pandira the suite is available from Los Alamos Accelerator Code Group (LAACG) First Register your name on the download page and then the download site offers instant Download, Download page here [90], Due to the complexity of the input file format of automesh (AUTOMESH.IN) two "helper" programs Geometric modeler download Poisson/superfish here[91] and ViewGraph download here [92] are essential for input and output respectively. So using Geometric modeler to create the input file to Automesh which combines the settings list and mesh shape to produce the problem file which is then analyzed by running subprogram POISSON. Which output file is plotted by ViewGraph or Geometric modeler.

So in general terms Run Geometric modeller to aid the production of the required input files for automesh, upon running automesh the problem set up is achieved. Once automesh has finished running and creating the problem file ( XXXXXXXXX.T35 ) then the solver program Poisson acts on this file to do the simulation of the design, The Gun simulation is an magnetostatic problem so is solved through Poisson equations ie uses subprogram called "Poisson"( We do not use RF cavities in the electron gun so ignore programs for tuning them, with FISH in the program name) . See summary of POISSON suite input and output files here input & output files using POISSON suite. You can confirm you output with approximate hand calculations at centers of coils See formula here , Deflection of beam by coil here [93] , coil Magnetic field B calculations [94], Background Coil design[95].

Online Design Tools

Build speed Calculator Program

Use it to decide your; Power supply size, Beam power,Deflection speed,Build platform size,Layer thickness,Digital to Analogue converter speed for beam power modulation While considering factors like; How these decisions vary between different manufacturing metals used? How wall plug efficiency effects mains supply requirements? How beam to metal efficiency effects process?

How do I run the following ECMAScript program here ? anyone know? Until we solve this you can copy the following code in the edit mode of this wiki by;, first logon above ( create an account if new to site, chosse any name & any password as requested) then by hitting the edit button top right of this section you enter edit mode for this section. By highlighting the text between and including <html> and </html> below, then copy (ctrlC) to clip board. Paste (ctrlV) this in to a blank document in notepad + + and then save this new file as "name.html" . Open this name.html file by double clicking it or by opening it with your browser/firefox/explorer from the file open menu in the browser, ( you can download Notepad++ here [96])Enjoy!

<html> <head> <title>Build Speed Calculator </title> <script> // N:B: This program takes Latent heat in to account only in build times, not in Frequency caculations! // This program's results are only rough guide as it simplifies the problem or does not consider the following options; // It considers the melt area under the beam as a cube with equal sided lenghts, the option to make the X and Y directions longer will probably be implimented becasue;a) though the z layer thickness needs to be at final resolution specification as it can not possible to be varied across the build area, this is not true for the X & Y directions a variable spot size based approach would be advantagous b) the minimum feature size can be bigger than the print resolution. // // // It Caculates diffusivity limit using Fourer's 2nd Law, // Its durations do not include time for imaging or corection through vaporisation. // Mini research job for someone out their Some metal types diffusivity values have not been found, anyone can add them and remove commented out lines. // Program by Rapatan Tansen 5/2011 it will be added to GIT once we sort it out so your versions can be added. var stage; var vaporized = 999999999; var color = 'ffffff'; var ratio_required_for_cube_power_input_to_drop_below_vaporisation=0; var ratio_power_input_drop_achievable_by_beam_scan_rate_doubling=0; var multipass_build_slow_down_power_down_factor=0; var ratio_needed_to_increase_maximum_hardware_scan_by_to_avoid_vaporisation=0; var practicle_build_duration_message1=; var practicle_build_duration_message2=; var practicle_build_duration_message3=; var scenario=;

function getValue(t) { // function to go and fetch entry data variables by name from 'form' called 'calcform' ( see calcform at bottom of program)

  var i = document.getElementById('calcForm');
  var val = '0';
  for ( var j = 0; j < i.elements.length; j++ ) {
    if (i.elements[j].name == t) { // Finds name of variable in table of input variables

val = i.elements[j].value;

  return( Number(val) );


function setValue(t, v) { // function to go and put entry data variables by name from 'form' called 'calcform'

  var i = document.getElementById('calcForm');
  for ( var j = 0; j < i.elements.length; j++ ) {
    if (i.elements[j].name == t) { // Finds name of variable in table of input variables

i.elements[j].value = v;



function makeOutput() {

   var depth = (getValue('depth')); // in metres
var out = '';
   var beamspeed = depth / (meltTime(depth) + meltingTime(depth));
   var cubes = ( getValue('object_side_length_x')/100 * getValue('object_side_length_y')/100 * getValue('object_side_length_z')/100 ) / (depth*depth*depth); // x y z in cm convert to m , cubes in whole area fill not taken in to account here as preheat applied to whole area
   var fillfactor = getValue('fill') / 100;
   var passtime = cubes * ( 1 - fillfactor ) * depth / getValue('max_beam_speed');  // Time to pass cubes not melted
   var totalmelttime = cubes * ( meltTime(depth) + meltingTime(depth) ) * fillfactor;

var finaltime = (totalmelttime + cubes*preheatTime(depth) + passtime) /60/60; // totalmelttime is taking in to accountthe fill factor, but preheat time is all build area (via cubes), passtime is kipped area

var totalvaptime = .001*cubes * ( meltTime(depth) + meltingTime(depth) + boilTime(depth) + boilingTime(depth) );

out += 'build slow down factor;' + (diffusionDeflectionHardwareLimitsOnBuildTime(depth)).toPrecision(3) + ' Number of beam passes ; ' + (achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth) ).toPrecision(3) + '
' ; out += 'Beam power leaving gun: ' + BeamPowerLeavingGun() + ' W
'; out += 'Build duration with metal diffusivity & deflection coil speed limit No defocus : melting time ' + (((totalmelttime/60)/60)*diffusionDeflectionHardwareLimitsOnBuildTime(depth)).toPrecision(3) + ' hours + preheating time ' + ((cubes * preheatTime(depth)/60/60)*diffusionDeflectionHardwareLimitsOnBuildTime(depth)).toPrecision(3) + ' hours + skipping time ' + (passtime/60/60).toPrecision(2) + ' hours = ' + ((finaltime)*(diffusionDeflectionHardwareLimitsOnBuildTime(depth))).toPrecision(3) + ' hours to build

'; out += ' ' + practicle_build_duration_message1 + '
' + practicle_build_duration_message2 + ' '+ practicle_build_duration_message3 + '
' ;

var SpecialCasefinaltimeNodiffusionLimitOnPreheatAsDefocusBeam = (totalmelttime *(diffusionDeflectionHardwareLimitsOnBuildTime(depth))+ cubes*preheatTime(depth) + passtime) /60/60; // out += 'Build time with preheat defocused : melting time ' + (((totalmelttime/60)/60)*diffusionDeflectionHardwareLimitsOnBuildTime(depth)).toPrecision(3) + ' hours + Defocused beam preheating time ' + ((cubes * preheatTime(depth)/60/60)).toPrecision(3) + ' hours + skip ' + (passtime/60/60).toPrecision(2) + ' hours = ' + ((SpecialCasefinaltimeNodiffusionLimitOnPreheatAsDefocusBeam)).toPrecision(3) + ' hours to build </u>

'; out += ' Build time ignoring metal diffusivity limit: melting time ' + ((totalmelttime/60)/60).toPrecision(3) + ' hours + preheating time ' + (cubes * preheatTime(depth)/60/60).toPrecision(3) + ' hours + skipping time ' + (passtime/60/60).toPrecision(3) + ' hours = ' + (finaltime).toPrecision(3) + ' hours to build
'; out += 'Desired speed for Digital to Analogue converter controling beam power switching Off and On to achieve required melting : <u>' + ((((1/( (meltTime(depth)) + (meltingTime(depth)) ))*(diffusionDeflectionHardwareLimitsOnBuildTime(depth))).toPrecision(8))/1000000) + ' MHz </u>


out += 'Other info;
' ;

out += ' Scenario : ' + scenario + ' .....
'; out += ' Total vaporisation time of 1000th of volume of part: ' + (totalvaptime/60/60).toPrecision(2) + ' hours
'; out += ' Number of cubes within part: ' + (cubes).toPrecision(5) + '

out += ' Melt time 1 cube ( depth^3) ' + (meltTime(depth)).toPrecision(3) + ' S max thread exposure duration is ' + (maxExposureDuration(depth)).toPrecision(2) + ' S
'; // out += ' X Deflection coil scan sate ignoring diffusion limit: ' + (rasterXScanRate(depth)).toPrecision(5) + ' Hz .... X deflection coil scan rate taking in to acount diffusion limit ' + (maxThreadExposureXScanRate(depth)).toPrecision(5) + ' Hz ....
'; out += ' Cube melt time no diffusion limit ' + (meltTime(depth)).toPrecision(4) + ' S Cube melt time with diffusion limit ' + (maxExposureDuration(depth)).toPrecision(4) +' S ....

out += ' beam speed : ' + (beamspeed).toPrecision(5) + ' m/s ..... ';

out += ' Time spent on moving beam across non-treated areas: ' + (passtime/60/60).toPrecision(2) + ' hours

  out += ' Checks; 
' ; out += ' solid phase: ' + meltTime( depth ) * 1000; out += ' μs melting phase: ' + meltingTime( depth ) * 1000; out += ' μs liquid phase: ' + boilTime( depth ) * 1000; out += ' μs boiling phase: ' + boilingTime( depth ) * 1000; out += ' μs '; out += ' δT solid ' + solidTemp( meltTime(depth), depth ) + ' ' ; out += ' T melting ' + ( solidTemp( meltTime(depth), depth ) + getValue('preheat') ) + '
' ; out += ' practicle_build_speed_factor_output via scnario sub routine with max raster rate check ' + (diffusionDeflectionHardwareLimitsOnBuildTime(depth)).toPrecision(3) + '
The upped multipass scan rate is this amout larger than the entered scanrate limit ( limited by hardware ) ' + (practicalDurationMultiplicationFactor(depth)).toPrecision(3) +'
'; out += ' multipass_build_slow_down_power_down_factor (when none = 1) ' + (diffusionDeflectionHardwareLimitsOnBuildTime(depth)).toPrecision(3) +'
'; out += ' cube Power Reduction Required To Avoid Vaporiseation (when none = 1) ' + (cubePowerReductionRequiredToAvoidVaporiseation(depth)).toPrecision(3) +'
'; out += ' achievable Cube Power Drop To Avoid Vaporisation Through Beam Scan Speed Increase ' + (achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth)).toPrecision(3) +'
'; out += '
' ;
out += '
  for ( i = 1 ; i <= getValue('steps'); i++ ) {
     var t = i * getValue('timestep');
     var res = calcTemp(t, depth);
out = out + '
out = out + '
TimeTemperature of unit cubeStage
' + t + '' + res + ''+ stage +'


function mass(depth) {

  return(getValue('density_solid') * depth * depth * depth ); // get mass of box KG ,cubing lenght each lenght from cm to m to get volume x density giving mass kg


function WallSocketPower() {

  return power = getValue('current_beam') * getValue('voltage_gun')*(1/(getValue('wallplugefficiency')/100));    


function BeamPowerLeavingGun() {

  return power = (getValue('current_beam') * getValue('voltage_gun'));    


function beamPower() {

  return power = (getValue('current_beam') * getValue('voltage_gun')*(getValue('BeamToMetalAbsorbtionEfficiency')/100));    


function preheatTime(depth) {

  var d_T =  getValue('preheat') - getValue('InitialRoomTempinK'); //   all Kelvin  To det the duration up to preheat temp first remove the starting temprature ie room temp 18C 291 from preheat temp
  return(d_T * mass(depth) * getValue('shc_solid') / beamPower() );  // mass KG beam W  required change in temprature times specific heat solid divided by supplied beam power


function meltTime(depth) {

  var d_T = getValue('melting_point') - getValue('preheat');
  return(d_T * mass(depth) * getValue('shc_solid') / beamPower() );


function meltingTime (depth) {

  return( mass(depth) * getValue('heat_of_fusion_melt') / beamPower() );


function boilTime (depth) {

  var d_T = getValue('boiling_point') - getValue('melting-point');
  return(d_T * mass(depth) * getValue('shc_liquid') / beamPower() );


function boilingTime (depth) {

  return( mass(depth) * getValue('heat_of_fusion_boil') / beamPower() ); //  checks on temp transition values


function vaporizeTime (depth) { return (99999); }

function solidTemp (time, depth) {

  var d_T = time * beamPower() / ( mass(depth) * getValue('shc_solid') ); //  checks on temp transition values
  return ( getValue('preheat') + d_T );


function liquidTemp (time, depth) {

  var d_T = time * beamPower() / (mass(depth) * getValue('shc_liquid') );
  return ( getValue('melting_point') + d_T );

} function thermalDiffusivity() { var a= ((getValue('thermal_conductivity')) / (getValue('density_solid')*getValue('shc_solid'))); return (a); // ok }

function maxExposureDuration(depth){ //all the following routines caculate limits imposed from vaporisation avoidance and hardware scan rate limits. var time=((Math.PI)/(thermalDiffusivity()))*(((getValue('melting_point')*getValue('thermal_conductivity'))/(2*((beamPower())/(depth*depth)))) *((getValue('melting_point')*getValue('thermal_conductivity'))/((beamPower())/(depth*depth)))); // Time to vaporise is solution of Fourier 2nd law; which says

   //	second difeerential (ie accleeration of change) of Temperature T with depth z is equal to one over the thermal difussivity times fist differential of temperature T against Time t
   // under steady state conditions with different tempratures at ends of a virtual section or rod or cooling path, temperature across a long cyclinder/rod/cooling path  	at any point is constant as emergy flows through bar
   //  So temperature only changes when  the rate of heat flow changes (SECOND DIFFERENTIAL ) that thus produce chages in bar 
   // solved for initial state z= 0  surface of bar and z= infintie where no change of temprature 
   //and in case where t= 0 then current temprature is equal to initial tmeprature
   // So you get above formula ; formula(5.3) see p256 - p258  in William M steen Laser material processing (version 4) chapter 5.3 
   // analytical models of one dimensional heat flow   Ie one dimension is beam spot on metal; which flows in x y and z directions are analyzed,  

return(time); }

function rasterXScanRate(depth) { // this routine calculates scanrate (Hz) based on time taken to process x axis lenght of cubes * 2 ignoring latent heat fusion var melt_cubes_across_X_lenght_in_part = (((getValue('object_side_length_x')/100)/(getValue('depth'))))

//this rate and the following subroutines are beimg compared with rate from Fourier 2nd law that does not take in to account latent heat of fusion // So we have to ignore latent heat of fusion as that only applies whereupon the melt temprature has been reached // but we are using this for the scan rate for all preheating and heating up to melt temprature, var period = 2*(melt_cubes_across_X_lenght_in_part*((meltTime(depth)))); // shouold this be maxExposureDuration(depth) return ( 1/(period)); }

function maxThreadExposureXScanRate(depth) { // this routine caclulates the upped scan rate (Hz) caused my the need for multipasses of beam.

  var multi_pass_period = (((maxExposureDuration(depth)))*((getValue('object_side_length_x')/100)/(getValue('depth')))); 
  // .toFixed() ROUND UP DOES NOT WORK CHECK WITH PROGRAMMERis a round up form of command  cubemelttime/max exposure duration for thread 
  return ((1/(multi_pass_period)));

} function cubePowerReductionRequiredToAvoidVaporiseation(depth) { // this routine caclulates the required cube power down ratios to avoid vaporisation.

  var ratio_required_for_cube_power_input_to_drop_below_vaporisation= (((meltTime(depth)))/(maxExposureDuration(depth))); 
  return (ratio_required_for_cube_power_input_to_drop_below_vaporisation);


function achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth) {

   // this routine caclulates the required cube power down ratios to avoid vaporisation.

var ratio_power_input_drop_achievable_by_beam_scan_rate_doubling = ((getValue('max_hardware_limited_raster_scanrate'))/(maxThreadExposureXScanRate(depth)));

  // each bite at the cherry with no vaporisation is done at freq.of maxThreadExposureXScan Rate(depth) Hz how many of these can fit in Max hardware limit scan rate
  // If say 8 bites at the cherry are required to transfer enouch heat to cube,
  // than a 8x maxThreadExposureXScan Rate(depth)Hz value of Max hardware scanrate would mean that no consequential delay.
  // this case only works for max hardware scan rate being bigger than depower factor times rasterXscanrate 
  //(meltTIme/max exposure) 
  // If max hardware scan rate is smaller ie returned ratio_power_input_drop_achievable_by_beam_scan_rate_doubling < 1
  // then must apply (1<) cube reduction required to duration in main subroutine.
  if ( ratio_power_input_drop_achievable_by_beam_scan_rate_doubling < 1 ) {
  // It can be low for two reasons, 
  //1)  if max hardware is low / nearly 0  it will still just times build by factor required    
  //2)   and max threadexposure scan is high ( which is commmen )  
  // when max hardware is low we want it to increase duration and this fraction of 1 shows how far too low 
  // need to hand back how far too low.. Also still need to test for the remaining factor to times build speed 
  // by setting ratio_power_input_drop_achievable_by_beam_scan_rate_doubling=1  but not here do in main subroutine.
   // no doubling of beam speed possible so reduction must be achieved through build duration lengthening.          
   } else {
   // doubling of beam speed possible use above calculated value rounded up DO rounding later LATER &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 

// result should be 2 or higher what happens when not all needed need another check? // So caclulate required factor then

   //	IF achievable factor is higher set achivable equal to required. 

var ratio_power_input_drop_achievable_by_beam_scan_rate_doubling=(ratio_power_input_drop_achievable_by_beam_scan_rate_doubling).toPrecision(2) if ( (cubePowerReductionRequiredToAvoidVaporiseation(depth)) < ratio_power_input_drop_achievable_by_beam_scan_rate_doubling ) {

    //  all the required power drop can be achieved through increased beam speed / increased raster speed.

var ratio_power_input_drop_achievable_by_beam_scan_rate_doubling=(cubePowerReductionRequiredToAvoidVaporiseation(depth)) ;

       } else {
   // the increased beam speed cannot account for all required reduction, 

//ie need to lenghten build duration by the outstanding amount & drop or pulse power

  return (ratio_power_input_drop_achievable_by_beam_scan_rate_doubling);


function practicalDurationMultiplicationFactor(depth) { // this calculates how many times higher the upped scan rate is compared to the max hardware limited scan rate

  var factor = (maxThreadExposureXScanRate(depth))/(getValue('max_hardware_limited_raster_scanrate')); // .toFixed() needs to be rounded up TOP not bottom put back in later? 
  return ( factor );


function diffusionDeflectionHardwareLimitsOnBuildTime(depth) { // these calculations ignore the latent heat effects as vaporisation time Fourier 2nd law ignores it too.

  if ( (meltTime( depth )) < (maxExposureDuration(depth))) {
     // No Need to take a second pass  or extend build time with pulseWidthModulatebeampowerdrop, var practicle_hardware_build_speed_factor=1; practicle_build_duration_message1=; practicle_build_duration_message2=;
    var  multipass_build_slow_down_power_down_factor=1;   

practicle_build_duration_message1= ' Multi passes not required'; practicle_build_duration_message2=' Current delfection scan rate hardware limit is '+ ((getValue('max_hardware_limited_raster_scanrate')).toPrecision(7)) + ' Hz '; // kug

 	      practicle_build_duration_message3='  Required deflection coil scan rate hardware limit (Hz) would need to be ' + ((rasterXScanRate(depth)).toPrecision(7)); // how can I add so outputs desired_scan_rate_possible_new_redesign design= practicalDurationMultiplicationFactor(depth)*rasterXScanRate(depth)
          scenario=' A   Coil drivers can achieve required speed & metal diffusion limit not reached, so no multipass required ( design could be pushed harder?)';
  } else {
           // If cube melt time is above max exposuire duration; So Need to take a second pass or extend build duration at reduced power, so as not overload metal diffusion rate 
           // or will multi pass demand too higher speed of deflection coil; So need to increase build duration and drop power.

// Reduction by ratios "ratio_required_for_cube_power_input_to_drop_below_vaporisation" (rounded up) "ratio_power_input_drop_achievable_by_beam_scan_rate_doubling" // remaining requirement achieved through extending build duration & power drop Pulse Width Modulated beam power drop // = (needs1<)ratio_required_for_cube_power_input_to_drop_below_vaporisation/(or limited to required amount) ratio_power_input_drop_achievable_by_beam_scan_rate_doubling = multipass_build_slow_down_power_down_factor

            // calculate remaining cube power drop thats required after increasing the beam speed up as much as posible ( or as much as needed so result is 1 for multipass_build_slow_down_power_down_factor)	      
          if ( achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth) > 1 ) {

var multipass_build_slow_down_power_down_factor=((cubePowerReductionRequiredToAvoidVaporiseation(depth))/(achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth)));

if ( multipass_build_slow_down_power_down_factor < 2 ) { // No build & power slow down is required, all achieved through beam speed up

                      practicle_build_duration_message1= ' Multi passes required , deflection coil hardware can cope with beam moving faster, ';
              var     multipass_build_slow_down_power_down_factor =1;  

practicle_build_duration_message2=' Delfection scan rate is '+ (((maxThreadExposureXScanRate(depth))*(achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth))).toPrecision(7)) + ' Hz '; // + maxThreadExposureXScanRate(depth) add later


scenario=' B BeamSpeed/Scanrate rate increased coil drivers can cope with increase';

      		    } else {
                 // multipass_build_slow_down_power_down_factor >= 2 So need both deflection coil increase and build time lenghtening with power drop
                    practicle_build_duration_message1='  To avoid lenghtened build duration (above), caused by deflection coil hardware being too slow, increase maximum hardware deflection coil speed by improving coil drvier circuits (more expensive drivers running coils at incresed volatges and currents ) ';

practicle_build_duration_message2=' Current delfection scan rate is '+ (((maxThreadExposureXScanRate(depth))*(achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth))).toPrecision(7)) + ' Hz '; // + maxThreadExposureXScanRate(depth) add later practicle_build_duration_message3=' To avoid build time lenghtineing required deflection coil scan rate (Hz) would need to be ' + ((practicalDurationMultiplicationFactor(depth)*rasterXScanRate(depth)).toPrecision(7)); // how can I add so outputs desired_scan_rate_possible_new_redesign design= practicalDurationMultiplicationFactor(depth)*rasterXScanRate(depth)

                 scenario=' C   BeamSpeed/Scanrate rate increase & Increase build duration  Coils cannot go fast enough use pulsed power';

} } else { // find how far too low max hardware scan rate is; 1/ratio_power_input_drop_achievable_by_beam_scan_rate_doubling give as duration lengthening factor & multiply with maxThreadExposureXScanRate(depth) the freq based on maxdurationTIme on cube

		var  multipass_build_slow_down_power_down_factor= (1/(achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth)));

practicle_build_duration_message1=' Coils operate so slow that they cannot even meet a multipass scan rate, increase maximum hardware deflection coil speed by improving coil drvier circuits (more expensive drivers running coils at incresed volatges and currents ) '; practicle_build_duration_message2=' Current delfection scan rate hardware limit is '+ ((getValue('max_hardware_limited_raster_scanrate')).toPrecision(7)) + ' Hz '; // kug practicle_build_duration_message3=' Scan rate required to achive even multipass scanrate deflection coil scan rate, hardware limit (Hz) would need to be ' + ((multipass_build_slow_down_power_down_factor*(getValue('max_hardware_limited_raster_scanrate'))).toPrecision(7))+' Hz To achive no extension in build duration a single pass scan rate, deflection coil scan rate hardware limit (Hz) would need to be ' + ((multipass_build_slow_down_power_down_factor*(getValue('max_hardware_limited_raster_scanrate'))*cubePowerReductionRequiredToAvoidVaporiseation(depth)).toPrecision(7)); //

                 scenario=' D    Increase build duration, Coils cannot go fast enough use pulsed power';


// let it equal 1 to caculate remainder //NOT NEED? ratio_power_input_drop_achievable_by_beam_scan_rate_doubling = 1; // multipass_build_slow_down_power_down_factor=(cubePowerReductionRequiredToAvoidVaporiseation(depth))/ (achievableCubePowerDropToAvoidVaporisationThroughBeamScanSpeedIncrease(depth));

      return (multipass_build_slow_down_power_down_factor);


function calcTemp(time, depth) {

  var res = 0;
  var time_solid = meltTime( depth );
  if ( time < time_solid ) {
     stage = 'solid A'

color = 'ffffff'

     // Solid
     res = solidTemp(time, depth);            
  } else {
     time = time - time_solid;
     var time_melting = meltingTime( depth )
     if (time <= time_melting) {
         // Melting
     stage = 'solid B'

color = 'ffffff'

         res = getValue('melting_point');
     } else {
         time = time - time_melting;
         var time_liquid = boilTime( depth );
         if ( time < time_liquid ) {

stage = 'Melting C' color = '0000ff'

            // Liquid
            res = liquidTemp(time, depth);
         } else {
            time = time - time_liquid;
            var time_boiling = boilingTime( depth );
            if (time <= time_boiling ) {
            stage = 'Liquid D'

color = '0000ff' // Boiling

          	res = getValue('boiling_point');

} else { time = time - time_boiling; var time_vapor = vaporizeTime( depth ); if (time <= time_vapor) {

stage = 'Vapor E' color = 'ff0000' // Vaporised

               res = 'gone';  

} else { alert('error'); }



function selectmetal(s) { // s = metal choise field STILL TO GET FIGURES FOR Cobalt chromium , copper , gold and molybdenium, 006 before decimal means not got number yet if(s == "titanium") { setValue('preheat', 1648);// K complete data setValue('BeamToMetalAbsorbtionEfficiency', 85);//  % setValue('density_solid', 4510);// kg/m^3 setValue('melting_point',1668);// K T setValue('boiling_point', 3260);// K T setValue('shc_solid', 519);// J/kg/K setValue('shc_liquid', 519);// J/kg/K setValue('heat_of_fusion_melt',437000);// J/kg setValue('heat_of_fusion_boil', 9000000);// J/kg setValue('thermal_conductivity',19);// W/m/K K setValue('thermal_diffusivity', 0.0000081);// m^2/s check factor of 10 out?

}else if(s == "aluminium") { setValue('preheat', 640);// K complete data setValue('BeamToMetalAbsorbtionEfficiency', 0085);//  % setValue('density_solid', 2700);// kg/m^3 setValue('melting_point',660);// K setValue('boiling_point', 2450);// K setValue('shc_solid', 900);// J/kg/K setValue('shc_liquid', 900);// J/kg/K check setValue('heat_of_fusion_melt',397000);// J/kg setValue('heat_of_fusion_boil', 9492000);// J/kg setValue('thermal_conductivity',226);// W/m/K setValue('thermal_diffusivity', 0.000093);// m^2/s }else if(s == "cobalt_chromium") { setValue('preheat', 001667);// K setValue('BeamToMetalAbsorbtionEfficiency', 0085);//  % setValue('density_solid', 004350);// kg/m^3 setValue('melting_point',1491);// K setValue('boiling_point', 003260);// K setValue('shc_solid', 00622);// J/kg/K setValue('shc_liquid', 00622);// J/kg/K setValue('heat_of_fusion_melt',00440000);// J/kg setValue('heat_of_fusion_boil', 009830000);// J/kg setValue('thermal_conductivity',226);// W/m/K setValue('thermal_diffusivity', 0.000095);// m^2/s }else if(s == "copper") { setValue('preheat', 1063);// K copper type; C10100 name; oxygen free elctronic coppper, setValue('BeamToMetalAbsorbtionEfficiency', 0085);//  %aplication for bus tube, conductors, vacuum seals , setValue('density_solid', 8900);// kg/m^3 glass to metal seals wave guides (Use C65100 for heat exchange electrical conduits) setValue('melting_point',1083);// K setValue('boiling_point', 002260);// K setValue('shc_solid', 385);// J/kg/K setValue('shc_liquid', 385);// J/kg/K setValue('heat_of_fusion_melt',00440000);// J/kg setValue('heat_of_fusion_boil', 009830000);// J/kg setValue('thermal_conductivity',391);// W/m/K setValue('thermal_diffusivity', 0.000095);// m^2/s ok Source: wikipedia }else if(s == "gold") { setValue('preheat', 1295);// K setValue('BeamToMetalAbsorbtionEfficiency',85);//  % setValue('density_solid', 19300);// kg/m^3 19.32Mg/m^3 setValue('melting_point',1335);// K setValue('boiling_point', 002260);// K setValue('shc_solid', 131);// J/kg/K setValue('shc_liquid', 00622);// J/kg/K setValue('heat_of_fusion_melt',00440000);// J/kg setValue('heat_of_fusion_boil', 009830000);// J/kg setValue('thermal_conductivity',300);// W/m/K setValue('thermal_diffusivity', 0.000095);// m^2/s }else if(s == "iron") { setValue('preheat', 1516);// K complete data setValue('BeamToMetalAbsorbtionEfficiency', 85);//  % setValue('density_solid', 7870);// kg/m^3 setValue('melting_point',1536);// K setValue('boiling_point', 3000);// K setValue('shc_solid', 460);// J/kg/K setValue('shc_liquid', 00460);// J/kg/K setValue('heat_of_fusion_melt', 275000);// J/kg setValue('heat_of_fusion_boil', 6362000);// J/kg setValue('thermal_conductivity',50);// W/m/K setValue('thermal_diffusivity', 0.0000138);// m^2/s ok Source: wikipedia }else if(s == "molybdenium") { setValue('preheat', 001667);// K setValue('BeamToMetalAbsorbtionEfficiency', 0085);//  % setValue('density_solid', 004350);// kg/m^3 setValue('melting_point',1491);// K setValue('boiling_point', 003260);// K setValue('shc_solid', 00622);// J/kg/K setValue('shc_liquid', 00622);// J/kg/K setValue('heat_of_fusion_melt',00440000);// J/kg setValue('heat_of_fusion_boil', 009830000);// J/kg setValue('thermal_conductivity',226);// W/m/K setValue('thermal_diffusivity', 0.000095);// m^2/s }else if(s == "stainlesssteel") { setValue('preheat', 1430);// K stainless steel 304 complete data setValue('BeamToMetalAbsorbtionEfficiency', 85);//  % setValue('density_solid', 8030);// kg/m^3 setValue('melting_point',1450);// K setValue('boiling_point', 3000);// K setValue('shc_solid',500);// J/kg/K setValue('shc_liquid',500);// J/kg/K check setValue('heat_of_fusion_melt',300000);// J/kg setValue('heat_of_fusion_boil', 6500000);// J/kg setValue('thermal_conductivity', 21.4);// W/m/K setValue('thermal_diffusivity', 0.000005);// m^2/s ok tainless 304 }else if(s == "tungsten") { setValue('preheat', 3390);// K complete data setValue('BeamToMetalAbsorbtionEfficiency', 85);//  % setValue('density_solid', 19300);// kg/m^3 setValue('melting_point',3410);// K setValue('boiling_point', 5930);// K setValue('shc_solid', 140);// J/kg/K setValue('shc_liquid', 140);// J/kg/K check setValue('heat_of_fusion_melt',185000);// J/kg setValue('heat_of_fusion_boil', 4020000);// J/kg setValue('thermal_conductivity',164);// W/m/K K setValue('thermal_diffusivity', 0.0000607);// m^2/s }else if(s == "prg_test_1kg_1k_titanium") { setValue('object_side_length_x', 6.12);// this defines 6.12 cude which weighs 1Kg setValue('object_side_length_y', 6.12);// setValue('object_side_length_z', 6.12);// setValue('depth', 0.0612);// this is the whole 1Kg cube in one go setValue('preheat', 1667);// This is for testing this program is reasnable acurate. ADD X Y Z DEPTH setValue('current_beam', 1);// So ignore frequency calculation results as treating 1kg titanium block as one cube setValue('voltage_gun', 731.77);//this is set to specific heat capacity unity settings ie 622Watt at 1Kg Titanium at 1K setValue('BeamToMetalAbsorbtionEfficiency', 85);//  % setValue('density_solid', 4510);// kg/m^3 setValue('melting_point',1668);// K T setValue('boiling_point', 3260);// K T setValue('shc_solid', 519);// J/kg/K setValue('shc_liquid', 519);// J/kg/K setValue('heat_of_fusion_melt',437000);// J/kg setValue('heat_of_fusion_boil', 9000000);// J/kg setValue('thermal_conductivity',19);// W/m/K K setValue('thermal_diffusivity', 0.0000081);// m^2/s check factor of 10 out? setValue('timestep', 0.5);// s setValue('steps', 40);// } }

</script> </head> <body>

<form id="calcForm">

Build Speed Calculator <select name="metal_selector" onChange="selectmetal(this.value);" style="font-size: 90%;"> <option value="aluminium">Aluminium</option> <option value="iron">Iron</option> <option value="stainlesssteel">StainlessSteel</option> <option value="titanium" selected="selected">Titanium</option> <option value="tungsten">Tungsten</option> <option value="prg_test_1kg_1k_titanium">Prg Test 1Kg 1K Titan.</option> </select> How much money should you spend on; Power Supply? Deflection coil drive circuits? Digital to Analogue converter?

Final printed object size: x <input type="text" size="6" name="object_side_length_x" value="30" style="border: solid 1px #FF9900; font-size:110%;"/> y <input type="text" size="6" name="object_side_length_y" value="30" style="border: solid 1px #FF9900; font-size:110%;"/> z <input type="text" size="6" name="object_side_length_z" value="2" style="border: solid 1px #FF9900; font-size:110%;" /> cm     Layer depth defining final print resolution: <input type="text" size="6" name="depth" value="0.000023" style="border: solid 1px #FF9900; font-size:110%;"/> m       Fill: <input type="text" size="2" name="fill" value="20" />%

Initial Room Temprature in Kelvin: <input type="text" size="4" name="InitialRoomTempinK" value="291" /> K              Metal preheat temperature ( normally 20C below melt tempreature ): <input type="text" size="4" name="preheat" value="1648" style="border: solid 1px #FF9900; font-size:110%;"/> K

Wall plug efficiency: <input type="text" size="3" name="wallplugefficiency" value="85" /> %                                                  Beam to metal absorbtion efficiency: <input type="text" size="3" name="BeamToMetalAbsorbtionEfficiency" value="85" /> %

Wall socket power:: <input type="text" size="2" id="RequiredWallSocketPower" value="" /> W         Gun voltage: <input type="text" size="4" name="voltage_gun" value="100000"style="border: solid 1px #FF9900; font-size:110%;" /> V      Beam current: <input type="text" size="2" name="current_beam" value="0.010" style="border: solid 1px #FF9900; font-size:110%;"/> A     Beam power entering metal: <input type="text" size="4" id="powercell" value="" /> W        

Maximum hardware speed to drive Scan Rate for deflection coils : <input type="text" size="6" name="max_hardware_limited_raster_scanrate" value="160000" style="border: solid 1px #FF9900; font-size:110%;"/> Hz ( typical 24000)   &nbsp
Maximum beam speed used when skipping nonpart areas: <input type="text" size="6" name="max_beam_speed" value="8000" style="border: font-size:110%;" /> m/s   &nbsp

Constants; Solid density: <input type="text" size="6" name="density_solid" value="4350" style="font-size:50%;color:grey"/> kg/m3     Melting point: <input type="text" size="6" name="melting_point" value="1668" style="font-size:50%;color:grey"/> K     Boiling point: <input type="text" size="6" name="boiling_point" value="3260" style="font-size:50%;color:grey"/> K     Solid specific heat capacity: <input type="text" size="6" name="shc_solid" value="622" style="font-size:50%;color:grey"/> J/kg/K
Liquid specific heat capacity: <input type="text" size="6" name="shc_liquid" value="622" style="font-size:50%;color:grey"/> J/kg/K     Latent heat of fusion/melting: <input type="text" size="6" name="heat_of_fusion_melt" value="440000" style="font-size:50%;color:grey"/> J/kg     Latent heat of Fusion/boiling: <input type="text" size="6" name="heat_of_fusion_boil" value="9830000" style="font-size:50%;color:grey"/> J/kg
Thermal Conductivity : <input type="text" size="6" name="thermal_conductivity" value="226" style="font-size:50%;color:grey"/> W/m/K     Thermal Diffusivity: <input type="text" size="6" name="thermal_diffusivity" value="0.000095" style="font-size:50%;color:grey"/> m2/s     Table output Format definition, Time step: <input type="text" size="6" name="timestep" value="0.00000005" style="font-size:50%;color:grey" ;/> s      number of Steps: <input type="text" size="6" name="steps" value="40" style="font-size:50%;color:grey"/>
<input type="submit" value="Calculate build duration" onClick="document.getElementById('output').innerHTML = makeOutput(); document.getElementById('powercell').value = beamPower(); return(false)" /> <input type="submit" value="Calculate required wall socket power" onClick="document.getElementById('outputWallP').innerHTML = makeOutput(); document.getElementById('RequiredWallSocketPower').value = WallSocketPower(); return(false)" />


</body> </html>