Configuración avanzada

Cuadro de diálogo Configuración avanzada

Este cuadro de diálogo ejecuta sentencias SQL sobre el archivo de configuración Digi3DNET.db, que guarda la configuración común a todos los usuarios del equipo. Sirve para aplicar de una vez un conjunto de cambios de configuración preparado en un guion.

La página de cada opción de los cuadros de diálogo Configuración, Configurar proyectos y Configuración de dispositivos de entrada indica, en la sección Dónde se almacena, dónde se guarda la opción y las sentencias SQL que la cambian.

Selecciona la opción del menú Herramientas/Configuración avanzada.... La opción solo aparece en el menú que muestra Digi3D.AI cuando no hay ninguna ventana de dibujo ni fotogramétrica abierta.

  1. Escribe las sentencias SQL en el campo de texto, o pulsa Cargar... y selecciona un archivo .sql. El cuadro de diálogo Abrir se abre en la última carpeta desde la que cargaste un archivo. El archivo se lee en UTF-8 y su contenido sustituye al que haya en el campo.
  2. Pulsa Enviar para ejecutar las sentencias.
  3. Pulsa Salir para cerrar el cuadro de diálogo.

Al pulsar Enviar, Digi3D.AI procesa el campo de texto línea a línea:

  • Cada línea se ejecuta por separado. Una sentencia no puede ocupar varias líneas. Una línea puede contener varias sentencias separadas por ;.
  • Las líneas que empiezan por -- son comentarios y no se ejecutan.
  • Las líneas vacías se omiten.
  • Solo se procesan las 256 primeras líneas no vacías. Las líneas de comentario cuentan para ese límite. Las líneas siguientes no se ejecutan y Digi3D.AI no avisa.
  • Si una sentencia falla, Digi3D.AI muestra el mensaje de error de SQLite y continúa con la línea siguiente. Las sentencias de la misma línea que van detrás de la que ha fallado no se ejecutan. Las sentencias de las líneas anteriores ya están aplicadas.
  • Si no falla ninguna sentencia, Digi3D.AI no muestra ningún mensaje.

Estructura de la base de datos

Tabla Contenido
Keys Una fila por carpeta de configuración. Id es su identificador y Path su ruta, por ejemplo App\Configuration o DigiNG\Configuration.
Ints Valores enteros. Key es el Id de la carpeta, Value el nombre del valor y Data el número.
Doubles Valores reales, con las mismas columnas que Ints.
Texts Valores de texto, con las mismas columnas que Ints.
Blobs Valores binarios, con las mismas columnas que Ints.

Ejemplo: esta línea asigna 1 al valor entero FullMDI3D de la carpeta App\Configuration:

UPDATE Ints SET Data = 1 WHERE Value = 'FullMDI3D' AND Key = (SELECT Id FROM Keys WHERE Path = 'App\Configuration');

Un valor que Digi3D.AI no ha leído nunca no tiene fila en su tabla. En ese caso UPDATE no modifica nada y hay que añadir la fila con INSERT.

La sección Dónde se almacena de la página de cada opción indica la carpeta, la tabla y el nombre de su valor, su valor por defecto y las tres sentencias que lo asignan. Si la opción se guarda en el registro de Windows y no en esta base de datos, la sección lo indica. La página Valores del archivo de configuración enumera los valores que no tienen página de opción, como los que solo se pueden cambiar por SQL.

Cómo escribir un guion

  • Copia las rutas de la columna Path respetando mayúsculas y minúsculas. Con =, SQLite distingue mayúsculas y minúsculas; con LIKE, no. Una misma carpeta puede aparecer con dos grafías: el valor Order del formato DGN está en DigiNG\IO\Digi21.Io.DGN y las opciones del importador DGN están en DigiNG\IO\Digi21.Io.Dgn.
  • Escribe las rutas con una sola barra invertida. SQLite no usa \ como carácter de escape.
  • Para asignar un valor exista o no su fila, usa estas tres líneas. La primera crea la carpeta si no existe, la segunda borra las filas que tenga el valor y la tercera añade una fila con el valor nuevo. Si un valor tiene varias filas, Digi3D.AI solo usa una de ellas, así que no basta con añadir otra:
INSERT OR IGNORE INTO Keys (Path) VALUES ('DigiNG\Configuration');
DELETE FROM Ints WHERE Value = 'NombreDelValor' AND Key = (SELECT Id FROM Keys WHERE Path = 'DigiNG\Configuration');
INSERT INTO Ints (Key, Value, Data) SELECT Id, 'NombreDelValor', 1 FROM Keys WHERE Path = 'DigiNG\Configuration';
  • Para devolver un valor a su estado inicial, borra su fila. La siguiente vez que Digi3D.AI lo lee, toma el valor que escribió el instalador en HKEY_LOCAL_MACHINE o, si el instalador no escribió ninguno, el valor por defecto del programa.
  • El cuadro de diálogo no muestra el resultado de las consultas SELECT. Para consultar la base de datos, ábrela con DB Browser for SQLite.
  • Guarda los archivos .sql en UTF-8 sin BOM.
  • Después de ejecutar un guion, cierra Digi3D.AI y vuelve a abrirlo. Muchos valores solo se leen al arrancar el programa. Además, Digi3D.AI lee las opciones de los importadores al arrancar, y al pulsar Aceptar en el cuadro de diálogo Configuración vuelve a guardarlas con el valor leído: sin reiniciar, ese cuadro sustituiría los valores que acaba de escribir el guion.

Más ejemplos

Copia cada guion en el campo de texto y pulsa Enviar.

Elegir el formato de archivo de dibujo por defecto

Digi3D.AI ordena los formatos de archivo de dibujo de menor a mayor según el valor entero Order de la carpeta DigiNG\IO\<formato>. El primer formato de la lista es el que proponen los cuadros de diálogo de guardar. Este guion asigna 1 a todos los formatos y 0 al formato DGN:

-- Este guion configura Digi3D.AI para que el formato de archivo por defecto sea archivos DGN
UPDATE Ints SET Data=1 WHERE Value='Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\%');
UPDATE Ints SET Data=0 WHERE Value='Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\Digi21.Io.Dgn');

Para elegir otro formato, cambia el nombre de la carpeta de la última línea: Digi21.Io.Dwg (DWG), Digi21.Io.Bin (binario de precisión simple, .bin), Digi21.Io.BinDouble (binario de doble precisión, .bind) o Digi21.Io.Shp (Shapefile).

La última línea usa Key IN (...) y no Key = (...): LIKE encuentra las dos carpetas del formato DGN, Digi21.Io.DGN y Digi21.Io.Dgn, y con = SQLite solo usaría la primera, que puede no ser la que tiene el valor Order.

Los formatos que tienen el mismo valor de Order no tienen un orden fijo entre ellos. Para fijar también el segundo y el tercer formato, usa el guion Fijar el orden de varios formatos.

Fijar el orden de varios formatos

Este guion pone DGN en primer lugar, Shapefile en segundo y DWG en tercero. El resto de formatos va detrás, sin un orden fijo entre ellos:

UPDATE Ints SET Data = 3 WHERE Value = 'Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\%');
UPDATE Ints SET Data = 0 WHERE Value = 'Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\Digi21.Io.Dgn');
UPDATE Ints SET Data = 1 WHERE Value = 'Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\Digi21.Io.Shp');
UPDATE Ints SET Data = 2 WHERE Value = 'Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\Digi21.Io.Dwg');

Recuperar el orden de formatos del instalador

Este guion borra el valor Order de todos los formatos. Al arrancar de nuevo, Digi3D.AI lee el orden que escribió el instalador, en el que el binario de doble precisión es el formato por defecto:

DELETE FROM Ints WHERE Value = 'Order' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\%');

No mostrar el cuadro de parámetros de importación y exportación

Cuando una orden pide un archivo de dibujo, como EXPORTAR, INS o BLOQUE, Digi3D.AI muestra después de elegir el archivo un cuadro de diálogo con los parámetros de importación o exportación del formato. Con este guion, Digi3D.AI no muestra ese cuadro y usa los parámetros memorizados para el formato:

INSERT OR IGNORE INTO Keys (Path) VALUES ('DigiNG\Configuration');
DELETE FROM Ints WHERE Value = 'UtilizarParametrosImportacionExportacionPreconfigurados' AND Key = (SELECT Id FROM Keys WHERE Path = 'DigiNG\Configuration');
INSERT INTO Ints (Key, Value, Data) SELECT Id, 'UtilizarParametrosImportacionExportacionPreconfigurados', 1 FROM Keys WHERE Path = 'DigiNG\Configuration';

Para volver a mostrar el cuadro de diálogo, ejecuta el mismo guion con 0 en lugar de 1 en la última línea.

