Giter VIP home page Giter VIP logo

freecad_dovetails_macro's Introduction

FreeCAD Dovetail Joint

This is a macro for woodworkers using FreeCAD. It creates a dovetail joint to join two boards.

It is mostly based on mwganson's joint macro which is a great tool, but somewhat hard to use for dovetails.

Installation

Install it by placing the zsDovetail.FCMacro into your macro folder. On first run it will offer to create a new file called zsDovetail.py. This file is needed for the zsDovetail feature python objects to be parametric and functional upon reloading documents containing these objects.

Usage

In this example we want to join two boards of 300 mm width, 16 mm thick. We start with the pins on the first board. Select the face of the board which should get the pins:

Now run the macro zsDovetail.FCMacro. A default dovetail joint with editable properties will appear in the tree:

Note that the Show Tool property is set to true by default. It shows the tool which will be used to cut out the waste between the pins (as in real making the pins on a board). This helps to position the tool. Adjust the parameters as needed. In our example, we first rotate the dovetail by 90 degrees on the Z-axis. Then we set the Depth and the Pin Height to the material thickness, which is 16 mm. The Width is set to the width of the board (300 mm). Set the Pin Count to 7. Now we have this result:

Remember the Show Tool property is still set to true, it shows the cutout which will be made. Setting it to false now gives us the pins:

According to the woodworking rules, a pin board should have half pins at either end, so let's do that. We set the Width property 8 mm wider than the board (308 mm) and offset the Position y to -4 mm. Now we are done with the pin board:

Now the tails board: We start the same way by selecting the face of the board:

Run the macro zsDovetail.FCMacro and set all parameters to the exact same values as the pin board, leave Show Tool set to true. Then just flip the Type parameter to Tails and you get this result:

Remember Show Tool shows us the cutout tool. We need to rotate 180 degrees around the X-axis and shift the Position x by -16 mm (material thickness). The tool should now look like this:

Set Show Tool to false and we have our tailboard ready:

You can now join the two boards with the positioning/assembly of your choice:

For half-blind dovetails, just set the thickness of the pin board to 20 mm:

freecad_dovetails_macro's People

Contributors

zisoft avatar

Stargazers

Vanessa avatar Jeff Carpenter avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.