Está en la página 1de 14

Capítulo 3 Base de datos

Después de hacer programas en Java, muchas veces se necesita almacenar más allá de Arrays o
Listas, se necesita ir más allá.

Por lo cual es necesario generar una base de datos a la que desde ahora se referirá a DB (Data
Base).

3.1. Definición de una base de datos


Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados
sistemáticamente para su posterior uso. La base de datos es digital ya que será uno o varios
programas para el almacenamiento de datos, y posteriormente acceder a los datos de forma
estructurada, se llaman Sistemas gestores de bases de datos (Database Management System o
DBMS para el caso del español saben mencionar también cómo BDMS).

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas; También
son ampliamente utilizadas en entornos científicos y de ingeniería con el objeto de almacenar
la información experimental.

Las bases de datos pueden clasificarse de acuerdo a su función: según la variabilidad de la base
de datos, según el contenido.

Además de la clasificación por su función, estas también se pueden clasificar de acuerdo a su


modelo de administración de datos en: Base de datos jerárquica, Base de datos de red, Base de
datos transaccionales, Base de datos relacionales, Base de datos multidimensionales, Base de
datos orientados a objetos, Base de datos documentales, Base de datos deductivas, Base de
datos orientada a grafos.

Cada uno de ellos se aplica para un propósito específico, pero para la materia interesa estudiar
el modelo relacional.

3.1.1. Terminología
Con el fin de llevar una mejor comprensión del tema, es importante tener en cuenta la siguiente
terminología:

 Relación = tabla
 Registro = fila o tupla
 Campo = columna o atributo
 Clave = llave o código de identificación
 Clave Candidata = superclave mínima
 Clave Primaria = clave candidata elegida
 Clave Externa = clave ajena o clave foránea
 Clave Alternativa = clave secundaria
 Dependencia Multivaluada = dependencia multivalor = dependencia múltiple
 DB = Base de datos
 DBMS = Sistemas gestores de bases de datos
 OODB = Base de datos orientada a objetos
 RDBMS = Del inglés Relational Data Base Management System, que significa Sistema de
gestión de bases de datos relacionales
 1FN = Significa Primera Forma Normal o 1NF, del inglés First Normal Form
3.2. Diseño de base de datos relacionales
Este modelo hace relación entre filas y columnas, es decir hace relación como si fuese una tabla
que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos
(las columnas de una tabla). Tal y como una tabla Excel.

Por seguridad, Java utiliza variables de cadena string para almacenar nombres de usuario y
contraseñas para conexiones de bases de datos remotas y otra información de red. La
inmutabilidad de las cadenas string significa que una vez que se han creado estos objetos, no
pueden ser pirateados.

3.3. Primera, segunda, y tercera forma normal


Las bases de datos relacionales se normalizan para:

 Minimizar la redundancia (repeticiones, duplicados) de los datos.


 Disminuir problemas de actualización de los datos en las tablas.
 Proteger la integridad de datos.

En el modelo relacional es frecuente llamar tabla a una relación; pero para llevar una lectura
amena del documento se llamará relación, para que una tabla sea considerada como una
relación tiene que cumplir con algunas restricciones:

 Cada campo debe tener su nombre único.


 No puede haber dos registros iguales. No se permiten los duplicados.
 Todos los datos de los campos deben ser del mismo tipo (número o cadena string, pero
no ambos al mismo tiempo)

Entonces se dice que una base de datos está en la forma normal N, es decir que todas sus
relaciones están en la forma normal N.

En general, las primeras tres formas normales son el mínimo que deben cubrir la mayoría de las
bases de datos.

Figura 1 Diagrama de inclusión de todas las formas normales


3.3.1. Primera Forma Normal (1FN)
Una relación se dice que está en primera forma si:

 Todos los registros son atómicos. Un registro se dice atómico si los elementos son
simples e indivisibles.
 No hay variación en el número de campos.
 Debe existir una independencia del orden tanto de registros como de campos; es decir,
si los datos cambian de orden no deben cambiar sus significados.

Si hay valores repetidos dentro de una DB, por esta forma normal, hacen que eliminan.

3.3.2. Segunda Forma Normal (2FN)


Por la figura 1, una relación está en 2FN si está en 1FN y si los atributos que no forman parte de
ninguna clave dependen de forma completa de la clave principal. Es decir, que no existen
dependencias parciales y se deben separar dentro de sus propias relaciones. Todos los atributos
que no son clave principal deben depender únicamente de la clave principal para identificarlos.

Toma tiempo hacer esto de separar en tablas independientes, esto se llama normalizar, pero si
se hace se tiene ventajas, como ser que se puede añadir nuevas columnas a la relación sin
afectar a las nuevas relaciones, y que los datos se acomoden dentro de los límites esperados.

Por ejemplo si se tiene una relación en Excel, donde un campo (o registro) tenga una fórmula
que dependa de los datos adyacentes, si se incorpora un nuevo campo (o nuevo registro) al lado
(superior, inferior, derecha, izquierda), hace que el valor ya no sea el esperado, entonces no
cumpliría la 2FN.

3.3.3. Tercera Forma Normal (3FN)


La relación se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva
en los registros que no son clave.

El esquema debe cumplir necesariamente, con las condiciones de 2FN.

3.3.3.1. Reglas de Codd

Para percatarse de que existían bases de datos en el mercado que tengan tendencia a ser
relacionales, existen doce reglas (Codd1) para que un verdadero sistema sea relacional. En la
práctica algunas de ellas son difíciles de realizar. Un sistema podrá considerarse "más relacional"
cuanto más siga estas reglas, con Java es posible cumplir varias de las reglas

o Regla 1: La regla de la información


o Regla 2: La regla del acceso garantizado
o Regla 3: Tratamiento sistemático de los valores nulos
o Regla 4: La regla de la descripción de la base de datos
o Regla 5: La regla del sub-lenguaje integral
o Regla 6: La regla de la actualización de vistas
o Regla 7: La regla de insertar y actualizar

1
Edgar Frank Codd, (nacido el 19 de agosto de 1923, Portland, Dorset, Inglaterra, falleció el 18 de abril de
2003, Williams Island, Florida, EE. UU.), Un informático y matemático estadounidense nacido en Gran
Bretaña que ideó el modelo de datos "relacionales", que condujo a la creación de la base de datos
relacional, un método estándar para recuperar y almacenar datos de la computadora.
o Regla 8: La regla de independencia física
o Regla 9: La regla de independencia lógica
o Regla 10: La regla de la independencia de la integridad
o Regla 11: La regla de la distribución
o Regla 12: Regla de la no-subversión

Ejemplo 1 Base de datos para una pequeña biblioteca.

Para la siguiente, desarrollar las relaciones correspondientes para cumplir 1FN hasta 3FN.

CodLibro Titulo Autor Editorial NombreLector FechaDev

Pérez Gómez,
1001 Practical Java Programming Perry Xiao Willey 15/4/2020
Juan

Philip Conrod, Luo Kidware


1004 Java for kids Ríos Terán, Ana 17/4/2020
Tylee Software

Philip Conrod, Luo Kidware


1005 Learn Java GUI applications Roca, René 16/4/2020
Tylee Software

Métodos numéricos y diseño García Roque,


1006 Edgar Gonzales Laura Oracle Corp. 20/4/2020
de algoritmos Luis

Nancy Greenberg y Pérez Gómez,


1007 Oracle University Oracle Corp. 18/4/2020
Priya Nathan Juan

Solución

Normalizando para 1FN

Esta relación no cumple el requisito 1NF de sólo tener campos atómicos, pues el nombre del
lector es un campo que puede (y conviene) descomponerse en apellido paterno, apellido
materno y nombres. Tal como se muestra en la siguiente relación.

CodLibro Titulo Autor Editorial Paterno Materno Nombres FechaDev

Practical Java
1001 Perry Xiao Willey Pérez Gómez Juan 15/4/2020
Programming

Philip Conrod, Kidware


1004 Java for kids Ríos Terán Ana 17/4/2020
Luo Tylee Software

Learn Java GUI Philip Conrod, Kidware


1005 Roca René 16/4/2020
applications Luo Tylee Software

Métodos numéricos y Edgar Gonzales


1006 Oracle Corp. García Roque Luis 20/4/2020
diseño de algoritmos Laura

