International Guild of Knot Tyers Forum

General => Knot-related Computing => Topic started by: DaveRoot on April 19, 2009, 02:28:23 PM

Title: KnotMaker
Post by: DaveRoot on April 19, 2009, 02:28:23 PM
In the "Another Step Forward" thread there was a discussion of Derek's knot-drawing tool called "FCB" (see (

Derek and I have been modifying the program, and we're now calling it "KnotMaker."  The program and some sample drawings can be downloaded at (

Please share your thoughts, enhancement ideas, bug reports, drawings (*.KM), etc., to help us refine and improve the tool!

Title: Re: KnotMaker
Post by: SS369 on April 19, 2009, 02:45:39 PM
Thank you from at least me for continuing to pursue this !

Title: Re: KnotMaker
Post by: squarerigger on April 19, 2009, 04:50:58 PM
Me also - the site is very clean and well laid-out - thanks for sticking with it! ;D

Title: Re: KnotMaker
Post by: Sweeney on April 19, 2009, 06:09:12 PM
I do really like this program and have had a quick (well all afternoon!) go at a drawing. This was in the discussion at ( and is Ashley #1064 which draws up into a Carrick bend. There are 2 KM files - one shows the start point and the other the finish before drawing up. I think I've got this right but glad of any comments.


Title: Re: KnotMaker
Post by: DerekSmith on April 20, 2009, 08:46:20 AM
Although I am not able to spend much time on knotting at the moment, I really must commend Dave for the stunning improvements he has brought to this little drawing tool.

It is still tiny in terms of memory usage and does not require any tedious installation, I have saved my copy to a USB pen which I carry with me, so I can use it wherever I happen to need it, and of course, it is still free.

Dave has not only added a lot if serious usability improvement like drag-n-drop and file insert, but he has also created a whole raft of diagonal drawing tiles which allow us to get away from the boxy and artificial layout of just having vertical crossings.  We can now draw diagrams which actually look like the knot we are trying to describe.

Hopefully, now it is so easy to diagram the knot or moves you are trying to describe, folks will simply create a diagram and save it as little KM file, then attach it to their post for everyone else to see what they are getting at.

To this end, if drawing knot diagrams is not for you, but you just want to see what the KM file looks like, then again, download the utility and open the file with it and bingo, there is the diagram for you to inspect and comment upon.  You never know, you might even be tempted to have a twiddle and modify the diagram to explain some point or simply to see - what if??  (see the attached KM file - if you cannot see all of the diagram use the Zoom tool Ctrl + F1 or Ctrl + F2 etc to see more of it on your screen )

Have fun and thank you Dave for taking FCB and making such a useful utility for the knotting community to use.
Title: Re: KnotMaker
Post by: Sweeney on April 20, 2009, 06:04:52 PM
Nice to hear from you again Derek and thanks for improving the drawing.  You're spot on - Dave has produced a really useful program in a very small space and it works (lessons for Microsoft here!). The only enhancement which I can suggest at present is the option to draw with solid lines (this may have been tried and doesn't look so good perhaps??). I attach my latest effort - the Zeppelin Bend in 3 drawings in one file so viewers will need to zoom to see it all. I'm fairly sure that this works but equally sure that the layout could be improved (I thought I could build it by starting from the Alpine Butterfly Bend but I should have known better - they are markedly different). I can see a real danger here that drawing knots will become as addictive as tying them - fortunately my laptop won't fit into my pocket like a length of cord does.

Title: Re: KnotMaker
Post by: DerekSmith on April 21, 2009, 07:43:10 AM
Or alternatively...

Title: Re: KnotMaker
Post by: Sweeney on April 21, 2009, 09:13:38 AM
That's better! I think in future I'll sketch the knot diagram on paper first and then try to draw it.

Title: Re: KnotMaker
Post by: DaveRoot on April 21, 2009, 11:31:34 AM
Derek had a great idea when he wrote this program, and I have had fun adding some new features!  :D  It's not always easy (or possible) to take pictures of knots and post them to forums, so the KnotMaker tool is a handy way to create pictures which enhance the written descriptions of how to tie knots. 

BTW, KnotMaker can also save drawings as .BMP files, or it can copy drawings to the Clipboard.  Programs such as MS Paint can convert the pictures to .JPG files which can be attached to forum posts.

