• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Click button generator with spring or magnets 3D Printer File Image 1
Click button generator with spring or magnets 3D Printer File Image 2
Click button generator with spring or magnets 3D Printer File Image 3
Click button generator with spring or magnets 3D Printer File Image 4
Click button generator with spring or magnets 3D Printer File Image 5
Click button generator with spring or magnets 3D Printer File Thumbnail 1
Click button generator with spring or magnets 3D Printer File Thumbnail 2
Click button generator with spring or magnets 3D Printer File Thumbnail 3
Click button generator with spring or magnets 3D Printer File Thumbnail 4
Click button generator with spring or magnets 3D Printer File Thumbnail 5

Click button generator with spring or magnets

Christian Cristofori avatarChristian Cristofori

April 12, 2026

makerworld-icon
DescriptionCommentsTags

Description

This generator easily allows you to create custom click buttons compatible with Cherry MX button with various configurations, here's a complete guide to the generating parameters.

 

Subscribers to my Get to the source commercial membership can get access to the original .SCAD files and use OpenSCAD nightly builds to run them, if you don’t know how to do it, I wrote a full but simple step by step guide that you can find attached to this project.

Addendum

I also provide a Fusion 360 and a STEP file to use as reference for creating the holes to put the buttons in, to get them click on the dropdown arrow on right side of “Open in Bambu Studio” button and select Download STL/CAD Files from the menu.

Inserts

These parameters define what kind of internal mechanics you will use.

ParameterDescriptionunitminmaxdefault
insert_type

Defines the type of insert to add, this value can be:

  • Spring - use a compression spring;
  • Magnets - use two opposed magnets.
   Spring
spring_internal_diameter

The internal diameter of the spring, this defines the diameter of the pin holding the spring in place on the bottom piece. Preferably use a smaller value.

Setting this to zero will avoid pin creation.

This value is only used if insert_type is set to Spring.

millimeters05.73.2
spring_external_diameter

The external diameter of the spring, this defines the diameter of the hole in the middle piece.

This value is only used if insert_type is set to Spring.

millimeters066
spring_fill_pin

If the pin should be filled or only walls are created.

This value is only used if insert_type is set to Spring.

   false
spring_minimal_length

The minimal length the spring should achieve when compressed, this helps the generator determine the distance between the top of the hole in the middle piece and the bottom of the piece.

This value is only used if insert_type is set to Spring.

millimeters065
spring_hole_border

Set how high the walls around the hole in the middle piece are.

This value is only used if insert_type is set to Spring.

millimeters062
top_magnet_shape

The shape of the magnet in the middle piece, this value can be:

  • Round - for a circular magnet;
  • Rectangular - for a rectangular or squared magnet.
   Round
top_magnet_diameter

This parameter value meaning depends on the value set in top_magnet_shape:

  • Round - the value is the diameter of the circular magnet;
  • Rectangular - the value is the width of the magnet.
millimeters16.25
top_magnet_height

The height of the rectangular magnet.

This value is only used if top_magnet_shape is Rectangular.

millimeters163
top_magnet_thicknessThe thickness of the magnet.millimeters1301
top_magnet_cover

The quantity of material that is to be placed below the magnet.

Warning: when setting this to zero, magnets_tolerance is considered zero for vertical creation of this and the magnet will be exposed.

millimeters050.8
bottom_magnet_shape

The shape of the magnet in the bottom piece, this value can be:

  • Round - for a circular magnet;
  • Rectangular - for a rectangular or squared magnet.
   Round
bottom_magnet_diameter

This parameter value meaning depends on the value set in bottom_magnet_shape:

  • Round - the value is the diameter of the circular magnet;
  • Rectangular - the value is the width of the magnet.
millimeters16.25
bottom_magnet_height

The height of the rectangular magnet.

This value is only used if bottom_magnet_shape is Rectangular.

millimeters163
bottom_magnet_thicknessThe thickness of the magnet.millimeters1301
bottom_magnet_cover

The quantity of material that is to be placed above the magnet.

Warning: when setting this to zero, magnets_tolerance is considered zero for vertical creation of this and the magnet will be exposed.

millimeters050.8
magnets_toleranceThe tolerance of magnets sizes in every direction.millimeters00.50.2
full_base

Special mode, if activate the middle part will be created without legs.

This value is only used if insert_type is set to Magnets.

   true

Top piece