Nancy
1007 Oracle University Greenberg y Oracle Corp. García Roque Luis 18/4/2020
Priya Nathan
Como se puede ver, hay cierta redundancia característica de 1NF.

Normalizando para 2FN

La 2NF pide que no existan dependencias parciales o dicho de otra manera, todos los campos
no clave deben depender por completo de la clave primaria. Actualmente en esta relación se
tiene varias dependencias parciales si se considera como campo clave el código del libro.

Por ejemplo, el título es completamente identificado por el código del libro, pero el nombre del
lector en realidad no tiene dependencia de este código, por tanto estos datos deben ser
trasladados a otra relación.

CodLibro Titulo Autor Editorial


Practical Java
1001 Perry Xiao Willey
Programming
Philip Conrod,
1004 Java for kids Kidware Software
Luo Tylee
Learn Java GUI Philip Conrod,
1005 Kidware Software
applications Luo Tylee
Métodos numéricos y Edgar Gonzales
1006 UMSA
diseño de algoritmos Laura
Nancy
1007 Oracle University Greenberg y Oracle Corp.
Priya Nathan

La nueva relación sólo contendrá datos del lector.

CodLector Paterno Materno Nombres


501 Pérez Gómez Juan
502 Ríos Terán Ana
503 Roca René
504 García Roque Luis

Se crea una relación para contener los datos del lector y también se creó el campo CodLector
para identificar unívocamente a cada uno. Sin embargo, esta nueva disposición de la DB necesita
que exista otra relación para mantener la información de qué libros están prestados a qué
lectores. Esta relación se muestra a continuación:

CodLibro CodLector FechaDev


1001 501 15/4/2020
1004 502 17/4/2020
1005 503 16/4/2020
1006 504 20/4/2020
1007 501 18/4/2020
Normalizando para 3FN

Para 3NF la relación debe estar en 2NF y además los campos no clave deben ser mutuamente
independientes y dependientes por completo de la clave primaria. Recordar que los campos en
la relación deben contener solamente información sobre la entidad definida por la clave
primaria y, por tanto, los campos de la relación contener datos acerca de una sola cosa.

En este ejemplo en 2NF, la primera relación conserva información acerca del libro, los autores y
editoriales, por lo que se debe crear nuevas relaciones para satisfacer los requisitos de 3NF.

Primera parte:

CodLibro Titulo
Practical Java
1001
Programming
1004 Java for kids
Learn Java GUI
1005
applications
Métodos numéricos y
1006
diseño de algoritmos
1007 Oracle University

CodAutor Autor
801 Perry Xiao
Philip Conrod,
802
Luo Tylee
Philip Conrod,
803
Luo Tylee
Edgar Gonzales
804
Laura
Nancy Greenberg
806
y Priya Nathan

CodEditorial Editorial

901 Willey
Kidware
902
Software
Kidware
903
Software

Aunque se ha creado nuevas relaciones para que cada una tenga sólo información acerca de una
entidad, también se ha perdido la información acerca de qué autor ha escrito qué libro y las
editoriales correspondientes, por lo que se debe crear otras relaciones para cada libro con sus
autores y editoriales.
Segunda parte:

CodLibro codAutor
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806

CodLibro codEditorial
1001 901
1004 902
1005 901
1006 903
1007 901

Y el resto de las relaciones no necesitan modificación.

Tercera parte:

CodLector Paterno Materno Nombres


501 Pérez Gómez Juan
502 Ríos Terán Ana
503 Roca René
504 García Roque Luis

CodLibro CodLector FechaDev


1001 501 15/4/2005
1004 502 17/4/2005
1005 503 16/4/2005
1006 504 20/4/2005
1007 501 18/4/2005

3.4. Base de datos orientado a objetos


Una base de datos orientada a objetos OODB (Object Oriented Database), proporciona un
ambiente amigable para el desarrollo de aplicaciones. Almacena y manipula información que
puede ser transformada en forma de objetos para un mejor trabajo y análisis.

