# Output x/y position of a knuckle line at a given station

DELFTship forum Hull modeling Output x/y position of a knuckle line at a given station

Viewing 6 reply threads
• Author
Posts
• #35435
Bryan Hansel
Participant

Anyone know of a way to output the x/y position of a knuckle line at the given station into a text file?

I’m attaching a image of the points that I want.

Thanks.

• #35437
michael f. berg
Participant

Dear Bryan,

are you familiar with MS-EXCEL?

Then you could try this:
Put stations (View->Intersections), click on the left most icon, where you want to know the knuckle points. In “Display” switch on only the stations. Then File->Export->DXF 2D Polylines, MARK Create individual files.
Use edit to read and understand what is written in these files.
The DXF-format is readable for humans even if it is very lengthy…

Write a short Basic, Pascal, Java or whatever you like program to convert the DXF-File into a *.TXT having only the co-ordinate information in x,y,z always in one line.

Import this into an EXCEL-table. So f.i. you will have x-values in Col A, y-values in column B, z-values in column C.
In Column E calculate the successive differences of column A. I.e. in E1 you write
=A2-A1, in E2 you write =A3-A2 and FILL the column E downward as longs as there a numbers in columns A,B,C. Then copy Column E to F and to G.
What you have done then is to calculate the tangent vector to your station.
Knuckle point have a JUMP in the tangent, haven’t they?

Now do a similar procedure in column I: I1 contains =E2-E1, I2 contains =E3-E2;
Simply copy column E to I, J and K.
Now you have sort of the second derivative of A,B,C in columns I,J,K.

In column M write the following: In M1 =sqrt(I1^2+J^+2+K1^2). Fill downwards to the end of all numbers. This is the absolute value of the curvature of your station, and it must be big at knuckles and quite small in between.
So column M gives a MARK every where in A,B,C is a knuckle point.

Actually you can also write a second Basic, Pascal or Java program reading in the *.TXT file line by line and -forgetting nearly collinear points- writing only knuckle points to a new *.txt file: Thats what you would prefer, I guess.

Try it and don’t hesitate to ask for more help if necessary.

Kind regards
michaelf

• #35439
Bryan Hansel
Participant

While I appreciate the answer, I’m looking for a way to do it from DelftShip Pro. Back in version 2.6, the program’s export offsets function supplied the knuckle line positions, and I’m wondering if there’s an easy way to do it in the current version of the program.

• #35560
Jamie
Participant

hey there,
i think i am understanding you correctly. there is a function under file>export> stations. if you do this it will send each station offset to a .txt file. it can be a little confusing at first but once you figure out what the numbers are it is very easy to see whats what. the reason it can be confusing is the numbers do not always start in the center of the boat.

there are two rows of numbers the one on the left is your Y axis and on the right is your Z axis. next to those number it will tell you if the point is a knuckle line. thats the easiest way i can think of to find the measurement of a knuckle line at a given station.

using the add station function you can probably find a measurement at any given point along the boat. just create a station at that point. here is a sample .txt file of what you should get from the export stations file

• #35608
robin szemeti
Participant

I just tried importing this offset table into DELFTship, and I get “numeric error” and no model is created.

it looks a perfect format for what I want to do, I could easily create a table like this for my hull, but I can’t get DELFTship to open it …

• #35622
Jamie
Participant

who are you talking to?

• #35624
Marven
Keymaster

I just tried importing this offset table into DELFTship, and I get “numeric error” and no model is created….

That’s because the file is not formatted as a table of offsets…

Viewing 6 reply threads
• You must be logged in to reply to this topic.