Archivo de la etiqueta: tabla de códigos

Gana dinero alquilando tus tablas de códigos a terceros

Llevamos un año aproximadamente añadiendo características a las tablas de códigos, y gracias a éstas podemos personalizar completamente la experiencia de trabajo con Digi3D.NET como por ejemplo:

  • Modificar el interfaz de usuario de Digi3D.NET.
  • Crear programas que se ejecutan cada vez que se almacena una geometría en particular para mostrar errores a los operadores.
  • Crear comandos de voz para controlar el programa sin necesidad de teclado o ratón.
  • Especificar esquemas de bases de datos.
  • Especificar parámetros de traducción a distintos formatos de archivo.
  • etc.

Gracias a estas funcionalidades se pueden preparar tablas de códigos que nos permitan realizar cartografías como B.T.A., M.G.C.P, y que incluyan modelos semánticos que vayan indicando en tiempo real al operador si ha cometido algún error de concepto.

Crear estas tablas lleva tiempo, y posiblemente no quieras que el esfuerzo realizado para crearlas llegue a todo el mundo, por eso hoy presentamos la posibilidad de crear paquetes de tablas de códigos cifradas.

A partir de hoy dispones de una nueva opción en el programa Editor de Tablas de Códigos, accesible mediante la opción del menú Archivo/Crear paquete de tabla de códigos cifrada.

CrearPaqueteDeTablasDeCódigosCifrado

Cuando seleccionas esta opción el programa muestra el cuadro de diálogo Crear paquete de tablas de códigos cifrado que te solicita que introduzcas por un lado la contraseña con la que quieres cifrar la tabla de códigos y por otro las llaves de protección a las que quieres conceder permiso, así como una fecha máxima de acceso a la tabla para cada una de las llaves de protección, de modo que puedes hacer que tu llave por ejemplo no tenga límite de fecha, pero una determinada llave pueda utilizar la tabla hasta dentro de tres meses. De esta manera puedes alquilar la tabla de códigos a una empresa. Tan solo tienes que introducir los KeyIDs de sus llaves de protección y asignarles una fecha máxima de uso.

Seguridad:

Hemos incorporado los siguientes mecanismos de seguridad para que nadie pueda exportar tu valiosa tabla de códigos. Te mostramos aquí dichos mecanismos.

El Editor de Tablas de Códigos puede generar tablas de códigos cifradas, pero no puede abrirlas, ni siquiera en los equipos que tengan licencia para abrirla. Esto es así porque si no, cualquiera con licencia la podría exportar en un archivo nuevo sin licencia.

Si intentas abrir una tabla de códigos cifrada con el Editor de Tablas de Códigos, éste te mostrará el siguiente mensaje de error:

ErrorAlIntentarCargarTablaCodigosCifradaConDigiTab.PNG

Si intentamos abrir con Digi3D.NET una tabla cifrada para la cual no tenemos licencia, se comunicará al usuario mediante el siguiente cuadro de diálogo:

ErrorAlCargarTablaCodigosSinLicencia.PNG

Si intentamos cargar una tabla para la cual tenemos licencia, pero ya se ha superado la fecha máxima de uso, el programa nos mostrará el siguiente mensaje de error:

ErrorAlCargarTablaCodigosConLicenciaCaducada

A continuación te mostramos un vídeo explicando todas estas funcionalidades

 

Menús dinámicos más dinámicos que nunca

Presentamos una novedad que nos ayudará a incrementar la productividad con Digi3D.NET.

Una de las novedades que incorporó Digi3D.NET en el año 2011 fue la posibilidad de añadir etiquetas a los códigos en las tablas de códigos. Estas etiquetas actúan como tablas de códigos y tienen la particularidad de que Digi3D.NET las utiliza para mostrarlas como opciones en distintos menús del programa.

Por ejemplo si abrimos un archivo de dibujo con una tabla con etiquetas, si entramos en la opción del menú Análisis geométricos/Insertar un vértice en el punto de cruce de las líneas, podemos comprobar que el programa nos muestra tantas opciones como etiquetas tenga nuestra tabla de códigos tal y como puedes ver en la siguiente captura de pantalla:

menuetiquetasgrande

Gracias a esta funcionalidad podíamos crear topologías, detectar intersecciones, etc. de una manera muy rápida, pero tiene un inconveniente: Si nuestra tabla de códigos dispone de muchas etiquetas, los menús crecen tanto que llegan a ocupar más espacio que la altura del propio monitor, y buscar una opción puede llegar a ser complicado, de manera que se pierde el objetivo inicial de esta funcionalidad que era incrementar la productividad.