Las OODB son aquellas que contienen informaciones representadas mediante distintos tipos de
objetos, entre los cuales se establecen una serie de operaciones para su interacción. En esta
clase de BD se utilizan los patrones definidos para el paradigma de la programación orientada a
objetos.
Existen marcas reconocidas para OODB (software), sin embargo para esta materia estamos
empleando programación en Java, como Java está orientado a objetos, entonces es posible
realizar una OODB. Por tanto la información estará bien organizada y estructurada. La
atomicidad es una de sus principales propiedades, esta se refiere a la condición de que cada
operación o se realiza en su totalidad o se revierte, lo cual evita que las operaciones queden a
medias.

Para BD pequeñas es muy buena, cuando crece se debe recurrir a otras aplicaciones o marcas,
caso como los del big data2.

3.5. El modelo de datos orientado a objetos


3.5.1. Las tres capas de un modelo de datos
De cualquier manera, los datos se estructurarán en una de las siguientes tres capas distintas,
cada una con una ubicación y función específicas:

a) Modelo conceptual

Este es el nivel primario del modelo que define la estructura de los datos de acuerdo con los
requisitos del sistema. Se enfoca en atributos, entradas y relaciones orientadas a sistemas.

Características

o Proporciona cobertura a toda la organización de los conceptos del sistema.


o La capa conceptual se construye independientemente de cualquier especificación de
hardware, capacidad de almacenamiento o limitaciones de software. El objetivo es
representar los datos tal como se ven en el mundo real.

b) Modelo lógico

Esta capa es más compleja y estructurada que la capa conceptual. Contiene información
sobre cómo se debe implementar el modelo definiendo la estructura y las relaciones de los
elementos de datos. La principal ventaja del modelo lógico es que proporciona una base
firme para el modelo físico.

Características

o El modelo lógico enumera los requisitos del proyecto, pero dependiendo del alcance
también podría integrarse con otros modelos de datos.
o Está diseñado y desarrollado independientemente de DBMS.
o Los tipos de datos de los elementos de datos tienen una longitud precisa.

c) Modelo físico

La capa física ilustra cómo implementar el modelo de datos en un sistema de gestión de


bases de datos. Agiliza la metodología de implementación en forma de tablas, índices,

2
El Big Data se refiere a conjuntos de datos o combinaciones de conjuntos de datos cuyo tamaño
(volumen), complejidad (variabilidad) y velocidad de crecimiento (velocidad) dificultan su captura,
gestión, procesamiento o análisis mediante tecnologías y herramientas convencionales, tales como DB
relacionales y estadísticas convencionales o paquetes de visualización, dentro del tiempo necesario para
que sean útiles.
particiones, etc. El modelo de datos físicos ayuda a visualizar toda la estructura de la base
de datos.

Características

o Enumera las necesidades de un solo proyecto, también podría integrarse con otros
modelos físicos.
o Este modelo contiene relaciones entre los datos, relaciones de nulo y/o cardinal de
dichas relaciones.
o Está diseñado y desarrollado específicamente para una versión específica de DBMS, con
el almacenamiento de datos requerido y la ubicación.
o Todos los campos deben tener un tipo de datos preciso, valores predeterminados y
longitud.

3.6. El estándar ODMG


En una época hubo un grupo de representantes de la industria de BD, que decidieron crear un
estándar para que las BD, este grupo se denominó Object Data Management Group ODMG.

En un sistema de gestión de bases de datos basado en el modelo relacional, es decir, los datos y
las relaciones están representados por una colección de tablas interrelacionadas.

Este grupo propuso un modelo estándar para la semántica de los objetos de una base de datos,
los componentes principales para:

 Modelo de objetos
o El modelo de objetos ODMG permite que tanto los diseños, como las
implementaciones, sean portables entre los sistemas que lo soportan
 Lenguaje de definición de objetos (Objet Definition Languaje o ODL)
o ODL es un lenguaje de especificación para definir tipos de objetos para sistemas
compatibles con ODMG. Define los atributos y las relaciones entre tipos, y
especifica la signatura de las operaciones.
 Lenguaje de consulta de objetos (Object Query Language o OQL)
o OQL es un lenguaje declarativo del tipo de SQL que permite realizar consultas
de modo eficiente sobre bases de datos orientadas a objetos, incluyendo
primitivas de alto nivel para conjuntos de objetos y estructuras

Que definen la conexión con los lenguajes C++, Smaltalk, Java, etc.

3.7. Encapsulamiento herencia y poliformismo en OODB


