Ayuda de Digi21

Bienvenido a la ayuda de Digi21.

Digi3D.NET

Digi3D.NET es una completa Estación de Fotogrametría Digital que permite el registro de entidades geográficas a partir de imágenes aéreas, cámaras cónicas analógicas y digitales, Intergraph Digital Mapping Camera System, Vexcel UltraCamX, sensores de barrido como Leica ADS40/80, sensores satelitales como Ikonos, QuickBird, procedentes de Fotogrametría terrestre, a partir de ortofotos + MDTs y/o MDS y a partir de nubes de puntos densas.

Es además un completo CAD/SIG.

Con Digi3D.NET podrá registrar entidades con multitud de comandos específicamente pensados para cartografía.

Le permite abrir archivos de dibujo en multitud de formatos, realizar transformaciones de coordenadas entre distintos sistemas de coordenadas de referencia, realizar análisis geométricos y topológicos, búsqueda de entidades...

Además, es programable utilizando tecnologías .NET, lo que permite añadir comandos, utilidades, exportadores, criterios de búsqueda, controles de calidad personalizados a tu gusto.

Informacion general de la aplicación

Digi3D.NET es la evolución de dos programas que nacen como productos independientes y que terminan mezclándose en una única aplicación.

En el año 1988 nace Digi, una aplicación CAD sin interfaz gráfica que permitía almacenar coordenadas de los codificadores de un Topodata R2. Estas coordenadas se transformaban con posteridad en formato HP-GL2 que era el formato de los plotters de la época para imprimir la restitución.

Con el tiempo Digi esta aplicación se convierte en una aplicación gráfica, primero para MS-DOS y con posterioridad para Windows, pasando a llamarse Digi21.

Digi3D nace como un sustituto de los restituidores analógicos/analíticos de la época. La idea era sustituir la máquina (analógica o analítica) que estaba conectada a otro ordenador en el que se ejecutaba Digi21 mediante una caja de codificadores.

Las primeras versiones de Digi3D no permitían super imposición vectorial y únicamente permitían trabajar con modelos estereoscópicos de cámaras cónicas.

El sistema de visualización estereoscópica que se utilizaba era el estereoscopio para monitores.

Esta versión primitiva de Digi3D, permitía únicamente cargar imágenes (escaneadas con un escáner fotogramétrico) y realizar sobre ellas su orientación interna, relativa y absoluta.

Una vez realizadas estas orientaciones, permitían al operador visualizar el modelo como si estuviera trabajando con un restituidor analítico. Cada vez que el usuario movía el modelo, se enviaban coordenadas por un cable serie a otro ordenador conectado con una versión de Digi21.

Durante un tiempo ambos programas convivieron: Los operadores tenían dos ordenadores uno con Digi3D para la visión estereoscópica y otro con Digi21, para el registro de geometrías.

Con el tiempo ambas aplicaciones se unen en una única aplicación que pasa a llamarse Digi3D.

De esta aplicación ha habido varias versiones: Digi3D 2000, Digi3D 2002, Digi3D 2005, Digi3D 2007 y por último Digi3D.NET pero la esencia de ambos programas sigue viva y por eso en este manual cuando nos referimos a la ventana fotogramétrica vamos a referirnos como Digi3D y cuando nos referimos a la ventana de dibujo vamos a referirnos a DigiNG (la NG que añadimos a la palabra Digi hacen referencia a que internamente lo denominamos Digi de Nueva Generación).

Digi3D

Digi3D ha evolucionado mucho desde sus primeras versiones. Ahora permite cargar modelos monoscópicos, estereoscópicos y con múltiples puntos de vista de multitud de sensores como orígenes de datos en internet como Web Map Service, Web Map Tile Service, cámaras cónicas, sensores de barrido como Leica ADS40/80, imágenes satelitales, ortofotos, ortofotos estereoscópicas (generadas a partir de una ortofoto y de un modelo digital de superficie y/o un modelo digital del terreno), nubes de puntos densas, etc.

Digi3D permite conectarse con multitud de dispositivos 3D como sistemas de manivelas, topo-mouse, soft-mouse, Stealth3DMouse, ratones estándar, múltiples ratones simultáneamente, etc.

Digi3D permite visualizar estereoscopía en multitud de sistemas de visión estereoscópica como anaglifo, estéreo profesional page-flipping, Planar 3D, gafas pasivas, monitores autoesteroscópicos, estereoscopios, etc.

Permite cargar imágenes en múltiples formatos como BigTIFF, GeoTIFF, JPG, JPG2000, ECW, MrSID y NTv2, etc.

DigiNG

DigiNG es la aplicación de registro y edición de información específicamente cartográfica, y por ello gran número de empresas apuestan por ella para sus trabajos cartográficos.

Ofrece más de 300 órdenes especialmente diseñadas para la restitución y edición cartográfica, permitiendo digitalizar líneas, puntos, textos, polígonos y entidades complejas además de añadir metainformación en bases de datos.

Dispone de un sistema inteligente de tentativos, siendo posible por parte del usuario configurar un plan automatizado de modos de búsqueda basado en códigos.

Permite realizar búsquedas inteligentes de entidades por multitud de criterios.

Permite realizar análisis geométricos y topológicos.

Permite crear ortofotos.

Permite trabajar con multitud de formatos gráficos (binarios, binarios de doble precisión, AutoCAD *.dwg, MicroStation v8 *.dgn, ESRI Shapefiles *.shp, Geomedia Access Datawarehouse *.mdb, PostGis, etc) sin necesidad de realizar importaciones y/o exportaciones.

Compatibilidad

Sistema operativo

Digi3D.NET está disponible en versiones de 32 y de 64 bits. Es compatible con Windows 7, 8 y 10.

Tarjeta gráfica

Existen en el mercado tres tipos de tarjetas gráficas:

  1. De gama de entrada.
  2. De gama media.
  3. De gama profesional.

Digi3D.NET requiere trabajar con tarjetas gráficas compatibles con OpenGL de gama media o profesional.

La característica principal entre una tarjeta gráfica profesional y una de gama media (a parte de su velocidad de procesamiento y capacidad de memoria) es que las profesionales usualmente incorporan un conector estéreo en la placa.

Este conector les permite garantizar que el estéreo entre Digi3D.NET y las gafas esté sincronizado, de manera que con estas tarjetas gráficas (y siempre que se utilice el cable de sincronismo que comunica la tarjeta gráfica con el emisor de las gafas) nunca se intercambiará la visión de estereoscópica a pseudo estereoscópica.

Determinadas funcionalidades de Digi3D.NET requieren que la tarjeta gráfica disponga de al menos 32 núcleos.

  • Si vas a utilizar Digi3D.NET únicamente para editar archivos de dibujo (y no vas a cargar modelos estereoscópicos) puedes utilizar tarjetas de gama media o alta.
  • Si vas a cargar modelos estereoscópicos la selección de tarjeta gráfica variará en función del monitor 3D a utilizar:
    1. Si tu monitor estereoscópico es un Stereo Mirror la tarjeta gráfica no tiene por qué tener conector estéreo en la placa, por lo tanto, no es necesario una tarjeta gráfica de nivel profesional. Puedes utilizar tarjetas gráficas de gama media o alta.
    2. Si vas a utilizar un monitor de estéreo activo, te recomendamos que utilices una tarjeta gráfica profesional con conector estéreo en la placa.
    3. Si vas a utilizar estereoscopio, puedes utilizar tarjetas gráficas de gama media o alta.
    4. Si vas a utilizar anaglifo, puedes utilizar tarjetas gráficas de gama media o alta.

Monitor estereoscópico

El mejor sistema de visión estereoscópica es el monitor Stereo mirror. Puedes adquirir uno directamente la página web: https://www.vrlogic.com/hardware/sonic4.

Si el precio del monitor Stereo mirror te parece excesivo, puedes adquirir monitores 3D y gafas compatibles con el sistema NVidia 3D Vision.

NVidia 3D Vision se ha dejado de fabricar, pero el fabricante Stealth3DMouse fabrica gafas compatibles que puedes comprar en Amazon USA.

Cada día es más complicado encontrar monitores 3D, pero aún queda algún fabricante. Aquí tienes uno en Amazon España.

Dispositivo de entrada

Digi3D.NET es compatible con múltiples dispositivos de entrada.

Novedades de la versión

Disponemos de un repositorio en GitHub denominado TareasDigi3D en el que tenemos distintos proyectos, uno por cada versión del programa que publicamos.

Cada proyecto tiene tres columnas:

  • Por hacer (To do).
  • En progreso (In progress).
  • Hecho (Done).

En la primera columna añadimos las tareas que queremos implementar en esa versión.

Cuando nos ponemos con una tarea la movemos a la segunda columna.

Cuando finalizamos la tarea la movemos a la tercera columna.

Publicamos una versión siempre que no quedan tareas pendientes y nos ponemos a trabajar en la siguiente versión.

De manera que si haces clic en una versión podrás comprobar en la columna Done todos los cambios que tiene la versión.

Si haces clic en una modificación podrás comprobar si ha sido una corrección de errores, una nueva funcionalidad o por otro motivo además de una descripción más completa que el resumen que aparece en las tres columnas.

Este repositorio está abierto para que solicites nuevas funcionalidades. Puedes hacerlo haciendo clic en **Issues y luego en el botón New issue**.

Primeros pasos

Instalación de Digi3D.NET

Para instalar Digi3D.NET, tan solo tienes que descargar el instalador de nuestra página web.

El instalador es un bootstrapper, que es un instalador de instaladores. Este instalador se encargará de instalar todos los componentes necesarios para el programa (suite de licencias, controlador de la llave de protección, modelos de geoide, etc.).

Una vez finalizado el proceso de instalación, ya puedes utilizar el programa. Pero para ello tienes que tener una licencia de éste (comprada, alquilada o demostración). Puedes aprender más sobre cómo obtener una licencia en Acerca de las llaves de protección.

Primeros pasos usuarios versiones anteriores

Si eres usuario de versiones anteriores de Digi3D.NET, aquí encontrarás información de gran utilidad con respecto a los cambios que nos hemos visto obligados a realizar en esta versión.

Hemos intentado mantener lo máximo posible compatibilidad con versiones anteriores, pero no nos ha quedado más remedio que cambiar algunas cosas, algunas motivados por cambios en las políticas de seguridad de Windows 7 y Windows 8, otras que implicaban modernizar el formato de algunos tipos de archivo.

Configuración para tarjetas gráficas antiguas

Digi3D.NET requiere una tarjeta gráfica moderna con al menos 64 núcleos.

Si tu tarjeta gráfica es antigua, como por ejemplo una NVidia Quadro FX 1400, NVidia Quadro FX 1500, NVidia Quadro FX 3450/4000, tendrás que adquirir una más moderna.

Ubicación de los archivos de tablas

Los instaladores de versiones anteriores de Digi3D, al ser anteriores a Windows Vista y a Windows 7, almacenaban los directorios de tablas en la carpeta c:\Archivos de programa\Digi21.net\Digi3D 2007\Tablas.

Esta ubicación no es válida para sistemas operativos Windows Vista y Windows 7, pues los usuarios no tienen permisos para realizar modificaciones en estos directorios (aunque sean administradores), de modo que el instalador de Digi3D.NET ubica los archivos de tablas (tabla de códigos por defecto, configuración de teclas por defecto, directorio de símbolos, …) en una de las siguientes carpetas en función del sistema operativo:

Sistema operativoUbicación
Windows XPC:\Documents and Settings\All Users\Datos de programa\Digi3D3D.NET\
Windows 7/8/10C:\ProgramData\Digi3D.NET\

Es posible que no puedas visualizar estas carpetas con el explorador de archivos, pero están ahí, así que cuando quieras seleccionar algún archivo de estas carpetas, teclea la ruta en el explorador de archivos y verás (tras pulsar Intro) que éste te muestra el contenido de estas carpetas.

Archivos de configuración de teclas

Hemos modernizado el formato de los archivos de configuración de teclas (los archivos teclas.mnu).

Este tipo de archivos ahora tienen extensión .keyboard.xml y tienen muchas mejoras con respecto al formato antiguo. Digi3D.NET no puede importar tus archivos de tecla antiguos, pero tenemos un programa de consola que te puede ayudar a importar los archivos de teclas antiguos.

Puedes descargar esta herramienta de https://github.com/digi21/TeclasMnuATeclasMnuXml/releases

Es un programa de consola y requiere que le pases como parámetro la ruta al archivo a traducir. El programa creará en el mismo directorio que el archivo, y con el mismo nombre, pero con extensión .keyboard.xml.

Si detecta que alguna tecla no sabe cómo traducirla, te mostrará un mensaje por la misma consola, para que tengas constancia de que teclas no se pudieron traducir.

Te recomendamos que indiques la ruta absoluta del archivo a traducir como, por ejemplo:

C:\DIGI\Tablas\TeclasMnuATeclasMnuXml.exe c:\digi\tablas\miteclado.mnu

Ya que si no la pones absoluta como a continuación:

C:\DIGI\Tablas\TeclasMnuATeclasMnuXml.exe miteclado.mnu

Te creará el archivo __en el directorio raíz (en C:\)

Tablas de códigos

Ahora no es posible cargar múltiples tablas de códigos simultáneamente, por lo tanto, ha desaparecido la antigua opción Herramientas/Tablas.

Digi3D.NET te va a permitir trabajar o sin tabla de códigos o especificando una única tabla de códigos.

Si quieres trabajar con tabla de códigos, tendrás que indicar su ubicación en el campo Tabla de códigos de la pestaña Archivo de dibujo en el cuadro de diálogo de Nuevo Proyecto.

Directorio de símbolos

Indica aquí el directorio donde están ubicadas las fuentes y símbolos que utilizará Digi3D.NET para mostrar textos y elementos puntuales.

Ubicación del archivo de esquemas Von Grouber para orientaciones relativas

Digi3D.NET no requiere de archivo de configuración de esquemas de relativa pues incorpora una opción que calcula las foto-coordenadas de Von Grouber automáticamente en función del tamaño de la imagen.

De todos modos, puedes configurar el archivo con los esquemas de Von Grouver igual que en versiones anteriores, en el campo Esquemas del cuadro de diálogo de configuración, en la sección Orientación Relativa.

El instalador de Digi3D.NET instala una copia del archivo que se instalaba con la versión 2007 en la siguiente ubicación en función del sistema operativo:

Windows XPC:\Documents and Settings\All Users\Datos de programa\Digi3D3D.NET\Esquemas Orientaciones\Esquemas de orientación relativa.relscheme.xml
Windows 7C:\ProgramData\Digi3D.NET\Esquemas Orientaciones\Esquemas de orientación relativa.relscheme.xml

Sigue los siguientes pasos para configurar el archivo de esquemas de Von Grouber para orientaciones relativas:

  1. Ejecuta Digi3D.NET.
  2. Cierra el cuadro de diálogo Nuevo proyecto.
  3. Ejecuta la opción del menú Herramientas/Configuración.
  4. Localiza la sección Orientación Relativa.
  5. En el campo Esquemas pega la ruta del archivo (copiándola de la tabla anterior en función del sistema operativo) o localiza la ruta de tu archivo de esquemas personalizado.
  6. Acepta el cuadro de diálogo Configuración.

Ubicación del archivo de esquemas de aerotriangulación

El instalador de Digi3D.NET crea una copia del archivo de esquemas de aerotriangulación asistida, pero no almacena la ruta a ese archivo en la configuración del programa.

Si vas a realizar medidas de aerotriangulación tendrás que indicar la ruta en la opción Esquemas en la sección Orientación relativa del cuadro de diálogo de Configuración.

A continuación tienes la ruta donde copia el instalador de Digi3D.NET el archivo que se copiaba en la versión 2007 en función del sistema operativo:

Windows XPC:\Documents and Settings\All Users\Datos de programa\Digi3D3D.NET Esquemas Orientaciones Esquemas de medida de aerotriangulación.aerotrischeme.xml
Windows 7C:\ProgramData\Digi3D.NET\Esquemas Orientaciones\Esquemas de medida de aerotriangulación.aerotrischeme.xml

Sigue los siguientes pasos para configurar el archivo de esquemas de Von Grouber para orientaciones relativas:

  1. Ejecuta Digi3D.NET.
  2. Cierra el cuadro de diálogo Nuevo proyecto.
  3. Ejecuta la opción del menú Herramientas/Configuración.
  4. Localiza la sección Medida de aerotriangulación.
  5. En el campo Esquemas pega la ruta del archivo (copiándola de la tabla anterior en función del sistema operativo) o localiza la ruta de tu achivo de esquemas personalizado.
  6. Acepta el cuadro de diálogo Configuración.

Vea también

¿Donde esta la barra de herramientas de selección de códigos?

Si eres usuario de versiones anteriores de Digi3D, y estás ejecutando Digi3D.NET habrás comprobado que ha desaparecido la barra de herramientas Código, es decir, la barra de herramientas clásica que te permitía seleccionar el código con el que digitalizar entidades.

En realidad esa barra de herramientas no ha desaparecido. Digi3D.NET no la está mostrando porque el programa está configurado en modo multi-codificación.

Cambia esta configuración en Interfaz para seleccionar código

Comenzando a utilizar Digi3D.NET

Aquí encontrarás un tutorial en el que te enseñamos a utilizar Digi3D.NET.

Descargando ejemplos y configurando Digi3D.NET para el tutorial

En este tema te vamos a enseñar a utilizar las funcionalidades básicas de Digi3D.NET.

No vamos a profundizar en los temas, simplemente te vamos a indicar los pasos a seguir para introducirte en la filosofía del programa.

Para poder seguir estos pasos es necesario que descargues dos proyectos:

Nombre del proyectoDescripción
BronchalesEste es un proyecto conocido por todos los usuarios de Digi3D.NET. Consta de dos modelos de cámara cónica analógica. Las están en tonos de gris. Con este proyecto te enseñaremos a realizar orientaciones interna, relativa y absoluta.

Descarga y descomprime los proyectos antes de continuar.

También será necesario que configures en Digi3D.NET el archivo de teclas proporcionado por el instalador. Para ello sigue los siguientes pasos:

  1. Selecciona la opción del menú Herramientas/Configurar teclados virtuales... Aparecerá el Cuadro de diálogo Configuración de Teclados Virtuales.
  2. Si aparecen alguna entrada en la lista Archivos de asignación de teclas selecciónala y pulsa el botón Quitar. Repite esta acción hasta que ls lista Archivos de asignación de teclas esté vacía.
  3. Pulsa el botón Añadir. Aparecerá el cuadro de diálogo Abrir.
  4. En el campo Nombre teclea lo siguiente: %Programdata%. Comprobarás que se muestra el contenido del directorio %ProgramData%.
  5. Selecciona el directorio Digi3D.NET. Este es el directorio donde se instalan las tablas y configuraciones de Digi3D.NET.
  6. Selecciona el directorio Tablas.
  7. Selecciona el archivo Teclas.keyboard.xml. Este es el archivo de configuración de teclas estándar de Digi3D.NET. Las teclas enumeradas en ese archivo coinciden con lo que se explica en este tutorial.
  8. Pulsa el botón Aceptar del cuadro de diálogo Configuración de teclados virtuales.

Vídeo

Interfaz de usuario de Digi3D.NET

El interfaz de usuario de Digi3D.NET consiste en varias áreas detalladas a continuación:

Interfaz de usuario de Digi3D.NET

1Barra de menús.Contiene los menús con opciones para ejecutar comandos en Digi3D.NET. Este menú variará en función de si tenemos o no abiertos archivos de dibujo o ventanas fotogramétricas y en función de la ventana que tenga el foco en un determinado momento.
2Barras de herramientas.Contienen botones para ejecutar rápidamente comandos en Digi3D. Los botones permanecerán pulsados mientras se esté ejecutando un determinado comando o cuando esté activa la opción representada por el botón.
3Ventana fotogramétrica.Muestra un modelo fotogramétrico. Esta ventana mostrará una o dos imágenes en función del tipo de modelo cargado (monoscópico o estereoscópico). En caso de que el modelo sea estereoscópico, mostrará las imágenes con de la forma configurada en la opción Estereoscopía.
4Ventana de dibujoEs el área donde vamos a dibujar/editar entidades.
5PanelesDigi3D.NET dispone de múltiples paneles que nos van a permitir interactuar con distintas partes del programa.
6Barra de mensajesLas distintas órdenes de Digi3D.NET se comunican con el usuario mediante la barra de mensajes.

Vídeo

Comenzando con la ventana fotogramétrica

Interfaz de usuario de la ventana fotogramétrica

El interfaz de usuario de Digi3D.NET consiste en varias áreas detalladas a continuación:

Interfaz de usuario de la ventana fotogramétrica

1Barra de herramientas.Contiene botones para realizar acciones en la ventana fotogramétrica. Esta barra de herramientas varía en función del tipo de sensor que se esté mostrando en la ventana fotogramétrica.
2Desplegable de factor de zoom.Muestra el factor de zoom activo en un determinado momento y permite cambiar el factor de zoom seleccionando una determinada opción del desplegable.
3Factor de velocidad XY y Z.Muestra la velocidad activa del dispositivo de entrada, para XY y para Z.
4Visualización de coordenadasMuestra coordenadas. El tipo de coordenadas mostradas variará en función del tipo de sensor cargado en la ventana fotogramétrica.

Vídeo

Cargando el primer par estereoscópico

Una de las funcionalidades principales de Digi3D.NET consiste en cargar y visualizar modelos fotogramétricos de distintos sensores.
Vamos a aprender a cargar un par estereoscópico y a interactuar con la ventana fotogramétrica.

  1. Abre el menú Archivo y selecciona la opción Nuevo/Abrir modelo fotogramétrico o archivo de dibujo.
  2. Se muestra el cuadro de diálogo Nuevo Proyecto.
  3. Selecciona la pestaña Sensores Fotogramétricos.
  4. En el campo Directorio de trabajo selecciona la ruta %EjemplosDigi3D%\Pumarín.
  5. En el campo Tipo de sensor selecciona Cónico (estereoscópico). Comprobarás que la sección titulada Propiedades del sensor varía para solicitar los archivos requeridos para cargar un modelo estereoscópico de cámara cónica.
  6. En el campo Archivo de aerotriangulación indica la ruta al archivo %EjemplosDigi3D%\Pumarín\Pumarín.eo. Este es un archivo de aerotriangulación en formato PatB.
  7. En el campo Imagen izquierda indica la ruta al archivo %EjemplosDigi3D%\Pumarín\126.tif
  8. En el campo Imagen derecha indica la ruta al archivo %EjemplosDigi3D%\Pumarín\127.tif
  9. En el campo Cámara izquierda indica la ruta al archivo %EjemplosDigi3D%\Pumarín\120mm.cam
  10. En el campo Cámara derecha indica la ruta al archivo %EjemplosDigi3D%\Pumarín\120mm.cam
  11. Pulsa el botón Aceptar.

Se abrirá una ventana con título 126-127.d3d con las imágenes indicadas. La imagen derecha la verás negra. No te preocupes, aún no estamos en una coordenada correcta.

Vídeo

Desplazando la ventana fotogramétrica a unas coordenadas conocidas

Existen varias formas de ordenar a la vista de Digi3D que se desplace a una determinada ubicación.

Si sabemos las coordenadas de un determinado punto, podemos indicarle a la ventana que se desplace a esas coordenadas.

  1. Abre el menú Ventana fotogramétrica y selecciona la opción Ir a coordenadas...
  2. Aparecerá el cuadro de diálogo Ir a coordenadas terreno.
  3. En el campo de la coordenada X teclea el valor: 281854.98
  4. En el campo de la coordenada Y teclea el valor: 4821292.06
  5. En el campo de la coordenada Z teclea el valor: 75.36
  6. Pulsa el botón Aceptar.
  7. La ventana fotogramétrica se desplazará al extremo de un muro.

Esta ventana muestra siempre las coordenadas en las que está ubicada la ventana fotogramétrica.

Vamos a desplazar la cámara 10 unidades en la coordenada X.

  1. Abre el menú Ventana fotogramétrica y selecciona la opción Ir a coordenadas...
  2. Aparecerá el cuadro de diálogo Ir a coordenadas terreno.
  3. En el campo de la coordenada X verás que Digi3D está mostrando el valor: 281854.98
  4. Cambia ese valor por 281864.98 (has incrementado el valor de la coordenada X 10 metros)
  5. Pulsa el botón Aceptar.
  6. Te has alejado 10 metros en X del extremo del muro.

Vídeo

Desplazando la ventana fotogramétrica a un punto de apoyo

Si dispones de un archivo de puntos de apoyo puedes ordenarle a la vista estereoscópica que se desplace a las coordenadas de un determinado punto de apoyo.

  1. Abre el menú Ventana fotogramétrica y selecciona la opción Ir a punto de apoyo...
  2. Aparecerá el cuadro de diálogo común de Windows Selecciona archivo de puntos de apoyo. Si no aparece este cuadro de diálogo, pulsa el botón ... del cuadro de diálogo Selecciona el punto de apoyo al que desplazar la ventana fotogramétrica.
  3. Selecciona el archivo %EjemplosDigi3D%\Pumarín\Archivo de apoyo tutorial de Digi3D.txt.
  4. Aparecerá el cuadro de diálogo Selecciona el punto de apoyo al que desplazar la ventana fotogramétrica.
  5. En el listado de puntos selecciona Edificio y pulsa Aceptar, o haz doble clic sobre el punto Edificio o teclea el nombre Edificio y Enter.
  6. La ventana fotogramétrica se desplazará al tejado de un edificio.

Vídeo

Aprendiendo a desplazarnos con el ratón en la ventana fotogramétrica

Puedes capturar el ratón de Windows en la ventana fotogramétrica para hacer que esta se desplace con el ratón de Windows, independientemente de que dispongas o no de un topo-mouse o de sistemas de manivelas

Capturando el ratón en la ventana fotogramétrica

Existen dos formas distintas de capturar el ratón en la ventana fotogramétrica:

  1. Ejecutando la orden RATON_DIGI3D
  2. Haciendo clic con el ratón en la ventana fotogramétrica (siempre y cuando esté así configurado en la configuración del programa).

Descapturando el ratón de la ventana fotogramétrica

