cyclecad 2.1.0 → 3.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.
Files changed (94) hide show
  1. package/BILLING-IMPLEMENTATION-SUMMARY.md +425 -0
  2. package/BILLING-INDEX.md +293 -0
  3. package/BILLING-INTEGRATION-GUIDE.md +414 -0
  4. package/COLLABORATION-INDEX.md +440 -0
  5. package/COLLABORATION-SYSTEM-SUMMARY.md +548 -0
  6. package/DELIVERABLES.txt +296 -445
  7. package/DOCKER-BUILD-MANIFEST.txt +483 -0
  8. package/DOCKER-FILES-REFERENCE.md +440 -0
  9. package/DOCKER-INFRASTRUCTURE.md +475 -0
  10. package/DOCKER-README.md +435 -0
  11. package/Dockerfile +33 -55
  12. package/ENHANCEMENT_COMPLETION_REPORT.md +383 -0
  13. package/ENHANCEMENT_SUMMARY.txt +308 -0
  14. package/FEATURE_INVENTORY.md +235 -0
  15. package/FUSION360_FEATURES_SUMMARY.md +452 -0
  16. package/FUSION360_PARITY_ENHANCEMENTS.md +461 -0
  17. package/FUSION360_PARITY_SUMMARY.md +520 -0
  18. package/FUSION360_QUICK_REFERENCE.md +351 -0
  19. package/MODULE_API_REFERENCE.md +712 -0
  20. package/MODULE_INVENTORY.txt +264 -0
  21. package/PWA-FILES-CREATED.txt +350 -0
  22. package/QUICK-START-TESTING.md +126 -0
  23. package/STEP-IMPORT-QUICKSTART.md +347 -0
  24. package/STEP-IMPORT-SYSTEM-SUMMARY.md +502 -0
  25. package/app/css/mobile.css +1074 -0
  26. package/app/icons/generate-icons.js +203 -0
  27. package/app/index.html +1342 -5031
  28. package/app/js/app.js +1312 -514
  29. package/app/js/billing-ui.js +990 -0
  30. package/app/js/brep-kernel.js +933 -981
  31. package/app/js/collab-client.js +750 -0
  32. package/app/js/mobile-nav.js +623 -0
  33. package/app/js/mobile-toolbar.js +476 -0
  34. package/app/js/modules/animation-module.js +497 -3
  35. package/app/js/modules/billing-module.js +724 -0
  36. package/app/js/modules/cam-module.js +507 -2
  37. package/app/js/modules/collaboration-module.js +513 -0
  38. package/app/js/modules/constraint-module.js +1266 -0
  39. package/app/js/modules/data-module.js +544 -1146
  40. package/app/js/modules/formats-module.js +438 -738
  41. package/app/js/modules/inspection-module.js +393 -0
  42. package/app/js/modules/mesh-module-enhanced.js +880 -0
  43. package/app/js/modules/plugin-module.js +597 -0
  44. package/app/js/modules/rendering-module.js +460 -0
  45. package/app/js/modules/scripting-module.js +593 -475
  46. package/app/js/modules/sketch-module.js +998 -2
  47. package/app/js/modules/step-module-enhanced.js +938 -0
  48. package/app/js/modules/surface-module.js +312 -0
  49. package/app/js/modules/version-module.js +420 -0
  50. package/app/js/offline-manager.js +705 -0
  51. package/app/js/responsive-init.js +360 -0
  52. package/app/js/touch-handler.js +429 -0
  53. package/app/manifest.json +211 -0
  54. package/app/offline.html +508 -0
  55. package/app/sw.js +571 -0
  56. package/app/tests/billing-tests.html +779 -0
  57. package/app/tests/brep-tests.html +980 -0
  58. package/app/tests/collab-tests.html +743 -0
  59. package/app/tests/mobile-tests.html +1299 -0
  60. package/app/tests/pwa-tests.html +1134 -0
  61. package/app/tests/step-tests.html +1042 -0
  62. package/app/tests/test-agent-v3.html +719 -0
  63. package/cycleCAD-Architecture-v2.pptx +0 -0
  64. package/docker-compose.yml +225 -0
  65. package/docs/BILLING-HELP.json +260 -0
  66. package/docs/BILLING-README.md +639 -0
  67. package/docs/BILLING-TUTORIAL.md +736 -0
  68. package/docs/BREP-HELP.json +326 -0
  69. package/docs/BREP-TUTORIAL.md +802 -0
  70. package/docs/COLLABORATION-HELP.json +228 -0
  71. package/docs/COLLABORATION-TUTORIAL.md +818 -0
  72. package/docs/DOCKER-HELP.json +224 -0
  73. package/docs/DOCKER-TUTORIAL.md +974 -0
  74. package/docs/MOBILE-HELP.json +243 -0
  75. package/docs/MOBILE-RESPONSIVE-README.md +378 -0
  76. package/docs/MOBILE-TUTORIAL.md +747 -0
  77. package/docs/PWA-HELP.json +228 -0
  78. package/docs/PWA-README.md +662 -0
  79. package/docs/PWA-TUTORIAL.md +757 -0
  80. package/docs/STEP-HELP.json +481 -0
  81. package/docs/STEP-IMPORT-TUTORIAL.md +824 -0
  82. package/docs/TESTING-GUIDE.md +528 -0
  83. package/docs/TESTING-HELP.json +182 -0
  84. package/fusion-vs-cyclecad.html +1771 -0
  85. package/nginx.conf +237 -0
  86. package/package.json +1 -1
  87. package/server/Dockerfile.converter +51 -0
  88. package/server/Dockerfile.signaling +28 -0
  89. package/server/billing-server.js +487 -0
  90. package/server/converter-enhanced.py +528 -0
  91. package/server/requirements-converter.txt +29 -0
  92. package/server/signaling-server.js +801 -0
  93. package/tests/docker-tests.sh +389 -0
  94. package/~$cycleCAD-Architecture-v2.pptx +0 -0