Hemos resuelto este problema haciendo que Digi3D.NET muestre únicamente las etiquetas de los códigos de las entidades de los archivos de dibujo cargados, de manera que si no tenemos entidades con el código de «Cantera» no se nos muestre por ejemplo la opción topológica para formar canteras.

En la siguiente captura de pantalla puedes ver el mismo archivo de dibujo que en la captura anterior pero activando esta funcionalidad:

menuetiquetaspeque

Como puedes comprobar únicamente se muestran dos etiquetas. Como en el archivo de dibujo no hay entidades con códigos que tengan asociada la etiqueta MDT, no tiene sentido mostrar esa opción.

Puedes activar o desactivar esta funcionalidad mediante la opción del menú: Herramientas/Configuración/Comunicación con el usuario/Mostrar todas las etiquetas. La opción por defecto es mostrar únicamente las etiquetas de los códigos de las entidades cargadas.

A continuación te mostramos un vídeo con esta nueva funcionalidad:

Visualizando nombres de campos de BBDD por su nombre original o por título

Si estás trabajando en Digi3D.NET con bases de datos, es posible que los nombres de los campos a rellenar en la base de datos no sean muy descriptivos.

Puedes asignar un título a los campos de base de datos en el campo Título que aparece en cada uno de los campos en la tabla activa en la pestaña Base de datos en el programa Editor de tablas de códigos.

Luego debes indicar a Digi3D.NET  (mediante la opción del menú Herramientas/Configuración/Base de datos/Nombre a mostrar) que muestre en el panel de Campos de la base de datos una de las siguientes opciones:

  • Nombre
  • Título
  • Nombre y título

Puedes ver esta funcionalidad en acción en el siguiente vídeo:

Mejoras en las condiciones en formatos de archivos GIS

Digi3D.NET dispone desde hace un año aproximadamente de una herramienta que permite diferenciar códigos en distintas geometrías almacenadas en una misma tabla de base de datos en formatos de archivos SIG como son Geomedia y Shapefile.

En el programa Editor de Tablas de códigos podemos añadir condiciones al campo Condiciones asociado con cada código. En estas condiciones básicamente podemos poner el nombre de un campo y un valor. Podemos poner tantas condiciones como queramos.

De esta manera, si por ejemplo disponemos de una tabla denominada VIAS_DE_COMUNICACION que almacena (sorprendentemente) geometrías de tipo vías de comunicación,  y ésta dispone entre otros de los campos ESTADO y CARRILES, podemos indicarle a Digi3D.NET si se encuentra en esta tabla una geometría que tenga los siguientes valores:

ESTADO=27

que considere esa geometría una Autopista o autovía, pero si en vez de esos valores, se encuentra con una geometría con valores:

ESTADO=44

que considere esa geometría como una autopista en construcción.

Esto lleva con nosotros un año aproximadamente. Lo que hemos añadido hoy es la posibilidad de utilizar distintos operadores, pues hasta hoy el único operador que se aceptaba era el de igualdad, de modo que únicamente se podía comprobar si el atributo X es igual al valor Y.

Hemos añadido los siguientes operadores:

Operador a introducir en la tabla de códigos  Significado
 <  Menor
 <=  Menor o igual
 =  Igual
 >=  Mayor o igual
 >  Mayor

de esta manera, si por ejemplo queremos diferenciar entre carretera y autopista en función del número de carriles, y suponiendo que el número de carriles se almacena en el campo CARRILES, podríamos hacer algo así:

Añadir al código de Carretera estas condiciones:

ESTADO=27
CARRILES<=2

Al código de Carretera en construcción las condiciones:

ESTADO=44
CARRILES<=2

Al código de Autopista las condiciones:

ESTADO=27
CARRILES>2

Al código de Autopista en construcción las condiciones:

ESTADO=44
CARRILES>2

Puedes descargarte el ejemplo del vídeo de a continuación de la siguiente URL: http://digi21.blob.core.windows.net/ejemplos/OperadoresEnCondicionesDeCodigos.zip

y a continuación tienes un vídeo en el que puedes ver esta funcionalidad en acción:

 

 

Alias de códigos

Acabamos de añadir a Digi3D.NET una funcionalidad que puede ayudar a operadores que estén acostumbrados a una codificación a trabajar y aprender progresivamente con otra codificación: Alias de códigos.

Básicamente consiste en que podemos añadir (de manera opcional) a un código una serie de códigos que actuarán como alias, de manera que si por ejemplo el operador está acostumbrado a utilizar el código 020400 para curvas de nivel directoras y comienza con un trabajo nuevo que requiere de una nueva codificación en la cual la curva de nivel directora es por ejemplo ABCDEFG, podemos añadir al código ABCDEFG como alias el código 020400.

El operador posiblemente tenga creados archivos de macro instrucciones o asignaciones de teclas que llamen a COD=020400. Digi3D.NET comprobará que existe un código que tiene un alias con ese código y seleccionará de forma automática el código ABCDEFG.