Existen cuatro formas distintas de descapturar el ratón de la ventana fotogramétrica:

  1. Cambiando a otra aplicación (Pulsando la combinación de teclas Alt+Tab.
  2. Ejecutando la orden RATON_DIGI3D
  3. Pulsando la tecla Intro. Por el mero hecho de pulsarla se descapturará el ratón.
  4. Pulsando (y manteniendo pulsada) la tecla Ctrl. Cuando pulsamos la tecla Ctrl se libera temporalmente el ratón. En el momento de soltar la tecla se vuelve a capturar automáticamente.

Vídeo

Desplazando la vista al punto de origen del modelo

En ocasiones hacemos tentativos en una entidad que está fuera de los límites de nuestro modelo estereoscópico, o realizamos un movimiento muy grande con nuestro dispositivo de entrada y la ventana fotogramétrica se desplaza a unas coordenadas en las que no hay imagen.

Si no disponemos de archivo de puntos de apoyo y si no conocemos las coordenadas de un punto dentro del modelo podemos forzar a la ventana fotogramétrica a que se ubique en las coordenadas de origen del modelo.

  • Abre el menú Ventana fotogramétrica y selecciona la opción Ir a punto de origen.

Comprobarás que Digi3D.NET se ha desplazado al punto de origen del modelo.

Vídeo

Aprendiendo a cambiar el factor de zoom

Existen múltiples maneras de cambiar el factor de zoom en la ventana fotogramétrica. Cambiar el factor de zoom te servirá para:

  • Moverte más rápido por el modelo (si alejas las imágenes podrás recorrerlas más rápido).
  • Digitalizar con mayor precisión (si acercas las imágenes).

Mediante el desplegable de factores de zoom de la barra de estado de la ventana fotogramétrica

  • Haz clic en el desplegable de factores de zoom en la barra de estado de la ventana fotogramétrica y selecciona alguna de las opciones que muestra ese desplegable.

El desplegable de factores de zoom muestra tantas opciones como posibilidades de zoom tengan las imágenes que tienes cargadas.
Puedes comprobar que los títulos de esos factores de zoom están compuestos por un número dos puntos y otro número, como por ejemplo 128:1.
Esta nomenclatura significa [píxeles de la imagen]:[píxeles en pantalla], por lo tanto si seleccionamos 128:1 estaremos indicando a Digi3D que nos muestra un factor de zoom muy alejado, de manera que 128 píxeles de la imagen se representen en tan solo 1 pixel de pantalla.

Mediante el menú Ventana fotogramétrica

  1. Abre el menú Ventana fotogramétrica y selecciona la opción Zoom extendido. Comprobarás que Digi3D ha calculado un factor de zoom suficiente para poder mostrar toda la imagen en pantalla. Las coordenadas en las que estabas no se ven modificadas. Únicamente has cambiado de factor de zoom.
  2. Abre el menú Ventana fotogramétrica y selecciona la opción Zoom 1x1. Comprobarás que Digi3D ha ampliado el factor de zoom hasta el tamaño real de la imagen. Este es el factor de zoom en el que deberías trabajar pues es el tamaño real de la imagen. Si te acercas estarás intentando ver de más. Si te alejas estarás perdiendo detalle.
  3. Abre el menú Ventana fotogramétrica y selecciona la opción Zoom con memoria (dos últimos zooms). Comprobarás que Digi3D ha vuelto a factor de zoom que tenías antes de ejecutar el punto número 1. Esta opción memoriza los dos últimos factores de zoom que has utilizado. Es muy útil programar esta orden en cualquiera de los botones de tu topo-mouse.
  4. Abre el menú Ventana fotogramétrica y selecciona la opción Zoom de acercar. Comprobarás que Digi3D ha incrementado el factor de zoom.
  5. Abre el menú Ventana fotogramétrica y selecciona la opción Zoom de alejar. Comprobarás que Digi3D ha decrementado el facto de zoom.

Mediante el teclado

Cambiar el factor de zoom utilizando el ratón puede llegar a ser muy lento.

Hemos asignado a una serie de teclas órdenes que te van a permitir cambiar el factor de zoom de una forma más rápida.

  1. Pulsa la tecla de función F3. Comprobarás que Digi3D hace un zoom extendido.
  2. Pulsa la tecla de función F4. Comprobarás que Digi3D hace un zoom 1x1.
  3. Pulsa la tecla Av Pág. Comprobarás que Digi3D hace un zoom de acercar.
  4. Pulsa la tecla de Re Pág. Comprobarás que Digi3D hace un zoom de alejar.

Si quieres acercar la imagen dos niveles de zoom, tan solo tienes que pulsar la tecla Av Pág dos veces.

Mediante la rueda del ratón

Si tienes configurado el ratón para que el movimiento de la rueda cambie el factor de zoom, puedes cambiar el factor de zoom siempre y cuando tengas capturado el ratón.

  1. Haz clic en la ventana fotogramétrica o pulsa la barra espaciadora para capturar el ratón en la ventana fotogramétrica.
  2. Mueve la rueda del ratón. Si tienes configurado el ratón para que su rueda cambie el factor de zoom se cambiará el factor de zoom de la ventana fotogramétrica.
  3. Pulsa la barra espaciadora para liberar el ratón.

Vídeo

Cambiando el tipo de índice en la ventana fotogramétrica

Puedes cambiar tanto la forma como el color del índice de la ventana fotogramétrica.

Digi3D te va a permitir cambiar entre las siguientes formas de íncice:

Índice pequeñoEs un punto de 1x1 píxeles en pantalla del color indicado por el usuario rodeado de un aro de color negro.
Índice medianoEs un punto de 3x3 píxeles en pantalla del color indicado por el usuario rodeado de un aro de color negro.
Índice grandeEs un punto de 6x6 píxeles en pantalla del color indicado por el usuario rodeado de un aro de color negro.
AspaUn aspa grande. Se utiliza para digitalizar con precisión en marcas fidufiales con forma de aspa al realizar una orientación interna de cámara analógica.
Cruz horizontalUna cruz grande. Se utiliza para digitalizar con precisión en marcas fidufiales con forma de cruz al realizar una orientación interna de cámara analógica.

Vamos a cambiar el tipo de índice y su color

Mediante el menú Ventana fotogramétrica

  1. Abre el menú Ventana fotogramétrica y selecciona la opción Índices/Índice grande Comprobarás que Digi3D ha cambiado el tamaño del índice.
  2. Abre el menú Ventana fotogramétrica y selecciona la opción Índices/Color
  3. Aparecerá el cuadro de diálogo Color. Selecciona el color que te interese y pulsa el botón Aceptar. Comprobarás que Digi3D ha cambiado el color del índice.

El color por defecto que selecciona Digi3D si no has seleccionado uno es verde puro.

Mediante el teclado

Hemos configurado en la tecla de función F2 una orden que va a cambiar el tipo de índice cada vez que la pulses.

  • Pulsa la tecla de función F2.

Comprobarás que Digi3D cambia el tipo de índice. El índice varía siguiendo un bucle repetitivo (pequeño, mediano, grande, aspa, cruz).

Vídeo

Cambiando la radiometría de las imágenes de la ventana fotogramétrica

Puedes cambiar en cualquier momento los parámetros de brillo, contraste y gamma de la ventana fotogramétrica.

  1. Abre el menú Ventana fotogramétrica y selecciona la opción Ir a punto de apoyo.
  2. En el cuadro de diálogo Selecciona el punto de apoyo al que desplazar la ventana fotogramétrica selecciona el punto ZonaOrcura.
  3. Pulta el botón Aceptar.
  4. Comprobarás que la ventana fotogramétrica se ha desplazado a la sobra de la proyección de una nave. Justo en esa ubicación hay un árbol, pero quizás no puedas apreciarlo.
  5. Abre el menú Ventana fotogramétrica y selecciona la opción Propiedades de visualización...
  6. Aparecerá el panel Propiedades de la imagen.
  7. Desplaza el control de Gamma hacia la derecha. Comprobarás que se mejora la visualización de partes oscuras. Ahora podrás apreciar el árbol.
  8. Prueba a modificar el brillo y contraste.
  9. Pulsa el botón Predeterminar para dejar los valores de Brillo, Contraste y Gamma con sus valores predeterminados.
  10. Cierra el panel Propiedades de visualización.

Vídeo

Sensor Cámara Cónica

Orientando modelos fotogramétricos de sensor de cámara cónica

En este tutorial vamos a enseñarte a realizar las orientaciones necesarias para poder digitalizar sobre un modelo fotogramétrico de cámara cónica.

Estas orientaciones son cada vez menos habituales, pues lo normal es que los trabajos estén aerotriangulados y ya se conozcan las orientaciones de todas las imágenes del proyecto. En este tutorial vamos a aprender a realizar las orientaciones de forma manual, modelo por modelo para el caso de que no dispongamos de un cálculo de aerotriangulación.

Para poder seguir los pasos de este tutorial, localiza el directorio donde has descomprimido el proyecto de Bronchales y elimina todos los archivos y subdirectorios que tenga excepto los siguientes archivos:

  • 107.TIF
  • 108.TIF
  • 109.TIF
  • Bronchales.prj
  • Bronchales.xyz
  • RMK15.cam

Los modelos de cámara cónica precisan de tres orientaciones para estar preparados para trabajar:

  1. Orientación interna.
  2. Orientación relativa.
  3. Orientación absoluta.

Comenzando con la ventana fotogramétrica

Orientación interna

La orientación interna es la que le permite a Digi3D.NET relacionar las coordenadas fiduciales que aparecen en el certificado de calibración de la cámara con las coordenadas píxel de dichas marcas fiduciales en la imagen.

Ya no es habitual el tener que realizar orientaciones internas, pues la inmensa mayoría de imágenes que vas a utilizar son digitales y Digi3D.NET calcula de forma automática las orientaciones internas si la cámara es digital, pero las imágenes del ejemplo Bronchales son analógicas, de modo que Digi3D.NET requiere que realicemos una orientación interna pues no sabe cómo se ubicó el negativo en el escáner a la hora de escanear las imágenes.

Podemos saber rápidamente si el modelo que tenemos cargado tiene realizada o no la orientación interna fijándonos en la barra de herramientas de la ventana fotogramétrica. Si los botones I y D están pulsados, significa que las orientaciones Interna Izquierda e interna Derecha están realizadas y cargadas. Si los botones aparecen sin pulsar, no estarán realizadas dichas orientaciones.

Orientación interna de la cámara izquierda

Comenzaremos realizando la orientación interna de la imagen izquieda y continuaremos con el de la imagen derecha. El de la imagen derecha se realizará de forma automática pues Digi3D.NET se basará en la orientación de la cámara izquierda para localizar las marcas fiduciales en la cámara derecha.

  1. Asegúrate de que no tienes abierto ningún modelo fotogramétrico ni ninguna ventana de dibujo. Si es así, ciérralas.
  2. Abre el menú Archivo y selecciona la opción Nuevo/Abrir modelo fotogramétrico o archivo de dibujo.
  3. Se muestra el cuadro de diálogo Nuevo Proyecto.
  4. Selecciona la pestaña Sensores Fotogramétricos.
  5. En el campo Directorio de trabajo selecciona la ruta %EjemplosDigi3D%\Bronchales.
  6. En el campo Tipo de sensor selecciona Cónico (estereoscópico). Comprobarás que la sección titulada Propiedades del sensor varía para solicitar los archivos requeridos para cargar un modelo estereoscópico de cámara cónica.
  7. El campo Archivo de aerotriangulación déjalo vacío, pues no disponemos de ningún archivo de aerotriangulación. Este es un campo opcional que rellenaremos únicamente si disponemos de un archivo de aerotriangulación.
  8. En el campo Imagen izquierda indica la ruta al archivo %EjemplosDigi3D%\Bronchales\107.tif
  9. En el campo Imagen derecha indica la ruta al archivo %EjemplosDigi3D%\Bronchales\108.tif
  10. En el campo Cámara izquierda indica la ruta al archivo %EjemplosDigi3D%\Bronchales\RMK15.cam
  11. En el campo Cámara derecha indica la ruta al archivo %EjemplosDigi3D%\Bronchales\RMK15.cam
  12. Pulsa el botón Aceptar. Se abrirá la ventana fotogramétrica mostrando el modelo 107-108. Si has eliminado correctamente los archivos tal y como se explica en Orientando modelos fotogramétricos de sensor de cámara cónica no debería de estar pulsado ninguno de los botones de la barra de herramientas de la ventana fotogramétrica.
  13. Pulsa el botón I. Con esto ejecutamos la orden ORI_INTERNA_I. Aparecerá el panel acoplable Orientación interna.
  14. En la parte inferior del panel Orientación interna el programa nos invita a digitalizar el punto número 1. Haz clic en la ventana fotogramétrica para capturar el ratón y localiza la marca fiducial con el número 1, centra el cursor en el centro de la marca fiducial y pulsa cualquier botón del ratón. Recuerda (Cambiando la velocidad de movimiento en la ventana fotogramétrica) que puedes cambiar la velocidad de la ventana para tener más precisión y que puedes (Cambiando el tipo de índice en la ventana fotogramétrica cambiar el tipo de índice para medir mejor la marca fiducial. ¡Acabas de medir tu primera marca fiducial!
  15. El panel de Orientación interna solicitará ahora que digitalices la segunda marca fiducial. Localízala y y digitalízala. Continúa así con las ocho marcas fiduciales de la imagen.
  16. Una vez medidas todas las marcas fiduciales, el panel Orientación interna mostrará el error medio cuadrático de las medidas que has realizado. El tamaño de píxel del escaneo del proyecto de Bronchales es de 20 micras, de modo que los valores aceptables son entre 0 y 10 micras.
  17. Si haces clic en una determinada medida, la ventana fotogramétrica mostrará dónde realizaste esa medida. Si no te gusta donde la mediste y quieres remedirla, tan solo tienes que pulsar el botón Remedir.
  18. Puedes pulsar el botón ¿Peor? para que el panel Orientación Interna seleccione automáticamente el punto con un error mayor.
  19. Una vez finalizada la orientación, puedes pulsar el botón Aceptar. Se cerrará el panel Orientación Interna y él botón I de la barra de herramientas de la ventana fotogramétrica permanecerá encendido.

Vídeo

Orientación interna de la cámara derecha

Si ya disponemos de la orientación interna de una cámara podemos realizar la orientación interna de la otra cámara de forma totalmente automática.

Es necesario que finalices los pasos de Orientación interna de la cámara izquierda antes de ejecutar los siguientes pasos que realizarán la orientación interna de la cámara derecha:

  1. Pulsa el botón D de la barra de herramientas de la ventana fotogramétrica. Al pulsarlo se ejecutará la orden ORI_INTERNA_D que es la encargada de realizar orientaciones internas en la cámara derecha.
  2. Nada más ejecutarse la orden, esta se dará cuenta de que la cámara izquierda ya tiene una orientación interna realizada, de modo que se basará en esta orientación para medir de forma automática la orientación de la cámara derecha. Puedes comprobar que en la barra de estado de Digi3D.NET se muestra una barra de progreso junto a la frase Correlando marca fiducial X. Esta barra de progreso se mostrará tantas veces como marcas fiduciales tenga la imagen. El resultado es que cuando se muestre el panel Orientación interna, los puntos ¡ya estarán medidos!, tan solo tendremos que verificar que están bien medidos. El panel de Orientación interna pulsará de forma automática el botón Peor por nosotros, de modo que nos estará mostrando directamente la peor medida que ha realizado.
  3. Si todo está bien, pulsa el botón Aceptar para finalizar la orientación interna de la cámara derecha. Si no es así remide el punto que te interese.

Vídeo

Archivos de orientación interna

Al aceptar la orientación interna se crea un archivo con el mismo nombre que la imagen que acabamos de orientar pero con extensión .in.xml en el directorio de proyecto del modelo fotogramétrico.

Este archivo almacena el resultado de la orientación interna así como las medidas realizadas por el usuario. Si eliminas un archivo de orientación interna, al volver a cargar el modelo fotogramétrico se indicará (mediante el botón correspondiente en la barra de herramientas de la ventana fotogramétrica, al no permanecer este pulsado) que no se ha podido cargar dicha orientación interna.

Es necesario que finalices los pasos de Orientación interna de la cámara derecha antes de ejecutar los siguientes pasos para comprobar los archivos que se han generado:

  1. Abre un Explorador de archivos (puedes hacerlo pulsando la combinación de teclas Windows + E).
  2. Localiza la ubicación del proyecto de Bronchales.
  3. Comprueba que se han creado los archivos 107.in.xml y 108.in.xml.
  4. Elimina el archivo 108.in.xml.
  5. Vuelve a Digi3D.NET. Si tenías el modelo fotogramétrico cargado, cierra la ventana fotogramétrica.
  6. Vuelve a cargar el modelo 107-108 y comprueba que el botón D de la barra de herramientas de la ventana fotogramétrica no está pulsado. Esto es así porque no se ha podido localizar el archivo 108.in.xml.
  7. Cierra la ventana fotogramétrica.
  8. Recupera el archivo eliminado de la papelera de reciclaje.
  9. Vuelve a abrir el modelo 107-108 y comprueba que ahora el botón D de la barra de herramientas de la ventana fotogramétrica está pulsado.

Vídeo

Orientación relativa

La orientación relativa permite que nos desplacemos el el modelo estereoscópicamente. Una vez realizada la orientación relativa de un modelo, el movimiento de la coordenada Z modificará la posición de las imágenes.

Al igual que en Orientación interna ya no es muy habitual realizar orientaciones relativas, pues los trabajos suelen venir aerotriangulados, lo que significa que ya se conoce la posición de las imágenes en el espacio, pero si no disponemos de un archivo de cálculo de aerotriangulación, tendremos que realizar la orientación relativa manualmente.

Podemos saber rápidamente si el modelo que tenemos cargado tiene realizada o no la orientación relativa fijándonos en la barra de herramientas de la ventana fotogramétrica. Si el botón R está pulsado, significa que la orientación Relativa está realizada y cargada. Si el botón aparece sin pulsar, no estará realizada dicha orientación.

Midiendo la orientación relativa manualmente

El proceso de medir la orientación relativa consiste en medir puntos homólogos en ambas imágenes. Mediremos un punto en la imagen izquierda y a continuación el punto homólogo en la imagen derecha. Repetiremos este proceso varias veces y al final tendremos realizada la orientación relativa.

Los puntos donde se mide la orientación relativa no son al azar, siguen el esquema de Von Grouber que Digi3D.NET es capaz de calcular de forma automática, así que será Digi3D.NET quien se encargue de indicarnos la zona en la cual tendremos que medir puntos.

Como Digi3D.NET dispone de algoritmos de correlación es posible que los puntos homólogos se localicen automáticamente y que tan solo tengamos que aceptar las medidas que va realizando automáticamente Digi3D.NET por nosotros.

Es necesario que finalices los pasos de Orientación interna antes de ejecutar los siguientes pasos para realizar la orientación relativa manual:

  1. Pulsa el botón R de la barra de herramientas de la ventana fotogramétrica.
  2. Comprueba que en la barra de mensajes aparece una barra de progreso indicando que se está calculando el recubrimiento de las imágenes.
  3. Si todo ha ido bien, deberías ver ambas imágenes en la misma posición.
  4. Aparecerá el panel Orientación relativa.
  5. En la parte inferior del panel Orientación relativa se muestra un texto indicándote que digitalices el punto 1 en la imagen izquierda. Digi3D.NET ha ubicado la imagen izquierda en una posición, pero nadie te obliga a medir el punto exáctamente en dicha posición. Puedes desplazar la imagen izquierda al punto que te interese, pero no te desplaces demasiado, pues debería estar por la misma zona. Una vez localizado el punto que quieres corregir, pulsa cualquier botón del dispositivo de entrada.
  6. Comprobarás que Digi3D.NET te solicita que digitalices el punto homólogo en la imagen derecha, pero él ya se ha encargado de buscarlo previamente, de modo que si no se ha equivocado tan solo tienes que confirmar su medida pulsando cualquier botón. Si no te gusta donde ha localizado el punto homólogo Digi3D.NET, eres libre de localizarlo tú manualmente. Para ello desplaza la ventana derecha hasta que el cursor de esta coincida con el cursor de la ventana izquierda. Si quieres liberar la imagen izquierda para cambiar el punto en la cámara izquierda, pulsa la tecla Esc., De esta manera estarás en el punto 5. Cuando lo tengas localizado el punto en la imagen derecha, pulsa cualquier botón para aceptar el punto.
  7. Repite este proceso las seis veces que te solicita Digi3D.NET.
  8. Una vez finalizado, se mostrarán los resíduos. Si no te gusta algún punto, puedes remedirlo seleccionándolo y pulsando el botón Remedir punto.
  9. Si observas este panel no tiene un botón titulado Peor como el de la orientación interna. Esto es así porque no se puede calcular de forma automática cual es el peor de los puntos si nos fijamos únicamente en sus resíduos, pues en una orientación absoluta un error en la medida de un punto puede provocar que otro completamente distinto dispare sus residuos, de modo que si quieres comprobar el punto que está cometiendo el error, tendrás que revisarlos uno por uno y comprobar que están bien posados estereoscópicamente.
  10. Una vez finalizada la medida de los seis puntos, puedes desplazarte por el modelo y comprobar que no tienes paralajes. Si localizas paralaje en alguna zona, puedes añadir un punto mediante el botón Añadir, pero si la cámara está bien calibrada no debería ser necesario.
  11. Cuando estés contento con tu orientación relativa, pulsa el botón Aceptar y desaparecerá el panel Orientación relativa.
  12. Comprueba que el botón R de la barra de herramientas de la ventana fotogramétrica se queda pulsado indicando que la orientación relativa está realizada.
  13. A partir de este momento si modificas la coordenada Z mediante el dispositivo de entrada, se deben mover las imágenes.

Vídeo

Archivos de orientación relativa

Al aceptar la orientación relativa, se crea un archivo con el nombre (foto izquierda) - (foto derecha).rel.xml en el directorio del proyecto del modelo fotogramétrico.

Este archivo almacena el resultado de la orientación relativa así como las medidas realizadas por el usuario. Si eliminas un archivo de orientación relativa, al volver a cargar el modelo fotogramétrico se indicará (mediante el botón correspondiente en la barra de herramientas de la ventana fotogramétrica, al no permanecer este pulsado) que no se ha podido cargar dicha orientación relativa.

Es necesario que finalices los pasos de Midiendo la orientación relativa manualmente antes de ejecutar los siguientes pasos para comprobar los archivos que se han generado:

  1. Abre un Explorador de archivos (puedes hacerlo pulsando la combinación de teclas Windows + E).
  2. Localiza la ubicación del proyecto de Bronchales.
  3. Comprueba que se ha creado el archivo 107-108.rel.xml.
  4. Elimina el archivo 107-108.rel.xml.
  5. Vuelve a Digi3D.NET. Si tenías el modelo fotogramétrico cargado, cierra la ventana fotogramétrica.
  6. Vuelve a cargar el modelo 107-108 y comprueba que el botón R de la barra de herramientas de la ventana fotogramétrica no está pulsado. Esto es así porque no se ha podido localizar el archivo 107-108.rel.xml.
  7. Cierra la ventana fotogramétrica.

Vídeo

Midiendo la orientación relativa automáticamente

Digi3D.NET puede medir la orientación relativa automáticamente mediante algoritmos de correlación, de manera que no será necesario medir ningún punto para realizar la orientación relativa.

El programa medirá puntos homólogos automáticamente. Al ser un proceso completamente automático es posible que algún punto no se mida correctamente. La manera de solucionar este problema es medir muchos más puntos (cuando seguiste los pasos de Midiendo la orientación relativa manualmente, asumir que un pequeño porcentaje de estos puntos estará medido de manera incorrecta y calcular la orientación relativa teniendo en cuenta esto precisamente, que algún punto no estará medido correctamente. El cálculo de la orientación relativa de Digi3D.NET utiliza estimadores robustos, y gracias a ellos se detectan estos puntos mal medidos y el resultado final es que no se tienen en consideración, obteniendo una orientación relativa perfecta.

Es necesario que finalices los pasos de Archivos de orientación relativa antes de ejecutar los siguientes pasos para medir una orientación relativa automáticamente:

  1. Pulsa el botón R de la barra de herramientas de la ventana fotogramétrica.
  2. Comprueba que en la barra de mensajes aparece una barra de progreso indicando que se está calculando el recubrimiento de las imágenes.
  3. Si todo ha ido bien, deberías ver ambas imágenes en la misma posición.
  4. Aparecerá el panel Orientación relativa.
  5. En la parte inferior del panel Orientación relativa se muestra un texto indicándote que digitalices el punto 1 en la imagen izquierda.
  6. Pulsa el botón Correlar todo. Aparecerá el cuadro de diálogo Orientación Relativa Automática por Correlación.
  7. Pulsa el botón Comenzar. Comprueba cómo en la barra de estado aparece una barra de progreso indicando el progreso de la corralción.
  8. Una vez finalizado comprueba que la lista de puntos medidos se ha rellenado con todas las medidas.
  9. Digi3D.NET habrá ordenado los seis primeros puntos para que el primero sea el mejor de la primera zona de Von Gruber, el segundo el mejor de la segunda zona de Von Gruber, ... y el sexto el mejor de la sexta zona de Von Gruber. El resto de puntos aparecerán en el orden de correlación, es decir, primero aparecerán todos los medidos en la primera zona de Von Gruber, luego los de la segunda zona, y así sucesivamente.
  10. Comprueba que no tienes paralaje por el modelo.
  11. Pulsa el botón Aceptar.

Vídeo

Orientación absoluta

La orientación absoluta ubica el modelo en el espacio, de manera que podeamos medir distancias, ángulos y coordenadas en una determinada posición de la tierra.

Midiendo la primera orientación absoluta de un proyecto

El proceso de medir una orientación absoluta consiste en identificar en el modelo puntos con coordenadas conocidas. Estos puntos son los denominados puntos de apoyo.

Necesitaremos pues un archivo con las coordenadas de los puntos de apoyo, así como un croquis que nos indique donde medir cada uno de estos puntos de apoyo.

A continuación tienes la posición (en la foto 107) de los puntos que vas a medir:

Y a continuación una tabla con los puntos a medir en mayor detalle (y por orden de medida), puedes hacer clic en las fotos para verlas a tamaño real:

OrdenNúmero de puntoCoordendas píxel en la imagen 107Captura
179527.7, 7713.6
268894.9, 5296.1
336297.8, 3308.4Punto 3 en a foto 107
445798.8, 66571.8Punto 4 en la foto 107
5510703.4, 2432.8Punto 5 en la foto 107

Es necesario que finalices los pasos de Midiendo la orientación relativa automáticamente antes de ejecutar los siguientes pasos para medir una orientación absoluta:

  1. Pulsa el botón Orientación absoluta de la barra de herramientas de la ventana fotogramétrica. Aparecerán dos paneles acoplados a la ventana fotogramétrica: Orientación Absoluta e Instantáneas. El panel Orientación absoluta es el que nos sirve para medir la orientación absoluta. El panel Instantáneas sirve para mostrarnos dónde se midió un determinado punto en otra imagen si éste punto ya se midió con anterioridad.
  2. Es posible que además aparezca el Cuadro de diálogo Introduce un punto terreno del archivo de puntos. Si es así, pulsa el botón Cancelar para cerrarlo.
  3. El panel Orientación absoluta muestra arriba del todo la ruta al archivo de puntos de apoyo así como el Sistema de referencia de coordenadas en el que están las coordenadas de los puntos de apoyo enumerados en ese archivo.
  4. Pulsa el botón ... justo a la derecha de la ruta al archivo de puntos de apoyo. Aparecerá el Cuadro de diálogo Archivo de puntos de apoyo.
  5. Pulsa el el botón ... para especificar la ruta del archivo de puntos de apoyo. Aparecerá el cuadro de diálogo Abrir.
  6. Localiza y selecciona el archivo %EjemplosDigi3D%\Bronchales\Bronchales.xyz y pulsa el botón Abrir.
  7. Pulsa el botón ... para para especificar el sistema de referencia de coordenadas de los puntos de apoyo. Aparecerá el Cuadro de diálogo Sistema de Referencia de Coordenadas.
  8. Selecciona la opción Proyectado + Vertical en la parte iquierda.
  9. En el desplegable Sistema de referencia de coordenadas proyectado localiza la opción WGS 84 / UTM Zone 30N.
  10. En el desplegable Sistema de coordenadas vertical selecciona EGM08_REDNAP Península.
  11. Pulsa el botón OK.
  12. Comprueba que el cuadro de diálogo Archivo de puntos de apoyo muestra en el campo Sistema de referencia de coordenadas lo siguiente: WGS 84 / UTM Zone 30N + EGM08_REDNAP Península.
  13. Pulsa el botón Aceptar.
  14. Comprueba que en el panel Orientación absoluta aparece tanto la ruta del archivo de puntos de apoyo como el sistema de referencia de coordenadas de éste.
  15. Pulsa el botón Añadir. Aparecerá el Cuadro de diálogo Introduce un punto terreno del archivo de puntos. Selecciona el punto 7 y pulsa el botón Aceptar.
  16. Comprueba que en la parte inferior del panel Orientación absoluta el programa te está invitando a digitalizar el punto número 7.
  17. Localiza el punto 7. Una vez localizado pulsa cualquier botón de tu dispositivo de entrada para confirmar la medida.
  18. Aparecerá el cuadro de diálogo Introduce un punto terreno del archivo de puntos.
  19. Selecciona el punto número 6 y pulsa el botón Aceptar.
  20. Localiza el punto 6. Una vez localizado pulsa cualquier botón de tu dispositivo de entrada para confirmar la medida.
  21. Observa que ya no se vuelve a mostrar el cuadro de diálogo Introduce un punto terreno del archivo de puntos. Con las dos medidas que hemos realizado anteriormente, Digi3D.NET ya se ha hecho una idea de los puntos que entran dentro del modelo y ha localizado automáticamente el siguiente punto que entra dentro del modelo. Comprueba que en la parte inferior del panel Orientación absoluta se nos está invitando a digitalizar el punto número 3.
  22. El programa ha calculado de forma automática la posición donde en teoría debería de estar el punto número 3, pero como por ahora únicamente hemos medido dos puntos, no puede llevarnos con total precisión. En teoría con desplazar la coordenada Z tendríamos que llegar correctamente al punto. Localiza el punto. Una vez localizado pulsa cualquier botón de tu dispositivo de entrada para confirmar la medida.
  23. El programa se desplazará al punto número 4 y te invitará a digitalizalo. Pósate estereoscópicamente y pulsa cualquier botón de tu dispositivo de entrada.
  24. Por último el progrma solicitará que digitalices el punto número 5. Pósate estereoscópicamente y pulsa cualquier botón de tu dispositivo de entrada.
  25. El programa deja de solicitar que digitalices puntos. Ahora comprueba los resíduos de cada punto. Puedes pulsar el botón Peor para que el programa localice automáticamente el punto con mayores resíduos. Se marcará el peor de los puntos en la lista de puntos de appoyo medidos y además la ventana fotogramétrica se desplazará a ese punto en particular.
  26. Si quieres remedir un punto, tan solo tienes que pulsar el botón Remedir. El programa entrará en modo remedir y tan solo tendrás que digitalizar el punto donde te interese. El programa calcula orientaciones absolutas cada vez que te mueves, de modo que es capaz de mostrar el resultado de la orientación antes de que confirmes el punto. Eso te puede ayudar para comprobar hacia dónde tienes que medir el punto. Esto se utiliza si tienes dudas, como por ejemplo si la reseña de un punto de apoyo indica que hay que medir el punto en el centro de una piedra y encuentras que hay varias piedras. De esta manera el programa te ayuda a localizar la piedra en cuestión. Puedes pulsar en cualquer momento la tecla Esc para cancelar la remedida del punto.
  27. Pulsa el botón Aceptar para aceptar la orientación absoluta.

Vídeo

Archivos De Orientacion Absoluta

Al aceptar la orientación absoluta, se crea un archivo con el nombre (foto izquierda) - (foto derecha).absl.xml en el directorio del proyecto del modelo fotogramétrico.

Este archivo almacena el resultado de la orientación absoluta así como las medidas realizadas por el usuario. Si eliminas un archivo de orientación absoluta, al volver a cargar el modelo fotogramétrico se indicará (mediante el botón correspondiente en la barra de herramientas de la ventana fotogramétrica, al no permanecer este pulsado) que no se ha podido cargar dicha orientación absoluta.

También se crea una carpeta denominada Aerotriangulación donde se han creado dos archivos con extensión .f que son archivos en formato PatB y contienen las fotocoordenadas de los puntos que hemos medido. Verás que hay uno por cada imagen. Estos archivos se utilizan para mostrar en la ventana fotogramétrica los puntos medidos y sirven a la orientación absoluta para saber si un determinado punto ya se midió en una foto y en caso afirmativo, la posición dentro de esa foto donde está el punto.

También se crea una carpeta denominada Instantáneas con una captura de pantalla de cada uno de los puntos que has medido. Se crean dos instantáneas por cada punto, una de cada imagen. Puedes crear un efecto de stop motion y visualizarlas en 2.5 dimensiones si las cargas y cambias rápidamente de una a otra.

Es necesario que finalices los pasos de Midiendo la primera orientación absoluta de un proyecto antes de ejecutar los siguientes pasos para comprobar los archivos que se han generado:

  1. Abre un Explorador de archivos (puedes hacerlo pulsando la combinación de teclas Windows + E).
  2. Localiza la ubicación del proyecto de Bronchales.
  3. Comprueba que se ha creado el archivo 107-108.abs.xml.
  4. Comprueba que se ha creado la carpeta Aerotriangulación y que contiene dos archivos: 107.f y 108.f.
  5. Comprueba que se ha creado la carpeta Instantáneas y que contiene las instantáneas de los puntos medidos.

Vídeo

Midiendo la segunda orientación absoluta

La segunda orientación absoluta es más sencilla que la primera, pues el programa ya sabe la posición de algunos puntos en una de las imágenes.

Una vez indicado el punto que queremos medir, el programa comprueba si dicho punto está ya medido en alguna foto. En caso afirmativo bloqueará esa foto de modo que aunque movamos nuestro dispositivo de entrada (ratón, topomouse, manivelas) en X,Y las imágenes no se moverán. Únicamente podremos mover la imagen donde el punto no fue medido mediante un movimiento de la coordenada Z, de esta manera nos aseguramos de que ese punto no se mida en la misma foto en otra posición.

Es necesario que finalices los pasos de Archivos De Orientacion Absoluta antes de ejecutar los siguientes pasos para comprobar los archivos que se han generado:

A continuación tienes la posición (en la foto 107) de los puntos que vas a medir en este modelo (son los que aparecen en color rojo):

Y a continuación una tabla con los puntos a medir en mayor detalle (y por orden de medida), puedes hacer clic en las fotos para verlas a tamaño real

OrdenNúmero de puntoCoordenadas píxel en la imagen 108Captura
175080.5, 7565.0Punto 7 en la foto 107
264605.1, 5155.6Punto 6 en la foto 107
356357.8, 2301.4Punto 5 en la foto 107
489986.2, 2338.0Punto 8 en la foto 108
5910269.1, 5557.6Punto 9 en la foto 108
6109707.6, 10124.8Punto 10 en la foto 108
  1. Cierra la ventana fotogramétrica que tienes abierta con el modelo 107-108.
  2. Abre el menú Archivo y selecciona la opción Nuevo/Abrir modelo fotogramétrico o archivo de dibujo.
  3. Se muestra el cuadro de diálogo Nuevo Proyecto.
  4. Selecciona la pestaña Sensores Fotogramétricos.
  5. En el campo Directorio de trabajo selecciona la ruta %EjemplosDigi3D%\Bronchales.
  6. En el campo Tipo de sensor selecciona Cónico (estereoscópico). Comprobarás que la sección titulada Propiedades del sensor varía para solicitar los archivos requeridos para cargar un modelo estereoscópico de cámara cónica.
  7. El campo Archivo de aerotriangulación déjalo vacío, pues no disponemos de ningún archivo de aerotriangulación. Este es un campo opcional que rellenaremos únicamente si disponemos de un archivo de aerotriangulación.
  8. En el campo Imagen izquierda indica la ruta al archivo %EjemplosDigi3D%\Bronchales\108.tif
  9. En el campo Imagen derecha indica la ruta al archivo %EjemplosDigi3D%\Bronchales\109.tif
  10. En el campo Cámara izquierda indica la ruta al archivo %EjemplosDigi3D%\Bronchales\RMK15.cam
  11. En el campo Cámara derecha indica la ruta al archivo %EjemplosDigi3D%\Bronchales\RMK15.cam
  12. Pulsa el botón Aceptar. Se abrirá la ventana fotogramétrica mostrando el modelo 108-109.
  13. Comprueba que el botón I de la Barra de herramientas de la ventana fotogramétrica está encendido, el resto de botones permanecerán apagados. Esto es así porque por ahora tenemos únicamente la orientación interna de la cámara izquierda. No hemos realizado aún la orientación interna de la cámara derecha, ni la orientación relativa.
  14. Genera la orientación interna de la cámara derecha.
  15. Genera la orientación relativa del modelo.
  16. Pulsa el botón Orientación absoluta para comenzar a medir la orientación absoluta.
  17. En el cuadro de diálogo Introduce un punto terreno del archivo de puntos selecciona el punto número 7. Recuerda que el punto número 7 ya había sido medido en la foto 108 (en el modelo anterior era la foto derecha, en este modelo es la foto izquierda), de modo que por el mero echo de medirlo el programa mueve la cámara izquierda a esas coordenadas y bloquea la cámara izquierda. No podemos mover la imagen en X,Y con nuestro dispositivo de entrada, únicamente podemos moverla en Z, y ese movimiento de la coordenada Z de nuestro dispositivo de entrada únicamente va a permitirnos mover la imagen que no tiene ese punto ya medido. De esta manera, tenemos la garantía de que el punto 7 se va a medir en la foto 108 exactamente en el mismo punto en el que se midió en el modelo anterior. Además puedes comprobar que el programa va a localizar automáticamente la otra imagen por correlación, de manera que si el proceso de correlación no ha fallado, tan solo tendremos que confirmar que el punto se ha medido bien.
  18. Digitaliza el punto número 7 pulsando cualquier botón de tu dispositivo de entrada.
  19. Aparece el cuadro de diálogo Introduce un punto terreno del archivo de puntos. Selecciona ahora el punto número 6. Vuelve a suceder lo mismo que en el punto anterior.
  20. Mide el punto número 6 pulsando cualquier botón de tu dispositivo de entrada.
  21. A partir de este momento el programa te va guiando y ordenando que midas puntos. Mide los puntos 5, 8, 9 y 10.
  22. Confirma la orientación absoluta pulsando el botón Aceptar.

Vídeo

Proyectos de proyecto fotogramétrico

Los archivos de proyecto de proyecto fotogramétrico permiten que cambiemos rápidamente de modelo con tan solo un clic en el Panel Proyecto fotogramétrico.

Estos archivos tan solo informan del número de pasadas, o tiras, o fajas que tiene el proyecto e indican de los pares estereoscópicos (es decir, los archivos .d3d) que tiene cada pasada.

Los archivos de proyecto fotogramétrico tienen extensión .d3dprj.

Cuando Digi3D.NET carga un archivo de proyecto fotogramétrico tiene una visión global del proyecto, tiene información de todas las fotos que forman parte del proyecto, qué fotos forman modelos con qué fotos...

Gracias a esto, el programa es capaz de detectar fotos sin orientación interna asociada y medirlas automáticamente además de detectar los pares que no tengan una orientación relativa y medirla automáticamente.

Creando un proyecto fotogramétrico para Bronchales

El cuadro de diálogo Cuadro de diálogo Crear proyecto fotogramétrico permite crear tanto archivos de proyecto fotogramétrico como archivos de proyecto .d3d.

En este ejemplo vamos a crear un archivo de proyecto fotogramétrico que indique que el proyecto tiene una única pasada, y que esta pasada está compuesta por dos modelos: el 107-108 y el 108-109.

Es necesario que finalices los pasos de Midiendo la segunda orientación absoluta antes de continuar.

  1. Activa el Panel Proyecto fotogramétrico mediante la opción del menú Ventana/Otras ventanas/Proyecto fotogramétrico.
  2. Pulsa el primer botón de la barra de herramientas del panel de proyecto fotogramétrico. Aparecerá el cuadro de diálñogo Crear archivo de proyecto fotogramétrico.
  3. Pulsa el botón de los tres puntos para indicar el nombre del archivo a crear. Aparecerá el cuadro de diálogo Abrir.
  4. Localiza la ruta del proyecto de Bronchales y teclea el nombre del archivo a crear, por ejemplo Proyecto de Bronchales. Pulsa Abrir.
  5. En el desplegable Sensor selecciona Cónico (estereoscópico). Esta es la opción por defecto de este desplegable.
  6. En Pasadas pulsa el botón Crear. Aparecerá el cuadro de diálogo Propiedades de la pasada. Por defecto se indica que el nombre de la pasada será Pasada: 1. Pulsa el botón Aceptar. Comprobarás que en la lista Pasadas aparece el nombre de la pasada que acabamos de crear.
  7. Con la opción Pasada: 1 seleccionada en la lista Pasadas, pulsa el botón Cargar de la lista Modelos. Esto nos va a permitir añadir archivos de proyecto .d3d en la lista Modelos. Aparecerá el cuadro de diálogo Abrir.
  8. Localiza el archivo 107-108.d3d, selecciónalo y pulsa el botón Abrir. Aparecerá el modelo 107-108 en el listado Modelos.
  9. Vuelve a pulsar el botón Cargar y carga el modelo 108-109.d3d.
  10. Pulsa el botón Aceptar. Desaparecerá el cuadro de diálogo Crear archivo de proyecto fotogramétrico y se cargará el proyecto en el panel Proyecto fotogramétrico.
  11. Comprueba en el el panel Proyecto fotogramétrico aparece una sección denominada Pasada: 1. Si despliegas dicha sección puedes comprobar que aparecen los dos modelos: el 107-108 y el 108-109.
  12. Haz clic sobre el modelo 107-108, comprobarás que se abre una ventana fotogramétrica con ese modelo.
  13. Haz clic sobre el modelo 108-109. Comprobarás se cambiará el modelo mostrado en la ventana fotogramétrica.

Vídeo

Archivos de proyecto fotogramétrico

Al aceptar el cuadro de diálogo Crear archivo de proyecto fotogramétrico se creó un archivo con extensión .d3dprj.
Este archivo informa de las pasadas que tiene el proyecto así como de los modelos de cada pasada.

Es necesario que finalices los pasos de Creando un proyecto fotogramétrico para Bronchales antes de continuar.

  1. Abre un explorador de archivos y localiza la carpeta del proyecto de Bronchales.
  2. Comprueba que se ha creado un archivo denominado Proyecto de Bronchales.d3dprj.
  3. Haz doble clic para abrir el archivo. Si tu ordenador te pregunta con qué programa abrirlo, selecciona el Bloc de notas.
  4. Comprobarás (aunque esté en inglés) que tan solo hay una sección llamada Pasadas (strips en inglés) que tiene como contenido una única pasada (strip en inglés) cuyo título es Pasada: 1 y que esta pasada a su vez está formada por dos archivos, el archivo 107-108.d3d y el archivo 108-109.d3d.

Vídeo

Midiendo automáticamente orientaciones internas y relativas

Podemos configurar Digi3D.NET para que realice las siguientes comprobaciones cada vez que cargamos un archivo de proyecto fotogramétrico:

  1. Comprobación de que las imágenes son compatibles con Digi3D.NET.
  2. Comprobación de que las imágenes tienen una orientación interna asociada.
  3. Comprobación de que los modelos tienen una orientación relativa.

La primera comprobación puede llevar tiempo, pues requiere que Digi3D.NET abra todas las imágenes del proyecto, y eso puede demorar si son muchas o si el dispositio donde están almacenadas las imágenes es lento, de modo que por defecto Digi3D.NET viene configurado de manera que no se realice esta comprobación.

La segunda comprobación también puede ser lenta, pues si las imágenes llevan incorporada en sus metadatos la información de la cámara Digi3D.NET tendrá que abrir las imágenes para comprobar que todas ellas proporcionan esa información, y eso, como en el párrafo anterior puede tardas, de modo que por defecto Digi3D.NET viene configurado de manera que no se realice esta comprobación.

La tercera comprobación es muy rápida, pero para mentener uniformidad con las opciones anteriores, también viene deshabilitada por defecto.

En este tema vamos a aprender a configurar Digi3D.NET para que realice las tres comprobaciones y vamos a generar automáticamente las orientaciones internas y las orientaciones relativas del proyecto.

Es necesario que finalices los pasos de Creando un proyecto fotogramétrico para Bronchales antes de continuar.

  1. Abre un explorador de archivos y elimina las orientaciones internas, relativas y absolutas del proyecto exceptuando la orientación interna de una de las imágenes.
  2. En Digi3D.NET, selecciona la opción del menú Herramientas/Configuración. Aparecerá el cuadro de diálogo Configuración.
  3. Localiza y despliega la sección Proyecto fotogramétrico.
  4. Cambia el valor de los parámetros Comprobar imágenes, Correlar internas y Correlar relativas a Si.
  5. Pulsa el botón Aceptar.
  6. Pulsa el segundo botón de la barra de herramientas del panel de Proyecto fotogramétrico. Este botón permite cargar un archivo de proyecto fotogramétrico. Aparecerá el cuadro de diálogo Abrir. Selecciona el archivo Proyecto de Bronchales.d3dprj y pulsa el botón Abrir.
  7. Aparecerá un cuadro de diálogo indicando que se han localizado imágenes sin orientación interna asociada y preguntándote si las quieres medir automáticamente. Esta operación se puede realizar porque se ha localizado al menos una imagen con orientación interna. Se va a utilizar esta orientación interna como base para medir el resto automáticamente. Pulsa el botón Si. Comprueba en la barra de estado de la aplicación que aparecen una serie de barras de progreso indicando que se están midiendo las orientaciones internas.
  8. Aparecerá un cuadro de diálogo indicando que se han localizado dos modelos sin orientación relativa y solicitando si queremos que se midan automáticamente. Pulsa el botón .
  9. Aparece el Cuadro de diálogo Orientación Relativa Automática por Correlación Extendido.
  10. En el desplegable Esquema selecciona la opción Von gruber calculado con porcentajes.
  11. En Configuración selecciona la opción Grosera (si no se dispone de una orientación relativa aproximada previa.
  12. Pulsa el botón Comenzar.
  13. Comprueba en la barra de estado de la aplicación que aparecen una serie de barras de progreso indicando que se están midiendo las orientaciones relativas.
  14. Selecciona la opción del menú Ventana/Resultados/Resultados. Aparecerá el panel de resultados.
  15. Comprueba que se muestran los resíduos tanto de las orientaciones internas como de las orientaciones relativas que se han medido automáticamente. De esta manera, si algo ha fallado podemos ir directamente al modelo en cuestión.
  16. Recuperar archivos.

Vídeo

Aerotriangulación manual

Digi3D.NET permite medir aerotriangulaciones de manera manual.

Estas aerotriangulaciones se miden de una manera muy rápida pues el programa va numerando automáticamente los puntos a medir y localiza automáticamente mediante correlación los puntos a medir, de manera que en la mayoría de los casos el operador tan solo tiene que confirmar la medida que se ha realizado automáticamente.

En este manual no te vamos a enseñar a aerotriangular, los conceptos teóricos de aerotriangulación están fuera del ámbito de este manual. Te recomendamos que te compres un libro de fotogrametría si no tienes conocimientos técnicos de aerotriangulación.

La medida de aerotriangulación en Digi3D.NET consiste en medir una serie de puntos repartidos por todo el proyecto. El proceso consiste en lo siguiente:

  1. Localizar una ubicación donde medir un punto.
  2. Darle un nombre al punto.
  3. Medir ese punto en todos los modelos en los que solapa dicho punto.

Si proyecto está formado por varias pasadas formando un bloque mediremos al menos tres puntos por foto. Si por el contrario está formado por una única pasada, o varias pasadas en las que el único solape entre pasadas es un único modelo (como por ejemplo una traza de carretera), mediremos al menor 5 puntos por foto. Esto es así porque midiendo únicamente tres puntos si se realiza alguna medida incorrecta es posible que genere un desdoblamiento en el cálculo, y estos dessoblamientos son difíciles de detectar al analizar los resultados del progama de cálculo de aerotriangulación.

Veamos la ubicación aproximada que suelen tener los puntos en una foto si decidimos medir tres puntos por foto:

Imagen mostrando la ubicación de los puntos para un esquema de aerotriangulación de tres puntos

y la ubicación aproximada que suelen tener los puntos en una foto si decidimos medir cinco puntos por foto:

magen mostrando la ubicación de los puntos para un esquema de aerotriangulación de cinco puntos

Los puntos se miden en todos los modelos en los que entran, de modo que si el punto 1070 solapa tanto con el modelos 107-108 como con el modelo 108-109, tendremos que medirlo en ambos modelos.

El nombre del punto es importante, porque no puedes nombrar dos puntos distintos con el mismo nombre, por lo tanto se suele utilizar como nombre del punto el nombre de la foto que lo aportó y un identificador que identifique el punto dentro de la foto.

En el ejemplo anterior (el de tres puntos) numera los puntos de la siguiente manera:

Nombre del puntoUbicación del punto
107 + 0 = 1070Centro de la foto 107
107 + 1 = 1071Parte superior de la foto 107
107 + 2 = 1072Parte inferior de la foto 107

De esta manera ses fácil de saber que el punto 1092 es el punto aportado por la foto 109 y está ubicado en su parte inferior.

Esquema de aerotriangulación

Al medir una aerotriangulación somos libres de nombrar los puntos como queramos y de ubicalos en la posición que nos interese, pero para incrementar la productividad, podemos pre-configurar el programa para indicarle cuántos puntos, con qué nombres y dónde queremos que estén ubicados aproximadamente queremos que aporte cada foto de nuestro proyecto.

Esto lo podemos hacer mediante un esquema de aerotriangulación, en el que básicamente se le indica al programa:

  1. Cada foto quiero que aporte tres puntos.
  2. El primer punto lo quiero medir aproximadamente en el centro de la foto y quiero que su nombre sea la concatenación del nombre de la foto + 0.
  3. El segundopunto lo quiero medir aproximadamente en el centro de la foto y quiero que su nombre sea la concatenación del nombre de la foto + 1.
  4. El tercer punto lo quiero medir aproximadamente en el centro de la foto y quiero que su nombre sea la concatenación del nombre de la foto + 2.

De esta manera, si indicamos que éste es el esquema que queremos seguir a la hora de realizar la medida, el programa nos llevará automáticamente a los puntos que aporte cada foto y tan solo tendremos que medir el punto por esa zona, donde más nos interese. De esta manera no existirá la posibilidad de equivocarnos con el nombre del punto ni con su ubicación aproximada.

Los esquemas de aerotriangulación se extraen del archivo indicado en Herramientas/Configuración en la sección Medida de aerotriangulación en el valor Esquemas.

El instalador de Digi3D.NET crea un archivo de esquemas en la carpeta %ProgramData%\Digi3D.NET\Esquemas Orientaciones con el nombre Esquemas de medida de aerotriangulación.aerotrischeme.xml.

Este archivo proporciona los siguientes esquemas de aerotriangulación:

Nombre del esquemaNúmero de puntos por fotoVálido paraDescripión
Sin esquema0Cualquier fotoEste esquema no proporciona ningún punto, por lo tanto es responsabilidad del usuario añadir puntos en la posición y con el nombre que le interese.
Varias pasadas con porcentajes3Cualquier fotoEsquema genérico que se adapta al tamaño de las fotos y que mide tres puntos por cada foto.
Una pasada con porcentajes5Cualquier fotoEsquema genérico que se adapta al tamaño de las fotos y que mide cinco puntos por cada foto.

Midiendo la aerotriangulación del modelo 107-108

En este ejemplo vamos a aerotriangular los modelos 107-108 y 108-109. Como es un proyecto formado por una única pasada, mediremos al menos 5 puntos por foto, que serán los siguientes: 1070, 1071, 1072, 1073, 1074, 1080, 1081, 1082, 1083, 1084, 1090, 1091, 1092, 1093, 1094.

Estos puntos tendremos que medirlos en todos los modelos en los que solapen.

Para poder continuar es necesario que sigas los pasos de Midiendo automáticamente orientaciones internas y relativas.

  1. Si has seguido todos los pasos de este tutorial, es posible que tengas en el directorio del proyecto dos subcarpetas: una denominada Aerotriangulación y otra denominada Instantáneas. Si es así, elimínalas.

  2. Si tienes archivos de orientación absoluta (archivos con extensión .abs.xml), elimínalos

  3. Muestra el Panel Proyecto fotogramétrico mediante la opción del menú Ventana/Otras ventanas/Proyecto fotogramétrico.

  4. Pulsa el segundo botón de la barra de herramientas del panel de cambio automático de modelos. Aparecerá el cuadro de diálogo Abrir.

  5. Selecciona el archivo Proyecto de Bronchales.d3dprj y pulsa el botón Abrir.

  6. Despliega la sección Pasada: 1 del panel de proyecto fotogramétrico.

  7. Selecciona la opción 107-108. Se abrirá una ventana fotogramétrica mostrando el modelo 107-108.

  8. Pulsa el botón T de la barra de herramientas de la ventana fotogramétrica. Aparecerá el Panel medida de aerotriangulación.

  9. Este panel es muy parecido al panel de orientación absoluta (de echo es el mismo, únicamente se le añade el desplegable Esquema.

  10. Selecciona el esquema Una pasada con porcentajes.

  11. Comprueba que el programa te está solicitando que digitalices el punto 1070 y ha desplazado la ventana fotogramétrica al centro de la foto 107. Localiza un punto donde quieras medir el punto 1070 y pulsa cualquier botón de tu dispositivo de entrada.

  12. El programa ahora solicita que digitalces el punto 1071. Esta vez ha desplazado la ventana fotogramétrica a la parte superior de la foto 107. Digitaliza el punto.

  13. Mide todos los puntos que te solicite el programa.

  14. Una vez medidos todos los puntos, aparece el Cuadro de diálogo Introduce un punto terreno del archivo de puntos tal y como sucedía al hacer una orientación absoluta. Pulsa el botón Cancelar para cerrar el cuadro de diálogo.

  15. En Archivo de puntos del panel Medida de aerotriangulación pulsa el botón de los tres puntos. Aparecerá el Cuadro de diálogo Archivo de puntos de apoyo.

  16. Pulsa el botón de los tres puntos para cambiar el archivo de puntos de apoyo. Aparecerá el cuadro de diálgo Abrir.

  17. Localiza el archivo Puntos de apoyo de Bronchales para aerotriangular.xyz y pulsa el botón Abrir. Este es un archivo de puntos de apoyo reducido que únicamente dispone de 4 puntos de apoyo.

  18. Si el sistema de referencia de coordenadas asociado no es WGS 84 / UTM Zone 30N + EGM08_REDNAP Península, selecciónalo.

  19. Pulsa el botón Aceptar.

  20. Vamos a medir ahora los puntos 7 y 6. Para ello, pulsa el botón Añadir del panel de Medida de aerotriangulación. Aparecerá el cuadro de diálogo Introduce un punto terreno del archivo de puntos.

  21. Selecciona el punto 7 y mídelo (recuerda donde estaba).

  22. Volverá a aparecer el cuadro de diálogo Introduce un punto terreno del archivo de puntos. Selecciona ahora el punto número 6 y mídelo.

  23. Volverá a aparecer el cuadro de diálogo Introduce un punto terreno del archivo de puntos.

    Ya no hay más puntos de apoyo en este modelo, y hemos medido todos los puntos que han aportado las dos fotos, pero somos libres de añadir más puntos si queremos.

    Teclea el número 1075 y pulsa Aceptar.

  24. El programa solicitará que digitalices el punto 1075. En la orientación absoluta, no podríamos haber hecho esto, pues la orientación absoluta nos obliga a que seleccionemos un punto que existe en el archivo de puntos de apoyo, sin embarlo la medida de aerotriangulación permite que nos inventemos puntos al vuelo.

  25. Mide el punto 1075 donde te interese.

  26. Volverá a aparecer el cuadro de diálogo Introduce un punto terreno del archivo de puntos. Pulsa el botón Cancelar porque ya no queremos medir más puntos.

  27. Pulsa el botón Aceptar del panel Medida de aerotriangulación**.**

Vídeo

Archivos generados al medir una aerotriangulación

Al aceptar una medida de aerotriangulación se genera en la subcarpeta Aerotriangulación un archivo cuyo nombre sigue el patrón foto izquierda - foto derecha.mod con las coordenadas modelo de los puntos medidos en un determinado modelo.

Además, al igual que al medir una orientación absoluta, se crean en esa carpeta archivos con .f en formato PatB con las fotocoordenadas de los puntos medidos en cada foto.

Es necesario que finalices los pasos de Midiendo la aerotriangulación del modelo 107-108 antes de ejecutar los siguientes pasos para comprobar los archivos que se han generado:

  1. Abre un Explorador de archivos (puedes hacerlo pulsando la combinación de teclas Windows + E).
  2. Localiza la ubicación del proyecto de Bronchales.
  3. Comprueba que se ha creado el archivo 107-108.abs.xml.
  4. Comprueba que se ha creado la carpeta Aerotriangulación y que contiene dos archivos: 107.f y 108.f.
  5. Comprueba que se ha creado la carpeta Instantáneas y que contiene las instantáneas de los puntos medidos.

Vídeo

Aerotriangulando el segundo modelo

Digi3D.NET al igual que ocurría cuando realizamos la segunda orientación absoluta de un proyecto, no nos va a permitir que cambiemos la ubicación de un punto ya medido en una determinada foto si este punto ya había sido medido en esa foto.

En caso de que en un determinado modelo se tenga que medir un punto que ya se midió en el modelo anterior, el programa no nos va a permitir mover el modelo en coordenadas X,Y y únicamente nos va a permitir moverlo en coordenada Z de modo que la imagen en la que ya se había medido ese punto se quedará bloqueada. De esta manera evitamos medir el mismo punto en dos ubicaciones distintas.

Para poder continuar, es necesario que finalices el paso: Archivos generados al medir una aerotriangulación.

  1. Carga el modelo 108-109 pulsando mediante el Panel Proyecto fotogramétrico.
  2. Pulsa el botón de la T en la barra de herramientas de la ventana fotogramétrica.
  3. El programa te invita a medir el punto 1080. Este punto ya se midi ó en la foto 108 en el modelo anterior, de modo que Digi3D.NET no te va a permitir mover la ventana fotogramétrica en X,Y. Desplaza la coordenada Z para posar correctamente el punto y mídelo.
  4. Mide todos los puntos especificados por el esquema.
  5. Añade los puntos de apoyo 8 y 9. Recuerda su ubicación.
  6. Pulsa el botón Aceptar.

Vídeo

Preparando los archivos .f para un programa de cálculo

Los programas de cálculo de aerotriangulaciones requieren un único archivo con las fotocoordenadas los puntos medidos en cada una de las fotos del proyecto.

Digi3D.NET no ha creado un único archivo con las fotocoordenadas de todos los puntos medidos, sino que ha creado tantos archivos .f como fotos formen parte del proyecto, de modo que tendremos que almacenar en un único archivo la información proporcionada por todos esos archivos .f independientes.

Es necesario que finalices el paso Aerotriangulando el segundo modelo para poder continuar con este tutorial.

  1. Abre una consola de DOS en el directorio Aerotriangulación. Para ello existe un truco muy sencillo:
    • Localiza la carpeta Aerotriangulación en un explorador de archivos.
    • Pulsa la tecla Mayúsculas de tu teclado.
    • Sin soltar la tecla Mayúsculas, pulsa con el botón secundario del ratón (botón derecho) sobre el nombre de la carpeta Aerotriangulación. Aparecerá un menú contextual.
    • Selecciona la opción Abrir ventana de comandos aquí. Se abrirá una ventana de DOS ya ubicada en ese directorio.
  2. Ejecuta el comando: copy *.f bronchales.f Con esto se creará un archivo llamado Bronchales.f con el contenido de todos los archivos .f que existían en la carpeta Aerotriangulación.
  3. Cierra la consola de DOS.

El archivo Bronchales.f será el que tienes que utilizar en tu programa de cálculo de aerotriangulaciones junto con el archivo de puntos de apoyo Puntos de apoyo de Bronchales para aerotriangular.xyz.

No forma parte del ámbito de este manual explicarte el manejo de tu programa de cálculo de aerotriangulación. Sigue los pasos de la ayuda de tu programa de cálculo para aprender a calcular la aerotriangulación.

Vídeo

Comenzando con la ventana de dibujo

Creando nuestro primer archivo de dibujo

Procedimiento a seguir

Sigue los siguientes pasos para crear tu primer Archivo de dibujo:

  1. Ejecuta Digi3D.NET y verás que aparece por defecto el cuadro de diálogo Nuevo Proyecto.

  2. Selecciona la pestaña Archivo de dibujo, si pulsas sobre el desplegable podrás ver los últimos 10 archivos de dibujo que se han cargado.

  3. Para Abrir o Crear un archivo nuevo, pulsa el botón de los tres puntos. Aparecerá el cuadro de diálogo Abrir.

  4. Introduce el nombre del archivo a crear y pulsa el botón Abrir.

  5. En los Parámetros de configuración de la ventana de dibujo, vamos a centrarnos en la opción Entorno:

    • En Tabla de códigos, selecciona el botón de los tres puntos y teclea %Programdata%, selecciona el directorio Digi3D.NET. Éste es el directorio donde se instalan las tablas y configuraciones de Digi3D.NET.
    • Selecciona el directorio Tablas.
    • Selecciona el archivo Digi.tab.xml, que será el archivo de tablas que vas a utilizar en todo el curso.
    • En Directorio de símbolos, tenemos que seleccionar la siguiente ruta C:\ProgramData\Digi3D.NET\Símbolos, mediante el botón de los tres puntos.

    Esto únicamente lo tendrás que hacer una vez al abrir un fichero nuevo en Digi3D.NET o cada vez que cambies la Tabla de códigos.

  6. Pulsa el botón Aceptar.

  7. Como el archivo de dibujo a crear es nuevo y aún no tiene asignado un sistema de coordenadas de referencia, Digi3D.NET solicita que Selecciones el Sistema de Coordenadas de referencia a asignar al archivo, deja el valor que viene por defecto que es Desconocido.

  8. Pulsa Ok para que se cree el archivo de dibujo.

Vídeo

Presentacion de las barras de herramientas básicas

Al ejecutar Digi3D.NET te aparecerán visibles todas las Barras de herramientas, para seleccionar las barras de herramientas básicas, sigue los siguientes pasos:

  1. Pulsa con el botón de cancelar del ratón sobre una de las barras de herramientas para que te aparezca un listado con todas las barras de herramientas de las que dispone Digi3D.NET.
  2. Desactiva todas, pinchando con el botón de dato del ratón sobre cada una de ellas.
  3. Marca únicamente las siguientes barras de herramientas: Coordenadas.

Si necesitas activar cualquier otra Barra de herramientas, el procedimiento es el mismo.

Vídeo

Dibujando las primeras líneas

Conoce los botones del ratón:

BotónDescripción
Botón derechoIntroduce coordenadas
Botón centralDesencadena la búsqueda de una coordenada (snap o tentativo)
Botón derechoFinaliza o cancela

Para dibujar tu primera línea sigue los siguientes pasos:

  1. Selecciona un código lineal en la Barra de herramientas Código, pulsando sobre la flecha que está al lado de los prismáticos, por ejemplo el 010123 LIMITE PROVINCIAL

  2. Si al mover el cursor sobre la ventana de dibujo de Digi3D.NET no muestra una cruz y además no ves coordenadas en la Barra de herramientas de coordenadas, tienes que capturar el ratón en la ventana de dibujo. Haz clic en pantalla para capturar el cursor.

  3. Pulsa sobre la ventana de dibujo con el botón de dato del ratón, si el código que está activo en ese momento es un código lineal, Digi3D.NET ejecuta automáticamente la orden LINEA.

    La Barra de Mensajes ocupa la parte inferior de Digi3D.NET. Esta barra dispone de dos ventanas:

    • En la ventana de la izquierda, Digi3D.NET muestra el nombre de la orden que se está ejecutando. Si no se está ejecutando ninguna orden, mostrará la palabra Preparado.
    • En la ventana derecha, se muestran los mensajes de la orden que se está ejecutando.
  4. Comprueba que tras introducir el primer punto de la línea, Digi3D.NET está mostrando en la venta izquierda la palabra LINEA y en la parte derecha, la orden LINEA está solicitando que digitalices el siguiente punto.

  5. Pulsa con botón de dato del ratón sobre la ventana de dibujo para digitalizar el siguiente punto. Puedes digitalizar tantos vértices como quieras puesto que aunque la orden se llame LINEA, lo que se están dibujando son polilíneas.

  6. Pulsa sobre la ventana de dibujo con el botón de cancelar del ratón para finalizar la orden LINEA.

Si introduces un único vértice y pulsas el botón de cancelar antes de introducir el segundo vértice, no se almacenará ninguna entidad.

Video

Zooms en la ventana de dibujo

Sigue los siguientes pasos para hacer un zoom extendido:

  1. Pulsa sobre el botón de Zoom extendido de la Barra de herramientas Zooms. Comprobarás que Digi3D.NET ha cambiado el factor de zoom de la ventana de dibujo para abarcar todo el modelo.

Sigue los siguientes pasos para hacer un Zoom extendido mediante el menú Zooms:

  1. Selecciona la opción del menú Zooms/Zoom ventana. Comprobarás que Digi3D.NET ha cambiado el factor de zoom de la ventana de dibujo para abarcar todo el modelo.

Sigue los siguientes pasos si quieres hacer Zoom ventana:

  1. Pulsa el botón Zoom ventana de la Barra de herramientas Zooms. Comprobarás que en la ventana izquierda de la barra de mensajes, Digi3D.NET está mostrando que se está ejecutando la orden ZOOMV. La orden está invitándote a digitalizar el primer punto de la ventana.
  2. Pulsa con el botón de dato en la ventana de dibujo. La orden de Zoom ventana ahora estará solicitando que digitalices el segundo punto en la ventana de dibujo.
  3. Pulsa con el botón de dato en otra zona de la ventana de dibujo. Digi3D.NET cambiará el factor de zoom de la ventana de dibujo y ahora estará mostrando el área comprendida por los dos puntos que has digitalizado.

Sigue los siguientes pasos para hacer Zoom ventana mediante el menú Zooms:

  1. Selecciona la opción del menú Zooms/Zoom ventana. Comprobarás que en la ventana izquierda de la barra de mensajes, Digi3D.NET está mostrando que se está ejecutando la orden ZOOMV. La orden está invitándote a digitalizar el primer punto de la ventana.
  2. Pulsa con el botón de dato en la ventana de dibujo. La orden de Zoom ventana ahora estará solicitando que digitalices el segundo punto en la ventana de dibujo.
  3. Pulsa con el botón de dato en otra zona de la ventana de dibujo. Digi3D.NET cambiará el factor de zoom de la ventana de dibujo y ahora estará mostrando el área comprendida por los dos puntos que has digitalizado.

Sigue los siguientes pasos para hacer Zoom de acercar:

  1. Pulsa sobre el botón de Zoom+ de la Barra de herrmientas Zooms. Comprobarás que cada vez que pulsas el botón, te aproximas al dibujo.

Sigue los siguientes pasos para hacer Zoom de acercar mediante el menú Zooms:

  1. Selecciona la opción del menú Zooms/Zoom+. Comprobarás que cada vez que pulsas el botón, te aproximas al dibujo.

Sigue los siguientes pasos para hacer Zoom de alejar:

  1. Pulsa sobre el botón de Zoom- de la Barra de herrmientas Zooms. Comprobarás que cada vez que pulsas el botón, te alejas del dibujo.

Sigue los siguientes pasos para hacer Zoom de alejar mediante el menú Zooms:

  1. Selecciona la opción del menú Zooms/Zoom-. Comprobarás que cada vez que pulsas el botón, te alejas del dibujo.

Sigue los siguientes pasos para hacer Zoom a entidad:

  1. Selecciona el botón de Zoom a entidad de la Barra de herramientas Zooms. Comprobarás que en la venta izquierda de la barra de mensajes, Digi3D.NET está mostrando que se está ejecutando la orden ZOOM_ENTIDAD. La orden está invitandote a seleccionar la entidad para centrar en pantalla.
  2. Selecciona la entidad deseada con el botón central del ratón.
  3. Pulsa con el botón de dato en la ventana de dibujo. Digi3D.NET centrará en pantalla la entidad seleccionada.

Sigue los siguientes pasos para hacer Zoom a entidad mediante el menú Zooms:

  1. Selecciona la opción del menú Zooms/Zoom a entidades seleccionadas. Comprobarás que en la venta izquierda de la barra de mensajes, Digi3D.NET está mostrando que se está ejecutando la orden ZOOM_ENTIDAD. La orden está invitandote a seleccionar la entidad para centrar en pantalla.
  2. Selecciona la entidad deseada con el botón central del ratón.
  3. Pulsa con el botón de dato en la ventana de dibujo. Digi3D.NET centrará en pantalla la entidad seleccionada.

Vídeo

Dibujando puntos, patrón y escala de dibujo

  1. Pulsa los prismáticos en la Barra de herramientas Código. Aparece el cuadro de diálogo Seleccione códigos, aquí podemos ver los distintos códigos que tiene la tabla de códigos que seleccionamos cuando creamos el archivo de dibujo:
Columna Descripción
Código Nombre del código
Color Color de visualización del código en la ventana de dibujo
Tipo

Lineal

Puntual

Virtual

Descripción Descripción del código
  • Si Digi3D.NET está en modo preparado y el código activo es un código lineal, al pusar el botón de dato sobre la ventana de dibujo, Digi3D.NET ejecutará de manera automática la orden LINEA y dibujará una polilínea.
  • Si Digi3D.NET está en modo preparado y el código activo es un código puntual, al pulsar el botón de dato sobre la ventana de dibujo, Digi3D.NET ejecutará la orden PUNTO.

Sigue los siguientes pasos para digitalizar un punto:

  1. Asegúrate de que Digi3D.NET esta en modo preparado. Si no es así, pulsa la tecla Esc del teclado o el botón de cancelar hasta que Digi3D.NET esté en modo preparado.
  2. Selecciona un código puntual.
  3. Pulsa con el botón de dato sobre la ventana de dibujo. Digi3D.NET insertará un punto en las coordenadas en las que has pulsado el botón de dato.

Sigue los siguientes pasos para activar la representación gráfica (patrón) del punto que acabas de dibujar:

  1. Ejecuta la orden PATRON, para poder visualizar la representación de ese código puntual, para ello, selecciona el botón correspondiente a esta orden en la Barra de herramientas Parámetros de visualización.

La escala de representación de los patrones varía en función de la Escala activa en la pestaña Archivo de dibujo, del cuadro de diálogo Nuevo Proyecto.

Sigue los siguientes pasos para modificar la escala de representación del punto que acabas de digitalizar:

  1. Cierra la ventana de dibujo.
  2. Selecciona la opción de menú Archivo/Nuevo/Abrir modelo fotogramétrico o archivo de dibujo... Aparecerá el cuadro de diálogo Nuevo Proyecto.
  3. Selecciona la pestaña Archivo de dibujo.
  4. En Parámetros de configuración/Registro/Escala modifica el valor que tiene en ese momento por otro para modificar la escala.
  5. Pulsa el botón Aceptar.
  6. Activa la visualización de patrones pulsando el botón correspondiente a la orden Patron en la Barra de herramientas Parámetros de visualización.
  7. Repite el proceso varias veces con distintos valores de escala para que veas la diferencia de utilizar una escala u otra.

El valor de la Escala, afecta únicamente a la representación, no afecta al registro de entidades.

Vídeo

El patrón también afecta a las líneas

La orden PATRON, representa en Digi3D.NET las entidades almacenadas en el archivo de dibujo con la representaicón indicada en la tabla de códigos, esto va a afectar tanto a entidades puntuales como lineales.

Para ver distintos ejemplos sigue estos pasos:

  1. Ejecuta la orden PATRON=1 en la Barra de comandos o pulsando el botón correspondiente a esta variable en la Barra de herramientas Parámetros de visualización.
  2. Selecciona en la Barra de herramientas Código el código 010123 LIMITE PROVINCIAL.
  3. Dibuja una linea con ese código para que veas qué representación tiene este código al estar la variable PATRON activa.
  4. Selecciona ahora en la Barra de herramientas Códigos el código 060142 SENDA y dibuja otra línea.
  5. Cambia ahora al código 050146 EDIFICIO PRIVADO, de la misma forma que has cambiado con anterioridad de código.
  6. Dibuja una línea con éste código, como puedes ver, éste código no tiene asignada ninguna representación, por lo que activando o desactivando la orden PATRON no se ve afectada su representación.

Digi3D.NET no almacena la representación en el archivo de dibujo, como tampoco almacena el color, solo almacena puntos y polilíneas, los códigos de las entidades y cada uno de los vértices que las definen. La representación se calcula de manera virtual y depende de la tabla de códigos activa, si cambias la configuración de la representación en la tabla de códigos, cambiará la representación en el archivo de dibujo.

Vídeo

Insertando vértices en coordenadas conocidas

Inserta vértices en coordenadas conocidas siguiendo los siguientes pasos:

  1. Selecciona en la Barra de herramientas Coordenadas, el botón Introducir coordenadas.
  2. Aparece la ventana Inserción manual de coordenada, en la que vas a introducir las coordenadas de distintos vértices, por ejemplo 100, 100; 200, 200; 100, 200; 100, 100; con esta serie de coordenadas dibujarás un triángulo.
    • Si estas dibujando una LINEA, e introduces una serie de vértices mediante la orden XY, la línea se modificará y pasará por esos vértices.
    • Si el código activo es un código lineal, va a generar una línea con los vértices que hayas introducido.

Para ver todas las posibilidades que tiene la orden XY, pulsa aquí.

Vídeo

Eliminando la última entidad digitalizada

Elimina entidades siguiendo estos pasos:

  1. Localiza la Barra de herramientas Deshacer en Digi3D.NET. Si no la encuentras pulsa aquí para localizarla.
  2. Observa que sus botones están inactivos.
  3. Digitaliza una entidad, por ejemplo una LINEA del ratón.
  4. Observa que ahora el botón de Deshacer se encuentra activo en la Barra de herramientas Deshacer, esto es así, porque tienes una acción que puedes deshacer. Pulsa sobre él y comprueba que la línea que has dibujado desaparece.
  5. Si quieres recuperar la línea, pulsa sobre el botón Rehacer.

El botón Deshacer, solamente te permite deshacer las últimas entidades que hayas introducido en tu fichero de dibujo. Si tuvieses otras entidades dibujadas con anterioridad no podrás eliminarlas con este botón. Si quisieras eliminar entidades anteriores, sigue los siguientes pasos:

  1. Digitaliza varias líneas en el archivo de dibujo.
  2. Sal de Digi3D.NET, tecleando en la Barra de comandos FIN.
  3. Selecciona la opción de menú Archivo/Nuevo/Abrir modelo fotogramétrico o archivo de dibujo... para abrir el fichero sobre el que estes trabajando.
  4. Localiza la Barra de herramientas Eliminar y recuperar, si no la encuentras pulsa aquí para localizarla.
  5. Pulsa sobre el botón Eliminar la última entidad, este botón elimina la última entidad independientemente de que la hayas dibujado ahora o con anterioridad. Cada vez que pulses sobre esté botón se irán eliminando las últimas entidades digitalizadas.

Vídeo

Eliminando una entidad graficamente y primera selección

Elimina entidades siguiendo estos pasos:

  1. Digitaliza varias entidades lineales en la ventana de dibujo.
  2. Localiza la Barra de herramientas eliminar y recuperar en Digi3D.NET. Si no la encuentras pulsa aquí para localizarla.
  3. Pulsa el segundo botón de la Barra de herramientas eliminar y recuperar, que corresponde a la orden BORRA_E.
  4. Selecciona el modo de búsqueda 0. Vértice o proyección en XY.
  5. Selecciona la entidad a borrar con el botón de tentativo del ratón. Digi3D.NET mostrará una animación indicando el sentido en el que fue dibujada la entidad y sus vértices.
  6. Si esa es la entidad que deseas borrar, confirma la selección pulsando el botón de dato del ratón.
  7. Pulsa el botón de cancelar del ratón o la tecla Escape del teclado para cancelar la orden.
  8. Comprueba que Digi3D.NET se encuentra en modo preparado (en la esquina inferior izquierda debe aparecer el mensaje Preparado).

Cancela la selección de una entidad siguiendo los siguientes pasos:

  1. Pulsa el segundo botón de la Barra de herramientas eliminar y recuperar, que corresponde a la orden BORRA_E.
  2. Selecciona una entidad cualquiera con el botón de tentativo del ratón.
  3. Digi3D.NET solicita confirmación, imagina que esa no es la entidad que deseas seleccionar, pulsa el botón de cancelar del ratón para deseleccionar la entidad.
  4. Vuelve a pulsar el botón de cancelar del ratón para finalizar la orden y dejar a Digi3D.NET en modo preparado.
  5. También puedes cancelar la selección de una entidad mediante teclado. Pulsa el segundo botón de la Barra de herramientas eliminar y recuperar, que corresponde a la orden BORRA_E.
  6. Selecciona una entidad cualquiera con el botón de tentativo del ratón.
  7. Digi3D.NET solicita confirmación, imagina que esa no es la entidad que deseas seleccionar, pulsa la tecla Escape del teclado para deseleccionar la entidad.
  8. Vuelve a pulsar la tecla Escape del teclado para finalizar la orden y dejar a Digi3D.NET en modo preparado.

Vídeo

Primer Tentativo

Conoce los snaps o modos de búsqueda de Digi3D.NET:

  1. Dibuja una línea con tres vértices.
  2. Dibuja una línea nueva cuyo origen coincida con el vértice central de la línea anterior.
  3. Haz zoom girando la rueda del ratón hacia arriba para acercarte lo máximo posible a ese vértice. Por mucho zoom que hagas,al dibujar la segunda línea, nunca van a coincidir los dos vértices. Compruébalo siguiendo haciendo zoom y acercándote a la zona donde deberían coincidir los vértices.
  4. Pulsa el botón Deshacer de la Barra de herramientas Deshacer, para eliminar la última línea dibujada.
  5. Aléjate de esa zona girando la rueda del ratón hacia abajo.

Repite el proceso anterior utilizando el tentativo o snap, para ello sigue los siguientes pasos:

  1. Pulsa el botón central del ratón en un área en la que no exista ninguna entidad, comprobarás que Digi3D.NET genera un sonido de error para indicar que no ha localizado ninguna entidad en ese área.
  2. Selecciona con el botón central del ratón, la entidad que dibujaste al principio, ésta se iluminará y además mostrará el sentido en el cual fue dibujada mediante una animación.
  3. Cancela la selección con el botón de cancelar o la tecla Esc del teclado.
  4. Localiza la Barra de herramientas Tentativo y comprueba que está activo el modo de búsqueda 0. Vértice o proyección en XY, si no está seleccionado, pulsa sobre la flecha que aparece a la derecha y seleccionalo. Si no encuentras la Barra de herramientas Tentativo, pincha aquí para visualizarla.
  5. Con el modo de búsqueda 0. Vértice o proyección e XY, al tentativar sobre una entidad, Digi3D.NET va a intentar localizar un vértice, si no encuentra un vértice, intentará localizar una proyección. Prueba a tentativar la entidad en distintas posiciones pulsando sobre la línea con el botón de tentativo del ratón, para cancelar la acción pulsa el botón de cancelar.
  6. Cambia el tamaño del cursor en la Barra de herramientas Tentativo, bien pulsando varias veces sobre el botón Cambiar tamaño del cursor seleccionando la flecha de la derecha del botón para modificar su tamaño en el desplegable que aparece.
  7. Acércate al vértice central de la primera entidad con el cursor, para poder tentativar sobre él.
  8. Pulsa el botón central del ratón, y comprueba que se ha seleccionado el vértice central de la entidad.
  9. Pulsa el botón de dato del ratón, para tentativar sobre el vértice y poder continuar con la línea.

Vídeo

Digitalizando segmentos ortogonales al último segmento de la polilínea que estamos digitalizando

Para digitalizar segmentos ortogonales al último segmento de la polilínea que estás digitalizando, sigue los siguientes pasos:

  1. Visualiza la Barra de herramientas Restricciones de polilínea, si no la tienes activa, aprende a activarla pulsando aquí.
  2. Comienza a digitalizar una polilínea con varios vértices, haciendo clic con el boton de dato sobre la ventana de dibujo.
  3. Pulsa sobre el primer botón de la Barra de herramientas Restricciones de polilínea, que es el que corresponde a la orden ORTO.
  4. Sigue digitalizando la polilínea del principio, continuando haciendo clic con el botón de dato sobre la ventana de dibujo, y comprueba que ahora todos los nuevos segmentos van a ser ortogonales al último que se digitalices.
  5. Pulsa de nuevo sobre el primer botón de la Barra de herramientas Restricciones de polilínea, para desactivar la opción de ortogonalidad.
  6. Sigue digitalizando la polilínea comprobando que los nuevos segmentos que generes ya no son ortogonales.
  7. Puedes activar o desactivar la opción de ortogonalidad a lo largo de la polilínea tantas veces como necesites.
  8. Pulsa con el botón de cancelar, sobre la ventana de dibujo para finalizar la polilínea.

Puedes comenzar a digitalizar la polilínea con la opción ORTO activa, para ello sigue los siguientes pasos:

  1. Pulsa sobre el primer botón de la Barra de herramientas Restricciones de polilínea, que es el correspondiente a la orden ORTO.
  2. Digitaliza el primer segmento de la polilínea, haciendo clic sobre la ventana de dibujo con el botón de dato del ratón. Este segmento será el que defina cual es la orientación de ortogonalidad.
  3. Dibuja tantos segmentos como quieras para ver cómo funciona la orden activando y desactivando la opción de ortogonalidad de la Barra de herramientas Restricciones de polilínea.
  4. Haz clic con el botón de cancelar del ratón sobre la ventana de dibujo para finalizar la digitalización de la polilínea.

Vídeo

Eliminando los últimos segmentos de la polilínea que estoy digitalizando

Para eliminar los últimos segmentos de la polilínea que estás digitalizando, sigue los siguientes pasos:

  1. Visualiza la Barra de herramientas Finalización de polilínea, si no la tienes activa, aprende a activarla pulsando aquí.
  2. Comienza a dibujar una polilínea haciendo clic con el botón de dato del ratón sobre la ventana de dibujo.
  3. Si quieres eliminar el último vértice digitalizado pulsa sobre el tercer botón de la Barra de herramientas Finalización de polilínea, es el correspondiente a Retroceder, que eliminará el último segmento de la línea que estés digitalizando.
  4. Si pulsas el botón Retroceder, eliminando todos los vértices de la polilínea, cuando ya no existan más segmentos para retroceder, Digi3D.NET, finalizará la orden LINEA.

Existe otro método para eliminar los últimos segmentos de la polilínea que estés digitalizando, para ello sigue los siguientes pasos:

  1. Digitaliza una polilínea de varios segmentos haciendo clic con el Botón de dato del ratón sobre la ventana de dibujo.
  2. Pulsa el último botón de la Barra de herramientas Finalización de polilínea para activarlo, es el correspondiente a la orden UM.
  3. Digi3D.NET solicita que "Marque el segmento a partir del cual borrar", selecciona un segmento cualquiera haciendo clic con el botón de dato del ratón sobre él. Se eliminan todos los segmentos digitalizados hasta ese.
  4. Continuá digitalizando la polilínea haciendo clic con el botón de dato del ratón sobre la ventana de dibujo.
  5. Finaliza la polilínea haciendo clic con el botón de cancelar del ratón sobre la ventana de dibujo.

Vídeo

Digitalizando líneas cerradas

Para digitalizar líneas cerradas, sigue los siguientes pasos:

  1. Visualiza la Barra de herramientas Finalización de polilínea, si no está visible, aprende a activarla pulsando aquí. Sus botones estarán deshabilitados hasta que se ejecute la orden LINEA.
  2. Digitaliza una polilínea haciendo clic sobre la ventana de dibujo con el botón de dato del ratón.
  3. Selecciona el segundo botón de la Barra de herramientas Finalización de polilínea, que es el correspondiente a Cerrar línea, de tal forma que finalizará la línea que estés digitalizando cerrándola automáticamente.

También puedes cerrar entidades lineales, siguiendo los siguientes pasos:

  1. Visualiza la Barra de herramientas Acción al finalizar línea, si no está activa, aprende a activarla pulsando aquí.
  2. Selecciona el primer botón de la Barra de herramientas Acción al finalizar línea, así activarás la variable C, que indica a Digi3D.NET que cuando digitalices una línea, ésta se cierre de manera automática.
  3. Dibuja una polilínea haciendo clic sobre la ventana de dibujo con el botón de dato del ratón, al finalizarla pulsando el botón de cancelar del ratón, ésta se cerrará automáticamente, independientemente del número de vértices que tenga la polilínea.

Vídeo

Deshabilitando la verificación de tentativo

Aprende a deshabilitar la verificación de tentativo siguiendo los siguientes pasos:

  1. Dibuja una línea haciendo clic sobre la ventana de dibujo con el Botón de dato del ratón. Finalizala pulsando sobre el botón de cancelar del ratón.
  2. Tentativa sobre esa línea con el **botón de tentativo del ratón, verás que Digi3D.NET muestra mediante una animación la línea que has seleccionado y en la esquina inferior izquierda solicita confirmación para hacer tentativo en dicha línea. Para aceptar pulsa sobre el botón de dato del ratón y para cancelar** sobre el botón de cancelar.
  3. Visualiza la Barra de herramientas Tentativo.
  4. Localiza el botón correspondiente a la variable Verificar en la Barra de herramientas Tentativo (el botón normalmente se encuentra activo, su icono es una V, por esta razón al seleccionar una entidad Digi3D.NET pedirá confirmación para tentativarla).
  5. Deshabilita la variable Verificar, pulsando su botón correspondiente en la Barra de herramientas Tentativo.
  6. Tentativa sobre una línea con el botón de tentativo del ratón, verás que ahora Digi3D.NET no pedirá confirmación y de forma automática se inserta el primer vértice tentativando con el modo de búsqueda activo en ese momento.

Uno de los inconvenientes de tener deshabilitada la variable Verificar es que los tentativos y las búsquedas son lo mismo:

  • Un tentativo lo desencadenamos cuando al dibujar una línea o Digi3D.NET está en modo preparado y queremos insertar un vértice en una determinada coordenada. Lo hacemos pulsando el botón de tentativo del ratón.
  • Al ejecutar una orden que solicita que selecciones una entidad, por ejemplo la orden Eliminar las entidades seleccionadas, la orden solicita que seleccione la entidad a borrar, para ello situándome sobre la entidad a eliminar pulsaré sobre el botón de data del ratón o sobre botón de tentativo, para realizar la búsqueda de la entidad. Digi3D.NET eliminará la primera entidad que encuentre y puede que esa no sea la que desee borrar, por lo que tendría de Deshacer y buscar la entidad a borrar manualmente.
  • Si hubieses tenido el botón de Verificar activado, podrías haber elegido la entiad a borrar pulsando sobre el botón de tentativo hasta que se seleccionase la entidad deseada.

Vídeo

Digitalizando vértices con distinta coordenada Z

Digitaliza vértices con distinta coordenada Z introduciendo coordenadas siguiendo estos pasos:

  1. Localiza la Barra de herramientas coordenadas, si no está visible, aprende a activarla pulsando aquí.
  2. Pulsa el tercer botón de la Barra de herramientas coordenadas, es el correspondiente a la orden XY. Aquí podrás introducir coordenadas con distintas Z.
  3. Introduce las siguientes coordenadas 0 0 0, 100 100 10 y 200 0 0 y pulsa el botón Aceptar.
  4. Finaliza la orden LINEA del ratón.
  5. En la ventana de dibujo se habrá generado una polilínea con los tres vértices introducidos.
  6. Selecciona el modo de búsqueda 4. Busca el vértice más cercano en XYZ de la Barra de herramientas tentativo.
  7. Tentativa cerca de cada vértice y comprueba en la primera ventana de la Barra de herramientas tentativo la Z de cada uno de ellos.

Para digitalizar vértices con distinta coordenada Z según digitalizamos con el dispositivo de entrada:

  1. Localiza la Barra de herramientas coordenada Z, si no está visible, aprende a activarla pulsando aquí.
  2. Pulsa el primer botón de la Barra de herramientas coordenada Z, es el correspondiente a la orden Z.
  3. Introduce una coordenada Z en la ventana que aparece en la esquina inferior derecha de la barra de mensajes, por ejemplo Z=100.
  4. Pulsa Enter para aceptar.
  5. Localiza la Barra de herramientas coordenadas, si no está visible, aprende a activarla pulsando aquí.
  6. Si observas la primera ventana de la Barra de herramientas coordenadas, el valor de Z se habrá modificado a 100 m.
  7. Digitaliza una polilínea en la ventana de dibujo, haciendo clic sobre ella, todos los vértices de esa polilínea tendrán como coordenada Z el valor 100 m.

Digitaliza una polilínea cuyos vértices tengan distinto valor de Z siguiendo los siguientes pasos:

  1. Digitaliza el primer segmento de la polilínea con la Z activa en este momento.
  2. Pulsa el primer botón de la Barra de herramientas coordenada Z, introduce como nuevo valor de coordenada Z 200 m.
  3. Pulsa Enter e introduce un nuevo vértice.
  4. Finaliza la polilínea pulsando el botón de cancelar del ratón.
  5. Comprueba que tienes seleccionado el modo de búsqueda 4. Busca el vértice más cercano en XYZ. Si no está seleccionado, seleccionalo en el desplegable de la Barra de herramientas tentativo.
  6. Tentativa cada uno de los vértices para ver sus coordenadas Z.

Para modifica la coordenada Z con un tentativo que tenga Z, sigue los siguientes pasos:

Al seleccionar el primer botón de la Barra de herramientas coordenada Z, se activa el segundo botón bloqueando así la coordenada Z (BLOQUEA_Z), esta opción se utiliza principalmente para la digitalización de curvas de nivel.

  1. Desactiva el botón correspondiente a la orden BLOQUEA_Z (segundo botón de la Barra de herramientas coordenada Z).
  2. Selecciona el modo de búsqueda 2. Vértice o proyección en XYZ en el desplegable de la Barra de herramientas tentativo (modificará la coordenada Z al tentativar).
  3. Tentativa en la mitad de uno de los segmentos que has digitalizado con anterioridad y comprueba, en la primera ventana de la Barra de herramientas coordenadas, que se ha modificado el valor de la coordenada Z. Todo lo que digitalices a partir de ahora, se digitalizará con la nueva coordenada Z que acabas de obtener.
    • Al seleccionar un modo de búsqueda con coordenada Z, por ejemplo el 3, y confirmas la selección del tentativo, ese vértice se va a representar exactamente con la coordenada que tiene en ese punto el segmento en el que hayas tentativado.
    • Si seleccionas un modo de búsqueda que no tenga Z, por ejemplo el 0, comprueba que tu coordenada Z sigue siendo la anterior, si ahora tentativas en otro punto del segmento, la primera ventana de la barra de herramientas tentativos te muestra la coordenada de ese punto, pero la coordenada Z activa es la que tenías anteriormente.
  4. Selecciona el modo de búsqueda 4 y tentativa en los vértices de las polilíneas que has digitalizado para comprobar su Z.
  5. Pulsa sobre el segundo botón de la Barra de herramientas coordenada Z, para activar la variable BLOQUEA_Z.
  6. Tentativa sobre cualquier entidad y comprueba que la coordenada Z permanece constante, aunque el elemento que tentatives tenga distinta Z.

Vídeo

Introducción a los modos de búsqueda

Conoce algunos de los modos de búsqueda de Digi3D.NET siguiendo los siguientes pasos:

  1. Dibuja una línea en forma de zigzag haciendo clic con el Botón de dato del ratón sobre la ventana de dibujo.
  2. Visualiza la Barra de herramientas Tentativo, si no la tienes activa, aprende a activarla pulsando aquí.
  3. Pulsa sobre el desplegable de la segunda ventana de la Barra de herramientas Tentativo, esta ventana te va apermitir seleccionar entre distintos modos de búsqueda.
  4. Cambia el rango de búsqueda del cursor en el desplegable del botón Cambiar tamaño del cursor de la Barra de herramientas Tentativos.

Modo de búsqueda 0. Vértice o proyección en XY: Localiza un vértice o proyección en el rango de búsqueda del cursor.

  1. Selecciona el modo de búsqueda 0. Vértice o proyección en XY, en el desplegable de la Barra de herramientas Tentativo.
  2. Acércate a un vértice de la línea y seleccionalo con el botón de tentativo del ratón
    • Si te acercas a una zona donde no tengas un vértice y pulsas el Botón central del ratón, Digi3D.NET localizará la proyección.
    • Si pulsas el Botón central del ratón en una zona donde no tengas ni vértice ni proyección, Digi3D.NET mostrará un sonido de error.

Modo de búsqueda 1. Proyección o vértice en XY: Aunque exista un vértice dentro del rango de búsqueda del tentativo, Digi3D.NET dará prioridad a las proyecciones y las seleccionará.

  1. Selecciona el modo de búsqueda 1. Proyección o vértice en XY, en el desplegable de la Barra de herramientas Tentativo.
    • Si te acercas a una zona donde tengas un vértice y el rango de búsqueda englobe una proyección, al pulsar el botón de tentativo del ratón, Digi3D.NET seleccionará la proyección.
    • Si quieres seleccionar un vértice, tienes que ir con el cursor a una zona dónde solamente pueda seleccionar el vértice.

Modo de búsqueda 2. Vértices extremos de la entidad en XYZ: Solo selecciona la entidad si dentro del rango de búsqueda del tentativo se encuentra el origen o el final de una entidad.

  1. Selecciona el modo de búsqueda 2. Vértices extremos de la entidad en XYZ, en el desplegable de la Barra de herramientas Tentativo.
  2. Acércate al origen o al final de la línea que has dibujado y pulsa el botón de tentativo del ratón, comprueba que Digi3D.NET selecciona el vértice inicial o final de esa línea.
  3. Prueba ahora a tentativar la línea en otra zona distinta, verás como Digi3D.NET muestra un sonido de error, ya que en esa zona no se encuentran dentro del rango de búsqueda ni el vértice inicial ni el final de la entidad.

Modo de búsqueda 3. Vértice o proyección en XYZ: Es el equivalente al modo de búsqueda 0. Vértice o proyección en XY, pero teniendo en cuenta la Z.

Modo de búsqueda 4. Busca el vértice más cercano en XYZ: Localiza el vértice más cercano a la zona donde has tentativado.

  1. Selecciona el modo de búsqueda 4. Busca el vértice más cercano en XYZ, en el desplegable de la Barra de herramientas Tentativo.
  2. Tentativa en la línea y comprueba que cada vez que pulses el botón de tentativo del ratón, se hará un tentativo en el vértice más próximo al cursor incluso aunque no se encuentre dentro del rango de búsqueda.

Modo de búsqueda 6. Vértices extremos si coincide la Z: Localiza vértices extremos si la coordenada Z activa en ese momento coincide con la coordenada Z de la entidad. Este modo de búsqueda lo verás más adelante.

Modo de búsqueda 11. Intersección: Localiza el punto de intersección entre dos entidades.

  1. Dibuja una línea que cruce con la primera que habías dibujado.
  2. Selecciona el modo de búsqueda 11. Intersección, en el desplegable de la Barra de herramientas Tentativo.
  3. Posiciona el rango de búsqueda del cursor cerca de la intersección de las dos líneas y pulsa el botón de tentativo del ratón. Digi3D.NET tentativará en el punto de intersección de las dos líneas.
    • Si Digi3D.NET no encuentra ningún punto de intersección en su rango de búsqueda al pulsar con el botón de tentativo del ratón, mostrará un sonido de error.

Modo de búsqueda 13. Centro de la entidad en XY: Selecciona el centro de la entidad seleccionada.

  1. Selecciona el modo de búsqueda 13. Centro de la entidad, en el desplegable de la Barra de herramientas Tentativo.
  2. Pulsa con el botón de tentativo del ratón sobre una entidad dibujada y comprueba que Digi3D.NET selecciona su centro.

Modo de búsqueda 15. Busca el primer vértice de la entidad en XY: Selecciona el primer vértice de la entidad seleccionada.

  1. Selecciona el modo de búsqueda 15. Busca el primer vértice de la entidad en XY, en el desplegable de la Barra de herramientas Tentativo.
  2. Selecciona una entidad con el botón de tentativo del ratón, y comprueba que se selecciona el primer vértice de la misma. Prueba a seleccionar la entidad en distintas posiciones para ver el resultado.

Modo de búsqueda 17. Busca el último vértice de la entidad en XY: Selecciona el último vértice de la entidad seleccionada.

  1. Selecciona el modo de búsqueda 17. Busca el último vértice de la entidad en XY, en el desplegable de la Barra de herramientas Tentativo.
  2. Selecciona una entidad con el botón de tentativo del ratón, y comprueba que se selecciona el último vértice de la misma. Prueba a seleccionar la entidad en distintas posiciones para ver el resultado.

Modo de búsqueda 19. Busca el vértice con coordenada Z menor en XY: Este modo de búsqueda se verá cuando tengas conocimientos sobre la coordenada Z.

Modo de búsqueda 20. Busca el vértice con coordenada Z mayor en XY: Este modo de búsqueda se verá cuando tengas conocimientos sobre la coordenada Z.

Vídeo

Indicar al tentativo que siga buscando

Para indicar al tentativo que siga buscando, cuando ejecuto una orden que solicita seleccionar una entidad, sigue los siguientes pasos:

  1. Visualiza la Barra de herramientas Código y selecciona en la ventana desplegable el código 010123 LIMITE PROVINCIAL.
  2. Dibuja una línea en la ventana de dibujo haciendo clic con el botón de dato del ratón, para finalizarla pulsa el botón de cancelar.
  3. Selecciona ahora el código 020123 CURVA DE NIVEL (FINA), de la misma forma que has seleccionado el anterior.
  4. Dibuja otra línea en la ventana de dibujo que corte a la anterior.
  5. Modifica el tamaño del cursor en el botón Cambiar tamaño del cursor de la Barra de herramientas Tentativo.
  6. En este ejemplo vamos a eliminar la línea 020123 CURVA DE NIVEL (FINA), para ello, selecciona la orden Eliminar las entidades seleccionadas que se encuentra en la opción de menú Editar/Eliminar las entidades seleccionadas. En la esquina inferior izquieda Digi3D.NET solicita que Selecciones el elemento a borrar.
  7. Sitúate en la zona donde se cruzan las dos líneas y pulsa el Botón central del ratón, observa que la línea que se selecciona es la 010123 LIMITE PROVINCIAL, para cambiar a la otra entidad, vuelve a pulsar sobre el botón de tentativo del ratón para seleccionar la entidad 020123 CURVA DE NIVEL (FINA), en el caso de que esa fuese la entidad que deseases eliminar pulsa el botón de dato del ratón para aceptar la orden.
  8. Si siguieses pulsando el botón de tentativo del ratón un número de veces mayor al de entidades que Digi3D.NET pueda localizar, mostrará un sonido de error.
  9. Para finalizar la orden pulsa la tecla Esc del teclado o el Botón de cancelar del ratón.

Indicar al tentativo que siga buscando cuando estas utilizando modos de búsqueda:

  1. Ya has borrado la línea 020123 CURVA DE NIVEL (FINA), vuelve a dibujar una línea con ese código próxima a la línea 010123 LIMITE PROVINCIAL pero sin que se corten y de aproximadamente la misma longitud.
  2. Selecciona en la Barra de herramientas Tentativo el modo de búsqueda 0. Vertice o proyección en XY.
  3. Pulsa el botón de tentativo del ratón en uno de los extremos de las dos líneas para tentativar sobre una de ellas. Si en lugar de querer tentativar sobre la entidad que se ha seleccionado quisieras tentantivar sobre la otra, vuelve a pulsar el botón de tentativo del ratón.
  4. Pulsa ahora sobre el Botón de dato del ratón, y continúa dibujando la línea.

Vídeo

Barra de mensajes al tentativar y panel de tentativos

Conoce la barra de mensajes al tentativar y el panel de tentativos:

  1. Abre el fichero cartografia_en_etrs89.bind.
  2. Tentativa una entidad cualquiera con el botón de tentativo del ratón. En la esquina inferior izquierda se encuentra la Barra de mensajes de Digi3D.NET, en ella aparecerá información sobre la entidad que has tentativado. Ve seleccionando distintas entidades y observa la información que aparece sobre cada una de ellas en la Barra de mensajes.
  3. Para ver el histórico de todas las entidades que se han seleccionado, tienes que visualizar el Panel acoplable Tentativos, para visualizarlo ve a la opción de menú Ventana/Tentativos. La información en el Panel acoplable Tentativos aparecerá en orden inverso a cómo hemos tentativado las entidades.
    • Si la entidad seleccionada tiene más de un código, todos los códigos de la entidad aparecerán en la ventana del Panel acoplable Tentativos

Vídeo

Digitalizando elementos ortogonales a un ángulo determinado

Aprende a digitalizar elementos ortogonales a un ángulo determinado siguiendo los siguientes pasos:

  1. Visualiza la Barra de herramientas Restricciones de polilínea, si no la tienes activa, aprende a activarla pulsando aquí.
  2. Visualiza la Barra de herramientas Parámetros activos, si no está activa, aprende a activarla pulsando aquí.
  3. Pulsa sobre el tercer botón que es el correspondiente a la variable ángulo activo, por lo que se ejecutará la orden AA.
  4. En la esquina inferior izquierda, Digi3D.NET solicita que indiques un valor de ángulo activo o digitalices el primer punto. En este caso introduce el varlor 45 en la ventana que aparece en la esquina inferior derecha y pulsa la tecla Enter del teclado.
  5. Pulsa el segundo botón de la Barra de herramientas Restricciones de polilínea, que es el correspondiente a Ortogonal a el ángulo activo, teniendo este botón activo las líneas que digitalices serán ortogonales respecto al valor almacenado de la variable ángulo activo. Vas a forzar a que las líneas que digitalices sean ortogonales y con un ángulo de 45º.
  6. Dibuja una línea en la ventana de dibujo haciendo clic sobre ella con el botón de dato del ratón, verás que el primer segmento formará un ángulo de 45º con respecto a la horizontal y el resto de segmentos van a ser ortogonales entre sí.
  7. Desactiva el botón correspondiente a Ortogonal a el ángulo activo y sigue digitalizando segmentos, ahora podrás dibujar segmentos con la orientación que desees.
  8. Puedes activar o desactivar el botón Ortogonal a el ángulo activo a lo largo de una entidad tantas veces como creas necesario.

Aprende a digitalizar elementos ortogonales a una alineación determinada siguiendo los siguientes pasos:

  1. Visualiza la Barra de herramientas Restricciones de polilínea, si no la tienes activa, aprende a activarla pulsando aquí.
  2. Visualiza la Barra de herramientas Parámetros activos, si no está activa, aprende a activarla pulsando aquí.
  3. Pulsa sobre el tercer botón que es el correspondiente a la variable ángulo activo, por lo que se ejecutará la orden AA.
  4. En la esquina inferior izquierda, Digi3D.NET solicita que indiques un valor de ángulo activo o digitalices el primer punto para marcar la alineación. En este caso vamos a digitalizar los puntos marcando una alineación determinada. Digitaliza dos puntos sobre la ventana de dibujo haciendo clic con el botón de dato del ratón. Si tuvieses una alineación definida con anterioridad, con el modo de búsqueda 4. Vértice en XYZ, selecciona los dos vértices de la alineación. Para cambiar de modo de búsqueda pulsa aquí.
  5. Activa el botón correspondiente a Ortogonal a el ángulo activo de laBarra de herramientas Restricciones de polilínea.
  6. Comienza a digitalizar una polilínea, verás que el primer segmento tiene el ángulo definido con la alineación y el resto de segmentos serán ortogonales a él y entre sí.
  7. Puedes activar o desactivar el botón Ortogonal a el ángulo activo a lo largo de una entidad tantas veces como creas necesario.

Vídeo

Especificando el número máximo de vértices en una polilínea

Especifica el número máximo de vértices en una polilínea siguiendo los siguientes pasos:

  1. Selecciona en la ventana desplegable de la Barra de Herramientas Código el código 050146 EDIFICIO PRIVADO.
  2. Dibuja un edificio, donde sus lados sean ortogonales entre sí, como se ha visto en el apartado Digitalizando elementos ortogonales a un ángulo determinado.
  3. Visualiza la Barra de herramientas Restricciones de polilínea, si no está activa, aprende a activarla pulsando aquí.
  4. Pulsa sobre el tercer botón de la Barra de herramientas Restricciones de polilínea, es el correspondiente al Número máximo de puntos, para determinar el número máximo de puntos que tendrá la polilínea que estas digitalizando.
  5. En la ventana Introduce valor, indica el número máximo de puntos que tendrá la polilínea, por ejemplo 2.
  6. Pulsa el botón Aceptar.
  7. Digitaliza en la ventana de dibujo una polilínea, comprueba que cuando esa polilínea alcance el número de vértices igual a dos, automáticamente finalizará.
  8. Pulsa el botón de la Barra de herramientas Restricciones de polilínea correspondiente al Número máximo de puntos para desactivarlo.
  9. Dibuja una polilínea, haciendo clic sobre la ventana de dibujo, ahora la polilínea tendrá tantos vértices como desees ya que no existe ninguna restricción. Pulsa el botón de cancelar para finalizar la polilínea.
  10. Activa el botón Número máximo de puntos, e indica que el número máximo de puntos sea 5.
  11. Dibuja una polilínea de más de 5 vértices y comprueba que al llegar a 5 la polilínea automáticamente finalizará.
  12. Aunque esté activo el botón Número máximo de puntos, puedes digitalizar polilíneas con un número inferior al número máximo de puntos que se especifique. Prueba a digitalizar una polilínea de 3 vértices, pulsando el botón de cancelar del ratón para finalizar la orden.

Para dibujar lineas de medianería se suele especificar el número máximo de puntos:

  1. Comprueba que tienes desactivado el botón Número máximo de puntos de la Barra de herramientas Restricciones de polilínea.
  2. Selecciona el código 050324 MEDIANERIAS en el desplegable de la Barra de herramientas Código.
  3. Selecciona el modo de búsqueda 5. Proyección o vértice en XYZ en el desplegable de la Barra de herramientas Tentativo.
  4. Haz clic con el botón de tentativo del ratón sobre uno de los lados del edificio
  5. Acepta con el botón de dato.
  6. Sitúa el ratón en el lado contrario del edificio, selecciona ese lado con el botón de tentativo del ratón.
  7. Pulsa el botón de dato para aceptar.
  8. Pulsa el botón de cancelar para finalizar la orden y digitalizar la línea de medianería.

Vamos a simplificar el proceso:

  1. Deshabilita el botón Verifica de la Barra de herramientas Tentativo, pulsando sobre él.
  2. Pulsa con elbotón de tentativo del ratón sobre uno de los lados del edificio, como la opción Verifica está desactivada, se verifica automáticamente.
  3. Sitúate en el lado contrario del edificio y pulsa sobre el con el botón de tentativo del ratón.
  4. Pulsa el botón de cancelar del ratón para finalizar la orden.

Puedes simplificar el proceso todavía más:

  1. Establece como número máximo de vértices el valor 2 (ya que las medianerías siempre tienen dos vértices) pulsando el botón Número máximo de puntos de la Barra de herramientas Restricciones de polilínea.
  2. Comprueba que tienes deshabilitado el botón Verifica de la Barra de herramientas Tentativo.
  3. Pulsa con el botón de tentativo sobre uno de los lados del edificio.
  4. Ve al lado contrario y pulsa un segundo tentativo en él con el Botón de tentativo del ratón.
    • De esta forma con dos pulsaciones de botón de ratón acabas de digitalizar una línea.

Observaciones

La orden código deshabilita automáticamente la variable número máximo de puntos al ejecutarla. Puedes encontrar más información sobre la orden código pulsando aquí.

Vídeo

Modificando una geometría existente

Aprende a modificar una geometría existente siguiendo los siguientes pasos:

  1. Dibuja una geometría similar a la del vídeo, para ello haz clic con el botón de dato del ratón sobre la ventana de dibujo.
  2. Visualiza la Barra de herramientas Modifica, si no está activa, aprende a activarla pulsando aquí. Los botones de esta barra de herramientas están deshabilitados, únicamente se habilitan cuando digitalizas una polilínea.
  3. Tentativa con el botón de tentativo sobre la polilínea que has dibujado al principio en el tramo que quieras modificar, y dibuja la nueva geometría que debería tener la línea anterior.
  4. Sin finalizar la línea pulsa sobre el botón Modifica una polilínea existente de la Barra de herramientas Modifica.
  5. En la esquina inferior izquierda Digi3D.NET informa de que se está ejecutando la orden MOD del ratón. La polilínea se modifica automáticamente.

Diferencia entre el botón Modifica una polilínea existente y Modifica en X, Y, Z una polilínea existente:

  • Modifica una polilínea existente: No respeta la Z de los vértices que he introducido, interpolando la Z de esos vértices con las Z que tienen los puntos inicial y final de los vértices dónde se va a modificar la polilínea. Orden MOD.
  • Modifica en X, Y, Z una polilínea existente: Se mantiene la Z de los vértices nuevo que se han digitalizado. Orden MOD_Z.

Vídeo

Cerrando polilineas existentes

Aprende a cerrar polilíneas existentes siguiendo los siguientes pasos:

  1. Dibuja, haciendo clic sobre la ventana de dibujo con el botón de dato del ratón, entidades sin cerrarlas, por ejemplo un triángulo y un cuadrado a los que les falte uno de sus lados, .
  2. Visualiza la Barra de herramientas Editar polilínea, si no está activa, aprende a activarla pulsando aquí.
  3. Pulsa sobre el primer botón, Cerrar polilínea de la Barra de herramientas Editar polilínea, en la esquina inferior izquierda Digi3D.NET informa de que se está ejecutando la orden cierra y solicita que se seleccione la entidad a cerrar.
  4. Pulsa sobre la entidad a cerrar con el botón de tentativo del ratón. Automáticamente la entidad se cerrará.
  5. La orden estará activa hasta que pulses el botón Esc del teclado o el botón de cancelar del ratón.

Vídeo

Mover entidades

Aprende a mover entidades siguiendo los siguientes pasos:

  1. Dibuja dos entidades como las del vídeo, haciendo clic con el botón de dato del ratón en la ventana de dibujo, una polilínea con 3 vértices y un triángulo.
  2. Visualiza la Barra de herramientas Mover, si no está activa, aprende a activarla pulsando aquí.
  3. Queremos que el vértice superior del triángulo coincida con el vértice inferior de la polilínea. Pulsa sobre el primer botón de la Barra de herramientas Mover, es el correspondiente a la orden MOVER.
  4. En la esquina inferior izquierda Digi3D.NET informa de que la orden que se está ejecutando es la orden MOVER del ratón.
  5. Vuelve a seleccionar el botón correspondiente a la orden MOVER.
  6. En la Barra de herramientas Tentativo, selecciona del desplegable el modo de búsqueda 4. Vértice en XYZ.
  7. Selecciona el vértice del triángulo con el botón de tentativo del ratón.
  8. Pulsa el botón de dato para aceptar.
  9. Mueve la entidad hasta llegar al vértice de la polilínea, para que estos dos vértices coincidan tienes que hacer tentativo en el vértice de la polilínea.
  10. Tentativa con el botón de tentativo del ratón en la polilínea en una zona próxima al vértice, Dig3D.NET ilumina la polilínea y automáticamente la posición del cursor se desplaza al vértice.
  11. Acepta con el botón de dato del ratón.
  12. Para finalizar la orden MOVER del ratón.

Vídeo

Cambiando el código de una entidad

Aprende a cambiar el código de una entidad siguiendo los siguientes pasos:

  1. Dibuja un edificio con el código 050146 EDIFICIO PRIVADO.
  2. Visualiza la Barra de herramientas Editar códigos, si no está activa, aprende a activarla pulsando aquí.
  3. Pulsa el primer botón de la Barra de herramientas Editar códigos, este botón ejecuta la orden EDITAR_COD.
  4. DIGI3D.NET solicita que selecciones el elemento para editar código. Selecciona el edificio con el botón de tentativo del ratón.
  5. Confirma la selección con el botón de dato del ratón.
  6. Aparece el cuadro de diálogo Editor de códigos, pulsa sobre el botón Borrar para borrar el código que tiene.
  7. Pulsa el botón Añadir nuevo, para añadir un nuevo código
  8. Busca el código 050150 EDIF. CONSTRUCCION y pulsa el botón Seleccionar.
  9. Pulsa el botón Aceptar y comprueba que el código del edificio se ha modificado.
  10. Finaliza la orden EDITAR_COD del ratón.

Otra forma de cambiar el código de una entidad es la siguiente:

  1. Pulsa el segundo botón de la Barra de herramientas Editar códigos, esté botón ejecuta la orden CAMB_COD.
  2. DIGI3D.NET solicita que selecciones el elemento para cambiar de código. Selecciona el edificio con el botón de tentativo del ratón.
  3. Confirma la selección con el botón de dato del ratón. Al confirmar la selección, automáticamente el código de la entidad se cambiará por el código activo en la Barra de herramientas Código.
  4. Finaliza la orden CAMB_COD del ratón.

Vídeo

Introducción al editor de tablas de códigos

El programa Editor de tablas de códigos sustituye a la antigua orden DIGI.TAB y sirve para crear y modificar archivos de tablas de códigos.

Vídeo

Sistemas de Referencia de Coordenadas

Una de las principales novedades de Digi3D.NET, es que este sabe en todo momento el sistema de referencia en el que están las coordenadas de cada uno de los archivos cargados (modelo fotogramétrico, ventanas de dibujo, ...) y es capaz de realizar transformaciones de coordenadas entre distintos sistemas de referencia de coordenadas.

En este tema se va a explicar el concepto de sistema de referencia de coordenadas, se indicarán los sistemas de referencia de coordenadas que acepta Digi3D.NET así como cómo y dónde se realizan transformaciones de coordenadas dentro del programa, cómo asignar sistemas de referencia de coordenadas a cada uno de los módulos que forman Digi3D.NET...

Introducción a los Sistemas de Referencia de Coordenadas

Localización de una coordenada en la tierra

Analicemos las siguientes tuplas de coordenadas: (426308.23, 4335635, 640.0) y (39.166816,-3.853025, 640.0).

En un principio parecen dos tuplas completamente distintas: hay una diferencia de cuatrocientas y pico mil unidades entre la coordenada X de ambas tuplas y una diferencia de cuatro millones y pico en la coordenada Y, lo que significa que ambas tuplas de coordenadas son distintas y apuntan a distintas ubicaciones de la tierra, pero quizás estemos equivocados...

¿Sabes las unidades de la coordenada X del primer punto?

¿Son metros? ¿pies? ¿centímetros? ¿millas náuticas? ¿micras?

No lo sabes. Puedes intuir que son metros, pero nada más.

¿Podrías asegurar que la primera coordenada de ambas tuplas representa la coordenada X, la segunda la Y y la tercera la Z?

No puedes. La primera coordenada de la segunda tupla podría ser perfectamente una coordenada X, o la Longitud de un punto geográfico o la Latitud de un punto geográfico.

Puedes intuir, pero nada más (otra vez).

¿La coordenada Z del primer punto es elipsoidal y ortométrica?

No lo sabes.

¿La coordenada Z del primer punto, suponiendo que sea ortométrica está referida al dátum EGM96 o EGM2008?

No lo sabes.

¿Sabías que ambas tuplas en realidad apuntan exactamente al mismo punto de la tierra?

Ambas tuplas de coordenadas se refieren a la misma población: Malagón en Ciudad Real (España). Es más, ambas coordenadas representan exactamente el mismo punto de la tierra.

Definición de sistema de coordenadas de referencia

Las coordenadas por si mismas no sirven de nada, es necesario saber a qué sistema de coordenadas de referencia se refieren, así que para ser más precisos, dichas tuplas de coordenadas se tendrían que haber indicado junto con su sistema de coordenadas de referencia asociado:

(426308.23, 4335635, 640.0) en el sistema WGS 84 / UTM Zona 30 N + EGM2008

(39.166816,-3.853025, 640.0) en el sistema WGS 84 + EGM 2008

Conocer el sistema de coordenadas de referencia al que pertenece una coordenada es fundamental para saber en qué punto de la tierra se refiere una determinada coordenada.

Los sistemas de coordenadas de referencia especifican muchos parámetros:

  1. Número y nombres de sus ejes como por ejemplo (Z), (X,Y), (X,Y,Z), (Latitud, Longitud), (Latitud, Longitud, Altitud), (Longitud, Latitud), (Longitud, Latitud, Altitud),...
  2. Unidades de los ejes, como por ejemplo (ángulos sexagesimales para las coordenadas Latitud y Longitud y metros para la Altitud) o como por ejemplo (Millas náuticas para las coordenadas X e Y), ...
  3. El área en la cual es útil el sistema de coordenadas de referencia (de ámbito mundial, entre 6º oeste y 0º oeste en el hemisferio norte, o válido únicamente para Mauritania, Marruecos y España,...).
  4. El tipo de coordenadas: Cartesianas 2D, Cartesianas 3D, geográficas, verticales, ...
  5. El dátum asocidado al Sistema de coordenadas de Referencia (como World Geodetic System 1984). Éste a su vez define el elipsoide asociado como WGS 84.
  6. ...

Lista de sistemas de coordenadas de referencia

Digi3D.NET permite que tú mismo crees tu propio sistema de coorodenadas de referencia: tan solo tienes que especificar los parámetros del elipsoide (Semieje mayor y menor), del dátum, indicar la ubicación del meridiano central asociado con el dátum, especificar el tipo de coordenadas, especificar el número y unidades de los ejes y ya está, ya tienes tu sistema de coordenadas de referencia personalizado, pero en la práctica nunca lo vas a hacer, en la práctica vas a utilizar uno de los sistemas de coordenadas de referencia proporcionados por Digi3D.NET.

El Cuadro de diálogo Sistema de Referencia de Coordenadas proporciona una impresionante lista de sistemas de coordenadas de referencia. El listado de sistrmas de coordenadas de referencia que muestra este cuadro de diálogo se extrae de la base de datos EPSG.

El instalador de Digi3D.NET crea una copia de la base de datos del OGP Geomatics Comitee. Este comité proporciona una base de datos (conocida como EPSG) con miles de definiciones de sistemas de coordenadas de referencia así como los algoritmos a seguir (y sus parámetros) para transformar una coordenada entre distintos sistemas de coordenadas de referencia.

Tipos de Sistemas de Referencia de Coordenadas

Ayuda online de productos Digi21

Tipos de Sistemas de Referencia de Coordenadas

Existen tres tipos de sistemas de referencia de coordenadas:

  1. Horizontales.
  2. Verticales.
  3. Compuestos.

Sistemas de Referencia de Coordenadas Horizontales

Representan coordenadas en dos o tres dimensiones, habitualmente son X,Y o Latitud,Longitud,_o _X,Y,Z y Latitud,Longitud,Altitud.

Existen los siguientes tipos:

Sistema de referencia de coordenadasDimensiones
Desconocido o local1D o 2D
De ingenieríaNo aplicable pues Digi3D.NET no los soporta.
Geocéntricos3D
Topocéntricos2D
Geográficos 2D2D
Geográficos 3D3D
Proyectados2D

Digi3D.NET trabaja con la mayoría de ellos (todos excepto los de ingeniería), pero únicamente va a permitir al usuario seleccionar sistemas de referencia de coordenadas 3D. Únicamente va a permitir seleccionar un sistema de referencia de coordenadas 2D como la parte horizontal de un sistema de referencia de coordenadas compuesto.

Sistema de Referencia de Coordenadas Desconocido

En ocasiones desconocemos el sistema de coordenadas en el que están las coordenadas de un archivo (archivo de aerotriangulación, archivo de puntos de apoyo, archivo de dibujo,...)

Si desconocemos el sistema de coordenadas de un archivo, cuando Digi3D.NET nos pregunte por dicho sistema de coordenadas, tendremos que indicar que éste es deconocido.

Los sistemas desconocidos tienen el inconveniente de que al ser desconocidos no se puede realizar ninguna transformación de coordenadas de un sistema de coordenadas conocido a uno desconocido ni viceversa, lo que significa que si tenemos cargado por ejemplo un modelo fotogramétrico en un sistema de coordenadas conocido, por ejemplo ED 50 / UTM Zone 30N + EGM2008 Rednap península, e intentamos cargar un archivo de dibujo con sistemas de referencia de coordenadas desconocido, Digi3D.NET mostrará el siguiente cuadro de error indicando que no sabe cómo transformar las coordenadas de la ventana fotogramétrica a la de la ventana de dibujo, porque una de ellas (en este caso la de la ventana de dibujo) es desconocida, obviamente no sabe cómo transformar entre algo conocido a algo desconocido (cuyas unidades podrían ser metros, pies, millas, micras,... no se sabe):

Cuadro de diálogo indicando que no se ha podido localizar una transformación

Vídeo

Sistemas de Referencia de Coordenadas Geocéntricos

Gráfico mostrando mostrando sistemas de referencia de coordenadas geocéntrico y topocéntrico

Digi3D.NET en ocasiones debe transformar coordenadas de un determinado sistema de coordenadas determinado a un sistema de coordenadas geocéntrico.

Los sistemas de coordenadas geocéntricos son siempre sistemas de coordenadas cartesianos, con origen en el centro del de la tierra y sus unidades son siempre metros.

Digi3D.NET no te va a permitir seleccionar como sistema de referencia de coordenadas uno geocéntrico, pero internamente lo va a utilizar (por ejemplo al calcular orientaciones absolutas, el cálculo en ocasiones se realiza en coordenadas geocéntricas).

En la imagen anterior, el sistema geocéntrico es el representado con color rojo.

Sistemas de Referencia de Coordenadas Topocéntricos

Gráfico mostrando mostrando sistemas de referencia de coordenadas geocéntrico y topocéntrico

Son sistemas de coordenadas cartesianos tangentes al elipsoide (o esferoide) en un determinado punto y con los ejes orientados de manera que el eje de la X crece hacia el este, el de la Y hacia el norte y el de la Z es perpendicular creciendo según se aleja del centro del elipsoide (o esferoide). Es el representado en color azul en la imagen de arriba.

Al igual que en los Sistemas de Referencia de Coordenadas Geocéntricos, Digi3D.NET debe crear un sistema de referencia de coordenadas topocéntrico, pero no permite al usuario seleccionar como sistema de coordenadas un sistema de coordenadas de este tipo.

Sistemas de Referencia de Coordenadas Geográficos 2D

Representan puntos como coordenadas polares, es decir, ángulos. Tienen dos dimensiones, una para la Latitud y otra para la Longitud.

Las unidades y el orden de los ejes puede variar. La mayoría de los sistemas de referencia de coordenadas geográficos tienen el siguiente orden de coordenadas Latidud, Longitud y sus unidades son ángulos sexagesimales.

Digi3D.NET no permite al usuario seleccionar un sistema de referencia de coordenadas geográfico 2D directamente, únicamente permite seleccionarlo como parte de un sistema de referencia de coordenadas compuesto.

Sistemas de Referencia de Coordenadas Geograficos 3D

Ayuda online de productos Digi21

Sistemas de Referencia de Coordenadas Geograficos 3D

Son básicamente Sistemas de Referencia de Coordenadas Geográficos 2D pero con una dimensión más para la elevación, que siempre es elipsoidal.

Digi3D.NET permite seleccionar todos los sistemas de referencia de coordenadas geográficos 3D disponibles en la base de datos EPSG.

Sistemas de Referencia de Coordenadas Proyectados

Estos sistemas siempre tienen asociado un sistema de referencia de coordenadas geográfico (2D o 3D) y sirven para representar una coordenada del sistema de referencia de coordenadas geográfico asociado (que son siempre coordenadas polares, es decir, ángulos) como una coordenada rectangular, aplicando para ello una proyección.

De modo que un sistema de referencia de coordenadas proyectado siempre está formado por los siguientes parámetros:

  1. Sistema de referencia de coordenadas geográfico (2D o 3D).
  2. Proyección (U.T.M., Lambert, Polar estereográfica, ...)
  3. Los parámetros de la proyección (huso, hemisferio, ...)

Los sistemas de referencia de coordenadas proyectados son siempre de dos dimensiones (aunque su sistema de referencia de coordenadas geográfico asociado sea de tres dimensiones) y habitualmente (aunque no tiene por qué ser así) en la primera dimensión se almacena la coordenada X y en la segunda la coordenada Y las unidades de éstas suelen ser metros.

Digi3D.NET no permite al usuario seleccionar un sistema de referencia de coordenadas proyectado directamente, únicamente permite seleccionarlo como parte de un sistema de referencia de coordenadas compuesto.

Sistemas de Referencia de Coordenadas Verticales

Representan siempre una elevación o altitud o profundidad. Son siempre de una única dimensión, que suele ser la Z y las alturas representadas por estos sistemas son siempre ortométricas. Nunca elipsoidales.

Existen los siguientes tipos:

Sistema de referencia de coordenadasDimensiones
Desconocido o local1D o 2D
De ingenieríaNo aplicable pues Digi3D.NET no los soporta.
Verticales1D

Digi3D.NET únicamente va a permitir seleccionar un sistema de coordenadas de vertical como la parte vertical de un sistema de referencia de coordenadas compuesto.

Sistema de Referencia de Coordenadas Desconocido

En ocasiones desconocemos el sistema de coordenadas en el que están las coordenadas de un archivo (archivo de aerotriangulación, archivo de puntos de apoyo, archivo de dibujo,...)

Si desconocemos el sistema de coordenadas de un archivo, cuando Digi3D.NET nos pregunte por dicho sistema de coordenadas, tendremos que indicar que éste es deconocido.

Los sistemas desconocidos tienen el inconveniente de que al ser desconocidos no se puede realizar ninguna transformación de coordenadas de un sistema de coordenadas conocido a uno desconocido ni viceversa, lo que significa que si tenemos cargado por ejemplo un modelo fotogramétrico en un sistema de coordenadas conocido, por ejemplo ED 50 / UTM Zone 30N + EGM2008 Rednap península, e intentamos cargar un archivo de dibujo con sistemas de referencia de coordenadas desconocido, Digi3D.NET mostrará el siguiente cuadro de error indicando que no sabe cómo transformar las coordenadas de la ventana fotogramétrica a la de la ventana de dibujo, porque una de ellas (en este caso la de la ventana de dibujo) es desconocida, obviamente no sabe cómo transformar entre algo conocido a algo desconocido (cuyas unidades podrían ser metros, pies, millas, micras,... no se sabe):

Cuadro de diálogo indicando que no se ha podido localizar una transformación

Vídeo

Sistemas de Referencia de Coordenadas Compuestos

Digi3D.NET únicamente permite trabajar con sistemas de referencia de coordenadas 3D. En la mayoría de ocasiones querremos seleccionar un sistema de referencia de coordenadas proyectado, pero estos son 2D, por lo tanto no son directamente seleccionables por Digi3D.NET. La solución son los sistemas de referencia de coordenadas compuestos, que son la composición de dos sistemas de referencia de coordenadas: uno horizontal (2D) y uno vertical (1D) dando como resultado un sistema de referencia de coordenadas 3D.

A continuación los posibles sistemas de referencia de coordenadas compuestos que permite seleccionar Digi3D.NET.

  1. Desconocido horizontal + desconocido vertical.
  2. Geográfico 2D + desconocido vertical.
  3. Geográfico 2D + vertical.
  4. Proyectado + desconocido vertical.
  5. Proyectado + vertical.

Nombres de los Sistemas de Referencia de Coordenadas

Todos los sistemas de referencia de coordenadas tienen un nombre asociado. La forma de dar nombre a un sistema de referencia de coordenadas está estandarizada, de modo que el nombre de todos los sistemas de referencia de coordenadas de un determinado tipo seguirán el mismo patrón.

Sistemas de referencia de coordenadas verticales

Su nombre sigue el siguiente patrón:

[Nombre del sistema]

Como por ejemplo: Incheon height, Alicante height, EGM2008,...

Sistemas de referencia de coordenadas geográficos

Su nombre sigue el siguiente patrón:

[Nombre del sistema]

Como por ejemplo: Padang (Jakarta) (deg), ED50, WGS 84...

Sistemas de referencia de coordenadas proyectados

Su nombre sigue el siguiente patrón:

[Nombre del sistema geográfico asociado] / [Nombre específico del sistema proyectado]

El nombre específico del sistema proyectado puede ser un nombre en particular como Missouri East para indicar que se refiere a la zona este de Missouri o más habitualmente suele estar formado por el siguiente patrón:

[Nombre de la proyección] [zone] [huso][N/S]

Veamos varios ejemplos:

WGS 84 / UTM zone 13N para indicar proyección UTM, huso 30 norte sobre el sistema geográfico WGS 84.

NTF (Paris) / Lambert zone II para indicar proyección Lambert, huso 2 sobre el sistema geográfico NFT (París).

Sistemas de referencia de coordenadas compuestos

Su nombre sigue el siguiente patrón:

[Sistema horizontal (geográfico 2D o proyectado)] + [Sistema vertical]

Como por ejemplo:

WGS 84 / UTM Zone 30N + Alicante Height

NFT (Paris) / Lambert Zone 2 + EGM2008

Módulos de Digi3D.NET que tienen asignado su propio sistema de referencia de coordenadas

Digi3D.NET está formado por varios módulos que interaccionan entre sí: por un lado tiene el interfaz de usuario (menús, barras de herramientas), por otro lado tiene ventanas (ventanas fotogramétricas y ventanas de dibujo), tiene también sensores (ADS40/80, cónico, satelital), archivos de dibujo (.bind, .bin, .shp, ...), archivos de configuración (de teclas, de tablas de códigos...)

En esta sección se va a explicar cuáles de esos módulos tienen asignado un sistema de referencia de coordenadas, cómo cambiar el sistema de referencia de coordenadas de dichos módulos así como en qué momento Digi3D.NET transforma coordenadas al sistema de referencia de coordenadas de un módulo en particular.

Ventana Fotogramétrica

Resúmen de la operativa de la ventana fotogramétrica

La ventana fotogramétrica básicamente realiza estas tareas:

  1. Modifica la coordenada terreno.
  2. Muestra imágenes en una determinada posición.
  3. Notifica a la ventana de dibujo que el usuario ha realizado alguna acción, como por ejemplo: el usuario se ha movido, el usuario ha pulsado el pedal data, el usuario ha liberado el pedal tentativo,...
  4. Vuelve a esperar a que el usuario realice alguna acción y así hasta el infinito.

Paso 1: Modificación de la coordenada terreno

La ventana fotogramétrica tiene una coordenada (que vamos a denominar coordenada terreno). Esta coordenada varía cuando el usuario desplaza el dispositivo de entrada, y es la coordenada que se va a utilizar con posterioridad para calcular donde mostrár las imágenes en la ventana fotogramétrica.

La ventana fotogramétrica sigue los siguientes pasos para transformar la coordenada terreno.

  1. Espera a que el usuario interaccione con el dispositivo de entrada (topomouse, manivelas,...).
  2. Modifica las coordenadas de la ventana fotogramétrica en función de lo que ha hecho el usuario (si el usuario ha desplazado el topomouse 1 el equivalente a un metro en X, se modifican las coordenadas terreno de la ventana fotogramétrica 1 metro en X).

Paso 2: Mostrar las imágenes en una determinada posición

La ventana fotogramétrica no entiende de sensores, no sabe las operaciones matemáticas necesarias para saber qué píxel de cada una de las imágenes tiene que mostrar al usuario en el centro de la pantalla para una determinada coordenada terreno.

Tan solo sabe mostrar imágenes pero no sabe calcular dónde las debe dibujarlas. Delega esa operación al sensor cargado. Básicamente le pregunta al sensor ¿en qué coordenadas píxel debo centrar las imágenes en la ventana fotogramétrica para esta determinada coordenada terreno? para mostrar con posterioridad las imágenes en la ubicación que le ha indicado el sensor.

De esta manera si hemos cargado un sensor de cámara cónica, será función del sensor saber las operaciones necesarias para transformar esa coordenada terreno en las coordenadas píxel para la imagen izquierda y derecha, y si el sensor es satelital, pues será su función saber las operaciones (que son completamente distintas que las del sensor de cámara cónica) para transformar dichas coordenadas a píxel. Al estar diseñado de esta manera, no es necesario modificar la aplicación principal si en un futuro se añade un nuevo sensor.

Una vez explicado esto, podemos profundizar un poco más en cómo se realiza este paso:

  1. Si el modelo fotogramétrico tiene asignado una orientación (absoluta, afín, ...) transforma la coordenada terreno mediante dicha orientación (absoluta o afín) obteniendo lo que vamos a denominar coordenada a enviar al sensor. Si el modelo fotogramétrico no tiene asignada una orientación, se modifica la coordenada a enviar al sensor para que coincida con la coordenada terreno.
  2. La ventana fotogramétrica utiliza la coordenada a enviar al sensor para preguntarle al sensor cargado (sensor ortofoto, cámara cónica estereoscópica, satelital, ADS,...) por la posición donde debe mostrar las imágenes en la ventana fotogramétrica.
  3. El sensor responde con las coordenadas pixel a mostrar.
  4. La ventana fotogramétrica muestra las imágenes en pantalla asegurándose de que las coordenadas pixel devueltas por el sensor estén en el centro de la ventana.

Paso 3: Notificar a la ventana de dibujo que el usuario ha realizado alguna acción:

Si hay una ventana de dibujo abierta:

  1. Comunicar a la ventana de dibujo que el usuario ha realizado alguna acción.

Componentes que tienen sistemas de referencia de coordenadas

En el esquema explicado anteriormente hay tres componentes que tienen su propio sistema de referencia de coordenadas:

  1. La coordenada terreno. A su sistema de referencia de coordenadas lo denominaremos Sistema de coordenadas de la Orientación.
  2. El sensor. A su sistema de referencia de coordenadas lo denominaremos Sistema de referencia de coordenadas Sensor.
  3. La ventana de dibujo. A su sistema de referencia de coordenadas lo denominaremos Sistema de referencia de coordenadas Ventana de dibujo.

Como estos sistemas de referencia de coordenadas no tienen por qué ser idénticos, Digi3D.NET realiza transformaciones de sistemas de referencia de coordenadas entre ellos, de modo que los pasos anteriores en realidad son así:

Mostrar imágenes en una posición:

  1. Si el modelo fotogramétrico tiene asignado una orientación (absoluta, afín, ...) transforma la coordenada terreno mediante dicha orientación (absoluta o afín) obteniendo lo que vamos a denominar coordenada a enviar al sensor. Si el modelo fotogramétrico no tiene asignada una orientación, se modifica la coordenada a enviar al sensor para que coincida con la coordenada terreno.
  2. Se transforma la coordenada obtenida en el punto anterior del sistema de referencia de coordenadas de la orientación al sistema de referencia de coordenadas del sensor.
  3. La ventana fotogramétrica utiliza la coordenada a enviar al sensor para preguntarle al sensor cargado (sensor ortofoto, cámara cónica estereoscópica, satelital, ADS,...) por la posición donde debe mostrar las imágenes en la ventana fotogramétrica.
  4. El sensor responde con las coordenadas pixel a mostrar.
  5. La ventana fotogramétrica muestra las imágenes en pantalla asegurándose de que las coordenadas pixel devueltas por el sensor estén en el centro de la ventana.

Notificar a la ventana de dibujo que el usuario ha realizado alguna acción:

Si hay una ventana de dibujo abierta:

  1. Transformar la coordenada terreno del sistema de referencia de coordenadas de la orientación al sistema de referencia de coordenadas de la ventana de dibujo.
  2. Comunicar a la ventana de dibujo que el usuario ha realizado alguna acción enviándole a la ventana de dibujo las coordenadas obtenidas en el punto anterior.

Especificación del Sistema de Coordenadas de Referencia de la Orientación

El Sistema de Coordenadas de Referencia Terreno lo especifica la orientación del modelo fotogramétrico. Si no existe una orientación del modelo fotogramétrico, el Sistema de Coordenadas de Referencia Terreno coincidirá con el Sistema de Coordenadas de Referencia del Sensor.

Algunos sensores permiten realizar una orientación del modelo fotogramétrico. Cada sensor permite un tipo determinado de orientación (algunos realizan orientaciones afines, otros orientaciones absolutas, ...). Si al cargar el modelo fotogramétrico se localiza una orientación asociada a éste (orientación afín, orientación absoluta,...) el Sistema de Coordenadas de Referencia Terreno coincidirá con el sistema de referencia de coordenadas de dicha orientación.

Comprobación del Sistema de Coordenadas de Referencia Terreno actual

Puedes seleccionar la opción del menú Ventana fotogramétrica/Ver información. En el Panel de resultados aparecerá indicado con el título Sistema de referencia de coordenadas de la orientación.

Especificación del Sistema de Referencia de Coordenadas del Sensor

Todos los sensores tienen asociado un sistema de referencia de coordenadas. Algunos tienen un sistema de referencia de coordenadas fijo y otros lo tienen variable.

En la siguiente tabla podemos comprobar los sistemas de referencia de coordenadas asociados a cada uno de los sensores implementados por Digi3D.NET.

Sensor Sistemas de referencia de coordenadas permitidos
Satélite RPC Este sensor trabaja siempre en el sistema de referencia de coordenadas: EPSG:4979. Este es un sistema de referencia de coordenadas es idéntico al EPSG:4326 pero en vez de ser geográfico 2D, es geográfico 3D (con coordenadas Z elipsoidales).
VM Quasi-Panoramic Este sensor trabaja siempre en el sistema de referencia de coordenadas: EPSG:4979. Este es un sistema de referencia de coordenadas es idéntico al EPSG:4326 pero en vez de ser geográfico 2D, es geográfico 3D (con coordenadas Z elipsoidales).
ADS 40/80 Este sensor trabaja siempre en el sistema de referencia de coordenadas: EPSG:4979. Este es un sistema de referencia de coordenadas es idéntico al EPSG:4326 pero en vez de ser geográfico 2D, es geográfico 3D (con coordenadas Z elipsoidales).
Ortofoto Se obtiene el sistema de referencia de coordenadas de la orientación de la ortofoto. Si es un GeoTiff y éste (que no siempre es así) aporta información del sistema de referencia de coordenadas, el sensor tendrá ese sistema, si no es así y existe un archivo .prj, se asignará el sistema indicado en ese archivo, si no, el sistema de referencia de coordenadas será desconocido, tanto para el vertical como para el horizontal.
Ortofoto estereoscópica Se obtiene el sistema de referencia de coordenadas de la orientación de la ortofoto. Si es un GeoTiff y éste (que no siempre es así) aporta información del sistema de referencia de coordenadas, el sensor tendrá ese sistema, si no es así y existe un archivo .prj, se asignará el sistema indicado en ese archivo, si no, el sistema de referencia de coordenadas será desconocido, tanto para el vertical como para el horizontal.
Web Map Service Libre. Lo define la propia cadena de conexión al servidor WMS
Web Map Tile Service Libre. Lo define la propia cadena de conexión al servidor WMTS
Cónico
  • Si cargamos un modelo sin orientación absoluta ni aerotriangulación asociada, el sistema de referencia de coordenadas será Horizontal local + Vertical local.
  • Si el modelo tiene una aerotriangulación:
    • Si el archivo de aerotriangulación informa internamente de un sistema de referencia de coordenadas, se seleccionará este sistema de referencia de coordenadas. A día de hoy, únicamente los archivos .prj de Inpho son los únicos que informan de su sistema de referencia de coordenadas internamente
    • Si el archivo de aerotriangulación no informa internamente de un sistema de referencia de coordenadas, pero se localiza un archivo .prj en el mismo directorio que el archivo de aerotriangulación con un sistema de referencia de coordenadas, se seleccionará el sistema de referencia de coordenadas de ese archivo .prj
    • Si el archivo de aerotriangulación no informa de sistema de referencia de coordenadas ni se localiza un archivo .prj, se seleccionará como sistema de referencia de coordenadas Horizontal local + Vertical local.
  • Si se localiza un archivo de orientación absoluta, y éste proporciona información de sistema de referencia de coordenadas, se seleccionará éste sistema de coordenadas que sustituirá al proporcionado por el archivo de aerotriangulación.

Ventana de dibujo

La ventana de dibujo tiene asignado un sistema de referencia de coordenadas. Este sistema de referencia de coordenadas gobierna las siguientes funcionalidades:

  1. Las geometrías se muestran en la ventana de dibujo en el Sistema de Coordenadas de Referencia de la Ventana de dibujo.
  2. Las unidades de las coordenadas mostradas en la BarraDeHerramientasCoordenadas y las que introduciremos en órdenes que esperan coordenadas como la orden XY, serán las unidades del Sistema de Coordenadas de Referencia de la ventana de dibujo.
  3. Las unidades que mostrarán las órdenes que muestran distancias y áreas serán en las unidades del Sistema de Coordenadas de Referencia de la Ventana de dibujo si éste es proyectad, si éste es geográfico las distancias se mostrarán siempre en metros y las áreas en metros cuadrados.

La ventana de dibujo muestra archivos de dibujo. Estos archivos a su vez tienen asignado su propio sistema de referencia de coordenadas. Este sistema no tiene por qué coincidir con el de la ventana de dibujo (excepto si cargamos una ortofoto como un archivo de referencia en una ventana de dibujo) ni con el de otros archivos de dibujo de referencia cargados, lo que significa que si se cargan los archivos A, B y C, cada uno de ellos puede estar en su propio sistema de referencia de coordenadas que no tienen por que coincidir con el de la ventana de dibujo.

Si hay una ventana fotogramétrica abierta, la ventana de dibujo enviará las geometrías a dicha ventana para que se muestren en la ventana fotogramétrica. Tal y como se explica en Ventana Fotogramétrica ésta puede tener su propio sistema de referencia de coordenadas.

Representación de geometrías en la ventana de dibujo

La ventana de dibujo muestra las geometrías en el sistema de referencia de coordenadas seleccionado.

Si este sistema de corodenadas de referencia es proyectado, las geometrías se representarán en la misma proyección que el sistema de referencia de coordenadas, sin embargo si el sistema de referencia de coordenadas de la ventana de dibujo es geográfico, Digi3D.NET mostrará en la X de la ventana de dibujo la Longitud de las geometrías y en la Y la Latitud de éstas.

Las coordenadas de los sistemas geográficos son polares y no ortogonales, lo que significa que en este caso Digi3D.NET estará mezclando ángulos y distancias. Este tipo de proyección se denomina Plate Carrée o Proyección Equirectangular o Proyección cilíndrica equidistante. Esta proyección tiene muchas distorsiones y no se utiliza en mapas de navegación o catastrales pero es muy común en aplicaciones informáticas debido a la correspondencia entre píxeles y coordenadas Longitud, Latitud.

Coordenadas, distancias, ángulos y áreas para las órdenes que se ejecutan en la ventana de dibujo

Coordenadas

Las órdenes que se ejecutan en la ventana de dibujo trabajan en el sistema de referencia de coordenadas de la ventana de dibujo, de modo que si en la ventana de dibujo tenemos asignado un sistema de corodenadas de referencia geográfico, las coordenadas con las que trabajarán las órdenes serán geográficas, y si tenemos asignado un sistema de referencia de coordenadas proyectado, éstas serán proyectadas.

Si las unidades del sistema de referencia de coordenadas asignado a la ventana de dibujo son metros, las órdenes que se ejecutan en la ventana de dibujo trabajarán en metros, y si las unidades del sistema de referencia de coordenadas asignado son millas náuticas, las órdenes trabajarán en millas náuticas.

Distancias

El comportamiento de las órdenes que se ejecutan en la ventana de dibujo a la hora de calcular distancias varía en función del tipo de sistema de referencia de coordenadas asignado a la ventana de dibujo tal y como puede comprobarse en la siguiente tabla:

Tipo de sistema de referencia de coordenadas en la ventana de dibujoFórmula utilizada para calcular la distancia
Proyectado
GeográficoSe calcula mediante el problema inverso de la geodesia (Sodano).

Ángulos

El comportamiento de las órdenes que se ejecutan en la ventana de dibujo a la hora de calcular ángulosvaría en función del tipo de sistema de referencia de coordenadas asignado a la ventana de dibujo tal y como puede comprobarse en la siguiente tabla:

Tipo de sistema de referencia de coordenadas en la ventana de dibujoFórmula utilizada para calcular la distancia
Proyectado
GeográficoSe calcula mediante el problema inverso de la geodesia (Sodano).

Áreas

El comportamiento de las órdenes que se ejecutan en la ventana de dibujo a la hora de calcular áreas varía en función del tipo de sistema de referencia de coordenadas asignado a la ventana de dibujo tal y como puede comprobarse en la siguiente tabla:

Tipo de sistema de referencia de coordenadas en la ventana de dibujoFórmula utilizada para calcular la distancia
ProyectadoCalculando el área de cada uno de los triángulos del polígono y sumando todas las áreas.
GeográficoSe crea una proyección oblícua estereográfica cuyo origen coincide con las coordenadas del centro de masas del polígono a calcular el área. Se proyectan los vértices del polígono a esta proyección y se calcula el área igual que en el caso de sistemas proyectados.

Asignacion del Sistema de Referencia de Coordenadas de la Ventana de Dibujo

Digi3D.NET permite que especifiquemos el sistema de coordenadas de referencia de la ventana de dibujo mediante la opción Sistema de coordenadas de la ventana de dibujo de la sección Sistema de coordenadas de referencia de la pestaña Pestaña archivo de dibujo del Cuadro de dialogo nuevo proyecto.

Al pulsar el botón de los tres puntos se muestra el Cuadro de diálogo Sistema de Referencia de Coordenadas. Si seleccionamos la opción Heredar el sistema de coordenadas de referencia del primer archivo de dibujo cargado se asignará como sistema de coordenadas de referencia de la ventana de dibujo el mismo que el que tenga asociado el primer archivo de dibujo que carguemos (cuya apertura ha desencadenado la creación de la ventana de dibujo).

Una vez creada la ventana de dibujo **no se puede cambiar** su sistema de coordenadas de referencia asociado. Si queremos visualizar las geometrías en otro sistema de coordenadas de referencia distinto, tendremos que cerrar la ventana de dibujo y abrir una nueva en otro sistrma de coordenadas de referencia.

Vídeo

Archivos de dibujo

Las coordenadas de las geometrías almacenadas en los archivos de dibujo cargados están en un sistema de referencia de coordenadas.

Puedes indicar (en el momento de crear el archivo de dibujo) el sistema de referencia de coordenadas a asignar al archivo de dibujo. Una vez asignado un sistema de referencia de coordenadas a un archivo de dibujo, no se puede cambiar su sistema de referencia de coordenadas, de modo que si quieres un archivo en otro sistema de referencia de coordenadas tendrás que exportar el archivo y crear uno nuevo en otro sistema de referencia de coordenadas.

Ubicación del sistema de Referencia de Coordenadas en función del tipo de archivo de dibujo

Algunos formatos de archivo de dibujo incorporan el sistema de referencia de coordenadas asociado en el propio archivo (como es el caso de los archivos .bind). Otros formatos de archivo de dibujo no están preparados para almacenar dentro del propio archivo el sistema de referencia de coordenadas asociado, de modo que éste se almacena en un archivo con extensión .prj mediante una cadena Well Known Text.

En la siguiente tabla puedes ver la ubicación de la información referente al sistema de referencia de coordenadas asociado a cada tipo de extensión de archivos de dibujo soportados por Digi3D.NET:

ExtensiónFormato de archivo de dibujoUbicación del sistema de referencia de coordenadas
.ascArchivos ASCII de DigiEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.binArchivos Digi de precisión simpleEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.bindArchivos Digi de doble precisiónEn el propio archivo.
.csvArchivos valores separados por comasEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.demArchivos ArcGIS DEMEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.dgnArchivos MicroStation v8En un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.dwg, .dxfArchivos AutoCADEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.lasArchivos Laser Scan (LIDAR)Dentro del propio archivo .las o en un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.mdbArchivos Datawarehouse de GeomediaDentro de la propia base de datos.
.mdtArchivos MDTopXEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.xyzArchivos puntosEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.

Ortofotos cargadas en la ventana de dibujo:

ExtensiónFormato de archivo de dibujoUbicación del sistema de referencia de coordenadas
.bmpOrtofotos en formato BMPEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.ecwOrtofotos en formato ECWEn el propio archivo.
.jpg, .jif, .jpe, .jpegOrtofotos en formato JPEGEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.sidOrtofotos en formato MrSIDEn un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.tif, .tiffOrtofotos en formato TIFFSi son GeoTIFF, en el propio archivo. Si no, en un archivo con el mismo nombre que el archivo de dibujo pero con extensión .prj.
.wmsconnectionServicios Web Map ServiceLo define la capa a la que te conectes.

Asignacion del Sistema de Referencia de Coordenadas a un archivo de dibujo

Hasta ahora, si cargábamos un proyecto que no proporcionaba Sistema de Referencia de Coordenadas, Digi3D.NET asignaba de forma automática a los modelos cargados un Sistema Local (desconocido).

Si conoces el sistema en el que están las orientaciones del proyecto y quieres asignarlo (para por ejemplo conectarnos con Google Earth), tenías que crear un archivo .prj con el mismo nombre que el archivo de aerotriangulación y especificar el Sistema de Referencia de Coordenadas adecuado.

Debido a que este proceso no era muy intuitivo, lo hemos mejorado.
Ahora al cargar un modelo, si se detecta que éste no tiene asociado un SRC el programa va a mostrar el siguiente cuadro de diálogo:

Cuadro de diálogo solicitando asignar un sistema de referencia de coordenadas a un modelo

Este cuadro de diálogo es completamente auto-explicativo y realizará las acciones por nosotros.

Vídeo

Puedes ver esta funcionalidad en acción en el suiente enlace https://youtu.be/2IB5l2D2nNc

Localización de transformaciones entre distintos sistemas de referencia de coordenadas

Digi3D.NET en ocasiones tiene que transformar coordenadas entre distintos sistemas de referencia de coordenadas. Para poder realizar esta operación, necesita localizar una transformación matemática entre ambos sistemas.

La base de datos EPSG incluye una lista de las posibles transformaciones matemáticas existentes entre dos sistemas de referencia de coordenadas.

Digi3D.NET consulta a la base de datos EPSG siempre que precisa localizar una transformación entre dos sistemas de referencia de coordenadas. Si encuentra una transformación, utilizará esta transformación para transformar entre ambos sistemas de referencia de coordenadas.

Las transformaciones especificadas en la base de datos EPSG son siempre entre

  1. Sistemas horizontales 2D y sistemas horizontales 2D.
  2. Sistemas horizontales 3D y sistemas horizontales 3D.
  3. Sistemas horizontales 3D y sistemas verticales.
  4. Sistemas verticales y sistemas verticales.

No existe ninguna transformación de coordenadas de referencia entre sistemas compuestos (que son la mayoría que vamos a utilizar con Digi3D.NET), pero Digi3D.NET se encarga de localizar correctamente las transformaciones entre sistemas compuestos y horizontales y verticales de forma transparente para el usuario.

Si uno de los dos sistemas es compuesto, como por ejemplo ED50 / UTM Zone 30N + EGM06 se localizará la transformación horizontal por un lado y vertical por otro realizando una serie de operaciones de concatenación que encapsulan ambas transformaciones en una única transformación.

No existen transformaciones entre todos los sistemas de referencia de coordenadas. Por ejemplo, no existe ninguna transformación entre los sistemas de coordenadas horizontales ED50 / UTM Zone 30N y NAD83(NSR2007) / Florida East (ftUS).

Digi3D.NET es muy restrictivo a la hora de localizar transformaciones entre sistemas de referencia de coordenadas horizontales. Si no se localiza una transformación entre sistemas horizontales se mostrará un mensaje de error al usuario, sin embargo es menos restrictivo a la hora de localizar transformaciones verticales, permitiendo al usuario especificar una transformación genérica en caso de no localizar una transformación vertical.

Cuando Digi3D.NET intenta localizar una transformación entre dos sistemas pueden darse tres posibilidades:

  1. Que se localice una única transformación entre ambos sistemas.

    En este caso, Digi3D.NET utilizará dicha transformación sin preguntarle nada al usuario. La transformación se asignará de forma transparente para el usuario.

  2. Que no se localice ninguna transformación entre ambos sistemas.

    Si se está intentando localizar una transformación horizontal:

    En este caso Digi3D.NET le comunicará al usuario la imposibilidad de localizar una transformación mediante un cuadro de diálogo mostrando toda la información posible para que el usuario sepa cual es el problema. Generalmente esto cancela la operación que se estaba realizando, por ejemplo, la siguiente captura de pantalla se muestra al intentar abrir una ventana de dibujo con un sistema incompatible con el de la ventana fotogramétrica (que ya está abierta). Una vez aceptado el cuadro de diálogo por parte del usuario se cancelará la creación de la ventana de dibujo.

    Si por el contrario se estaba intentando localizar una transformación vertical, se mostrará al usuario el cuadro de diálogo Selección de Transformación Vertical

  3. Que se localicen varias transformaciones entre ambos sistemas.

    En este caso Digi3D.NET mostrará al usuario el Cuadro de diálogo Localizadas Múltiples Transformaciones.

Programación

Digi3D.NET publica una serie de ensamblados que permiten crear tanto aplicaciones que acceden al motor de importación/exportación, motor de topología, etc., como extensiones que permiten añadir opciones en el panel de búsqueda y crear comandos nuevos y cear controles de calidad que se ejecutan al almacenar geometrías o a petición del usuario.

Además Digi3D.NET incorpora el motor de IronPython que permite programar en el lenguaje de programación Python accediendo a todos los tipos publicados por estos ensamblados.

.NET

Curso de programación en C#

En este curso aprenderás a manejar los tipos que publica Digi3D.NET.

En el momento de la grabación de los vídeos, el instalador de Digi3D.NET instalaba los ensamblados a los que hay que hacer referencia en la carpeta Reference Assemblies de Windows, y al crear una aplicación o extensión, tenías que añadir como referencia estos ensamblados antes de compilar.

Esto ha cambiado hace tiempo ya, y ahora ya no se publican ensamblados en la carpeta, y la manera de hacer referencia a estos ensamblados es mediante paquetes NuGet.

Digi21.Math.Precision

Digi21.Math.Angles

Digi21.Math.Point2D

Digi21.Math.Point3D

Digi21.Math.Window2D

Enumerando entidades en un archivo de dibujo

Binselec

Bin2Dwg

Tipos de entidades

Buscadores

Buscadores con programación imperativa

Hola mundo

Barra de estado

Ventana de resultados

Ventana de tareas

Sonidos

Paneles acoplables

Eventos de ratón

SuperBininfo

Selección de entidades básico

Selección de entidades avanzado

Posición de la cámara

Selección de la cámara

Eliminar entidades de una en una

Eliminar múltiples entidades

Añadiendo órdenes al menú de Digi3D.NET

Tareas avanzado

Archivos de referencia

Secuencias infinitas y agrupación de archivos en secuencia

Secuencia de entidades de un tipo y agrupación de entidades de todos los archivos cargados

Evitando código duro en nuestra orden contabilizadora de entidades

Detectando todas las intersecciones del archivo de dibujo

Detectando intersecciones de múltiples líneas en rango de coordenadas

Detectando intersecciones de múltiples entidades por código

Detectando intersecciones de múltiples líneas con códigos distintos

Detectando intersecciones de una única línea

Control de calidad de curvas de nivel en tiempo real

Control de calidad de curvas de nivel mejorado

Detectando líneas sin continuidad

Detectando nodos con muchas entidades

Guiones de control de calidad

Digi3D.NET dispone de un menú denominado Control de Calidad que permite habilitar la característica de analizar el control de calidad de las geometrías justo antes de ser almacenadas o que permite analizar el control de calidad de geometrías ya existentes.

En ambos casos Digi3D.NET no es quien realiza el control de calidad, sino que delega la acción al guion asignado para tal efecto en el código de la geometría en la tabla de códigos, de manera que es responsabilidad del usuario especificar en la tabla de códigos su propio control de calidad.

Si al cargar la tabla de códigos se detecta que hay guiones de control de calidad, Digi3D.NET compila cada guion (puede haber tantos como códigos) en un ensamblado temporal almacenado en la carpeta TEMP de Windows.

¿Qué es un guion de control de calidad?

Los guiones de control de calidad son ensamblados que publican una clase que proporciona un método encargado de analizar el control de calidad de una geometría que se le pasa por parámetro.

Digi3D.NET instanciará la clase y llamará al método por cada geometría que se analice.

Ejecución del guion

Este guion se puede ejecutar de dos maneras distintas:

  • Si está habilitada la opción del menú Control de calidad/Analizar control de calidad al digitalizar entidad cuando se digitaliza una geometría, justo antes de almacenarla se ejecuta guion si la entidad tiene asignado un guion en sus códigos.
  • Si el usuario selecciona la opción del menú Control de calidad/Analizar control de calidad. En este caso se ejecutará el guion por cada geometría existente que tenga asociado en alguno de sus códigos un guion en la tabla de código.

¿Qué puede hacer un guion?

Los guiones pueden realizar tres tareas:

  • Devolver la geometría a analizar sin modificación alguna. El guion realizará esta acción si la geometría cumple con el control de calidad.
  • Sustituir la geometría a analizar por otra completamente distinta. El guion realizará esta acción para hacer que una geometría cumpla con el control de calidad, como por ejemplo convertir líneas en puntos si el perímetro de la línea es inferior a un valor umbral y el control de calidad admite este cambio, por ejemplo.
  • Lanzar una excepción para comunicarle a Digi3D.NET que la geometría no cumple con el control de calidad. El guion realizará esta acción para comunicarle al usuario que la geometría no cumple con el control de calidad.

¿Cómo comunica Digi3D.NET un error al usuario?

  • Si el análisis se ha desencadenado porque se está almacenando una geometría y está habilitada la opción Control de calidad/Analizar control de calidad al digitalizar entidad, Digi3D.NET mostrará cuadros de diálogo al usuario en función del tipo de error.

    Error mostrado al digitalizar una geometría
  • Si el análisis se ha desencadenado porque el usuario ha solicitado realizar un análisis de control de calidad, los errores detectados se mostrarán en el panel de tareas.

¿Qué tipo de errores puede comunicar el guion a Digi3D.NET?

Se pueden comunicar tanto errores de atributos de base de datos como geométricos.

En caso de errores geométricos, se puede comunicar a Digi3D.NET que la geometría tiene un error geométrico de manera independiente o que la geometría tiene un error geométrico con respecto a otra geometría, como por ejemplo una geometría que cruza a otra si esto está prohibido en el control de calidad.

Puedes aprender más en Tipos de errores.

Creación de un guion de control de calidad

Los controles de calidad son guiones que se asignan en el campo Guion de los códigos en una tabla de códigos.

Digi3D.NET compilará el guion la primera vez que se vaya a analizar el control de calidad de una geometría con un determinado código. De manera que la siguiente vez que intente analizar el control de calidad de otra geometría con dicho código, el guion ya estará compilado en un ensamblado y éste ensamblado estará cargado en memoria y listo para ser ejecutado.

Referencias

Como el proceso de compilación de un ensamblado requiere especificar los ensamblados de referencia a los que referencia el ensamblado que se está compilando, el Editor de Tablas de códigos dispone de una opción en el menú Herramientas/Ensamblados que nos va a permitir indicar los ensamblados a referenciar por cada uno de los ensamblados que se van a generar en la carpeta TEMP.

Los ensamblados de referencia mínimos requeridos son:

System.dll
System.Core.dll
Digi21.DigiNG, Version=21.0.0.0, Culture=neutral, PublicKeyToken=6751d7d8a775bb8c
Digi21.DigiNG.Plugin, Version=21.0.0.0, Culture=neutral, PublicKeyToken=6751d7d8a775bb8c

Los ensamblados System.dll y System.Core.dll son necesarios para todo ensamblado .NET, y los ensamblados Digi21.DigiNG proporcionan todos los tipos necesarios para interactuar con el motor de programación de Digi3D.NET.

Código del guion

Los guiones contienen el código mínimo necesario para proporcionar una clase pública que implemente el interfaz ITrigger.

Este interfaz proporciona un único método AnalizeEntity que recibe dos parámetros: la geometría a analizar y un booleano indicando si se está analizando porque se está almacenando una geometría (Verdadero) o porque el usuario ha seleccionado la opción del menú de analizar control de calidad.

El nombre de la clase que implemente este interfaz y el nombre del espacio de nombres donde se defina la clase no es importante. Lo importante es que la clase sea pública y que ésta implemente el interfaz ITrigger.

Ejemplo:

El siguiente ejemplo sería el cuerpo mínimo de un guion de control de calidad.

using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	      public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
		    {
		        // añadir aquí la lógica del control de calidad o devolver entidad
		        return entidad;
        }
    }
}

El método AnalizeEntityno tiene por qué ceñirse únicamente a realizar tareas de control de calidad, podría realizar fuera de este contexto, como por ejemplo actualizar una base de datos externa de control de producción, enviar eventos por correo electrónico, etc.

En Tipos de errores se enumeran los tipos de errores que puede comunicar el guion.

Tipos de errores

Cuando Digi3D.NET ejecuta el control de calidad espera que éste indique que la geometría no tiene errores, que el guion devuelva una geometría nueva o que el guion le lance una excepción para indicar un error.

La geometría no tiene errores

Si la geometría que se está analizando no tiene ningún error, el guion devolverá la geometría sin modificar como en el siguiente ejemplo:

using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	      public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
		    {
		        return entidad;
        }
    }
}

La geometría no tiene errores pero mostrar una advertencia al usuario

El guion puede comunicar una advertencia a Digi3D.NET para que éste muestre un globo al usuario cuando almacene la geometría lanzando una excepción de tipo System.ComponentModel.WarningException como en el siguiente ejemplo:

using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	    public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
        {
            throw new System.ComponentModel.WarningException("El código de esta geometría está deprecado");  
        }
    }
}

