@faicad/cq-compat 0.13.1 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"workplane.d.ts","sourceRoot":"","sources":["../src/workplane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workplane.d.ts","sourceRoot":"","sources":["../src/workplane.ts"],"names":[],"mappings":"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"}
package/dist/workplane.js CHANGED
@@ -13,6 +13,7 @@ import { brepjsCompat } from '@faicad/faijs/api';
13
13
  import { borrowBrepjsShape, adoptBrepjsProduct } from '@faicad/faijs/api/internal/l3-bridge';
14
14
  import { fromHandle } from '@faicad/faijs/sdk';
15
15
  import { brepOf, isShape } from '@faicad/faijs/shape';
16
+ import { setName, nameOf } from '@faicad/faijs';
16
17
  import { getKernel } from '@faicad/faijs/occt-kernel/occtKernel';
17
18
  // ── cad namespace singleton (created once at module load) ──────────────────
18
19
  const cad = createApiNamespace();
@@ -59,6 +60,25 @@ export function asBrepShape(v) {
59
60
  }
60
61
  return v;
61
62
  }
63
+ /**
64
+ * 解包 Workplane/裸 Shape 几何输入,并把载体对象(Workplane)已登记的语句名
65
+ * 透传给内部 shape(§1.4 lineage N1:输入 Shape 必须有 PartName 才允许成为
66
+ * 链上节点)。语句名由引擎在语句结束时登记在载体对象(afterStatement
67
+ * setName),此处同步到 shape 维——否则 cq.translate / rotate / mirror 这类
68
+ * 「以 Workplane 为输入的独立语句」会把链上产物误判为库内临时件而抛
69
+ * E_TOPO_UNTRACKED_INPUT。
70
+ * @param v - Workplane({ shape })或裸 Shape。
71
+ * @returns 内部 faijs `Shape`(名字已透传)。
72
+ */
73
+ function resolveInputShape(v) {
74
+ const s = (isShape(v) ? v : v?.shape);
75
+ if (s && !isShape(v) && nameOf(s) === undefined) {
76
+ const n = v !== null && typeof v === 'object' ? nameOf(v) : undefined;
77
+ if (n !== undefined)
78
+ setName(s, n);
79
+ }
80
+ return s;
81
+ }
62
82
  /** Custom prototype — borrowDeep skips objects with non-Object prototype. */
63
83
  const WP_PROTO = { __isCqWorkplane: true };
64
84
  // ── Internal helpers ───────────────────────────────────────────────────────
