January 18, 2026
Description
It seems like a recent F360 update broke the model file. Since it is not the first time, I'm in the process of ditching Fusion360 from my workflow altogether. I'm learning FreeCAD and will attempt a redesign of the cable winder with that software.
I hope I will be done in February 2025. I'm very sorry for the inconveniences, but I think this change is for the best. FreeCAD in an open-source software, and it deserves to be used more than the very restricted (even for hobbies) and unstable fusion360 software.
Fix a bug that made the buldge stick out too much, leading to a wall too thin to be printed out (basically being a regression of @CueBall909's suggestion)
In my quest for the perfect cable winder and organizer, I haven't found what I wanted. So here is a fully parametric print-in-place one.
It features a print-in-place winding mechanism, just like the remixed model, and closes with a fit snap. You can stack up as many cable organizers as you want thanks to its stackable design. The model revolves around the length of the cable you want to wind: if you decide to open up the parametric file, you will see that you can directly input your target length and the model is gonna readjust its height to be able to fit your cable in.
Figure 1.a | Figure 1.b |
The whole thing can be printed in one time without support. It took 1h50 on my printer using a layer height of 0.2mm.
Different model sizes
Model parameters
Modelling approach
Different driving modes
Design decisions
Stack-ability
Why is it not the only choice?
Section cut analysis
Winding mechanism
Closing mechanism
Why is the wall so thick?
Changing the force required to close/open the winder
Pre-tensioned clips
Winder design
One-side winding
Minimal cable stress
Cable retainer
Cable length computation
Volumes
The cable volume problem
Final formulas
Version history
3 sizes are available to download. If you want another one, feel free to download the FreeCAD file and change the parameters (see Model parameters for more info).
Small
Cable length: 1.5m (5 foot)
Cable thickness: 4mm
Medium
Cable length: 2.5m (8 foot)
Cable thickness: 4mm
Large
Cable length: 3m (10 foot)
Cable thickness: 5mm
The fusion360 model is available and parametric: you can create the cable winder that suits your needs. Here is a list of the main parameters you can play with
Name | Value | Unit | Comment |
CableLength | 1500 | mm | The length of the cable you want to wind |
CableThickness | 4 | mm | The section diameter of your cable. It affects the center piece wavy pattern and the size of the holes in the bottom and top piece. |
ClipBuldgeOffset | 0.6 | mm | How far the clip buldge is sticking out. It is now the main parameter to adjust the closing force. See |
EnableStackability | False |
| Whether to enable the model stackability. See |
Name | Value | Unit | Comment |
FillingRatio | 0.6 |
| See |
Name | Value | Unit | Comment |
ClipsAngularLength | 30.0 | deg | Angular size of each clip. |
FirstClipAngularPosition | 46.0 | deg | Angular position of the clip relative to the hole. |
HoleMargins | 1.0 | deg | Angular margin for the clips sides. |
DistanceFromHoleBottom | 0.3 | mm | Distance from the bottom of the clip's hole to the clip's bottom. |
Height | 10 | mm | Height of the clip. |
InBetweenMargin | 0.2 | mm | Margin between the inner surface of the clip and the outer surface of clip's hole. |
InformativeSmallestWallThickness | 0.7 | mm | (Not a parameter). Information about how thick the smallest portion of the wall is. The smallest thickness is where the clip's buldge goes. |
BuldgeRadius | 1.4 | mm | How big the buldge is. |
PreTension | 0.05 | mm | Pre tension applied to the clips. The higher the number, the stronger the close. It represents the distance between the normal position and the tensioned one. (see |
Thickness | 2.0 | mm | Thickness of the clips. The clip's thickness + the InBetweenMargin cannot exceed the wall's thickness (or the wall would disappear. Always check |
Name | Value | Unit | Comment |
DriveBy | Height |
| Control how the model is driven. It can be driven by user-inputed height, or user-intput external diameter. |
ExternalDiameter | 70 | mm | Maximum diameter of the internal volume. Total diameter of the piece is ExternalDiameter + WallThickness |
Height | 14 | mm | Height of the internal volume. |
HoleSizeVsHeight | 0.8 |
| Control how tall is the cable hole. It is in proportion to the Height. |
InternalDiameter | 44 | mm | Minimum diameter of the internal volume. If you want to adjust the size of the winder, you can use this. If you have a rigid cable, you can increase this value to loosen the bends. |
TopAndBottomThickness | 1.5 | mm | Thickness of the bottom and top flat surfaces. |
Name | Value | Unit | Comment |
FingerSplineAngle | 155 | deg | The closer to 90°, the straigter the middle cable housing will be. The closer to 180°, the more rounded it will be. |
FingerWallWidth | 2.0 | mm | Thickness of the wall around the middle cable housing. |
RotationGap | 0.3 | mm | Gap between the winder and the bottom piece. If your 3D printer has tight tolerances, you can decrease this value to have less play. If the two pieces are fused together, increase this value to make it easier to separate them. |
StackRidgeMargin | 0.1 | mm | Margin tfor the negative space at the bottom of the winder to accomodate for the stackability ridge. |
StackRidgeWidth | 2.5 | mm | Radius of the stackability ridge. A bigger ridge would make it easier to stack, but would take more vertical space. |
WallWidth | 2.0 | mm | Thickness of the winder's wall. |
I'm very new to FreeCAD, but it is an amazing powerful and open-source software. If you have any remarks on how I could improve the model, please send me a message.
New in v6.11. Thanks to @LineArcLine for the suggestion: Before this revision, the height was automatically computed from the user input in external_diameter. However, it was prone to stupidly thick cable winder that led to an improper winding of the cable since it wasn't spread out evenly throughout the height. Being able to drive the external_diameter from the user input height make just more sense. Nevertheless, I wanted to keep the possibility to drive the height (mainly to avoid losing a feature). Thanks to FreeCAD, it is super easy to switch between the two modes, just with the flick of a field.
The biggest part of the design was actually fairly simple to design thanks to @LineArcLine advices. The first step is to revolve a single sketch around a central axis. That sketch contains the section of the cable winder that has a few remarkable things. From top to bottom we have:
The ridge that allows for stack-ability (discussed in the Stack-ability section)
A profile that keeps the cable from pushing too hard on the top piece (more details in the Winder cable retainer section).
A chamfer on the right right corner to avoid the cable to be squeezed into the corner.
The thick external wall to allow for the closing clips (detailed in the Closing mechanism section). The reason for the thickness is also given in the section.
The same chamfer at the bottom for the same reasons.
The rotation mechanism (more details in the Winding mechanism section).
figure 2 |
This is the hot new feature of the version 6.x, and it wasn't the most easy to design. However, with the help of CueBall909, we managed to reach the perfect solution, that does not even require supports. The basic requirements for something to be stack-able is to have a groove on one side, and a ridge on the other. However, because the the top and bottom piece are printed flat-surface down, a ridge on one of the two flat surfaces would have necessitate a ton of supports since it would have been the higher than the flat surface.
Through a suggestion from CueBall909 (and a lot of tests), a ridge was added to the top part of the winder which is the only piece making contact with the bottom piece of a stacked cable organizer (in yellow in figure 3.a). To maintain the stack-ability whatever the rotation of the winder, a small part of the center piece was extruded so that the ridge can even go where the wavy section of the winder was (figure 3.b).
figure 3.a | figure 3.b |
Stack-ability adds a ridge on top of the winder that sticks out the top surface (you can clearly see it on Figure 2). If you plan to travel or to put the cable winder in a pocket, that ridge can be quite aggressive on your textile. Hence you can find the files for the two versions: stack-able and not stack-able.
During printing, the winder piece will be locked forever with the bottom one. This process, often referred as “print-in-place”, ensures that the winder can rotate freely within the bottom piece without any assembly step!
You can also notice a little trick to make the separation of the central piece easier. Because it is common to have elephant foot on prints, a small chamfer has been added so that even an elephant foot would not fuse the two pieces together.
figure 4 |
Instead of a hinge, which requires a low tolerance printer and that can break off easily, it was chosen to use clips that are both strong and easy to remove. They underwent major improvements from version 5.x to version 6.x as they are now streamlined with the body, making them more protected while making the design more modern. They also are no longer 4 equally-spaced clips, but instead 2 groups of 2 clips. This ensures that the cable holes (that are now on the bottom and top piece) are aligned together. If you change FirstClipAngularPosition parameter to bring the clips closer, make sure to always leave a separation between two pieces (to avoid fusing them in one). The ensures greater ridgidity.
Figure 5 |
That is an excellent question, congrats for having noticed that. The thickness of the wall was constrained by the groove thickness (that allows the closing pins to clip). Indeed, some slicing engine have trouble with lines thinner than the nozzle hole diameter. To counteract that, the thickness of the groove was set to 0.61mm so that every engine would print a (1 line thick) wall for the groove, even if your nozzle is 0.6mm which is fairly common (thanks to CueBall909 for the notice). Besides, the clip by itself needed to be fairly strong hence it's 2mm thick design. Then, the larger the clip's bulge, the firmer the closing. The bulge is actually 0.7mm wide. Finally, there is 0.2mm of space between the cut-out section and the clip so that the clip can bend away.
Figure 6 |
As you can see in Figure 7, the male part of the clip goes further than the female part. It is a pre-tension mechanism that can be used to easily adjust the force required to close the winder. The deviation between the normal position (the purple dashed circle) and the tensioned one (the black circle) is adjustable with the “clip_pre_tension” parameter in fusion360. By default, this parameter is set to 0.15mm.
Figure 7 |
There are two ways that impacts the force that you need to open and close the winder.
how much does the clip have to bend:
The distance the bulge goes into the wall (on Figure 6, it would be 1.10mm - 0.61mm). The smaller that distance, the firmer the close.
Pre-tension the clip using the available parameter
How easy it is for the clip to bend:
How tall is the clip. The taller the less force required.
How thick is the clip. The thicker, the more force required.
/!\ The force required to open / close the winder depends on A LOT of parameters that are not imputable to the model design, such as:
number of walls
infill density
infill pattern
material used (PLA, ABS, PETG, etc.)
probably many more
Its wavy shape allows for minimal cable stress when winded. It features a small chamfer to keep the cable from trying to come out. The two empty spaces can fit two fingers (one in each hole) to wind the cable.
One-side winding
It is possible to only wind one side of the cable. It is actually the raison-d'etre of this design. The open top section of the winder allows one side to stick out from the middle, hence not being winded when the center piece rotates regarding the bottom piece.
The maximum cable bending happens on the winder and the maximal bending radius is approximately half of the internal_diameter parameter.
The chamfer is small, but enough to keep the cable from trying to push the top piece out.
The idea behind the computation is simple: find the cable winder available volume, and divide it by the cable cross-section to find the maximum cable length that fits. However, they were a few caveats with this method.
the available cable winder volume is the volume of the whole piece (of radius Rₑ and height h) - the volume of the winder (of radius Rᵢ and height h). We have:
Vᵃᵛᵃᶦˡᵃᵇˡᵉ = π × Rₑ² × h - π × Rᵢ² × h = π × h × (Rₑ² - Rᵢ²)
For the cable (of radius Rᶜ and length L), we have:
Vᶜᵃᵇˡᵉ = π × Rᶜ² × L
If we want one to fit in the other, they must be equal, i.e.
Vᶜᵃᵇˡᵉ = Vᵃᵛᵃᶦˡᵃᵇˡᵉ ⇔ Rᶜ² × L = h × (Rₑ² - Rᵢ²)
⇔ L = h × (Rₑ² - Rᵢ²) / Rᶜ²
How it goes in the design process
Unfortunately, fusion360 does not let the designer use the surface area as a variable. Because of that we have no way of precisely knowing the volume that the cable can fit since the inside section is not a square. Despite the exact internal volume possible to compute, the formula would have been wayyyy too big, and it was decided to overshoot the volume by a good margin, in addition to the filling_ratio parameter.
However, you may have noticed that the cable cannot occupy the full volume, and they are voids, or gaps, just like interstitial site in crystallography (see what I'm talking about). Hence a factor noted α of 0.70, which roughly accounts for the volume loss in a simple cubic disposition (theoretically, it's 0.75). We have:
L = h × (Rₑ² - Rᵢ²) / Rᶜ² × α
From the previous formula, we can isolate the height:
h = L × Rᶜ² / (Rₑ² - Rᵢ²) / α
and we can also isolate the external radius:
Rₑ = sqrt(Rᵢ² + (L × Rᶜ²)/(h × α))
We can substitute the radiuses with diameters while keeping the equation true. The formulas are used to drive these two measurements (height and external_diameter) in the model.
The initial motivation was to design a cable winder that can wind up only one side of the cable, to tidy my desk up. Doing so would have allowed me to have the perfect length between the connection and the (hidden) cable winder, while the rest of the cable goes to where it is due. For instance, my keyboard is hooked up to a hub: the cable winder is 5cm away from the hub, and my keyboard is 50cm away from the cable winder.
Version | comments | photo |
1.3 |
| |
2.4 |
| |
3.2 |
| |
4.3 |
| |
5.4 |
| |
6.10 | 12/01/2024 Huge thanks to @CueBall909 for all the new ideas and the discussions. I'd like to also thanks @LineArcLine for its better modelling approach.
| |
6.11 | 21/01/2024 thanks again to @CueBall909 for his discovery on the wall thickness not being printed correctly on some slicing engines.
| No visible changes |
6.12 | 20/04/2024 Thanks to @Frodo_438254 for his help in validating the new design.
| No visible changes |
6.13 | 05/07/2024
| Same as 6.14 |
6.14 | 01/12/2024
| |
7.1 | 17/02/2025
| Photos will be coming later. I need to print it in many different colours. |
7.2 | 24/02/2025
| Same as current |
7.3 | 01/04/2025
| Same as current |
7.4 | 18/01/2025
| Same as current |
8.0 | Roadmap:
|
|
License:
Creative Commons — Attribution — Share Alike