La geometría tiene errores pero se pueden solventar automáticamente sustituyéndola por otra

El guion puede convertir la geometría en otra completamente distinta como en el siguiente ejemplo que devuelve un punto si la geometría a almacenar es una línea:

using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	      public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
		    {
						if( !almacenandoEntidad )
										return entidad;
										
						if( entidad is ReadOnlyLine) {
						        return new Point(entidad.Codes)
										{
														Coordinate = (entidad as ReadOnlyLine).Points[0]
										};
						}
						
						return entidad;
        }
    }
}

Errores de la geometría que se está analizando

El guion puede comunicar a Digi3D.NET que la geometría no cumple con el control de calidad lanzando una excepción excepción de tipo GeometryException:

using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	      public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
		    {
		        if( !(entidad is ReadOnlyLine) )
		            throw new GeometryException(String.Format("Las geometrías con el código {0} deben ser líneas.", entidad.Codes[0].Name));
		        return entidad;
        }
    }
}

Errores entre dos o más geometrías

El guion puede comunicar a Digi3D.NET que ha localizado un error de relación entre la geometría que se ha ordenado almacenar y otra geometría existente en el archivo de dibujo lanzando una excepción de tipo GeometricRelationException:

using System;
using System.Collections.Generic;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;
using Digi21.Utilities;
using ng = Digi21.DigiNG.DigiNG;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	    public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
        {
		    var existentes = new List<Entity>(ng.DrawingFile.QueTenganElCódigo(entidad.Codes[0].Name));
            if( existentes.Count == 0)
                return entidad;
                
            if( existentes.Count == 0)
                return entidad;
                
            throw new GeometricRelationException(existentes[0], "Ya existe una geometría con este código");  
        }
    }
}

