cyclecad 0.1.0
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.
- package/CNAME +1 -0
- package/app/docs/api-reference.html +1436 -0
- package/app/docs/examples.html +803 -0
- package/app/docs/getting-started.html +1620 -0
- package/app/duo-project-browser.html +1321 -0
- package/app/duo-rebuild-guide.html +861 -0
- package/app/index.html +1635 -0
- package/app/js/ai-chat.js +992 -0
- package/app/js/app.js +724 -0
- package/app/js/export.js +658 -0
- package/app/js/inventor-parser.js +1138 -0
- package/app/js/operations.js +689 -0
- package/app/js/params.js +523 -0
- package/app/js/reverse-engineer.js +1275 -0
- package/app/js/shortcuts.js +350 -0
- package/app/js/sketch.js +899 -0
- package/app/js/tree.js +479 -0
- package/app/js/viewport.js +643 -0
- package/app/samples/Leistenbuerstenblech.ipt +0 -0
- package/app/samples/Rahmen_Seite.iam +0 -0
- package/app/samples/TraegerHoehe1.ipt +0 -0
- package/index.html +1226 -0
- package/package.json +33 -0
|
@@ -0,0 +1,861 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>DUO cycleWASH — Leistenbürstenblech Rebuild Guide</title>
|
|
7
|
+
<style>
|
|
8
|
+
* {
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
html, body {
|
|
15
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', sans-serif;
|
|
16
|
+
background-color: #0d1117;
|
|
17
|
+
color: #c9d1d9;
|
|
18
|
+
line-height: 1.6;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Layout: Sidebar + Main */
|
|
22
|
+
.container {
|
|
23
|
+
display: flex;
|
|
24
|
+
min-height: 100vh;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.sidebar {
|
|
28
|
+
width: 280px;
|
|
29
|
+
background-color: #161b22;
|
|
30
|
+
border-right: 1px solid #30363d;
|
|
31
|
+
padding: 24px 16px;
|
|
32
|
+
overflow-y: auto;
|
|
33
|
+
position: fixed;
|
|
34
|
+
height: 100vh;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.main-content {
|
|
38
|
+
margin-left: 280px;
|
|
39
|
+
flex: 1;
|
|
40
|
+
padding: 40px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Header */
|
|
44
|
+
.header {
|
|
45
|
+
margin-bottom: 40px;
|
|
46
|
+
padding-bottom: 24px;
|
|
47
|
+
border-bottom: 2px solid #30363d;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.header h1 {
|
|
51
|
+
font-size: 2.2em;
|
|
52
|
+
color: #f0f6fc;
|
|
53
|
+
margin-bottom: 8px;
|
|
54
|
+
display: flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
gap: 12px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.header .subtitle {
|
|
60
|
+
color: #8b949e;
|
|
61
|
+
font-size: 0.95em;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Part Info Card */
|
|
65
|
+
.part-info {
|
|
66
|
+
background: linear-gradient(135deg, #1c2128 0%, #161b22 100%);
|
|
67
|
+
border: 1px solid #30363d;
|
|
68
|
+
border-radius: 8px;
|
|
69
|
+
padding: 24px;
|
|
70
|
+
margin-bottom: 40px;
|
|
71
|
+
display: grid;
|
|
72
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
73
|
+
gap: 20px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.part-info-item {
|
|
77
|
+
display: flex;
|
|
78
|
+
flex-direction: column;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.part-info-item label {
|
|
82
|
+
font-size: 0.8em;
|
|
83
|
+
color: #8b949e;
|
|
84
|
+
text-transform: uppercase;
|
|
85
|
+
letter-spacing: 0.05em;
|
|
86
|
+
margin-bottom: 6px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.part-info-item span {
|
|
90
|
+
color: #f0f6fc;
|
|
91
|
+
font-weight: 500;
|
|
92
|
+
font-family: 'Monaco', 'Courier New', monospace;
|
|
93
|
+
font-size: 0.95em;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Steps Container */
|
|
97
|
+
.steps {
|
|
98
|
+
display: flex;
|
|
99
|
+
flex-direction: column;
|
|
100
|
+
gap: 32px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.step {
|
|
104
|
+
background-color: #161b22;
|
|
105
|
+
border: 1px solid #30363d;
|
|
106
|
+
border-radius: 8px;
|
|
107
|
+
overflow: hidden;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.step-header {
|
|
111
|
+
background-color: #1c2128;
|
|
112
|
+
padding: 20px 24px;
|
|
113
|
+
display: flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: 16px;
|
|
116
|
+
border-bottom: 1px solid #30363d;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.step-badge {
|
|
120
|
+
background-color: #ff8c00;
|
|
121
|
+
color: #fff;
|
|
122
|
+
width: 48px;
|
|
123
|
+
height: 48px;
|
|
124
|
+
border-radius: 6px;
|
|
125
|
+
display: flex;
|
|
126
|
+
align-items: center;
|
|
127
|
+
justify-content: center;
|
|
128
|
+
font-weight: bold;
|
|
129
|
+
font-size: 1.3em;
|
|
130
|
+
flex-shrink: 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.step-title {
|
|
134
|
+
font-size: 1.3em;
|
|
135
|
+
color: #f0f6fc;
|
|
136
|
+
font-weight: 600;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.step-body {
|
|
140
|
+
padding: 24px;
|
|
141
|
+
display: grid;
|
|
142
|
+
grid-template-columns: 1fr 1fr;
|
|
143
|
+
gap: 24px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.instruction-box {
|
|
147
|
+
border-radius: 6px;
|
|
148
|
+
padding: 16px;
|
|
149
|
+
border-left: 4px solid;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.instruction-box h4 {
|
|
153
|
+
margin-bottom: 12px;
|
|
154
|
+
font-size: 1em;
|
|
155
|
+
display: flex;
|
|
156
|
+
align-items: center;
|
|
157
|
+
gap: 8px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.fusion-box {
|
|
161
|
+
background-color: #0d3922;
|
|
162
|
+
border-left-color: #3fb950;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.fusion-box h4 {
|
|
166
|
+
color: #3fb950;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.cyclecad-box {
|
|
170
|
+
background-color: #0c2d6b;
|
|
171
|
+
border-left-color: #58a6ff;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.cyclecad-box h4 {
|
|
175
|
+
color: #58a6ff;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.instruction-box ol, .instruction-box ul {
|
|
179
|
+
margin-left: 20px;
|
|
180
|
+
color: #c9d1d9;
|
|
181
|
+
font-size: 0.95em;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.instruction-box li {
|
|
185
|
+
margin-bottom: 8px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.code-block {
|
|
189
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
190
|
+
padding: 12px;
|
|
191
|
+
border-radius: 4px;
|
|
192
|
+
font-family: 'Monaco', 'Courier New', monospace;
|
|
193
|
+
font-size: 0.9em;
|
|
194
|
+
color: #79c0ff;
|
|
195
|
+
overflow-x: auto;
|
|
196
|
+
margin-top: 8px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.step-tip {
|
|
200
|
+
grid-column: 1 / -1;
|
|
201
|
+
background-color: rgba(255, 140, 0, 0.1);
|
|
202
|
+
border: 1px solid rgba(255, 140, 0, 0.3);
|
|
203
|
+
border-radius: 4px;
|
|
204
|
+
padding: 12px 16px;
|
|
205
|
+
color: #ffa657;
|
|
206
|
+
font-size: 0.95em;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.step-tip strong {
|
|
210
|
+
color: #ff8c00;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* Sidebar Navigation */
|
|
214
|
+
.sidebar h3 {
|
|
215
|
+
color: #f0f6fc;
|
|
216
|
+
font-size: 0.9em;
|
|
217
|
+
text-transform: uppercase;
|
|
218
|
+
letter-spacing: 0.05em;
|
|
219
|
+
margin-bottom: 16px;
|
|
220
|
+
margin-top: 24px;
|
|
221
|
+
padding-top: 16px;
|
|
222
|
+
border-top: 1px solid #30363d;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.sidebar h3:first-child {
|
|
226
|
+
margin-top: 0;
|
|
227
|
+
border-top: none;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.sidebar ul {
|
|
231
|
+
list-style: none;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.sidebar li {
|
|
235
|
+
margin-bottom: 8px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.sidebar a {
|
|
239
|
+
color: #8b949e;
|
|
240
|
+
text-decoration: none;
|
|
241
|
+
font-size: 0.9em;
|
|
242
|
+
display: block;
|
|
243
|
+
padding: 8px 12px;
|
|
244
|
+
border-radius: 4px;
|
|
245
|
+
transition: all 0.2s;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.sidebar a:hover {
|
|
249
|
+
background-color: #30363d;
|
|
250
|
+
color: #58a6ff;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.sidebar a.active {
|
|
254
|
+
background-color: #30363d;
|
|
255
|
+
color: #ff8c00;
|
|
256
|
+
font-weight: 600;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.sidebar .current-part {
|
|
260
|
+
background-color: rgba(255, 140, 0, 0.1);
|
|
261
|
+
border: 1px solid rgba(255, 140, 0, 0.3);
|
|
262
|
+
color: #ff8c00;
|
|
263
|
+
border-radius: 4px;
|
|
264
|
+
padding: 12px;
|
|
265
|
+
margin-bottom: 16px;
|
|
266
|
+
font-size: 0.9em;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* Footer */
|
|
270
|
+
.footer {
|
|
271
|
+
margin-top: 60px;
|
|
272
|
+
padding-top: 24px;
|
|
273
|
+
border-top: 1px solid #30363d;
|
|
274
|
+
text-align: center;
|
|
275
|
+
color: #6e7681;
|
|
276
|
+
font-size: 0.9em;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* Responsive */
|
|
280
|
+
@media (max-width: 1024px) {
|
|
281
|
+
.sidebar {
|
|
282
|
+
width: 240px;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.main-content {
|
|
286
|
+
margin-left: 240px;
|
|
287
|
+
padding: 24px;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.step-body {
|
|
291
|
+
grid-template-columns: 1fr;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
@media (max-width: 768px) {
|
|
296
|
+
.container {
|
|
297
|
+
flex-direction: column;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.sidebar {
|
|
301
|
+
width: 100%;
|
|
302
|
+
height: auto;
|
|
303
|
+
position: relative;
|
|
304
|
+
border-right: none;
|
|
305
|
+
border-bottom: 1px solid #30363d;
|
|
306
|
+
padding: 16px;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.main-content {
|
|
310
|
+
margin-left: 0;
|
|
311
|
+
padding: 20px;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.header h1 {
|
|
315
|
+
font-size: 1.6em;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.part-info {
|
|
319
|
+
grid-template-columns: 1fr;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/* Icon placeholders */
|
|
324
|
+
.icon {
|
|
325
|
+
display: inline-block;
|
|
326
|
+
}
|
|
327
|
+
</style>
|
|
328
|
+
</head>
|
|
329
|
+
<body>
|
|
330
|
+
<div class="container">
|
|
331
|
+
<!-- Sidebar -->
|
|
332
|
+
<aside class="sidebar">
|
|
333
|
+
<h3>📑 DUO Anlage</h3>
|
|
334
|
+
<div class="current-part">
|
|
335
|
+
<strong>Current:</strong><br>
|
|
336
|
+
Leistenbürstenblech
|
|
337
|
+
</div>
|
|
338
|
+
|
|
339
|
+
<h3>Sub-Assemblies</h3>
|
|
340
|
+
<ul>
|
|
341
|
+
<li><a href="#gestell">Gestell (Frame)</a></li>
|
|
342
|
+
<li><a href="#waschbürsten">Waschbürsten (Wash Brushes)</a></li>
|
|
343
|
+
<li><a href="#raddreheinheit">Raddreheinheit (Wheel Rotation)</a></li>
|
|
344
|
+
<li><a href="#lenkerhalterung">Lenkerhalterung (Handlebar Holder)</a></li>
|
|
345
|
+
<li><a href="#rad">Rad (Wheel)</a></li>
|
|
346
|
+
<li><a href="#seitenwand">Seitenwand (Side Wall)</a></li>
|
|
347
|
+
<li><a href="#schiebebürsten">Schiebebürsten (Slide Brushes)</a></li>
|
|
348
|
+
<li><a href="#ultraschall">Ultraschallreiniger (Ultrasonic)</a></li>
|
|
349
|
+
</ul>
|
|
350
|
+
|
|
351
|
+
<h3>Quick Links</h3>
|
|
352
|
+
<ul>
|
|
353
|
+
<li><a href="#step-1">Sheet Metal Setup</a></li>
|
|
354
|
+
<li><a href="#step-3">User Parameters</a></li>
|
|
355
|
+
<li><a href="#step-4">Base Sketch</a></li>
|
|
356
|
+
<li><a href="#step-7">Flat Pattern</a></li>
|
|
357
|
+
<li><a href="#step-9">Verification</a></li>
|
|
358
|
+
</ul>
|
|
359
|
+
|
|
360
|
+
<h3>Resources</h3>
|
|
361
|
+
<ul>
|
|
362
|
+
<li><a href="#">Inventor Project Files</a></li>
|
|
363
|
+
<li><a href="#">Fusion 360 Docs</a></li>
|
|
364
|
+
<li><a href="#">cycleCAD API</a></li>
|
|
365
|
+
<li><a href="#">DXF Export Guide</a></li>
|
|
366
|
+
</ul>
|
|
367
|
+
</aside>
|
|
368
|
+
|
|
369
|
+
<!-- Main Content -->
|
|
370
|
+
<main class="main-content">
|
|
371
|
+
<!-- Header -->
|
|
372
|
+
<header class="header">
|
|
373
|
+
<h1>🏭 DUO cycleWASH — Inventor to Fusion 360 / cycleCAD</h1>
|
|
374
|
+
<p class="subtitle">Rebuild Guide: Leistenbürstenblech (Strip Brush Sheet Metal)</p>
|
|
375
|
+
</header>
|
|
376
|
+
|
|
377
|
+
<!-- Part Info Card -->
|
|
378
|
+
<div class="part-info">
|
|
379
|
+
<div class="part-info-item">
|
|
380
|
+
<label>Filename</label>
|
|
381
|
+
<span>Leistenbürstenblech.ipt</span>
|
|
382
|
+
</div>
|
|
383
|
+
<div class="part-info-item">
|
|
384
|
+
<label>Part Type</label>
|
|
385
|
+
<span>Sheet Metal (Blechteile)</span>
|
|
386
|
+
</div>
|
|
387
|
+
<div class="part-info-item">
|
|
388
|
+
<label>Template</label>
|
|
389
|
+
<span>Metric\Sheet Metal (mm).ipt</span>
|
|
390
|
+
</div>
|
|
391
|
+
<div class="part-info-item">
|
|
392
|
+
<label>Inventor Version</label>
|
|
393
|
+
<span>11.0 (2006)</span>
|
|
394
|
+
</div>
|
|
395
|
+
<div class="part-info-item">
|
|
396
|
+
<label>Key Parameter</label>
|
|
397
|
+
<span>Stärke (Thickness)</span>
|
|
398
|
+
</div>
|
|
399
|
+
<div class="part-info-item">
|
|
400
|
+
<label>Feature</label>
|
|
401
|
+
<span>FlatPattern</span>
|
|
402
|
+
</div>
|
|
403
|
+
</div>
|
|
404
|
+
|
|
405
|
+
<!-- Steps -->
|
|
406
|
+
<div class="steps">
|
|
407
|
+
<!-- Step 1 -->
|
|
408
|
+
<div class="step" id="step-1">
|
|
409
|
+
<div class="step-header">
|
|
410
|
+
<div class="step-badge">1</div>
|
|
411
|
+
<div class="step-title">Create New Sheet Metal Design</div>
|
|
412
|
+
</div>
|
|
413
|
+
<div class="step-body">
|
|
414
|
+
<div class="instruction-box fusion-box">
|
|
415
|
+
<h4>✓ Fusion 360</h4>
|
|
416
|
+
<ol>
|
|
417
|
+
<li><strong>File</strong> → <strong>New Design</strong></li>
|
|
418
|
+
<li>In the <strong>Ribbon</strong>, click the <strong>SHEET METAL</strong> tab</li>
|
|
419
|
+
<li>Click <strong>New Sheet Metal Design</strong> button</li>
|
|
420
|
+
<li>Project is now in Sheet Metal workspace</li>
|
|
421
|
+
<li>Units should be <strong>Millimeters</strong> (metric)</li>
|
|
422
|
+
</ol>
|
|
423
|
+
</div>
|
|
424
|
+
<div class="instruction-box cyclecad-box">
|
|
425
|
+
<h4>⚙ cycleCAD API</h4>
|
|
426
|
+
<div class="code-block">
|
|
427
|
+
const design = new cycleCAD.Design({<br/>
|
|
428
|
+
name: 'Leistenbürstenblech',<br/>
|
|
429
|
+
type: 'SHEET_METAL',<br/>
|
|
430
|
+
units: 'mm',<br/>
|
|
431
|
+
inventor_source: {<br/>
|
|
432
|
+
filename: 'Leistenbürstenblech.ipt',<br/>
|
|
433
|
+
version: '11.0',<br/>
|
|
434
|
+
template: 'Sheet Metal (mm)' <br/>
|
|
435
|
+
}<br/>
|
|
436
|
+
});
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
439
|
+
<div class="step-tip">
|
|
440
|
+
<strong>💡 Tip:</strong> Sheet Metal workspace has different tools than Part Design. You'll see <strong>Base Flange</strong>, <strong>Flange</strong>, <strong>Bend</strong>, and <strong>Flat Pattern</strong> commands instead of Pad/Pocket.
|
|
441
|
+
</div>
|
|
442
|
+
</div>
|
|
443
|
+
</div>
|
|
444
|
+
|
|
445
|
+
<!-- Step 2 -->
|
|
446
|
+
<div class="step" id="step-2">
|
|
447
|
+
<div class="step-header">
|
|
448
|
+
<div class="step-badge">2</div>
|
|
449
|
+
<div class="step-title">Set Sheet Metal Rules (Thickness & Bend)</div>
|
|
450
|
+
</div>
|
|
451
|
+
<div class="step-body">
|
|
452
|
+
<div class="instruction-box fusion-box">
|
|
453
|
+
<h4>✓ Fusion 360</h4>
|
|
454
|
+
<ol>
|
|
455
|
+
<li>Right-click on <strong>Sheet Metal</strong> folder in Browser</li>
|
|
456
|
+
<li>Select <strong>Edit Sheet Metal Rules</strong></li>
|
|
457
|
+
<li>Set <strong>Thickness</strong>: <code>1.5 mm</code> (or from parameter)</li>
|
|
458
|
+
<li>Set <strong>Bend Radius</strong>: <code>2.0 mm</code> (design-dependent)</li>
|
|
459
|
+
<li>Set <strong>Bend Relief</strong>: check if design requires relief</li>
|
|
460
|
+
<li>Click <strong>OK</strong></li>
|
|
461
|
+
</ol>
|
|
462
|
+
</div>
|
|
463
|
+
<div class="instruction-box cyclecad-box">
|
|
464
|
+
<h4>⚙ cycleCAD API</h4>
|
|
465
|
+
<div class="code-block">
|
|
466
|
+
design.setSheetMetalRules({<br/>
|
|
467
|
+
thickness: 1.5, // mm<br/>
|
|
468
|
+
bendRadius: 2.0,<br/>
|
|
469
|
+
bendRelief: 'none', // 'none'|'rectangular'|'obround'<br/>
|
|
470
|
+
gapSize: 0,<br/>
|
|
471
|
+
cornerStyle: 'sharp' // or 'rounded'<br/>
|
|
472
|
+
});
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
<div class="step-tip">
|
|
476
|
+
<strong>💡 Tip:</strong> The <strong>Stärke</strong> parameter from the original Inventor file is the thickness value. Look for this in the Inventor properties or constraints.
|
|
477
|
+
</div>
|
|
478
|
+
</div>
|
|
479
|
+
</div>
|
|
480
|
+
|
|
481
|
+
<!-- Step 3 -->
|
|
482
|
+
<div class="step" id="step-3">
|
|
483
|
+
<div class="step-header">
|
|
484
|
+
<div class="step-badge">3</div>
|
|
485
|
+
<div class="step-title">Define User Parameters</div>
|
|
486
|
+
</div>
|
|
487
|
+
<div class="step-body">
|
|
488
|
+
<div class="instruction-box fusion-box">
|
|
489
|
+
<h4>✓ Fusion 360</h4>
|
|
490
|
+
<ol>
|
|
491
|
+
<li>Click <strong>Modify</strong> → <strong>Change Parameters</strong></li>
|
|
492
|
+
<li>In <strong>User Parameters</strong> panel, click <strong>Create</strong></li>
|
|
493
|
+
<li>Add parameter <strong>Stärke</strong> (Thickness)
|
|
494
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
495
|
+
<li>Type: <code>Length</code></li>
|
|
496
|
+
<li>Default: <code>1.5 mm</code></li>
|
|
497
|
+
<li>Expression: <code>=Sheet_Metal_Thickness</code></li>
|
|
498
|
+
</ul>
|
|
499
|
+
</li>
|
|
500
|
+
<li>Add other parameters as needed (width, length, etc.)</li>
|
|
501
|
+
<li>Click <strong>OK</strong></li>
|
|
502
|
+
</ol>
|
|
503
|
+
</div>
|
|
504
|
+
<div class="instruction-box cyclecad-box">
|
|
505
|
+
<h4>⚙ cycleCAD API</h4>
|
|
506
|
+
<div class="code-block">
|
|
507
|
+
design.parameters = {<br/>
|
|
508
|
+
Stärke: {<br/>
|
|
509
|
+
type: 'length',<br/>
|
|
510
|
+
value: 1.5,<br/>
|
|
511
|
+
unit: 'mm',<br/>
|
|
512
|
+
source: 'Skizze.ipt',<br/>
|
|
513
|
+
parameterId: 11<br/>
|
|
514
|
+
},<br/>
|
|
515
|
+
// Add other parameters here<br/>
|
|
516
|
+
};
|
|
517
|
+
</div>
|
|
518
|
+
</div>
|
|
519
|
+
<div class="step-tip">
|
|
520
|
+
<strong>💡 Tip:</strong> The original Inventor file references <strong>Skizze.ipt</strong> (the master parameter sketch). Extract all parameters from there and recreate them in Fusion 360.
|
|
521
|
+
</div>
|
|
522
|
+
</div>
|
|
523
|
+
</div>
|
|
524
|
+
|
|
525
|
+
<!-- Step 4 -->
|
|
526
|
+
<div class="step" id="step-4">
|
|
527
|
+
<div class="step-header">
|
|
528
|
+
<div class="step-badge">4</div>
|
|
529
|
+
<div class="step-title">Create Base Sketch (Strip Brush Profile)</div>
|
|
530
|
+
</div>
|
|
531
|
+
<div class="step-body">
|
|
532
|
+
<div class="instruction-box fusion-box">
|
|
533
|
+
<h4>✓ Fusion 360</h4>
|
|
534
|
+
<ol>
|
|
535
|
+
<li>Click <strong>Sheet Metal</strong> tab → <strong>New Sketch</strong></li>
|
|
536
|
+
<li>Select <strong>XY Plane</strong> (Origin)</li>
|
|
537
|
+
<li>Sketch the strip brush profile:
|
|
538
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
539
|
+
<li>Draw the flat rectangle profile (strip shape)</li>
|
|
540
|
+
<li>Constrain dimensions using <strong>Stärke</strong> parameter</li>
|
|
541
|
+
<li>Add width, length, and any notches/holes for mounting</li>
|
|
542
|
+
</ul>
|
|
543
|
+
</li>
|
|
544
|
+
<li>Apply all constraints (fully constrained = blue sketch)</li>
|
|
545
|
+
<li>Click <strong>Finish Sketch</strong></li>
|
|
546
|
+
</ol>
|
|
547
|
+
</div>
|
|
548
|
+
<div class="instruction-box cyclecad-box">
|
|
549
|
+
<h4>⚙ cycleCAD API</h4>
|
|
550
|
+
<div class="code-block">
|
|
551
|
+
const sketch = design.createSketch('BaseProfile', 'XY');<br/>
|
|
552
|
+
sketch.addRectangle({<br/>
|
|
553
|
+
width: 45, // mm<br/>
|
|
554
|
+
height: 150, // mm<br/>
|
|
555
|
+
constrainToParam: 'Stärke'<br/>
|
|
556
|
+
});<br/>
|
|
557
|
+
sketch.addHole({<br/>
|
|
558
|
+
x: 22.5,<br/>
|
|
559
|
+
y: 75,<br/>
|
|
560
|
+
diameter: 6<br/>
|
|
561
|
+
});<br/>
|
|
562
|
+
sketch.finalize();
|
|
563
|
+
</div>
|
|
564
|
+
</div>
|
|
565
|
+
<div class="step-tip">
|
|
566
|
+
<strong>💡 Tip:</strong> The <strong>Leistenbürstenblech</strong> is a brush holder strip. Look at the original Inventor sketch to understand the exact profile shape, mounting holes, and bristle attachment points.
|
|
567
|
+
</div>
|
|
568
|
+
</div>
|
|
569
|
+
</div>
|
|
570
|
+
|
|
571
|
+
<!-- Step 5 -->
|
|
572
|
+
<div class="step" id="step-5">
|
|
573
|
+
<div class="step-header">
|
|
574
|
+
<div class="step-badge">5</div>
|
|
575
|
+
<div class="step-title">Create Base Flange from Sketch</div>
|
|
576
|
+
</div>
|
|
577
|
+
<div class="step-body">
|
|
578
|
+
<div class="instruction-box fusion-box">
|
|
579
|
+
<h4>✓ Fusion 360</h4>
|
|
580
|
+
<ol>
|
|
581
|
+
<li>Select the <strong>BaseProfile</strong> sketch in the Browser</li>
|
|
582
|
+
<li>Click <strong>Sheet Metal</strong> tab → <strong>Base Flange</strong> button</li>
|
|
583
|
+
<li>In dialog:
|
|
584
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
585
|
+
<li>Confirm the sketch is selected</li>
|
|
586
|
+
<li>Height: <code>0 mm</code> (flat sheet)</li>
|
|
587
|
+
<li>Material Side: <code>Outside</code> or <code>Inside</code> (depends on design)</li>
|
|
588
|
+
</ul>
|
|
589
|
+
</li>
|
|
590
|
+
<li>Click <strong>OK</strong></li>
|
|
591
|
+
<li>The base flange is now your flat sheet</li>
|
|
592
|
+
</ol>
|
|
593
|
+
</div>
|
|
594
|
+
<div class="instruction-box cyclecad-box">
|
|
595
|
+
<h4>⚙ cycleCAD API</h4>
|
|
596
|
+
<div class="code-block">
|
|
597
|
+
const baseFlange = design.createBaseFlange({<br/>
|
|
598
|
+
sketch: 'BaseProfile',<br/>
|
|
599
|
+
height: 0,<br/>
|
|
600
|
+
materialSide: 'inside',<br/>
|
|
601
|
+
thickness: design.parameters.Stärke.value<br/>
|
|
602
|
+
});
|
|
603
|
+
</div>
|
|
604
|
+
</div>
|
|
605
|
+
<div class="step-tip">
|
|
606
|
+
<strong>💡 Tip:</strong> If the original Inventor file has a FlatPattern feature, this design may already be flat. In that case, the Base Flange is the starting point for adding bends/flanges if needed.
|
|
607
|
+
</div>
|
|
608
|
+
</div>
|
|
609
|
+
</div>
|
|
610
|
+
|
|
611
|
+
<!-- Step 6 -->
|
|
612
|
+
<div class="step" id="step-6">
|
|
613
|
+
<div class="step-header">
|
|
614
|
+
<div class="step-badge">6</div>
|
|
615
|
+
<div class="step-title">Add Bends & Flanges (if design requires)</div>
|
|
616
|
+
</div>
|
|
617
|
+
<div class="step-body">
|
|
618
|
+
<div class="instruction-box fusion-box">
|
|
619
|
+
<h4>✓ Fusion 360</h4>
|
|
620
|
+
<ol>
|
|
621
|
+
<li>If the design has bends/folds:
|
|
622
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
623
|
+
<li>Click <strong>Sheet Metal</strong> → <strong>Flange</strong></li>
|
|
624
|
+
<li>Select the edge where bend should occur</li>
|
|
625
|
+
<li>Set angle (typically 90°) and flange width</li>
|
|
626
|
+
</ul>
|
|
627
|
+
</li>
|
|
628
|
+
<li>Or use <strong>Bend</strong> for existing surfaces</li>
|
|
629
|
+
<li>Repeat for each bend needed</li>
|
|
630
|
+
<li>Verify the 3D shape matches original Inventor design</li>
|
|
631
|
+
</ol>
|
|
632
|
+
</div>
|
|
633
|
+
<div class="instruction-box cyclecad-box">
|
|
634
|
+
<h4>⚙ cycleCAD API</h4>
|
|
635
|
+
<div class="code-block">
|
|
636
|
+
// Add flange (for bending edges)<br/>
|
|
637
|
+
baseFlange.addFlange({<br/>
|
|
638
|
+
edge: 'edge_0',<br/>
|
|
639
|
+
angle: 90,<br/>
|
|
640
|
+
flangeWidth: 15,<br/>
|
|
641
|
+
bendRadius: 2.0<br/>
|
|
642
|
+
});<br/>
|
|
643
|
+
<br/>
|
|
644
|
+
// Or add bend on existing surface<br/>
|
|
645
|
+
baseFlange.addBend({<br/>
|
|
646
|
+
face: 'face_0',<br/>
|
|
647
|
+
bendLine: 'line_0',<br/>
|
|
648
|
+
angle: 45,<br/>
|
|
649
|
+
radius: 2.0<br/>
|
|
650
|
+
});
|
|
651
|
+
</div>
|
|
652
|
+
</div>
|
|
653
|
+
<div class="step-tip">
|
|
654
|
+
<strong>💡 Tip:</strong> For the <strong>Leistenbürstenblech</strong>, check if it has any bends. If it's a simple flat strip, skip this step. If it has folded edges or flanges, add them here. Review the original Inventor 3D view to confirm.
|
|
655
|
+
</div>
|
|
656
|
+
</div>
|
|
657
|
+
</div>
|
|
658
|
+
|
|
659
|
+
<!-- Step 7 -->
|
|
660
|
+
<div class="step" id="step-7">
|
|
661
|
+
<div class="step-header">
|
|
662
|
+
<div class="step-badge">7</div>
|
|
663
|
+
<div class="step-title">Create Flat Pattern</div>
|
|
664
|
+
</div>
|
|
665
|
+
<div class="step-body">
|
|
666
|
+
<div class="instruction-box fusion-box">
|
|
667
|
+
<h4>✓ Fusion 360</h4>
|
|
668
|
+
<ol>
|
|
669
|
+
<li>Click <strong>Sheet Metal</strong> → <strong>Flat Pattern</strong> button</li>
|
|
670
|
+
<li>Select the face to be primary (usually the base flange)</li>
|
|
671
|
+
<li>Fusion 360 automatically unfolds all bends</li>
|
|
672
|
+
<li>Verify all dimensions unfold correctly:
|
|
673
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
674
|
+
<li>Check bend allowances are calculated</li>
|
|
675
|
+
<li>Measure overall width/length of unfolded pattern</li>
|
|
676
|
+
</ul>
|
|
677
|
+
</li>
|
|
678
|
+
<li>The <strong>FlatPattern</strong> feature now appears in Browser</li>
|
|
679
|
+
<li>You can toggle between folded and flat view</li>
|
|
680
|
+
</ol>
|
|
681
|
+
</div>
|
|
682
|
+
<div class="instruction-box cyclecad-box">
|
|
683
|
+
<h4>⚙ cycleCAD API</h4>
|
|
684
|
+
<div class="code-block">
|
|
685
|
+
const flatPattern = design.createFlatPattern({<br/>
|
|
686
|
+
primaryFace: 'baseFlange',<br/>
|
|
687
|
+
bendAllowanceMethod: 'auto',<br/>
|
|
688
|
+
bendDeduction: 0, // mm (auto-calculated)<br/>
|
|
689
|
+
name: 'FlatPattern'<br/>
|
|
690
|
+
});<br/>
|
|
691
|
+
<br/>
|
|
692
|
+
// Get flat pattern dimensions for laser cutting<br/>
|
|
693
|
+
const flatDims = flatPattern.getDimensions();<br/>
|
|
694
|
+
console.log('Width:', flatDims.width, 'mm');<br/>
|
|
695
|
+
console.log('Height:', flatDims.height, 'mm');
|
|
696
|
+
</div>
|
|
697
|
+
</div>
|
|
698
|
+
<div class="step-tip">
|
|
699
|
+
<strong>💡 Tip:</strong> This is the most important step for sheet metal. The flat pattern shows exactly how the part looks when cut flat before folding. Save this view — you'll need it for laser cutting (DXF export).
|
|
700
|
+
</div>
|
|
701
|
+
</div>
|
|
702
|
+
</div>
|
|
703
|
+
|
|
704
|
+
<!-- Step 8 -->
|
|
705
|
+
<div class="step" id="step-8">
|
|
706
|
+
<div class="step-header">
|
|
707
|
+
<div class="step-badge">8</div>
|
|
708
|
+
<div class="step-title">Export DXF for Laser Cutting</div>
|
|
709
|
+
</div>
|
|
710
|
+
<div class="step-body">
|
|
711
|
+
<div class="instruction-box fusion-box">
|
|
712
|
+
<h4>✓ Fusion 360</h4>
|
|
713
|
+
<ol>
|
|
714
|
+
<li>Make sure the <strong>FlatPattern</strong> feature is active (highlighted in Browser)</li>
|
|
715
|
+
<li>Right-click on <strong>FlatPattern</strong> → <strong>Save as DXF</strong></li>
|
|
716
|
+
<li>Choose export options:
|
|
717
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
718
|
+
<li>Format: <code>DXF R14 (2D)</code></li>
|
|
719
|
+
<li>Units: <code>Millimeters</code></li>
|
|
720
|
+
<li>Scale: <code>1:1</code></li>
|
|
721
|
+
</ul>
|
|
722
|
+
</li>
|
|
723
|
+
<li>Save as: <code>Leistenbürstenblech_FlatPattern.dxf</code></li>
|
|
724
|
+
<li>This DXF is ready for laser cutting software (LightBurn, CorelDraw, etc.)</li>
|
|
725
|
+
</ol>
|
|
726
|
+
</div>
|
|
727
|
+
<div class="instruction-box cyclecad-box">
|
|
728
|
+
<h4>⚙ cycleCAD API</h4>
|
|
729
|
+
<div class="code-block">
|
|
730
|
+
flatPattern.exportDXF({<br/>
|
|
731
|
+
filename: 'Leistenbürstenblech_FlatPattern.dxf',<br/>
|
|
732
|
+
format: 'DXF_R14',<br/>
|
|
733
|
+
units: 'mm',<br/>
|
|
734
|
+
scale: 1.0,<br/>
|
|
735
|
+
includeHoles: true,<br/>
|
|
736
|
+
includeBendLines: true,<br/>
|
|
737
|
+
bendLineStyle: 'dashed'<br/>
|
|
738
|
+
});<br/>
|
|
739
|
+
<br/>
|
|
740
|
+
console.log('✓ DXF exported successfully');
|
|
741
|
+
</div>
|
|
742
|
+
</div>
|
|
743
|
+
<div class="step-tip">
|
|
744
|
+
<strong>💡 Tip:</strong> The DXF file can be imported into laser cutter software. Make sure the scale is <strong>1:1 (100%)</strong> and units are in <strong>millimeters</strong>.
|
|
745
|
+
</div>
|
|
746
|
+
</div>
|
|
747
|
+
</div>
|
|
748
|
+
|
|
749
|
+
<!-- Step 9 -->
|
|
750
|
+
<div class="step" id="step-9">
|
|
751
|
+
<div class="step-header">
|
|
752
|
+
<div class="step-badge">9</div>
|
|
753
|
+
<div class="step-title">Verify Dimensions Against Original</div>
|
|
754
|
+
</div>
|
|
755
|
+
<div class="step-body">
|
|
756
|
+
<div class="instruction-box fusion-box">
|
|
757
|
+
<h4>✓ Fusion 360</h4>
|
|
758
|
+
<ol>
|
|
759
|
+
<li>Open both the Fusion 360 model and original Inventor file side-by-side</li>
|
|
760
|
+
<li>Check critical dimensions:
|
|
761
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
762
|
+
<li><strong>Thickness (Stärke)</strong>: 1.5 mm</li>
|
|
763
|
+
<li><strong>Width</strong>: verify against original</li>
|
|
764
|
+
<li><strong>Length</strong>: verify against original</li>
|
|
765
|
+
<li><strong>Hole positions</strong>: check X/Y coordinates</li>
|
|
766
|
+
<li><strong>Bend radius</strong>: match original bend settings</li>
|
|
767
|
+
</ul>
|
|
768
|
+
</li>
|
|
769
|
+
<li>Use <strong>Inspect</strong> → <strong>Measure</strong> tool for precision checks</li>
|
|
770
|
+
<li>Compare 3D folded model to original Inventor 3D view</li>
|
|
771
|
+
<li>Verify flat pattern dimensions for laser cutting accuracy</li>
|
|
772
|
+
</ol>
|
|
773
|
+
</div>
|
|
774
|
+
<div class="instruction-box cyclecad-box">
|
|
775
|
+
<h4>⚙ cycleCAD API</h4>
|
|
776
|
+
<div class="code-block">
|
|
777
|
+
// Verification checklist<br/>
|
|
778
|
+
const verification = {<br/>
|
|
779
|
+
thickness: 1.5,<br/>
|
|
780
|
+
originalFileName: 'Leistenbürstenblech.ipt',<br/>
|
|
781
|
+
parameterId: 11,<br/>
|
|
782
|
+
dimensions: {<br/>
|
|
783
|
+
width: { measured: 45, tolerance: 0.1 },<br/>
|
|
784
|
+
length: { measured: 150, tolerance: 0.1 },<br/>
|
|
785
|
+
bendRadius: { measured: 2.0, tolerance: 0.2 }<br/>
|
|
786
|
+
},<br/>
|
|
787
|
+
features: {<br/>
|
|
788
|
+
hasHoles: true,<br/>
|
|
789
|
+
hasBends: false,<br/>
|
|
790
|
+
flatPatternReady: true<br/>
|
|
791
|
+
}<br/>
|
|
792
|
+
};<br/>
|
|
793
|
+
<br/>
|
|
794
|
+
console.log('✓ All dimensions verified');
|
|
795
|
+
</div>
|
|
796
|
+
</div>
|
|
797
|
+
<div class="step-tip">
|
|
798
|
+
<strong>💡 Tip:</strong> Keep a verification checklist. Compare Fusion 360 measurements with the original Inventor part properties. Small discrepancies (±0.1 mm) are acceptable due to rounding, but larger gaps indicate a rebuild error.
|
|
799
|
+
</div>
|
|
800
|
+
</div>
|
|
801
|
+
</div>
|
|
802
|
+
|
|
803
|
+
<!-- Step 10: Final Output -->
|
|
804
|
+
<div class="step" id="step-10">
|
|
805
|
+
<div class="step-header">
|
|
806
|
+
<div class="step-badge">✓</div>
|
|
807
|
+
<div class="step-title">Save & Export Final Design</div>
|
|
808
|
+
</div>
|
|
809
|
+
<div class="step-body">
|
|
810
|
+
<div class="instruction-box fusion-box">
|
|
811
|
+
<h4>✓ Fusion 360</h4>
|
|
812
|
+
<ol>
|
|
813
|
+
<li>Click <strong>File</strong> → <strong>Save</strong> (or Ctrl+S)</li>
|
|
814
|
+
<li>Export formats:
|
|
815
|
+
<ul style="margin-top: 6px; margin-left: 20px;">
|
|
816
|
+
<li><strong>STEP</strong> (.step): 3D model for CAD exchange</li>
|
|
817
|
+
<li><strong>IGES</strong> (.iges): Legacy CAD format</li>
|
|
818
|
+
<li><strong>STL</strong> (.stl): 3D printing (if needed)</li>
|
|
819
|
+
<li><strong>DXF</strong> (.dxf): Already done (flat pattern)</li>
|
|
820
|
+
</ul>
|
|
821
|
+
</li>
|
|
822
|
+
<li>Right-click design → <strong>Save as type...</strong></li>
|
|
823
|
+
<li>Save as: <code>Leistenbürstenblech.step</code></li>
|
|
824
|
+
</ol>
|
|
825
|
+
</div>
|
|
826
|
+
<div class="instruction-box cyclecad-box">
|
|
827
|
+
<h4>⚙ cycleCAD API</h4>
|
|
828
|
+
<div class="code-block">
|
|
829
|
+
// Save design in all formats<br/>
|
|
830
|
+
design.save('Leistenbürstenblech', {<br/>
|
|
831
|
+
formats: ['step', 'dxf', 'iges', 'stl'],<br/>
|
|
832
|
+
metadata: {<br/>
|
|
833
|
+
originalFile: 'Leistenbürstenblech.ipt',<br/>
|
|
834
|
+
originalVersion: '11.0',<br/>
|
|
835
|
+
rebuildDate: '2026-03-24',<br/>
|
|
836
|
+
software: 'Fusion 360',<br/>
|
|
837
|
+
status: 'verified'<br/>
|
|
838
|
+
}<br/>
|
|
839
|
+
});<br/>
|
|
840
|
+
<br/>
|
|
841
|
+
console.log('✓ Design saved in all formats');<br/>
|
|
842
|
+
console.log('Ready for manufacturing!');
|
|
843
|
+
</div>
|
|
844
|
+
</div>
|
|
845
|
+
<div class="step-tip">
|
|
846
|
+
<strong>💡 Tip:</strong> Keep both the parametric Fusion 360 design (.f3d) and exported formats (STEP, DXF) for future reference and manufacturing.
|
|
847
|
+
</div>
|
|
848
|
+
</div>
|
|
849
|
+
</div>
|
|
850
|
+
|
|
851
|
+
</div>
|
|
852
|
+
|
|
853
|
+
<!-- Footer -->
|
|
854
|
+
<div class="footer">
|
|
855
|
+
<p>Generated by cycleCAD Inventor Parser — Part of the DUO cycleWASH Rebuild Initiative</p>
|
|
856
|
+
<p>Last Updated: 2026-03-24</p>
|
|
857
|
+
</div>
|
|
858
|
+
</main>
|
|
859
|
+
</div>
|
|
860
|
+
</body>
|
|
861
|
+
</html>
|