Search

3D Printing – behind the screen

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

3D Printing – behind the screen
3 (60%) 2 votes

{:en}We design something digging into the depths of our imagination, feed into some flashy software and obtain stunning prints. But how much are we aware of what is going on behind these processes? Let’s explore.

CAD design
As already known, the first step of any 3D printing process begins with designing a part in a computer aided design (CAD) software. The figure below shows the sequence to be followed. There are three major types of 3D CAD models. Though we are not much concerned about the algorithm behind these models, it is useful just to know the types, as it may come handy when dealing with design errors.

Wireframe model: The object is visualised as a set of edges or corner points in a wireframe model. It is simple in construction, but does not contain any information about surface or volume of the object. Misinterpretation of the object is also possible because of absence of opaque surfaces.

Wireframe model
Wireframe model

Surface model: In a surface model, as the name suggests the object is visualised as a set of surfaces. Here visible and hidden edges can be differentiated but volume information cannot be obtained.

Surface model
Surface model

Volume model: The actual presence of material is visualised through volume model. The intent of designer can be directly modelled as a volumetric object. Volumetric models are further divided into three more categories, constructive solid geometry, boundary representation model and hybrid model. They differ in terms of mode of construction, but the output functionalities are more or less the same.

Volume model
Volume model

Almost all the CAD software today are intelligent enough to combine all of these features optimally to provide good quality design and low data volume. Once we design the model to be built, we will need to slice it as the next step of 3D printing process. This subsequent process needs to be compatible with the file format output of CAD. As in any other sector, each design software provider also maintains its own data format. Hence an interface was developed, which is a set of rules, conventions and conditions, and defines the information exchange between two entities. In simple words, the CAD file which was created has to be converted into an interface format to process it with another software. IGES, STEP, VDAFS, DXF and STL are some popular interfaces used in CAD data processing.

STL is the interface which is widely used by the 3D printing community, so we will explore a bit of what happens in this data format. Once the CAD modelling is completed, we save it in STL format. STL stands for Standard Tessellation Language, though STereoLithography or Standard Triangle Language is also sometimes used. The entire 3D model is made to represent as connected triangles in this format. Each triangle is represented by its coordinates of edges and surface normal vector (a direction perpendicular to the surface of the triangle). The quality of the part is determined by these triangles. Higher the density of triangular meshing, higher will be the part quality, but resulting in higher data volume as well.

Behind the screen, these STL files specify ASCII and binary representations to be processed by microprocessors or microcontrollers. Binary files are most common as tend to be lighter. A binary STL has the information showing the title for the file, the number of facets, the three vertices of the triangle and the normal vector. A simplified explanation of the syntax is shown below.

Line 1: Header – Title of file
Line 2: Number of triangles
Now for each triangle in the file,
Line 3: Normal vector (specified in terms of I,j,k vectors)
Line 4: X,Y,Z coordinates for vertex 1
Line 5: X,Y,Z coordinates for vertex 2
Line 6: X,Y,Z coordinates for vertex 3
Line 7: Attribute byte count

Lines 3 to 7 are repeated for the total number of triangles present in the STL file. This means that by utilising the proper syntax, the entire CAD model can be written as codes and processed without using a CAD software (though it may make you look a bit geeky).

Slicing
So now we have created our 3D CAD model and converted into STL format. Note that STL is only an interface format to enable communication between entities. The next step is to convert this file into a language which is understood by the stepper motors in our 3D printer. Moreover 3D printing is a layer by layer manufacturing process. So the generated STL file is to be arranged as geometries stacked in the vertical direction. This process is termed as slicing.

A number of software are available for slicing as well. They slice the model into horizontal layers and formulate the path of tool to trace these layers. The STL file generated from previous step is provided as input to the slicing software, and output is obtained in terms of gcode. Gcode is the language which is to be fed to the microcontroller which controls the machine. Each line in a gcode program consists of information about the sequence of operations in the form of pre-defined codes. A small glimpse of an example gcode file is shown below.

M190 S60 ; set bed temperature
M104 S200 ; set temperature
G28 ; home all axes
M109 S200 ; wait for temperature to be reached
G90 ; use absolute coordinates
G21 ; set units to millimeters
G92 E0 ; reset extrusion distance
M82 ; use absolute distances for extrusion
G1 Z0.300 F7800.000
G1 X54.010 Y59.690
G1 F1800.000 E1.00000
G1 X54.190 Y59.510 F540.000 E1.00707
G92 E0
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors

The above program has pre-defined keywords such as M190, S60, etc. Each of these keywords has respective meanings understood by the microcontroller. It also means that you can program the entire gcode file and feed to the 3D printer’s microcontroller without needing any CAD/STL file (you can imagine the level of geekiness).

Printing
Once this gcode program is fed into the 3D printer, its microcontroller understands the keywords, reads the values, and provides appropriate voltage signals as output. How the microcontroller converts computer code into electrical voltages is a subject of micro-level operations involving Boolean logic, nevertheless, it is quite sufficient to realise that you can alter the voltage signals by editing the gcode data. These voltage signals are fed to the stepper motors, extruder, heating element and other electrical items in the printer. Thus the table moves, filament gets heated, extruder moves by timed modulation of these signals; and your designed model gets printed in front of your eyes!

It is always beneficial to monitor the output of various processing steps, it helps in troubleshooting too. So ready to type your own gcode program and build your part? Why not give a try?{:}{:es}Diseñamos algo para excavar en las profundidades de nuestra imaginación, lo  introducimos  en cualquier software que nos guste y obtenemos impresiónes asombrosas. Pero, ¿cuántos de nosostros somos conscientes de lo que está pasando detrás de este procesos? Vamos a explorarlo.

Diseño CAD.

Como ya se sabemos, la primera etapa de cualquier procedimiento de impresión 3D ses el diseño en cualquier software asistido por computadora (CAD). La siguiente figura muestra la secuencia a seguir. Hay tres tipos principales de modelos CAD en 3D. Aunque nunca nos preocupamos tanto por el algoritmo detrás de estos modelos, es útil sólo para conocer los tipos, ya que puede ayudarnos cuando de errores de diseño se trate.

Modelo Alambre: El objeto se visualiza como un conjunto de aristas o puntos de esquina en un modelo de estructura de alambre. Esto es lo mas simple en construcción, pero no continene ninguna información acerca de superficies o volumenes del objeto. Malinterpretar el objeto es muy común debido a la ausencia de superficies opacas.

Wireframe model
Modelo de alambre

Modelo de superficie: Como el nombre lo sugiere el modelo se visualiza con un conjunto de superficies. Aquí encontramos bordes visibles y ejes ocultos que podemos diferencias, sin embargo la información del volumen no puede ser obtenida.

Surface model
Modelo de superfice

Modelo con volumen: La precencia actual de material es visualizada atravez del modelo. La intención del diseñador es representarse como un modelo volumetrico. Los modelos volumétricos se dividen en tres categoriás, Geometría sólida constructiva, Modelo de represetnación de límites y Modelo híbrido. Estos difieren en terminos de modos de construcción, pero las funcioanlidades son mas o menos las mismas.

Volume model
Modelo con voluen

Casi todo el software CAD de hoy día es lo suficientemente inteligente para combinar todas estas características de forma óptima para proporcionar un diseño de buena calidad y bajo volumen de datos. Una vez que diseñamos el modelo que se construirá, tendremos que cortarlo como el siguiente paso del proceso de impresión 3D. Este proceso posterior tiene que ser compatible con el formato CAD de archivo de salida. Al igual que en cualquier otro sector, cada proveedor de software de diseño también mantiene su propio formato de datos. Por lo tanto se desarrolla una interfase, que es un conjunto de reglas, convenciones y condiciones, y define el intercambio de información entre dos entidades. En palabras sencillas, el archivo CAD que fue creado tiene que ser convertido en un formato de interfaz para procesar con otro software. IGES, STEP, VDAFS, DXF y STL son algunas interfaces populares utilizados en el procesamiento de los datos CAD.

STL es la extensión más utilizada por la comunidad de impresión en 3D, por lo que vamos a explorar un poco de lo que sucede en este formato de datos. Una vez que se ha completado el modelado CAD, lo guardamos en formato STL. STL significa Norma teselación lengua, aunque la STereoLithograpy o Standard Triangle Lenguage también se utilizan a veces. todo el modelo 3D está hecho para representar en forma de triángulos conectados. Cada triángulo está representado por sus coordenadas de bordes y vector normal de superficie (una dirección perpendicular a la superficie del triángulo). La calidad de la parte está determinada por estos triángulos. Mayor es la densidad del mallado triangular, más alta será la calidad de la pieza, pero lo que resulta en un mayor volumen de datos también.

Detrás de la pantalla, estos archivos STL especificamente ASCII y representaciones binarias son mastarde procesados por los microprocesadores o microcontroladores. Los archivos binarios son los más comunes y tienden a ser más ligeros. Un STL binario tiene la información que muestra el título para el archivo, el número de facetas, los tres vértices del triángulo y el vector normal. Una explicación simplificada de la sintaxis se muestra a continuación.

Line 1: Header – Title of file
Line 2: Number of triangles
Now for each triangle in the file,
Line 3: Normal vector (specified in terms of I,j,k vectors)
Line 4: X,Y,Z coordinates for vertex 1
Line 5: X,Y,Z coordinates for vertex 2
Line 6: X,Y,Z coordinates for vertex 3
Line 7: Attribute byte count

Líneas 3 a 7 se repiten para el número total de triángulos presentes en el archivo STL. Esto significa que utilizando la sintaxis correcta, todo el modelo CAD puede ser escrito como códigos y se procesa sin utilizar un software de CAD (aunque puede que te veas un poco geek).

Cortar

Así que ahora hemos creado nuestro modelo CAD en 3D y lo convertimos en un formato STL. Tenga en cuenta que STL es solamente un formato de interfaz para permitir la comunicación entre entidades. El siguiente paso es convertir este archivo en una lengua que sea comprensible por los motores paso a paso en nuestra impresora 3D. Por otra parte la impresión 3D es una capa por capa de proceso de fabricación. Así el archivo STL generado es para ser dispuestos como geometrías apiladas en la dirección vertical. Este proceso se denomina como el corte en capas.

Una serie de software están disponibles para hacer estos cortes. Ellos cortan el modelo en capas horizontales y formulan el camino de la herramienta para rastrear estas capas. El archivo STL generado a partir del paso anterior se proporciona como entrada para el software de corte, y se obtiene el producto en términos de gcode. Gcode es el lenguaje que ha de alimentar al microcontrolador que controla la máquina. Cada línea en un programa gcode consiste en información sobre la secuencia de operaciones en forma de códigos predefinidos. Una pequeña muestra de un ejemplo de archivo gcode se muestra a continuación.

M190 S60 ; set bed temperature
M104 S200 ; set temperature
G28 ; home all axes
M109 S200 ; wait for temperature to be reached
G90 ; use absolute coordinates
G21 ; set units to millimeters
G92 E0 ; reset extrusion distance
M82 ; use absolute distances for extrusion
G1 Z0.300 F7800.000
G1 X54.010 Y59.690
G1 F1800.000 E1.00000
G1 X54.190 Y59.510 F540.000 E1.00707
G92 E0
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors

El programa anterior tiene palabras clave predefinidas tales como M190, S60, etc. Cada una de estas palabras clave tiene significados respectivos entendidos por el microcontrolador. También significa que usted puede programar todo el archivo gcode y alimentar al microcontrolador de la impresora 3D sin necesidad de ningún archivo de CAD / STL (se puede imaginar el nivel de geekiness).

Imprimir

Una vez que este programa gcode se introduce en la impresora 3D, el microcontrolador entiende las palabras clave, lee los valores, y proporciona señales de salida de voltaje apropiadas. Como el microcontrolador convierte código informático en voltajes eléctricos esta sujeto a micro operaciones que implican la lógica booleana, sin embargo, es más que suficiente para darse cuenta de que puede alterar las señales de voltaje mediante la edición de los datos gcode. Estas señales de tensión alimentan a los motores paso a paso, extrusor, elemento de calentamiento y otros artículos eléctricos de la impresora. Por lo tanto la mesa se mueve, el filamento se calienta, la extrusora se mueve por la modulación sincronizada de estas señales; y su modelo diseñado se imprime en frente de tus ojos!

Siempre es beneficioso para monitorizar la salida de diversas etapas de procesamiento, que ayuda en la solución de problemas también. ASí que etas dispuesto a escribir tu propio programa gcode y construir tu parte? ¿Por qué no intentarlo

{:}


Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Profile photo of Chola

Written by 

Engineer and 3D printing enthusiast, experimenting with technologies and materials associated with additive manufacturing

Related posts

Leave a Comment