Errores de base de datos

[no documentado]

Ejemplos de controles de calidad

Detectar vértices con Z superior a la del anterior vértice

Vamos a crear un control de calidad que asignaremos a códigos de planimetría que tengan que se tengan que digitalizar forzosamente desde la cota más alta a la más baja.

Este guion analizará únicamente líneas y analizará la coordenada Z de los vértices de la línea. En caso de detectar el error, se lanzará una excepción de tipo GeometryException indicando el error, así como las coordenadas donde se ha localizado el error.

using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;

namespace DigiTab
{
    public class Desencadenador : ITrigger 
    {
	    public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad) 
        {
            if( !(entidad is ReadOnlyLine))
                return entidad;
                
            var linea = entidad as ReadOnlyLine;
            
            var z = linea.Points[0].Z;
            foreach(var vertice in linea.Points) {
                if( vertice.Z > z )
                    throw new GeometryException("Detectado vértice con coordenada Z superior al anterior", vertice);
                z = vertice.Z;    
            }

            return entidad;
        }
    }
}

Referencia

Digi3D.NET es una aplicación mixta de Windows, lo que significa que parte de la aplicación es nativa y parte es administrada.

La parte administrada son una serie de ensamblados firmados digitalmente que se instalan en el GAC y que permiten a las aplicaciones .NET acceder a los servicios que proporciona el programa.

Para que un programa .NET pueda acceder a los tipos publicados por uno de estos ensamblados, deberá tener una referencia al ensamblado en sus metadatos.

La forma más sencilla de hacer referencia a los ensamblados que proporciona Digi3D.NET es mediante paquetes NuGet.

Al instalar cualquiera de estos paquetes NuGet lo que se instala es un ensamblado de referencia al ensamblado realmente instalado en el GAC. Una característica que tienen los ensamblados de referencia es que no se copian al destino al compilar nuestro programa, de manera que si hacemos un programa que se llame bintram.exe, copiando únicamente ese .exe podremos ejecutarlo en cualquier máquina que tenga instalado Digi3D.NET.

A continuación, el listado de paquetes NuGet:

Digi21.DigiNG

Este paquete NuGet proporciona los tipos básicos para poder interactuar con Digi3D.NET.

Package manager

Install-Package Digi21.DigiNG -Version 21.0.0

.NET Cli

dotnet add package Digi21.DigiNG --version 21.0.0

Package reference

<PackageReference Include="Digi21.DigiNG" Version="21.0.0" />

Los tipos proporcionados están agrupados los siguientes espacios de nombres:

Digi21.DigiNG.Cameras

Proporciona tipos relacionados con la cámara en la ventana de dibujo.

