Generating holes for countersunk screws in FreeCAD

Update 1 Aug 2015: Add option for countersunk holes to be matched to a selected screw type

When working with countersunk screws in FreeCAD there is usually a need to pass over all the screw holes and add a recess/chamfer to the holes to match the countersunk screw.

This process can be rather tedious to do manually. For this reason and by requests from users I have added a “Make countersunk hole” function into the Fasteners Workbench. If not yet installed, see installation instructions here.

How to use:

Prepare a part with adequate holes for screws. For the automatic sizing to work, the holes should be based on the desired screw diameters. (For example for M5 screw, prepare a 5mm hole. You can also place a 4.2mm hole for holes that supposed to be tapped)


Select the desired part and press the “Make countersunk” (fscsicon) button in the toolbar. A task dialog will appear on the left:


The dialog will show a list of possible circular edges that can be chamfered to accommodate countersunk screws.

Move you mouse over the part and select the desired holes you want to put screws in. Select the top edge of the hole. You can select holes one by one (no need to press CTRL) or you can click on a face and all holes in that face will be selected. Each selected edge will be checked in the Dialog list, and automatic screw diameter will be selected. You can also check/uncheck edges directly in the list – but in this case no automatic sizing will occur.

When finished, Click the OK button at the top of the dialog. (This process is very similar to creating standard chamfers/fillets). For each selected hole, a chamfered recess matching the screws will be created:


This process is of course parametrized. So if the result is not satisfactory, you can simply double click on the created Countersunk and you can edit the parameters. For example you can change the countersunk diameter by double clicking on the desired diameter, and selecting a new one from the combo:


It is also possible to change the diameter for all the selected edges by selecting the new diameter from the bottom Diameter box.

Click OK when finished. The Countersunk part will be updated:


Now let’s add some screws. Select the top edge of the new chamfered holes. Multiple selection can be done by pressing and holding the CTRL key. Click on the desired countersunk screw from the toolbar. A matching screw for each hole will be placed.If some screws came out upside down, select them and use the Invert(fsinverticon) button to flip them back:


Note: Countersunk screws are matched by their head diameter and other screws are matched by their body diameter.

Have Fun!



8 Responses to 'Generating holes for countersunk screws in FreeCAD'

  1. ddnux says:


    you have coded a very good tool.
    Is it possible to use the function “Chamfer holes for contersunk” for “Hexagone socket head cap screw”.
    And would it be possible to automatically make the screw hole in the part.
    thank you,
    Best Regards.

    • shaise says:

      Hi Ddnux,

      I did not understand your request. Hexagon socket head screws have flat bottom, so they can use a standard hole. no need to chamfer it or anything.


      • Dirk says:

        I think I get Ddnux’s second question. What I would find really helpfull is the following.
        a) Align a part with tapped holes to a part missing the bolt-through holes.
        b) Use the Fastener workbench to:
        b.1) Place the bolt in tapped hole (already possible)
        b.2) Have workbench create a boolean operation making the through-hole in the aligned part (wishful thinking?)

  2. Patrick says:

    Nice tool. But I live in the US, designing with ANSI standards. I’d like to make a countersunk hole for, say, a 2-56 flat headed screw, not an ISO (metric) screw. I’m not finding that option in your very excellent tool. I can make the countersink by hand as usual, of course.

  3. Graham says:

    Perhaps I used it wrong in some way, but when I have holes in a simple plate, and I select just the top face, and attempt countersunk, I have to laboriously check-mark select every other edge to avoid a countersink on both ends of the holes.

    If I wanted countersinks on both ends of the holes, I would have selected the bottom edge also. As it is, the selection of one face with holes seems to come with the edge of the holes at the other face implied included.

    • shaise says:

      It looks there was indeed a bug in the WB.
      I fixed it please update.
      Also this is the way it works: Click on the object (does not matter which face) then click the “countersunk” button. this will invoke the the countersunk task. Now click on the face you want, you will see on the task that only the holes in this face will be checked.
      Let me know if this works.

  4. Hello Shai Seger, is it possible to model origami folds in FreeCAD? I was directed to you while I posted this question in Reddit.

Leave a Reply

Your email address will not be published. Required fields are marked *