# dxf-view **Repository Path**: yzdel2000/dxf-view ## Basic Information - **Project Name**: dxf-view - **Description**: No description available - **Primary Language**: TypeScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-04 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DXF 在线预览(dxf-view) 基于 **Vue 3 + TypeScript + Vite** 的浏览器端 DXF 文件预览工具,借助 [`three-dxf-viewer`](https://www.npmjs.com/package/three-dxf-viewer) 与 [three.js](https://threejs.org/) 在 WebGL 中渲染 AutoCAD 的 DXF 图形文件,无需安装任何 CAD 软件,浏览器打开即可查看。 应用启动后提供 **2D 正交预览**,适合工程图阅读。 > ℹ️ 3D 透视预览曾在早期版本提供,后因 `three-dxf-viewer` 对 3D 实体支持不足被暂时移除,仅保留 2D 模式。 ![tech](https://img.shields.io/badge/Vue-3.5-42b883) ![tech](https://img.shields.io/badge/TypeScript-6-3178c6) ![tech](https://img.shields.io/badge/Vite-8-646cff) ![tech](https://img.shields.io/badge/three.js-0.171-000000) ![tech](https://img.shields.io/badge/three--dxf--viewer-1.0.44-orange) --- ## ✨ 功能特性 - 🏠 **模式选择首页**:进入应用后从首页卡片进入 2D 预览(后续扩展更多模式时将在此并列展示)。 - 📐 **2D 正交预览**:使用 `OrthographicCamera`,禁用旋转,仅支持平移与缩放,符合工程图阅读习惯。 - 📂 **本地加载**:通过文件选择对话框加载本地 `.dxf` 文件,解析并即时渲染。 - 🔍 **自动取景**:加载完成后根据模型 XY 包围盒与画布宽高比计算 uniform frustum,含 1.4× padding,确保图形完整居中。 - 📐 **响应式画布**:通过 `ResizeObserver` 监听容器尺寸变化,保持 Y 方向可见范围不变,按新宽高比调整 X 方向 frustum。 - 🧹 **资源释放**:切换文件前清理上一份几何体和材质,避免 GPU 内存泄漏;组件卸载时统一释放 renderer、controls、canvas 节点。 - ⏳ **状态提示**:顶栏实时显示加载状态(空闲 / 解析中 / 已加载 / 失败原因)。 - 🔠 **中文字体**:内置 `FangSong_Regular.json`(仿宋体 typeface),保证 DXF 中的中文及常规字符正常显示。 --- ## 🛠️ 技术栈 | 类别 | 选型 | | ----------- | ---------------------------------------------------------- | | 框架 | Vue 3 (`