Fitxers STL: Tot el que has de saber sobre aquest format i les seves alternatives

STL, render

Si us heu endinsat en el món de la impressió 3D, segur que heu vist en més d'un lloc les sigles STL. Aquestes sigles fan referència a un tipus de format de fitxer (amb extensió .stl) que ha estat molt important, encara que ara hi ha algunes alternatives. I és que, els dissenys 3D no poden ser impresos tal com, com bé sabràs, i necessiten uns passos intermedis.

Quan es té el concepte de model 3D, cal utilitzar un programari per disseny CAD i generar el render. Després es pot exportar a un format STL per després passar-ho per un slicer que el «rebana» per crear, per exemple, un GCode que sigui comprensible per la impressora 3D i que així pugui anar creat les capes fins a completar la peça. Però, no et preocupis si no ho comprens del tot, aquí t'explicarem tot el que cal saber.

Processament del model 3D

liquadora

Amb les impressores convencionals es té un programa, com pot ser un lector de PDFs, o un editor de text, un processador de text, etc., on hi ha una funció per impressió que en prémer-la el document anirà a la cua d'impressió perquè sigui imprès. No obstant això, a les impressores 3D és una mica més complex, ja que es necessiten 3 categories de programari perquè funcioni:

  • Programari de modelatge 3D: poden ser eines de modelatge o CAD on crear el model que es vol imprimir. Alguns exemples són:
    • TinkerCAD
    • liquadora
    • BRL-CAD
    • DesignSpark Mecànic
    • freecad
    • OpenSCAD
    • Ales 3D
    • Autodesk AutoCAD
    • Autodesk Fusion 360
    • Autodesk Inventor
    • Presentació 3D
    • Sketchup
    • MoI 3D
    • Rhino3D
    • Cinema 4D
    • SolidWorks
    • Maya
    • 3DS màx
  • Cortadors: és un tipus de programari que agafa el fitxer dissenyat per algun dels programes anteriors i el llesca, és a dir, el talla en capes. D'aquesta manera, podrà ser comprensible per la impressora 3D, que, com sabeu, va construint capa a capa, i el converteix en G-Code (un llenguatge predominant entre la majoria de fabricants d'impressores 3D). En aquests fitxers també s'inclouen dades addicionals com la velocitat d'impressió, temperatura, altura de les capes, si hi ha multiextrusió, etc. Bàsicament una eina CAM que genera totes les instruccions perquè la impressora sigui capaç de fabricar el model. Alguns exemples són:
    • Ultimaker Cura
    • Repetir
    • Simplifica 3D
    • Slic3r
    • KISSlicer
    • ideaMaker
    • OctoPrint
    • 3DPrinterOS
  • Printer host o programari host: en impressió 3D es refereix a un programa la utilitat del qual és rebre el fitxer GCode des de l'slicer i lliura el codi a la pròpia impressora, normalment a través d'un port USB, o per xarxa. D'aquesta manera, la impressora pot anar interpretant aquesta «recepta» de comandes GCode amb les coordenades X (0.00), Y (0.00) i Z (0.00) a les quals heu d'anar desplaçant el capçal per crear l'objecte i els paràmetres necessaris. En moltes ocasions, el programari host està integrat al propi slicer, per la qual cosa solen ser un sol programa (vegeu exemples de Slicers).
Mentre que al programari de disseny es té llibertat per triar el que convingui, en el cas dels altres dos no és així. Les impressores 3D solen suportar només un o més d'ells, però no són compatibles amb tots.

Aquests dos darrers punts solen venir amb la pròpia impressora 3D, com els drivers de les impressores convencionals. No obstant això, el programari de disseny ho hauràs de triar per separat.

Slicing: què és un slider 3D

A l'apartat anterior heu conegut alguna cosa més sobre un slider, és a dir, el programari que talla el model 3D dissenyat per obtenir les capes necessàries, les seves formes i dimensions perquè la impressora 3D sàpiga com crear-la. No obstant això, el procés de l'slicing en impressió 3D és força interessant i una fase fonamental en el procés. Per això, aquí en podràs obtenir més informació.

slice, slicing 3D