Clases

Enumeraciones

Clases

Camera

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Esta clase abstracta sirve como base para los distintos tipos de cámaras que soporta la ventana de dibujo de Digi3D.NET.

public abstract class Camera

Herencia Object → Camera

Tipos derivados: ConicCamera

Propiedades

FarDevuelve o asigna la distancia del plano lejano del cono de visión.
NearDevuelve o asigna la distancia del plano cercano del cono de visión.
NameDevuelve o asigna el nombre de la cámara.
Pitch de rotación en el eje Pitch.
PositionDevuelve o asigna la posición de la cámara.
Roll de rotación en el eje Roll.
Yaw de rotación en el eje Yaw.

Métodos

ToString()

Convierte este Entity en una cadena legible para los humanos.

(Heredado de Object)

ViewportToWorld(Point3D) Transforma una coordenada de cámara a mundo.
WorldToViewport(Point3D) Transforma una coordenada de mundo a cámara.

Propiedades

Far

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna la distancia del plano lejano del cono de visión.

 public double Far { get; set; }

Valor de la propiedad

Double

Distancia del plano lejano del cono de visión.

Near

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna la distancia del plano cercano del cono de visión.

 public double Near { get; set; }

Valor de la propiedad

Double

Distancia del plano lejano del cono de visión.

