Archivo de la etiqueta: Control de calidad

Topologías en archivos de referencia y control topológico entre archivos

Históricamente, al ordenar a Digi3D.NET crear una topología, la creaba con las geometrías del archivo de dibujo. No se calculaba ninguna topología con los archivos de referencia.

En Digi3D.NET 2023 podemos crear también topologías de los archivos de referencia. Gracias a esto, hemos podido crear la orden CONTROL_TOPOLOGICO_CASES que permite detectar polígonos vecinos pertenecientes a distintos archivos de dibujo, y marcar como error aquellos en los que se detecta que el centroide cambia (o su código, o sus atributos de BBDD o el texto asociado al centroide), porque en determinados escenarios es posible que sea un error.

Ej: Un polígono de en un modelo tiene un centroide de Monte Alto y el polígono de al lado, que pertenece a otro archivo de dibujo es un polígono de Monte Bajo. Quizás no sea un error, pero conviene repasarlo, porque es posible que si que lo sea.

En el siguiente vídeo puedes ver esta orden en acción:

Control de codificación en cases

Digi3D.NET 2023 dispone de una herramienta que te va a permitir detectar automáticamente líneas de un archivo de dibujo que continúan en otro archivo de dibujo, pero con otro código o con otros atributos de BBDD o con otros atributos de geometría.

Esto no tiene por qué ser un error, pero suele serlo. Si una línea tiene código de eje de camino y en el archivo de al lado continua como borde de camino, tiene pinta de que ha habido un error a la hora de seleccionar el código en uno de los dos archivos.

Si estamos trabajando con bases de datos, es posible que ambas líneas tengan el mismo código, pero que sus atributos de base de datos sean distintos. Si por ejemplo una línea de eje de carretera tiene el atributo «Número de carriles» con el valor 2 y en el siguiente archivo tiene 4, quizás no sea un error, pero estaría bien tener una herramienta para detectarlo.

Para solucionar todo esto, hemos desarrollado la orden: DETECTAR_ERRORES_CONTINUIDAD_LINEAS_CASES que puedes ver en acción en el vídeo de a continuación.

Controles de calidad en Digi3D.NET en Python

Hemos añadido a Digi3D.NET la posibilidad de crear controles de calidad utilizando el lenguaje de programación Python.

Hasta ahora podíamos crear controles de calidad en .NET. A partir de hoy podemos seleccionar la opción Python en el lenguaje de programación del guion que se ejecutará para un determinado código.

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

Eliminar segmentos cortos

Ayer pudimos ver la nueva orden de Digi3D.NET que nos permitía detectar segmentos cortos. Hoy os presentamos una orden que nos va a permitir eliminar automáticamente segmentos cortos: ELIMINAR_SEGMENTOS_CORTOS.

Puedes ejecutar además esta orden mediante la opción del menú Análisis geométricos/Eliminar segmentos cortos.

Esta orden detectará geometrías con segmentos cortos y eliminará vértices de estas para que todos sus segmentos (si es posible) tengan un perímetro superior al indicado, pero además analizará el resto de geometrías del archivo de dibujo para modificar las coordenadas de los vértices que coincidan con el que se ha decidido eliminar y moviéndolas al vértice que se ha decidido conservar, para evitar errores de intersección de líneas sin un vértice común.

En el siguiente vídeo puedes ver esta nueva funcionalidad:

 

 

Detectar segmentos cortos

En ocasiones queremos detectar como errores segmentos que tengan un perímetro inferior a un determinado valor.

Acabamos de añadir a Digi3D.NET una orden que nos va a permitir detectar automáticamente estos segmentos: DETECTAR_SEGMENTOS_CORTOS.

Esta orden nos permite indicar el código a analizar así como un tamaño mínimo de segmento. Si se detectan entidades con segmentos cuyo perímetro sea inferior al especificado, añadirá una tarea en el panel de tareas de la aplicación.