@@ -0,0 +1,481 @@
1
+ {
2
+ "step-import-basic": {
3
+ "title": "Import a STEP File",
4
+ "category": "STEP Import/Export",
5
+ "shortcut": "Ctrl+I",
6
+ "description": "Load a STEP file (AP203/AP214 format) from your computer or cloud storage.",
7
+ "steps": [
8
+ "Click 'Import STEP' button in the toolbar",
9
+ "Select a .step or .stp file",
10
+ "Module automatically routes to best parser (WASM, server, or cache)",
11
+ "Model loads in 3D viewport with automatic fit-to-view"
12
+ ],
13
+ "tips": [
14
+ "Small files (<30MB) parse instantly in browser",
15
+ "Large files (≥50MB) automatically use server converter",
16
+ "Imported models are cached for faster re-import"
17
+ ],
18
+ "relatedTopics": ["import-from-url", "file-size-handling", "server-setup"]
19
+ },
20
+
21
+ "import-from-url": {
22
+ "title": "Import from URL",
23
+ "category": "STEP Import/Export",
24
+ "description": "Load a STEP file directly from a URL (cloud storage, HTTP server, etc).",
25
+ "steps": [
26
+ "Use API: cycleCAD.step.importFromURL('https://...')",
27
+ "Or drag STEP file from cloud provider to viewport",
28
+ "Supports Dropbox, Google Drive, OneDrive public links",
29
+ "File is downloaded and imported as if local"
30
+ ],
31
+ "example": "cycleCAD.step.importFromURL('https://storage.example.com/model.step')",
32
+ "relatedTopics": ["import-basic", "drag-drop"]
33
+ },
34
+
35
+ "file-size-handling": {
36
+ "title": "Understanding File Size Categories",
37
+ "category": "STEP Import/Export",
38
+ "description": "cycleCAD automatically selects the best import strategy based on file size.",
39
+ "details": {
40
+ "small": {
41
+ "range": "< 30 MB",
42
+ "strategy": "Browser WASM (occt-import-js)",
43
+ "time": "2-10 seconds",
44
+ "pros": ["Instant, no server needed", "Works offline"],
45
+ "cons": ["Requires browser memory"]
46
+ },
47
+ "medium": {
48
+ "range": "30-50 MB",
49
+ "strategy": "OpenCascade.js Worker",
50
+ "time": "15-30 seconds",
51
+ "pros": ["Better geometry fidelity", "Parallel processing"],
52
+ "cons": ["Larger WASM download"]
53
+ },
54
+ "large": {
55
+ "range": "50-100 MB",
56
+ "strategy": "Server converter (Python FastAPI)",
57
+ "time": "30-120 seconds",
58
+ "pros": ["Handles complex geometry", "No browser memory limit"],
59
+ "cons": ["Requires server running"]
60
+ },
61
+ "xlarge": {
62
+ "range": "> 100 MB",
63
+ "strategy": "Server with warnings",
64
+ "time": "2-5 minutes",
65
+ "pros": ["Splits large assemblies", "Memory safe"],
66
+ "cons": ["May need file splitting"]
67
+ }
68
+ },
69
+ "relatedTopics": ["server-setup", "routing-strategy"]
70
+ },
71
+
72
+ "routing-strategy": {
73
+ "title": "How Import Routing Works",
74
+ "category": "STEP Import/Export",
75
+ "description": "The module intelligently selects parser based on file size, server availability, and browser capabilities.",
76
+ "algorithm": [
77
+ "1. Check file size",
78
+ "2. If <30MB and Worker ready → use occt-import-js",
79
+ "3. Else if 30-50MB and OpenCascade ready → use OpenCascade.js",
80
+ "4. Else if server healthy → upload and parse server-side",
81
+ "5. Else fallback to browser WASM (if <50MB)",
82
+ "6. If all fail → show error with recovery suggestions"
83
+ ],
84
+ "tips": [
85
+ "Routing is automatic—no user input needed",
86
+ "Server health checked every 30 seconds",
87
+ "Worker heartbeat monitored for timeouts (90s limit)",
88
+ "Cache bypasses all parsing—instant load if file unchanged"
89
+ ],
90
+ "relatedTopics": ["file-size-handling", "server-setup", "troubleshooting"]
91
+ },
92
+
93
+ "server-setup": {
94
+ "title": "Setup Server Converter",
95
+ "category": "STEP Import/Export",
96
+ "description": "Deploy the FastAPI server for handling large STEP files server-side.",
97
+ "quickStart": {
98
+ "docker": "docker run -d -p 8787:8000 cyclecad/converter:latest",
99
+ "verify": "curl http://localhost:8787/health"
100
+ },
101
+ "steps": [
102
+ "Install Docker (if not already)",
103
+ "Pull image: docker pull cyclecad/converter:latest",
104
+ "Run container on port 8787",
105
+ "In cycleCAD, set Server URL to http://localhost:8787/convert",
106
+ "Import large files—they'll automatically route to server"
107
+ ],
108
+ "pythonLocal": {
109
+ "description": "Run directly without Docker",
110
+ "steps": [
111
+ "cd ~/cyclecad/server",
112
+ "pip install -r requirements.txt",
113
+ "uvicorn converter:app --port 8787"
114
+ ]
115
+ },
116
+ "cloudDeploy": {
117
+ "description": "Deploy to cloud (AWS, Google Cloud, DigitalOcean, etc)",
118
+ "platforms": [
119
+ "AWS ECS/Fargate",
120
+ "Google Cloud Run",
121
+ "Heroku",
122
+ "DigitalOcean App Platform"
123
+ ],
124
+ "memory": "4GB recommended",
125
+ "timeout": "5 minutes"
126
+ },
127
+ "relatedTopics": ["server-endpoints", "file-size-handling", "performance-tips"]
128
+ },
129
+
130
+ "server-endpoints": {
131
+ "title": "Server API Endpoints",
132
+ "category": "STEP Import/Export",
133
+ "description": "The converter server exposes 3 main endpoints for STEP processing.",
134
+ "endpoints": {
135
+ "convert": {
136
+ "method": "POST",
137
+ "path": "/convert",
138
+ "description": "Convert STEP to GLB",
139
+ "params": ["file (multipart)", "deflection (optional, 0.01-0.2)"],
140
+ "response": "GLB binary (glTF 2.0)",
141
+ "example": "curl -X POST http://localhost:8787/convert -F file=@model.step"
142
+ },
143
+ "metadata": {
144
+ "method": "POST",
145
+ "path": "/metadata",
146
+ "description": "Extract metadata without full parse",
147
+ "params": ["file (multipart)"],
148
+ "response": "JSON: part_count, assembly_count, bounding_box, parse_time_ms",
149
+ "example": "curl -X POST http://localhost:8787/metadata -F file=@model.step"
150
+ },
151
+ "health": {
152
+ "method": "GET",
153
+ "path": "/health",
154
+ "description": "Server and WASM status",
155
+ "response": "JSON: status, wasm_available, memory_used_mb, memory_limit_mb",
156
+ "example": "curl http://localhost:8787/health"
157
+ }
158
+ },
159
+ "relatedTopics": ["server-setup", "programmatic-import"]
160
+ },
161
+
162
+ "caching-strategy": {
163
+ "title": "GLB Caching System",
164
+ "category": "STEP Import/Export",
165
+ "description": "Imported models are cached in IndexedDB for instant re-import.",
166
+ "how-it-works": [
167
+ "1. File uploaded—module computes SHA-256 hash of first 1MB",
168
+ "2. Cache key: filename-filesize-hashprefix",
169
+ "3. Check IndexedDB for cache key",
170
+ "4. Hit: Load cached GLB instantly (< 100ms)",
171
+ "5. Miss: Parse file and save GLB to cache",
172
+ "6. Automatic invalidation if file changed (hash mismatch)"
173
+ ],
174
+ "benefits": [
175
+ "Instant reload of frequently-used models",
176
+ "Works offline (if cache warm)",
177
+ "No server load for cached files",
178
+ "Transparent—user doesn't manage it"
179
+ ],
180
+ "management": {
181
+ "clearCache": "cycleCAD.step.clearCache() or UI button",
182
+ "cacheSize": "Up to 50GB (browser dependent)",
183
+ "ttl": "24 hours (server) / permanent (browser cache)",
184
+ "disable": "localStorage.setItem('ev_step_cache_enabled', 'false')"
185
+ },
186
+ "relatedTopics": ["performance-tips", "server-setup"]
187
+ },
188
+
189
+ "adaptive-deflection": {
190
+ "title": "Adaptive Mesh Deflection",
191
+ "category": "STEP Import/Export",
192
+ "description": "Module automatically adjusts mesh density (deflection) based on file size.",
193
+ "defaults": {
194
+ "small": {
195
+ "size": "< 30 MB",
196
+ "deflection": 0.01,
197
+ "detail": "Fine detail",
198
+ "triangles": "~500K-1M"
199
+ },
200
+ "medium": {
201
+ "size": "30-50 MB",
202
+ "deflection": 0.02,
203
+ "detail": "Balanced",
204
+ "triangles": "~300K-500K"
205
+ },
206
+ "large": {
207
+ "size": "50-100 MB",
208
+ "deflection": 0.05,
209
+ "detail": "Coarse",
210
+ "triangles": "~100K-300K"
211
+ },
212
+ "xlarge": {
213
+ "size": "> 100 MB",
214
+ "deflection": 0.1,
215
+ "detail": "Very coarse",
216
+ "triangles": "~50K-100K"
217
+ }
218
+ },
219
+ "customization": [
220
+ "Change defaults: cycleCAD.step.state.deflectionDefaults.small = 0.005",
221
+ "Affects: triangle count, file size, parsing time, visual quality",
222
+ "Smaller deflection = more triangles = slower but more accurate",
223
+ "Larger deflection = fewer triangles = faster but less detail"
224
+ ],
225
+ "relatedTopics": ["performance-tips", "file-size-handling"]
226
+ },
227
+
228
+ "troubleshooting-memory": {
229
+ "title": "Troubleshooting: Memory Errors",
230
+ "category": "STEP Import/Export",
231
+ "problem": "WASM parse failed: memory limit exceeded",
232
+ "causes": [
233
+ "File too large for available browser memory (>100MB)",
234
+ "Complex geometry with millions of triangles",
235
+ "Other browser tabs consuming memory",
236
+ "Browser memory limit (typically 2-4GB)"
237
+ ],
238
+ "solutions": [
239
+ "1. Close other browser tabs to free memory",
240
+ "2. Use server converter instead (no browser memory limit)",
241
+ "3. Split assembly into smaller sub-assemblies in CAD",
242
+ "4. Reduce geometry detail before export",
243
+ "5. Increase browser memory allocation (varies by browser)"
244
+ ],
245
+ "preventive": [
246
+ "Always check file size before importing",
247
+ "Use server for files > 50MB",
248
+ "Optimize STEP files in CAD before export"
249
+ ],
250
+ "relatedTopics": ["file-size-handling", "server-setup", "performance-tips"]
251
+ },
252
+
253
+ "troubleshooting-timeout": {
254
+ "title": "Troubleshooting: Timeout Errors",
255
+ "category": "STEP Import/Export",
256
+ "problem": "WASM parsing timeout (90s). File too complex.",
257
+ "causes": [
258
+ "File has >3000 parts or very complex geometry",
259
+ "Browser WASM worker unresponsive",
260
+ "Network latency affecting worker communication",
261
+ "Corrupted geometry causing infinite loops"
262
+ ],
263
+ "solutions": [
264
+ "1. Use server converter (higher timeout: 5 minutes)",
265
+ "2. Split assembly and import parts separately",
266
+ "3. Open file in desktop CAD and verify it's valid",
267
+ "4. Reduce deflection to create coarser mesh faster",
268
+ "5. Check browser console for WASM errors"
269
+ ],
270
+ "debugging": [
271
+ "Monitor heartbeat: Worker sends 'alive' every 5s",
272
+ "Check timeout: 90s for WASM, 300s for server",
273
+ "View console logs: [StepModuleEnhanced] markers"
274
+ ],
275
+ "relatedTopics": ["server-setup", "troubleshooting-memory"]
276
+ },
277
+
278
+ "troubleshooting-server": {
279
+ "title": "Troubleshooting: Server Connection",
280
+ "category": "STEP Import/Export",
281
+ "problem": "Server converter unavailable",
282
+ "causes": [
283
+ "Server process not running",
284
+ "Wrong URL configured",
285
+ "Firewall blocking port 8787",
286
+ "Network connectivity issue"
287
+ ],
288
+ "solutions": [
289
+ "1. Check server running: curl http://localhost:8787/health",
290
+ "2. Verify URL in app settings: http://localhost:8787/convert",
291
+ "3. Check firewall: ensure port 8787 is open",
292
+ "4. Restart server: docker restart cyclecad-converter",
293
+ "5. Check server logs: docker logs cyclecad-converter"
294
+ ],
295
+ "fallback": [
296
+ "If server unavailable, app falls back to browser WASM",
297
+ "Works for files < 50MB only",
298
+ "Large files will show error if server down"
299
+ ],
300
+ "relatedTopics": ["server-setup", "server-endpoints"]
301
+ },
302
+
303
+ "troubleshooting-geometry": {
304
+ "title": "Troubleshooting: Invalid or Deformed Geometry",
305
+ "category": "STEP Import/Export",
306
+ "problem": "Imported geometry is invisible, deformed, or incomplete",
307
+ "causes": [
308
+ "Scale mismatch (STEP in meters, cycleCAD in mm)",
309
+ "Inverted face normals (backface culled)",
310
+ "Missing or invalid color data",
311
+ "Bad triangulation from deflection too coarse",
312
+ "Corrupted STEP file"
313
+ ],
314
+ "solutions": [
315
+ "1. Check scale: open in Fusion/SolidWorks to verify dimensions",
316
+ "2. Toggle wireframe mode to see if mesh exists",
317
+ "3. Rescale geometry: multiply all coords by conversion factor",
318
+ "4. Re-import with smaller deflection (0.01 instead of 0.05)",
319
+ "5. Re-save file in original CAD software",
320
+ "6. Try online converter: https://products.aspose.app/cad/conversion"
321
+ ],
322
+ "colorHandling": [
323
+ "STEP file colors stored in geometry attributes",
324
+ "If not transferred: manually apply materials in cycleCAD",
325
+ "Check if original CAD has color info before export"
326
+ ],
327
+ "relatedTopics": ["file-size-handling", "adaptive-deflection"]
328
+ },
329
+
330
+ "export-step": {
331
+ "title": "Export to STEP Format",
332
+ "category": "STEP Import/Export",
333
+ "description": "Save your cycleCAD model as a STEP file for use in other CAD software.",
334
+ "requirements": [
335
+ "B-Rep kernel module must be loaded (optional for large models)",
336
+ "Requires valid geometry in scene",
337
+ "Exports all visible parts"
338
+ ],
339
+ "steps": [
340
+ "1. Click 'Export STEP' button (in STEP module panel)",
341
+ "2. Choose filename and location",
342
+ "3. File saved as AP214 STEP format",
343
+ "4. Open in Fusion 360, SolidWorks, FreeCAD, etc"
344
+ ],
345
+ "limitations": [
346
+ "Assembly relationships not preserved (parts only)",
347
+ "Constraints and features not transferred (geometry only)",
348
+ "Colors may not transfer fully (depends on CAD software)",
349
+ "Some advanced geometry may be approximated"
350
+ ],
351
+ "tips": [
352
+ "B-Rep kernel provides highest fidelity export",
353
+ "Exported file can be re-imported for round-trip testing",
354
+ "Use for sharing designs or archival"
355
+ ],
356
+ "relatedTopics": ["import-basic", "brep-kernel"]
357
+ },
358
+
359
+ "programmatic-import": {
360
+ "title": "Programmatic STEP Import (API)",
361
+ "category": "STEP Import/Export",
362
+ "description": "Use JavaScript API to import STEP files in custom workflows.",
363
+ "basicUsage": {
364
+ "code": "const file = document.getElementById('input').files[0];\nawait cycleCAD.step.import(file);",
365
+ "description": "Import a file from file input"
366
+ },
367
+ "urlImport": {
368
+ "code": "await cycleCAD.step.importFromURL('https://example.com/model.step');",
369
+ "description": "Import from URL"
370
+ },
371
+ "eventListening": {
372
+ "code": "cycleCAD.on('step:importProgress', (data) => {\n console.log(data.percent + '%: ' + data.message);\n});",
373
+ "description": "Listen to import progress"
374
+ },
375
+ "errorHandling": {
376
+ "code": "cycleCAD.on('step:importError', (data) => {\n console.error(data.error);\n console.log('Fix: ' + data.suggestion);\n});",
377
+ "description": "Handle import errors"
378
+ },
379
+ "batchImport": {
380
+ "code": "for (const file of files) {\n await cycleCAD.step.import(file);\n await new Promise(r => setTimeout(r, 500));\n}",
381
+ "description": "Import multiple files sequentially"
382
+ },
383
+ "relatedTopics": ["server-api", "caching-strategy"]
384
+ },
385
+
386
+ "best-practices": {
387
+ "title": "STEP Import Best Practices",
388
+ "category": "STEP Import/Export",
389
+ "optimization": [
390
+ "Optimize file before export: remove unused features",
391
+ "Merge small cosmetic parts into sub-assemblies",
392
+ "Reduce NURBS surface complexity in CAD",
393
+ "Test file in desktop CAD before importing"
394
+ ],
395
+ "performance": [
396
+ "Use caching for frequently-imported models",
397
+ "Set appropriate deflection for your use case",
398
+ "Import large files (>50MB) during non-peak hours",
399
+ "Monitor server resources if self-hosting"
400
+ ],
401
+ "workflow": [
402
+ "Import base model, then add details in cycleCAD",
403
+ "Use separate STEP files for sub-assemblies",
404
+ "Validate geometry after import (no invisible/deformed parts)",
405
+ "Export and re-import to test round-trip fidelity"
406
+ ],
407
+ "production": [
408
+ "Use server converter for production workflows",
409
+ "Monitor server health and uptime (5 nines recommended)",
410
+ "Configure caching and CDN for scalability",
411
+ "Log all imports for audit trail"
412
+ ],
413
+ "relatedTopics": ["file-size-handling", "server-setup", "caching-strategy"]
414
+ },
415
+
416
+ "step-versions": {
417
+ "title": "Supported STEP Versions",
418
+ "category": "STEP Import/Export",
419
+ "description": "cycleCAD supports AP203 and AP214 (most common). AP242 partially supported.",
420
+ "versions": {
421
+ "ap203": {
422
+ "name": "AP203 (1994)",
423
+ "aka": "STEP 1.0",
424
+ "support": "Full",
425
+ "common": "Mechanical parts, legacy CAD",
426
+ "examples": "SolidWorks, older Inventor"
427
+ },
428
+ "ap214": {
429
+ "name": "AP214 (2000)",
430
+ "aka": "STEP 2.0, Automotive Design",
431
+ "support": "Full",
432
+ "common": "Assemblies, modern CAD",
433
+ "examples": "Fusion 360, FreeCAD, recent Inventor"
434
+ },
435
+ "ap242": {
436
+ "name": "AP242 (2014)",
437
+ "aka": "STEP 3.0, Managed Data Environment",
438
+ "support": "Partial",
439
+ "common": "Complex assemblies, metadata-heavy",
440
+ "notes": "Geometry OK, color/metadata may be incomplete"
441
+ }
442
+ },
443
+ "unsupported": [
444
+ "IGES (convert via CAD)",
445
+ "STPZ (decompress first)",
446
+ "JT/Parasolid XT (use STEP export)",
447
+ "CATIA/Pro/E (use STEP export)"
448
+ ],
449
+ "conversion": [
450
+ "Online: https://products.aspose.app/cad/conversion",
451
+ "FreeCAD: Open file, File > Export As > STEP",
452
+ "Command-line: freecad --headless --python convert.py input.iges output.step"
453
+ ],
454
+ "relatedTopics": ["import-basic", "troubleshooting-geometry"]
455
+ },
456
+
457
+ "community-resources": {
458
+ "title": "Community & Resources",
459
+ "category": "STEP Import/Export",
460
+ "documentation": [
461
+ "STEP Format Spec: https://en.wikipedia.org/wiki/ISO_10303",
462
+ "OpenCASCADE Docs: https://dev.opencascade.org/doc",
463
+ "cycleCAD Tutorial: /docs/STEP-IMPORT-TUTORIAL.md"
464
+ ],
465
+ "support": [
466
+ "GitHub Issues: https://github.com/vvlars-cmd/cyclecad/issues",
467
+ "Email: support@cyclecad.com",
468
+ "Discord: https://discord.gg/cyclecad (coming soon)"
469
+ ],
470
+ "tools": [
471
+ "Online Converter: https://products.aspose.app/cad/conversion",
472
+ "STEP Validator: https://www.freecadweb.org",
473
+ "Batch Converter: https://cloudconvert.com"
474
+ ],
475
+ "examples": [
476
+ "Sample STEP files: https://github.com/vvlars-cmd/cyclecad/tree/main/examples",
477
+ "Import tutorials: https://cyclecad.com/docs",
478
+ "API examples: /docs/STEP-IMPORT-TUTORIAL.md#programmatic-import"
479
+ ]
480
+ }
481
+ }