1
- # Fusion Eurorack Panel Generator
1
+ # Modular Synth Panel Generator
2
2
3
- [ ![ Latest release] ( https://img.shields.io/github/v/release/cowboy/fusion-eurorack-panel-generator .svg?style=flat )] [ latest-release ]
3
+ [ ![ Latest release] ( https://img.shields.io/github/v/release/cowboy/ModularSynthPanelGenerator .svg?style=flat )] [ latest-release ]
4
4
[ ![ CC BY-NC-SA 4.0] [ cc-by-nc-sa-shield ]] [ cc-by-nc-sa ]
5
5
[ ![ Code of Conduct] ( https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat )] [ coc ]
6
6
7
7
## Description
8
8
9
9
<img align =" right " src =" resources/project-logo-readme.png " >
10
10
11
- TL;DR: This is a Eurorack panel generator [ add-in] [ addins ] for [ Autodesk Fusion] [ fusion ]
11
+ TL;DR: This is a modular synth panel generator [ add-in] [ addins ] for [ Autodesk Fusion] [ fusion ]
12
12
13
- If you're like me and you like making DIY Eurorack modules but absolutely hate milling aluminum panels because little
14
- bits of metal go flying everywhere and it's impossible to get all the holes to line up just right and it's just so damn
13
+ If you're like me and you like making DIY synth modules but absolutely hate milling aluminum panels because little bits
14
+ of metal go flying everywhere and it's impossible to get all the holes to line up just right and it's just so damn
15
15
tedious, maybe this thing will help you out.
16
16
17
- I've been 3D printing DIY Eurorack module panels for a while now, but until I made this add-in, I'd been copying and
18
- pasting some manual template components over and over again, which resulted in a very large and very slow Fusion project
19
- file .
17
+ I've been 3D printing DIY Eurorack module panels for a while now, but until I made this add-in, I'd been manually
18
+ copying and pasting " template" components over and over again, which resulted in a number of very large and very slow
19
+ Fusion project files .
20
20
21
21
## Features
22
22
23
23
With this add-in, you can...
24
24
25
- - generate [ 3U] [ intellijel-spec ] , [ 1U (Intellijel)] [ intellijel-spec ] , and [ 1U Tile (Pulp Logic)] [ pulplogic-spec ]
26
- compatible Eurorack panels, suitable for 3D printing (or CNC?)
25
+ - generate modular synth panels (currently Eurorack and 1U formats are supported), suitable for 3D printing (or CNC?)
27
26
- choose any width from 2 to 9000 HP
28
27
- set a custom panel thickness
29
- - choose from two different reinforcement types, which each thicken the center area of the panel, while leaving the
30
- panel thickness in the mounting screw area unchanged:
28
+ - choose multiple reinforcement types, each of which thicken the center area of the panel, while leaving the panel
29
+ thickness in the mounting screw area unchanged:
31
30
- ` Shell ` : This creates a hollow shell, adding strength while leaving space inside for jacks and switches. Generally
32
31
useful for 4 HP and larger panels.
33
32
- ` Solid ` : This adds strength to larger blanks, or very narrow modules where the shell approach wouldn't leave enough
34
33
space for components.
35
34
- save custom default values for easy recall
36
- - easily edit generated sketches to change the HP (or other) values or features to change extrusions , after-the-fact
35
+ - easily edit generated sketches and features to change dimensions , after-the-fact
37
36
38
- Additional Notes:
37
+ ### Currently supported modular synth panel formats
38
+
39
+ | Format name | Reference Specification |
40
+ | ----------------------------- | ----------------------------------------------------------- |
41
+ | 3U Eurorack | [ Doepfer - A-100 Construction Details] [ doepfer-spec ] |
42
+ | 1U (Intellijel) | [ Intellijel - 1U Technical Specifications] [ intellijel-spec ] |
43
+ | 1U Tile (Pulp Logic) | [ Pulp Logic - About 1U Tiles] [ pulplogic-spec ] |
44
+ | < ; Your favorite format?> ; | [ Contributions welcome!] ( #contributing ) |
45
+
46
+ ### Additional Notes
39
47
40
48
- I print with PETG using a 0.4mm nozzle and 0.2mm layer height on a Bambu X1C, without issues.
41
49
- When using reinforcements, it'll probably be easiest if you print with the panel face down. 😛
@@ -79,8 +87,8 @@ You have a few options:
79
87
80
88
** Option 1:** You just want to use the add-in
81
89
82
- 1 . Download the ` EurorackPanelGenerator -vX.Y.Z.zip` file from the [ latest release] [ latest-release ] page. Note that the
83
- ` X.Y.Z ` part will change based on the release version.
90
+ 1 . Download the ` ModularSynthPanelGenerator -vX.Y.Z.zip` file from the [ latest release] [ latest-release ] page. Note that
91
+ the ` X.Y.Z ` part will change based on the release version.
84
92
2 . Unzip it. You can unzip anywhere, but the [ Installing, Linking, and Removing Scripts and Add-Ins] [ addins-installing ]
85
93
documentation page has suggestions.
86
94
@@ -95,12 +103,12 @@ You have a few options:
95
103
1 . In Fusion open the ` Scripts and Add-Ins ` dialog by pressing ` Shift + S ` or going to
96
104
` Utilities -> Add-Ins -> Scripts and Add-Ins ` in the top menu of the Design workspace.
97
105
2 . Click the ` + ` (plus) icon at the top of the ` Scripts and Add-Ins ` dialog and select ` Script or add-in from device ` .
98
- 3 . Choose the folder created after unzipping / cloning. It will be named something like ` EurorackPanelGenerator ` or
99
- ` EurorackPanelGenerator -vX.Y.Z` and will contain ` lib ` , ` commands ` and ` resources ` folders, as well as files like
100
- ` EurorackPanelGenerator .manifest` and ` EurorackPanelGenerator .py` (you may not be able to see some of the folder
101
- contents in the ` + ` file dialog).
102
- 4 . Verify that you see the ` EurorackPanelGenerator ` add-in in the ` Scripts and Add-Ins ` dialog list.
103
- 5 . Enable the ` Run ` option for the ` EurorackPanelGenerator ` add-in.
106
+ 3 . Choose the folder created after unzipping / cloning. It will be named something like ` ModularSynthPanelGenerator ` or
107
+ ` ModularSynthPanelGenerator -vX.Y.Z` and will contain ` lib ` , ` commands ` and ` resources ` folders, as well as files like
108
+ ` ModularSynthPanelGenerator .manifest` and ` ModularSynthPanelGenerator .py` (you may not be able to see some of the
109
+ folder contents in the ` + ` file dialog).
110
+ 4 . Verify that you see the ` ModularSynthPanelGenerator ` add-in in the ` Scripts and Add-Ins ` dialog list.
111
+ 5 . Enable the ` Run ` option for the ` ModularSynthPanelGenerator ` add-in.
104
112
105
113
When done correctly, the Design workspace ` Solid -> Create ` menu should have a ` Eurorack Panel Generator ` option.
106
114
@@ -126,8 +134,8 @@ Useful links:
126
134
Development environment notes:
127
135
128
136
- Launch the editor ([ Visual Studio Code] [ vscode ] ) from inside Fusion by opening the ` Scripts and Add-Ins ` dialog
129
- (` Shift + S ` ), right-clicking on the ` EurorackPanelGenerator ` and clicking ` Edit in code editor ` . This allows you to
130
- attach the vscode debugger to the running process as well as reload after you've made changes.
137
+ (` Shift + S ` ), right-clicking on the ` ModularSynthPanelGenerator ` and clicking ` Edit in code editor ` . This allows you
138
+ to attach the vscode debugger to the running process as well as reload after you've made changes.
131
139
- I've tried to leave the boilerplate files generated by Fusion's ` Create script or add-in ` relatively untouched, so
132
140
that the code can be as modular as possible. Unused boilerplate has been removed where possible.
133
141
- There are ` # type: ignore ` comments throughout the code to get
@@ -155,25 +163,20 @@ Development environment notes:
155
163
156
164
Files of interest:
157
165
158
- | File | Description |
159
- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
160
- | [ commands/commandDialog] ( /commands/commandDialog ) | Boilerplate command code generated by Fusion. You likely won't be touching these files. |
161
- | [ lib/eurorackPanelUtils/eurorack_panel_command .py] ( /lib/eurorackPanelUtils/eurorack_panel_command .py ) | Most of the command code that would have gone into the boilerplate command ` entry ` file. This is where the main dialog is initialized and updated. |
162
- | [ lib/eurorackPanelUtils/eurorack_panel_options .py] ( /lib/eurorackPanelUtils/eurorack_panel_options .py ) | ` EurorackPanelOptions ` class with add-in options and some constants, including convenience getters/setters for the ui dialog imputs. |
163
- | [ lib/eurorackPanelUtils/eurorack_panel .py] ( /lib/eurorackPanelUtils/eurorack_panel .py ) | Code that actually generates the panel, including the sketch and extrusions. |
164
- | [ lib/generalUtils/debug_utils.py] ( /lib/generalUtils/debug_utils.py ) | Debugging utilities |
165
- | [ lib/generalUtils/extrude_utils.py] ( /lib/generalUtils/extrude_utils.py ) | Extrusion utilities |
166
- | [ lib/generalUtils/persist_utils.py] ( /lib/generalUtils/persist_utils.py ) | ` Persistable ` class for persisting defaults to disk |
167
- | [ lib/generalUtils/sketch_utils.py] ( /lib/generalUtils/sketch_utils.py ) | Sketch utilities |
168
- | [ lib/generalUtils/value_utils.py] ( /lib/generalUtils/value_utils.py ) | Value normalization utilities |
166
+ | File | Description |
167
+ | ----------------------------------------------------------------------- | --- -------------------------------------------------------------------------------------------------------------------------------------------------- |
168
+ | [ commands/commandDialog] ( /commands/commandDialog ) | Boilerplate command code generated by Fusion. You likely won't be touching these files. |
169
+ | [ lib/panelUtils/panel_command .py] ( /lib/panelUtils/panel_command .py ) | Most of the command code that would have gone into the boilerplate command ` entry.py ` file. This is where the main dialog is initialized and updated. |
170
+ | [ lib/panelUtils/panel_options .py] ( /lib/panelUtils/panel_options .py ) | ` PanelOptions ` class with panel options and constants, including convenience getters/setters for ui dialog imputs. |
171
+ | [ lib/panelUtils/panel_generate .py] ( /lib/panelUtils/panel_generate .py ) | Code that actually generates the panel, including the sketch and extrusions. |
172
+ | [ lib/generalUtils/debug_utils.py] ( /lib/generalUtils/debug_utils.py ) | Debugging utilities |
173
+ | [ lib/generalUtils/extrude_utils.py] ( /lib/generalUtils/extrude_utils.py ) | Extrusion utilities |
174
+ | [ lib/generalUtils/persist_utils.py] ( /lib/generalUtils/persist_utils.py ) | ` Persistable ` class for persisting defaults to disk |
175
+ | [ lib/generalUtils/sketch_utils.py] ( /lib/generalUtils/sketch_utils.py ) | Sketch utilities |
176
+ | [ lib/generalUtils/value_utils.py] ( /lib/generalUtils/value_utils.py ) | Value normalization utilities |
169
177
170
178
_ (More to come, but in the meantime, if you give this a try and have any issues, please let me know)_
171
179
172
- ## References
173
-
174
- - [ Intellijel - 1U Technical Specifications] [ intellijel-spec ]
175
- - [ Pulp Logic - About 1U Tiles] [ pulplogic-spec ]
176
-
177
180
## Support the project
178
181
179
182
This add-in is free. However, if you want to support the project you can do so by
@@ -198,11 +201,12 @@ License][cc-by-nc-sa].
198
201
[ addins ] : https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-9701BBA7-EC0E-4016-A9C8-964AA4838954
199
202
[ addins-installing] :
200
203
https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-9701BBA7-EC0E-4016-A9C8-964AA4838954#Installing
201
- [ latest-release ] : https://github.com/cowboy/fusion-eurorack-panel-generator /releases/latest
204
+ [ latest-release ] : https://github.com/cowboy/ModularSynthPanelGenerator /releases/latest
202
205
[ cc-by-nc-sa ] : http://creativecommons.org/licenses/by-nc-sa/4.0/
203
206
[ cc-by-nc-sa-image ] : https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
204
207
[ cc-by-nc-sa-shield ] : https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg
205
- [ coc ] : https://github.com/cowboy/fusion-eurorack-panel-generator /blob/main/CODE_OF_CONDUCT.md
208
+ [ coc ] : https://github.com/cowboy/ModularSynthPanelGenerator /blob/main/CODE_OF_CONDUCT.md
206
209
[ vscode ] : https://code.visualstudio.com/
210
+ [ doepfer-spec ] : https://www.doepfer.de/a100_man/a100m_e.htm
207
211
[ pulplogic-spec ] : https://pulplogic.com/1u_tiles/
208
212
[ intellijel-spec ] : https://intellijel.com/support/1u-technical-specifications/
0 commit comments