Name

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el nombre de la cámara.

 public string Name { get; set; }

Valor de la propiedad

String

Nombre de la cámara.

Pitch

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Pitch.

 public double Pitch { get; set; }

Valor de la propiedad

Double

Ángulo de rotación en sexagesimal en el eje Pitch.

Position

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna la posición de la cámara.

 public Point3D Position { get; set; }

Valor de la propiedad

Point3D

Posición de la cámara.

Roll

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Roll.

 public double Roll { get; set; }

Valor de la propiedad

Double

Ángulo de rotación en sexagesimal en el eje Roll.

Yaw

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Yaw.

 public double Yaw { get; set; }

Valor de la propiedad

Double

Ángulo de rotación en sexagesimal en el eje Yaw.

Métodos

ViewportToWorld

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Transforma una coordenada de cámara a mundo.

 public Point3D ViewportToWorld(Point3D viewport)

Parámetros

viewportPoint3D
Coordenadas cámara para transformar.

Devuelve

Point3D
Coordenadas mundo transformadas.

WorldToViewport

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Transforma una coordenada de mundo a cámara.

 public Point3D WorldToViewport(Point3D world)

Parámetros

worldPoint3D
Coordenadas mundo para transformar.

Devuelve

Point3D
Coordenadas cámara transformadas.

ConicCamera

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Esta clase implementa una cámara cónica.

public sealed class ConicCamera : Camera

Herencia ObjectCamera → ConicCamera

Constructores

ConicCamera()Inicializa una nueva instancia de ConicCamera.

Propiedades

Far

Devuelve o asigna la distancia del plano lejano del cono de visión.

(Heredado de Camera)

FieldOfView Devuelve o asigna el campo de visión vertical (expresado en ángulos sexagesimales).
Near

Devuelve o asigna la distancia del plano cercano del cono de visión.

(Heredado de Camera)

Name

Devuelve o asigna el nombre de la cámara.

(Heredado de Camera)

Pitch

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Pitch.

(Heredado de Camera)

Position

Devuelve o asigna la posición de la cámara.

(Heredado de Camera)

Roll

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Roll.

(Heredado de Camera)

Yaw

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Yaw.

(Heredado de Camera)

Constructores

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de ConicCamera.

 public ConicCamera()

Propiedades

FieldOfView

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el campo de visión vertical (expresado en ángulos sexagesimales).

  public double FieldOfView { get; set; }

Valor de la propiedad

Double

Campo de visión vertical (expresado en ángulos sexagesimales).

OrtographicCamera

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Esta clase implementa una cámara ortográfica.

public sealed class OrthographicCamera : Camera

Herencia ObjectCamera → OrtographicCamera

Constructores

OrthographicCamera()Inicializa una nueva instancia de OrtographicCamera con valores por defecto.
OrthographicCamera(IWindow3D)Inicializa una nueva instancia de OrtographicCamerapasado por parámetros.
OrthographicCamera(string)Inicializa una nueva instancia de OrtographicCamera asignándole el nombre pasado por parámetros.
OrthographicCamera(string, IWindow3D)Inicializa una nueva instancia de OrtographicCamerapasado por parámetros.
OrthographicCamera(IWindow3D, double, double, double)Inicializa una nueva instancia de OrtographicCameray con los ángulos pasados por parámetros.
OrthographicCamera(string, IWindow3D, double, double, double)Inicializa una nueva instancia de OrtographicCameray con los ángulos pasados por parámetros.

Propiedades

Bottom Devuelve o asigna el semi ancho inferior de la cámara.
Far

Devuelve o asigna la distancia del plano lejano del cono de visión.

(Heredado de Camera)

FieldOfView Devuelve o asigna el campo de visión vertical (expresado en ángulos sexagesimales).
Left Devuelve o asigna el semi ancho izquierdo de la cámara.
Near

Devuelve o asigna la distancia del plano cercano del cono de visión.

(Heredado de Camera)

Name

Devuelve o asigna el nombre de la cámara.

(Heredado de Camera)

Pitch

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Pitch.

(Heredado de Camera)

Position

Devuelve o asigna la posición de la cámara.

(Heredado de Camera)

Right Devuelve o asigna el semi ancho derecho de la cámara.
Roll

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Roll.

(Heredado de Camera)

Top Devuelve o asigna el semi ancho superior de la cámara.
Yaw

Devuelve o asigna el ángulo (en sexagesimal) de rotación en el eje Yaw.

(Heredado de Camera)

Constructores

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de OrtographicCamera.

Sobrecargas

OrthographicCamera()Inicializa una nueva instancia de OrtographicCamera con valores por defecto.
OrthographicCamera(IWindow3D)Inicializa una nueva instancia de OrtographicCamerapasado por parámetros.
OrthographicCamera(string)Inicializa una nueva instancia de OrtographicCamera asignándole el nombre pasado por parámetros.
OrthographicCamera(string, IWindow3D)Inicializa una nueva instancia de OrtographicCamerapasado por parámetros.
OrthographicCamera(IWindow3D, double, double, double)Inicializa una nueva instancia de OrtographicCameray con los ángulos pasados por parámetros.
OrthographicCamera(string, IWindow3D, double, double, double)Inicializa una nueva instancia de OrtographicCameray con los ángulos pasados por parámetros.

OrthographicCamera()

Inicializa una nueva instancia de OrtographicCamera con valores por defecto.

 public OrthographicCamera()

OrthographicCamera(IWindow3D)

Inicializa una nueva instancia de OrtographicCamerapasado por parámetros.

public OrthographicCamera(IWindow3D window)

Parámetros

window IWindow3D
Ventana para centrar en la cámara.

OrthographicCamera(string)

Inicializa una nueva instancia de OrtographicCamera asignándole el nombre pasado por parámetros.

 public OrthographicCamera(string name)

Parámetros

name String
Nombre para asignar a la cámara.

OrthographicCamera(string, IWindow3D)

Inicializa una nueva instancia de OrtographicCamerapasado por parámetros.

public OrthographicCamera(string name, IWindow3D window)

Parámetros

name String
Nombre para asignar a la cámara.

window IWindow3D
Ventana para centrar en la cámara.

OrthographicCamera(IWindow3D, double, double, double)

Inicializa una nueva instancia de OrtographicCameray con los ángulos pasados por parámetros.

 public OrthographicCamera(IWindow3D window, double yaw, double pitch, double roll)

Parámetros

window IWindow3D
Ventana para centrar en la cámara.

yaw Double
Ángulo (en sexagesimal) yaw a asignar a la cámara.

pitch Double
Ángulo (en sexagesimal) pitch a asignar a la cámara.

roll Double
Ángulo (en sexagesimal) roll a asignar a la cámara.

OrthographicCamera(string, IWindow3D, double, double, double)

Inicializa una nueva instancia de OrtographicCameray con los ángulos pasados por parámetros.

 public OrthographicCamera(string name, IWindow3D window, double yaw, double pitch double roll)

Parámetros

name String
Nombre para asignar a la cámara.

window IWindow3D
Ventana para centrar en la cámara.

yaw Double
Ángulo (en sexagesimal) yaw a asignar a la cámara.

pitch Double
Ángulo (en sexagesimal) pitch a asignar a la cámara.

roll Double
Ángulo (en sexagesimal) roll a asignar a la cámara.

Propiedades

Bottom

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el semi ancho inferior de la cámara.

public double Bottom { get; set; }

Valor de la propiedad

Double

Semi ancho inferior de la cámara.

Left

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el semi ancho izquierdo de la cámara.

public double Left { get; set; }

Valor de la propiedad

Double

Semi ancho inferior de la cámara.

Right

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el semi ancho derecho de la cámara.

public double Right { get; set; }

Valor de la propiedad

Double

Semi ancho inferior de la cámara.

Top

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Devuelve o asigna el semi ancho superior de la cámara.

public double Top { get; set; }

Valor de la propiedad

Double

Semi ancho inferior de la cámara.

Enumeraciones

StandarPointOfView

Espacio de nombres: Digi21.DigiNG.Cameras
Ensamblado: Digi21.DigiNG

Esta enumeración define los tipos de orientación estándar de una cámara.

public enum StandarPointOfView

Herencia ObjectValueTypeEnum→ StandarPointOfView

Campos

Top0Indica que la cámara está encima del modelo apuntando para abajo.
Bottom1Indica que la cámara está debajo del modelo apuntando para arriba.
Left2Indica que la cámara está a la izquierda del modelo apuntando para la derecha.
Right3Indica que la cámara está a la derecha del modelo apuntando para la izquierda.
Front4Indica que la cámara está en frente del modelo mirando para atrás.
Back5Indica que la cámara está detrás del modelo mirando para delante.
SW6Indica que la cámara está en el sudoeste del modelo mirando para el centro de este.
SE7Indica que la cámara está en el sudeste del modelo mirando para el centro de este.
NE8Indica que la cámara está en el noreste del modelo mirando para el centro de este.
NW9Indica que la cámara está en el noroeste del modelo mirando para el centro de este.
Free10Indica que la cámara tiene una orientación que no coincide con ninguna de las anteriores.

Digi21.Databases

Digi21.DigiNG.DigiTab

Proporciona tipos relacionados con tablas de códigos.

Clases

Enumeraciones

Clases

DigiTab

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Esta clase implementa métodos para interactuar con tablas de códigos de Digi3D.NET.

public sealed class DigiTab : IDisposable

Herencia Object → DigiTab

Implementa: IDisposable

Propiedades

Codescon las características de cada código perteneciente a la tabla de códigos.
PathDevuelve la ruta de la tabla de códigos.
TablesDevuelve un diccionario de esquemas de base de datos.
Item[string]Devuelve el NodeDigiTab con las características del código cuyo nombre coincide con el parámetro.

Métodos estáticos

Load.

Métodos

AddCode Añade un nuevo código a la tabla de códigos.
Dispose

Libera los recursos utilizados por la tabla de códigos.

(Heredado de IDisposable)

HasCode(string) Indica si la tabla de códigos contiene un código cuyo nombre sea el pasado por parámetros.
HasCode(string, bool) Indica si la tabla de códigos contiene un código cuyo nombre sea el pasado por parámetros permitiendo indicar si aplicar lógica de comodines.
Write(string) Almacena la tabla de códigos en un archivo.

Propiedades

Codes

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve una enumeración de NodeDigiTabcon las características de cada código perteneciente a la tabla de códigos.

public IEnumerable<NodeDigiTab> Codes { get; }

Valor de la propiedad

IEnumerable<NodeDigiTab>

Códigos pertenecientes a la tabla de códigos.

Path

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve la ruta de la tabla de códigos.

public string Path { get; }

Valor de la propiedad

String

Ruta de la tabla de códigos.

Tables

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve un diccionario de esquemas de base de datos.

public IDictionary<string, IList<Tuple<string, Type>>> Tables { get; }

Valor de la propiedad

IDictionary<string, IList<Tuple<string, Type>>

Devuelve un diccionario cuya clave es el nombre de cada una de las tablas cuyo esquema tenga definida la tabla de códigos y cuyo valor es una lista de cada uno de sus campos. La lista es de tipo tupla y el primer valor es el nombre de cada uno de los campos de la tabla, y el segundo valor es el tipo de campo.

Item[string]

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve el NodeDigiTab con las características del código cuyo nombre coincide con el parámetro.

public NodeDigiTab this[string name] 

Parámetros

nameString
Nombre del código a obtener.

Valor de la propiedad

NodeDigiTab

Código solicitado

Métodos estáticos

Load

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Carga una tabla de códigos devolviendo una instancia de DigiTab.

public static DigiTab Load(string path)

Parámetros

nameString
Ruta del archivo a cargar.

Devuelve

DigiTab
Objeto con la tabla de códigos cargada.

Métodos

AddCode

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Añade un nuevo código a la tabla de códigos.

public void AddCode(NodeDigiTab code)

Parámetros

codeNodeDigiTab
Código para añadir a la tabla de códigos.

HasCode

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Indica si la tabla de códigos contiene un código

Sobrecargas

HasCode(string)Indica si la tabla de códigos contiene un código cuyo nombre sea el pasado por parámetros.
HasCode(string, bool)Indica si la tabla de códigos contiene un código cuyo nombre sea el pasado por parámetros permitiendo indicar si aplicar lógica de comodines.

HasCode(string)

Indica si la tabla de códigos contiene un código cuyo nombre sea el pasado por parámetros.

public bool HasCode(string name)

Parámetros

nameString
Nombre del código que se está consultando.

Devuelve

Boolean
Verdadero si la tabla de códigos contiene el código especificado.

Ejemplo

El siguiente ejemplo carga una tabla de códigos e indica si ésta tiene el código 020400.

var tabla = DigiTab.Load("tabla.tab.xml");
if( tabla.HasCode("0204400") )
    Console.WriteLine("La tabla tiene el códiogo 020400");

HasCode(string, bool)

Indica si la tabla de códigos contiene un código cuyo nombre sea el pasado por parámetros permitiendo indicar si aplicar lógica de comodines.

public bool HasCode(string name, bool allowWilcards)

Parámetros

nameString
Nombre del código que se está consultando.

allowWillcardsBoolean
Valor que indica si utilizar comodines.

Devuelve

Boolean
Verdadero si la tabla de códigos contiene el código especificado.

Ejemplo

El siguiente ejemplo carga una tabla de códigos e indica si ésta tiene un código que comienza por 0204.

var tabla = DigiTab.Load("tabla.tab.xml");
if( tabla.HasCode("0204*", true) )
    Console.WriteLine("La tabla tiene al menos un código cuyo nombre comienza por 0204");

Write

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Almacena la tabla de códigos en un archivo.

public void Write(string path)

Parámetros

pathString
Ruta en la que almacenar la tabla de códigos.

NodeDigiTab

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Esta clase representa un código en una tabla de códigos DigiTab.

public sealed class NodeDigiTab : IDisposable

Herencia Object → NodeDigiTab

Constructores

NodeDigiTab(string)Inicializa una nueva instancia de NodeDigiTabcon el nombre pasado por parámetros.

Propiedades

Aliasdel código.
ColorDevuelve o asigna el color del código en la ventana de dibujo.
ColorPhotogrammetricDevuelve o asigna el color del código en la ventana fotogramétrica.
Description del código.
TypeDevuelve o asigna el tipo de geometría que representa el código.
Name del código.
Priority asignado al código.
TableDevuelve o asigna la tabla de base de datos vinculada con el código.
Tagsasociadas con el código.
Values asociado con el código.

Constructores

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de NodeDigiTabcon el nombre pasado por parámetros.

public NodeDigiTab(string name)

Parámetros

nameString
Nombre del código a crear.

Propiedades

Alias

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna los aliasdel código.

public IEnumerable<string> Alias { get; set; }

Valor de la propiedad

IEnumerable<string>

Enumeración con los alias del código.

Color

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna el color del código en la ventana de dibujo.

public string Color { get; set; }

Valor de la propiedad

String

Color de la tabla de códigos.

Observaciones

Si el color es una cadena con un número entre 0 y 255 como por ejemplo 122 se utilizará el color correspondiente en la paleta de colores de la tabla de códigos.

Si por el contrario es un valor en de color HTML como por ejemplo #221345 se extraerán las componentes R, G y B del color HTML.

ColorPhotogrammetric

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna el color del código en la ventana fotogramétrica.

public string ColorPhotogrammetric { get; set; }

Valor de la propiedad

String

Color de la tabla de códigos.

Observaciones

Si el color es una cadena con un número entre 0 y 255 como por ejemplo 122 se utilizará el color correspondiente en la paleta de colores de la tabla de códigos.

Si por el contrario es un valor en de color HTML como por ejemplo #221345 se extraerán las componentes R, G y B del color HTML.

Description

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna una descripción del código.

public string Description { get; set; }

Valor de la propiedad

String

Descripción del código.

Type

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna el tipo de geometría que representa el código.

public GeometryType Type { get; set; }

Valor de la propiedad

GeometryType

Tipo de geometría.

Name

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna el nombredel código.

public string Name { get; set; }

Valor de la propiedad

String

Nombre del código.

Priority

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna el valor de prioridadasignado al código.

public int Priority { get; set; }

Valor de la propiedad

Int32

Valor de prioridadasignado al código.

Table

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna la tabla de base de datos vinculada con el código.

public string Table { get; set; }

Valor de la propiedad

String

Nombre de la tabla de base de datos con la que vincula el código.

Tags

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve o asigna las etiquetasasociadas con el código.

public IEnumerable<string> Tags { get; set; }

Valor de la propiedad

IEnumerable<string>

Etiquetas asignadas al código.

Values

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG

Devuelve el diccionario de valores asociado con el código.

public Dictionary<string, string> Values Tags { get; set; }

Valor de la propiedad

IDictionary<string, string>

Diccionario de valores asociado con el código.

Enumeraciones

GeometryType

Espacio de nombres: Digi21.DigiNG.DigiTab
Ensamblado: Digi21.DigiNG​‌

Esta enumeración define el tipo de geometría para un determinado código.

public enum GeometryType

‌Herencia ObjectValueTypeEnum → GeometryType

Campos

​Title​Title​Title
Point0El código representa una geometría de tipo punto.
Line1El código representa una geometría de tipo línea.
Virtual2El código representa una geometría de tipo línea virtual (las geometrías que se digitalicen con este código no se almacenarán en el archivo de dibujo y desaparecerán al cerrar la ventana de dibujo).

Digi21.DigiNG.Entities

Proporciona los tipos relacionados con geometrías.

Clases

Interfaces

Enumeraciones

Clases

Code

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase representa un código de la tabla de códigos.

public struct Code

Herencia ObjectValueType → Code

Constructores

Code(string)Inicializa una nueva instancia de Codeasignándole un nombre.
Code(string, int?, int?)Inicializa una nueva instancia de Codeasignándole un nombre, identificador de tabla de base de datos e identificador de registro.
Code(string, int, int)Inicializa una nueva instancia de Codeasignándole un nombre, identificador de tabla de base de datos e identificador de registro.

Propiedades

AttributesDevuelve o asigna un diccionario con los atributos de base de datos asociados con el código.
Name.
Table.
Id.
Visible en la ventana de dibujo.
VisiblePhotogrammetricWindow en la ventana fotogramétrica.

Métodos estáticos

Compare(string, string)Comprara utilizando la lógica de comodines de Digi3D.NET dos nombres de códigos.
Compose(string, string)Compone el nombre de un código a partir de un nombre de código existente y de una cadena a sustituir con comodines.

Métodos

ToString()

Convierte este Code en una cadena legible para los humanos.

(Heredado de Object)

Operadores

==
!=

Constructores

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de la estructura Code.

Observaciones

El número de tabla es el número asignado para ese nombre de tabla en la tabla especial de base de datos MSCATALOG o CATDBS.

Los importadores/exportadores proporcionan la propiedad DatabaseTables que devuelve un diccionario con los nombres de tablas, así como su número.

Sobrecargas

Code(string)Inicializa una nueva instancia de Codeasignándole un nombre.
Code(string, IDictionary<string, object>)
Code(string, int?, int?)Inicializa una nueva instancia de Codeasignándole un nombre, identificador de tabla de base de datos e identificador de registro.
Code(string, int, int)Inicializa una nueva instancia de Codeasignándole un nombre, identificador de tabla de base de datos e identificador de registro.

Code(string)

Inicializa una nueva instancia de Codeasignándole un nombre.

public Code(string name);

Parámetros

name String
Nombre que asignar al código

Ejemplos

El siguiente ejemplo instancia un nuevo código cuyo nombre es 020400.

var código = new Code("020400");

Code(string, IDictionary<string, object>)

Inicializa una nueva instancia de Codeasignándole un nombre y un diccionario de atributos.

public Code(string name, IDictionary<string, object> attributes);

Parámetros

name String
Nombre que asignar al código

attributes IDictionary<>
Nombre que asignar al código

Ejemplos

El siguiente ejemplo instancia un nuevo código cuyo nombre es 020400 y le asigna una serie de atributos:

var código = new Code("020400",
    new Dictionary<string, object>
    {
        {"Propietario", "Dylan"},
        {"Alturas", 3},
        {"Superficie", 200.0}
    });

Code(string, int?, int?)

Inicializa una nueva instancia de Codeasignándole un nombre, identificador de tabla de base de datos e identificador de registro.

public Code(string name, int? table, int? id);

Parámetros

name String
Nombre que asignar al código

table Nullable<int>
Número de tabla de base de datos

id Nullable<int>
Identificador del PrimaryKey de la tabla de base de datos con los datos asignados al Entity.

Ejemplos

El siguiente ejemplo instancia un nuevo código cuyo nombre es 020400, y que tiene su información de base de datos en el registro 25522 de la tabla 2 de la base de datos.

var código = new Code("020400", 2, 25522);

Code(string, int, int)

Inicializa una nueva instancia de Codeasignándole un nombre, identificador de tabla de base de datos e identificador de registro.

public Code(string name, int? table, int? id);

Parámetros

name String
Nombre que asignar al código

table Nullable<int>
Número de tabla de base de datos

id Nullable<int>
Identificador del PrimaryKey de la tabla de base de datos con los datos asignados al Entity.

Ejemplos

