Save verified native IFC import and user validation evidence

Real IFC2X3/IFC4 import tested. Full BIM authoring/export remains out of scope; 349-second building import performance remains to optimize.
This commit is contained in:
2026-09-16 04:27:37 +08:00
parent 9a7c4f0335
commit 72152ef356
120 changed files with 3020296 additions and 114 deletions

View File

@@ -1,5 +1,22 @@
# FreeCAD Web workspace snapshot
## Latest Status: 2026-09-16
Real IFC2X3/IFC4 import is now linked into the Part WASM owner through the
import-only `IfcOpenShellNative` binding. Native parsing, browser geometry,
IFC4 property sets, error preservation and FCStd persistence were tested.
See `docs/current/user-tests-20260915/IFC-IMPORT-REPAIR-20260916.md`.
The cumulative manual results are 21/21, not a full 1452-command certification.
Full BIM authoring, IFC export and IFC4X3 remain outside this completed scope.
The building fixture took about 349 seconds; optimization is authorized but has
not yet been implemented. This snapshot preserves that next task explicitly.
Dependency source and archives are now durable under
`freecad-source/build-web/ifcopenshell-native/` locally, excluded from Git as build
dependencies. Source provenance, hashes, build script and license notices are
included. The earlier continuation notes below are historical, not current
completion status.
This snapshot preserves the working layout: `freecad-source/` contains desktop
sources and native Web adapters, `web/` the React/Three.js application, `tools/`
the build and test orchestration, and `docs/` the implementation and user-test
@@ -17,8 +34,8 @@ Reuse the supplied local dependencies and WASM artifacts for builds; this is a
source and evidence backup, not a self-contained offline binary distribution.
See `docs/current/user-tests-20260915/REMAINING-NINE-REPORT.md` for the current
acceptance boundary: eight of the former nine items passed; IFC import is still
unresolved. Current tests do not certify all 1452 command registrations.
historical acceptance boundary. The latest IFC outcome is in the 20260916 repair
report above. Current tests do not certify all 1452 command registrations.
## IFC continuation, 2026-09-15

View File

@@ -1,6 +1,6 @@
# 失败记录分类与业务对账
分类 3036/3036;待闭环 2822;已闭环 214。分类不代表修复,原始记录保留。
分类 3036/3036;待闭环 2825;已闭环 211。分类不代表修复,原始记录保留。
处理顺序:当前业务首错立即修复;共享故障优先;历史模块故障随业务推进处理;过期检查经源码与替代证据审查后归档。禁止为清零重跑无关逐 API gate。

View File

@@ -0,0 +1,83 @@
# Real IFC Native Import Build
This work does not replace the existing `ifcopenshell` declaration module with a
fake success path. A separately named `IfcOpenShellNative` import binding uses
the real IfcOpenShell parser, IFC2X3/IFC4 geometry mappings, and the supplied OCCT
7.6.3 static libraries. The complete upstream Python API, BIM authoring/export,
IFC4X3 and other schemas are not enabled by this binding.
## Reused Work
- Existing FreeCAD Part document owner, Std_Open file selection/cache, native
file-type registry, scene dispatcher and FCStd persistence.
- Local pthread OCCT, Boost 1.83, Python 3.12 and FreeCAD static libraries.
- Local IFC building fixture from the supplied Qt/Assimp source tree.
- Existing manual browser tests, structured results and screenshot folders.
The older `Web_FreeCAD_Bitbybit/src/facade/bim.ts` implements metadata/proxy
roundtrips, not a real IFC geometry backend. It was inspected but not substituted
for native parsing. No existing compatible IfcOpenShell binding was located in
the indexed local sources. The missing source was obtained from the official
repository, not recreated from scratch.
## Source and Artifacts
- Upstream: https://github.com/IfcOpenShell/IfcOpenShell
- Observed commit: `f8da61bf9249126c3ce41e7b995c68ae3ab520d9`.
- Source VERSION: 0.8.6 (downloaded from the v0.8.0 development branch).
- Download archive SHA-256: `c4e1efb7910dede9fabb5003e6599b52528220bf8309c00c196741e7933176fc`.
- Durable local source: `freecad-source/build-web/ifcopenshell-native/source`.
- Durable archives: `freecad-source/build-web/ifcopenshell-native/build`.
- Compiler/dependency/archive hashes: `freecad-source/build-web/ifcopenshell-native/provenance.json`.
- License: LGPL-3.0-or-later; license texts and attribution included in web/public.
The 238 upstream build steps completed successfully in approximately 833 seconds
with two compilation jobs. IfcParse is approximately 32 MiB, IfcGeom 6.7 MiB and
geometry_kernel_opencascade 3 MiB. Subsequent fixes relink only the existing Part
owner. RAM-backed initial source/build remains a temporary optimization; the
runtime no longer depends on those RAM paths.
```bash
FREECAD_IFC_SOURCE="$PWD/freecad-source/build-web/ifcopenshell-native/source" \
FREECAD_IFC_BUILD="$PWD/freecad-source/build-web/ifcopenshell-native/build" \
node tools/build_ifcopenshell_native.mjs
node tools/run_user_repair_checks.mjs
timeout 120s node tools/test_ifc_native_contract.mjs
FREECAD_MANUAL_IDS=FILE-02 node tools/run_user_manual_tests.mjs
```
The cached archive-only build directory is sufficient for FreeCAD linking. To
rebuild the dependency itself, the script configures that directory afresh; it
will compile source objects that are not in the durable cache. The main FreeCAD
CMake options are `FREECAD_WEB_IFCOPENSHELL_SOURCE` and
`FREECAD_WEB_IFCOPENSHELL_BUILD`. No system Python wheel is assumed compatible
with this static WebAssembly runtime.
## Implementation Boundaries
Import calls the official iterator with the OpenCascade backend and one thread.
It preserves native BRep, converts SI metres to FreeCAD millimetres, assigns IFC
GlobalId/type/STEP identity, builds spatial groups, maps property definitions
including IFC4 definition sets, and embeds the original IFC inside FCStd.
Opening/space analytical volumes remain native objects but start hidden.
Invalid geometry is repaired with OCCT ShapeFix and checked again. Conversion
errors roll back the newly created document, rather than silently omitting
failed geometry. Metadata outside the typed scalar/property-set presentation is
retained in the original attached IFC, not claimed to be editable via the full
IfcOpenShell API.
The scene avoids duplicate group meshes and uses 2 mm display tessellation for
documents with the native IfcSource object. This changes display precision only,
not stored BRep. Std_Open passes its prepared scene to the mounted view to avoid
duplicate full-building meshing.
## Verification Scope
Native building import and FCStd save passed with 147 document objects. A browser
reopen test recovered 134 Part features, 12 spatial groups and the source IFC
attachment. Official IFC4 property-set fixtures and invalid-file preservation
are separately tested. Exact final browser results and timings live in the
user-tests-20260915 timestamped runs; consult those records before declaring a
release accepted. Large furniture geometry repair still takes minutes and is a
performance limitation, not a zero-latency import path.

View File

@@ -19,6 +19,8 @@
## IFC 续接更新(2026-09-12)
2026-09-16:真实 IfcOpenShell 源码已补充至 `freecad-source/build-web/ifcopenshell-native/source`,IFC2X3/IFC4 解析和 OCCT 几何静态库位于同级 `build`。新增 `IfcOpenShellImport.cpp`,以 `IfcOpenShellNative.open` 静态绑定现有 Part 宿主,Std_Open 真实建筑导入、显示及 FCStd 保存重开已复测。下文“缺少真实导入绑定”为历史状态。当前只关闭导入链路,不宣称完整 ifcopenshell Python 作者/导出 API 接入。详见 `ifcopenshell-native-build-20260916.md` 和 `user-tests-20260915/IFC-IMPORT-REPAIR-20260916.md`,不要重复寻找或编译已有依赖。
2026-09-15 用户验收续接:原剩余九项已实际执行,8 项通过,FILE-02 中 IFC 失败。真实 IFC 样本可复用 Qt/Assimp 的 `test/models/IFC/AC14-FZK-Haus.ifc`;它不是 IfcOpenShell 运行时。当前 `BimRuntimeProbe.cpp` 的 declaration-only 后端和此前检查结论一致,不重复添加“真实包优先”分支或空注册。最终证据、修复列表及确切续接条件见 `user-tests-20260915/REMAINING-NINE-REPORT.md`。本轮已修复 Std_Open 深链接、WASM 场景网格化等待、文档撤销模式,并验证结构/链接/OBJ/DXF/STL 等真实流程。继续 IFC 时需要真实绑定位置和构建接入,不得用已通过的 OBJ、STEP 或旧版部分 IFC 解析替代。
- 此前预算阻止的四个范围已实际执行不忽略隐藏/被忽略文件的 IfcOpenShell 文件名检索:`/home/mes123456/working/FreeCADWorking`、`/home/mes123456/working/Web_FreeCAD_Bitbybit`、当前 `freecad-source/build-web`、`web/public/kernel`。没有匹配 `*ifcopenshell*` 或 `*IfcOpenShell*` 文件。该结果只限定这些路径和文件名,不代表全机不存在兼容绑定。

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,101 @@
# IFC 原生导入修复与最终复测
日期:2026-09-16(报告中的批次文件名使用 UTC)。
## 结论
此前缺少真实 IFC 解析/几何绑定导致的 FILE-02 导入失败已解决。使用真实
IfcOpenShell 0.8.6 的 IfcParse、IfcGeom 和 OpenCASCADE 后端,静态链接进现有
Part WASM 宿主,以 `IfcOpenShellNative.open` 接入现有 Std_Open 文件流程。
没有将 `ifcopenshell` 声明替身改名冒充真实 API,也没有引入 CGAL、Assimp 或
Three.js 作为替代几何算法。
**解决范围是 IFC2X3/IFC4 原生导入与 FCStd 保存重开,不是完整 IfcOpenShell
Python 包、BIM 参数化编辑、IFC 导出或 IFC4X3。原 BIM 声明替身及其未接通的
完整 API 仍不应宣称完成。**
## 最终浏览器证据
[完整多格式执行记录](manual-2026-09-15T16-41-07-796Z/report.md)
[IFC 建筑视口截图](manual-2026-09-15T16-41-07-796Z/FILE-02-07-viewport.png)
[IFC 页面及文件结果截图](manual-2026-09-15T16-41-07-796Z/FILE-02-07.png)
| 项目 | 实测 |
|---|---|
| 样本 | AC14-FZK-Haus.ifc,本机已提供的 Qt/Assimp 测试数据 |
| 文件 SHA-256 | c8600fd63d1734d18f40fb1237533e9a3ec46c157489be7d501c166b99f21846 |
| 原生文档 | IfcImport,147 个对象 |
| 恢复错误 / 部分恢复 | 均为 false |
| 可见网格 | 110 |
| 可见三角形 | 36,716 |
| IFC 操作耗时 | 349.013 秒 |
| 完整 FILE-02 用例耗时 | 375.083 秒 |
| 多格式结果 | STEP、IGES、BREP、STL、DXF、OBJ、IFC 七步均通过 |
开洞体和空间分析体保留为原生对象但默认隐藏,不让开洞体重新填满墙洞。
空间分组不重复生成子对象的显示网格。IFC 初始视角为等轴测,已经保存的相机
状态仍优先。显示网格使用 2 mm 偏差,保存的原始 BRep 不因此简化。
## 持久化与属性测试
[FCStd 浏览器重开记录](manual-2026-09-15T16-24-54-253Z/report.md):恢复 134 个
Part 实体、12 个空间分组、146 个 IFC 身份属性和原始 IFC 附件。该批次使用隐藏
开洞设置前保存的文档,因此它的可见网格数与最终 IFC 导入不同。
[原生 IFC 建筑导入与 FCStd 保存](ifc-native-2026-09-15T15-50-07-990Z/summary.json)
[IFC4 属性集合与异常保护测试](ifc-contract-2026-09-15T16-41-55-308Z/summary.json):
- 官方 ColumnPSetsOfSets.ifc 的实体几何导入成功。
- 柱子包含 Pset_ColumnCommon 等属性集,IFC4 PropertySetDefinitionSet 中的
PSet_1、PSet_2 均展开保留,修复了最初错误地按普通实体读取而发生的越界。
- 无产品几何的 wall.ifc 类型库被拒绝,而不是返回空文档成功。
- 损坏 IFC 被拒绝,导入失败前后已有文档集合一致。
建筑样本没有 IfcPropertySet,因此属性映射由单独的真实 IFC4 样本验证,不能
根据建筑样本零属性集推断映射已通过。
## 修复与复用
1. 复用本机 OCCT 7.6.3、Boost 1.83、Python 3.12、FreeCAD Part 静态库和全部
Std_Open/Worker/Facade/OPFS/FCStd 流程。
2. 官方 IFC 依赖交叉编译完成 238 个步骤,使用 2 个编译任务,约 833 秒;后续
只增量重编或链接适配目标,没有重复编译现有 OCCT。
3. 新绑定保持 SI 米到 FreeCAD 毫米的转换、GlobalId/类型/STEP ID、空间关系、
属性集及源文件附件。错误回滚整个新建文档。
4. OCCT ShapeFix 修复后仍做有效性检查;不得静默省略失败几何。
5. 修复打开页面没有挂载 3D 视图的问题,并复用已返回的场景,避免第二次整栋
建筑网格化。
6. 原始超时、无效几何和 IFC4 越界失败批次均保留,未覆盖成通过。
[来源、构建方式、许可与缓存位置](../ifcopenshell-native-build-20260916.md)
依赖的真实源码和三个静态库已保存在 `freecad-source/build-web/ifcopenshell-native`,
不再仅存在于 /dev/shm。源码和构建依赖路径可通过 CMake 参数明确配置。
Web 发布目录加入了 LGPL/GPL 原文和 IfcOpenShell 归属说明。
## 仍须明确的限制
- 349 秒导入不能称为高吞吐或低延迟。家具对象 #92842、#180995 的几何修复是
已定位的主要耗时,不是模型请求等待。大型真实模型还需性能优化及容量测试。
- 只验证了本机 Chrome 软件 WebGL;不是全部浏览器、GPU 和所有 IFC 文件。
- 当前 IFC 结果保留为原生 Part 对象和空间分组,不承诺每个对象都是可参数化
Arch/BIM 对象。没有通过此绑定提供完整 IFC 作者/导出 API。
- 当前总表 21/21 是手册列出的样本与步骤累计覆盖,不是 1452 条登记命令的
全量验收,更不是自动授权上线。
- 当前工作区源码/产物已更新;本轮未再次推送 Gitea,先前快照仍是之前状态。
## 复测入口
```bash
node tools/run_user_repair_checks.mjs
timeout 120s node tools/test_ifc_native_contract.mjs
FREECAD_MANUAL_IDS=FILE-02 node tools/run_user_manual_tests.mjs
FREECAD_MANUAL_IDS=FIX-IFC-REOPEN node tools/run_user_manual_tests.mjs
node tools/summarize_user_manual_tests.mjs
```
正式构建(含 TypeScript 严格检查)和几何边界检查通过,见
[最终构建记录](repair-checks-2026-09-15T16-39-56-459Z/results.json)。

View File

@@ -1,5 +1,7 @@
# Web FreeCAD 用户测试工作区
2026-09-16 最新:[IFC 原生导入修复与复测](IFC-IMPORT-REPAIR-20260916.md)。FILE-02 的真实 IFC 导入现已通过,累计手册 21 项通过;完整 BIM 作者/IFC 导出 API 不在本次关闭范围。
最新授权修复结果见 [修复与复测记录](REPAIR-REPORT.md)。原始失败保留在旧时间戳目录,当前缺陷状态以 `defects.json` 和最新报告为准。
原剩余九项的后续结果见 [九项执行结果与 IFC 依赖缺口](REMAINING-NINE-REPORT.md):8 项通过、IFC 所在的多格式项失败,未以“已执行”冒充“已通过”。

View File

@@ -1,5 +1,7 @@
# 原剩余九项:修复、执行结果与未解决依赖
历史报告。2026-09-16 后续已接入真实 IFC 原生导入绑定并完成复测,详见 [IFC 修复记录](IFC-IMPORT-REPAIR-20260916.md)。以下保留当时的失败依据,不代表最新状态。
日期:2026-09-15。
## 结果

View File

@@ -1,14 +1,14 @@
# 用户手册测试总报告
生成时间:2026-09-15T12:58:29.845Z
生成时间:2026-09-15T16:48:28.857Z
手册 21 项:通过 20;失败 1;阻塞/覆盖不足 0;未运行 0。
手册 21 项:通过 21;失败 0;阻塞/覆盖不足 0;未运行 0。
实际工作台入口 32 个,通过 32 个。不得将路由登记 1452/1452 或独立演示页烟测作为上线验收。
## 上线结论
**当前不具备完整上线放行依据。** 登记缺陷 5 个,4 个已通过针对性复测。手册尚未通过:FILE-02 failed。本机性能样本通过不等于生产容量认证,入口可用不代表全部业务命令已经验收。
**当前不具备完整上线放行依据。** 登记缺陷 5 个,5 个已通过针对性复测。手册尚未通过:无。本机性能样本通过不等于生产容量认证,入口可用不代表全部业务命令已经验收。IFC 导入通过仅指 IfcOpenShellNative 真实导入绑定,不代表完整 BIM 编辑/导出 API。
## 手册逐项覆盖
@@ -23,7 +23,7 @@
| GEO-03 | 多对象与布尔 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T11-47-41-751Z/report.md) |
| GEO-04 | 选择与删除恢复 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T08-09-15-351Z/report.md) |
| FILE-01 | STEP 导入 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T08-09-15-351Z/report.md) |
| FILE-02 | 多格式导入 | failed | Error: IFC native import is not available: AC14-FZK-Haus.ifc: No native import handler is registered for .ifc [过程](manual-2026-09-15T12-53-49-351Z/report.md) |
| FILE-02 | 多格式导入 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T16-41-07-796Z/report.md) |
| FILE-03 | 保存与重开 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T12-53-49-351Z/report.md) |
| FILE-04 | OPFS 刷新恢复 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T11-47-41-751Z/report.md) |
| FILE-05 | STL 导出回读 | passed | 仅限实际执行的步骤和断言 [过程](manual-2026-09-15T12-53-49-351Z/report.md) |
@@ -44,6 +44,7 @@
原始问题:浏览器抛出 ReferenceError: WebMacroDebugTask is not defined;原生模块登记不能使 React 组件自动导入。
1. 打开首页。
2. 点击任一工作台导航,或访问 /workbench.html?module=Part。
3. 观察只有导航而无工作台业务界面,Console 抛出 ReferenceError。
@@ -153,6 +154,7 @@
原始问题:主工作区 Create group 返回 native_view_failed: No module named json。
1. 首页创建 Box。
2. 展开 New Group。
3. 点击 Create group。
@@ -169,6 +171,7 @@
原始问题:颜色编辑为 #cc3344 后保存 FCStd,重开显示默认 #73c6d4;Label 已保留。
1. 创建 Box 并修改 Label。
2. 将 Object Color 改为 #cc3344。
3. 保存 FCStd 到 OPFS。
@@ -191,6 +194,7 @@
原始问题:工作台能够渲染但窗口命令报 invalid_request / Native view command returned no result。窗口命令被套用几何契约,且原生处理函数未加入标准命令分发表。
1. 打开工作台并等待窗口工具栏初始化。
2. 检查顶部错误提示。
3. 展开面板菜单并切换工具栏锁定。
@@ -301,10 +305,11 @@
### UT-005 IFC 缺少真实 IfcOpenShell WASM 绑定 (P1)
当前状态:open
当前状态:resolved_by_retest
原始问题:真实 IFC 样本无法导入;当前 BIM 初始化仅有 declaration-only IfcOpenShell 替身,PartBox 无 IFC 原生导入器。不能将显式报错算作 IFC 支持。
IfcOpenShellNative real IFC2X3/IFC4 import and FCStd persistence only; full ifcopenshell Python authoring/export API remains outside this closure.
1. 打开 Web / Std_Open。
2. 选择本机 AC14-FZK-Haus.ifc。
3. 检查 file_open_failed 和 No native import handler is registered for .ifc。
@@ -317,13 +322,15 @@
[原始证据 6](manual-2026-09-15T12-47-40-067Z/FILE-02-06.png)
[原始证据 7](manual-2026-09-15T12-47-40-067Z/FILE-02-07.png)
[修复复测 1](manual-2026-09-15T12-53-49-351Z/FILE-02-01.png)
[修复复测 2](manual-2026-09-15T12-53-49-351Z/FILE-02-02.png)
[修复复测 3](manual-2026-09-15T12-53-49-351Z/FILE-02-03.png)
[修复复测 4](manual-2026-09-15T12-53-49-351Z/FILE-02-04.png)
[修复复测 5](manual-2026-09-15T12-53-49-351Z/FILE-02-05.png)
[修复复测 6](manual-2026-09-15T12-53-49-351Z/FILE-02-06.png)
[修复复测 7](manual-2026-09-15T12-53-49-351Z/FILE-02-07.png)
[修复复测 1](manual-2026-09-15T16-41-07-796Z/FILE-02-01.png)
[修复复测 2](manual-2026-09-15T16-41-07-796Z/FILE-02-02.png)
[修复复测 3](manual-2026-09-15T16-41-07-796Z/FILE-02-03.png)
[修复复测 4](manual-2026-09-15T16-41-07-796Z/FILE-02-04.png)
[修复复测 5](manual-2026-09-15T16-41-07-796Z/FILE-02-05.png)
[修复复测 6](manual-2026-09-15T16-41-07-796Z/FILE-02-06.png)
[修复复测 7](manual-2026-09-15T16-41-07-796Z/FILE-02-07.png)
[修复复测 8](manual-2026-09-15T16-24-54-253Z/FIX-IFC-REOPEN-01.png)
[修复复测 9](manual-2026-09-15T16-24-54-253Z/FIX-IFC-REOPEN-02.png)
## 批次与耗时
@@ -343,6 +350,9 @@
- [manual-2026-09-15T12-36-05-542Z](manual-2026-09-15T12-36-05-542Z/report.md):1 条案例记录,累计案例耗时 16.6 秒。
- [manual-2026-09-15T12-47-40-067Z](manual-2026-09-15T12-47-40-067Z/report.md):3 条案例记录,累计案例耗时 34.2 秒。
- [manual-2026-09-15T12-53-49-351Z](manual-2026-09-15T12-53-49-351Z/report.md):9 条案例记录,累计案例耗时 173.2 秒。
- [manual-2026-09-15T16-06-38-026Z](manual-2026-09-15T16-06-38-026Z/report.md):1 条案例记录,累计案例耗时 616.5 秒。
- [manual-2026-09-15T16-24-54-253Z](manual-2026-09-15T16-24-54-253Z/report.md):1 条案例记录,累计案例耗时 217.7 秒。
- [manual-2026-09-15T16-41-07-796Z](manual-2026-09-15T16-41-07-796Z/report.md):1 条案例记录,累计案例耗时 375.1 秒。
## 解释与限制

View File

@@ -388,18 +388,22 @@
"manual-2026-09-15T12-47-40-067Z/FILE-02-06.png",
"manual-2026-09-15T12-47-40-067Z/FILE-02-07.png"
],
"status": "open",
"status": "resolved_by_retest",
"retestCases": [
"FILE-02"
"FILE-02",
"FIX-IFC-REOPEN"
],
"resolutionScope": "IfcOpenShellNative real IFC2X3/IFC4 import and FCStd persistence only; full ifcopenshell Python authoring/export API remains outside this closure.",
"retestEvidence": [
"manual-2026-09-15T12-53-49-351Z/FILE-02-01.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-02.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-03.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-04.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-05.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-06.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-07.png"
"manual-2026-09-15T16-41-07-796Z/FILE-02-01.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-02.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-03.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-04.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-05.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-06.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-07.png",
"manual-2026-09-15T16-24-54-253Z/FIX-IFC-REOPEN-01.png",
"manual-2026-09-15T16-24-54-253Z/FIX-IFC-REOPEN-02.png"
],
"originalEvidence": [
"manual-2026-09-15T12-47-40-067Z/FILE-02-01.png",

View File

@@ -0,0 +1,3 @@
{
"error": "AssertionError [ERR_ASSERTION]: [{\"filename\":\"wall.ifc\",\"message\":\"IFC contains no convertible native geometry\"}]\n\n1 !== 0\n"
}

View File

@@ -0,0 +1,105 @@
[
{
"command": "Std_Open",
"reply": {
"command": "Std_Open",
"document": "Contract",
"ok": true,
"owner": "PartBox",
"result": {
"activeDocument": null,
"command": "Std_Open",
"documentId": "Contract",
"errors": [
{
"filename": "wall.ifc",
"message": "IFC contains no convertible native geometry"
}
],
"formats": [
{
"extension": "FCStd",
"modules": [
"FreeCAD"
]
},
{
"extension": "BREP",
"modules": [
"Part"
]
},
{
"extension": "BRP",
"modules": [
"Part"
]
},
{
"extension": "IFC",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "IGES",
"modules": [
"Part"
]
},
{
"extension": "IGS",
"modules": [
"Part"
]
},
{
"extension": "OBJ",
"modules": [
"Mesh"
]
},
{
"extension": "brep",
"modules": [
"Part"
]
},
{
"extension": "brp",
"modules": [
"Part"
]
},
{
"extension": "ifc",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "iges",
"modules": [
"Part"
]
},
{
"extension": "igs",
"modules": [
"Part"
]
},
{
"extension": "obj",
"modules": [
"Mesh"
]
}
],
"opened": [],
"operation": "open"
},
"schema": "freecad-web/document-view/v1"
}
}
]

View File

@@ -0,0 +1,3 @@
{
"error": "RuntimeError: memory access out of bounds"
}

View File

@@ -0,0 +1,28 @@
{
"count": 7,
"properties": [
[
"Ifc_32",
"[{\"Description\":null,\"GlobalId\":\"3U5dlTKgNpdXvGG_h1UB1e\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"NumberOfStoreys\",\"NominalValue\":\"IfcCountMeasure(1)\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsLandmarked\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"0qtiToowyEn_jqyPw36bkp\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingElementProxyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2Xe4e_z6nyyQBfJ9yOJXYv\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingStoreyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"AboveGround\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"07mSmCWmizAULxEjtjvEjg\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingSystemCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"1GCWRxA7BU8FaVCiUcq6nY\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null}]}]"
],
[
"Ifc_35",
"[{\"Description\":null,\"GlobalId\":\"2QFFSloDKLdASEirlNrsWG\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingStoreyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null},{\"Description\":null,\"Name\":\"AboveGround\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2khPkDg4bBoX9QFSHYxSac\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null},{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null}]}]"
],
[
"Ifc_39",
"[{\"Description\":null,\"GlobalId\":\"2y6jqut2mGsxPM5c1zUPr2\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingStoreyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null},{\"Description\":null,\"Name\":\"AboveGround\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"0gGGxtUVcimZNbYugu0sB_\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null},{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null}]}]"
],
[
"Ifc_42",
"[{\"Description\":null,\"GlobalId\":\"2eqIbmOAscNen5$6huR8Xq\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SiteCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"23aMNsN69_fPNNwy7k03QC\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null}]}]"
],
[
"Ifc_93",
"[{\"Description\":null,\"GlobalId\":\"2Kyssv$kPduAY5HpYkdCrw\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_ColumnCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null},{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('UC305x305x97')\",\"Unit\":null},{\"Description\":null,\"Name\":\"LoadBearing\",\"NominalValue\":\"IfcBoolean(.T.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2E7Xcrf_DiKNFkQbRhLvWM\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_EnvironmentalImpactIndicators\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('UC305x305x97')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"1sLpijh_wqTpS_F_2QKBAo\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_ReinforcementBarPitchOfColumn\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcLabel('UC305x305x97')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2n2HQdKqzYK7QnaOEEelxy\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"PSet_1\",\"OwnerHistory\":null,\"Values\":[{\"Description\":null,\"Name\":\"Label\",\"NominalValue\":\"IfcLabel('Pset 1')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2n2HQdKqzYK7QnaOEEelxz\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"PSet_2\",\"OwnerHistory\":null,\"Values\":[{\"Description\":null,\"Name\":\"Label\",\"NominalValue\":\"IfcLabel('Pset 2')\",\"Unit\":null}]}]"
]
],
"volumes": [
30862141.083286542
]
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
{
"status": "passed",
"fixtures": 2,
"invalidFileRejected": true,
"documentsPreserved": true
}

View File

@@ -0,0 +1,28 @@
{
"count": 7,
"properties": [
[
"Ifc_32",
"[{\"Description\":null,\"GlobalId\":\"3U5dlTKgNpdXvGG_h1UB1e\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"NumberOfStoreys\",\"NominalValue\":\"IfcCountMeasure(1)\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsLandmarked\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"0qtiToowyEn_jqyPw36bkp\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingElementProxyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2Xe4e_z6nyyQBfJ9yOJXYv\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingStoreyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"AboveGround\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"07mSmCWmizAULxEjtjvEjg\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingSystemCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"1GCWRxA7BU8FaVCiUcq6nY\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null}]}]"
],
[
"Ifc_35",
"[{\"Description\":null,\"GlobalId\":\"2QFFSloDKLdASEirlNrsWG\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingStoreyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null},{\"Description\":null,\"Name\":\"AboveGround\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2khPkDg4bBoX9QFSHYxSac\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null},{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null}]}]"
],
[
"Ifc_39",
"[{\"Description\":null,\"GlobalId\":\"2y6jqut2mGsxPM5c1zUPr2\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_BuildingStoreyCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null},{\"Description\":null,\"Name\":\"AboveGround\",\"NominalValue\":\"IfcLogical(.F.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"0gGGxtUVcimZNbYugu0sB_\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null},{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Circle Head - Project Datum')\",\"Unit\":null}]}]"
],
[
"Ifc_42",
"[{\"Description\":null,\"GlobalId\":\"2eqIbmOAscNen5$6huR8Xq\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SiteCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"23aMNsN69_fPNNwy7k03QC\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_SpaceCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('Project Information')\",\"Unit\":null},{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null}]}]"
],
[
"Ifc_93",
"[{\"Description\":null,\"GlobalId\":\"2Kyssv$kPduAY5HpYkdCrw\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_ColumnCommon\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"IsExternal\",\"NominalValue\":\"IfcBoolean(.F.)\",\"Unit\":null},{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('UC305x305x97')\",\"Unit\":null},{\"Description\":null,\"Name\":\"LoadBearing\",\"NominalValue\":\"IfcBoolean(.T.)\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2E7Xcrf_DiKNFkQbRhLvWM\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_EnvironmentalImpactIndicators\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcIdentifier('UC305x305x97')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"1sLpijh_wqTpS_F_2QKBAo\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"Pset_ReinforcementBarPitchOfColumn\",\"OwnerHistory\":\"#18=IfcOwnerHistory(#17,#2,$,.NOCHANGE.,$,$,$,1741776819)\",\"Values\":[{\"Description\":null,\"Name\":\"Reference\",\"NominalValue\":\"IfcLabel('UC305x305x97')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2n2HQdKqzYK7QnaOEEelxy\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"PSet_1\",\"OwnerHistory\":null,\"Values\":[{\"Description\":null,\"Name\":\"Label\",\"NominalValue\":\"IfcLabel('Pset 1')\",\"Unit\":null}]},{\"Description\":null,\"GlobalId\":\"2n2HQdKqzYK7QnaOEEelxz\",\"HasProperties\":\"See embedded original IFC\",\"Name\":\"PSet_2\",\"OwnerHistory\":null,\"Values\":[{\"Description\":null,\"Name\":\"Label\",\"NominalValue\":\"IfcLabel('Pset 2')\",\"Unit\":null}]}]"
]
],
"volumes": [
30862141.083286542
]
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
{
"status": "passed",
"fixtures": 2,
"invalidFileRejected": true,
"documentsPreserved": true
}

View File

@@ -0,0 +1,4 @@
{
"status": "failed",
"error": "AssertionError [ERR_ASSERTION]: [{\"filename\":\"AC14-FZK-Haus.ifc\",\"message\":\"IFC product has invalid OCCT geometry\"}]\n\n1 !== 0\n"
}

View File

@@ -0,0 +1,106 @@
[
{
"command": "Std_Open",
"seconds": 43.016129487,
"reply": {
"command": "Std_Open",
"document": "IfcValidation",
"ok": true,
"owner": "PartBox",
"result": {
"activeDocument": null,
"command": "Std_Open",
"documentId": "IfcValidation",
"errors": [
{
"filename": "AC14-FZK-Haus.ifc",
"message": "IFC product has invalid OCCT geometry"
}
],
"formats": [
{
"extension": "FCStd",
"modules": [
"FreeCAD"
]
},
{
"extension": "BREP",
"modules": [
"Part"
]
},
{
"extension": "BRP",
"modules": [
"Part"
]
},
{
"extension": "IFC",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "IGES",
"modules": [
"Part"
]
},
{
"extension": "IGS",
"modules": [
"Part"
]
},
{
"extension": "OBJ",
"modules": [
"Mesh"
]
},
{
"extension": "brep",
"modules": [
"Part"
]
},
{
"extension": "brp",
"modules": [
"Part"
]
},
{
"extension": "ifc",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "iges",
"modules": [
"Part"
]
},
{
"extension": "igs",
"modules": [
"Part"
]
},
{
"extension": "obj",
"modules": [
"Mesh"
]
}
],
"opened": [],
"operation": "open"
},
"schema": "freecad-web/document-view/v1"
}
}
]

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"status": "passed",
"state": {
"objects": 147,
"shapes": 146,
"groups": 12,
"properties": 0,
"volume": 4061286490859.3145
},
"scope": "Native IFC import and FCStd save; not browser acceptance"
}

View File

@@ -0,0 +1,40 @@
{
"source": "https://github.com/IfcOpenShell/IfcOpenShell",
"observedCommit": "f8da61bf9249126c3ce41e7b995c68ae3ab520d9",
"version": "0.8.6",
"archiveSha256": "c4e1efb7910dede9fabb5003e6599b52528220bf8309c00c196741e7933176fc",
"compiler": "Emscripten system compiler (Clang 15), -pthread -fexceptions -O1",
"geometry": "provided OCCT 7.6.3 pthread static libraries",
"schemas": [
"IFC2X3",
"IFC4"
],
"license": "LGPL-3.0-or-later",
"artifacts": [
{
"path": "ifcparse/libIfcParse.a",
"bytes": 33318606,
"sha256": "9c5d832f68a99e571129afec79074f72fb058e05450131df6c98c4051ec9786f"
},
{
"path": "ifcgeom/libIfcGeom.a",
"bytes": 7008936,
"sha256": "08a110105004e5ff87ba296563b4da2b9cb1a3b302f382e24e6ac21811a9718a"
},
{
"path": "ifcgeom/kernels/libgeometry_kernel_opencascade.a",
"bytes": 3130670,
"sha256": "670e21a5e28b2560471fd7c9ce9c0f51e7d2ceab4383f57747293807d8c08d56"
}
],
"fixtureHashes": [
{
"name": "wall.ifc",
"sha256": "f3d8d6cd6b347d92a20242f2f64b3ec760ce3f20c114979dc534ac3854b2a7af"
},
{
"name": "ColumnPSetsOfSets.ifc",
"sha256": "99722c9a90c1d11d798c9ab96a3193b61f0a1350c9740d8e761acbad38b0868e"
}
]
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:44077/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.step\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.step: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 6 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n6\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.step\nTool\n选择对象\nBox1.step\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.step",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.step: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.step",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.step",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:44077/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.iges\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.iges: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 6 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n6\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.iges\nTool\n选择对象\nBox1.iges\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.iges",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.iges: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.iges",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.iges",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:44077/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.brep\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.brep: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 6 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n6\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.brep\nTool\n选择对象\nBox1.brep\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.brep",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.brep: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.brep",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.brep",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:44077/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.stl\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.stl: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 12 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n12\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.stl\nTool\n选择对象\nBox1.stl\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.stl",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.stl: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.stl",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.stl",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

View File

@@ -0,0 +1,286 @@
DBRep_DrawableShape
CASCADE Topology V1, (c) Matra-Datavision
Locations 1
1
1 0 0 0
0 1 0 0
0 0 1 0
Curve2ds 24
1 0 0 1 0
1 0 0 1 0
1 4 0 0 -1
1 0 0 0 1
1 0 -3 1 0
1 0 0 1 0
1 0 0 0 -1
1 0 0 0 1
1 0 0 1 0
1 0 2 1 0
1 4 0 0 -1
1 2 0 0 1
1 0 -3 1 0
1 0 2 1 0
1 0 0 0 -1
1 2 0 0 1
1 0 0 0 1
1 0 0 1 0
1 4 0 0 1
1 0 0 1 0
1 0 0 0 1
1 0 3 1 0
1 4 0 0 1
1 0 3 1 0
Curves 12
1 0 0 0 0 0 1
1 0 0 4 -0 1 0
1 0 3 0 0 0 1
1 0 0 0 -0 1 0
1 2 0 0 0 0 1
1 2 0 4 -0 1 0
1 2 3 0 0 0 1
1 2 0 0 -0 1 0
1 0 0 0 1 0 -0
1 0 0 4 1 0 -0
1 0 3 0 1 0 -0
1 0 3 4 1 0 -0
Polygon3D 0
PolygonOnTriangulations 0
Surfaces 6
1 0 0 0 1 0 -0 0 0 1 0 -1 0
1 0 0 0 -0 1 0 0 0 1 1 0 -0
1 0 0 4 0 0 1 1 0 -0 -0 1 0
1 0 3 0 -0 1 0 0 0 1 1 0 -0
1 0 0 0 0 0 1 1 0 -0 -0 1 0
1 2 0 0 1 0 -0 0 0 1 0 -1 0
Triangulations 0
TShapes 34
Ve
1e-07
0 0 4
0 0
0101101
*
Ve
1e-07
0 0 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 1 0 0 4
2 1 1 0 0 4
2 2 2 0 0 4
0
0101000
-34 0 +33 0 *
Ve
1e-07
0 3 4
0 0
0101101
*
Ed
1e-07 1 1 0
1 2 0 0 3
2 3 1 0 0 3
2 4 3 0 0 3
0
0101000
-31 0 +34 0 *
Ve
1e-07
0 3 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 3 0 0 4
2 5 1 0 0 4
2 6 4 0 0 4
0
0101000
-31 0 +29 0 *
Ed
1e-07 1 1 0
1 4 0 0 3
2 7 1 0 0 3
2 8 5 0 0 3
0
0101000
-29 0 +33 0 *
Wi
0101100
-32 0 -30 0 +28 0 +27 0 *
Fa
0 1e-07 1 0
0101000
+26 0 *
Ve
1e-07
2 0 4
0 0
0101101
*
Ve
1e-07
2 0 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 5 0 0 4
2 9 6 0 0 4
2 10 2 0 0 4
0
0101000
-24 0 +23 0 *
Ve
1e-07
2 3 4
0 0
0101101
*
Ed
1e-07 1 1 0
1 6 0 0 3
2 11 6 0 0 3
2 12 3 0 0 3
0
0101000
-21 0 +24 0 *
Ve
1e-07
2 3 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 7 0 0 4
2 13 6 0 0 4
2 14 4 0 0 4
0
0101000
-21 0 +19 0 *
Ed
1e-07 1 1 0
1 8 0 0 3
2 15 6 0 0 3
2 16 5 0 0 3
0
0101000
-19 0 +23 0 *
Wi
0101100
-22 0 -20 0 +18 0 +17 0 *
Fa
0 1e-07 6 0
0101000
+16 0 *
Ed
1e-07 1 1 0
1 9 0 0 2
2 17 2 0 0 2
2 18 5 0 0 2
0
0101000
-23 0 +33 0 *
Ed
1e-07 1 1 0
1 10 0 0 2
2 19 2 0 0 2
2 20 3 0 0 2
0
0101000
-24 0 +34 0 *
Wi
0101100
-14 0 -22 0 +13 0 +32 0 *
Fa
0 1e-07 2 0
0101000
+12 0 *
Ed
1e-07 1 1 0
1 11 0 0 2
2 21 4 0 0 2
2 22 5 0 0 2
0
0101000
-19 0 +29 0 *
Ed
1e-07 1 1 0
1 12 0 0 2
2 23 4 0 0 2
2 24 3 0 0 2
0
0101000
-21 0 +31 0 *
Wi
0101100
-10 0 -18 0 +9 0 +28 0 *
Fa
0 1e-07 4 0
0101000
+8 0 *
Wi
0101100
-27 0 -10 0 +17 0 +14 0 *
Fa
0 1e-07 5 0
0101000
+6 0 *
Wi
0101100
-30 0 -9 0 +20 0 +13 0 *
Fa
0 1e-07 3 0
0101000
+4 0 *
Sh
0101100
-25 0 +15 0 -11 0 +7 0 -5 0 +3 0 *
So
1100000
+2 0 *
+1 1

View File

@@ -0,0 +1,153 @@
S0000001
,,31HOpen CASCADE IGES processor 7.6,13HFilename.iges, G0000001
16HOpen CASCADE 7.6,31HOpen CASCADE IGES processor 7.6,32,308,15,308,15,G0000002
,1.,2,2HMM,1,0.01,15H20260916.000642,1E-07,4.,,,11,0,15H20260916.000642,G0000003
; G0000004
402 1 0 0 0 0 0 000000000D0000001
402 0 0 1 1 0D0000002
144 2 0 0 0 0 0 000020000D0000003
144 0 0 1 0 0D0000004
108 3 0 0 0 0 0 000010000D0000005
108 0 0 1 0 0D0000006
142 4 0 0 0 0 0 000010500D0000007
142 0 0 1 0 0D0000008
102 5 0 0 0 0 0 000010000D0000009
102 0 0 1 0 0D0000010
110 6 0 0 0 0 0 000010000D0000011
110 0 0 1 0 0D0000012
110 7 0 0 0 0 0 000010000D0000013
110 0 0 1 0 0D0000014
110 8 0 0 0 0 0 000010000D0000015
110 0 0 1 0 0D0000016
110 9 0 0 0 0 0 000010000D0000017
110 0 0 1 0 0D0000018
144 10 0 0 0 0 0 000020000D0000019
144 0 0 1 0 0D0000020
108 11 0 0 0 0 0 000010000D0000021
108 0 0 1 0 0D0000022
142 12 0 0 0 0 0 000010500D0000023
142 0 0 1 0 0D0000024
102 13 0 0 0 0 0 000010000D0000025
102 0 0 1 0 0D0000026
110 14 0 0 0 0 0 000010000D0000027
110 0 0 1 0 0D0000028
110 15 0 0 0 0 0 000010000D0000029
110 0 0 1 0 0D0000030
110 16 0 0 0 0 0 000010000D0000031
110 0 0 1 0 0D0000032
110 17 0 0 0 0 0 000010000D0000033
110 0 0 1 0 0D0000034
144 18 0 0 0 0 0 000020000D0000035
144 0 0 1 0 0D0000036
108 19 0 0 0 0 0 000010000D0000037
108 0 0 1 0 0D0000038
142 20 0 0 0 0 0 000010500D0000039
142 0 0 1 0 0D0000040
102 21 0 0 0 0 0 000010000D0000041
102 0 0 1 0 0D0000042
110 22 0 0 0 0 0 000010000D0000043
110 0 0 1 0 0D0000044
110 23 0 0 0 0 0 000010000D0000045
110 0 0 1 0 0D0000046
110 24 0 0 0 0 0 000010000D0000047
110 0 0 1 0 0D0000048
110 25 0 0 0 0 0 000010000D0000049
110 0 0 1 0 0D0000050
144 26 0 0 0 0 0 000020000D0000051
144 0 0 1 0 0D0000052
108 27 0 0 0 0 0 000010000D0000053
108 0 0 1 0 0D0000054
142 28 0 0 0 0 0 000010500D0000055
142 0 0 1 0 0D0000056
102 29 0 0 0 0 0 000010000D0000057
102 0 0 1 0 0D0000058
110 30 0 0 0 0 0 000010000D0000059
110 0 0 1 0 0D0000060
110 31 0 0 0 0 0 000010000D0000061
110 0 0 1 0 0D0000062
110 32 0 0 0 0 0 000010000D0000063
110 0 0 1 0 0D0000064
110 33 0 0 0 0 0 000010000D0000065
110 0 0 1 0 0D0000066
144 34 0 0 0 0 0 000020000D0000067
144 0 0 1 0 0D0000068
108 35 0 0 0 0 0 000010000D0000069
108 0 0 1 0 0D0000070
142 36 0 0 0 0 0 000010500D0000071
142 0 0 1 0 0D0000072
102 37 0 0 0 0 0 000010000D0000073
102 0 0 1 0 0D0000074
110 38 0 0 0 0 0 000010000D0000075
110 0 0 1 0 0D0000076
110 39 0 0 0 0 0 000010000D0000077
110 0 0 1 0 0D0000078
110 40 0 0 0 0 0 000010000D0000079
110 0 0 1 0 0D0000080
110 41 0 0 0 0 0 000010000D0000081
110 0 0 1 0 0D0000082
144 42 0 0 0 0 0 000020000D0000083
144 0 0 1 0 0D0000084
108 43 0 0 0 0 0 000010000D0000085
108 0 0 1 0 0D0000086
142 44 0 0 0 0 0 000010500D0000087
142 0 0 1 0 0D0000088
102 45 0 0 0 0 0 000010000D0000089
102 0 0 1 0 0D0000090
110 46 0 0 0 0 0 000010000D0000091
110 0 0 1 0 0D0000092
110 47 0 0 0 0 0 000010000D0000093
110 0 0 1 0 0D0000094
110 48 0 0 0 0 0 000010000D0000095
110 0 0 1 0 0D0000096
110 49 0 0 0 0 0 000010000D0000097
110 0 0 1 0 0D0000098
402,6,3,19,35,51,67,83; 0000001P0000001
144,5,1,0,7; 0000003P0000002
108,-1.,-0.,-0.,-0.,0,0.,0.,0.,0.; 0000005P0000003
142,0,5,0,9,2; 0000007P0000004
102,4,11,13,15,17; 0000009P0000005
110,0.,3.,0.,0.,0.,0.; 0000011P0000006
110,0.,0.,0.,0.,0.,4.; 0000013P0000007
110,0.,0.,4.,0.,3.,4.; 0000015P0000008
110,0.,3.,4.,0.,3.,0.; 0000017P0000009
144,21,1,0,23; 0000019P0000010
108,1.,0.,0.,2.,0,2.,0.,0.,0.; 0000021P0000011
142,0,21,0,25,2; 0000023P0000012
102,4,27,29,31,33; 0000025P0000013
110,2.,0.,4.,2.,0.,0.; 0000027P0000014
110,2.,0.,0.,2.,3.,0.; 0000029P0000015
110,2.,3.,0.,2.,3.,4.; 0000031P0000016
110,2.,3.,4.,2.,0.,4.; 0000033P0000017
144,37,1,0,39; 0000035P0000018
108,-0.,-1.,-0.,-0.,0,0.,0.,0.,0.; 0000037P0000019
142,0,37,0,41,2; 0000039P0000020
102,4,43,45,47,49; 0000041P0000021
110,0.,0.,4.,0.,0.,0.; 0000043P0000022
110,0.,0.,0.,2.,0.,0.; 0000045P0000023
110,2.,0.,0.,2.,0.,4.; 0000047P0000024
110,2.,0.,4.,0.,0.,4.; 0000049P0000025
144,53,1,0,55; 0000051P0000026
108,0.,1.,0.,3.,0,0.,3.,0.,0.; 0000053P0000027
142,0,53,0,57,2; 0000055P0000028
102,4,59,61,63,65; 0000057P0000029
110,2.,3.,0.,0.,3.,0.; 0000059P0000030
110,0.,3.,0.,0.,3.,4.; 0000061P0000031
110,0.,3.,4.,2.,3.,4.; 0000063P0000032
110,2.,3.,4.,2.,3.,0.; 0000065P0000033
144,69,1,0,71; 0000067P0000034
108,-0.,-0.,-1.,-0.,0,0.,0.,0.,0.; 0000069P0000035
142,0,69,0,73,2; 0000071P0000036
102,4,75,77,79,81; 0000073P0000037
110,2.,0.,0.,0.,0.,0.; 0000075P0000038
110,0.,0.,0.,0.,3.,0.; 0000077P0000039
110,0.,3.,0.,2.,3.,0.; 0000079P0000040
110,2.,3.,0.,2.,0.,0.; 0000081P0000041
144,85,1,0,87; 0000083P0000042
108,0.,0.,1.,4.,0,0.,0.,4.,0.; 0000085P0000043
142,0,85,0,89,2; 0000087P0000044
102,4,91,93,95,97; 0000089P0000045
110,0.,3.,4.,0.,0.,4.; 0000091P0000046
110,0.,0.,4.,2.,0.,4.; 0000093P0000047
110,2.,0.,4.,2.,3.,4.; 0000095P0000048
110,2.,3.,4.,0.,3.,4.; 0000097P0000049
S 1G 4D 98P 49 T0000001

View File

@@ -0,0 +1,187 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
FILE_NAME('Open CASCADE Shape Model','2026-09-16T00:06:40',('FreeCAD'),(
'FreeCAD'),'Open CASCADE STEP processor 7.6','FreeCAD','Unknown');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
DATA;
#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
'automotive_design',2000,#2);
#2 = APPLICATION_CONTEXT(
'core data for automotive mechanical design processes');
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
#5 = PRODUCT_DEFINITION('design','',#6,#9);
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
#7 = PRODUCT('Open CASCADE STEP translator 7.6 1',
'Open CASCADE STEP translator 7.6 1','',(#8));
#8 = PRODUCT_CONTEXT('',#2,'mechanical');
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#10 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#15),#165);
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
#12 = CARTESIAN_POINT('',(0.,0.,0.));
#13 = DIRECTION('',(0.,0.,1.));
#14 = DIRECTION('',(1.,0.,-0.));
#15 = MANIFOLD_SOLID_BREP('',#16);
#16 = CLOSED_SHELL('',(#17,#57,#97,#119,#141,#153));
#17 = ADVANCED_FACE('',(#18),#52,.F.);
#18 = FACE_BOUND('',#19,.F.);
#19 = EDGE_LOOP('',(#20,#30,#38,#46));
#20 = ORIENTED_EDGE('',*,*,#21,.F.);
#21 = EDGE_CURVE('',#22,#24,#26,.T.);
#22 = VERTEX_POINT('',#23);
#23 = CARTESIAN_POINT('',(0.,0.,0.));
#24 = VERTEX_POINT('',#25);
#25 = CARTESIAN_POINT('',(0.,0.,4.));
#26 = LINE('',#27,#28);
#27 = CARTESIAN_POINT('',(0.,0.,0.));
#28 = VECTOR('',#29,1.);
#29 = DIRECTION('',(0.,0.,1.));
#30 = ORIENTED_EDGE('',*,*,#31,.T.);
#31 = EDGE_CURVE('',#22,#32,#34,.T.);
#32 = VERTEX_POINT('',#33);
#33 = CARTESIAN_POINT('',(0.,3.,0.));
#34 = LINE('',#35,#36);
#35 = CARTESIAN_POINT('',(0.,0.,0.));
#36 = VECTOR('',#37,1.);
#37 = DIRECTION('',(0.,1.,0.));
#38 = ORIENTED_EDGE('',*,*,#39,.T.);
#39 = EDGE_CURVE('',#32,#40,#42,.T.);
#40 = VERTEX_POINT('',#41);
#41 = CARTESIAN_POINT('',(0.,3.,4.));
#42 = LINE('',#43,#44);
#43 = CARTESIAN_POINT('',(0.,3.,0.));
#44 = VECTOR('',#45,1.);
#45 = DIRECTION('',(0.,0.,1.));
#46 = ORIENTED_EDGE('',*,*,#47,.F.);
#47 = EDGE_CURVE('',#24,#40,#48,.T.);
#48 = LINE('',#49,#50);
#49 = CARTESIAN_POINT('',(0.,0.,4.));
#50 = VECTOR('',#51,1.);
#51 = DIRECTION('',(0.,1.,0.));
#52 = PLANE('',#53);
#53 = AXIS2_PLACEMENT_3D('',#54,#55,#56);
#54 = CARTESIAN_POINT('',(0.,0.,0.));
#55 = DIRECTION('',(1.,0.,0.));
#56 = DIRECTION('',(0.,0.,1.));
#57 = ADVANCED_FACE('',(#58),#92,.T.);
#58 = FACE_BOUND('',#59,.T.);
#59 = EDGE_LOOP('',(#60,#70,#78,#86));
#60 = ORIENTED_EDGE('',*,*,#61,.F.);
#61 = EDGE_CURVE('',#62,#64,#66,.T.);
#62 = VERTEX_POINT('',#63);
#63 = CARTESIAN_POINT('',(2.,0.,0.));
#64 = VERTEX_POINT('',#65);
#65 = CARTESIAN_POINT('',(2.,0.,4.));
#66 = LINE('',#67,#68);
#67 = CARTESIAN_POINT('',(2.,0.,0.));
#68 = VECTOR('',#69,1.);
#69 = DIRECTION('',(0.,0.,1.));
#70 = ORIENTED_EDGE('',*,*,#71,.T.);
#71 = EDGE_CURVE('',#62,#72,#74,.T.);
#72 = VERTEX_POINT('',#73);
#73 = CARTESIAN_POINT('',(2.,3.,0.));
#74 = LINE('',#75,#76);
#75 = CARTESIAN_POINT('',(2.,0.,0.));
#76 = VECTOR('',#77,1.);
#77 = DIRECTION('',(0.,1.,0.));
#78 = ORIENTED_EDGE('',*,*,#79,.T.);
#79 = EDGE_CURVE('',#72,#80,#82,.T.);
#80 = VERTEX_POINT('',#81);
#81 = CARTESIAN_POINT('',(2.,3.,4.));
#82 = LINE('',#83,#84);
#83 = CARTESIAN_POINT('',(2.,3.,0.));
#84 = VECTOR('',#85,1.);
#85 = DIRECTION('',(0.,0.,1.));
#86 = ORIENTED_EDGE('',*,*,#87,.F.);
#87 = EDGE_CURVE('',#64,#80,#88,.T.);
#88 = LINE('',#89,#90);
#89 = CARTESIAN_POINT('',(2.,0.,4.));
#90 = VECTOR('',#91,1.);
#91 = DIRECTION('',(0.,1.,0.));
#92 = PLANE('',#93);
#93 = AXIS2_PLACEMENT_3D('',#94,#95,#96);
#94 = CARTESIAN_POINT('',(2.,0.,0.));
#95 = DIRECTION('',(1.,0.,0.));
#96 = DIRECTION('',(0.,0.,1.));
#97 = ADVANCED_FACE('',(#98),#114,.F.);
#98 = FACE_BOUND('',#99,.F.);
#99 = EDGE_LOOP('',(#100,#106,#107,#113));
#100 = ORIENTED_EDGE('',*,*,#101,.F.);
#101 = EDGE_CURVE('',#22,#62,#102,.T.);
#102 = LINE('',#103,#104);
#103 = CARTESIAN_POINT('',(0.,0.,0.));
#104 = VECTOR('',#105,1.);
#105 = DIRECTION('',(1.,0.,0.));
#106 = ORIENTED_EDGE('',*,*,#21,.T.);
#107 = ORIENTED_EDGE('',*,*,#108,.T.);
#108 = EDGE_CURVE('',#24,#64,#109,.T.);
#109 = LINE('',#110,#111);
#110 = CARTESIAN_POINT('',(0.,0.,4.));
#111 = VECTOR('',#112,1.);
#112 = DIRECTION('',(1.,0.,0.));
#113 = ORIENTED_EDGE('',*,*,#61,.F.);
#114 = PLANE('',#115);
#115 = AXIS2_PLACEMENT_3D('',#116,#117,#118);
#116 = CARTESIAN_POINT('',(0.,0.,0.));
#117 = DIRECTION('',(0.,1.,0.));
#118 = DIRECTION('',(0.,0.,1.));
#119 = ADVANCED_FACE('',(#120),#136,.T.);
#120 = FACE_BOUND('',#121,.T.);
#121 = EDGE_LOOP('',(#122,#128,#129,#135));
#122 = ORIENTED_EDGE('',*,*,#123,.F.);
#123 = EDGE_CURVE('',#32,#72,#124,.T.);
#124 = LINE('',#125,#126);
#125 = CARTESIAN_POINT('',(0.,3.,0.));
#126 = VECTOR('',#127,1.);
#127 = DIRECTION('',(1.,0.,0.));
#128 = ORIENTED_EDGE('',*,*,#39,.T.);
#129 = ORIENTED_EDGE('',*,*,#130,.T.);
#130 = EDGE_CURVE('',#40,#80,#131,.T.);
#131 = LINE('',#132,#133);
#132 = CARTESIAN_POINT('',(0.,3.,4.));
#133 = VECTOR('',#134,1.);
#134 = DIRECTION('',(1.,0.,0.));
#135 = ORIENTED_EDGE('',*,*,#79,.F.);
#136 = PLANE('',#137);
#137 = AXIS2_PLACEMENT_3D('',#138,#139,#140);
#138 = CARTESIAN_POINT('',(0.,3.,0.));
#139 = DIRECTION('',(0.,1.,0.));
#140 = DIRECTION('',(0.,0.,1.));
#141 = ADVANCED_FACE('',(#142),#148,.F.);
#142 = FACE_BOUND('',#143,.F.);
#143 = EDGE_LOOP('',(#144,#145,#146,#147));
#144 = ORIENTED_EDGE('',*,*,#31,.F.);
#145 = ORIENTED_EDGE('',*,*,#101,.T.);
#146 = ORIENTED_EDGE('',*,*,#71,.T.);
#147 = ORIENTED_EDGE('',*,*,#123,.F.);
#148 = PLANE('',#149);
#149 = AXIS2_PLACEMENT_3D('',#150,#151,#152);
#150 = CARTESIAN_POINT('',(0.,0.,0.));
#151 = DIRECTION('',(0.,0.,1.));
#152 = DIRECTION('',(1.,0.,0.));
#153 = ADVANCED_FACE('',(#154),#160,.T.);
#154 = FACE_BOUND('',#155,.T.);
#155 = EDGE_LOOP('',(#156,#157,#158,#159));
#156 = ORIENTED_EDGE('',*,*,#47,.F.);
#157 = ORIENTED_EDGE('',*,*,#108,.T.);
#158 = ORIENTED_EDGE('',*,*,#87,.T.);
#159 = ORIENTED_EDGE('',*,*,#130,.F.);
#160 = PLANE('',#161);
#161 = AXIS2_PLACEMENT_3D('',#162,#163,#164);
#162 = CARTESIAN_POINT('',(0.,0.,4.));
#163 = DIRECTION('',(0.,0.,1.));
#164 = DIRECTION('',(1.,0.,0.));
#165 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#169)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#166,#167,#168)) REPRESENTATION_CONTEXT('Context #1',
'3D Context with UNIT and UNCERTAINTY') );
#166 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#167 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#168 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#169 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#166,
'distance_accuracy_value','confusion accuracy');
#170 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
ENDSEC;
END-ISO-10303-21;

View File

@@ -0,0 +1,86 @@
solid
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 2.000000e+00 0.000000e+00 0.000000e+00
vertex 2.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 1.000000e+00 -0.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 2.000000e+00 3.000000e+00 4.000000e+00
endloop
endfacet
facet normal 0.000000e+00 -1.000000e+00 -0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
vertex 2.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal -0.000000e+00 -1.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 3.000000e+00 4.000000e+00
endloop
endfacet
facet normal -0.000000e+00 0.000000e+00 -1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 2.000000e+00 0.000000e+00 0.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 4.000000e+00
endloop
endfacet
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 2.000000e+00 0.000000e+00 4.000000e+00
endloop
endfacet
endsolid

View File

@@ -0,0 +1,257 @@
[
{
"format": "step",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.step",
"sha256": "a680fd5f37395a50fa26e442a75991b990c4d700fc209d282991adb13e43aabb",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
{
"format": "iges",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.iges",
"sha256": "8cfdbabf045b5af130aa99b45509ece9a129964ce1152484f991034e9f377f63",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
{
"format": "brep",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.brep",
"sha256": "4f6f1036d78a51fe3877703aee0262b7bdfc1c157079607d6588dc98a9bf5821",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
{
"format": "stl",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.stl",
"sha256": "548c0d4d290af2e202cf2745e70e4398b88c760f9a8fd6b22af66e4a6ec71ac7",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
{
"format": "dxf",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/Mod/OpenSCAD/OpenSCADTest/data/Square.dxf",
"sha256": "1d64c18cb383bdfd92cfd0528a66b0596e6e546a97a24ef6887a5d11eda9cd6a",
"supported": true,
"imported": true,
"result": {
"direction": "import",
"documentId": "DxfValidation",
"format": "dxf",
"objectCount": 8,
"objects": [
{
"label": "0",
"objectHandle": "Layer",
"objectType": "App::FeaturePython"
},
{
"label": "Layers",
"objectHandle": "LayerContainer",
"objectType": "App::DocumentObjectGroupPython"
},
{
"label": "none",
"objectHandle": "Layer001",
"objectType": "App::FeaturePython"
},
{
"label": "Sketch",
"objectHandle": "Layer002",
"objectType": "App::FeaturePython"
},
{
"area": 0,
"isNull": false,
"label": "Shape",
"length": 10,
"objectHandle": "Shape",
"objectType": "Part::Feature",
"volume": 0
},
{
"area": 0,
"isNull": false,
"label": "Shape001",
"length": 10,
"objectHandle": "Shape001",
"objectType": "Part::Feature",
"volume": 0
},
{
"area": 0,
"isNull": false,
"label": "Shape002",
"length": 10,
"objectHandle": "Shape002",
"objectType": "Part::Feature",
"volume": 0
},
{
"area": 0,
"isNull": false,
"label": "Shape003",
"length": 10,
"objectHandle": "Shape003",
"objectType": "Part::Feature",
"volume": 0
}
],
"payload": null,
"recomputed": true,
"resourceReleased": true
}
},
{
"format": "obj",
"file": "FreeCADBaseLib/sources/src/Qt-5.15.13/qt3d/src/3rdparty/assimp/src/test/models/OBJ/box_without_lineending.obj",
"sha256": "df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4",
"supported": true,
"imported": true,
"result": {
"activeDocument": "Unnamed",
"command": "Std_Open",
"documentId": "workbench-document",
"errors": [],
"formats": [
{
"extension": "FCStd",
"modules": [
"FreeCAD"
]
},
{
"extension": "BREP",
"modules": [
"Part"
]
},
{
"extension": "BRP",
"modules": [
"Part"
]
},
{
"extension": "IFC",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "IGES",
"modules": [
"Part"
]
},
{
"extension": "IGS",
"modules": [
"Part"
]
},
{
"extension": "OBJ",
"modules": [
"Mesh"
]
},
{
"extension": "brep",
"modules": [
"Part"
]
},
{
"extension": "brp",
"modules": [
"Part"
]
},
{
"extension": "ifc",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "iges",
"modules": [
"Part"
]
},
{
"extension": "igs",
"modules": [
"Part"
]
},
{
"extension": "obj",
"modules": [
"Mesh"
]
}
],
"opened": [
{
"documents": [
{
"filename": "",
"label": "Unnamed",
"name": "Unnamed",
"objectCount": 1,
"partialRestore": false,
"restoreError": false
}
],
"filename": "box_without_lineending.obj",
"reused": false,
"sha256": "df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4"
}
],
"operation": "open",
"storedFiles": [
{
"key": "df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4/box_without_lineending.obj",
"filename": "box_without_lineending.obj"
}
]
}
}
]

View File

@@ -0,0 +1,223 @@
# Web FreeCAD 用户实际验证与上线手册
版本:1.0
日期:2026-09-15
适用对象:试用用户、业务验收人员、上线值守人员
## 1. 验证原则
本手册验证 Web FreeCAD 的实际可用性,不替代源码审查。几何算法必须由 OCCT WASM 完成,Three.js 只负责显示。验证人员应记录实际结果,不因界面显示正常而推断模型算法正确。
## 2. 环境与启动
1. 使用最新版 Chrome、Edge 或 Firefox,启用 WebAssembly、Web Worker、IndexedDB/OPFS。
2. 解压发布目录,确认 `index.html`、`kernel/FreeCADWebKernel.wasm`、`kernel/FreeCADWebKernel.js` 和 `modules/manifest.json` 存在。
3. 通过 HTTP(S) 服务访问,不要直接双击 `file://`。例如在 `web/dist` 执行 `python3 -m http.server 8080`,浏览器打开 `http://localhost:8080/`。
4. 打开开发者工具 Console,确认无启动异常;Network 中确认 WASM 和模块请求返回 200。
5. 记录浏览器版本、操作系统、屏幕分辨率和测试日期。
## 3. 启动与界面烟测
1. 首次打开应出现项目工作区、文档标签、模型树、属性区和 Three.js 视口。
2. 新建两个文档,切换标签,确认活动文档唯一且模型树互不串扰。
3. 刷新页面,确认应用可以重新启动;若存在恢复提示,记录提示内容。
4. 切换 Part、PartDesign、Sketcher、Draft、BIM、TechDraw、Mesh、FEM、CAM、Spreadsheet、Inspection、Robot、Assembly、Web、Python 等工作台入口,确认页面可进入且无白屏。
5. 改变视口尺寸,执行旋转、平移、缩放、适合视图,确认只影响显示,不改变模型数据。
## 4. 基础建模与 OCCT 几何验证
1. 新建文档,创建 Part Box,输入长度 2、宽度 3、高度 4,应用并重算。
2. 检查属性值和模型树对象名称;若界面提供体积信息,应为约 24。
3. 创建第二个基本体,移动或改变尺寸,确认两个对象同时显示且互不覆盖数据。
4. 执行撤销、重做,确认事务前后属性和模型树一致。
5. 选择对象并删除,再撤销删除;确认选择状态、树节点和视口同步。
6. 对可用的布尔、变换、复制、链接、分组命令各执行一次,确认结果来自 WASM 返回的几何/文档数据,而不是前端生成的替代几何。
## 5. 文档、属性与事务
1. 在模型树选择对象,逐项查看属性;修改长度、角度、颜色、可见性和标签。
2. 点击应用/重算,确认修改后的值保留;取消编辑,确认未提交值不污染文档。
3. 使用复制、剪切、粘贴、删除、选择全部、依赖关系、表达式(如界面提供)并记录结果。
4. 连续执行三次修改后逐级撤销,再逐级重做,确认事务顺序正确。
5. 在两个文档之间切换,确认属性面板始终对应当前活动文档。
## 6. 文件导入、导出、保存与重开
1. 导入示例 STEP 文件,等待 Worker 返回网格,确认模型树对象出现、视口有三角网格且无 NaN/空白。
2. 依次尝试项目支持的 FCStd、STEP、IGES、BREP、STL、OBJ、DXF、IFC 等格式;对不支持格式应显示明确错误,不得静默成功。
3. 保存为 FCStd,确认下载文件或 OPFS 文件列表出现。
4. 修改模型后再次保存,确认文件大小/修改时间变化;关闭文档并重新打开,确认对象数量、标签和关键属性恢复。
5. 导出 STL/网格格式后,用外部查看器检查文件可读;再次导入并比较包围盒、面数或体积(允许记录格式误差)。
6. 浏览器刷新后从 OPFS 选择文档打开,确认持久化恢复;清理站点数据后应明确提示文档已不存在。
## 7. 模型树、链接与结构
1. 创建 Part、VarSet 或等效结构对象,确认树层级、Tip 和选择分组正确。
2. 创建对象链接/子链接,替换链接目标,再解除链接;检查事务、树显示和视口结果。
3. 执行分组、解组、克隆/取消克隆(模块提供时),确认原对象和新对象的生命周期明确。
4. 在结构操作后保存、重开,确认链接关系没有变成空引用。
## 8. 各功能模块验证矩阵
对每个模块至少执行“进入—创建/读取—修改—保存/返回”一条链路,并记录不适用项:
| 模块 | 最低验证动作 |
|---|---|
| Part/PartDesign | 基本体、特征、重算、属性修改 |
| Sketcher | 创建草图/几何约束,退出编辑并保存 |
| Draft/BIM | 创建对象、层级/关系、可见性和窗口焦点 |
| TechDraw | 创建页面/视图,检查页面对象和导出入口 |
| Mesh/STL | 导入网格、显示、导出并重开 |
| Import/STEP/IGES | 导入、生成网格、保存 FCStd |
| FEM/CAM | 打开任务面板,创建可用任务或显示明确依赖提示 |
| Spreadsheet | 新建表格、编辑单元格、表达式/保存 |
| Inspection/Measure | 选择几何、执行测量、读取结果 |
| Assembly/Robot | 创建或读取装配/机器人对象,检查树和变换 |
| Surface/ReverseEngineering | 创建/读取曲面对象,检查属性和显示 |
| OpenSCAD/TemplatePyMod/Python | 执行支持的脚本/导入流程,记录依赖提示 |
| Web/Cloud/Sandbox | 初始化、请求、取消、错误恢复和持久化 |
| Std 命令 | 新建、打开、保存、撤销/重做、工作台和视图命令 |
源语义定义为空操作的 `Std_Test5/6` 等命令,应记录“按桌面语义无业务副作用”,不能判定为缺失。
## 9. Worker、取消与错误恢复
1. 发起一个导入或重算操作,操作未完成前点击取消;确认界面回到可操作状态。
2. 重复提交相同请求,确认不会产生重复对象或重复事务。
3. 输入空文件、损坏文件、无效尺寸和不存在路径,确认返回可理解错误码/消息。
4. 错误后立即执行一次正常 Box 创建或打开已有文档,确认 Worker 和 WASM 实例可继续工作。
5. 观察长任务期间页面仍可切换文档;若业务规定串行,应显示忙碌状态而非无限等待。
## 10. 显示与数据一致性
1. 改变颜色、透明度、可见性和视图模式,确认只改变 Three.js 显示对象。
2. 隐藏/显示对象后保存并重开,按产品定义检查可见性是否持久化。
3. 选中模型树节点,确认视口高亮对象与节点一致;删除后不得残留孤立网格。
4. 检查大模型加载时内存和帧率,记录浏览器 Console 的 WebGL/WASM 警告。
## 11. 上线前准入标准
- 启动、模块加载、WASM 内核烟测全部通过。
- 核心 Part Box、STEP 导入、FCStd 保存/重开、OPFS 恢复链路通过。
- 所有模块入口可达;不支持能力返回明确提示。
- 几何边界审计无发现,Three.js 未进入 Facade/Worker 算法层。
- 关键错误可恢复,无持续空转、重复请求或页面死锁。
- 所有失败项均有复现步骤、日志、截图和责任人;未验证项不得标记为“通过”。
## 12. 缺陷记录模板
记录:日期、浏览器/系统、URL、模块、命令、输入文件 SHA-256、操作步骤、预期、实际、错误消息、Console/Network 日志、截图、是否可重现、严重级别和处理结论。
严重级别:P0(无法启动/数据损坏)、P1(核心建模或保存失败)、P2(单模块功能异常)、P3(显示或文案问题)。P0/P1 未关闭不得上线。
## 13. 已完成自动烟测与用户验证边界
自动烟测已覆盖 WASM 版本、OCCT Box 体积/包围盒、STEP 网格生成与清理、几何边界审计和 Vite 生产打包。浏览器兼容性、真实业务数据、性能容量和最终验收必须由用户按本手册执行并签字确认。
## 14. 逐项执行记录规则
每项测试均按“准备—操作—观察—判定—记录”五步执行。预期结果全部满足记为通过;任一步骤异常记为失败,不得用“基本正常”代替。每项记录测试编号、开始/结束时间、文档名、输入文件、浏览器、实际结果和截图路径。
## 15. 启动与界面逐步测试
### UI-01 首次启动
准备:清空该站点缓存后打开根 URL。操作:等待首页完全加载,观察 Console 和 Network。预期:页面在 30 秒内显示工作区;`FreeCADWebKernel.js/wasm`、`modules/manifest.json` 返回 200;无未捕获异常。失败:白屏、循环加载、WASM 404 或未捕获异常。
### UI-02 文档标签隔离
操作:新建文档 A、B;在 A 创建 Box,在 B 创建不同尺寸 Box;来回切换标签。预期:模型树、属性和视口只显示当前文档内容,修改 A 不改变 B。失败:对象串文档、活动标签错误或切换后树为空。
### UI-03 工作台入口
操作:依次点击各工作台入口,等待每页首屏;返回首页后重复一次。预期:每个入口可达,无白屏;不可用功能显示明确依赖/能力提示。失败:路由 404、加载卡死或静默无响应。
### UI-04 视口交互
操作:在有模型文档中拖拽旋转、滚轮缩放、中键平移、点击适合视图,再调整浏览器窗口大小。预期:模型连续显示、无明显残影,模型数据和属性不变。失败:交互导致模型数据变化、视口崩溃或出现孤立网格。
## 16. 几何与建模逐步测试
### GEO-01 Box 参数与重算
操作:新建文档→Part→Box;输入 2、3、4→应用/重算;读取属性和体积。预期:体积约 24,包围盒约 `[0,0,0]-[2,3,4]`,树中只有一个对象。失败:数值错误、重算失败或体积为空。
### GEO-02 参数修改事务
操作:将长度改为 5→应用;再改为 7→取消;执行撤销、重做各一次。预期:取消后仍为 5;撤销回到 5 之前状态,重做恢复 5;事务顺序稳定。失败:取消仍写入、撤销越界或重做产生重复对象。
### GEO-03 多对象与布尔
操作:创建两个基本体→移动使其相交→执行可用布尔操作→重算。预期:结果对象可选、可见、可保存;原对象处理符合界面语义。失败:前端生成替代几何、结果无拓扑或保存后丢失。
### GEO-04 选择与删除恢复
操作:框选/树选对象→删除→撤销删除→再次删除。预期:树、属性、视口同步更新;撤销后对象完整恢复。失败:残留显示、空树节点或选择指向已删除对象。
## 17. 文件流程逐步测试
### FILE-01 STEP 导入
操作:打开示例 STEP→等待导入完成→检查树、面数/体积和视口→保存 FCStd。预期:树出现导入对象,视口有非空三角网格,保存成功。失败:导入超时、空网格、NaN 或保存文件为 0 字节。
### FILE-02 多格式导入
操作:分别导入项目支持的 IGES、BREP、STL、OBJ、DXF、IFC 文件;每次关闭当前文档后再测下一格式。预期:支持格式有明确对象和显示;不支持格式返回明确错误码。失败:格式错投、静默成功或错误后 Worker 无法继续。
### FILE-03 保存与重开
操作:创建并修改 Box→保存 FCStd→关闭→从文件选择器重开→核对对象数量、标签、尺寸。预期:数据与保存前一致。失败:标签丢失、尺寸回退或重开后空文档。
### FILE-04 OPFS 刷新恢复
操作:保存到 OPFS→刷新页面→在 OPFS 列表选择文件→打开。预期:文件仍在列表,文档和对象恢复;清除站点数据后文件消失并给出提示。失败:刷新后列表丢失、恢复串文档或无提示。
### FILE-05 STL 导出回读
操作:导出 STL→下载到本地→重新导入 STL→比较包围盒和面数。预期:文件可读,几何误差在业务容差内。失败:文件损坏、导入空网格或比例明显错误。
## 18. 文档树、属性和链接逐步测试
### DOC-01 属性编辑
操作:选择对象→依次修改标签、颜色、透明度、可见性和尺寸→应用→保存重开。预期:可编辑属性生效;持久化属性重开后保留。失败:界面值与模型值不一致。
### DOC-02 分组与层级
操作:创建 Part/VarSet→将对象加入/移出→设置 Tip→保存重开。预期:层级、Tip、选择范围一致。失败:树层级错乱或对象丢失。
### DOC-03 链接替换与解除
操作:建立对象链接→替换目标→解除链接→分别撤销/重做。预期:每一步事务可回退,解除后无空引用。失败:旧目标残留、链接指向 null 或重开失效。
## 19. 模块逐步测试通用模板
对表格中的每个模块执行:①进入模块;②创建或打开一个最小对象;③修改一个属性;④执行应用/重算;⑤保存并返回;⑥重新进入检查对象。记录“模块、对象、命令、输入、预期、实际、截图”。模块没有对应数据时,使用其自带示例,并将“依赖不可用”记录为环境结果而非通过。
## 20. Worker 与异常恢复逐步测试
### ERR-01 取消
操作:启动较大的导入或重算→立即点击取消→等待状态结束。预期:状态回到可操作,未产生半成品对象。失败:按钮永久忙碌、页面冻结或产生重复对象。
### ERR-02 非法输入
操作:输入空文件、损坏文件、零/负尺寸、不存在路径。预期:显示明确错误,随后可正常创建 Box。失败:崩溃、无限等待或错误后所有命令失效。
### ERR-03 重复请求
操作:连续双击保存/导入/应用按钮。预期:只生成一个事务和一个对象。失败:重复对象、重复文件或状态计数增长两次。
## 21. 性能和上线前逐步测试
### PERF-01 大文件加载
操作:使用小、中、大三组真实文件,分别记录从选择文件到首个可见网格的时间、峰值内存和浏览器帧率。预期:无崩溃、无持续空转;超出限制时给出提示。失败:浏览器无响应或 Worker 泄漏。
### PERF-02 长时间稳定性
操作:连续执行导入→修改→保存→重开循环 20 次,每 5 次刷新页面。预期:无累计错误、对象数不异常增长、OPFS 列表无重复。失败:错误率上升、内存持续增长或恢复失败。
## 22. 最终签署
完成全部编号后,验收人员填写:通过项数/总项数、失败项及 P0/P1 数量、未测项及原因、浏览器范围、测试数据清单、上线建议和签名日期。存在任何 P0/P1 或未解释的空转/阻塞,不得签署上线;P2/P3 须有明确修复计划和负责人。

View File

@@ -0,0 +1,59 @@
# 用户手册执行报告
开始:2026-09-15T16:06:38.034Z
结束:2026-09-15T16:16:55.147Z
结果:{"passed":0,"failed":1,"blocked":0,"running":0}
本轮测试不是全功能验收。通过仅表示本项已执行的断言成立;阻塞、未覆盖内容不能计入通过。32 个模块入口结果不代表 1452 个命令已经验证。
| 编号 | 项目 | 状态 | 秒 | 证据 / 原因 |
|---|---|---|---|---|
| FILE-02 | 多格式导入 | failed | 616.532 | [1](FILE-02-01.png) [2](FILE-02-02.png) [3](FILE-02-03.png) [4](FILE-02-04.png) [5](FILE-02-05.png) [6](FILE-02-06.png) [7](FILE-02-07.png) Error: File handled timeout (600000 ms): null |
## 按步骤执行过程
### FILE-02 多格式导入
1. STEP 原生文件导出及导入 (passed, 3.328s)
预期:有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确
实际:{"format":"step","file":"/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.step","sha256":"a680fd5f37395a50fa26e442a75991b990c4d700fc209d282991adb13e43aabb","supported":true,"imported":true,"volume":24,"bounds":[0,0,0,2,3,4]}
[截图](FILE-02-01.png) / [状态](FILE-02-01.json)
2. IGES 原生文件导出及导入 (passed, 2.529s)
预期:有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确
实际:{"format":"iges","file":"/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.iges","sha256":"8cfdbabf045b5af130aa99b45509ece9a129964ce1152484f991034e9f377f63","supported":true,"imported":true,"volume":24,"bounds":[0,0,0,2,3,4]}
[截图](FILE-02-02.png) / [状态](FILE-02-02.json)
3. BREP 原生文件导出及导入 (passed, 2.375s)
预期:有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确
实际:{"format":"brep","file":"/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.brep","sha256":"4f6f1036d78a51fe3877703aee0262b7bdfc1c157079607d6588dc98a9bf5821","supported":true,"imported":true,"volume":24,"bounds":[0,0,0,2,3,4]}
[截图](FILE-02-03.png) / [状态](FILE-02-03.json)
4. STL 原生文件导出及导入 (passed, 2.52s)
预期:有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确
实际:{"format":"stl","file":"/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.stl","sha256":"548c0d4d290af2e202cf2745e70e4398b88c760f9a8fd6b22af66e4a6ec71ac7","supported":true,"imported":true,"volume":24,"bounds":[0,0,0,2,3,4]}
[截图](FILE-02-04.png) / [状态](FILE-02-04.json)
5. DXF 本地桌面样本导入 (passed, 2.965s)
预期:复用桌面 DXF 导入链路,非空原生对象
实际:{"direction":"import","documentId":"DxfValidation","format":"dxf","objectCount":8,"objects":[{"label":"0","objectHandle":"Layer","objectType":"App::FeaturePython"},{"label":"Layers","objectHandle":"LayerContainer","objectType":"App::DocumentObjectGroupPython"},{"label":"none","objectHandle":"Layer001","objectType":"App::FeaturePython"},{"label":"Sketch","objectHandle":"Layer002","objectType":"App::FeaturePython"},{"area":0,"isNull":false,"label":"Shape","length":10,"objectHandle":"Shape","objectType":"Part::Feature","volume":0},{"area":0,"isNull":false,"label":"Shape001","length":10,"objectHandle":"Shape001","objectType":"Part::Feature","volume":0},{"area":0,"isNull":false,"label":"Shape002","length":10,"objectHandle":"Shape002","objectType":"Part::Feature","volume":0},{"area":0,"isNull":false,"label":"Shape003","length":10,"objectHandle":"Shape003","objectType":"Part::Feature","volume":0}],"payload":null,"recomputed":true,"resourceReleased":true}
[截图](FILE-02-05.png) / [状态](FILE-02-05.json)
6. OBJ 实际注册能力及文件处理 (passed, 1.055s)
预期:支持则完整导入;依赖或登记缺口记录失败,不伪装支持
实际:{"activeDocument":"Unnamed","command":"Std_Open","documentId":"workbench-document","errors":[],"formats":[{"extension":"FCStd","modules":["FreeCAD"]},{"extension":"BREP","modules":["Part"]},{"extension":"BRP","modules":["Part"]},{"extension":"IFC","modules":["IfcOpenShellNative"]},{"extension":"IGES","modules":["Part"]},{"extension":"IGS","modules":["Part"]},{"extension":"OBJ","modules":["Mesh"]},{"extension":"brep","modules":["Part"]},{"extension":"brp","modules":["Part"]},{"extension":"ifc","modules":["IfcOpenShellNative"]},{"extension":"iges","modules":["Part"]},{"extension":"igs","modules":["Part"]},{"extension":"obj","modules":["Mesh"]}],"opened":[{"documents":[{"filename":"","label":"Unnamed","name":"Unnamed","objectCount":1,"partialRestore":false,"restoreError":false}],"filename":"box_without_lineending.obj","reused":false,"sha256":"df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4"}],"operation":"open","storedFiles":[{"key":"df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4/box_without_lineending.obj","filename":"box_without_lineending.obj"}]}
[截图](FILE-02-06.png) / [状态](FILE-02-06.json)
7. IFC 实际注册能力及文件处理 (failed, 600.344s)
预期:支持则完整导入;依赖或登记缺口记录失败,不伪装支持
实际:"Error: File handled timeout (600000 ms): null"
[截图](FILE-02-07.png) / [状态](FILE-02-07.json)
## 管理与后续
输入手册快照:manual-snapshot.md;结构化结果:results.json;断点:checkpoint.json;浏览器与网络:events.json;环境指纹:environment.json。
隔离 Chrome 配置保留在 /tmp/freecad-user-manual-wO84Kf,仅含本次测试数据。没有清理真实用户站点。
运行同一脚本会创建新的时间戳目录,不覆盖历史证据。FREECAD_MANUAL_IDS 可按逗号指定需要复测的编号。测试中没有更改应用实现或验收登记。

View File

@@ -0,0 +1,357 @@
{
"startedAt": "2026-09-15T16:06:38.034Z",
"updatedAt": "2026-09-15T16:16:55.147Z",
"current": null,
"origin": "http://127.0.0.1:44077",
"profile": "/tmp/freecad-user-manual-wO84Kf",
"scope": "Manual browser tests, not proof of all 1452 registered commands",
"results": [
{
"id": "FILE-02",
"title": "多格式导入",
"status": "failed",
"steps": [
{
"number": 1,
"name": "STEP 原生文件导出及导入",
"expected": "有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确",
"status": "passed",
"startedAt": "2026-09-15T16:06:38.466Z",
"actual": {
"format": "step",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.step",
"sha256": "a680fd5f37395a50fa26e442a75991b990c4d700fc209d282991adb13e43aabb",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
"seconds": 3.328,
"evidence": {
"state": "FILE-02-01.json",
"screenshot": "FILE-02-01.png",
"viewportScreenshot": "FILE-02-01-viewport.png",
"screenshotSha256": "ed5e0939850ec9d203b2178bb4823c1c27f9ee6efa6073892f528e3e86301683"
}
},
{
"number": 2,
"name": "IGES 原生文件导出及导入",
"expected": "有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确",
"status": "passed",
"startedAt": "2026-09-15T16:06:42.064Z",
"actual": {
"format": "iges",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.iges",
"sha256": "8cfdbabf045b5af130aa99b45509ece9a129964ce1152484f991034e9f377f63",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
"seconds": 2.529,
"evidence": {
"state": "FILE-02-02.json",
"screenshot": "FILE-02-02.png",
"viewportScreenshot": "FILE-02-02-viewport.png",
"screenshotSha256": "723d028e943e1ef7727169b50519095a78eb85a2e784f19cad6de55089aa465b"
}
},
{
"number": 3,
"name": "BREP 原生文件导出及导入",
"expected": "有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确",
"status": "passed",
"startedAt": "2026-09-15T16:06:44.810Z",
"actual": {
"format": "brep",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.brep",
"sha256": "4f6f1036d78a51fe3877703aee0262b7bdfc1c157079607d6588dc98a9bf5821",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
"seconds": 2.375,
"evidence": {
"state": "FILE-02-03.json",
"screenshot": "FILE-02-03.png",
"viewportScreenshot": "FILE-02-03-viewport.png",
"screenshotSha256": "a1f487d9c7a279d7fbc155e3eb525f7461506ab4f78f3b014566e8d891037ea6"
}
},
{
"number": 4,
"name": "STL 原生文件导出及导入",
"expected": "有效文件由现有 OCCT 接口生成;导入非空几何,包围盒正确",
"status": "passed",
"startedAt": "2026-09-15T16:06:47.409Z",
"actual": {
"format": "stl",
"file": "/home/mes123456/FreeCADWasmDev/working/FreeCAD/docs/current/user-tests-20260915/manual-2026-09-15T16-06-38-026Z/downloads/Box1.stl",
"sha256": "548c0d4d290af2e202cf2745e70e4398b88c760f9a8fd6b22af66e4a6ec71ac7",
"supported": true,
"imported": true,
"volume": 24,
"bounds": [
0,
0,
0,
2,
3,
4
]
},
"seconds": 2.52,
"evidence": {
"state": "FILE-02-04.json",
"screenshot": "FILE-02-04.png",
"viewportScreenshot": "FILE-02-04-viewport.png",
"screenshotSha256": "d9ad43c55b0bb151c12977f02f731fd795b7d1540bbe7834106f275bc8d62bc2"
}
},
{
"number": 5,
"name": "DXF 本地桌面样本导入",
"expected": "复用桌面 DXF 导入链路,非空原生对象",
"status": "passed",
"startedAt": "2026-09-15T16:06:50.142Z",
"actual": {
"direction": "import",
"documentId": "DxfValidation",
"format": "dxf",
"objectCount": 8,
"objects": [
{
"label": "0",
"objectHandle": "Layer",
"objectType": "App::FeaturePython"
},
{
"label": "Layers",
"objectHandle": "LayerContainer",
"objectType": "App::DocumentObjectGroupPython"
},
{
"label": "none",
"objectHandle": "Layer001",
"objectType": "App::FeaturePython"
},
{
"label": "Sketch",
"objectHandle": "Layer002",
"objectType": "App::FeaturePython"
},
{
"area": 0,
"isNull": false,
"label": "Shape",
"length": 10,
"objectHandle": "Shape",
"objectType": "Part::Feature",
"volume": 0
},
{
"area": 0,
"isNull": false,
"label": "Shape001",
"length": 10,
"objectHandle": "Shape001",
"objectType": "Part::Feature",
"volume": 0
},
{
"area": 0,
"isNull": false,
"label": "Shape002",
"length": 10,
"objectHandle": "Shape002",
"objectType": "Part::Feature",
"volume": 0
},
{
"area": 0,
"isNull": false,
"label": "Shape003",
"length": 10,
"objectHandle": "Shape003",
"objectType": "Part::Feature",
"volume": 0
}
],
"payload": null,
"recomputed": true,
"resourceReleased": true
},
"seconds": 2.965,
"evidence": {
"state": "FILE-02-05.json",
"screenshot": "FILE-02-05.png",
"screenshotSha256": "aa75fe857d00aa1251d7b06b956bb8a06067f351fd22dd3f0fde2c3a24ce5f8d"
}
},
{
"number": 6,
"name": "OBJ 实际注册能力及文件处理",
"expected": "支持则完整导入;依赖或登记缺口记录失败,不伪装支持",
"status": "passed",
"startedAt": "2026-09-15T16:06:53.266Z",
"actual": {
"activeDocument": "Unnamed",
"command": "Std_Open",
"documentId": "workbench-document",
"errors": [],
"formats": [
{
"extension": "FCStd",
"modules": [
"FreeCAD"
]
},
{
"extension": "BREP",
"modules": [
"Part"
]
},
{
"extension": "BRP",
"modules": [
"Part"
]
},
{
"extension": "IFC",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "IGES",
"modules": [
"Part"
]
},
{
"extension": "IGS",
"modules": [
"Part"
]
},
{
"extension": "OBJ",
"modules": [
"Mesh"
]
},
{
"extension": "brep",
"modules": [
"Part"
]
},
{
"extension": "brp",
"modules": [
"Part"
]
},
{
"extension": "ifc",
"modules": [
"IfcOpenShellNative"
]
},
{
"extension": "iges",
"modules": [
"Part"
]
},
{
"extension": "igs",
"modules": [
"Part"
]
},
{
"extension": "obj",
"modules": [
"Mesh"
]
}
],
"opened": [
{
"documents": [
{
"filename": "",
"label": "Unnamed",
"name": "Unnamed",
"objectCount": 1,
"partialRestore": false,
"restoreError": false
}
],
"filename": "box_without_lineending.obj",
"reused": false,
"sha256": "df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4"
}
],
"operation": "open",
"storedFiles": [
{
"key": "df2dc98bacc8cb65f8ec63a087342b803a2144693974c7336047daf6f69d6de4/box_without_lineending.obj",
"filename": "box_without_lineending.obj"
}
]
},
"seconds": 1.055,
"evidence": {
"state": "FILE-02-06.json",
"screenshot": "FILE-02-06.png",
"screenshotSha256": "d6ded408ed92231229addfaf84dcdf214e2d4692b4fd82fd9029f4fba8dddba8"
}
},
{
"number": 7,
"name": "IFC 实际注册能力及文件处理",
"expected": "支持则完整导入;依赖或登记缺口记录失败,不伪装支持",
"status": "failed",
"startedAt": "2026-09-15T16:06:54.485Z",
"error": "Error: File handled timeout (600000 ms): null",
"seconds": 600.344,
"evidence": {
"state": "FILE-02-07.json",
"screenshot": "FILE-02-07.png",
"screenshotSha256": "92c368d821e35cfb22747f8cee35a1b7bd7971d39890b18e3712216cb1c48a2b"
}
}
],
"startedAt": "2026-09-15T16:06:38.466Z",
"error": "Error: File handled timeout (600000 ms): null",
"seconds": 616.532
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

View File

@@ -0,0 +1,223 @@
# Web FreeCAD 用户实际验证与上线手册
版本:1.0
日期:2026-09-15
适用对象:试用用户、业务验收人员、上线值守人员
## 1. 验证原则
本手册验证 Web FreeCAD 的实际可用性,不替代源码审查。几何算法必须由 OCCT WASM 完成,Three.js 只负责显示。验证人员应记录实际结果,不因界面显示正常而推断模型算法正确。
## 2. 环境与启动
1. 使用最新版 Chrome、Edge 或 Firefox,启用 WebAssembly、Web Worker、IndexedDB/OPFS。
2. 解压发布目录,确认 `index.html`、`kernel/FreeCADWebKernel.wasm`、`kernel/FreeCADWebKernel.js` 和 `modules/manifest.json` 存在。
3. 通过 HTTP(S) 服务访问,不要直接双击 `file://`。例如在 `web/dist` 执行 `python3 -m http.server 8080`,浏览器打开 `http://localhost:8080/`。
4. 打开开发者工具 Console,确认无启动异常;Network 中确认 WASM 和模块请求返回 200。
5. 记录浏览器版本、操作系统、屏幕分辨率和测试日期。
## 3. 启动与界面烟测
1. 首次打开应出现项目工作区、文档标签、模型树、属性区和 Three.js 视口。
2. 新建两个文档,切换标签,确认活动文档唯一且模型树互不串扰。
3. 刷新页面,确认应用可以重新启动;若存在恢复提示,记录提示内容。
4. 切换 Part、PartDesign、Sketcher、Draft、BIM、TechDraw、Mesh、FEM、CAM、Spreadsheet、Inspection、Robot、Assembly、Web、Python 等工作台入口,确认页面可进入且无白屏。
5. 改变视口尺寸,执行旋转、平移、缩放、适合视图,确认只影响显示,不改变模型数据。
## 4. 基础建模与 OCCT 几何验证
1. 新建文档,创建 Part Box,输入长度 2、宽度 3、高度 4,应用并重算。
2. 检查属性值和模型树对象名称;若界面提供体积信息,应为约 24。
3. 创建第二个基本体,移动或改变尺寸,确认两个对象同时显示且互不覆盖数据。
4. 执行撤销、重做,确认事务前后属性和模型树一致。
5. 选择对象并删除,再撤销删除;确认选择状态、树节点和视口同步。
6. 对可用的布尔、变换、复制、链接、分组命令各执行一次,确认结果来自 WASM 返回的几何/文档数据,而不是前端生成的替代几何。
## 5. 文档、属性与事务
1. 在模型树选择对象,逐项查看属性;修改长度、角度、颜色、可见性和标签。
2. 点击应用/重算,确认修改后的值保留;取消编辑,确认未提交值不污染文档。
3. 使用复制、剪切、粘贴、删除、选择全部、依赖关系、表达式(如界面提供)并记录结果。
4. 连续执行三次修改后逐级撤销,再逐级重做,确认事务顺序正确。
5. 在两个文档之间切换,确认属性面板始终对应当前活动文档。
## 6. 文件导入、导出、保存与重开
1. 导入示例 STEP 文件,等待 Worker 返回网格,确认模型树对象出现、视口有三角网格且无 NaN/空白。
2. 依次尝试项目支持的 FCStd、STEP、IGES、BREP、STL、OBJ、DXF、IFC 等格式;对不支持格式应显示明确错误,不得静默成功。
3. 保存为 FCStd,确认下载文件或 OPFS 文件列表出现。
4. 修改模型后再次保存,确认文件大小/修改时间变化;关闭文档并重新打开,确认对象数量、标签和关键属性恢复。
5. 导出 STL/网格格式后,用外部查看器检查文件可读;再次导入并比较包围盒、面数或体积(允许记录格式误差)。
6. 浏览器刷新后从 OPFS 选择文档打开,确认持久化恢复;清理站点数据后应明确提示文档已不存在。
## 7. 模型树、链接与结构
1. 创建 Part、VarSet 或等效结构对象,确认树层级、Tip 和选择分组正确。
2. 创建对象链接/子链接,替换链接目标,再解除链接;检查事务、树显示和视口结果。
3. 执行分组、解组、克隆/取消克隆(模块提供时),确认原对象和新对象的生命周期明确。
4. 在结构操作后保存、重开,确认链接关系没有变成空引用。
## 8. 各功能模块验证矩阵
对每个模块至少执行“进入—创建/读取—修改—保存/返回”一条链路,并记录不适用项:
| 模块 | 最低验证动作 |
|---|---|
| Part/PartDesign | 基本体、特征、重算、属性修改 |
| Sketcher | 创建草图/几何约束,退出编辑并保存 |
| Draft/BIM | 创建对象、层级/关系、可见性和窗口焦点 |
| TechDraw | 创建页面/视图,检查页面对象和导出入口 |
| Mesh/STL | 导入网格、显示、导出并重开 |
| Import/STEP/IGES | 导入、生成网格、保存 FCStd |
| FEM/CAM | 打开任务面板,创建可用任务或显示明确依赖提示 |
| Spreadsheet | 新建表格、编辑单元格、表达式/保存 |
| Inspection/Measure | 选择几何、执行测量、读取结果 |
| Assembly/Robot | 创建或读取装配/机器人对象,检查树和变换 |
| Surface/ReverseEngineering | 创建/读取曲面对象,检查属性和显示 |
| OpenSCAD/TemplatePyMod/Python | 执行支持的脚本/导入流程,记录依赖提示 |
| Web/Cloud/Sandbox | 初始化、请求、取消、错误恢复和持久化 |
| Std 命令 | 新建、打开、保存、撤销/重做、工作台和视图命令 |
源语义定义为空操作的 `Std_Test5/6` 等命令,应记录“按桌面语义无业务副作用”,不能判定为缺失。
## 9. Worker、取消与错误恢复
1. 发起一个导入或重算操作,操作未完成前点击取消;确认界面回到可操作状态。
2. 重复提交相同请求,确认不会产生重复对象或重复事务。
3. 输入空文件、损坏文件、无效尺寸和不存在路径,确认返回可理解错误码/消息。
4. 错误后立即执行一次正常 Box 创建或打开已有文档,确认 Worker 和 WASM 实例可继续工作。
5. 观察长任务期间页面仍可切换文档;若业务规定串行,应显示忙碌状态而非无限等待。
## 10. 显示与数据一致性
1. 改变颜色、透明度、可见性和视图模式,确认只改变 Three.js 显示对象。
2. 隐藏/显示对象后保存并重开,按产品定义检查可见性是否持久化。
3. 选中模型树节点,确认视口高亮对象与节点一致;删除后不得残留孤立网格。
4. 检查大模型加载时内存和帧率,记录浏览器 Console 的 WebGL/WASM 警告。
## 11. 上线前准入标准
- 启动、模块加载、WASM 内核烟测全部通过。
- 核心 Part Box、STEP 导入、FCStd 保存/重开、OPFS 恢复链路通过。
- 所有模块入口可达;不支持能力返回明确提示。
- 几何边界审计无发现,Three.js 未进入 Facade/Worker 算法层。
- 关键错误可恢复,无持续空转、重复请求或页面死锁。
- 所有失败项均有复现步骤、日志、截图和责任人;未验证项不得标记为“通过”。
## 12. 缺陷记录模板
记录:日期、浏览器/系统、URL、模块、命令、输入文件 SHA-256、操作步骤、预期、实际、错误消息、Console/Network 日志、截图、是否可重现、严重级别和处理结论。
严重级别:P0(无法启动/数据损坏)、P1(核心建模或保存失败)、P2(单模块功能异常)、P3(显示或文案问题)。P0/P1 未关闭不得上线。
## 13. 已完成自动烟测与用户验证边界
自动烟测已覆盖 WASM 版本、OCCT Box 体积/包围盒、STEP 网格生成与清理、几何边界审计和 Vite 生产打包。浏览器兼容性、真实业务数据、性能容量和最终验收必须由用户按本手册执行并签字确认。
## 14. 逐项执行记录规则
每项测试均按“准备—操作—观察—判定—记录”五步执行。预期结果全部满足记为通过;任一步骤异常记为失败,不得用“基本正常”代替。每项记录测试编号、开始/结束时间、文档名、输入文件、浏览器、实际结果和截图路径。
## 15. 启动与界面逐步测试
### UI-01 首次启动
准备:清空该站点缓存后打开根 URL。操作:等待首页完全加载,观察 Console 和 Network。预期:页面在 30 秒内显示工作区;`FreeCADWebKernel.js/wasm`、`modules/manifest.json` 返回 200;无未捕获异常。失败:白屏、循环加载、WASM 404 或未捕获异常。
### UI-02 文档标签隔离
操作:新建文档 A、B;在 A 创建 Box,在 B 创建不同尺寸 Box;来回切换标签。预期:模型树、属性和视口只显示当前文档内容,修改 A 不改变 B。失败:对象串文档、活动标签错误或切换后树为空。
### UI-03 工作台入口
操作:依次点击各工作台入口,等待每页首屏;返回首页后重复一次。预期:每个入口可达,无白屏;不可用功能显示明确依赖/能力提示。失败:路由 404、加载卡死或静默无响应。
### UI-04 视口交互
操作:在有模型文档中拖拽旋转、滚轮缩放、中键平移、点击适合视图,再调整浏览器窗口大小。预期:模型连续显示、无明显残影,模型数据和属性不变。失败:交互导致模型数据变化、视口崩溃或出现孤立网格。
## 16. 几何与建模逐步测试
### GEO-01 Box 参数与重算
操作:新建文档→Part→Box;输入 2、3、4→应用/重算;读取属性和体积。预期:体积约 24,包围盒约 `[0,0,0]-[2,3,4]`,树中只有一个对象。失败:数值错误、重算失败或体积为空。
### GEO-02 参数修改事务
操作:将长度改为 5→应用;再改为 7→取消;执行撤销、重做各一次。预期:取消后仍为 5;撤销回到 5 之前状态,重做恢复 5;事务顺序稳定。失败:取消仍写入、撤销越界或重做产生重复对象。
### GEO-03 多对象与布尔
操作:创建两个基本体→移动使其相交→执行可用布尔操作→重算。预期:结果对象可选、可见、可保存;原对象处理符合界面语义。失败:前端生成替代几何、结果无拓扑或保存后丢失。
### GEO-04 选择与删除恢复
操作:框选/树选对象→删除→撤销删除→再次删除。预期:树、属性、视口同步更新;撤销后对象完整恢复。失败:残留显示、空树节点或选择指向已删除对象。
## 17. 文件流程逐步测试
### FILE-01 STEP 导入
操作:打开示例 STEP→等待导入完成→检查树、面数/体积和视口→保存 FCStd。预期:树出现导入对象,视口有非空三角网格,保存成功。失败:导入超时、空网格、NaN 或保存文件为 0 字节。
### FILE-02 多格式导入
操作:分别导入项目支持的 IGES、BREP、STL、OBJ、DXF、IFC 文件;每次关闭当前文档后再测下一格式。预期:支持格式有明确对象和显示;不支持格式返回明确错误码。失败:格式错投、静默成功或错误后 Worker 无法继续。
### FILE-03 保存与重开
操作:创建并修改 Box→保存 FCStd→关闭→从文件选择器重开→核对对象数量、标签、尺寸。预期:数据与保存前一致。失败:标签丢失、尺寸回退或重开后空文档。
### FILE-04 OPFS 刷新恢复
操作:保存到 OPFS→刷新页面→在 OPFS 列表选择文件→打开。预期:文件仍在列表,文档和对象恢复;清除站点数据后文件消失并给出提示。失败:刷新后列表丢失、恢复串文档或无提示。
### FILE-05 STL 导出回读
操作:导出 STL→下载到本地→重新导入 STL→比较包围盒和面数。预期:文件可读,几何误差在业务容差内。失败:文件损坏、导入空网格或比例明显错误。
## 18. 文档树、属性和链接逐步测试
### DOC-01 属性编辑
操作:选择对象→依次修改标签、颜色、透明度、可见性和尺寸→应用→保存重开。预期:可编辑属性生效;持久化属性重开后保留。失败:界面值与模型值不一致。
### DOC-02 分组与层级
操作:创建 Part/VarSet→将对象加入/移出→设置 Tip→保存重开。预期:层级、Tip、选择范围一致。失败:树层级错乱或对象丢失。
### DOC-03 链接替换与解除
操作:建立对象链接→替换目标→解除链接→分别撤销/重做。预期:每一步事务可回退,解除后无空引用。失败:旧目标残留、链接指向 null 或重开失效。
## 19. 模块逐步测试通用模板
对表格中的每个模块执行:①进入模块;②创建或打开一个最小对象;③修改一个属性;④执行应用/重算;⑤保存并返回;⑥重新进入检查对象。记录“模块、对象、命令、输入、预期、实际、截图”。模块没有对应数据时,使用其自带示例,并将“依赖不可用”记录为环境结果而非通过。
## 20. Worker 与异常恢复逐步测试
### ERR-01 取消
操作:启动较大的导入或重算→立即点击取消→等待状态结束。预期:状态回到可操作,未产生半成品对象。失败:按钮永久忙碌、页面冻结或产生重复对象。
### ERR-02 非法输入
操作:输入空文件、损坏文件、零/负尺寸、不存在路径。预期:显示明确错误,随后可正常创建 Box。失败:崩溃、无限等待或错误后所有命令失效。
### ERR-03 重复请求
操作:连续双击保存/导入/应用按钮。预期:只生成一个事务和一个对象。失败:重复对象、重复文件或状态计数增长两次。
## 21. 性能和上线前逐步测试
### PERF-01 大文件加载
操作:使用小、中、大三组真实文件,分别记录从选择文件到首个可见网格的时间、峰值内存和浏览器帧率。预期:无崩溃、无持续空转;超出限制时给出提示。失败:浏览器无响应或 Worker 泄漏。
### PERF-02 长时间稳定性
操作:连续执行导入→修改→保存→重开循环 20 次,每 5 次刷新页面。预期:无累计错误、对象数不异常增长、OPFS 列表无重复。失败:错误率上升、内存持续增长或恢复失败。
## 22. 最终签署
完成全部编号后,验收人员填写:通过项数/总项数、失败项及 P0/P1 数量、未测项及原因、浏览器范围、测试数据清单、上线建议和签名日期。存在任何 P0/P1 或未解释的空转/阻塞,不得签署上线;P2/P3 须有明确修复计划和负责人。

View File

@@ -0,0 +1,34 @@
# 用户手册执行报告
开始:2026-09-15T16:24:54.261Z
结束:2026-09-15T16:28:32.432Z
结果:{"passed":1,"failed":0,"blocked":0,"running":0}
本轮测试不是全功能验收。通过仅表示本项已执行的断言成立;阻塞、未覆盖内容不能计入通过。32 个模块入口结果不代表 1452 个命令已经验证。
| 编号 | 项目 | 状态 | 秒 | 证据 / 原因 |
|---|---|---|---|---|
| FIX-IFC-REOPEN | IFC 原生文档保存重开回归 | passed | 217.656 | [1](FIX-IFC-REOPEN-01.png) [2](FIX-IFC-REOPEN-02.png) |
## 按步骤执行过程
### FIX-IFC-REOPEN IFC 原生文档保存重开回归
1. 打开实际 IFC 导入后保存的 FCStd (passed, 82.767s)
预期:147 个对象恢复,空间层级及原生几何仍存在,视口非空
实际:{"documentId":"IfcValidation","documents":[{"filename":"/home/web_user/.local/share/FreeCADWeb/v1-2/WebOpenFiles/3ecba28f150859a16685a8c2497076dd1802077c5c285233f0f5235605a6a552/IfcValidation.FCStd","label":"IfcValidation","name":"IfcValidation","objectCount":147,"partialRestore":false,"restoreError":false}],"meshCount":134}
[截图](FIX-IFC-REOPEN-01.png) / [状态](FIX-IFC-REOPEN-01.json)
2. 核对恢复后实体及原始 IFC 附件 (passed, 124.71s)
预期:实体、空间分组、IFC GlobalId 和内嵌源文件保留
实际:{"groups":12,"solids":134,"source":"/home/web_user/.cache/FreeCADWeb/Cache/FreeCADWeb_Doc_63e2369a-ade8-4439-9efb-d207b1019d8c_4a4dab_863658/original.ifc","ids":146}
[截图](FIX-IFC-REOPEN-02.png) / [状态](FIX-IFC-REOPEN-02.json)
## 管理与后续
输入手册快照:manual-snapshot.md;结构化结果:results.json;断点:checkpoint.json;浏览器与网络:events.json;环境指纹:environment.json。
隔离 Chrome 配置保留在 /tmp/freecad-user-manual-jbRpjP,仅含本次测试数据。没有清理真实用户站点。
运行同一脚本会创建新的时间戳目录,不覆盖历史证据。FREECAD_MANUAL_IDS 可按逗号指定需要复测的编号。测试中没有更改应用实现或验收登记。

View File

@@ -0,0 +1,67 @@
{
"startedAt": "2026-09-15T16:24:54.261Z",
"updatedAt": "2026-09-15T16:28:32.432Z",
"current": null,
"origin": "http://127.0.0.1:37245",
"profile": "/tmp/freecad-user-manual-jbRpjP",
"scope": "Manual browser tests, not proof of all 1452 registered commands",
"results": [
{
"id": "FIX-IFC-REOPEN",
"title": "IFC 原生文档保存重开回归",
"status": "passed",
"steps": [
{
"number": 1,
"name": "打开实际 IFC 导入后保存的 FCStd",
"expected": "147 个对象恢复,空间层级及原生几何仍存在,视口非空",
"status": "passed",
"startedAt": "2026-09-15T16:24:54.703Z",
"actual": {
"documentId": "IfcValidation",
"documents": [
{
"filename": "/home/web_user/.local/share/FreeCADWeb/v1-2/WebOpenFiles/3ecba28f150859a16685a8c2497076dd1802077c5c285233f0f5235605a6a552/IfcValidation.FCStd",
"label": "IfcValidation",
"name": "IfcValidation",
"objectCount": 147,
"partialRestore": false,
"restoreError": false
}
],
"meshCount": 134
},
"seconds": 82.767,
"evidence": {
"state": "FIX-IFC-REOPEN-01.json",
"screenshot": "FIX-IFC-REOPEN-01.png",
"viewportScreenshot": "FIX-IFC-REOPEN-01-viewport.png",
"screenshotSha256": "7229855f655f6aa30380081ea52f830bce8ca9db15d7160f4c8950fbcffdeb74"
}
},
{
"number": 2,
"name": "核对恢复后实体及原始 IFC 附件",
"expected": "实体、空间分组、IFC GlobalId 和内嵌源文件保留",
"status": "passed",
"startedAt": "2026-09-15T16:26:27.112Z",
"actual": {
"groups": 12,
"solids": 134,
"source": "/home/web_user/.cache/FreeCADWeb/Cache/FreeCADWeb_Doc_63e2369a-ade8-4439-9efb-d207b1019d8c_4a4dab_863658/original.ifc",
"ids": 146
},
"seconds": 124.71,
"evidence": {
"state": "FIX-IFC-REOPEN-02.json",
"screenshot": "FIX-IFC-REOPEN-02.png",
"viewportScreenshot": "FIX-IFC-REOPEN-02-viewport.png",
"screenshotSha256": "492dafbea949ef3e375aea3d71d8165fd3a28d595d805cf7a49b497bc902dacb"
}
}
],
"startedAt": "2026-09-15T16:24:54.702Z",
"seconds": 217.656
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:35085/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.step\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.step: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 6 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n6\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.step\nTool\n选择对象\nBox1.step\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.step",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.step: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.step",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.step",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:35085/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.iges\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.iges: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 6 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n6\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.iges\nTool\n选择对象\nBox1.iges\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.iges",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.iges: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.iges",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.iges",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:35085/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.brep\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.brep: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 6 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n6\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.brep\nTool\n选择对象\nBox1.brep\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.brep",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.brep: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.brep",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.brep",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,477 @@
{
"url": "http://127.0.0.1:35085/",
"isolated": true,
"sharedArrayBuffer": "function",
"ready": "complete",
"text": "3D 视图\nDocument\n主链\n工程\n全线\n工作台\nPython\nAssembly\nBIM\nCAM\nCloud\nDraft\nFem\nHelp\nImport\nInspection\nJtReader\nMaterial\nMeasure\nMesh\nMeshPart\nOpenSCAD\nPart\nPartDesign\nPlot\nPoints\nReverseEngineering\nRobot\nSandbox\nShow\nSketcher\nSpreadsheet\nStart\nSurface\nTechDraw\nTemplatePyMod\nTest\nTux\nWeb\nFC\nFreeCAD 1.2 Web\nProject session\nDocuments\nproject-document-1\nrevision 1 · dirty\nproject-document-2\nrevision 0 · clean\n新建 Document\n关闭活动 Document\nObjects\nBox1.stl\nNew Group\nproject-document-1\nView Tools \nNone\nDraw Style\nAlign to Selection\nBox Selection\nBox Element Selection\n轴十字\n转台\n速度\n停止\n选择重叠对象\n视图\n顶视图\n底视图\n前视图\n后视图\n左视图\n右视图\n等轴测\n正二轴测\n正三轴测\n\nImported Box1.stl: 12 triangles\n\n导入 STEP / IGES / BREP / STL\n导出格式\nSTL\nSTEP\nIGES\nBREP\n适合全部对象\n创建长方体\n保存 FCStd 到 OPFS\n下载 native FCStd\nOPFS 文档\n选择文档\n打开 OPFS 文档\n刷新 OPFS 文档\n保存工程 checkpoint\n恢复工程 checkpoint\nQueue / recovery\njobs=0 pending=0 failures=0\nNo recovery failures\nReplay pendingQuarantine pending\nImported native mesh\n36 vertices · 12 triangles · 12 faces\nProperties\nLabel\nColor\nVisibility\nSource\nweb_project_document_1.FCStd\nFaces\n12\nTriangles\n12\n移除对象\n位置\nX\nY\nZ\n布尔运算\nBase\n选择对象\nBox1.stl\nTool\n选择对象\nBox1.stl\n创建\n重算\nBox dimensions\nLength\nWidth\nHeight\n应用尺寸并重算\n取消尺寸编辑\n原生实体\nRadius\nHeight\nAngle\n创建圆柱\n重算\nVolume\n24.000000\nBounds (mm)\nMin X: 0.000000\nMin Y: 0.000000\nMin Z: 0.000000\nMax X: 2.000000\nMax Y: 3.000000\nMax Z: 4.000000\nproject-document-1\n1 objects\nRecent files\n1\nCheckpoint\nlocalStorage metadata only",
"tabs": [
{
"text": "project-document-1\nrevision 1 · dirty",
"active": true
},
{
"text": "project-document-2\nrevision 0 · clean",
"active": false
}
],
"objects": [
{
"id": "native:Imported1",
"text": "Box1.stl",
"selected": "true"
}
],
"status": [
"",
"Imported Box1.stl: 12 triangles",
""
],
"controls": [
{
"tag": "BUTTON",
"label": "project-document-1revision 1 · dirty",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "project-document-2revision 0 · clean",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "新建 Document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "关闭活动 Document",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Visible Box1.stl",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "",
"value": "Group",
"disabled": false
},
{
"tag": "SELECT",
"label": "Document root",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Refresh groups",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Create group",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "NoneDraw StyleAlign to SelectionBox SelectionBox Element Selection",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出依赖图 (.gv)",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "撤销",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重做",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Axis cross",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable",
"value": "on",
"disabled": false
},
{
"tag": "INPUT",
"label": "Turntable speed",
"value": "2",
"disabled": false
},
{
"tag": "BUTTON",
"label": "停止",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "选择重叠对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "标准视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "放大",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "缩小",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适配全部",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向左旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "向右旋转视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "存储工作视图",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工作视图",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Import STEP files",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Native export format",
"value": "stl",
"disabled": false
},
{
"tag": "BUTTON",
"label": "导出选中对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "适合全部对象",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建长方体",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存 FCStd 到 OPFS",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "下载 native FCStd",
"value": "",
"disabled": true
},
{
"tag": "SELECT",
"label": "OPFS document",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "打开 OPFS 文档",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "刷新 OPFS 文档",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "保存工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "恢复工程 checkpoint",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Replay pending",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Quarantine pending",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Label",
"value": "Box1.stl",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Color",
"value": "#73c6d4",
"disabled": false
},
{
"tag": "INPUT",
"label": "Object Visibility",
"value": "on",
"disabled": false
},
{
"tag": "BUTTON",
"label": "移除对象",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position X",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Y",
"value": "0",
"disabled": false
},
{
"tag": "INPUT",
"label": "Position Z",
"value": "0",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用位置",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "并集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "差集",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交集",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Base",
"value": "Imported1",
"disabled": false
},
{
"tag": "BUTTON",
"label": "交换运算对象",
"value": "",
"disabled": false
},
{
"tag": "SELECT",
"label": "Boolean Tool",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
},
{
"tag": "INPUT",
"label": "Length",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Width",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Height",
"value": "10",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Cube",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 1",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "Box Fix 2",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "应用尺寸并重算",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "取消尺寸编辑",
"value": "",
"disabled": true
},
{
"tag": "BUTTON",
"label": "圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆锥",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "球",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "圆环",
"value": "",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Radius",
"value": "5",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Height",
"value": "10",
"disabled": false
},
{
"tag": "INPUT",
"label": "Primitive Angle",
"value": "360",
"disabled": false
},
{
"tag": "BUTTON",
"label": "创建圆柱",
"value": "",
"disabled": false
},
{
"tag": "BUTTON",
"label": "重算",
"value": "",
"disabled": true
}
],
"volume": "24.000000",
"workbench": null,
"canvases": [
{
"width": 817,
"height": 440
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

View File

@@ -0,0 +1,286 @@
DBRep_DrawableShape
CASCADE Topology V1, (c) Matra-Datavision
Locations 1
1
1 0 0 0
0 1 0 0
0 0 1 0
Curve2ds 24
1 0 0 1 0
1 0 0 1 0
1 4 0 0 -1
1 0 0 0 1
1 0 -3 1 0
1 0 0 1 0
1 0 0 0 -1
1 0 0 0 1
1 0 0 1 0
1 0 2 1 0
1 4 0 0 -1
1 2 0 0 1
1 0 -3 1 0
1 0 2 1 0
1 0 0 0 -1
1 2 0 0 1
1 0 0 0 1
1 0 0 1 0
1 4 0 0 1
1 0 0 1 0
1 0 0 0 1
1 0 3 1 0
1 4 0 0 1
1 0 3 1 0
Curves 12
1 0 0 0 0 0 1
1 0 0 4 -0 1 0
1 0 3 0 0 0 1
1 0 0 0 -0 1 0
1 2 0 0 0 0 1
1 2 0 4 -0 1 0
1 2 3 0 0 0 1
1 2 0 0 -0 1 0
1 0 0 0 1 0 -0
1 0 0 4 1 0 -0
1 0 3 0 1 0 -0
1 0 3 4 1 0 -0
Polygon3D 0
PolygonOnTriangulations 0
Surfaces 6
1 0 0 0 1 0 -0 0 0 1 0 -1 0
1 0 0 0 -0 1 0 0 0 1 1 0 -0
1 0 0 4 0 0 1 1 0 -0 -0 1 0
1 0 3 0 -0 1 0 0 0 1 1 0 -0
1 0 0 0 0 0 1 1 0 -0 -0 1 0
1 2 0 0 1 0 -0 0 0 1 0 -1 0
Triangulations 0
TShapes 34
Ve
1e-07
0 0 4
0 0
0101101
*
Ve
1e-07
0 0 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 1 0 0 4
2 1 1 0 0 4
2 2 2 0 0 4
0
0101000
-34 0 +33 0 *
Ve
1e-07
0 3 4
0 0
0101101
*
Ed
1e-07 1 1 0
1 2 0 0 3
2 3 1 0 0 3
2 4 3 0 0 3
0
0101000
-31 0 +34 0 *
Ve
1e-07
0 3 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 3 0 0 4
2 5 1 0 0 4
2 6 4 0 0 4
0
0101000
-31 0 +29 0 *
Ed
1e-07 1 1 0
1 4 0 0 3
2 7 1 0 0 3
2 8 5 0 0 3
0
0101000
-29 0 +33 0 *
Wi
0101100
-32 0 -30 0 +28 0 +27 0 *
Fa
0 1e-07 1 0
0101000
+26 0 *
Ve
1e-07
2 0 4
0 0
0101101
*
Ve
1e-07
2 0 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 5 0 0 4
2 9 6 0 0 4
2 10 2 0 0 4
0
0101000
-24 0 +23 0 *
Ve
1e-07
2 3 4
0 0
0101101
*
Ed
1e-07 1 1 0
1 6 0 0 3
2 11 6 0 0 3
2 12 3 0 0 3
0
0101000
-21 0 +24 0 *
Ve
1e-07
2 3 0
0 0
0101101
*
Ed
1e-07 1 1 0
1 7 0 0 4
2 13 6 0 0 4
2 14 4 0 0 4
0
0101000
-21 0 +19 0 *
Ed
1e-07 1 1 0
1 8 0 0 3
2 15 6 0 0 3
2 16 5 0 0 3
0
0101000
-19 0 +23 0 *
Wi
0101100
-22 0 -20 0 +18 0 +17 0 *
Fa
0 1e-07 6 0
0101000
+16 0 *
Ed
1e-07 1 1 0
1 9 0 0 2
2 17 2 0 0 2
2 18 5 0 0 2
0
0101000
-23 0 +33 0 *
Ed
1e-07 1 1 0
1 10 0 0 2
2 19 2 0 0 2
2 20 3 0 0 2
0
0101000
-24 0 +34 0 *
Wi
0101100
-14 0 -22 0 +13 0 +32 0 *
Fa
0 1e-07 2 0
0101000
+12 0 *
Ed
1e-07 1 1 0
1 11 0 0 2
2 21 4 0 0 2
2 22 5 0 0 2
0
0101000
-19 0 +29 0 *
Ed
1e-07 1 1 0
1 12 0 0 2
2 23 4 0 0 2
2 24 3 0 0 2
0
0101000
-21 0 +31 0 *
Wi
0101100
-10 0 -18 0 +9 0 +28 0 *
Fa
0 1e-07 4 0
0101000
+8 0 *
Wi
0101100
-27 0 -10 0 +17 0 +14 0 *
Fa
0 1e-07 5 0
0101000
+6 0 *
Wi
0101100
-30 0 -9 0 +20 0 +13 0 *
Fa
0 1e-07 3 0
0101000
+4 0 *
Sh
0101100
-25 0 +15 0 -11 0 +7 0 -5 0 +3 0 *
So
1100000
+2 0 *
+1 1

View File

@@ -0,0 +1,153 @@
S0000001
,,31HOpen CASCADE IGES processor 7.6,13HFilename.iges, G0000001
16HOpen CASCADE 7.6,31HOpen CASCADE IGES processor 7.6,32,308,15,308,15,G0000002
,1.,2,2HMM,1,0.01,15H20260916.004112,1E-07,4.,,,11,0,15H20260916.004112,G0000003
; G0000004
402 1 0 0 0 0 0 000000000D0000001
402 0 0 1 1 0D0000002
144 2 0 0 0 0 0 000020000D0000003
144 0 0 1 0 0D0000004
108 3 0 0 0 0 0 000010000D0000005
108 0 0 1 0 0D0000006
142 4 0 0 0 0 0 000010500D0000007
142 0 0 1 0 0D0000008
102 5 0 0 0 0 0 000010000D0000009
102 0 0 1 0 0D0000010
110 6 0 0 0 0 0 000010000D0000011
110 0 0 1 0 0D0000012
110 7 0 0 0 0 0 000010000D0000013
110 0 0 1 0 0D0000014
110 8 0 0 0 0 0 000010000D0000015
110 0 0 1 0 0D0000016
110 9 0 0 0 0 0 000010000D0000017
110 0 0 1 0 0D0000018
144 10 0 0 0 0 0 000020000D0000019
144 0 0 1 0 0D0000020
108 11 0 0 0 0 0 000010000D0000021
108 0 0 1 0 0D0000022
142 12 0 0 0 0 0 000010500D0000023
142 0 0 1 0 0D0000024
102 13 0 0 0 0 0 000010000D0000025
102 0 0 1 0 0D0000026
110 14 0 0 0 0 0 000010000D0000027
110 0 0 1 0 0D0000028
110 15 0 0 0 0 0 000010000D0000029
110 0 0 1 0 0D0000030
110 16 0 0 0 0 0 000010000D0000031
110 0 0 1 0 0D0000032
110 17 0 0 0 0 0 000010000D0000033
110 0 0 1 0 0D0000034
144 18 0 0 0 0 0 000020000D0000035
144 0 0 1 0 0D0000036
108 19 0 0 0 0 0 000010000D0000037
108 0 0 1 0 0D0000038
142 20 0 0 0 0 0 000010500D0000039
142 0 0 1 0 0D0000040
102 21 0 0 0 0 0 000010000D0000041
102 0 0 1 0 0D0000042
110 22 0 0 0 0 0 000010000D0000043
110 0 0 1 0 0D0000044
110 23 0 0 0 0 0 000010000D0000045
110 0 0 1 0 0D0000046
110 24 0 0 0 0 0 000010000D0000047
110 0 0 1 0 0D0000048
110 25 0 0 0 0 0 000010000D0000049
110 0 0 1 0 0D0000050
144 26 0 0 0 0 0 000020000D0000051
144 0 0 1 0 0D0000052
108 27 0 0 0 0 0 000010000D0000053
108 0 0 1 0 0D0000054
142 28 0 0 0 0 0 000010500D0000055
142 0 0 1 0 0D0000056
102 29 0 0 0 0 0 000010000D0000057
102 0 0 1 0 0D0000058
110 30 0 0 0 0 0 000010000D0000059
110 0 0 1 0 0D0000060
110 31 0 0 0 0 0 000010000D0000061
110 0 0 1 0 0D0000062
110 32 0 0 0 0 0 000010000D0000063
110 0 0 1 0 0D0000064
110 33 0 0 0 0 0 000010000D0000065
110 0 0 1 0 0D0000066
144 34 0 0 0 0 0 000020000D0000067
144 0 0 1 0 0D0000068
108 35 0 0 0 0 0 000010000D0000069
108 0 0 1 0 0D0000070
142 36 0 0 0 0 0 000010500D0000071
142 0 0 1 0 0D0000072
102 37 0 0 0 0 0 000010000D0000073
102 0 0 1 0 0D0000074
110 38 0 0 0 0 0 000010000D0000075
110 0 0 1 0 0D0000076
110 39 0 0 0 0 0 000010000D0000077
110 0 0 1 0 0D0000078
110 40 0 0 0 0 0 000010000D0000079
110 0 0 1 0 0D0000080
110 41 0 0 0 0 0 000010000D0000081
110 0 0 1 0 0D0000082
144 42 0 0 0 0 0 000020000D0000083
144 0 0 1 0 0D0000084
108 43 0 0 0 0 0 000010000D0000085
108 0 0 1 0 0D0000086
142 44 0 0 0 0 0 000010500D0000087
142 0 0 1 0 0D0000088
102 45 0 0 0 0 0 000010000D0000089
102 0 0 1 0 0D0000090
110 46 0 0 0 0 0 000010000D0000091
110 0 0 1 0 0D0000092
110 47 0 0 0 0 0 000010000D0000093
110 0 0 1 0 0D0000094
110 48 0 0 0 0 0 000010000D0000095
110 0 0 1 0 0D0000096
110 49 0 0 0 0 0 000010000D0000097
110 0 0 1 0 0D0000098
402,6,3,19,35,51,67,83; 0000001P0000001
144,5,1,0,7; 0000003P0000002
108,-1.,-0.,-0.,-0.,0,0.,0.,0.,0.; 0000005P0000003
142,0,5,0,9,2; 0000007P0000004
102,4,11,13,15,17; 0000009P0000005
110,0.,3.,0.,0.,0.,0.; 0000011P0000006
110,0.,0.,0.,0.,0.,4.; 0000013P0000007
110,0.,0.,4.,0.,3.,4.; 0000015P0000008
110,0.,3.,4.,0.,3.,0.; 0000017P0000009
144,21,1,0,23; 0000019P0000010
108,1.,0.,0.,2.,0,2.,0.,0.,0.; 0000021P0000011
142,0,21,0,25,2; 0000023P0000012
102,4,27,29,31,33; 0000025P0000013
110,2.,0.,4.,2.,0.,0.; 0000027P0000014
110,2.,0.,0.,2.,3.,0.; 0000029P0000015
110,2.,3.,0.,2.,3.,4.; 0000031P0000016
110,2.,3.,4.,2.,0.,4.; 0000033P0000017
144,37,1,0,39; 0000035P0000018
108,-0.,-1.,-0.,-0.,0,0.,0.,0.,0.; 0000037P0000019
142,0,37,0,41,2; 0000039P0000020
102,4,43,45,47,49; 0000041P0000021
110,0.,0.,4.,0.,0.,0.; 0000043P0000022
110,0.,0.,0.,2.,0.,0.; 0000045P0000023
110,2.,0.,0.,2.,0.,4.; 0000047P0000024
110,2.,0.,4.,0.,0.,4.; 0000049P0000025
144,53,1,0,55; 0000051P0000026
108,0.,1.,0.,3.,0,0.,3.,0.,0.; 0000053P0000027
142,0,53,0,57,2; 0000055P0000028
102,4,59,61,63,65; 0000057P0000029
110,2.,3.,0.,0.,3.,0.; 0000059P0000030
110,0.,3.,0.,0.,3.,4.; 0000061P0000031
110,0.,3.,4.,2.,3.,4.; 0000063P0000032
110,2.,3.,4.,2.,3.,0.; 0000065P0000033
144,69,1,0,71; 0000067P0000034
108,-0.,-0.,-1.,-0.,0,0.,0.,0.,0.; 0000069P0000035
142,0,69,0,73,2; 0000071P0000036
102,4,75,77,79,81; 0000073P0000037
110,2.,0.,0.,0.,0.,0.; 0000075P0000038
110,0.,0.,0.,0.,3.,0.; 0000077P0000039
110,0.,3.,0.,2.,3.,0.; 0000079P0000040
110,2.,3.,0.,2.,0.,0.; 0000081P0000041
144,85,1,0,87; 0000083P0000042
108,0.,0.,1.,4.,0,0.,0.,4.,0.; 0000085P0000043
142,0,85,0,89,2; 0000087P0000044
102,4,91,93,95,97; 0000089P0000045
110,0.,3.,4.,0.,0.,4.; 0000091P0000046
110,0.,0.,4.,2.,0.,4.; 0000093P0000047
110,2.,0.,4.,2.,3.,4.; 0000095P0000048
110,2.,3.,4.,0.,3.,4.; 0000097P0000049
S 1G 4D 98P 49 T0000001

View File

@@ -0,0 +1,187 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
FILE_NAME('Open CASCADE Shape Model','2026-09-16T00:41:10',('FreeCAD'),(
'FreeCAD'),'Open CASCADE STEP processor 7.6','FreeCAD','Unknown');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
DATA;
#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
'automotive_design',2000,#2);
#2 = APPLICATION_CONTEXT(
'core data for automotive mechanical design processes');
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
#5 = PRODUCT_DEFINITION('design','',#6,#9);
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
#7 = PRODUCT('Open CASCADE STEP translator 7.6 1',
'Open CASCADE STEP translator 7.6 1','',(#8));
#8 = PRODUCT_CONTEXT('',#2,'mechanical');
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#10 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#15),#165);
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
#12 = CARTESIAN_POINT('',(0.,0.,0.));
#13 = DIRECTION('',(0.,0.,1.));
#14 = DIRECTION('',(1.,0.,-0.));
#15 = MANIFOLD_SOLID_BREP('',#16);
#16 = CLOSED_SHELL('',(#17,#57,#97,#119,#141,#153));
#17 = ADVANCED_FACE('',(#18),#52,.F.);
#18 = FACE_BOUND('',#19,.F.);
#19 = EDGE_LOOP('',(#20,#30,#38,#46));
#20 = ORIENTED_EDGE('',*,*,#21,.F.);
#21 = EDGE_CURVE('',#22,#24,#26,.T.);
#22 = VERTEX_POINT('',#23);
#23 = CARTESIAN_POINT('',(0.,0.,0.));
#24 = VERTEX_POINT('',#25);
#25 = CARTESIAN_POINT('',(0.,0.,4.));
#26 = LINE('',#27,#28);
#27 = CARTESIAN_POINT('',(0.,0.,0.));
#28 = VECTOR('',#29,1.);
#29 = DIRECTION('',(0.,0.,1.));
#30 = ORIENTED_EDGE('',*,*,#31,.T.);
#31 = EDGE_CURVE('',#22,#32,#34,.T.);
#32 = VERTEX_POINT('',#33);
#33 = CARTESIAN_POINT('',(0.,3.,0.));
#34 = LINE('',#35,#36);
#35 = CARTESIAN_POINT('',(0.,0.,0.));
#36 = VECTOR('',#37,1.);
#37 = DIRECTION('',(0.,1.,0.));
#38 = ORIENTED_EDGE('',*,*,#39,.T.);
#39 = EDGE_CURVE('',#32,#40,#42,.T.);
#40 = VERTEX_POINT('',#41);
#41 = CARTESIAN_POINT('',(0.,3.,4.));
#42 = LINE('',#43,#44);
#43 = CARTESIAN_POINT('',(0.,3.,0.));
#44 = VECTOR('',#45,1.);
#45 = DIRECTION('',(0.,0.,1.));
#46 = ORIENTED_EDGE('',*,*,#47,.F.);
#47 = EDGE_CURVE('',#24,#40,#48,.T.);
#48 = LINE('',#49,#50);
#49 = CARTESIAN_POINT('',(0.,0.,4.));
#50 = VECTOR('',#51,1.);
#51 = DIRECTION('',(0.,1.,0.));
#52 = PLANE('',#53);
#53 = AXIS2_PLACEMENT_3D('',#54,#55,#56);
#54 = CARTESIAN_POINT('',(0.,0.,0.));
#55 = DIRECTION('',(1.,0.,0.));
#56 = DIRECTION('',(0.,0.,1.));
#57 = ADVANCED_FACE('',(#58),#92,.T.);
#58 = FACE_BOUND('',#59,.T.);
#59 = EDGE_LOOP('',(#60,#70,#78,#86));
#60 = ORIENTED_EDGE('',*,*,#61,.F.);
#61 = EDGE_CURVE('',#62,#64,#66,.T.);
#62 = VERTEX_POINT('',#63);
#63 = CARTESIAN_POINT('',(2.,0.,0.));
#64 = VERTEX_POINT('',#65);
#65 = CARTESIAN_POINT('',(2.,0.,4.));
#66 = LINE('',#67,#68);
#67 = CARTESIAN_POINT('',(2.,0.,0.));
#68 = VECTOR('',#69,1.);
#69 = DIRECTION('',(0.,0.,1.));
#70 = ORIENTED_EDGE('',*,*,#71,.T.);
#71 = EDGE_CURVE('',#62,#72,#74,.T.);
#72 = VERTEX_POINT('',#73);
#73 = CARTESIAN_POINT('',(2.,3.,0.));
#74 = LINE('',#75,#76);
#75 = CARTESIAN_POINT('',(2.,0.,0.));
#76 = VECTOR('',#77,1.);
#77 = DIRECTION('',(0.,1.,0.));
#78 = ORIENTED_EDGE('',*,*,#79,.T.);
#79 = EDGE_CURVE('',#72,#80,#82,.T.);
#80 = VERTEX_POINT('',#81);
#81 = CARTESIAN_POINT('',(2.,3.,4.));
#82 = LINE('',#83,#84);
#83 = CARTESIAN_POINT('',(2.,3.,0.));
#84 = VECTOR('',#85,1.);
#85 = DIRECTION('',(0.,0.,1.));
#86 = ORIENTED_EDGE('',*,*,#87,.F.);
#87 = EDGE_CURVE('',#64,#80,#88,.T.);
#88 = LINE('',#89,#90);
#89 = CARTESIAN_POINT('',(2.,0.,4.));
#90 = VECTOR('',#91,1.);
#91 = DIRECTION('',(0.,1.,0.));
#92 = PLANE('',#93);
#93 = AXIS2_PLACEMENT_3D('',#94,#95,#96);
#94 = CARTESIAN_POINT('',(2.,0.,0.));
#95 = DIRECTION('',(1.,0.,0.));
#96 = DIRECTION('',(0.,0.,1.));
#97 = ADVANCED_FACE('',(#98),#114,.F.);
#98 = FACE_BOUND('',#99,.F.);
#99 = EDGE_LOOP('',(#100,#106,#107,#113));
#100 = ORIENTED_EDGE('',*,*,#101,.F.);
#101 = EDGE_CURVE('',#22,#62,#102,.T.);
#102 = LINE('',#103,#104);
#103 = CARTESIAN_POINT('',(0.,0.,0.));
#104 = VECTOR('',#105,1.);
#105 = DIRECTION('',(1.,0.,0.));
#106 = ORIENTED_EDGE('',*,*,#21,.T.);
#107 = ORIENTED_EDGE('',*,*,#108,.T.);
#108 = EDGE_CURVE('',#24,#64,#109,.T.);
#109 = LINE('',#110,#111);
#110 = CARTESIAN_POINT('',(0.,0.,4.));
#111 = VECTOR('',#112,1.);
#112 = DIRECTION('',(1.,0.,0.));
#113 = ORIENTED_EDGE('',*,*,#61,.F.);
#114 = PLANE('',#115);
#115 = AXIS2_PLACEMENT_3D('',#116,#117,#118);
#116 = CARTESIAN_POINT('',(0.,0.,0.));
#117 = DIRECTION('',(0.,1.,0.));
#118 = DIRECTION('',(0.,0.,1.));
#119 = ADVANCED_FACE('',(#120),#136,.T.);
#120 = FACE_BOUND('',#121,.T.);
#121 = EDGE_LOOP('',(#122,#128,#129,#135));
#122 = ORIENTED_EDGE('',*,*,#123,.F.);
#123 = EDGE_CURVE('',#32,#72,#124,.T.);
#124 = LINE('',#125,#126);
#125 = CARTESIAN_POINT('',(0.,3.,0.));
#126 = VECTOR('',#127,1.);
#127 = DIRECTION('',(1.,0.,0.));
#128 = ORIENTED_EDGE('',*,*,#39,.T.);
#129 = ORIENTED_EDGE('',*,*,#130,.T.);
#130 = EDGE_CURVE('',#40,#80,#131,.T.);
#131 = LINE('',#132,#133);
#132 = CARTESIAN_POINT('',(0.,3.,4.));
#133 = VECTOR('',#134,1.);
#134 = DIRECTION('',(1.,0.,0.));
#135 = ORIENTED_EDGE('',*,*,#79,.F.);
#136 = PLANE('',#137);
#137 = AXIS2_PLACEMENT_3D('',#138,#139,#140);
#138 = CARTESIAN_POINT('',(0.,3.,0.));
#139 = DIRECTION('',(0.,1.,0.));
#140 = DIRECTION('',(0.,0.,1.));
#141 = ADVANCED_FACE('',(#142),#148,.F.);
#142 = FACE_BOUND('',#143,.F.);
#143 = EDGE_LOOP('',(#144,#145,#146,#147));
#144 = ORIENTED_EDGE('',*,*,#31,.F.);
#145 = ORIENTED_EDGE('',*,*,#101,.T.);
#146 = ORIENTED_EDGE('',*,*,#71,.T.);
#147 = ORIENTED_EDGE('',*,*,#123,.F.);
#148 = PLANE('',#149);
#149 = AXIS2_PLACEMENT_3D('',#150,#151,#152);
#150 = CARTESIAN_POINT('',(0.,0.,0.));
#151 = DIRECTION('',(0.,0.,1.));
#152 = DIRECTION('',(1.,0.,0.));
#153 = ADVANCED_FACE('',(#154),#160,.T.);
#154 = FACE_BOUND('',#155,.T.);
#155 = EDGE_LOOP('',(#156,#157,#158,#159));
#156 = ORIENTED_EDGE('',*,*,#47,.F.);
#157 = ORIENTED_EDGE('',*,*,#108,.T.);
#158 = ORIENTED_EDGE('',*,*,#87,.T.);
#159 = ORIENTED_EDGE('',*,*,#130,.F.);
#160 = PLANE('',#161);
#161 = AXIS2_PLACEMENT_3D('',#162,#163,#164);
#162 = CARTESIAN_POINT('',(0.,0.,4.));
#163 = DIRECTION('',(0.,0.,1.));
#164 = DIRECTION('',(1.,0.,0.));
#165 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#169)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#166,#167,#168)) REPRESENTATION_CONTEXT('Context #1',
'3D Context with UNIT and UNCERTAINTY') );
#166 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#167 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#168 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#169 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#166,
'distance_accuracy_value','confusion accuracy');
#170 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
ENDSEC;
END-ISO-10303-21;

View File

@@ -0,0 +1,86 @@
solid
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 2.000000e+00 0.000000e+00 0.000000e+00
vertex 2.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 1.000000e+00 -0.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 2.000000e+00 3.000000e+00 4.000000e+00
endloop
endfacet
facet normal 0.000000e+00 -1.000000e+00 -0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
vertex 2.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal -0.000000e+00 -1.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 3.000000e+00 4.000000e+00
endloop
endfacet
facet normal -0.000000e+00 0.000000e+00 -1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
vertex 0.000000e+00 3.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 0.000000e+00
vertex 2.000000e+00 0.000000e+00 0.000000e+00
vertex 0.000000e+00 0.000000e+00 0.000000e+00
endloop
endfacet
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 4.000000e+00
endloop
endfacet
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
outer loop
vertex 2.000000e+00 3.000000e+00 4.000000e+00
vertex 0.000000e+00 0.000000e+00 4.000000e+00
vertex 2.000000e+00 0.000000e+00 4.000000e+00
endloop
endfacet
endsolid

View File

@@ -0,0 +1,223 @@
# Web FreeCAD 用户实际验证与上线手册
版本:1.0
日期:2026-09-15
适用对象:试用用户、业务验收人员、上线值守人员
## 1. 验证原则
本手册验证 Web FreeCAD 的实际可用性,不替代源码审查。几何算法必须由 OCCT WASM 完成,Three.js 只负责显示。验证人员应记录实际结果,不因界面显示正常而推断模型算法正确。
## 2. 环境与启动
1. 使用最新版 Chrome、Edge 或 Firefox,启用 WebAssembly、Web Worker、IndexedDB/OPFS。
2. 解压发布目录,确认 `index.html`、`kernel/FreeCADWebKernel.wasm`、`kernel/FreeCADWebKernel.js` 和 `modules/manifest.json` 存在。
3. 通过 HTTP(S) 服务访问,不要直接双击 `file://`。例如在 `web/dist` 执行 `python3 -m http.server 8080`,浏览器打开 `http://localhost:8080/`。
4. 打开开发者工具 Console,确认无启动异常;Network 中确认 WASM 和模块请求返回 200。
5. 记录浏览器版本、操作系统、屏幕分辨率和测试日期。
## 3. 启动与界面烟测
1. 首次打开应出现项目工作区、文档标签、模型树、属性区和 Three.js 视口。
2. 新建两个文档,切换标签,确认活动文档唯一且模型树互不串扰。
3. 刷新页面,确认应用可以重新启动;若存在恢复提示,记录提示内容。
4. 切换 Part、PartDesign、Sketcher、Draft、BIM、TechDraw、Mesh、FEM、CAM、Spreadsheet、Inspection、Robot、Assembly、Web、Python 等工作台入口,确认页面可进入且无白屏。
5. 改变视口尺寸,执行旋转、平移、缩放、适合视图,确认只影响显示,不改变模型数据。
## 4. 基础建模与 OCCT 几何验证
1. 新建文档,创建 Part Box,输入长度 2、宽度 3、高度 4,应用并重算。
2. 检查属性值和模型树对象名称;若界面提供体积信息,应为约 24。
3. 创建第二个基本体,移动或改变尺寸,确认两个对象同时显示且互不覆盖数据。
4. 执行撤销、重做,确认事务前后属性和模型树一致。
5. 选择对象并删除,再撤销删除;确认选择状态、树节点和视口同步。
6. 对可用的布尔、变换、复制、链接、分组命令各执行一次,确认结果来自 WASM 返回的几何/文档数据,而不是前端生成的替代几何。
## 5. 文档、属性与事务
1. 在模型树选择对象,逐项查看属性;修改长度、角度、颜色、可见性和标签。
2. 点击应用/重算,确认修改后的值保留;取消编辑,确认未提交值不污染文档。
3. 使用复制、剪切、粘贴、删除、选择全部、依赖关系、表达式(如界面提供)并记录结果。
4. 连续执行三次修改后逐级撤销,再逐级重做,确认事务顺序正确。
5. 在两个文档之间切换,确认属性面板始终对应当前活动文档。
## 6. 文件导入、导出、保存与重开
1. 导入示例 STEP 文件,等待 Worker 返回网格,确认模型树对象出现、视口有三角网格且无 NaN/空白。
2. 依次尝试项目支持的 FCStd、STEP、IGES、BREP、STL、OBJ、DXF、IFC 等格式;对不支持格式应显示明确错误,不得静默成功。
3. 保存为 FCStd,确认下载文件或 OPFS 文件列表出现。
4. 修改模型后再次保存,确认文件大小/修改时间变化;关闭文档并重新打开,确认对象数量、标签和关键属性恢复。
5. 导出 STL/网格格式后,用外部查看器检查文件可读;再次导入并比较包围盒、面数或体积(允许记录格式误差)。
6. 浏览器刷新后从 OPFS 选择文档打开,确认持久化恢复;清理站点数据后应明确提示文档已不存在。
## 7. 模型树、链接与结构
1. 创建 Part、VarSet 或等效结构对象,确认树层级、Tip 和选择分组正确。
2. 创建对象链接/子链接,替换链接目标,再解除链接;检查事务、树显示和视口结果。
3. 执行分组、解组、克隆/取消克隆(模块提供时),确认原对象和新对象的生命周期明确。
4. 在结构操作后保存、重开,确认链接关系没有变成空引用。
## 8. 各功能模块验证矩阵
对每个模块至少执行“进入—创建/读取—修改—保存/返回”一条链路,并记录不适用项:
| 模块 | 最低验证动作 |
|---|---|
| Part/PartDesign | 基本体、特征、重算、属性修改 |
| Sketcher | 创建草图/几何约束,退出编辑并保存 |
| Draft/BIM | 创建对象、层级/关系、可见性和窗口焦点 |
| TechDraw | 创建页面/视图,检查页面对象和导出入口 |
| Mesh/STL | 导入网格、显示、导出并重开 |
| Import/STEP/IGES | 导入、生成网格、保存 FCStd |
| FEM/CAM | 打开任务面板,创建可用任务或显示明确依赖提示 |
| Spreadsheet | 新建表格、编辑单元格、表达式/保存 |
| Inspection/Measure | 选择几何、执行测量、读取结果 |
| Assembly/Robot | 创建或读取装配/机器人对象,检查树和变换 |
| Surface/ReverseEngineering | 创建/读取曲面对象,检查属性和显示 |
| OpenSCAD/TemplatePyMod/Python | 执行支持的脚本/导入流程,记录依赖提示 |
| Web/Cloud/Sandbox | 初始化、请求、取消、错误恢复和持久化 |
| Std 命令 | 新建、打开、保存、撤销/重做、工作台和视图命令 |
源语义定义为空操作的 `Std_Test5/6` 等命令,应记录“按桌面语义无业务副作用”,不能判定为缺失。
## 9. Worker、取消与错误恢复
1. 发起一个导入或重算操作,操作未完成前点击取消;确认界面回到可操作状态。
2. 重复提交相同请求,确认不会产生重复对象或重复事务。
3. 输入空文件、损坏文件、无效尺寸和不存在路径,确认返回可理解错误码/消息。
4. 错误后立即执行一次正常 Box 创建或打开已有文档,确认 Worker 和 WASM 实例可继续工作。
5. 观察长任务期间页面仍可切换文档;若业务规定串行,应显示忙碌状态而非无限等待。
## 10. 显示与数据一致性
1. 改变颜色、透明度、可见性和视图模式,确认只改变 Three.js 显示对象。
2. 隐藏/显示对象后保存并重开,按产品定义检查可见性是否持久化。
3. 选中模型树节点,确认视口高亮对象与节点一致;删除后不得残留孤立网格。
4. 检查大模型加载时内存和帧率,记录浏览器 Console 的 WebGL/WASM 警告。
## 11. 上线前准入标准
- 启动、模块加载、WASM 内核烟测全部通过。
- 核心 Part Box、STEP 导入、FCStd 保存/重开、OPFS 恢复链路通过。
- 所有模块入口可达;不支持能力返回明确提示。
- 几何边界审计无发现,Three.js 未进入 Facade/Worker 算法层。
- 关键错误可恢复,无持续空转、重复请求或页面死锁。
- 所有失败项均有复现步骤、日志、截图和责任人;未验证项不得标记为“通过”。
## 12. 缺陷记录模板
记录:日期、浏览器/系统、URL、模块、命令、输入文件 SHA-256、操作步骤、预期、实际、错误消息、Console/Network 日志、截图、是否可重现、严重级别和处理结论。
严重级别:P0(无法启动/数据损坏)、P1(核心建模或保存失败)、P2(单模块功能异常)、P3(显示或文案问题)。P0/P1 未关闭不得上线。
## 13. 已完成自动烟测与用户验证边界
自动烟测已覆盖 WASM 版本、OCCT Box 体积/包围盒、STEP 网格生成与清理、几何边界审计和 Vite 生产打包。浏览器兼容性、真实业务数据、性能容量和最终验收必须由用户按本手册执行并签字确认。
## 14. 逐项执行记录规则
每项测试均按“准备—操作—观察—判定—记录”五步执行。预期结果全部满足记为通过;任一步骤异常记为失败,不得用“基本正常”代替。每项记录测试编号、开始/结束时间、文档名、输入文件、浏览器、实际结果和截图路径。
## 15. 启动与界面逐步测试
### UI-01 首次启动
准备:清空该站点缓存后打开根 URL。操作:等待首页完全加载,观察 Console 和 Network。预期:页面在 30 秒内显示工作区;`FreeCADWebKernel.js/wasm`、`modules/manifest.json` 返回 200;无未捕获异常。失败:白屏、循环加载、WASM 404 或未捕获异常。
### UI-02 文档标签隔离
操作:新建文档 A、B;在 A 创建 Box,在 B 创建不同尺寸 Box;来回切换标签。预期:模型树、属性和视口只显示当前文档内容,修改 A 不改变 B。失败:对象串文档、活动标签错误或切换后树为空。
### UI-03 工作台入口
操作:依次点击各工作台入口,等待每页首屏;返回首页后重复一次。预期:每个入口可达,无白屏;不可用功能显示明确依赖/能力提示。失败:路由 404、加载卡死或静默无响应。
### UI-04 视口交互
操作:在有模型文档中拖拽旋转、滚轮缩放、中键平移、点击适合视图,再调整浏览器窗口大小。预期:模型连续显示、无明显残影,模型数据和属性不变。失败:交互导致模型数据变化、视口崩溃或出现孤立网格。
## 16. 几何与建模逐步测试
### GEO-01 Box 参数与重算
操作:新建文档→Part→Box;输入 2、3、4→应用/重算;读取属性和体积。预期:体积约 24,包围盒约 `[0,0,0]-[2,3,4]`,树中只有一个对象。失败:数值错误、重算失败或体积为空。
### GEO-02 参数修改事务
操作:将长度改为 5→应用;再改为 7→取消;执行撤销、重做各一次。预期:取消后仍为 5;撤销回到 5 之前状态,重做恢复 5;事务顺序稳定。失败:取消仍写入、撤销越界或重做产生重复对象。
### GEO-03 多对象与布尔
操作:创建两个基本体→移动使其相交→执行可用布尔操作→重算。预期:结果对象可选、可见、可保存;原对象处理符合界面语义。失败:前端生成替代几何、结果无拓扑或保存后丢失。
### GEO-04 选择与删除恢复
操作:框选/树选对象→删除→撤销删除→再次删除。预期:树、属性、视口同步更新;撤销后对象完整恢复。失败:残留显示、空树节点或选择指向已删除对象。
## 17. 文件流程逐步测试
### FILE-01 STEP 导入
操作:打开示例 STEP→等待导入完成→检查树、面数/体积和视口→保存 FCStd。预期:树出现导入对象,视口有非空三角网格,保存成功。失败:导入超时、空网格、NaN 或保存文件为 0 字节。
### FILE-02 多格式导入
操作:分别导入项目支持的 IGES、BREP、STL、OBJ、DXF、IFC 文件;每次关闭当前文档后再测下一格式。预期:支持格式有明确对象和显示;不支持格式返回明确错误码。失败:格式错投、静默成功或错误后 Worker 无法继续。
### FILE-03 保存与重开
操作:创建并修改 Box→保存 FCStd→关闭→从文件选择器重开→核对对象数量、标签、尺寸。预期:数据与保存前一致。失败:标签丢失、尺寸回退或重开后空文档。
### FILE-04 OPFS 刷新恢复
操作:保存到 OPFS→刷新页面→在 OPFS 列表选择文件→打开。预期:文件仍在列表,文档和对象恢复;清除站点数据后文件消失并给出提示。失败:刷新后列表丢失、恢复串文档或无提示。
### FILE-05 STL 导出回读
操作:导出 STL→下载到本地→重新导入 STL→比较包围盒和面数。预期:文件可读,几何误差在业务容差内。失败:文件损坏、导入空网格或比例明显错误。
## 18. 文档树、属性和链接逐步测试
### DOC-01 属性编辑
操作:选择对象→依次修改标签、颜色、透明度、可见性和尺寸→应用→保存重开。预期:可编辑属性生效;持久化属性重开后保留。失败:界面值与模型值不一致。
### DOC-02 分组与层级
操作:创建 Part/VarSet→将对象加入/移出→设置 Tip→保存重开。预期:层级、Tip、选择范围一致。失败:树层级错乱或对象丢失。
### DOC-03 链接替换与解除
操作:建立对象链接→替换目标→解除链接→分别撤销/重做。预期:每一步事务可回退,解除后无空引用。失败:旧目标残留、链接指向 null 或重开失效。
## 19. 模块逐步测试通用模板
对表格中的每个模块执行:①进入模块;②创建或打开一个最小对象;③修改一个属性;④执行应用/重算;⑤保存并返回;⑥重新进入检查对象。记录“模块、对象、命令、输入、预期、实际、截图”。模块没有对应数据时,使用其自带示例,并将“依赖不可用”记录为环境结果而非通过。
## 20. Worker 与异常恢复逐步测试
### ERR-01 取消
操作:启动较大的导入或重算→立即点击取消→等待状态结束。预期:状态回到可操作,未产生半成品对象。失败:按钮永久忙碌、页面冻结或产生重复对象。
### ERR-02 非法输入
操作:输入空文件、损坏文件、零/负尺寸、不存在路径。预期:显示明确错误,随后可正常创建 Box。失败:崩溃、无限等待或错误后所有命令失效。
### ERR-03 重复请求
操作:连续双击保存/导入/应用按钮。预期:只生成一个事务和一个对象。失败:重复对象、重复文件或状态计数增长两次。
## 21. 性能和上线前逐步测试
### PERF-01 大文件加载
操作:使用小、中、大三组真实文件,分别记录从选择文件到首个可见网格的时间、峰值内存和浏览器帧率。预期:无崩溃、无持续空转;超出限制时给出提示。失败:浏览器无响应或 Worker 泄漏。
### PERF-02 长时间稳定性
操作:连续执行导入→修改→保存→重开循环 20 次,每 5 次刷新页面。预期:无累计错误、对象数不异常增长、OPFS 列表无重复。失败:错误率上升、内存持续增长或恢复失败。
## 22. 最终签署
完成全部编号后,验收人员填写:通过项数/总项数、失败项及 P0/P1 数量、未测项及原因、浏览器范围、测试数据清单、上线建议和签名日期。存在任何 P0/P1 或未解释的空转/阻塞,不得签署上线;P2/P3 须有明确修复计划和负责人。

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
{
"scope": "21 manual items, not 1452 command acceptance",
"counts": {
"passed": 20,
"failed": 1,
"passed": 21,
"failed": 0,
"blocked": 0,
"not_run": 0
},
@@ -150,17 +150,17 @@
{
"id": "FILE-02",
"title": "多格式导入",
"status": "failed",
"detail": "Error: IFC native import is not available: AC14-FZK-Haus.ifc: No native import handler is registered for .ifc",
"status": "passed",
"detail": "仅限实际执行的步骤和断言",
"evidence": [
"manual-2026-09-15T12-53-49-351Z/report.md",
"manual-2026-09-15T12-53-49-351Z/FILE-02-01.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-02.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-03.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-04.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-05.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-06.png",
"manual-2026-09-15T12-53-49-351Z/FILE-02-07.png"
"manual-2026-09-15T16-41-07-796Z/report.md",
"manual-2026-09-15T16-41-07-796Z/FILE-02-01.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-02.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-03.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-04.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-05.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-06.png",
"manual-2026-09-15T16-41-07-796Z/FILE-02-07.png"
]
},
{

View File

@@ -0,0 +1,46 @@
[
{
"name": "display-contract",
"command": [
"node",
"--test",
"tools/test-document-display-persistence.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.466
},
{
"name": "window-contract",
"command": [
"node",
"--test",
"tools/test-window-host-contract.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.494
},
{
"name": "geometry-boundary",
"command": [
"npm",
"run",
"check:geometry-boundary"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.926
},
{
"name": "production-build",
"command": [
"npm",
"run",
"build"
],
"exitCode": 0,
"timedOut": false,
"seconds": 23.072
}
]

View File

@@ -0,0 +1,46 @@
[
{
"name": "display-contract",
"command": [
"node",
"--test",
"tools/test-document-display-persistence.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.462
},
{
"name": "window-contract",
"command": [
"node",
"--test",
"tools/test-window-host-contract.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.496
},
{
"name": "geometry-boundary",
"command": [
"npm",
"run",
"check:geometry-boundary"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.941
},
{
"name": "production-build",
"command": [
"npm",
"run",
"build"
],
"exitCode": 2,
"timedOut": false,
"seconds": 16.195
}
]

View File

@@ -0,0 +1,46 @@
[
{
"name": "display-contract",
"command": [
"node",
"--test",
"tools/test-document-display-persistence.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.463
},
{
"name": "window-contract",
"command": [
"node",
"--test",
"tools/test-window-host-contract.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.502
},
{
"name": "geometry-boundary",
"command": [
"npm",
"run",
"check:geometry-boundary"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.925
},
{
"name": "production-build",
"command": [
"npm",
"run",
"build"
],
"exitCode": 0,
"timedOut": false,
"seconds": 20.669
}
]

View File

@@ -0,0 +1,46 @@
[
{
"name": "display-contract",
"command": [
"node",
"--test",
"tools/test-document-display-persistence.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.463
},
{
"name": "window-contract",
"command": [
"node",
"--test",
"tools/test-window-host-contract.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.511
},
{
"name": "geometry-boundary",
"command": [
"npm",
"run",
"check:geometry-boundary"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.923
},
{
"name": "production-build",
"command": [
"npm",
"run",
"build"
],
"exitCode": 0,
"timedOut": false,
"seconds": 21.972
}
]

View File

@@ -0,0 +1,46 @@
[
{
"name": "display-contract",
"command": [
"node",
"--test",
"tools/test-document-display-persistence.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.491
},
{
"name": "window-contract",
"command": [
"node",
"--test",
"tools/test-window-host-contract.mjs"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.497
},
{
"name": "geometry-boundary",
"command": [
"npm",
"run",
"check:geometry-boundary"
],
"exitCode": 0,
"timedOut": false,
"seconds": 0.918
},
{
"name": "production-build",
"command": [
"npm",
"run",
"build"
],
"exitCode": 0,
"timedOut": false,
"seconds": 23.079
}
]

View File

@@ -102,8 +102,8 @@
"destinationSize": 72907406
},
"copy:/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.wasm->/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartBoxProbe.wasm": {
"signature": "91031260:1789476108526.2483:4521170",
"destinationSize": 91031260
"signature": "99834618:1789490337744.9487:4521170",
"destinationSize": 99834618
},
"copy:/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebPartIoProbe.wasm->/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartIoProbe.wasm": {
"signature": "64833592:1788561825652.504:4526297",
@@ -338,12 +338,12 @@
"hash": "bb9095459d29f5e1612a005e08350ed78229e32c5c80c8d95dab43e3f0368207"
},
"digest:/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartBoxProbe.wasm": {
"signature": "91031260:1789476286706.7607:1773060",
"hash": "dfda4e05e85cd0512591f4f3450c548ae08924afb255fa8ddd4662afe275bd34"
"signature": "99834618:1789490404052.8381:1773060",
"hash": "12995088a781cd15716a8a62030e3110ee4e15cbf93049a783d02a36c6cdecb1"
},
"digest:/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartBoxProbe.js": {
"signature": "493544:1789476286668.7397:1773045",
"hash": "9b0ec3ccadda1c385e0635e35abdb6e2df5dcabdc232e7ae168407a9bad25ab9"
"signature": "495029:1789490404013.6182:1773045",
"hash": "e8b36a8f4db830cd5dfce1f09a59a18215e8f34fe033691e25d2b419ddb39749"
},
"digest:/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartDesignRuntimeProbe.wasm": {
"signature": "78890960:1789159101232.3625:1772890",
@@ -514,8 +514,8 @@
"destinationSize": 457259
},
"copy:/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.js->/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartBoxProbe.js": {
"signature": "493544:1789476112274.283:7080474",
"destinationSize": 493544
"signature": "495029:1789490342104.1375:6978194",
"destinationSize": 495029
},
"copy:/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebDraftRuntimeProbe.js->/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebDraftRuntimeProbe.js": {
"signature": "510233:1789179851378.0908:6974242",
@@ -626,7 +626,7 @@
"destinationSize": 7922
},
"copy:/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebPartBoxProbe.worker.js->/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartBoxProbe.worker.js": {
"signature": "7914:1789476112271.5662:4528421",
"signature": "7914:1789490342101.3938:4528421",
"destinationSize": 7914
},
"copy:/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebPartDesignRuntimeProbe.worker.js->/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartDesignRuntimeProbe.worker.js": {
@@ -714,7 +714,7 @@
"hash": "6cf7a1ccece9ff9982ea5ff26987da9b345f728c3e30ed0307b3bef2a40ba384"
},
"digest:/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartBoxProbe.worker.js": {
"signature": "7914:1789476286668.4355:1772926",
"signature": "7914:1789490404013.3352:1772926",
"hash": "ba097bb756d360115023874f46f7682d2c3da9c93237a7d61c84aa6d9e5bf91d"
},
"digest:/home/mes123456/FreeCADWasmDev/working/FreeCAD/web/public/kernel/FreeCADWebPartDesignRuntimeProbe.worker.js": {

View File

@@ -1,6 +1,6 @@
{
"schema": "freecad-web-assets-sync-timing/v1",
"generatedAt": "2026-09-15T12:44:51.525Z",
"generatedAt": "2026-09-15T16:40:06.033Z",
"modules": 32,
"buildProfile": "fast-dev",
"missingSources": [
@@ -13,14 +13,14 @@
"/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/bin/FreeCADWebDocumentGraphFamilyProbe.js"
],
"copyAttempts": 118,
"copied": 6,
"skipped": 98,
"copied": 3,
"skipped": 101,
"missing": 14,
"copySeconds": 4.374626448,
"hashComputed": 6,
"hashCacheHits": 188,
"hashSeconds": 0.4709505330000001,
"copySeconds": 1.742073601,
"hashComputed": 3,
"hashCacheHits": 191,
"hashSeconds": 0.26277629400000024,
"manifestChanged": true,
"manifestSeconds": 0.0007565290000002278,
"totalSeconds": 4.861496660000001
"manifestSeconds": 0.0032099859999998445,
"totalSeconds": 2.0252087960000003
}

File diff suppressed because one or more lines are too long

View File

@@ -1,34 +1,9 @@
{
"schema": "freecad-web-module-build/v1",
"generatedAt": "2026-09-15T12:41:52.353369+00:00",
"generatedAt": "2026-09-15T16:39:02.184693+00:00",
"jobs": 2,
"selection": "explicit",
"targets": [
{
"buildDirectory": "freecad-source/build-web/configure",
"target": "FreeCADWebDocumentProbe",
"buildProfile": "fast-dev",
"exitCode": 0,
"preflight": {
"schema": "freecad-web-link-preflight/v1",
"buildDirectory": "freecad-source/build-web/configure",
"requestedBuildDirectory": "freecad-source/build-web/configure",
"target": "FreeCADWebDocumentProbe",
"requestedTarget": "FreeCADWebDocumentProbe",
"resolvedTarget": "FreeCADWebDocumentProbe",
"profile": "fast-dev",
"needsPthread": true,
"hasPthreadFlag": true,
"missingArchives": [],
"runtimePresent": true,
"wasmPresent": true,
"errors": [],
"warnings": [],
"cacheHit": true
},
"durationSeconds": 39.543,
"outputTail": "DocumentProbe.cpp:3:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h:3:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h:17:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h:3:\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h:68:25: warning: loop variable 'records' creates a copy from type 'QJsonArray const' [-Wrange-loop-construct]\n for (const auto records : {args.value(\"records\").toArray(), input.value(\"records\").toArray()}) {\n ^\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h:68:14: note: use reference type 'QJsonArray const &' to prevent copying\n for (const auto records : {args.value(\"records\").toArray(), input.value(\"records\").toArray()}) {\n ^~~~~~~~~~~~~~~~~~~~\n &\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/DocumentProbe.cpp:3:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h:3:\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h:361:34: warning: string literal of length 81612 exceeds maximum length 65536 that C++ compilers are required to support [-Woverlength-strings]\n const char* standardScript = R\"PY(\n ^~~~~\n2 warnings generated.\n[3/3] Linking CXX executable bin/FreeCADWebDocumentProbe.js\nem++: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]\n"
},
{
"buildDirectory": "freecad-source/build-web/configure",
"target": "FreeCADWebPartBoxProbe",
@@ -51,13 +26,13 @@
"warnings": [],
"cacheHit": true
},
"durationSeconds": 74.283,
"outputTail": ".h:3:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h:17:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroCommands.h:3:\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h:68:25: warning: loop variable 'records' creates a copy from type 'QJsonArray const' [-Wrange-loop-construct]\n for (const auto records : {args.value(\"records\").toArray(), input.value(\"records\").toArray()}) {\n ^\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebMacroRecording.h:68:14: note: use reference type 'QJsonArray const &' to prevent copying\n for (const auto records : {args.value(\"records\").toArray(), input.value(\"records\").toArray()}) {\n ^~~~~~~~~~~~~~~~~~~~\n &\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp:79:\nIn file included from /home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/NativeDocumentView.h:3:\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/src/WebAssembly/FreeCADCoreProbe/WebViewCommands.h:361:34: warning: string literal of length 81612 exceeds maximum length 65536 that C++ compilers are required to support [-Woverlength-strings]\n const char* standardScript = R\"PY(\n ^~~~~\n2 warnings generated.\n[4/4] Linking CXX executable bin/FreeCADWebPartBoxProbe.js\nem++: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readFile\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readdir\n"
"durationSeconds": 42.675,
"outputTail": "[0/2] Re-checking globbed directories...\n[1/7] Generating version_file\ngit\n/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source/build-web/configure/src/Build/Version.h.out written\n[2/5] Automatic MOC and UIC for target FreeCADWebPartBoxProbe\n[3/4] Building CXX object src/WebAssembly/FreeCADCoreProbe/CMakeFiles/FreeCADWebPartBoxProbe.dir/IfcOpenShellImport.cpp.o\nem++: warning: linker setting ignored during compilation: 'PTHREAD_POOL_SIZE' [-Wunused-command-line-argument]\n[4/4] Linking CXX executable bin/FreeCADWebPartBoxProbe.js\nem++: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readFile\nwarning: invalid item (maybe a typo?) in EXPORTED_RUNTIME_METHODS: FS_readdir\n"
}
],
"summary": {
"total": 2,
"passed": 2,
"total": 1,
"passed": 1,
"failed": 0
}
}

Some files were not shown because too many files have changed in this diff Show More