El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es,
las variables y métodos. Es tener todo esto es una sola entidad.

Esta propiedad permite ocultar la información, es decir permite asegurar el contenido de un


objeto se pueda ocultar del mundo exterior dejándose ver lo que cada objeto necesite.

Ejemplo: Una persona desea “llevar” su auto averiado a un servicio técnico, en este caso la
persona puede hacer las pruebas que requiera para demostrar que hay falla, luego se deja al
personal del servicio técnico. Posterior a ello el personal técnico no tiene que mostrar las
herramientas o los procedimientos (oculta), para reparar la falla. Finalmente se va “entregar” a
la persona y esta puede hacer las pruebas para ver si se reparó la falla. Es importante recodar
como se usa el private o el public.
La herencia es la propiedad a través de la cual los objetos heredan comportamiento dentro de
una jerarquía de clases.

La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos


basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su
funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre,
superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del
lenguaje de programación). De igual manera recordar que si una super clase es private, su clase
será private, o public, u otro tipo.

Y el polimorfismo, es la propiedad de una operación mediante la cual puede ser aplicada a


distintos tipos de objetos.

También polimorfismo se refiere al uso de la misma firma de mensaje para dirigir diferentes
métodos en diferentes clases. Cuando el diseñador envía una señal a un objeto, el método de la
clase de objeto, posiblemente heredado, procesa la señal.

3.8. Persistencia, concurrencia y recuperación en BDOO


Persistencia se refiere a la capacidad de manipular directamente los datos almacenados en una
base de datos usando un lenguaje de programación orientado a objetos, como lo puede ser Java.
Esto se logra mediante el uso inteligente de almacenamiento en caché 3.

La concurrencia permite el acceso a múltiples usuarios para cooperar y colaborar en una


aplicación. Los mecanismos de control de concurrencia son necesarios para reforzar las
propiedades de las transacciones (ACID4).

Los principales mecanismos de control de concurrencia son tres: Candados, Estampas de


tiempo, y Guardar múltiples versiones de los objetos de datos.

Con recuperación se refiere al proceso de aplicación de consistencia, después de que una


transacción a abortado como resultado de fallas de hardware o problemas de comunicación. Las
fallas del sistemas, tanto de hardware como de software no deben repercutir en estados de
inconsistencia de la base datos. La recuperación es la técnica que asegura que eso no ocurra. La
recuperación puede ser total o parcial dependiendo de las circunstancias, de la recuperabilidad.

3.9. Fundamentos de archivos XML


Detrás del diseño y el texto de los sitios web, siempre hay un lenguaje propio y uno de ellos es
el lenguaje XML (Extensible Markup Language). XML es un lenguaje de marcado a modo de
huella que define un conjunto de reglas para la codificación de documentos.

Ahora es posible hallar la referencia a “archivo XML”, este se divide en dos partes: prolog y body.
La parte prolog consiste en metadatos administrativos, como declaración XML, instrucción de
procesamiento opcional, declaración de tipo de documento y comentarios. La parte del body se
compone de dos partes: estructural y de contenido (presente en los textos simples).

3
Área de almacenamiento dentro del microprocesador dedicada a la recuperación a gran velocidad de los
datos usados o solicitados con más frecuencia.
4
ACID (atomicity, consistency, isolation, durability) En BD se denomina ACID a las características de los
parámetros que permiten clasificar las transacciones de los sistemas de gestión de DB.
Por ejemplo en el libro [1] página 14 dice: Para obtener más detalles sobre cómo configurar
variables de entorno Java, visite:

https://www.java.com/en/download/help/path.xml

Otro ejemplo es cuando se quiera realizar una aplicación Android el XML esta presente:

main_activity.xml

AndroidManifest.xml

3.9.1. Características XML


3.9.1.1. XML simplifica el intercambio de datos

Tanto los sistemas informáticos como las bases de datos contienen información en formatos
incompatibles.

Los datos XML se almacenan en formato de texto simple, lo que nos posibilita una forma
independiente de almacenar datos. Esto facilita mucho la creación de datos que pueden ser
compartidos por diferentes aplicaciones.

3.9.1.2. XML simplifica el intercambio de datos

