-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
124 lines (113 loc) · 4.51 KB
/
Copy pathindex.html
File metadata and controls
124 lines (113 loc) · 4.51 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>DfM Intelligence Assistant</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="app-header">
<div>
<p class="eyebrow">Injection molding DfM review</p>
<h1>DfM Intelligence Assistant</h1>
</div>
<div class="header-actions">
<button id="loadSampleBtn" type="button" class="secondary">Load sample</button>
<button id="analyzeBtn" type="button">Analyze DfM</button>
<button id="exportBtn" type="button" class="secondary">Export report</button>
</div>
</header>
<main class="workspace">
<section class="panel controls" aria-label="CAD and process context">
<div class="section-title">
<span class="kicker">Input</span>
<h2>CAD Context</h2>
</div>
<label class="drop-zone" id="dropZone">
<input id="fileInput" type="file" accept=".stl,.obj,.step,.stp">
<span class="drop-icon">CAD</span>
<strong id="fileName">Drop STL, OBJ, STEP, or STP</strong>
<small id="meshMeta">Sample molded bracket loaded</small>
</label>
<label class="field">
<span>Material</span>
<select id="materialSelect"></select>
</label>
<fieldset class="segmented">
<legend>Pull direction</legend>
<label><input type="radio" name="pullAxis" value="x"><span>X</span></label>
<label><input type="radio" name="pullAxis" value="y"><span>Y</span></label>
<label><input type="radio" name="pullAxis" value="z" checked><span>Z</span></label>
</fieldset>
<div class="field-grid">
<label class="field">
<span>Min draft</span>
<input id="draftInput" type="number" min="0" max="8" step="0.1" value="1.0">
</label>
<label class="field">
<span>Nominal wall</span>
<input id="wallInput" type="number" min="0.4" max="6" step="0.1" value="2.2">
</label>
</div>
<div class="toggle-row">
<label><input id="cosmeticInput" type="checkbox" checked> Cosmetic faces</label>
<label><input id="textureInput" type="checkbox"> Textured finish</label>
</div>
<div class="metric-stack" id="metricStack"></div>
</section>
<section class="viewer-shell" aria-label="3D DfM viewer">
<div class="viewer-topbar">
<div>
<span class="kicker">3D review</span>
<h2 id="modelTitle">Sample molded bracket</h2>
</div>
<div class="legend" aria-label="Issue legend">
<span><i class="swatch draft"></i>Draft</span>
<span><i class="swatch undercut"></i>Undercut</span>
<span><i class="swatch thickness"></i>Wall</span>
<span><i class="swatch rib"></i>Rib/Boss</span>
</div>
</div>
<canvas id="viewerCanvas" width="1200" height="820" aria-label="3D model with highlighted DfM findings"></canvas>
<div class="viewer-footer">
<span id="viewerHint">Drag to rotate. Wheel to zoom.</span>
<button id="resetViewBtn" type="button" class="icon-button" title="Reset view" aria-label="Reset view">Reset</button>
</div>
</section>
<section class="panel results" aria-label="DfM analysis results">
<div class="section-title">
<span class="kicker">Output</span>
<h2>Findings</h2>
</div>
<div class="score-band">
<div>
<span class="score-label">Readiness</span>
<strong id="scoreValue">--</strong>
</div>
<span id="riskBadge" class="risk-badge">Not analyzed</span>
</div>
<div class="issue-list" id="issueList"></div>
</section>
</main>
<section class="report-band" aria-label="Generated report">
<div class="report-grid">
<div>
<div class="section-title">
<span class="kicker">Rules</span>
<h2>DfM Matrix</h2>
</div>
<div class="rule-table" id="ruleTable"></div>
</div>
<div>
<div class="section-title">
<span class="kicker">AI/LLM</span>
<h2>Report Draft</h2>
</div>
<article class="report-preview" id="reportPreview"></article>
</div>
</div>
</section>
<script type="module" src="src/app.js"></script>
</body>
</html>