master
Accuracy / completeness - docViews: split parsed scene into model space / paper space / free-standing blocks (geometry hidden in uninserted blocks no longer shows as a blank canvas); auto-select the first block view when model space is empty - viewer: view switcher panel listing every detected view with expanded entity counts; paper space is now parsed (includePaperSpace) and kept apart - SHX: missing .shx references are surfaced with an import control (addReferenceFile), linetypes/text redraw afterwards - unsupported/proxy entities: markers on canvas + diagnostics block showing proxy / wipeout counts and missing SHX names Speed - the loading overlay used an infinite CSS spinner + backdrop blur while the worker parsed; on software rendering that starved the parse thread (TELECOM 18MB: 71s -> 30s wall clock, normalize 33s -> 14s). Replaced with a determinate progress bar fed by loader progress events - transferInputBuffer for worker loads, maxInsertDepth 32, longer worker timeout Tooling - scripts/probe-dwg.mjs / probe-app.mjs: headless render + end-to-end probes (entity/layer/block/layout/proxy stats, timings, screenshots) - tools/render-probe.html, scripts/profile-worker.mjs - version 0.6.0 (versionCode 8)
EasyView / 万能看图
手机 / 平板上的本地 DWG、PDF、EPUB、FB2、XPS/OXPS、CBZ 和图片浏览器。
- DWG 渲染:
@flyfish-dev/cad-viewer(AGPL-3.0,GitHub:flyfish-dev/cad-viewer),WebGL 常驻渲染,支持块展开、图层、文字、填充、线型、样条、标注和常用 DWG 2006–2026 版本。 - 文档渲染:MuPDF.js。
- 前端:Vite + TypeScript;DWG 解析在 Web Worker 中执行,运行时 WASM 位于
public/wasm/。 - Android:Kotlin WebView 壳,离线内置全部前端资源,支持文件关联、返回键和 PNG 保存。
- 代理对象只有在文件中包含代理图形数据时才会显示;没有任何图形数据的字典代理不可见。
开发
npm install
npm run dev
npm run typecheck
npm run build
构建 Android APK
需要 JDK 17+/21、Android SDK(platform 34、build-tools)以及带 Kotlin 编译器的 Gradle 发行版。
本工作区已把这些工具链放在 ../ven/ 下,脚本会自动探测:
| 工具 | 位置 |
|---|---|
| JDK | ven/jdk21(或 JAVA_HOME) |
| Android SDK | ven/android-sdk(或 ANDROID_HOME) |
| Gradle + Kotlin 编译器的 lib | ven/gradle-dist/gradle-8.9(或 GRADLE_HOME) |
签名信息不写入仓库,首次构建会自动生成 android/keystore/easyview.jks。构建前设置口令:
source ../ven/node-env.sh # Node 工具链(可选)
export EASYVIEW_KEYSTORE_PASS=your-keystore-password
export EASYVIEW_KEY_PASS=your-key-password # 省略则与上面相同
npm run apk
产物:EasyView-<version>.apk(仓库根目录),android/build/ 为中间产物。
android/keystore/、测试 DWG、APK、dist/、node_modules/ 均已加入 .gitignore。图纸不会上传,解析完全在本地进行。
许可
本项目以 AGPL-3.0-or-later 发布。第三方组件许可见应用内“关于 → 开源组件与许可”。
Languages
TypeScript
54.2%
CSS
18.4%
JavaScript
15.9%
Kotlin
6.1%
HTML
5.1%
Other
0.3%