Si el sistema de referencia de coordenadas de la ventana de dibujo es proyectado (UTM, Lambert, etc.) el valor indicado en el parámetro de perímetro será en las unidades del sistema de referencia de coordenadas. Si por el contrario el sistema de referencia de coordenadas es geográfico, el programa proyectará la geometría e una proyección de tipo oblicua estereográfica con punto de anclaje en el primer vértice de la geometría para a continuación calcular el perímetro de cada segmento.

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

 

Detectar bucles

Acabamos a añadir una herramienta más a Digi3D.NET para realizar control de calidad de la cartografía: detección de bucles (o auto-intersecciones) en las geometrías existentes.

La nueva orden DETECTAR_BUCLES espera que le indiquemos como parámetro el código a analizar. Podemos utilizar comodines (como por ejemplo DETECTAR_BUCLES=* para analizar todas las geometrías del archivo de dibujo) o utilizar almohadillas para indicar todos los códigos que tengan una etiqueta, como por ejemplo DETECTAR_BUCLES=#edificaciones.

Además hemos añadido al menú Análisis geométricos un submenú que nos permite ejecutar esta orden para todas las geometrías visibles o para cada una de las etiquetas de la tabla de códigos activa.

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

 

Localización inteligente de errores en atributos en Digi3D.NET

Digi3D.NET permite añadir inteligencia a la hora de analizar los atributos de base de datos de manera que se pueden detectar condiciones incompatibles.

Esta inteligencia se puede añadir en la tabla de códigos mediante un disparador que se dispara en el momento de almacenar una entidad. El disparador se encargará de analizar todas las restricciones y de informar a Digi3D.NET que la entidad no se puede almacenar pues si algún atributo o combinación de atributos no cumple con los criterios. En caso de que el disparador informe de alguna incompatibilidad, Digi3D.NET mostrará al usuario un cuadro de diálogo que por un lado mostrará un mensaje de error (proporcionado por el disparador)  y que por otro lado permitirá al usuario corregir el problema modificando los valores de los atributos a almacenar en la base de datos.

Esta inteligencia puede estar basada únicamente en atributos o tener en cuenta las particularidades de la geometría que se está intentando almacenar o incluso de todas las geometrías existentes en el archivo de dibujo.

Por ejemplo se podría detectar como error de atributo sin tener en cuenta la geometría que se está intentando almacenar el caso de que un edificio sea de tipo religioso pero que en tipo de religión se indique desconocido.

Un error de atributo teniendo en cuenta la geometría que se está intentando almacenar podría ser el caso del atributo País en una entidad de tipo Vía de comunicación. Si la geometría está en un rango de coordenadas se puede considerar que la geometría está en España y si está en otro rango de coordenadas se puede considerar que está en Francia. Si digitalizamos una entidad cuyas coordenadas están supuestamente en España y el atributo indica que está en Francia, se puede informar al usuario como un error de atribución.

Un error de atribución que tiene en cuenta la geometría que se está intentando almacenar y las geometrías ya existentes en el archivo de dibujo podría ser el caso del atributo Tipo de un polígono de Instalación. Si el tipo es militar y dentro encontramos una pista deportiva cuya área supera un 80% del polígono de instalación se debe indicar que el atributo Tipo debe ser Deportes.

Las posibilidades son ilimitadas.

En el siguiente vídeo puedes ver estos ejemplos en acción. Si quieres hacerlo tú mismo, puedes descargarte la tabla de códigos con la inteligencia añadida, la base de datos y el archivo de dibujo del siguiente enlace: ControlAvanzadoAtributosBBDD.zip. Debes utilizar la versión de 32 bits para conectarte con la base de datos, pues es Access y por limitaciones impuestas por Microsoft, un programa de 64 bits no puede conectarse con una base de datos Access. Para conectarte con la base de datos, en la pestaña Archivo de dibujo del cuadro de diálogo Nuevo proyecto, debes indicar en Modelo de datos (en la sección Motor de importación/exportación para archivos binarios de doble precisión) la opción CATDBS y en Cadena de conexión debes pulsar el botón de los tres puntos. Eso hará aparecer el cuadro de diálogo común Propiedades de vínculo de datos. Selecciona Microsoft Jet 4.0 OLE DB Provider (que es el proveedor que proporciona conexiones con bases de datos Access) y a continuación pulsa el botón Siguente. En la pestaña  Conexión pulsa el botón de los tres puntos en «Selecciona o escriba el nombre de una base de datos». Aparecerá el cuadro de diálogo común «Seleccione la base de datos de Access». Localiza la base de datos y pulsa Abrir. Acepta el cuadro de diálogo y ya has configurado Digi3D.NET para conectarse con la base de datos cuando abras el archivo de dibujo.

 