El procés de slicing pas a pas difereix lleugerament en funció de la tecnologia d'impressió 3D emprada. I bàsicament es pot distingir entre:

  • FDM slicing: en aquest cas, cal control precís de diversos eixos (X/Y), ja que van movent el capçal en dos eixos i necessiten en gran mesura del moviment del capçal d'impressió per construir l'objecte tridimensional. També inclourà paràmetres com la temperatura del filtre i el refredament. Un cop l'slicer ha generat el GCode, els algorismes del controlador intern de la impressora seran els encarregats d'executar les ordres necessàries.
  • SLA slicing: en aquest cas, les ordres també han d'incloure els temps d'exposició i les velocitats d'elevació. I això és degut a que, en comptes d'anar dipositant capes per extrusió, heu de dirigir el feix de llum a diferents parts de la resina per solidificar-la i crear capes, alhora que va elevant l'objecte per permetre que una altra nova capa es pugui crear . Aquesta tècnica necessita menys moviments que la FDM, ja que només es controla un mirall reflector per dirigir el làser. A més, cal ressaltar alguna cosa important, i és que aquest tipus d'impressores no solen utilitzar GCode, sinó que solen tenir els seus propis codis patentats (per tant, necessiten el seu propi programari de tall o slicer). No obstant això, hi ha alguns genèrics per a SLA com ChiTuBox i FormWare, que són compatibles amb moltes impressores 3D d'aquest tipus.
  • DLP i MSLA slicing: en aquest altre cas, serà similar a l'SLA, però amb la diferència que l'únic moviment necessari en aquestes serà el de la placa de construcció, que viatjarà al llarg de l'eix Z durant el procés. La resta d'informació anirà orientada al panell o pantalla d'exposició.
  • Altres: per a la resta, com SLS, SLM, EBM, etc., hi pot haver diferències notables en els processos d'impressió. Tingues en compte que, en aquests tres casos esmentats, també s'hi afegeix una altra variable, com és la injecció de l'aglomerant i requereix un procés de slicing més complex. I a això cal afegir que un model d'impressora SLS d'una marca, no funcionarà igual que la impressora SLS de la competència, per la qual cosa cal programari de tall específic (solen ser programes propietaris dels quals proveeix el propi fabricant).

Finalment, m'agradaria afegir que hi ha una empresa belga anomenada Materialitzar-se que ha creat un complex programari que serveix a totes les tecnologies d'impressió 3D i un potent controlador per a impressores 3D anomenat Màgiques. A més, aquest programari es pot millorar amb mòduls per generar el fitxer de tall apropiat per a màquines específiques.

Fitxers STL

arxiu STL

Fins ara s'han fet referències als arxius STL, que són el nucli daquest article. Tot i això, encara no s'ha aprofundit sobre aquest popular format. En aquest apartat el podràs conèixer a fons:

Què és un arxiu STL?

El format de arxiu STL és un fitxer amb què la controladora de la impressora 3D necessita, és a dir, perquè el maquinari de la impressora pugui imprimir la forma desitjada, dit altrament, permet codificar la geometria de la superfície d'un objecte tridimensional. Va ser creat per Chuck Hull de 3D Systems a la dècada dels 80s, i l'acrònim no està del tot clar.

La codificació geomètrica es pot codificar mitjançant Tessellation (tessel·lació), interposant les formes geomètriques de manera que no hi hagi superposicions ni tampoc espais, és a dir, com un mosaic. Per exemple, es poden compondre formes mitjançant l'ús de triangles, com passa a la renderització de la GPU. Una fina malla composta per triangles formarà tota la superfície del model 3D, amb la quantitat de triangles i les coordenades dels 3 punts.

STL binari vs STL ASCII

Es diferencia entre STL en format binari i STL en format ASCII. Dues maneres d'emmagatzemar i representar la informació d'aquests mosàics i altres paràmetres. Un exemple del format ASCII seria:

solid <nombre>

facet normal nx ny nz
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet

endsolid <nombre>

On «vertex» seran els punts necessaris amb les respectives coordenades XYZ. Per exemple, per crear una forma d'esfericó, pots fer servir aquest codi ASCII d'exemple.

Quan una forma 3D és molt complexa o de grans dimensions, implicarà tenir molts petits triangles, més encara si la resolució és més gran, que farà que els triangles siguin més petits per suavitzar les formes. Això genera fitxers STL ASCII enormes. Per compactar això, es fan servir els formats STL binaris, com per exemple:

UINT8[80] – Header                               - 80 bytes o caracteres de cabecera
UINT32 – Nº de triángulos                    - 4 bytes
for each triangle                                        - 50 bytes
REAL32[3] – Normal vector                  - 12 bytes para el plano de la normal
REAL32[3] – Vertex 1                              - 12 bytes para el vector 1
REAL32[3] – Vertex 2                             - 12 bytes para el vector 2
REAL32[3] – Vertex 3                             - 12 bytes para el vector 3
UINT16 – Attribute byte count              - 2-bytes por triángulo (+2-bytes para información adicional en algunos software)
end