Uno de los desafíos más difíciles para los desarrolladores es intercambiar datos entre sistemas
incompatibles a través de Internet. El intercambio de datos como XML reduce en gran medida
esta complejidad porque los datos pueden ser leídos por diferentes aplicaciones incompatibles.

3.9.1.3. XML simplifica el cambio de plataforma

La actualización a nuevos sistemas (plataformas de hardware o software) lleva mucho tiempo.


Se deben convertir grandes cantidades de datos y los datos incompatibles a menudo se pierden.

Los datos XML se almacenan en formato de texto. Esto facilita la expansión o actualización a
nuevos sistemas de información, nuevas aplicaciones o nuevos navegadores sin pérdida de
datos.

3.9.1.4. El XML aumenta la disponibilidad de datos

Diferentes aplicaciones pueden acceder a tus datos, no solo en páginas HTML5, sino también en
fuentes de datos XML.

Con el XML, los datos pueden estar disponibles para todos los tipos de “máquinas de lectura”
(computadoras de mano, máquinas de voz, feeds de noticias, etc.) y, además, facilita la
accesibilidad para personas con capacidades diferentes, por ejemplo no videntes.

3.9.1.5. El XML se puede utilizar para crear nuevos idiomas de Internet

Muchos idiomas nuevos en Internet son creados con XML, ejemplos: XHTML, WSDL, WAP y
WML, RSS (utilizado en noticias), RDF y OWL, SMIL.

3.10. Fundamentos de archivos CNC


Muchas máquinas herramienta utilizan control numérico computarizado CNC (Computer
Numerical Control), la programación consiste en crear instrucciones de programas para los

5
HyperText Markup Language, es decir, Lenguaje de Marcas de Hipertexto para páginas de internet
equipos que controlan las máquinas herramienta. Este control CNC es un componente
importante del proceso de fabricación que mejora la automatización y aumenta la flexibilidad

3.10.1. Tipos de máquinas de CNC


Los programadores de CNC escriben instrucciones para las máquinas de CNC, donde se conecta
un equipo a la fresa y se instalan unidades de propulsión eléctrica y sensores para crear un
sistema completo. Este equipo controla el movimiento del eje de la máquina, como ser:
Mecanizado de 3 ejes, 4 ejes simultáneos, Mecanizado de 5 ejes, Fresa y torno, pero quizá lo
más familiar actualmente son las impresoras 3D, y las CNC que se pueden encontrar en el IIME.

3.10.2. Universal G-Code


El código G, o G-Code, es el archivo que contiene la información para ser enviada a las máquinas
herramienta. Por tanto existen muchos programas para generar este código.

Universal G-Code Sender es un remitente de código G multiplataforma basado en Java,


compatible con GRBL y TinyG / g2core. Es posible usar este programa para ejecutar una máquina
CNC controlada por GRBL o TinyG / g2core.

Detalles técnicos y las particularidades que presentaría serían:

 Necesita JSSC o JSerialComm para comunicación en serie


 Necesita JogAmp para OpenGL
 Construido con la plataforma Netbeans
 Desarrollado para NetBeans 8.0.2 o posterior

Desde la página siguiente se puede descargar:

http://winder.github.io/ugs_website/download/

Y se puede descargar la versión clásica (o la otra):

Figura 2 Sitio de descarga para Universal G-Code

Son 28 MB, y luego de descomprimir se tiene un archivo tipo jar.

Se hace correr este programa, antiguamente solía conectarse a Netbeans, estas nuevas
versiones corren directamente sobre Java, y sale el mensaje.
Figura 3 Primeros mensajes Universal G-Code

El mensaje de “No serial ports found”, obviamente sale porque no se tiene conectado máquinas
herramientas a los puertos. De todas formas se puede manejar.

Y se puede descargar un archivo ejemplo en, que está en formato .nc:

https://diymachining.com/g-code-example/

Y al cargar al programa sale:

Figura 4 Archivo de prueba circle.nc


La intención de esta es aprovechar las ventajas al tener instalado Java.

Cuando se llegue a tener este programa Universal G-Code, posteriormente se puede hacer un
enlace con una máquina herramienta, calibrar las posiciones, enviar los comandos, y se puede
hacer el objeto que se haya realizado para el código G.

También podría gustarte