ParameterDescriptiondefault
top_simplifyIf this is enabled, a simplified version of the top piece is rendered, the simplified version is easier to print but has lower details. Results will still be fully compatible with Cherry MX buttons, but will not be exactly the same.true

Middle piece

ParameterDescriptionunitminmaxdefault
middle_pin_heightThe height of the pin for button cap insertion. This is the part that will be on top of the button.millimeters0103.7
middle_pin_shape

The shape of the pin at top of the button, this value can be:

  • Cross - the standard Cherry MX-compatible cross;
  • Circle - a simple cylinder;
  • Square 45° - a square pin rotated by 45° degrees;
  • Square horizontal - a square pin parallel to piece lines;
  • Rectangle - a rectangle with proportions of the middle piece itself.
   Cross
middle_pin_widthThe width of the top pin, scaled accordingly.millimeters0.45.14

Bottom piece

ParameterDescriptionunitminmaxdefault
bottom_pin_height

This defines the height of the bottom pin.

If this value is set to zero, the pin is not created.

millimeters0103
bottom_pin_diameter

The diameter of the bottom pin.

This is only used if bottom_pin_height is not set to zero.

millimeters1.2103.85
bottom_flatIf enabled, removes alignment plates on the bottom for a flat surface.   false
clipsEnables//disables lateral clips creation   true
clip_depth

The depth of the clip.

A value for this parameters must be considered sufficient enough so that they are not too delicate but not excessive so that they are not too hard.

millimeters0.431.6
clip_hole_depthThe depth of the hole the clips are created.millimeters0.583.7
reinforce_towersAdds a wall behind the towers avoiding them to be too delicate and break away easily.   true
bottom_simplify

If this is enabled, a simplified version of the bottom piece is rendered, the simplified version is easier to print but has lower details. Results will still be fully compatible with Cherry MX buttons, but will not be exactly the same.

This includes:

  • bottom_pin_height is considered set to zero hence bottom pin is not created;
  • bottom_flat is considered enabled hence bottom alignment plates are not created;
  • clips is considered disabled hence clips are not created;
  • reinforce_towers is considered enabled hence created.
   true

Other settings

ParameterDescriptiondefault
render_quality

Choose the quality of generation of the objects, the higher quality the more memory/time generation will take.

This value can be:

  • Draft;
  • Printable draft;
  • Normal;
  • Good quality;
  • High quality;
  • Very high quality.

My advice is to find your settings for the whole object using Normal rendering, then switching to High quality or even higher when ready to export.

Normal
top_colorThe color to use for top piece in Assemble View. Does not affect exported file.Lavender
middle_colorThe color to use for middle piece in Assemble View. Does not affect exported file.Firebrick
bottom_colorThe color to use for bottom piece in Assemble View. Does not affect exported file.Light Steel Blue

 

Where to buy inserts

You can buy inserts directly from MakerWorld/Bambu Lab under the Maker's Supply section or you can find them:

Amazon

 

IT

DE

6x10mm springs
5x1mm magnets

 

AliExpress

6x10mm springs
5x1mm magnets

 

The Amazon and AliExpress links above are part of the affiliate program. I may earn something from your purchase, please consider this as another way to show your appreciation for this model. You will not be charged anything more.


 

License:

MakerWorld Exclusive License

Related Models

Digital Sundial preview image

Digital Sundial

Mojoptix profile image

Mojoptix

67,369

Ratchet toothpaste tube squeezer preview image

Ratchet toothpaste tube squeezer

Luke's 3D profile image

Luke's 3D

24,473

Premium Popsicle Chapstick Click Container preview image

Premium Popsicle Chapstick Click Container

Scott Miller profile image

Scott Miller

948

NUT JOB | Nut, Bolt, Washer and Threaded Rod Factory preview image

NUT JOB | Nut, Bolt, Washer and Threaded Rod Factory

mike_mattala profile image

mike_mattala

51,811

SHOPVAC (50mm) CAMLOCK CONNECTORS WITH MAGNETIC CATCH preview image

SHOPVAC (50mm) CAMLOCK CONNECTORS WITH MAGNETIC CATCH

Peter H profile image

Peter H

7,118

Spray Paint Can Fidget preview image

Spray Paint Can Fidget

Tuny profile image

Tuny

855

The 3D Printed Marble Machine #3 preview image

The 3D Printed Marble Machine #3

Tulio profile image

Tulio

42,816

Fidget Toggle Switch preview image

Fidget Toggle Switch

kriswillcode profile image

kriswillcode

4,383