Making an Add-on for Precision Drawing Tools (CAD)

this is great news! You are so awesome! Super awesome!


You are so kind, I hope my Add-on lives up to expectations! :grin:

I have solved a problem with the Intersect command whereby in maybe 1% of cases, a segmentation violation was recorded if one of the vertices in the bm.select_history was deleted. This was cured by clearing the history before removing doubles, same applies to other functions that might remove a vertex recorded in history.

I have also added a Maths function (m, or M input) to the command line with the results posted to the system variables X_Delta, Y_Delta, Z_Delta, Distance, Angle and Percent.

So a command of mx0.5**(1/12)*0.85 would set X_Delta to 0.802293m - useful if you are calculating the position of frets on a guitar of 85cm bridge length (this sets the first one). The result is 0.85 times the 1/12th root of 0.5, the second fret would be calculated by entering mx0.5**(2/12)*0.85 and so on to the twelfth fret. Well you never know, someone, other than me, might use this…

This model actually plays the guitar from a MIDI file.

Another example is madegrees(atan(3/4)) - returns the smaller angle of a 3,4,5 right-angle triangle as 36.8699 degrees to the system Angle variable.

I need to test all these modifications more thoroughly before I upload a new version to my GitHub.

Cheers, Clock. :cocktail:


I’m trying your addon, really cool. But one question…

Actually it only works in edit mode?

No, many options also work in Object mode, so to move an object 20 units at 37 degrees, set the distance and angle variables, select one object and click Direction command. If a command is not available in any mode, you will get an error message, otherwise it works!

Things like Intersect work in object mode if you have four objects selected, then all the operations with the exception of say Extrude, New Vertex, i.e. those which can only operate on Vertices, will not be available.

I have built some help pages on my website that will help you, but they are not complete yet.

Thanks for the comment, Clock.


Great to see how far along this is!

Feature request:
It would be nice if one could select two edges (instead of 4 vertices) to intersect.

Since there’s room it would be nice if the plane drop down also included the axis. i.e. Top(XY), Right(YZ), Front(XZ).

Great work!

1 Like

I did this yesterday, it will be in the next release.

I am happy to mod the plane drop down as you suggested, that will also be in the next release.

You have the choice of either two edges, or 4 vertices as your lines might not be edges.

Cheers, Clock.

This is brilliant.

Would you be open to doing videos to accompany your written tutorials?

If you are, you would probably need some sort of capturing software which shows both button and mouse clicks to help people understand the keyboard shortcuts you use.

This could end up being a godsend to hobbyists everywhere.

Cheers from .dk


I tried this once before, ended up swearing because I forgot the script! I will try again some time when I am not so busy with my glider inspection. Does anyone have recommendation for capture tools on a Mac, or I could do this on my Ubuntu machine, if I can find my microphone, Mrs. Clockmender took it off me on account of my bad language! :rofl: I will reply to your PM shortly.

@JJones here is the new Plane Selector - it will be in the next release.


I have also corrected a minor bug in the Set A/D tools when working in Object mode - I had deleted a line of code that was still required!

I will put together a table of what commands are available in Edit and Object modes shortly to clarify what is possible now and what is not. I intend to make some more options available for a later release, but have frozen development until I have a stable release.

Thanks to all for kind comments and support here!

Cheers, Clock.


Hi Clock! this is now on the PDT Main Help page and below:

Cheers, Clock.

PS. Can I ask that any Issues, or Feature Requests are made on my GitHub for this project, that way I can keep better track of them - thanks!

1 Like

Given the size of that (rather useful) table, it might make sense to colour code the Yes/No boxes with light green (Yes) and light red (No) backgrounds for readability’s sake?

1 Like

Good Idea!

Cheers, Clock.


Minor changes to the system:

Isometric View added - sets view orientation to what a draughtsman understands as an Isometric View…

I have also added a load of Docstrings to the code, but need to work on these with the help of @ermo who has kindly offered to help with this project, inputting his considerable talent and long experience with Python and more modern programming techniques.

New Official Release planned for this weekend, but many changes are already committed to the GitHub. I will update the PDT website once we have the release available.

Cheers, Clock.


Just wanted to clarify that I don’t necessarily agree with the “considerable talent” characterisation. So far, my contributions have mostly been of “janitorial” character. :sweat_smile:


I disagree, your input is invaluable in getting my code up to modern, acceptable standards! :grin:

BTW the rotation to Isometric is easy, simply do this:

View_Rotation = Quaternion((0.8205,0.4247,-0.1759,-0.3399)) :rofl:

Work is on-going to get the Docstrings in place, then we will release version 1.1.4.

Cheers, Clock. :cocktail:


I’d like to incorporate some of the TinyCAD features (XALL, E2F, BIX), does the author of said Add-on have any objections? I don’t seems to be able to find contact details for him…

1 Like

@clockmender i see tinyCAD was archived project from his owner, you have try to contact he from


I have now tried, let’s see what happens… Thanks!

1 Like

Thanks to @zeffii.

Had a nice reply and permission to incorporate these functions into PDT - should be ready in a couple of weeks, depending on my current workload (I still have to finish my glider inspection and a shed load of related paperwork).

Cheers, Clock. :cocktail:


TinyCAD Functions now built in, but I need to change some things in the code still:

You can see various examples of the jobs these do in this image. They are planned for release 1.1.5 - after we finish all the planned work on the code for 1.1.4. The new bits are under Tools and are Intersect All, Bisect & Edge-Face. These are particularly for Architects, but useful to all Precision Modellers.

Cheers, Clock. :cocktail:


your project starts to enter the interesting phase … I love when these magic begin to appear.

1 Like

For additional inspiration, and for hmm… more intuitive(?) input, see what this author is doing:

It’s not very featureful in the precision CAD sense just yet but honestly it’s more akin to what I was thinking should/would eventually be possible.

A good set of gizmos and input mechanisms would remove the need for the some of the input box/button explosion above (and the need to work in the sidebar rather than viewport). Imagine being able to interactively type the angle between 2 edges for example and having a widget that shows the direction of rotation that you can drag if you want etc. etc.