admin be34c630bb Fix blank drawings, drop parse-time animation cost, add render diagnostics
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)
2026-10-26 20:28:37 +08:00
2026-10-26 18:07:00 +08:00
2026-10-26 17:44:44 +08:00
2026-10-26 17:44:44 +08:00

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 发布。第三方组件许可见应用内“关于 → 开源组件与许可”。

S
Description
No description provided
Readme AGPL-3.0 9.6 MiB
Languages
TypeScript 54.2%
CSS 18.4%
JavaScript 15.9%
Kotlin 6.1%
HTML 5.1%
Other 0.3%