@@ -1969,6 +1989,15 @@ export async function extrude(wp, height, combine = true, opts) {
1969
1989
  const base = wp.shape;
1970
1990
  wp = await applyPendingFacePlane(wp);
1971
1991
  const profile = await buildProfileWire(wp, solidWires[0]);
1992
+ if (taper < 0) {
1993
+ // Outward taper: the section GROWS by |h·tan(taper)| per side with ARC
1994
+ // joins at convex corners (upstream `extrude(h, taper=-20)` yields a
1995
+ // 10-face body: bottom + arc-joined top + 4 planar side faces + 4
1996
+ // conical corner faces). The kernel draftPrism produces sharp-corner
1997
+ // frusta only (volume overshoots the arc-joined body by ~2%), so the
1998
+ // exact body is sewn from its faces.
1999
+ return outwardTaperPrism(wp, base, profile, height, taper, combine);
2000
+ }
1972
2001
  const face = unwrapBrepResult(compatFn('makeFace')(profile));
1973
2002
  const kernel = getKernel();
1974
2003
  const n = Array.isArray(wp.normal) ? wp.normal : [0, 0, 1];
@@ -2130,6 +2159,136 @@ export async function extrude(wp, height, combine = true, opts) {
2130
2159
  // No shape and no pending profile — return unchanged
2131
2160
  return wp;
2132
2161
  }
2162
+ /**
2163
+ * outwardTaperPrism — build the exact outward-tapered prism (taper < 0).
2164
+ *
2165
+ * Upstream CadQuery `extrude(h, taper=-t)` grows the section by
2166
+ * `|h·tan(t)|` per side with ARC joins at convex corners: the ref body is
2167
+ * 10 faces (bottom + arc-joined top + 4 planar side faces + 4 conical corner
2168
+ * faces). The kernel `draftPrism` only produces sharp-corner frusta, whose
2169
+ * volume overshoots the arc-joined body (~2% at -20°), so this sews the exact
2170
+ * faces instead. Supported for rectilinear (4 straight-edge) profiles on
2171
+ * XY-oriented workplanes; anything else fails loudly rather than emitting a
2172
+ * wrong-corner body.
2173
+ *
2174
+ * @param wp - Workplane (post `applyPendingFacePlane`)
2175
+ * @param base - carried shape to fuse with (undefined when none)
2176
+ * @param profile - pending profile wire (BREP handle or wrapper)
2177
+ * @param height - extrusion distance along the workplane normal
2178
+ * @param taper - negative draft angle in degrees
2179
+ * @param combine - fuse the result with the carried shape (default true)
2180
+ * @returns Promise<Workplane>
2181
+ */
2182
+ async function outwardTaperPrism(wp, base, profile, height, taper, combine) {
2183
+ const kernel = getKernel();
2184
+ const k = kernel;
2185
+ const raw = rawShapeId(profile);
2186
+ const off = Math.abs(height * Math.tan((Math.abs(taper) * Math.PI) / 180));
2187
+ if (off < 1e-9) {
2188
+ throw new Error('[cq-compat] extrude: outward taper resolves to a zero offset');
2189
+ }
2190
+ // The sewing construction is XY-oriented; the profile plane is recovered via
2191
+ // its own z-extent, so off-plane workplanes still work as long as the profile
2192
+ // is axis-aligned. Non-axis-aligned planes are rejected.
2193
+ const bb0 = k.getBoundingBox(raw);
2194
+ const z0 = bb0.zmin;
2195
+ if (Math.abs(bb0.zmax - bb0.zmin) > 1e-9) {
2196
+ throw new Error('[cq-compat] extrude: outward taper requires a planar profile (got z-extent)');
2197
+ }
2198
+ // 1. bottom face
2199
+ const bottomFace = k.makeFace(raw);
2200
+ // 2. top wire: arc-join offset lifted to z0+height
2201
+ const topWireRaw = k.translate(k.offsetWire2D(raw, off, 0), 0, 0, z0 + height);
2202
+ const topFace = k.makeFace(topWireRaw);
2203
+ // 3. classify top edges (straight vs arc) and match to bottom edges
2204
+ const bEdges = k.getSubShapes(raw, 'edge');
2205
+ const tEdges = k.getSubShapes(topWireRaw, 'edge');
2206
+ if (bEdges.length !== 4 || tEdges.length !== 8) {
2207
+ throw new Error(`[cq-compat] extrude: outward taper supports only 4-sided rectilinear profiles (got ${bEdges.length} bottom / ${tEdges.length} top edges)`);
2208
+ }
2209
+ const ends = (e) => {
2210
+ const { first, last } = k.curveParameters(e);
2211
+ return { a: k.curvePointAtParam(e, first), b: k.curvePointAtParam(e, last) };
2212
+ };
2213
+ const bEnds = bEdges.map(ends);
2214
+ const tTypes = tEdges.map((e) => String(k.curveType(e)).toLowerCase());
2215
+ const straightIdx = tTypes
2216
+ .map((t, i) => (t === 'line' ? i : -1))
2217
+ .filter((i) => i >= 0);
2218
+ const arcIdx = tTypes
2219
+ .map((t, i) => (t === 'line' ? -1 : i))
2220
+ .filter((i) => i >= 0);
2221
+ if (straightIdx.length !== 4 || arcIdx.length !== 4) {
2222
+ throw new Error(`[cq-compat] extrude: outward taper top wire misclassified (${straightIdx.length} straight / ${arcIdx.length} arc)`);
2223
+ }
2224
+ // Match each bottom edge to the parallel straight top edge (arc-join offset
2225
+ // preserves edge directions); the bottom edge's end vertex is the corner apex.
2226
+ const tEnds = straightIdx.map((i) => ends(tEdges[i]));
2227
+ const matches = new Array(4).fill(-1);
2228
+ const eps = 1e-6;
2229
+ for (let i = 0; i < 4; i++) {
2230
+ const d = { x: bEnds[i].b.x - bEnds[i].a.x, y: bEnds[i].b.y - bEnds[i].a.y };
2231
+ for (let j = 0; j < 4; j++) {
2232
+ if (matches.includes(j))
2233
+ continue;
2234
+ const td = { x: tEnds[j].b.x - tEnds[j].a.x, y: tEnds[j].b.y - tEnds[j].a.y };
2235
+ const cross = d.x * td.y - d.y * td.x;
2236
+ const dot = d.x * td.x + d.y * td.y;
2237
+ if (Math.abs(cross) < eps * Math.max(1, Math.hypot(d.x, d.y) * Math.hypot(td.x, td.y)) && dot > 0) {
2238
+ matches[i] = j;
2239
+ break;
2240
+ }
2241
+ }
2242
+ }
2243
+ if (matches.some((m) => m < 0)) {
2244
+ throw new Error('[cq-compat] extrude: outward taper could not match side edges');
2245
+ }
2246
+ // 4. sew the 10 faces
2247
+ const faces = [bottomFace, topFace];
2248
+ for (let i = 0; i < 4; i++) {
2249
+ const bp = bEnds[i];
2250
+ const tp = tEnds[matches[i]];
2251
+ // side plane: bottom edge + (bottom end -> top end) + REVERSED top edge
2252
+ // (top end -> top start) + (top start -> bottom start). Using the kernel
2253
+ // top edge's own direction would break the wire's head-to-tail continuity
2254
+ // (the previous edge ends at the top END), so the reversed segment is
2255
+ // built explicitly — verified against the probe construction.
2256
+ faces.push(k.makeFace(k.makeWire([
2257
+ bEdges[i],
2258
+ k.makeLineEdge(bp.b, tp.b),
2259
+ k.makeLineEdge(tp.b, tp.a),
2260
+ k.makeLineEdge(tp.a, bp.a),
2261
+ ])));
2262
+ // conical corner face: generatrix (apex = bottom edge end) -> arc edge end, revolved 90°
2263
+ const arcE = tEdges[arcIdx[i]];
2264
+ const arcEnds = ends(arcE);
2265
+ const apex = { x: bp.b.x, y: bp.b.y, z: z0 };
2266
+ // Generatrix to the arc's DOWNSTREAM end (last param): sweeping +90° about
2267
+ // +Z from the downstream direction covers the corner's arc quadrant exactly
2268
+ // (verified: `arcStart` here is (100,-off) for corner (100,0), i.e. the -Y
2269
+ // side, sweeping -Y -> +X). Using the upstream end would sweep into the
2270
+ // wrong quadrant.
2271
+ faces.push(k.revolve(k.makeLineEdge(apex, arcEnds.b), { point: apex, direction: { x: 0, y: 0, z: 1 } }, Math.PI / 2));
2272
+ }
2273
+ const shell = k.sew(faces, 1e-2);
2274
+ let solid = k.makeSolid(shell);
2275
+ const fixed = k.fixFaceOrientations(solid);
2276
+ if (k.isSolid(fixed))
2277
+ solid = fixed;
2278
+ const prism = fromHandle(solid);
2279
+ const shape = combine === false || !base ? prism : await fuseShapes(base, prism);
2280
+ return clone(wp, {
2281
+ shape,
2282
+ pendingWires: [],
2283
+ pendingPolygon: undefined,
2284
+ pendingRect: undefined,
2285
+ pendingCircle: undefined,
2286
+ faceSel: null,
2287
+ edgeSel: null,
2288
+ vertexSel: null,
2289
+ pts: [],
2290
+ });
2291
+ }
2133
2292
  /**
2134
2293
  * revolve — CadQuery `Workplane.revolve` parity.
2135
2294
  *
@@ -2525,6 +2684,217 @@ export async function threadedHole(wp, diameterOrFastener, depth) {
2525
2684
  const diameter = typeof diameterOrFastener === 'number' ? diameterOrFastener : 5;
2526
2685
  return hole(wp, diameter, depth);
2527
2686
  }
2687
+ /**
2688
+ * faces
2689
+ * @param wp - Workplane
2690
+ * @param sel - string
2691
+ * @returns Workplane
2692
+ */
2693
+ // ── Phase 3: siblings(CadQuery Shape.siblings 拓扑邻接语义)────────────
2694
+ //
2695
+ // 语义(对照 cadquery 2.8.0 occ_impl/shapes.py::siblings):
2696
+ // siblings(ctx, kind, level) = 从起点实体出发,沿「kind 子实体共享」的拓扑
2697
+ // 邻接走 level 步。每一步:当前集合的每个实体 → 其 kind 子实体 → 每个子实体
2698
+ // 的 ancestors(inverse 类型,TopExp.MapShapesAndAncestors)→ 去重。
2699
+ // kind=Edge → Face 网络(face 的边 → 边所属的面);kind=Vertex → Edge 网络。
2700
+ // level 可为 int(单层)或 tuple(各层结果并集,每层独立 exclude)。
2701
+ // faijs lineage 是语句级构造历史,与 CQ 拓扑图不同——此处按拓扑邻接实现,
2702
+ // 不接 lineage(Phase 3 风险注记的既定决策)。
2703
+ /** 实体 bbox 中心(方向/极值判定)。 */
2704
+ function handleCenter(kernel, h) {
2705
+ const bb = kernel.getBoundingBox(h);
2706
+ return [(bb.xmin + bb.xmax) / 2, (bb.ymin + bb.ymax) / 2, (bb.zmin + bb.zmax) / 2];
2707
+ }
2708
+ /** 实体 bbox 尺寸。 */
2709
+ function handleExtents(kernel, h) {
2710
+ const bb = kernel.getBoundingBox(h);
2711
+ return [bb.xmax - bb.xmin, bb.ymax - bb.ymin, bb.zmax - bb.zmin];
2712
+ }
2713
+ const SIBLING_AXIS = {
2714
+ '>Z': { axis: 2, sign: 1 }, '+Z': { axis: 2, sign: 1 },
2715
+ '<Z': { axis: 2, sign: -1 }, '-Z': { axis: 2, sign: -1 },
2716
+ '>X': { axis: 0, sign: 1 }, '+X': { axis: 0, sign: 1 },
2717
+ '<X': { axis: 0, sign: -1 }, '-X': { axis: 0, sign: -1 },
2718
+ '>Y': { axis: 1, sign: 1 }, '+Y': { axis: 1, sign: 1 },
2719
+ '<Y': { axis: 1, sign: -1 }, '-Y': { axis: 1, sign: -1 },
2720
+ };
2721
+ /** 字符串选择器 → face handles(起点解析用;语义对齐 resolveFaceSelector)。 */
2722
+ function selectFaceHandles(kernel, shapeH, sel) {
2723
+ const s = NAMED_VIEW_TO_AXIS[sel.trim().toLowerCase()] ?? sel;
2724
+ const baseSel = s.replace(/\[-?\d+\]$/, '');
2725
+ const dir = SIBLING_AXIS[baseSel];
2726
+ if (!dir)
2727
+ throw new Error(`[cq-compat] siblings: unsupported face selector "${sel}"`);
2728
+ const faces = kernel.getSubShapes(shapeH, 'face');
2729
+ const cands = faces.map((h) => ({ h, c: handleCenter(kernel, h), ext: handleExtents(kernel, h) }));
2730
+ // 仅垂直于方向的面参与(bbox 沿该轴薄)
2731
+ const perp = cands.filter((cd) => cd.ext[dir.axis] <= 0.1);
2732
+ if (perp.length === 0)
2733
+ throw new Error(`[cq-compat] siblings: no face perpendicular to "${sel}"`);
2734
+ const idxMatch = /\[(-?\d+)\]$/.exec(s.trim());
2735
+ if (idxMatch) {
2736
+ const asc = baseSel[0] === '>' || baseSel[0] === '-';
2737
+ const sorted = perp
2738
+ .slice()
2739
+ .sort((a, b) => (asc ? a.c[dir.axis] - b.c[dir.axis] : b.c[dir.axis] - a.c[dir.axis]));
2740
+ let k = parseInt(idxMatch[1], 10);
2741
+ k = k < 0 ? sorted.length + k : k;
2742
+ if (k < 0 || k >= sorted.length) {
2743
+ throw new Error(`[cq-compat] siblings: face index ${k} out of range (${sorted.length})`);
2744
+ }
2745
+ return [sorted[k].h];
2746
+ }
2747
+ // DirectionMinMax:极值单面(并列取面积大者,与 resolveFaceSelector 同规则)
2748
+ let best = perp[0];
2749
+ for (const cd of perp) {
2750
+ const val = cd.c[dir.axis];
2751
+ const bv = best.c[dir.axis];
2752
+ if (dir.sign === 1 ? val > bv + 1e-6 : val < bv - 1e-6)
2753
+ best = cd;
2754
+ else if (Math.abs(val - bv) <= 1e-6 && kernel.getSurfaceArea(cd.h) > kernel.getSurfaceArea(best.h))
2755
+ best = cd;
2756
+ }
2757
+ return [best.h];
2758
+ }
2759
+ /** 字符串选择器 → edge handles。'>A'/'<A':方向极值(该方向所有极值边);
2760
+ * '|A':与轴平行的边(bbox 主导维度为 A)。'[k]' 索引支持。 */
2761
+ function selectEdgeHandles(kernel, shapeH, sel) {
2762
+ const s = NAMED_VIEW_TO_AXIS[sel.trim().toLowerCase()] ?? sel;
2763
+ const baseSel = s.replace(/\[-?\d+\]$/, '');
2764
+ const edges = kernel.getSubShapes(shapeH, 'edge');
2765
+ const idxMatch = /\[(-?\d+)\]$/.exec(s.trim());
2766
+ const pickIdx = (list) => {
2767
+ if (!idxMatch)
2768
+ return list;
2769
+ let k = parseInt(idxMatch[1], 10);
2770
+ k = k < 0 ? list.length + k : k;
2771
+ if (k < 0 || k >= list.length) {
2772
+ throw new Error(`[cq-compat] siblings: edge index ${k} out of range (${list.length})`);
2773
+ }
2774
+ return [list[k]];
2775
+ };
2776
+ if (baseSel[0] === '|') {
2777
+ const axis = baseSel[1];
2778
+ const ai = axis === 'X' ? 0 : axis === 'Y' ? 1 : 2;
2779
+ const par = edges.filter((h) => {
2780
+ const ext = handleExtents(kernel, h);
2781
+ return ext[ai] > 1e-6 && ext[(ai + 1) % 3] < 1e-6 && ext[(ai + 2) % 3] < 1e-6;
2782
+ });
2783
+ return pickIdx(par);
2784
+ }
2785
+ const dir = SIBLING_AXIS[baseSel];
2786
+ if (!dir)
2787
+ throw new Error(`[cq-compat] siblings: unsupported edge selector "${sel}"`);
2788
+ const pts = edges.map((h) => ({ h, c: handleCenter(kernel, h) }));
2789
+ const best = dir.sign === 1
2790
+ ? Math.max(...pts.map((p) => p.c[dir.axis]))
2791
+ : Math.min(...pts.map((p) => p.c[dir.axis]));
2792
+ const extreme = pts.filter((p) => Math.abs(p.c[dir.axis] - best) < 1e-6).map((p) => p.h);
2793
+ return pickIdx(extreme);
2794
+ }
2795
+ /** 一步拓扑邻接:h 的 kind 子实体 → 每个子实体的 ancestors(inverse 类型)。
2796
+ * O(n×m):ctx 实体数量级小(box 6 面 12 边 8 顶点),不做索引缓存。 */
2797
+ function siblingStep(kernel, ctxH, h, kindLower, invLower) {
2798
+ const children = kernel.getSubShapes(h, kindLower);
2799
+ const invs = kernel.getSubShapes(ctxH, invLower);
2800
+ const out = new Set();
2801
+ for (const child of children) {
2802
+ for (const inv of invs) {
2803
+ const invChildren = kernel.getSubShapes(inv, kindLower);
2804
+ // GOTCHA(Phase 3 实测,cadquery 2.8.0 拓扑语义):OCCT 中共享边/顶点
2805
+ // 是「同一 TShape 不同 TopoDS 句柄」——两个 face 各自枚举出的共享边
2806
+ // handle id 不同(location/表层封装差异),=== 匹配恒 false。CQ 的
2807
+ // MapShapesAndAncestors 用 IsSame 判拓扑相等,此处必须用 kernel.isSame。
2808
+ for (const ic of invChildren) {
2809
+ if (kernel.isSame(ic, child)) {
2810
+ out.add(inv);
2811
+ break;
2812
+ }
2813
+ }
2814
+ }
2815
+ }
2816
+ return [...out];
2817
+ }
2818
+ /** 解析 siblings 起点实体:Workplane 的 faceSel/edgeSel 优先,否则 shape 本身。 */
2819
+ function resolveSiblingStarts(kernel, ctxH, start) {
2820
+ const wp = start;
2821
+ if (wp && wp.__cq === true) {
2822
+ if (wp.faceSel)
2823
+ return selectFaceHandles(kernel, ctxH, wp.faceSel).map((h) => h);
2824
+ if (wp.edgeSel)
2825
+ return selectEdgeHandles(kernel, ctxH, wp.edgeSel).map((h) => h);
2826
+ const sh = wp.shape ? brepOf(asBrepShape(wp.shape)) : undefined;
2827
+ return sh ? [sh] : [];
2828
+ }
2829
+ const sh = brepOf(asBrepShape(start));
2830
+ return sh ? [sh] : [];
2831
+ }
2832
+ /**
2833
+ * siblings — CadQuery Shape.siblings:拓扑邻接选择(Phase 3)。
2834
+ * @param start - 起点(Workplane 带 faceSel/edgeSel,或 Shape)。
2835
+ * @param ctxShape - 邻接搜索的容器 shape(CadQuery 的 ctx)。
2836
+ * @param kind - 链接实体类型:'Edge'(返回面网络)| 'Vertex'(返回边网络)| 'Face'。
2837
+ * @param level - 拓扑距离:int 或 int 数组(各层并集,每层独立排除)。
2838
+ * @returns Promise<Workplane> 选中的实体集合(shape = 实体 compound;空集返回空 compound)。
2839
+ */
2840
+ export async function siblings(start, ctxShape, kind, level) {
2841
+ const kernel = getKernel();
2842
+ const ctx = asBrepShape(resolveInputShape(ctxShape));
2843
+ const ctxH = brepOf(ctx);
2844
+ if (!ctxH)
2845
+ throw new Error('[cq-compat] siblings: ctx shape has no BREP handle');
2846
+ const kindLower = kind.toLowerCase();
2847
+ const startEnts = resolveSiblingStarts(kernel, ctxH, start);
2848
+ if (startEnts.length === 0) {
2849
+ throw new Error('[cq-compat] siblings: no starting entity resolvable');
2850
+ }
2851
+ // CQ:Ancestor = shapetype(self),输出类型随起点实体动态变化。起点经
2852
+ // getShapeType 判定;compound/其他类型兜底 'face'(Shape.siblings 的
2853
+ // self 在 test_* 中为 face/edge,compound 起点无合法 Ancestor 语义)。
2854
+ const startType = kernel.getShapeType(startEnts[0]);
2855
+ const invLower = startType === 'edge' || startType === 'vertex' ? startType : 'face';
2856
+ const levels = (Array.isArray(level) ? level : [level])
2857
+ .map(Number)
2858
+ .filter((l) => Number.isFinite(l) && l >= 1);
2859
+ // GOTCHA(Phase 3 实测):occt-wasm 的 getSubShapes 每次调用为同一拓扑
2860
+ // 实体分配新的 handle id(f1=[2..7], f2=[8..13]),id 相等性不能表达
2861
+ // 拓扑相等。所有去重/排除判断一律用 kernel.isSame(同 CQ 的
2862
+ // MapShapesAndAncestors IsSame 语义)。
2863
+ const isSameHandle = (a, b) => kernel.isSame(a, b);
2864
+ const inList = (list, h) => list.some((x) => isSameHandle(x, h));
2865
+ const out = [];
2866
+ for (const lvl of levels) {
2867
+ // CQ 的 exclude 语义(occ_impl/shapes.py::siblings):闭包累积,每层递归
2868
+ // 开始时把「上一层结果」整体加入 exclude;层内所有实体共享同一 exclude,
2869
+ // 不会因遍历顺序提前放行同层邻居(否则 4 侧面环会把 A2/A3 漏进 level 2)。
2870
+ const visited = [...startEnts];
2871
+ let frontier = startEnts;
2872
+ for (let i = 0; i < lvl; i++) {
2873
+ const next = [];
2874
+ for (const h of frontier) {
2875
+ for (const n of siblingStep(kernel, ctxH, h, kindLower, invLower)) {
2876
+ if (!inList(visited, n))
2877
+ next.push(n);
2878
+ }
2879
+ }
2880
+ for (const n of next)
2881
+ if (!inList(visited, n))
2882
+ visited.push(n);
2883
+ if (next.length === 0)
2884
+ break;
2885
+ frontier = next;
2886
+ }
2887
+ for (const h of frontier)
2888
+ if (!inList(startEnts, h))
2889
+ out.push(h);
2890
+ }
2891
+ const uniq = [];
2892
+ for (const h of out)
2893
+ if (!uniq.some((x) => isSameHandle(x, h)))
2894
+ uniq.push(h);
2895
+ const compound = uniq.length === 0 ? await cad.compound({ members: [] }) : await cad.compound({ members: uniq.map((h) => fromHandle(h)) });
2896
+ return clone(makeWorkplane('XY'), { shape: compound });
2897
+ }
2528
2898
  /**
2529
2899
  * faces
2530
2900
  * @param wp - Workplane
@@ -2534,6 +2904,55 @@ export async function threadedHole(wp, diameterOrFastener, depth) {
2534
2904
  export function faces(wp, sel) {
2535
2905
  return clone(wp, { faceSel: sel, edgeSel: null, vertexSel: null });
2536
2906
  }
2907
+ /**
2908
+ * tag — CadQuery Workplane.tag(name) parity (dataflow carrier).
2909
+ *
2910
+ * Upstream records the current workplane state (origin/xDir/normal + current
2911
+ * objects) under a name so a later workplaneFromTagged can jump back to it.
2912
+ * The faijs carrier keeps a snapshot of the plane frame and the carried
2913
+ * shape; the tagged objects stay the current shape's sub-shapes.
2914
+ *
2915
+ * @param wp - Workplane to mark
2916
+ * @param name - Tag name
2917
+ * @returns Workplane carrying the tag snapshot
2918
+ */
2919
+ export function tag(wp, name) {
2920
+ return clone(wp, {
2921
+ tags: {
2922
+ ...(wp.tags ?? {}),
2923
+ [name]: { origin: wp.origin, xDir: wp.xDir, normal: wp.normal, shape: wp.shape },
2924
+ },
2925
+ });
2926
+ }
2927
+ /**
2928
+ * workplaneFromTagged — CadQuery Workplane.workplaneFromTagged(name) parity.
2929
+ *
2930
+ * Restores the workplane frame (origin/xDir/normal) and carried shape captured
2931
+ * by an earlier ag(name). Points/selectors are reset (upstream jumps back
2932
+ * to the tagged plane with an empty stack).
2933
+ *
2934
+ * @param wp - Workplane carrying the tags
2935
+ * @param name - Tag name to restore
2936
+ * @returns Workplane restored to the tagged plane
2937
+ */
2938
+ export function workplaneFromTagged(wp, name) {
2939
+ const saved = wp.tags?.[name];
2940
+ if (!saved)
2941
+ throw new Error('workplaneFromTagged: tag ' + name + ' not found');
2942
+ // Upstream Workplane.workplaneFromTagged calls _fromPlane, which keeps
2943
+ // the CURRENT objects (carried shape) and only swaps the plane frame
2944
+ // (origin/xDir/normal). Restoring the saved shape would drop any solids
2945
+ // built since the tag (verified vs cadquery 2.8.0 testWorkplaneFromTagged).
2946
+ return clone(wp, {
2947
+ origin: saved.origin,
2948
+ xDir: saved.xDir,
2949
+ normal: saved.normal,
2950
+ pts: [],
2951
+ faceSel: null,
2952
+ edgeSel: null,
2953
+ vertexSel: null,
2954
+ });
2955
+ }
2537
2956
  /**
2538
2957
  * edges
2539
2958
  * @param wp - Workplane
@@ -2710,7 +3129,7 @@ export function pushPoints(wp, pts) {
2710
3129
  export async function translate(wp, v) {
2711
3130
  if (!wp.shape)
2712
3131
  return clone(wp, { origin: vadd(wp.origin, v) });
2713
- const shape = await cad.translate(wp.shape, { offset: v });
3132
+ const shape = await cad.translate(resolveInputShape(wp), { offset: v });
2714
3133
  return clone(wp, { shape, origin: vadd(wp.origin, v) });
2715
3134
  }
2716
3135
  /**
@@ -2728,7 +3147,7 @@ export async function rotate(wp, axis, angle) {
2728
3147
  axis[1] * angle,
2729
3148
  axis[2] * angle,
2730
3149
  ];
2731
- const shape = await cad.rotate_euler(wp.shape, { anglesDeg });
3150
+ const shape = await cad.rotate_euler(resolveInputShape(wp), { anglesDeg });
2732
3151
  return clone(wp, { shape });
2733
3152
  }
2734
3153
  /**
@@ -2787,7 +3206,7 @@ export async function mirror(wp, mirrorPlane, basePointVector, union) {
2787
3206
  normal = MIRROR_PLANE_NORMALS[key] ?? [0, 0, 1];
2788
3207
  at = basePointVector ?? [0, 0, 0];
2789
3208
  }
2790
- const mirrored = await cad.mirror(wp.shape, { normal, at });
3209
+ const mirrored = await cad.mirror(resolveInputShape(wp), { normal, at });
2791
3210
  const shape = union ? await fuseShapes(wp.shape, mirrored) : mirrored;
2792
3211
  // Upstream returns a newObject stack holding only the mirrored/unioned
2793
3212
  // objects — pending selectors do not survive a mirror.
@@ -3131,7 +3550,7 @@ export async function moved(wp, ...locs) {
3131
3550
  const resolved = toLocations(locs);
3132
3551
  const copies = [];
3133
3552
  for (const l of resolved)
3134
- copies.push(await applyLocation(wp.shape, l));
3553
+ copies.push(await applyLocation(resolveInputShape(wp), l));
3135
3554
  let shape;
3136
3555
  if (copies.length === 0) {
3137
3556
  shape = wp.shape;
@@ -3211,7 +3630,7 @@ export async function cut(wp, other) {
3211
3630
  const otherShape = 'shape' in other ? other.shape : other;
3212
3631
  if (!otherShape)
3213
3632
  return wp;
3214
- const shape = await cad.subtract(wp.shape, otherShape);
3633
+ const shape = await cad.subtract(resolveInputShape(wp), resolveInputShape(other));
3215
3634
  return clone(wp, { shape });
3216
3635
  }
3217
3636
  /**