Title: Re: KnotMaker
Post by: TheTreeSpyder on April 22, 2009, 12:55:37 PM
Very great contribution fellas!  i'm thinking the indivual pix could be maid into a slide show, or even converted to gif, to then animate etc.
Title: Re: KnotMaker
Post by: DaveRoot on April 27, 2009, 02:57:06 AM
There is a new version of KnotMaker at (

Here are the new features:

1. When you hold down the Alt key and right-click a "crossing" tile in the drawing grid, that tile's "Main" and "Behind" colors will be swapped.

2. The "Individual Ropes" panel (under the "Tools" menu) has a new checkbox called "Show All Spars/Poles."  Selecting this checkbox will show all of the spar/pole tiles, and unselecting this checkbox will remove all of the spar/pole tiles.

3. Under the "Tools" menu there is a new menu item called "View With KnotTyer3D."  KnotTyer3D is a free program which animates a knot and enables you to drag the knot to view it from any angle (see (  The "View With KnotTyer3D" menu item will pop up a window which allows you to specify the location of KnotTyer3D.exe on your machine, and lets you choose a filename for exporting your drawing to the KnotTyer3D format.  When you click the "Run KnotTyer3D" button then your drawing will be exported to the .KT3 filename that you specified, and KnotTyer3D will be executed to animate your knot.  Keep in mind that KnotTyer3D can't display more than three ropes, and it won't recognize your spar/pole tiles, and it won't recognize the colors in your drawing.  To tie a knot around a "pole" in KnotTyer3D, simply draw the knot so that it is tied around another rope (instead of using spar/pole tiles).

4. On the Tool Panel there is a new checkbox called "Direct Draw."  Selecting this checkbox allows you to directly draw sections of rope simply by clicking the beginning and ending points in a grid cell.  For example, click the top left corner of a grid cell, and a black square will appear to show where you clicked.  If you click the bottom right corner of the same grid cell then a diagonal section of rope will be drawn from the top left corner to the bottom right corner.  All of the tiles can be drawn in this way except for the Working End tiles, the Standing Part tiles, and the solid Spar/Pole tiles.

Very great contribution fellas!  i'm thinking the indivual pix could be maid into a slide show, or even converted to gif, to then animate etc.

Check out the KnotTyer3D animation described above!

Title: Re: KnotMaker
Post by: DaveRoot on May 01, 2009, 11:46:06 PM
I went through my page of single-loop knots ( ( and made diagrams of the knots on that page.  The new diagrams (dated May 1, 2009) can be downloaded at: (

Let me know if you find any errors!

Title: Re: KnotMaker
Post by: SS369 on May 03, 2009, 12:23:33 PM
This is so great! I am looking forward to the ability to scroll the drawing if that is still on the to do list.
Thanks for this great piece of work from you both!

Title: Re: KnotMaker
Post by: DaveRoot on May 31, 2009, 08:08:18 PM
There is a new version of KnotMaker at (  Here are the latest modifications:

-- New feature: Scrollbars.

-- Enhancement: The "Direct Draw" feature will anticipate your next click, making it easy to draw a continuous rope using single clicks.

-- Bug fix: The "File/Save As BMP" menu item will now prompt you to overwrite the file if it already exists.

-- Bug fix: When you click "File/New" followed by "File/Insert" then the "File/Save As BMP" and "Edit/Copy To Clipboard" and "Tools" menu items will be enabled.


Title: Re: KnotMaker
Post by: Michael Ohene on September 27, 2009, 09:46:26 PM
Thoughts on automating the graphics based on your knot notation:

2. Another graphical knot program is KnotMaker ( (, which Derek Smith and I wrote.  KnotMaker is tile-based, meaning that the user draws a knot by placing pre-defined 2D tiles onto a drawing grid....  (if you can figure out the appropriate conversion steps)....  Edit: The attached KnotMakerTiles.jpg file shows all of the pre-defined KnotMaker tiles and their tile numbers, in case you want to make an attempt to figure out how to convert your notation to the appropiate KnotMaker tiles.

Hello Dave, I think I have discovered a slight limitation with KnotMaker. KnotMaker doesn't seem to have a method for making angles other than +/- 45,90,0,180  o. For instance, ABoK#1693, if you have a rope on a bar/object that has two ropes cross at approximately -40o and 50 o.

On the same note, I see your tile set can be generated by permutations of two x,y coordinates pairs of (0/0.5),(0/0.5/1) and (0.5/1), (0/.05/1)  on a unit square. For example:
Tile  # : x1,y1          x2,y2
Tile 39: 0.5, 0.5 and  1,1
Tile 11: 0.5,0 and 1,0.5

But these permutations used in KnotMaker limit the angles that can be formed to +/- 45,90,0,180 o. Therefore, I was thinking about a recommendation of:
Having the tiles be generated by a continuous set of numbers (0 through 1) to allow weirder angles to be formed (e.g. 32 o) as opposed to only using 0, 0.5, and 1.

Title: Re: KnotMaker
Post by: DerekSmith on September 29, 2009, 10:07:36 AM
Hello Michael,

I guess that you have not followed the development of this little drawing utility.  In its early days known as FCB, this was the extent of our tile set


and with it we were limited to diagrams such as this


But thanks to Dave's input he has exploded the tile set to include corners and corner side (knight move) variants.

Your ideas are excellent - do you have any programming skills in Delphi to help take KnotMaker to the next level ?

Title: Re: KnotMaker
Post by: Michael Ohene on September 30, 2009, 12:12:18 AM
Hate to be a theoretician, but I do not know Delphi.
I know C programming, so I do programming in languages that have a similar syntax as C: PERL, MATLAB/Octave.
I use MATLAB/Octave a lot. I am currently writing code for a side project to map knot movements based on notation. My aim is to get that code to serve as an automation technique to draw knots. The first stage is to map the actual rope locations (analog), the next step is to convert the rope locations to discrete positions; this is where tiles would come into play. 
Therefore, I have some ways to go before I deal with the actual tiles; maybe two to five weeks, but I will definitely join in at some point.

Title: Re: KnotMaker
Post by: DerekSmith on September 30, 2009, 09:43:04 AM
Hi Michael,

Dave did not have any Delphi experience before he joined in, but as Delphi is an object oriented language, it was very easy for him to pick up and he was enhancing the program within just two weeks.

The whole of the project at the moment, is 2D with an inference of a third dimension by use of the crossing tiles.  However to move forward, the whole concept must be able to represent a knot in 3D in order to be able to make the next move which is to map the forces involved when the knot goes into load.  Only when we reach that point will we be able to study the workings of a knot - how it holds, how its shares the load, where its stress and strain points are.

We had just reached the point in moving from 'tile' representation to the edge vector notation you have proposed with a drawing algorithm to connect selected edge vectors, and from this point it is a relatively small step to move from four square faces to twelve cube faces and creating the all important Avoidance function where two or more cord segments share the same cube.

The Avoidance function become critical when thickness variation is added in so as to force the knot to take up its dressed and set 3D structure.  At that point we will have to allow forces within the expanding knot to move face vector points in response to those forces.  Then we lill need some 3d graphics to allow us to 'fly' inside the knot to visualise the structure the knot takes up when working.

Sure you don't fancy adding Delphi to your skills list??

Title: KnotMaker -- New knot?
Post by: Jugggler on February 02, 2010, 09:32:31 PM
Hi Dave & Derek,

Just discovered Knotmaker. Love it! I taught myself to use it and put on record a knot that I created some time ago but has just been in my head. I call it the Bull Hitch. There's an easy and fast way to tie it. It is secure, and just gets tighter when jiggled, and it's easy to untie.

Please see the attached file I made in Knotmaker. Is this a known knot?


Title: Re: KnotMaker
Post by: DerekSmith on February 03, 2010, 08:42:35 AM
For those who have not downloaded KM, here is the diagram.
Title: Re: KnotMaker
Post by: Jugggler on March 13, 2010, 07:00:26 PM
Update: I just discovered that there is already a knot called the Bull Hitch. I'll have to figure out a new name.

In any case, this hitch is much easier to tie than it looks from the diagram. Here's how I tie it:

Form a bight and loop it around behind the object you're hitching to. Pull the working end up through the bight. Taking the working end around behind the standing part, and then under the left leg of the original bight, and finally ruck it under the right leg of the original bight. To untie, undo the last two tucks and the whole thing falls apart.

I don't know about lasting knot fame, but it's a hitch I find useful, and my seven year old daughter can tie it with her eyes closed.

Title: Re: KnotMaker
Post by: Coding on October 03, 2017, 12:06:37 PM
Does this tool work for anyone with Windows 8.1?
When I create the most minimal example and try to "Save as" instead of a pathselectiondialog i just get an errormessage that the path has an invalid format...

However this error does not occur if i load a knot, edit it and try to save it as... so in general i can use the program with some workarounds

screenshot (

detailed errormessage in german:
Informationen ?ber das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.ArgumentException: Der Pfad hat ein ung?ltiges Format.
   bei System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
   bei System.IO.Path.NormalizePath(String path, Boolean fullCheck)
   bei System.IO.Path.GetDirectoryName(String path)
   bei KnotMaker.MainForm.SaveADrawing_1(String filename, String action)
   bei KnotMaker.MainForm.FileMenuItems_Click(Object sender, EventArgs e)
   bei System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   bei System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   bei System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   bei System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   bei System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   bei System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   bei System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   bei System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ToolStrip.WndProc(Message& m)
   bei System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Geladene Assemblys **************
    Win32-Version: 2.0.50727.8009 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
    CodeBase: file:///C:/KnotMaker/KnotMaker.exe.
    Win32-Version: 2.0.50727.8008 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/
    Win32-Version: 2.0.50727.7905 (win9rel.050727-7900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/
    Win32-Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/
    Win32-Version: 2.0.50727.7905 (win9rel.050727-7900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/
    Win32-Version: 2.0.50727.8009 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

    < jitDebugging="true" />

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.