Editar

Aplicaciones de consola

Programas de Python normales, que se ejecutan en un intérprete de Python fuera de Digi3D.AI (el que incluye el propio programa o uno tuyo de 3.12). Sirven para leer, procesar y crear archivos de dibujo (convertir de un formato a otro, extraer información, generar informes, hacer controles por lotes…) sin necesidad de abrir el programa.

Digi3D.AI trae su propio intérprete de Python 3.12 en la carpeta de instalación, con digi21 ya disponible. Consulta Intérprete incluido, pip y entornos virtuales.

Usan dos paquetes:

Paquete Para qué sirve
digi21.base Tipos del núcleo: códigos, geometrías, tablas de códigos y cámara. No abre ni crea archivos.
digi21.io.<formato> Lectura (open) y escritura (create) de archivos de dibujo. Un módulo por formato (bin, bindouble, asciidigi, dgn, dwg, dxf, geojson, kml, svg, wkt, geopackage, shp, pdf, geomedia, postgis, ifc, vec), cada uno con su página y sus ejemplos en la referencia de digi21.io.

digi21.io se apoya en digi21.base: al abrir un archivo se obtienen geometrías que son instancias de los tipos de digi21.base, y al crear uno se escriben geometrías de esos tipos.

En esta forma de programación no existe el objeto digi3d: ese solo está disponible dentro de Digi3D.AI, en el panel de Python y en los controles de calidad. Aquí trabajas con archivos, no con el dibujo activo del programa.

Un vistazo rápido

import digi21.io.bindouble as bind

drawing = bind.open("ciudad.bind")
for geometry in drawing:
    print(type(geometry).__name__, len(geometry), "vértices")
import digi21.io.bindouble as bind
import digi21.io.dxf as dxf

origen = bind.open("ciudad.bind")
with dxf.create("ciudad.dxf", crs=origen.crs) as writer:
    for geometry in origen:
        writer.add(geometry)
from digi21.base import Line, Polygon

linea = Line(["CARR"], [(0, 0, 0), (10, 0, 0), (10, 10, 0)])
print(linea.perimeter_2d)

if linea.crosses(otra_linea):
    print("Las líneas se cruzan")

Propiedad de la memoria

Una geometría creada desde Python la libera Python. En cuanto se añade a un contenedor (como hueco de un Polygon o hijo de un Complex), la propiedad pasa al contenedor, que será quien la libere. Las geometrías devueltas al iterar un archivo son propiedad del archivo: trátalas como de solo lectura durante el recorrido.

Enlaces