Nuevos desencadenadores en tiempo real

Comenzamos una semana que vamos a dedicar a añadir nuevos controles de calidad en tiempo real.

Os presentamos dos nuevos desencadendores que nos van a permitir detectar en el momento de digitalizar las siguientes condiciones:

  1. Detectar si un punto se ha digitalizado cerca de otro punto. Puedes utilizar esto para detectar por ejemplo una farola cerca de otra farola, una farmacia cerca de otra farmacia, etc.
  2. Detectar si una geometría está en el interior de otra geometría como por ejemplo un edificio dentro de una masa de árboles.

Los desencadenadores en Digi3D.NET permiten que se ejecuten una serie de acciones si se cumple el desencadenador, como por ejemplo mostrar mensajes de error, convertir la entidad en otra entidad, o simplemente eliminarla.

Puedes ver estos dos nuevos desencadenadores en acción en el siguiente vídeo:

Nuevas condiciones para los desencadenadores de Digi3D.NET para el control de calidad de la cartografía

Acabamos de añadir varias condiciones nuevas al listado de condiciones que pueden desencadenar una serie de acciones en el momento de almacenar una entidad.

Las condiciones nuevas son:

  • Se acaba de digitalizar una línea.
  • Se acaba de digitalizar un punto.
  • Se acaba de digitalizar un texto.
  • Se acaba de digitalizar un polígono.
  • Se acaba de digitalizar un complejo.

Que se añaden al conjunto de condiciones de las que disponíamos hasta ahora:

  • Es una línea cerrada o un polígono y su área es inferior a un valor.
  • Es una línea y su perímetro en el plano es inferior a un determinado valor.
  • Es una línea y su perímetro 3D es inferior a un determinado valor.

De esta manera, podemos por ejemplo mostrar un mensaje de error al usuario si almacena un punto en un código pensado para almacenar líneas, etc.

Puedes ver esta nueva funcionalidad en el siguiente vídeo:

Control de calidad en tiempo real con la nueva funcionalidad «desencadenadores» de Digi3D.NET

Presentamos una nueva característica en Digi3D.NET que permitirá incrementar la productividad además de evitar revisiones de control de calidad: Desencadenadores.

Los desencadenadores son acciones que se ejecutan en un determinado momento si se cumple una determinada condición.

En un principio, los códigos no tienen asignado ningún desencadenador, pero podemos asignar tantos desencadenadores como queramos a cada código mediante el Editor de Tablas de Códigos, en la pestaña Códigos, en la sección Desencadenadores, en la propiedad Al registrar la entidad.

Si pulsamos el botón de los tres puntos, aparecerá el cuadro de diálogo Desencadenadores.

Cuadro de diálogo desencadenadores

Si pulsamos el botón Añadir, aparecerá el cuadro de diálogo Configuración del desencadenador.

Cuadro de diálogo Configuración del desencadenador

En este cuadro de diálogo podemos seleccionar un desencadenador de la lista superior, como por ejemplo el que se muestra en la captura: Es una línea cerrada o un polígono y su área es inferior a un determinado valor.

En función del tipo de desencadenador que seleccionemos, tendremos que rellenar más o menos propiedades en el panel de propiedades Configuración del desencadenador. En la captura anterior vemos que el programa está solicitando el área por debajo de la cual se ejecutarán las acciones.

Una vez configurado el desencadenador, podemos añadir acciones pulsando el botón Añadir. Al pulsarlo aparecerá el cuadro de diálogo Configuración de la acción.

Cuadro de diálogo Configuración de la acción

Este cuadro de diálogo dispone de un desplegable para seleccionar la acción a añadir, y una ventana de propiedades en la que configurar la acción seleccionada. En la captura de pantalla podemos ver que la acción Mostrar un globo solicita que introduzcamos tanto el título del globo como el mensaje principal y el número de segundos que se visualizara el globo en pantalla.

Por ahora la lista de desencadenadores es limitada, pero en breve crecerá. Podemos elegir los siguientes desencadenadores:

Nombre del desencadenador Condición para que se ejecuten sus acciones
Es una línea cerrada o un polígono y su área es inferior a un determinado valor Si se registra una línea cerrada y su área es inferior a la configurada en el desencadenador
Es una línea y su perímetro en el plano es inferior a un determinado valor Si se registra una línea y su perímetro en el plano es inferior a la configurada en el desencadenador
Es una línea y su perímetro 3D es inferior a un determinado valor Si se registra una línea y su perímetro en XYZ es inferior a la configurada en el desencadenador

…Y lo mismo sucede con la lista de acciones. Por ahora disponemos de la siguiente lista de acciones (puedes poner todas las que quieras en un desencadenador, incluso varias veces la misma, como mostrar un cuadro de advertencia y luego otro y luego otro…)

Nombre de la acción Descripción Uso típico
Mostrar un cuadro de mensaje Muestra una advertencia al operador. Este es un método invasivo, pues requiere que el operador pulse el botón de Aceptar para confirmar que ha leído la advertencia. Si se dibuja un edificio con poca superficie. Se puede mostrar un mensaje al usuario indicando que debería eliminarse a menos que sea significativo (edificio religioso, militar,…)
Mostrar un globo Muestra una advertencia no invasiva que auto-desaparece. Por ejemplo para indicar que se ha eliminado la entidad que se acaba de digitalizar porque no cumplía los criterios del modelo. Ejemplo: Se ha eliminado la línea de afluente porque su tamaño no cumple con el requisito mínimo para ser digitalizado.
Mostrar página web Abre el navegador web predeterminado en la URL especificada. Por ejemplo para mostrar al usuario las instrucciones que debe seguir para digitalizar un código en particular.
Hacer sonar un sonido de error Hace sonar el sonido de error configurado en el programa. Se utiliza para que el usuario tenga una alerta sonora de que algo raro ha pasado.
Sintetizar voz Hace que el ordenador sintetice voz con el mensaje indicado Se utiliza para que el usuario tenga información por voz sintética.
Cancelar la entidad No permite que se almacene la entidad que se acaba de digitalizar. Por ejemplo si el perímetro de la línea que se acaba de digitalizar es inferior al mínimo exigible para ese código.
Cambiar el código de la entidad Cambia el código de la entidad por el especificado. Por ejemplo si al dibujar un lago su área no cumple con los requisitos de lago pero si de laguna.
Insertar un punto Ejecuta la orden PUNTO para forzar al operador a digitalizar un punto. Por ejemplo si el área del edificio que se acaba de digitalizar no es suficiente para que éste se represente como un polígono. Se puede crear un desencadenador que tenga dos acciones:

  1. Eliminar la entidad
  2. Forzar a que el usuario digitalice un punto.
Insertar un punto en otro código Cambia el código activo por el espeficicado y ejecuta la orden PUNTO para forzar al operador a digitalizar un punto. Por ejemplo si el área del edificio que se acaba de digitalizar no es suficiente para que éste se represente como un polígono. Se puede crear un desencadenador que tenga dos acciones:

  1. Eliminar la entidad
  2. Forzar a que el usuario digitalice un punto.

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

[youtube:http://youtu.be/9WS6GKrds2A%5D