En la práctica el operador verá en el desplegable de códigos el código ABCDEFG (que posiblemente desconocía), pero lo ha seleccionado mediante el código que sí que conocía.

Para añadir alias de códigos a un código sigue los siguientes pasos:

  • Ejecuta el programa Editor de Tablas de Códigos.
  • Selecciona la opción del menú Archivo/Abrir y carga el archivo a modificar.
  • Selecciona la pestaña Códigos.
  • Localiza el código al que quieres añadir un alias.
  • En la sección Códigos, localiza el valor de Alias y añade el alias. Puedes añadir tantos alias como quieras. En caso de poner más de uno, tendrás que separarlos por comas.
  • Pulsa el botón Aceptar del programa Editor de Tablas de Códigos y guarda los cambios.

Puedes ver esta funcionalidad en el siguiente vídeo:

Relaciones geométricas entre entidades

 

Hemos añadido a Digi3D.NET lógica para detectar relaciones geométricas entre entidades.

Estas relaciones nos van a servir en un futuro próximo para crear modelos semánticos en la tabla de códigos e indicar por ejemplo que una línea de mar no puede terminar en una curva de nivel, o que una alcantarilla no puede estar dentro de una línea de mar.

La primera fase para lograr este objetivo es añadir operaciones que le permitan a Digi3D.NET analizar relaciones entre geometrías.

Lo que te presento hoy es una serie de opciones que hemos añadido en el menú de Análisis Geométricos de la aplicación.

Definiciones:

Tenemos que definir primero qué es un punto, qué es una línea y lo más importante: qué es un área para Digi3D.NET.

Tipo de entidad Descripción
Punto Puntual de Digi con o sin rotación. Creados con la orden PUNTO, PUNTO_R, etc.
Línea Línea de dos o más puntos (abierta o cerrada). Se consideran únicamente las entidades de tipo línea, y no las entidades de tipo línea que formen parte de un elemento complejo.
Área Se considera un área a cualquier línea cerrada o polígono. Las líneas cerradas o polígonos que formen parte de un elemento complejo no se tienen en cuenta.

Así que en todo lo que te voy a explicar aquí, no se tienen en cuenta ni puntos ni nada que forme parte de un elemento complejo.

Condiciones:

Se tienen que cumplir una serie de condiciones para que los algoritmos que te voy a presentar funcionen:

  • No existencia de puntos dobles. Si una línea tiene dos vértices con la misma coordenada, eso va a hacer que los algoritmos no funcionen. Puedes eliminar automáticamente los posibles puntos dobles existentes en tus geometrías ejecutando la orden COMPRIMIR=1 1, pero ¡ATENTO!, si haces esto y tu cartografía es 3d real (es decir, si has dibujado los edificios con su Z real en limatesas, limahoyas, etc, te cargarás esos puntos.
  • Todas las operaciones trabajan en 2D, de modo que cuando digo que una línea esté cerrada me refiero a que las coordenadas X e Y del primer vértice de la línea coinciden con las coordenadas X e Y del último vértice de ésta, independientemente de la coordenada Z de ambas.
  • Para que funcionesn las operaciones que te presento a continuación deben cumplir la siguiente regla general: Todas las geometrías que intersecten con otras geometrías deben tener un punto común en la intersección.
  • Los test son mutuamente excluyentes, de modo que si el test

Te lo muestro en la siguiente tabla:

Los algoritmos funcionan bien Los algoritmos funcionan mal
Punto – Línea  ReglaPuntoLineaBien  ReglaPuntoLineaMal
Línea – Línea  ReglaLineaLineaBien  ReglaLineaLineaMal
Área – Área  ReglaAreaAreaBien  ReglaAreaAreaMal

Así que ya sabes, antes de ejecutar cualquiera de las órdenes que te voy a presentar en esta entrada, asegúrate de haber insertado vértices en la intersección de las entidades involucradas mediante la opción del menú Análisis geométricos/Insertar un vértice en el punto de cruce de las líneas o acostúmbrate a trabajar con la variable TENTATIVO_INSERTA activada.

Tipos de relaciones que es capaz de analizar Digi3D.NET:

Existen seis tipos de relaciones si nos fijamos en el tipo de entidad:

  • Punto con punto.
  • Punto con línea.
  • Punto con área.
  • Línea con línea.
  • Línea con área.
  • Area con área.

Si ejecutas Digi3D.NET comprobarás que en el menú de Análisis geométricos hemos añadido esas opciones, cada una de ellas con una serie de órdenes que siguen todas el mismo patrón: Nos van a solicitar que seleccionemos dos entidades y luego nos mostrarán un globo indicando si ambas entidades cumplen o no la condición.

Relaciones Punto – Punto

Título Ejemplo
 ¿Son disjuntos?  PuntoPuntoNoCoincidentes
 ¿Son coincidentes?  PuntoPuntoCoincidentes

Relaciones Punto – Línea

Título Ejemplo
¿El punto es disjunto con la línea?
¿La línea es disjunta con el punto?
 PuntoLineaNoCoincidentes
¿El punto coincide con el final de la línea?
¿El punto termina en la línea?
¿La línea termina en el punto?
 PuntoLineaCoincidentesExtremo.png
 ¿El punto es coincidente con la línea?  PuntoLineaCoincidentes

Relaciones Punto – Área​

Título Ejemplo
¿Es el punto disjunto con el área?
¿Es el área disjunta con el punto?
 PuntoAreaNoCoincidentes
¿El punto es coincidente con el borde del área?  PuntoAreaCoincidentes
¿El punto está en el dentro del área?
¿El area encierra al punto?
 PuntoInteriorArea

Relaciones Línea – Línea​

Título Ejemplo
¿Son disjuntas?  LineaNoCoincidenteLinea
 ¿El final de una línea se une con la otra línea?
¿El final de una línea se une con el final de la otra línea?
¿Una línea se une con otra línea?
 LineaCoincideLinea
 ¿Una línea atraviesa la otra línea?  LineaCruzaLinea
 ¿Una línea solapa con la otra línea?  LineaSolapaLinea
 ¿Las dos líneas son idénticas?  LineaLineaIguales

Relaciones Línea – Área​

Título Ejemplo
¿Son disjuntos? LineaAreaNoCoincidentes
¿El extremo de la línea se une con el borde del área? LineaAreaCoincidentes
¿La línea termina dentro del área? LineaTerminaEnArea
¿La línea atraviesa el área? LineaCruzaAreaLineaCruzaArea2
¿La línea es adyacente al área? LineaAdyacenteArea
¿La línea está dentro del área?
¿El área incluye a la línea?
LineaDentroArea

Relaciones Área – Área​

Título Ejemplo
¿Son disjuntos?  AreaDisjuntaArea
¿Un área es adyacente con el otro área?  AreaAdyacenteArea
¿Las áreas se unen?  AreaUneAreaAreaUneArea2
¿Las áreas solapan?  AreaSolapaAreaAreaSolapaArea2
¿El primer área incluye completamente al segundo área?
¿El segundo área está completamente dentro del primer área?
 AreaIncluyeAreaAreaIncluyeArea2AreaIncluyeArea3
¿Las dos áreas son idénticas?  AreaIdenticaArea

A continuación un vídeo en el que te muestro esta nueva característica en acción y aquí tienes el enlace para descargarte el archivo de dibujo que utilizo en el vídeo.

Guardando la tabla de códigos activa

Digi3D.NET mostrando el menú de opciones Guardar Tabla de códigos

Digi3D.NET permite guardar la tabla de códigos con la que estás trabajando mediante la opción del menú Archivo/Herramientas/Guardar tabla de códigos.

Esta opción es muy útil si estás trabajando con una tabla de códigos generada automáticamente por Digi3D.NET, tal y como se explica en el post Trabajar sin tabla de códigos.

Al seleccionar esta opción, Digi3D.NET mostrará un cuadro de diálogo Guardar como que te permitirá almacenar la tabla de códigos en un archivo. De esta manera podrás modificarla (como asignar colores, restricciones a los campos de base de datos, asignar parámetros de traducción, …) con el editor de tablas de códigos.

Trabajar sin tabla de códigos

Nuevo Proyecto

Cuadro de diálogo Nuevo proyecto mostrando el campo Tabla de códigos vacío.

Hemos añadido una nueva funcionalidad a Digi3D.NET que va a permitirte cargar cualquier archivo de dibujo sin necesidad de crear previamente una tabla de códigos.

Si en el cuadro de diálogo Nuevo Proyecto, en la pestaña Archivos de dibujo dejamos en blanco el campo Tabla de códigos, al cargar un archivo de dibujo, el importador correspondiente se encargará crear una tabla de códigos en memoria con los códigos extraídos del propio archivo de dibujo.

Si el archivo de dibujo que estamos cargando es un archivo auto-contenido en una base de datos, como Shapefile o Geomedia Datawarehouse, esta tabla de códigos incorporará además el esquema de la base de datos, de forma que al seleccionar un código como activo, en el panel de propiedades Campos de la base de datos Digi3D.NET nos mostrará los campos a añadir en la base de datos cuando almacenemos una entidad nueva.

En un futuro cercano tendremos una orden que almacene esa tabla de códigos para poder luego modificarla con el programa Editor de Tablas de Códigos.