Visor DXF
Si solo necesita ver su DXF, haga clic aquí.
Este paquete proporciona un componente DXF 2D Viewer escrito en JavaScript. Hace que los dibujos usen WebGL (a través de tres.js biblioteca). Fue cuidadosamente elaborado con el rendimiento en mente, destinado a dibujar enormes archivos del mundo real sin problemas de rendimiento.
El ejemplo de uso está disponible aquí: https://github.com/vagran/dxf-viewer-example-src
Demostración implementada: https://vagran.github.io/dxf-viewer-example/
Instalar
Características
- La obtención de archivos, el análisis y la preparación para la representación se separan de tal manera que se puede descargar fácilmente al trabajador web utilizando ayudantes proporcionados. Por lo tanto, la parte de procesamiento más pesado no afecta la capacidad de respuesta de la interfaz de usuario. El ejemplo anterior demuestra esta técnica.
- Geometry Batching: se crea un número mínimo de lotes de representación durante el procesamiento de archivos, minimizando así el número total de llamadas requeridas.
- Representación Instanced: las características que se representan varias veces con diferentes transformaciones (por ejemplo, instancias de bloque DXF) se representan mediante una llamada de dibujo único utilizando la función WebGL Instanced.
- Soporte de múltiples fuentes. La lista de fuentes se puede especificar para la representación de texto. Se admiten archivos TTF sin procesar. Las fuentes están cargadas de perezosos, una vez que se encuentra un personaje que se encuentra qué glifo aún no está disponible a través de fuentes ya cargadas, la siguiente fuente se obtiene y se verifica para el glifo necesario.
- Capas: se tienen en cuenta las capas al crear lotes de representación para que puedan ocultarse fácilmente/mostrarse.
Características incompletas
Todavía hay muchas características incompletas. Intentaré implementar algunos de ellos cuando tenga tiempo. La razón más importante para la implementación faltante es la falta de archivos de muestra correspondientes.
- Transmitir el análisis para el archivo de entrada. Actualmente, depender principalmente del paquete DXF-Parser que no se transmite y, por lo tanto, amortigua todo el archivo antes de analizar. Esto evita que admite un archivo DXF grande (arriba Gigabyte) debido al límite del tamaño de la cadena en el motor JS (también haciendo desechos de memoria innecesaria para el búfer).
- Estilo de texto. Actualmente, la representación de texto está utilizando solo las fuentes especificadas en el orden especificado. Se ignora el estilo DXF y los atributos de fuente. Los glifos de texto siempre se confilan.
- Soporte de formato avanzado para mtext (fuentes, coloración, apilamiento).
- Patrones de línea: todas las líneas se representan en estilo continuo por ahora. Voy a utilizar la textura 1-D generada en la etapa de preparación, las coordenadas de textura (que deberían contabilizar el indicador de continuidad del patrón en los atributos de vértices DXF) y un sombreador dedicado para implementar esta función.
- Patrones de línea con formas (por ejemplo, con círculos).
- Líneas anchas. Actualmente, todas las líneas se representan como líneas delgadas. No se implementa el ancho físico.
- Líneas de ancho variable (es decir, con el ancho de inicio y extremo especificado).
- Polilina suavizada (vértices de adición de ajuste de curva/spline-ajuste).
- Algunas características en la implementación de la eclosión: estilo de eclosión exterior, relleno sólido/gradiente, soporte de mpolygon, líneas dobles, límites definidos por entidades externas.
- Bloquear instanciando en una cuadrícula. Los atributos de la cuadrícula se ignoran ahora.
- Características y estilos específicos de dimensiones (varios bloques de punta de flecha predefinidos, ajuste de posicionamiento de texto, límites y tolerancias). Tipos de dimensiones distintos de los lineales.
- Líder
- Soporte de codificación de archivos no UTF-8. Actualmente, dichos archivos se muestran incorrectamente. Se ignora el parámetro
$DWGCODEPAGE
. - Soporte de OCS completo. Actualmente, se supone que la dirección de extrusión de entidad es +Z o -Z (que se usa comúnmente para las características que se reflejan en CAD). Las direcciones arbitrarias no se procesan correctamente.
- Espacio en papel, diseños (sábanas), ventanas gráficas.
- Muchas características DXF menos utilizadas.

Que contribuye
Consulte las pautas de contribución para obtener detalles sobre cómo hacer solicitudes de extracción (PR). El proyecto también requiere varios archivos de ejemplo para fines de prueba. Si encuentra algún problema con la representación DXF, sería muy apreciado si pudiera proporcionar un archivo de ejemplo que demuestre el problema al conectarlo a un problema creado. Crear ejemplos mínimos en el software CAD también puede ser muy útil. Además, crear ejemplos en varios software CAD patentado al que no tengo acceso sería muy valioso. Dado que el nivel de entrada para comenzar a codificar en este proyecto es bastante alto, a menudo es más útil recibir un informe de problemas detallado con archivos de muestra en lugar de una solicitud de extracción.
Licencia
Este proyecto tiene licencia bajo los términos de la Licencia Pública de Mozilla 2.0.
Donaciones
¿Quieres agradecer al mantenedor del proyecto? Aquí está el enlace: