added edge tabs and a lot of bug fixes abizt overlaps

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Finn Tews
2026-05-07 08:39:18 +02:00
parent 80e5c17ead
commit ae2e631cc7
26 changed files with 1213 additions and 162 deletions

53
dist/index.html vendored
View File

@@ -4,9 +4,9 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=yes">
<meta name="theme-color" content="#0a0f1e">
<title>Cell Holder Generator</title>
<script type="module" crossorigin src="./assets/index-jBPW89B_.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CXz5-edo.css">
<title>Cell Holder Generator - waak.me</title>
<script type="module" crossorigin src="./assets/index-DwWFs8GA.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-DFysVyGJ.css">
</head>
<body>
<div class="loading-overlay active" id="loadingOverlay" style="display: flex !important;">
@@ -18,7 +18,10 @@
</div>
<div class="container">
<h1>Cell Holder Generator</h1>
<div class="header-row">
<h1>Cell Holder Generator</h1>
<p class="repo-credit">Forked from <a href="https://github.com/waak86/battery-builder" target="_blank" rel="noopener noreferrer">waak's Battery Builder</a> <br>Huge thanks to <a href="https://t.me/waak86" target="_blank" rel="noopener noreferrer">waak</a> for the original project. </p>
</div>
<p class="subtitle">Generate custom 3D printable cell holders with STEP export</p>
<div class="main-layout">
@@ -160,6 +163,15 @@
<input type="number" id="tabDepth" value="1.0" min="0.1" step="0.1">
</div>
</div>
<div class="form-group" id="tabOverlapSideGroup" style="display:none;">
<label>Tab Overlap Side</label>
<select id="tabOverlapSide">
<option value="off" selected>Off</option>
<option value="top">Top</option>
<option value="bottom">Bottom</option>
</select>
<span class="field-hint">Adds one continuous outside lip across the selected edge tabs.</span>
</div>
</section>
<section class="tab-panel" role="tabpanel" data-panel="busbars">
@@ -171,8 +183,28 @@
</select>
<span class="field-hint">STEP exports a 3D solid for CAD or 3D printing. DXF exports a flat 2D outline for laser or plasma cutters.</span>
</div>
<div class="checkbox-group">
<input type="checkbox" id="busbarCellCutoutEnabled">
<label for="busbarCellCutoutEnabled">Cell center cutout (5x2 mm) for all busbars</label>
</div>
<div class="busbar-controls-row">
<div class="busbar-face-filter" role="group" aria-label="Face filter">
<button type="button" class="face-filter-btn active" data-filter="both">Top &amp; Bottom</button>
<button type="button" class="face-filter-btn" data-filter="top">Top only</button>
</div>
<div class="busbar-controls-right">
<button type="button" class="btn-ghost btn-dl-all" id="downloadAllBusbarsBtn" title="Download all busbars as a ZIP file">
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v13M7 11l5 5 5-5"/><path d="M4 20h16"/></svg>
ZIP all
</button>
<button type="button" class="btn-ghost btn-clear-markings" id="clearMarkingsBtn" title="Remove all cell assignments without deleting busbars">Clear</button>
</div>
</div>
<div id="busbarList"></div>
<button class="btn-secondary" id="addBusbarBtn">+ Add Busbar</button>
<div class="busbar-add-row">
<button class="btn-secondary" id="addTopBusbarBtn">+ Top Busbar</button>
<button class="btn-secondary" id="addBottomBusbarBtn">+ Bottom Busbar</button>
</div>
</section>
</div>
@@ -182,7 +214,16 @@
<div class="preview-container">
<h2>Preview</h2>
<canvas id="preview"></canvas>
<div class="previews-row">
<div class="preview-face-wrap">
<div class="face-label" id="topFaceLabel">Top</div>
<canvas id="preview"></canvas>
</div>
<div class="preview-face-wrap" id="bottomFaceWrap">
<div class="face-label" id="bottomFaceLabel">Bottom</div>
<canvas id="preview-bottom"></canvas>
</div>
</div>
<div id="previewStats">Configure settings and click Generate to see preview</div>
</div>
</div>