Añadir los códigos desconocidos a la tabla de códigos en todos los formatos

Al abrir un archivo, los importadores asignan a cada entidad un código de la tabla de códigos. Si no encuentran un código que corresponda a la entidad, crean uno. Este guion hace que todos los importadores que tienen la opción Añadir códigos desconocidos añadan esos códigos nuevos a la tabla de códigos activa: binario de precisión simple, binario de doble precisión, DGN, DWG, FileGDB, GeoMedia, GeoPackage, KML, PostGIS, Shapefile y VEC.

UPDATE Ints SET Data = 1 WHERE Value = 'AñadirCódigosDesconocidos' AND Key IN (SELECT Id FROM Keys WHERE Path LIKE 'DigiNG\IO\%');

Digi3D.AI crea la fila de este valor al arrancar, para cada importador activo, así que basta con UPDATE. Para desactivar la opción en todos los formatos, ejecuta la misma línea con Data = 0.

Mostrar una ventana de progreso al guardar archivos DGN

Con este guion, Digi3D.AI muestra un cuadro de diálogo modal mientras escribe un archivo DGN. Es el mismo valor que escribe la opción Mostrar modal al guardar del cuadro de diálogo Configuración:

INSERT OR IGNORE INTO Keys (Path) VALUES ('DigiNG\IO\Digi21.Io.Dgn');
DELETE FROM Ints WHERE Value = 'MostrarModalAlGuardar' AND Key = (SELECT Id FROM Keys WHERE Path = 'DigiNG\IO\Digi21.Io.Dgn');
INSERT INTO Ints (Key, Value, Data) SELECT Id, 'MostrarModalAlGuardar', 1 FROM Keys WHERE Path = 'DigiNG\IO\Digi21.Io.Dgn';

Cargar como huecos los anillos exteriores adicionales de los polígonos 3D de un shapefile

Un registro de un shapefile de polígonos 3D (PolygonZ) puede tener varios anillos exteriores. Digi3D.AI lo carga como una entidad compleja con un polígono por cada anillo exterior. Con este guion, lo carga como un único polígono: el primer anillo exterior es el contorno y los demás anillos exteriores pasan a ser huecos de ese polígono. Los huecos de los anillos exteriores adicionales se descartan.

Sirve para los archivos que guardan los huecos con la orientación de un anillo exterior. No afecta a los shapefiles de polígonos 2D ni a los de polígonos con medida (PolygonM).

INSERT OR IGNORE INTO Keys (Path) VALUES ('DigiNG\IO\Digi21.Io.Shp');
DELETE FROM Ints WHERE Value = 'ConsiderarMultiPoligonosComoPoligonos' AND Key = (SELECT Id FROM Keys WHERE Path = 'DigiNG\IO\Digi21.Io.Shp');
INSERT INTO Ints (Key, Value, Data) SELECT Id, 'ConsiderarMultiPoligonosComoPoligonos', 1 FROM Keys WHERE Path = 'DigiNG\IO\Digi21.Io.Shp';

Desactivar formatos que no usas

Digi3D.AI carga al arrancar los formatos de archivo de dibujo cuyo valor Activated vale 1. Este guion desactiva los formatos PDF y SVG. Esos formatos desaparecen de los cuadros de diálogo de abrir y guardar, y Digi3D.AI no puede abrir ni exportar archivos en ellos:

UPDATE Ints SET Data = 0 WHERE Value = 'Activated' AND Key IN (SELECT Id FROM Keys WHERE Path IN ('DigiNG\IO\Digi21.Io.Pdf', 'DigiNG\IO\Digi21.Io.Svg'));

No desactives el formato de los archivos con los que trabajas ni el de sus archivos de referencia. Para volver a activar un formato, ejecuta la misma línea con Data = 1.

Observaciones

  • Los cambios afectan a todos los usuarios del equipo. La configuración propia de cada usuario se guarda en el registro de Windows, en HKEY_CURRENT_USER. Las sentencias SQL no la modifican. El cuadro de diálogo solo guarda ahí la última carpeta usada con Cargar....
  • El cuadro de diálogo no deshace los cambios. Antes de ejecutar un guion, haz una copia del archivo C:\ProgramData\Digi3D.NET\Digi3DNET.db.
  • Si un cambio no tiene efecto, cierra Digi3D.AI y vuelve a abrirlo.