Author Topic: KnotMaker  (Read 25548 times)

DerekSmith

  • IGKT Member
  • Sr. Member
  • *****
  • Posts: 1518
  • Knot Botherer
    • ALbion Alliance
Re: KnotMaker
« Reply #15 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 ?

Derek

Michael Ohene

  • Jr. Member
  • **
  • Posts: 11
Re: KnotMaker
« Reply #16 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.

cheers,
Michael

DerekSmith

  • IGKT Member
  • Sr. Member
  • *****
  • Posts: 1518
  • Knot Botherer
    • ALbion Alliance
Re: KnotMaker
« Reply #17 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??

Derek
« Last Edit: September 30, 2009, 09:43:36 AM by DerekSmith »

Jugggler

  • New Member
  • *
  • Posts: 5
KnotMaker -- New knot?
« Reply #18 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?

Thanks,

Jonathan

DerekSmith

  • IGKT Member
  • Sr. Member
  • *****
  • Posts: 1518
  • Knot Botherer
    • ALbion Alliance
Re: KnotMaker
« Reply #19 on: February 03, 2010, 08:42:35 AM »
For those who have not downloaded KM, here is the diagram.

Jugggler

  • New Member
  • *
  • Posts: 5
Re: KnotMaker
« Reply #20 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.


Jonathan

Coding

  • Jr. Member
  • **
  • Posts: 10
Re: KnotMaker
« Reply #21 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
https://www.dropbox.com/s/qket39et7ood0ra/knotmaker.png?dl=0

detailed errormessage in german:
Quote
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 **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8009 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
KnotMaker
    Assembly-Version: 2.2.0.0.
    Win32-Version: 2.2.0.0.
    CodeBase: file:///C:/KnotMaker/KnotMaker.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8008 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.7905 (win9rel.050727-7900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.7905 (win9rel.050727-7900).
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    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 system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

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.