feat(rebar): 단면·폐합 section with the top-row and side-row chains and bar-group bubbles
- Top row (C1–C8) spacing along the 교축 from chainDims, between the coping's two long edges (±B/2). - Side rows (C12·C13) along the EL, from the coping top EL down to the lowest side bar. - One bubble per bar group cut at the station, with a leader to its bars. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
41c1ecd340
commit
d5bf02e36b
3 files changed
+77
-19
No files matched your search
@@ -34,11 +34,12 @@ describe('코핑 배근 정면 · 단면 (승인 2026-10-26)', () => {
|
||||
});
|
||||
|
||||
describe('단면 · 폐합 글자 겹침 (승인 2026-10-26)', () => {
|
||||
it('writes each bar name once, and each spot once', () => {
|
||||
const svg = copingSectionSvg(scene.records, 6);
|
||||
const labels = (svg.match(/<text /g) ?? []).length;
|
||||
const names = new Set((svg.match(/font-size="120"[^>]*>(C\d+)</g) ?? []).map((s) => s.replace(/.*>/, '')));
|
||||
expect(labels).toBe(names.size);
|
||||
it('writes each bubble label once', () => {
|
||||
const svg = copingSectionSvg(scene.records, 6, model.copingRefTop, model.copingB * 1000);
|
||||
// A bubble is drawn for each group that is cut at this station, and only once.
|
||||
for (const label of ['C1–6', 'C12·13', 'C10', 'C7·8', 'C14', 'C16']) {
|
||||
expect(svg.split(`>${label}<`).length - 1).toBe(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user