Si ho desitja, aquí tens un fitxer STLB o STL binari d'exemple per formar un simple cub.

Finalment, si et preguntes si és millor un ASCII o un binari, el cert és que els binaris sempre són els recomanables per a la impressió 3D per la seva mida més petita. No obstant això, si vols inspeccionar el codi i depurar-lo manualment, aleshores no et queda cap altra manera de fer-ho que usant ASCII i un edit, ja que resulta més intuïtiu per interpretar-lo.

Avantatges i desavantatges de l'STL

Els fitxers STL tenen els seus avantatges i desavantatges, com és habitual. És important que les coneguis per determinar si és el format adequat per al teu projecte o quan no l'has de fer servir:

  • Avantatges:
    • És un format universal i compatible amb gairebé totes les impressores 3D, per això és tan popular davant d'altres com VRML, AMF, 3MF, OBJ, etc.
    • posseeix un ecosistema madur, i és fàcil de trobar tot el necessari a Internet.
  • Desavantatges:
    • Limitacions quant a la quantitat d'informació que podeu incloure, ja que no es pot utilitzar per a colors, facetes, ni altres metadades addicionals per incloure drets d'autor o autoria.
    • La fidelitat és un altre dels seus punts febles. La resolució no és gaire bona quan es treballa amb impressores d'alta resolució (micromètrica), ja que la quantitat de triangles necessària per descriure les corbes de manera suau seria immensa.

No tots els STL serveixen per imprimir en 3D

Sembla que qualsevol fitxer STL pot servir per imprimir en 3D, però el cert és que no tots els .stl són imprimibles. Simplement és un fitxer amb un format per contenir dades geomètriques. Perquè es puguin imprimir necessitarien tenir detalls dels gruixos i altres detalls necessaris. En definitiva, el STL et garanteix que el model es pugui veure bé a la pantalla del PC, però potser la figura geomètrica no sigui sòlida si s'imprimís tal qual.

Per tant, intenta verificar que el STL (si no ho has creat tu) és vàlid per a la impressió 3D. Això t'estalviarà molt de temps perdut i també filament o resina desaprofitat en un model erroni.

Controvèrsia

Per finalitzar aquest punt, hauries de saber que hi ha alguna cosa de controvèrsia sobre si cal utilitzar aquest tipus de fitxer o no. Encara que encara hi ha molts pul·luladors, alguns ja donen per mort a l'STL enfront de les alternatives. I algunes de les raons que donen per evitar el STL per als dissenys 3D són:

  • Resolució pobre ja que, en triangular, es perdrà una mica de qualitat davant del model CAD.
  • Es perd el color i les textures, cosa que ja permeten altres formats més actuals.
  • Sense control de farciment avançat.
  • Altres fitxers són més productius a lhora de editar-los o revisar-los que un STL en cas de ser necessària alguna rectificació.

Programari per a .stl

CAD vs STL

Algunes de les dubtes més freqüents sobre el format de fitxer STL solen ser referents a com es pot crear aquest format, o com es pot obrir, i fins i tot com es pot modificar. Aquí tens aquests aclariments:

Com obrir un fitxer STL

Si et preguntes com obrir un fitxer STL, ho pots fer de diverses maneres. Una és mitjançant alguns visualitzadors online, o també amb programari instal·lat al teu equip. Aquí tens algunes de les millors opcions:

Com crear un fitxer STL

Per a la crear fitxers STL, també tens un bon repertori de programari per a totes les plataformes, i fins i tot opcions en línia com:

*Hi ha algunes apps d'edició 3D i modelatge per a dispositius mòbils com AutoCAD Mobile, Morphi, OnShape, Prisma3D, Putty, Sculptura, Shapr3D, etc., encara que no poden treballar amb STL.

Com editar un fitxer STL

En aquest cas, el programari que és capaç de crear també permet editar un fitxer STL, per tant, per veure programes, podeu veure el punt anterior.

alternatives

disseny 3D, formats d'arxius

De mica en mica han anat sorgint alguns formats alternatius per als dissenys per a la impressió 3D. Aquests altres formats també són molt importants, i destaquen:

Els fitxers amb aquest tipus de llenguatge no només tenen una extensió, sinó que es poden presentar en diverses. Algunes són .gcode, .mpt, .mpf, .nc, etc.
  • PLY (Polygon File Format): aquests fitxers tenen extensió .ply i és un format per a polígons o triangles. Va ser dissenyat per emmagatzemar dades tridimensionals d'escàners 3D. Es tracta d'una descripció geomètrica simple d'un objecte, així com d'altres propietats com el color, la transparència, les superfícies normals, les coordenades de textura, etc. I, igual que li passa a l'STL, hi ha una versió ASCII i una altra binària.
  • OBJ: els fitxers amb extensió .obj també són fitxers de definició de geometria. Van ser desenvolupats per Wavefront Technologies per a un programari anomenat Advanced Visualizer. Actualment és obert i ha estat adoptat per molts programes gràfics per a 3D. També emmagatzema informació simple de la geometria d'un objecte, com ara la posició de cada vèrtex, textura, normal, etc. En declarar-se els vèrtexs en sentit contrari a les agulles del rellotge, no cal declarar explícitament les cares normals. A més, les coordenades d'aquest format no tenen unitats, però poden contenir informació de l'escala.
  • 3MF (3D Manufacturing Format): aquest format s'emmagatzema en fitxers .3mf, un estàndard de codi obert desenvolupat per 3MF Consortium. El format de dades geomètriques per a fabricació additiva es basa en XML. Podeu incloure informació sobre els materials, sobre el color, etc.
  • VRML (Virtual Reality Modeling Language): va ser creat per Web3D Consortium. Aquests arxius tenen un format que té com a objectiu representar escenes o objectes tridimensionals interactius, a més de color de la superfície, etc. I són la base dels X3D (eXtensible 3D Graphics).
  • AMF (Additive Manufacturing Format): un format de fitxer (.amf) que també és un estàndard de codi obert per a la descripció d'objectes per als processos de fabricació additiva per a impressió 3D. També es basa en XML, i és compatible amb qualsevol programari de disseny CAD. I ha arribat com el successor de STL, però amb millores com incloure suport nadiu per a colors, materials, entramats i constel·lacions.
  • WRL: extensió de VRML.

Què és GCode?

GCode exemple

Font: https://www.researchgate.net/figure/An-example-of-the-main-body-in-G-code_fig4_327760995

Hem comentat molt sobre el llenguatge de programació GCode, ja que és una peça clau en el procés d'impressió 3D actualment, passant del disseny STL a un G-Code que és un fitxer amb instruccions i paràmetres de control de la impressora 3D. Una conversió que realitzarà automàticament el programari slicer.

Sobre aquests codis veurem més a els articles sobre CNC, ja que una impressora 3D no és més que una màquina tipus CNC que imprimeix…

Aquest codi compta amb ordres, que indiquen a la impressora com i on extruir el material per aconseguir la peça, del tipus:

  • G: aquests codis són entesos de forma universal per totes les impressores que usen codis G.
  • M: són codis específics per a certes sèries d'impressores 3D.
  • Altres: també hi ha altres codis nadius d'altres màquines, com les funcions F, T, H, etc.
Pots veure exemples de G-Codes i els resultats gràfics en aquest enllaç.

Com es pot veure a la imatge anterior de l'exemple, apareixen una sèrie de línies de codi que no són més que coordenades i altres paràmetres per indicar a la impressora 3D el que ha de fer, com si fos una recepta:

  • X, I, Z: són les coordenades dels tres eixos d'impressió, és a dir, el que l'extrusor s'ha de desplaçar en una direcció o una altra, i les coordenades d'origen són 0,0,0. Per exemple, si hi ha un nombre superior a 0 a l'X, es mourà fins a aquesta coordenada de a l'adreça de l'amplada de la impressora 3D. Mentre que si hi ha un número per sobre de 0 a l'Y, el capçal es mourà en la direcció cap a fora i cap a dins de la zona d'impressió. Finalment, qualsevol valor superior a 0 a Z farà que es desplaci fins a aquesta coordenada especificada de baix a dalt. És a dir, pel que fa a la peça, es pot dir que X seria l'amplada, I la profunditat o llarg, i Z l'alt.
  • F: indicarà la velocitat a què es mou el capçal d'impressió indicada en mm/min.
  • E: fa referència a la longitud de l'extrusió en mil·límetres.
  • ;: tot el text que vagi precedit per ; és un comentari i la impressora ho ignora.
  • G28: se sol executar al principi perquè el capçal es mogui de gom a gom. Si no s'especifiquen eixos, la impressora mourà els 3, però si se n'especifica un de concret només l'aplicarà a aquest.
  • G1: és una de les ordres G més populars, ja que és la que ordena a la impressora 3D que dipositi material mentre es mou de forma lineal fins a la coordenada marcada (X,Y). Per exemple, el G1 X1.0 I3.5 F7200 indica que dipositi material al llarg de la zona marcada per les coordenades 1.0 i 3.5, ia una velocitat de 7200 mm/min, és a dir, a 120 mm/s.
  • G0: fa el mateix que G1, però sense extruir material, és a dir, mou el capçal sense dipositar material, per a aquells moviments o zones on no s'hagi de dipositar res.
  • G92: ordena a la impressora establir la posició actual dels seus eixos, una cosa pràctica quan es vol modificar la ubicació dels eixos. Molt usat just al començament de cada capa oa la retracció.
  • M104: ordre per escalfar l'extrusor. Es fa servir al principi. Per exemple, M104 S180 T0 indicaria que s'escalfi l'extrusor T0 (si hi ha doble filtre seria T0 i T1), mentre que S determina la temperatura, en aquest cas 180ºC.
  • M109: similar a l'anterior, però indica que la impressió ha d'esperar fins que l'extrusor arribi a la temperatura abans de continuar amb qualsevol altra ordre.
  • M140 i M190: similars als dos anteriors, però no porten paràmetre T, ja que en aquest cas es fa referència a la temperatura del llit.

Per descomptat, aquest G-Code serveix per a impressores tipus FDM, ja que les de resina necessitaran altres paràmetres, però amb aquest exemple n'hi ha prou perquè comprenguis com funciona.

Conversions: STL a…

conversió de fitxers STL

Finalment, una altra de les coses que més dubtes genera entre els usuaris, atès la quantitat de formats diferents que hi ha sumant els dels dissenys 3D CAD, i els codis generats pels diferents slicers, és com convertir d'un a l'altre. Aquí tens algunes de les conversions més buscades:

Si fas una cerca a Google, veuràs que hi ha molts serveis en línia de conversió, com AnyConv o MakeXYZ, que poden convertir gairebé qualsevol format, encara que no tots funcionen bé, i no tots són gratuïts.
  • Converteix STL a GCode: es pot convertir amb programari de slicing, ja que és un dels seus objectius.
  • Passar de STL a Solidworks: es pot fer amb el mateix Solidworks. Obrir > a l'explorador de fitxers canvia a format STL (*.stl) > Opcions > canvia Importar com a Cos sòlid o Superfície sòlida > Acceptar > navega i prem sobre el STL que vols importar > Obrir > ara podreu veure el model obert i l'arbre de característiques a l'esquerra > Importat > FeatureWorks > Recognize Features > i ja estaria llest.
  • Convertir una imatge a STL o JPG/PNG/SVG a STL: pots utilitzar serveis en línia com Imagetostl, Selva3D, Smoothie-3D, etc., o emprar algunes eines de IA, i fins i tot programari com Blender etc., per generar un model 3D a partir de la imatge i després exportar a STL.
  • Convertir DWG a STL: és un arxiu CAD, i es pot emprar multitud de programari de disseny CAD per fer la conversió. Per exemple:
    • AutoCAD: Sortida > Enviar > Exportar > ingressar el nom del fitxer > selecciona tipus Litografia (*.stl) > Desar.
    • SolidWorks: Fitxer > Desar com a > Desar com a STL > Opcions > Resolució > Fina > Acceptar > Guardar.
  • D'OBJ a STL: es poden utilitzar tant serveis de conversió en línia, com també algunes eines de programari local. Per exemple, amb Spin3D pots fer el següent: Afegir fitxers > Obrir > triar una carpeta destinació a Desar a carpeta > Selecciona Format de sortida > stl > prem el botó Convertir i espera que acabi el procés.
  • Passar de Sketchup a STL: ho pots fer amb el mateix Sketchup de forma fàcil, ja que té funció tant per importar com per exportar. En aquest cas cal exportar seguint els passos quan tens el fitxer de Sketchup obert: Fitxer > Exportar > Model 3D > tria on desar el STL > Desar com a STereolithography File (.stl) > Exportar.

Més informació


2 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Rubén va dir

    Perfecte molt ben explicat i molt claret.
    Gràcies per la síntesi.

    1.    Isaac va dir

      Moltes gràcies!