{"id":15570,"date":"2025-12-22T20:09:58","date_gmt":"2025-12-22T19:09:58","guid":{"rendered":"https:\/\/www.palentino.es\/blog\/?p=15570"},"modified":"2025-12-22T20:17:31","modified_gmt":"2025-12-22T19:17:31","slug":"%f0%9f%a7%a0-algoritmos-y-formatos-cnc-cuando-el-mecanizado-tambien-es-software","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/%f0%9f%a7%a0-algoritmos-y-formatos-cnc-cuando-el-mecanizado-tambien-es-software\/","title":{"rendered":"&#x1f9e0; Algoritmos y formatos CNC: cuando el mecanizado tambi\u00e9n es software"},"content":{"rendered":"<p data-start=\"117\" data-end=\"434\">Detr\u00e1s de cada pieza perfecta hay algo m\u00e1s que metal y herramienta: <strong data-start=\"185\" data-end=\"221\">hay l\u00f3gica, matem\u00e1ticas y c\u00f3digo<\/strong>. Las m\u00e1quinas CNC no interpretan planos, <strong data-start=\"263\" data-end=\"289\">interpretan algoritmos<\/strong>, y lo hacen a trav\u00e9s de <strong data-start=\"314\" data-end=\"338\">formatos y lenguajes<\/strong> que, aunque distintos, persiguen el mismo objetivo: <strong data-start=\"391\" data-end=\"433\">movimiento preciso, repetible y seguro<\/strong>.<\/p>\n<p data-start=\"436\" data-end=\"663\">Con el paso de los a\u00f1os, he trabajado y desarrollado soluciones sobre <strong data-start=\"506\" data-end=\"552\">los principales controles CNC industriales<\/strong>, <strong data-start=\"583\" data-end=\"616\">entendiendo su l\u00f3gica interna<\/strong>, sus l\u00edmites\u2026 y su impacto real en producci\u00f3n.<\/p>\n<p data-start=\"436\" data-end=\"663\"><a href=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/12\/CNC-algoritmos.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15574\" src=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/12\/CNC-algoritmos.png\" alt=\"\" width=\"1006\" height=\"678\" srcset=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/12\/CNC-algoritmos.png 1006w, https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/12\/CNC-algoritmos-300x202.png 300w\" sizes=\"auto, (max-width: 1006px) 100vw, 1006px\" \/><\/a><!--more--><\/p>\n<hr data-start=\"665\" data-end=\"668\" \/>\n<h2 data-start=\"670\" data-end=\"712\">&#x1f4c4; Principales formatos y lenguajes CNC<\/h2>\n<h3 data-start=\"714\" data-end=\"738\">&#x1f539; Heidenhain (.h)<\/h3>\n<p data-start=\"739\" data-end=\"799\">Lenguaje <strong data-start=\"748\" data-end=\"781\">conversacional y estructurado<\/strong>, muy orientado a:<\/p>\n<ul>\n<li data-start=\"802\" data-end=\"815\">Mecanizado 3D<\/li>\n<li data-start=\"818\" data-end=\"835\">Moldes y matrices<\/li>\n<li data-start=\"838\" data-end=\"860\">Trayectorias complejas<\/li>\n<\/ul>\n<p data-start=\"862\" data-end=\"1029\">Su sintaxis es clara y legible, pero por debajo ejecuta <strong data-start=\"918\" data-end=\"961\">algoritmos de interpolaci\u00f3n y suavizado<\/strong> de alt\u00edsimo nivel. Ideal cuando la precisi\u00f3n geom\u00e9trica es cr\u00edtica.<\/p>\n<hr data-start=\"1031\" data-end=\"1034\" \/>\n<h3 data-start=\"1036\" data-end=\"1068\">&#x1f539; EIA \/ ISO (.eia, .nc)<\/h3>\n<p data-start=\"1069\" data-end=\"1136\">El <strong data-start=\"1072\" data-end=\"1090\">G-code cl\u00e1sico<\/strong>. Directo, universal y todav\u00eda imprescindible.<\/p>\n<ul>\n<li data-start=\"1139\" data-end=\"1167\">Control total del movimiento<\/li>\n<li data-start=\"1170\" data-end=\"1191\">M\u00e1xima compatibilidad<\/li>\n<li data-start=\"1194\" data-end=\"1227\">Base de automatizaciones y macros<\/li>\n<\/ul>\n<p data-start=\"1229\" data-end=\"1304\">Aqu\u00ed el programador escribe el algoritmo casi \u201ca mano\u201d. Cada l\u00ednea importa.<\/p>\n<hr data-start=\"1306\" data-end=\"1309\" \/>\n<h3 data-start=\"1311\" data-end=\"1367\">&#x1f539; <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">Siemens<\/span><\/span> \u2013 SINUMERIK<\/h3>\n<p data-start=\"1368\" data-end=\"1428\">Un enfoque claramente orientado a <strong data-start=\"1402\" data-end=\"1427\">programaci\u00f3n avanzada<\/strong>:<\/p>\n<ul>\n<li data-start=\"1431\" data-end=\"1448\">Variables tipadas<\/li>\n<li data-start=\"1451\" data-end=\"1461\">IF \/ WHILE<\/li>\n<li data-start=\"1464\" data-end=\"1484\">Subrutinas complejas<\/li>\n<li data-start=\"1487\" data-end=\"1506\">Ciclos tecnol\u00f3gicos<\/li>\n<\/ul>\n<p data-start=\"1508\" data-end=\"1660\">Permite construir programas <strong data-start=\"1536\" data-end=\"1551\">adaptativos<\/strong>, ideales para producci\u00f3n flexible y piezas variables. El CNC deja de ser secuencial y pasa a ser <strong data-start=\"1649\" data-end=\"1659\">l\u00f3gico<\/strong>.<\/p>\n<hr data-start=\"1662\" data-end=\"1665\" \/>\n<h3 data-start=\"1667\" data-end=\"1711\">&#x1f539; <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">FANUC<\/span><\/span><\/h3>\n<p data-start=\"1712\" data-end=\"1749\">El est\u00e1ndar industrial m\u00e1s extendido.<\/p>\n<ul>\n<li data-start=\"1752\" data-end=\"1774\">Extremadamente robusto<\/li>\n<li data-start=\"1777\" data-end=\"1798\">Macros B muy potentes<\/li>\n<li data-start=\"1801\" data-end=\"1830\">Ideal para l\u00edneas autom\u00e1ticas<\/li>\n<\/ul>\n<p data-start=\"1832\" data-end=\"1976\">Perfecto para entornos donde prima la estabilidad y el tiempo de ciclo. La l\u00f3gica suele estar muy optimizada y pensada para <strong data-start=\"1956\" data-end=\"1975\">no fallar nunca<\/strong>.<\/p>\n<hr data-start=\"1978\" data-end=\"1981\" \/>\n<h3 data-start=\"1983\" data-end=\"2056\">&#x1f539; <span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">Makino<\/span><\/span> \u2013 Formato y filosof\u00eda propia<\/h3>\n<p data-start=\"2057\" data-end=\"2139\">Makino utiliza <strong data-start=\"2072\" data-end=\"2093\">EIA\/ISO extendido<\/strong>, pero con una <strong data-start=\"2108\" data-end=\"2138\">capa propia muy optimizada<\/strong>:<\/p>\n<ul>\n<li data-start=\"2142\" data-end=\"2178\">Ciclos espec\u00edficos de alta velocidad<\/li>\n<li data-start=\"2181\" data-end=\"2216\">Control t\u00e9rmico y din\u00e1mico avanzado<\/li>\n<li data-start=\"2219\" data-end=\"2252\">Integraci\u00f3n total m\u00e1quina\u2013control<\/li>\n<\/ul>\n<p data-start=\"2254\" data-end=\"2453\">Aqu\u00ed el algoritmo no solo mueve ejes:<br data-start=\"2291\" data-end=\"2294\" \/>&#x1f449; <strong data-start=\"2297\" data-end=\"2355\">protege la m\u00e1quina, mejora el acabado y reduce tiempos<\/strong>.<br data-start=\"2356\" data-end=\"2359\" \/>Programar Makino es programar <strong data-start=\"2389\" data-end=\"2418\">pensando en din\u00e1mica real<\/strong>, no solo en trayectorias te\u00f3ricas.<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2>&#x1f4d0; Dimensiones, flujo y ejemplos en programaci\u00f3n CNC<\/h2>\n<h3>&#x1f539; 1. Dimensiones: c\u00f3mo entiende el espacio una CNC<\/h3>\n<p>Las CNC trabajan en <strong>sistemas cartesianos<\/strong>:<\/p>\n<ul>\n<li><strong>X \/ Y<\/strong> \u2192 plano horizontal (mesa)<\/li>\n<li><strong>Z<\/strong> \u2192 profundidad \/ altura<\/li>\n<li><strong>A \/ B \/ C<\/strong> \u2192 ejes rotativos (seg\u00fan m\u00e1quina)<\/li>\n<\/ul>\n<p>Conceptos clave:<\/p>\n<ul>\n<li><strong>Absoluto (G90)<\/strong> \u2192 todas las posiciones se refieren al cero pieza<\/li>\n<li><strong>Incremental (G91)<\/strong> \u2192 cada movimiento parte del punto anterior<\/li>\n<li><strong>Ceros<\/strong>:\n<ul>\n<li>Cero m\u00e1quina<\/li>\n<li>Cero pieza (G54\u2013G59)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&#x1f449; El algoritmo traduce geometr\u00eda en <strong>coordenadas exactas<\/strong>, no en formas.<\/p>\n<hr \/>\n<h3>&#x1f539; 2. Flujo l\u00f3gico de un programa CNC<\/h3>\n<p>Un programa CNC bien dise\u00f1ado sigue siempre un <strong>flujo claro<\/strong>:<\/p>\n<ol>\n<li><strong>Preparaci\u00f3n<\/strong><\/li>\n<\/ol>\n<ul>\n<li>Selecci\u00f3n de plano (G17)<\/li>\n<li>Sistema de coordenadas (G54)<\/li>\n<li>Herramienta y correctores<\/li>\n<\/ul>\n<ol>\n<li><strong>Posicionamiento seguro<\/strong><\/li>\n<\/ol>\n<ul>\n<li>Movimientos r\u00e1pidos (G00)<\/li>\n<li>Alturas de seguridad<\/li>\n<\/ul>\n<ol>\n<li><strong>Mecanizado<\/strong><\/li>\n<\/ol>\n<ul>\n<li>Avances controlados (G01)<\/li>\n<li>Interpolaciones (G02 \/ G03)<\/li>\n<li>Ciclos o macros<\/li>\n<\/ul>\n<ol>\n<li><strong>Control<\/strong><\/li>\n<\/ol>\n<ul>\n<li>Condiciones (IF, WHILE)<\/li>\n<li>Repeticiones<\/li>\n<li>Verificaciones<\/li>\n<\/ul>\n<ol>\n<li><strong>Salida<\/strong><\/li>\n<\/ol>\n<ul>\n<li>Retirada segura<\/li>\n<li>Fin de programa (M30)<\/li>\n<\/ul>\n<p>&#x1f449; Aqu\u00ed es donde el CNC <strong>deja de ser secuencial y se vuelve l\u00f3gico<\/strong>.<\/p>\n<hr \/>\n<h3>&#x1f539; 3. Ejemplos simples por formato<\/h3>\n<h4>&#x1f9e9; EIA \/ ISO (G-code cl\u00e1sico)<\/h4>\n<pre>\n\n<div class=\"codecolorer-container text mac-classic language-txt\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/><\/div><\/td><td><div class=\"text codecolorer\">G90 G54<br \/>\nG00 X0 Y0<br \/>\nG01 Z-10 F200<br \/>\nG01 X50 Y0<br \/>\nG00 Z100<br \/>\nM30<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n<\/pre>\n<p>Movimiento directo, control total del programador.<\/p>\n<hr \/>\n<h4>&#x1f9e9; Heidenhain (.h)<\/h4>\n<pre>\n\n<div class=\"codecolorer-container text mac-classic language-txt\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/><\/div><\/td><td><div class=\"text codecolorer\">L X+0 Y+0 FMAX<br \/>\nL Z-10 F200<br \/>\nL X+50 Y+0<br \/>\nL Z+100 FMAX<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n<\/pre>\n<p>M\u00e1s legible, mismo resultado, l\u00f3gica interna m\u00e1s avanzada.<\/p>\n<hr \/>\n<h4>&#x1f9e9; Siemens SINUMERIK<\/h4>\n<pre>\n\n<div class=\"codecolorer-container text mac-classic language-txt\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\">IF #PZA EQ 1 THEN<br \/>\n&nbsp; G01 Z-10 F200<br \/>\nENDIF<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n<\/pre>\n<p>Programaci\u00f3n <strong>condicional y adaptativa<\/strong>.<\/p>\n<hr \/>\n<h4>&#x1f9e9; Makino (EIA extendido)<\/h4>\n<pre>\n\n<div class=\"codecolorer-container text mac-classic language-txt\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/><\/div><\/td><td><div class=\"text codecolorer\">IF [#500 GT 5] THEN<br \/>\n&nbsp; F200<br \/>\nELSE<br \/>\n&nbsp; F400<br \/>\nENDIF<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n<\/pre>\n<p>El avance se adapta a condiciones reales de mecanizado.<\/p>\n<hr \/>\n<h2>&#x1f9e0; Idea clave<\/h2>\n<ul>\n<li><strong>Las dimensiones definen el espacio<\/strong><\/li>\n<li><strong>El flujo define el proceso<\/strong><\/li>\n<li><strong>El algoritmo define la inteligencia<\/strong><\/li>\n<\/ul>\n<p>Por eso, independientemente del formato, <strong>el verdadero valor est\u00e1 en c\u00f3mo se estructura el programa<\/strong>, no solo en qu\u00e9 m\u00e1quina lo ejecuta.<\/p>\n<h2 data-start=\"2460\" data-end=\"2501\">&#x2699;&#xfe0f; \u00bfD\u00f3nde vive realmente el algoritmo?<\/h2>\n<p data-start=\"2502\" data-end=\"2523\">M\u00e1s all\u00e1 del fichero:<\/p>\n<ul>\n<li data-start=\"2526\" data-end=\"2551\">Interpolaciones din\u00e1micas<\/li>\n<li data-start=\"2554\" data-end=\"2591\">Compensaciones geom\u00e9tricas y t\u00e9rmicas<\/li>\n<li data-start=\"2594\" data-end=\"2626\">Ajustes de avance en tiempo real<\/li>\n<li data-start=\"2629\" data-end=\"2657\">Bucles, condiciones y macros<\/li>\n<li data-start=\"2660\" data-end=\"2688\">Gesti\u00f3n de estados y errores<\/li>\n<\/ul>\n<p data-start=\"2690\" data-end=\"2777\">Un buen programa CNC <strong data-start=\"2711\" data-end=\"2737\">no ejecuta movimientos<\/strong>:<br data-start=\"2738\" data-end=\"2741\" \/>&#x1f449; <strong data-start=\"2744\" data-end=\"2776\">optimiza el proceso completo<\/strong>.<\/p>\n<hr data-start=\"2779\" data-end=\"2782\" \/>\n<h2 data-start=\"2784\" data-end=\"2822\">&#x1f9e9; Experiencia real, no solo teor\u00eda<\/h2>\n<p data-start=\"2823\" data-end=\"2964\">Trabajar con distintos controles te ense\u00f1a algo clave:<br data-start=\"2877\" data-end=\"2880\" \/><strong data-start=\"2880\" data-end=\"2963\">no existe el mejor lenguaje, existe el m\u00e1s adecuado para cada m\u00e1quina y proceso<\/strong>.<\/p>\n<p data-start=\"2966\" data-end=\"3004\">Desarrollar sobre todos ellos implica:<\/p>\n<ul>\n<li data-start=\"3007\" data-end=\"3035\">Traducir producci\u00f3n a l\u00f3gica<\/li>\n<li data-start=\"3038\" data-end=\"3064\">Elegir el formato correcto<\/li>\n<li data-start=\"3067\" data-end=\"3094\">Crear programas mantenibles<\/li>\n<li data-start=\"3097\" data-end=\"3136\">Pensar como programador\u2026 y como m\u00e1quina<\/li>\n<\/ul>\n<hr data-start=\"3138\" data-end=\"3141\" \/>\n<h2 data-start=\"3143\" data-end=\"3159\">&#x1f9ed; Conclusi\u00f3n<\/h2>\n<p data-start=\"3160\" data-end=\"3322\">El CNC moderno es <strong data-start=\"3178\" data-end=\"3214\">software industrial de precisi\u00f3n<\/strong>.<br data-start=\"3215\" data-end=\"3218\" \/>Quien domina los formatos controla la m\u00e1quina.<br data-start=\"3264\" data-end=\"3267\" \/>Quien domina los algoritmos <strong data-start=\"3295\" data-end=\"3321\">controla la producci\u00f3n<\/strong>.<\/p>\n<p data-start=\"3160\" data-end=\"3322\"><a href=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/05\/Contacto-oscar.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14716\" src=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/05\/Contacto-oscar.gif\" alt=\"\" width=\"556\" height=\"160\" \/><\/a><\/p>\n<p data-start=\"3160\" data-end=\"3322\">\n","protected":false},"excerpt":{"rendered":"<p>Detr\u00e1s de cada pieza perfecta hay algo m\u00e1s que metal y herramienta: hay l\u00f3gica, matem\u00e1ticas y c\u00f3digo. Las m\u00e1quinas CNC no interpretan planos, interpretan algoritmos, y lo hacen a trav\u00e9s de formatos y lenguajes que, aunque distintos, persiguen el mismo objetivo: movimiento preciso, repetible y seguro. Con el paso de los a\u00f1os, he trabajado y desarrollado soluciones sobre los principales controles CNC industriales, entendiendo su l\u00f3gica interna, sus l\u00edmites\u2026 y su impacto real en producci\u00f3n.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2329],"tags":[],"class_list":["post-15570","post","type-post","status-publish","format-standard","hentry","category-mecanizado"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/15570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=15570"}],"version-history":[{"count":5,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/15570\/revisions"}],"predecessor-version":[{"id":15576,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/15570\/revisions\/15576"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=15570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=15570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=15570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}