1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//! The "Assembly" workbench — assemblies build-spec §8.1.
//!
//! Creatable set: the shared building blocks (sketch `S` / datum `D` / plane
//! `P`) plus the ASSEMBLY COMPONENT (`ACOMP`) — in-context sketches on
//! component faces are an allowed reference use (spec §3), so S/D/P stay
//! creatable here. Everything else (modeling + sheet metal) is filtered out of
//! the creation UI; the history itself stays fully visible/editable regardless
//! of workbench (standing rule).
//!
//! Claims the two assembly panels (Assembly Structure tree + Assembly
//! Constraints), which therefore show ONLY under Assembly (and "All").
use ;
/// The Assembly Structure tree panel's id (claim + registration key).
/// The Assembly Constraints panel's id (the requirements-§5 record id).
pub const CONSTRAINTS_PANEL_ID: &str = "assemblyConstraints";
/// The BOM panel's id (the columned parts list).
pub const BOM_PANEL_ID: &str = "assemblyBom";
/// Datum / Plane / Sketch / Component (`ACOMP`).
/// The assembly toolbar tools. A click surfaces the button id out of the
/// toolbar to the shell: `"assembly.add_component"` opens the insert-component
/// modal (the same `FileAction::InsertComponent` flow the ACOMP palette pick
/// routes through), `"assembly.interference"` (build-spec §9) runs the engine's
/// pairwise check and opens the results window. Like every workbench button,
/// "All" carries them automatically via the deduped union.
static BUTTONS: & = &;
/// The assembly panels this workbench claims (claim-based visibility —
/// unclaimed panels stay visible everywhere; these show only here + All).
static PANELS: & = &;
pub static ASSEMBLY: Workbench = Workbench ;