El siguiente ejemplo instancia un nuevo código cuyo nombre es 020400, y que tiene su información de base de datos en el registro 25522 de la tabla 2 de la base de datos.

var código = new Code("020400", 2, 25522);

Propiedades

Attributes

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve un diccionario con los atributos de base de datos asociados con el código.

public IDictionary<string, object> Attributes { get;  }‌

Valor de la propiedad

IDictionary<>

Un diccionario cuyo índice son los campos de base de datos de la tabla asociada al código y cuyo valor es el valor de dicho campo.

Ejemplo

Para crear un código que tenga atributos de base de datos asociados:

var código = new Code("020400")
{
    Attributes = new Dictionary<string, object>
    {
        {"Propietario", "Dylan"},
        {"Alturas", 3},
        {"Superficie", 200.0}
    }
};

Id

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el valor del PrimaryKey del registro de base de datos al que apunta la geometría que tiene asignado este Code.

public int? Id { get; }

Valor de la propiedad

Nullable<int>

Valor del PrimaryKey que tiene la información de base de datos de la Entityposeedora de este Code o null en caso de que el código no tenga enlace a base de datos.

Name

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el nombre del código.

public string Name Id { get; }

Valor de la propiedad

String

Nombre del código.

Table

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el valor del número de tabla en la que existen los datos de base de datos asociados con este Code.

public int? Table { get; }

Valor de la propiedad

Nullable<int>

Número de tabla si el código tiene datos de base de datos o null en caso contrario.

Observaciones

Una geometría puede tener tantos códigos como desee, y los códigos opcionalmente pueden apuntar a un determinado registro de una determinada tabla de base de datos.

Al conectar con una base de datos habitualmente existe una tabla denominada CATDBS o MSCATALOG que es un índice que relaciona número de tabla con nombre de tabla.

El número que se almacena en esta propiedad es el número de tabla que tiene una tabla en particular en la tabla CATDBS o MSCATALOG.

Visible

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Indica si está habilitada la visualización de este Code en la ventana de dibujo.

public bool Visible { get; set; }

Valor de la propiedad

Boolean

Visibilidad del código en la ventana de dibujo.

VisiblePhotogrammetricWindow

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Indica si está habilitada la visualización de este Code en la ventana fotogramétrica.

public bool VisiblePhotogrammetricWindow { get; set; }

Valor de la propiedad

Boolean

Visibilidad del código en la ventana fotogramétrica.

Métodos estáticos

Compare

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Comprara los nombres de dos códigos utilizando la lógica de comodines de Digi3D.NET.

public static bool Compare(string codeNameA, string codeNameB);‌

Parámetros

codenameA String
Nombre del primer código a comparar.

codenameB String
Nombre del segundo código a comparar. Este código admite comodines de Digi3D.NET.

Devuelve

Boolean
Verdadero si los dos nombres de códigos son idénticos según la lógica de comodines de Digi3D.NET.

Ejemplos

El siguiente ejemplo imprimirá por la consola un mensaje si el primer código de la geometría pertenece al grupo de altimetría (suponiendo que todos los códigos de altimetría en la tabla de códigos activa comienzan por 02).

if( Code.Compare(entidad.Codes[0].Name, "02*") )
    Console.WriteLine("El primer código de la geometría pertenece al grupo de altimetría");

Compose

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Compone el nombre de un código a partir de un nombre de código existente y de una cadena a sustituir con comodines.

public static string Compose(string stringToCompose, string wildCard);‌

Parámetros

stringToCompose String
Nombre del código a componer.

wildCard String
Cadena con comodines a sustituir en formato Digi3D.NET.

Devuelve

String
Nombre del código compuesto.

Ejemplos

El siguiente ejemplo asume que los códigos que comienzan por 06 son temporales y los que comienzan por 07 son permanentes, de manera que por ejemplo si el código 060101 es Edificio temporal, el código 070101 será Edificio permanente.

El ejemplo imprimirá en la consola el código permanente correspondiente con un código temporal.

var códigoTemporal = "060400";
var códigoPermanente = Codes.Compose(códigoTemporal, "03*");
Console.WriteLine(códigoPermanente);

Complex

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo Complejo.

public class Complex : ReadOnlyComplex

Herencia ObjectEntity → Complex

Tipos derivados: Complex

Constructores

Complex(Code)Inicializa una nueva instancia de Complexcon un código.
Complex(IEnumerable<Code>)Inicializa una nueva instancia de Complexcon múltiples códigos.

Propiedades

Constructores

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de Complex.

Sobrecargas

Complex(Code)Inicializa una nueva instancia de Complexcon un código.
Complex(IEnumerable<Code>)Inicializa una nueva instancia de Complexcon múltiples códigos.

Complex(Code)

Inicializa una nueva instancia de Complexcon un código.

public Complex(Code code);

Parámetros

code Code
Código a asignar al nuevo Complex.

Ejemplos

El siguiente ejemplo instancia un nuevo Complexy le asigna el código 020400.

var complejo = new Complex(new Code("020400"));

Complex(IEnumerable<Code>)

Inicializa una nueva instancia de Complexcon múltiples códigos.

public Complex(IEnumerable<Code> codigos);

Parámetros

codes IEnumerable<Code>
Códigos a asignar al nuevo Complex.

Ejemplos

El siguiente ejemplo instancia un nuevo Complexy le asigna los códigos 020400 y ABCDE.

var complejo = new Complex(new[]
{
    new Code("020400"),
    new Code("ABCDE")
};

Propiedades

Entities

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve la lista de Entityque forman el Complex.

public new IList<Entity> Entities { get; }

Valor de la propiedad

IList<Entity>

Lista de Entity.

Entity

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase abstracta es la clase base común de todas las clases que implementan geometrías.

public abstract class Entity : IWindow3D, ICloneable, IDisposable

Herencia Object → Entity

Tipos derivados: ReadOnlyComplex.

Implementa: ICloneable, IWindow3D

Observaciones

Algunas propiedades de este tipo permiten asignación como FillColor.

Al instanciar una geometría nueva como por ejemplo Line, ésta es de lectura/escritura, de manera que se pueden utilizar las propiedades de asignación sin ningún problema.
En el momento en el que la geometría se almacena en un archivo de dibujo (IDrawingFile, esta se convierte en una geometría de sólo lectura y ya no es posible asignar ninguna propiedad.

En caso de asignar alguna propiedad en una geometría de solo lectura (excepto la propiedad Hidden.

Propiedades

AttributesDevuelve o asigna un diccionario con los atributos de la geometría
W

SW

S

SE

E

NE

N

NW

Center

Depth

Height

Width

Valid

Xmin

Ymin

Zmin

Xmax

Ymax

Zmax

Owner.
Deletedestá eliminado.
ReadOnly
FillColor.
Weight.
Color.
Codes.
Visible es visible.
CreationTime.
Offset.
Hidden en la ventana de dibujo.

Métodos

Clone

ToString

Convierte este Entity en una cadena legible para los humanos.

(Heredado de Object)

Propiedades

Attributes

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve un diccionario con los atributos de la geometría.

public IDictionary<string, object> Attributes { get;  }‌

Valor de la propiedad

IDictionary<>

Un diccionario de pares clave valor.

Ejemplo

Para crear un código que tenga atributos de base de datos asociados:

var código = new Line("020400")
{
    Attributes = new Dictionary<string, object>
    {
        {"Propietario", "Dylan"},
        {"Alturas", 3},
        {"Superficie", 200.0}
    }
};

Owner

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el archivo de dibujo al que pertenece el Entity.

public IDrawingFile Owner { get; }

Valor de la propiedad

IDrawingFile

Archivo de dibujo al que pertenece la geometría o null en caso de que la geometría no pertenezca a ningún archivo de dibujo.

Observaciones

Al almacenar una geometría en un archivo de dibujo, inmediatamente esta se convierte en una geometría de solo lectura, de manera que ya no se podrán utilizar las propiedades de asignación.

Para saber si una geometría es de solo lectura podemos utilizar la propiedad ReadOnly.

Deleted

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Especifica la geometría representada por este Entityestá eliminada.

public bool Deleted { get; }

Valor de la propiedad

Boolean

Verdadero si la geometría está marcada como eliminada. Falso en caso contrario.

Observaciones

Al llamar al método IDrawingFile.Delete la geometría se marca como eliminada pero no se elimina realmente del archivo de dibujo. La manera de eliminar realmente una geometría de un archivo de dibujo es creando un archivo de dibujo nuevo en el que no se almacene la geometría en cuestión.

Esta operación es la que realiza internamente la orden COMPRIMIR de Digi3D.NET.

ReadOnly

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Indica si la geometría representada por este Entityestá almacenada en un archivo de dibujo (y por lo tanto es de solo lectura).

public bool Deleted { get; }

Valor de la propiedad

Boolean

Verdadero si la geometría pertenece a un archivo de dibujo y por lo tanto es de solo lectura.

FillColor

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve o asigna el color de relleno de la geometría en caso de tener asignado uno que no sea el de la tabla de códigos.

public int? FillColor  { get; }

Valor de la propiedad

Nullable<Int32>

Color de relleno de la geometría en caso de tener uno asignado que no sea el de la tabla de códigos.
null en caso de que no tenga asignado un color de relleno.

Observaciones

Las geometrías se dibujan habitualmente con el color de relleno que tengan asignada en la tabla de códigos.

Digi3D.NET no dispone de ninguna orden que permita sobrescribir este valor, de manera que un usuario no puede asignar un color de relleno específico a una geometría, sin embargo, algunos importadores como el de DGNs puede asignar este color si la geometría en el DGN tiene asignado un relleno por entidad en vez de por capa.

En caso de que el valor no sea null el valor será un índice a la paleta de colorde la tabla de códigos cargada.

Weight

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve o asigna el grosor de la geometría en caso de tener asignado uno que no sea el de la tabla de códigos.

public int? Weight { get; }

Valor de la propiedad

Nullable<Int32>

Grosor de la geometría en caso de tener uno asignado que no sea el de la tabla de códigos.
null en caso de que no tenga asignado un grosor.

Observaciones

Las geometrías se dibujan habitualmente con el grosor que tengan asignado en la tabla de códigos.

Digi3D.NET no dispone de ninguna orden que permita sobrescribir este valor, de manera que un usuario no puede asignar un grosor específico a una geometría, sin embargo, algunos importadores como el de DGNs puede asignar este grosor si la geometría en el DGN tiene asignado un grosor por entidad en vez de por capa.

Color

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve o asigna el color de la geometría en caso de tener asignado uno que no sea el de la tabla de códigos.

public int? Color  { get; }

Valor de la propiedad

Nullable<Int32>

Color de la geometría en caso de tener uno asignado que no sea el de la tabla de códigos.
null en caso de que no tenga asignado un color.

Observaciones

Las geometrías se dibujan habitualmente con el color que tengan asignada en la tabla de códigos.

Digi3D.NET no dispone de ninguna orden que permita sobrescribir este valor, de manera que un usuario no puede asignar un color específico a una geometría, sin embargo, algunos importadores como el de DGNs puede asignar este color si la geometría en el DGN tiene asignado un color por entidad en vez de por capa.

En caso de que el valor no sea null el valor será un índice a la paleta de colorde la tabla de códigos cargada.

Codes

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve la colección de códigos de la geometría asociada con este Entity.

public CodeCollection Codes { get; }

Valor de la propiedad

CodeCollection

Objeto en el que se almacenan los códigos de la geometría.

Visible

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Especifica la geometría representada por este Entity es visible.

public bool Visible { get; }‌

Valor de la propiedad

‌​Boolean​‌

Verdadero si la geometría es visible. Falso en caso contrario.‌

Observaciones

‌Esta propiedad devolverá verdadero en caso de que la geometría no esté oculta (Hidden o equivalentes.

Hidden

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Especifica ocultar en la ventana de dibujo la geometría representada por este Entity

public bool Hidden { get; set; }‌

Valor de la propiedad

‌​Boolean​‌

Verdadero si ocultar la geometría. Falso en caso contrario.‌

CreationTime

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve la fecha de creación de la geometría representada por este Entity

public DateTime CreationTime { get; }‌

Valor de la propiedad

DateTime​‌

‌Fecha de creación de la geometría.

Observaciones

Digi3D.NET asigna una fecha de creación a las geometrías en el momento en el que se almacenan en un archivo de dibujo.

UserData

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Permite almacenar un objeto definido por el usuario.

public object UserData { get; set;  }‌

Valor de la propiedad

Object

Valor de usuario.

Digi3D.NET no utiliza este valor, ni lo almacena en los archivos de dibujo ni entiende lo que se está almacenando aquí.

Offset

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve el offset en el que está almacenada la geometría representada por este Entity en el archivo de dibujo.

public ulong Offset { get;  }‌

Valor de la propiedad

Uint64

‌Offset donde se ubica la geometría en el IDrawingFile en caso de que la geometría esté almacenada en un archivo de dibujo.

Si la geometría no pertenece a ningún archivo de dibujo se lanzará una excepción de tipo InvalidOperationException.

Métodos

Clone

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve un clon de la geometría representada por este Entity.

public virtual Entity Clone();‌

Devuelve

Entity
Nueva geometría clonada.

GeometryFactory

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase estática proporciona métodos de extensión que permiten generar geometrías.

public static class GeometryFactory

Herencia Object → GeometryFactory

Métodos de extensión

CreateParallel pasada por parámetros.

Métodos de extensión

CreateParallel

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Instancia una nueva Lineque es una paralela de la ReadOnlyLine pasada por parámetros.

Sobrecargas

CreateParallel(this ReadOnlyLine, double)Instancia una nueva Lineque es una paralela (en el plano XY) de la ReadOnlyLine pasada por parámetros.
CreateParallel(this ReadOnlyLine, double, double)Instancia una nueva Lineque es una paralela (en el espacio) de la ReadOnlyLine pasada por parámetros.

CreateParallel(this ReadOnlyLine, double)

Instancia una nueva Lineque es una paralela (en el plano XY) de la ReadOnlyLine pasada por parámetros.

public static Line CreateParallel(this ReadOnlyLine line, double distance);‌

Parámetros

line ReadOnlyLine
Linea para la cual queremos generar una paralela.

distance Double
Distancia en el plano X, Y a la cual se generará la paralela. Si es un valor positivo la paralela se creará a la derecha de la geometría existente, y si es negativo a la izquierda.

Devuelve

Line
Nueva línea.

CreateParallel(this ReadOnlyLine, double, double)

Instancia una nueva Lineque es una paralela (en el espacio) de la ReadOnlyLine pasada por parámetros.

public static Line CreateParallel(this ReadOnlyLine line, double distanceXY, double distanceZ);‌

Parámetros

line ReadOnlyLine
Linea para la cual queremos generar una paralela.

distanceXY Double
Distancia en el plano X, Y a la cual se generará la paralela. Si es un valor positivo la paralela se creará a la derecha de la geometría existente, y si es negativo a la izquierda.

distanceZ Double
Distancia en el plano eje Z a la cual se generará la paralela.

Devuelve

Line
Nueva línea.

Line

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo línea (que en realidad es una polilínea).

public class Line : ReadOnlyLine, IDesplazable, IDirectionable

Herencia ObjectEntity→ Line

Implementa: IDesplazable

Constructores

Line(Code)Inicializa una nueva instancia de Linecon un código.
Line(IEnumerable<Code>)Inicializa une nueva instancia de Linecon múltiples códigos.

Propiedades

Métodos

ChangeDirection()

Cambia la dirección del Line.

(Heredado de IDirectionable)

Close() Cierra el Line.
Offset(Point2D)

Desplaza el Line en el plano X, Y.

(Heredado de IDesplazable)

Offset(Point3D)

Desplaza el Line en el espacio.

(Heredado de IDesplazable)

Offset(double, double)

Desplaza el Line en el plano X, Y.

(Heredado de IDesplazable)

Offset(double, double, double)

Desplaza el Line en el espacio.

(Heredado de IDesplazable)

Constructores

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de Line.

Sobrecargas

Line(Code)Inicializa una nueva instancia de Linecon un código.
Line(IEnumerable<Code>)Inicializa una nueva instancia de Linecon múltiples códigos.

Line(Code)

Inicializa una nueva instancia de Complexcon un código.

public Complex(Code code);

Parámetros

code Code
Código a asignar al nuevo Line.

Ejemplos

El siguiente ejemplo instancia un nuevo Line y le asigna el código 020400.

var línea = new Line(new Code("020400"));

Line(IEnumerable<Code>)

Inicializa una nueva instancia de Line con múltiples códigos.

public Line(IEnumerable<Code> codigos);

Parámetros

codes IEnumerable<Code>
Códigos a asignar al nuevo Line.

Ejemplos

El siguiente ejemplo instancia un nuevo Liney le asigna los códigos 020400 y ABCDE.

var línea = new Line(new[]
{
    new Code("020400"),
    new Code("ABCDE")
};

Propiedades

Points

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve la lista de vértices del Line.

public new IList<Point3D> Points { get; }

Valor de la propiedad

IList<Point3D>

Lista de vértices (Point3D.

Métodos

Close

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Cierra el Line añadiendo un vértice al final que coincida con el vértice inicial.

 public void Close();‌

Observaciones

Si la línea ya está cerrada (aunque sea únicamente en el plano X, Y) este método no realizará ninguna acción.

Point

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo punto.

public class Point : ReadOnlyPoint, IDesplazable

Herencia ObjectEntity → Point

Implementa: IDesplazable

Constructores

Point(Code)Inicializa una nueva instancia de Point con un código.
Point(IEnumerable<Code>)Inicializa une nueva instancia de Point con múltiples códigos.

Propiedades

Métodos

Offset(Point2D)

Desplaza el Point en el plano X, Y.

(Heredado de IDesplazable)

Offset(Point3D)

Desplaza el Point en el espacio.

(Heredado de IDesplazable)

Offset(double, double)

Desplaza el Point en el plano X, Y.

(Heredado de IDesplazable)

Offset(double, double, double)

Desplaza el Point en el espacio.

(Heredado de IDesplazable)

Constructores

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de Point.

Sobrecargas

Point(Code)Inicializa una nueva instancia de Linecon un código.
Point(IEnumerable<Code>)Inicializa una nueva instancia de Linecon múltiples códigos.

Point(Code)

Inicializa una nueva instancia de Pointcon un código.

public Point(Code code);

Parámetros

code Code
Código a asignar al nuevo Point.

Ejemplos

El siguiente ejemplo instancia un nuevo Point y le asigna el código 020400.

var punto = new Point(new Code("020400"));

Point(IEnumerable<Code>)

Inicializa una nueva instancia de Point con múltiples códigos.

public Point(IEnumerable<Code> codigos);

Parámetros

codes IEnumerable<Code>
Códigos a asignar al nuevo Point.

Ejemplos

El siguiente ejemplo instancia un nuevo Pointy le asigna los códigos 020400 y ABCDE.

var punto = new Point(new[]
{
    new Code("020400"),
    new Code("ABCDE")
};

Propiedades

Coordinate

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve o asigna las coordenadas de inserción del Point.

public new Point3D Coordinate { get; }

Valor de la propiedad

Point3D

Coordenadas de inserción del Point.

Rotation

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve o asigna la rotación (en radianes) del Point.

public new Point3D Coordinate { get; set; }

Valor de la propiedad

Point3D

Coordenadas de inserción del Point.

Métodos

Polygon

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo polígono.

public class Polygon : ReadOnlyPolygon

Herencia ObjectEntity → Polygon

Constructores

Polygon(Code)Inicializa una nueva instancia de Polygon con un código.
Polygon(IEnumerable<Code>)Inicializa una nueva instancia de Polygon con múltiples códigos.

Propiedades

Métodos estáticos

Constructores

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Inicializa una nueva instancia de Polygon.

Sobrecargas

Polygon(Code)Inicializa una nueva instancia de Linecon un código.
Polygon(IEnumerable<Code>)Inicializa una nueva instancia de Linecon múltiples códigos.

Polygon(Code)

Inicializa una nueva instancia de Polygoncon un código.

public Polygon(Code code);

Parámetros

code Code
Código a asignar al nuevo Polygon.

Ejemplos

El siguiente ejemplo instancia un nuevo Polygon y le asigna el código 020400.

var polígono = new Polygon(new Code("020400"));

Polygon(IEnumerable<Code>)

Inicializa una nueva instancia de Polygon con múltiples códigos.

public Polygon(IEnumerable<Code> codigos);

Parámetros

codes IEnumerable<Code>
Códigos a asignar al nuevo Polygon.

Ejemplos

El siguiente ejemplo instancia un nuevo Polygony le asigna los códigos 020400 y ABCDE.

var polígono = new Polygon(new[]
{
    new Code("020400"),
    new Code("ABCDE")
};

Propiedades

Holes

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve la lista de huecos del Polygon.

 public new IList<Line> Holes { get; }

Valor de la propiedad

IList<Line>

Lista de huecos del Polygon.

Points

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve la lista de vértices del límite exterior del Polygon.

public new IList<Point3D> Points { get; }

Valor de la propiedad

IList<Point3D>

Lista de vértices (Point3D.

Métodos estáticos

JoinPolygons

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el Polygon.

public static Polygon JoinPolygons(Entity a, Entity b);

Parámetros

a Entity
Primera geometría para unir.

b Entity
Segunda geometría para unir.

Devuelve

Polygon
Polígono resultante de la unión.

ReadOnlyComplex

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo Complejo (que es una geometría compuesta por una colección de geometrías) de solo lectura.

public class ReadOnlyComplex : Entity

Herencia ObjectEntity → ReadOnlyComplex

Tipos derivados: Complex

Propiedades

Métodos

Clone()Devuelve una nueva instancia de Complex de manera que no es de solo lectura.
ToStringConvierte este ReadOnlyComplex en una cadena legible para los humanos.

Propiedades

Entities

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve un IEnumerablecon todas las geometrías que forman parte del ReadOnlyComplex.

public IEnumerable<Entity> Entities { get; }

Valor de la propiedad

IEnumerable<Entity>

Enumeración con las geometrías que pertenecen al ReadOnlyComplex.

Métodos

Clone

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve una nueva instancia de Complex de manera que no es de solo lectura.

public new Complex Clone();‌

Devuelve

Complex
Nueva geometría clonada.

ReadOnlyLine

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo línea (que en realidad es una polilínea) de solo lectura.

public class ReadOnlyLine : Entity, ICloseable, ISnapable, IClippable, ITrimable

Herencia ObjectEntity → ReadOnlyLine

Tipos derivados: Line

Implementa: ICloseable

Propiedades

Area Devuelve el área del ReadOnlyLine.
Perimeter3D Devuelve el perímetro 3D del ReadOnlyLine.
Perimeter Devuelve el perímetro en el plano X, Y del ReadOnlyLine.
InteriorPoint

Calcula un punto interior en el ReadOnlyLine.

(Heredado de ICloseable)

ClosedXYZ

Indica si el primer y último vértices del ReadOnlyLine coinciden en X, Y, Z.

(Heredado de ICloseable)

Closed

Indica si el primer y último vértices del ReadOnlyLine coinciden en X, Y.

(Heredado de ICloseable)

LastSegment Devuelve un Segment referenciando al último segmento del ReadOnlyLine.
FirstSegment Devuelve un Segment referenciando al primer segmento del ReadOnlyLine.
LastVertex Devuelve un Point3D con las coordenadas del último vértice del ReadOnlyLine.
FirstVertex Devuelve un Point3D con las coordenadas del primer vértice del ReadOnlyLine.
Points Devuelve un IReadOnlyList con los vértices del ReadOnlyLine.

Métodos

AnalyzePointPosition(Point3D)

Devuelve un PointPosition especificando la posición relativa de un determinado punto con el ReadOnlyLine.

(Heredado de ICloseable)

Clip(ReadOnlyLine)

Devuelve un conjunto de geometrías que son el resultado de recortar el ReadOnlyLine por el límite especificado.

(Heredado de IClippable)

Clone() Devuelve una nueva instancia de Line idéntica a la actual pero que no está asignada a ningún IDrawingFile de manera que no es de solo lectura.
Distance(Point3D)

Devuelve un vector cuyo módulo es la distancia al punto más cercano a la geometría.

(Heredado de ISnapable)

NearestSegment(Point3D, out Point3D, out int)

Indica el segmento más cercano y calcula la proyección a dicho segmento además de devolver la distancia a dicho punto.

(Heredado de ISnapable)

NearestVertex(Point3D, out Point3D, out int)

Indica el vértice más cercano, así como su índice y distancia.

(Heredado de ISnapable)

ToString()

Convierte este ReadOnlyLine en una cadena legible para los humanos.

(Heredado de Object)

Trim(ReadOnlyLine, bool)

Indica el vértice más cercano, así como su índice y distancia.

(Heredado de ITrimable)

Propiedades

Area

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el área del ReadOnlyLine.

public double Area { get; }

Valor de la propiedad

Double

Área de la línea.

Observaciones

El sentido en el que está digitalizada la línea influye en el signo del área devuelto por esta propiedad. Si la línea está digitalizada en sentido horario el signo será positivo, y si está digitalizada en sentido antihorario, el signo será negativo.

FirstSegment

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve un Segmentreferenciando al primer segmento del ReadOnlyLine.

public Segment FirstSegment { get; }

Valor de la propiedad

Segment

Primer segmento de la línea.

FirstVertex

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve las coordenadas del primer vértice del ReadOnlyLine.

public Point3D FirstVertex { get; }

Valor de la propiedad

Point3D

Primer vértice de la línea.

LastSegment

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve un Segmentreferenciando al último segmento del ReadOnlyLine.

public Segment LastVertex { get; }

Valor de la propiedad

Segment

Último segmento de la línea.

LastVertex

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve las coordenadas del último vértice del ReadOnlyLine.

public Point3D LastVertex { get; }

Valor de la propiedad

Point3D

Último vértice de la línea.

Perimeter

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el perímetro en el plano X, Y del ReadOnlyLine.

public double Perimeter { get; }

Valor de la propiedad

Double

Perímetro de la línea en el plano X, Y.

Perimeter3D

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el perímetro en el espacio del ReadOnlyLine.

public double Perimeter3D { get; }

Valor de la propiedad

Double

Perímetro de la línea en el espacio.

Points

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve un IReadOnlyListcon los vértices del ReadOnlyLine.

public IReadOnlyList<Point3D> Points { get; }

Valor de la propiedad

IReadOnlyList<Point3D>

Lista de vértices de la línea.

Métodos

Clone

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve una nueva instancia de Line de manera que no es de solo lectura.

public new Line Clone();‌

Devuelve

Line
Nueva geometría clonada.

ReadOnlyPoint

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo punto de solo lectura.

public class ReadOnlyPoint : Entity, ISnapable

Herencia ObjectEntity → ReadOnlyPoint

Tipos derivados: Point

Implementa: ISnapable

Propiedades

Métodos

Clone() Devuelve una nueva instancia de Point idéntica a la actual pero que no está asignada a ningún IDrawingFile de manera que no es de solo lectura.
Distance(Point3D)

Devuelve un vector cuyo módulo es la distancia al punto más cercano a la geometría.

(Heredado de ISnapable)

NearestSegment(Point3D, out Point3D, out int)

Indica el segmento más cercano y calcula la proyección a dicho segmento además de devolver la distancia a dicho punto.

(Heredado de ISnapable)

NearestVertex(Point3D, out Point3D, out int)

Indica el vértice más cercano así como su índice y distancia.

(Heredado de ISnapable)

Propiedades

Coordinate

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve las coordenadas de inserción del ReadOnlyPoint.

public Point3D Coordinate { get; }

Valor de la propiedad

Point3D

Coordenadas de inserción del ReadOnlyPoint.

Rotation

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el ángulo de rotación (en radianes) del ReadOnlyPoint.

public double Rotation { get; }

Valor de la propiedad

Double

Ángulo de rotación en radianes del ReadOnlyPoint.

Métodos

Clone

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG​‌

Devuelve una nueva instancia de Point de manera que no es de solo lectura.

public new Point Clone();‌

Devuelve

Point
Nueva geometría clonada.

ReadOnlyPolygon

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Esta clase implementa una geometría de tipo polígono de solo lectura.

public class ReadOnlyPolygon : Entity, ISnapable, IClippable, ITrimable

Herencia ObjectEntity → ReadOnlyPolygon

Tipos derivados: Polygon

Implementa: ICloseable

Propiedades

Area Devuelve el área del ReadOnlyPolygon.
Closed

Indica si el primer y último vértices del ReadOnlyPolygon coinciden en X, Y.

(Heredado de ICloseable)

ClosedXYZ

Indica si el primer y último vértices del ReadOnlyPolygon coinciden en X, Y, Z.

(Heredado de ICloseable)

Holes Devuelve una IReadOnlyList<T> con los huecos del ReadOnlyPolygon.
Points Devuelve un IReadOnlyList<T> con los vértices del límite exterior del ReadOnlyPolygon.
InteriorPoint

Calcula un punto interior en el ReadOnlyPolygon.

(Heredado de ICloseable)

Métodos

Clone() Devuelve una nueva instancia de Polygon idéntica a la actual pero que no está asignada a ningún IDrawingFile de manera que no es de solo lectura.
AnalyzePointPosition(Point3D)

Devuelve un PointPosition especificando la posición relativa de un determinado punto con el ReadOnlyPolygon.

(Heredado de ICloseable)

Clip(ReadOnlyLine)

Devuelve un conjunto de geometrías que son el resultado de recortar el ReadOnlyPolygon por el límite especificado.

(Heredado de IClippable)

Distance(Point3D)

Devuelve un vector cuyo módulo es la distancia al punto más cercano al ReadOnlyPolygon.

(Heredado de ISnapable)

NearestSegment(Point3D, out Point3D, out int)

Indica el segmento más cercano y calcula la proyección a dicho segmento además de devolver la distancia a dicho punto.

(Heredado de ISnapable)

NearestVertex(Point3D, out Point3D, out int)

Indica el vértice más cercano, así como su índice y distancia.

(Heredado de ISnapable)

ToString()

Convierte este ReadOnlyPolygon en una cadena legible para los humanos.

(Heredado de Object)

Trim(ReadOnlyLine, bool)

Indica el vértice más cercano, así como su índice y distancia.

(Heredado de ITrimable)

Propiedades

Area

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve el área del ReadOnlyPolygon.

public double Area { get; }

Valor de la propiedad

Double

Área del polígono.

Observaciones

Al área del polígono se le descuentan automáticamente las áreas de los distintos huecos (Holes que tenga el polígono.

Holes

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG

Devuelve una lista de solo lectura con los huecos del ReadOnlyPolygon.

public IReadOnlyList<ReadOnlyLine> Holes { get; }

Valor de la propiedad

IReadOnlyList<ReadOnlyLine>

Huecos del polígono.

Observaciones

Un polígono puede tener 0 o más huecos. Los son líneas cerradas que tienen la particularidad de que no se salen del polígono principal.

Points

Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: