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.
@@ -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
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 失败记录分类与业务对账
|
||||
|
||||
分类 3036/3036;待闭环 2822;已闭环 214。分类不代表修复,原始记录保留。
|
||||
分类 3036/3036;待闭环 2825;已闭环 211。分类不代表修复,原始记录保留。
|
||||
|
||||
处理顺序:当前业务首错立即修复;共享故障优先;历史模块故障随业务推进处理;过期检查经源码与替代证据审查后归档。禁止为清零重跑无关逐 API gate。
|
||||
|
||||
|
||||
83
docs/current/ifcopenshell-native-build-20260916.md
Normal 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.
|
||||
@@ -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*` 文件。该结果只限定这些路径和文件名,不代表全机不存在兼容绑定。
|
||||
|
||||
14802
docs/current/temporary-cleanup-applied-1789482173895.json
Normal file
12113
docs/current/temporary-cleanup-preview-1789482063724.json
Normal file
101
docs/current/user-tests-20260915/IFC-IMPORT-REPAIR-20260916.md
Normal 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)。
|
||||
@@ -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 所在的多格式项失败,未以“已执行”冒充“已通过”。
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# 原剩余九项:修复、执行结果与未解决依赖
|
||||
|
||||
历史报告。2026-09-16 后续已接入真实 IFC 原生导入绑定并完成复测,详见 [IFC 修复记录](IFC-IMPORT-REPAIR-20260916.md)。以下保留当时的失败依据,不代表最新状态。
|
||||
|
||||
日期:2026-09-15。
|
||||
|
||||
## 结果
|
||||
|
||||
@@ -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 秒。
|
||||
|
||||
## 解释与限制
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"error": "AssertionError [ERR_ASSERTION]: [{\"filename\":\"wall.ifc\",\"message\":\"IFC contains no convertible native geometry\"}]\n\n1 !== 0\n"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"error": "RuntimeError: memory access out of bounds"
|
||||
}
|
||||
@@ -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
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"status": "passed",
|
||||
"fixtures": 2,
|
||||
"invalidFileRejected": true,
|
||||
"documentsPreserved": true
|
||||
}
|
||||
@@ -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
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"status": "passed",
|
||||
"fixtures": 2,
|
||||
"invalidFileRejected": true,
|
||||
"documentsPreserved": true
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 311 KiB |
|
After Width: | Height: | Size: 267 KiB |
@@ -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
|
||||
@@ -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
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -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 须有明确修复计划和负责人。
|
||||
@@ -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 可按逗号指定需要复测的编号。测试中没有更改应用实现或验收登记。
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 340 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 382 KiB |
@@ -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 须有明确修复计划和负责人。
|
||||
@@ -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 可按逗号指定需要复测的编号。测试中没有更改应用实现或验收登记。
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 342 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 366 KiB |
@@ -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
|
||||
@@ -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
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -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 须有明确修复计划和负责人。
|
||||
@@ -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"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||