Control points on an arbitrary plane

DELFTship forum Hull modeling Control points on an arbitrary plane

Viewing 8 reply threads
  • Author
    • #35257
      Petter Blix

      Hi all,

      See if I can explain this. I’m trying to create a face where all it’s boundaries lay on a plane. The plane in question is not parallel nor does it have it’s normal parallel to any of the coordinate planes. See attached image.

      The purpose is to be able to use a perfectly flat piece of material without bending it to build the surface.

      How on earth do I achieve this?

    • #35268
      michael f. berg

      Hi Petter,

      it can be done in this world:
      Shortly you have to EDIT–>POINTS–>INTERSECT LAYERS the shiphull in one layer with a properly inclined PLANE in a second LAYER.

      Step by step:
      Try it out with the “NEW” Model:

      Add a second Layer,

      Produce there the rectangle (-2,0,0),(-2,4,0),(5,0,0),(5,4,0).

      TRANSFORM-_>ROTATE…(only the second layer!!)
      Insert for the tranversal axis -10 degrees, for the longitudinal -25 degrees.

      TRANSFORM–>MOVE…(only the second layer!!)
      Insert for the vertical translation 0.55 m.

      Now TOOLS–>SUBDIVIDE CONTROLNET, possibly twice.

      Switch to the coloured Mode. You can see your flat plane now intersecting the hull.
      Adjust it by the proper TRANSFORMS till you like it. Then
      Select insert new points on Layer 0, intersections with layer 2.

      Switch off Layer 1 now. On the hull in Layer 0 you see in yellow the edges of your
      plane intersection.
      First do an EDIT–>EDGE–>CREASE and ESC. The new edges must be red now.

      Then edge by edge delete the internal faces and insert new faces by selecting
      the proper points on the red edges and EDIT–>FACE–>NEW.
      You must then again CREASE the edges of your new flat plane.
      Look at it in chromium plated presentation…

      I hope this was not to lengthy.

      Kind regards= michaelf

      PS: Remember: TRANSFORM–>ROTATIONS always go around the point (0,0,0)!!!

    • #35269
      Petter Blix

      Lengthy is good! It’s a sign it wasn’t a trivial question!

      I have to try it tonight when I get home.

      Thanks Michaelf for your help, really appreciate it.

    • #35271


      one important notice:

      When you intersect two layers. set the accuracy to ‘highest’. I seems, that DS uses the internal edges for the calculation of the intersection lines, and these depend on the accuracy.

      You can easily see this effect, when you intersect the default model (new model) with a horizontal plane at z=1 and insert the new points into the plane. Before, leave the hull as it is, but subdivide the controlnet of the plan several times in order to get a higher accuracy. Then perform the intersect-operation with low and highest accuracy, respectiveley. You will get two different intersection lines.

      Test file is attached.


    • #35272
      Petter Blix

      Hi all,

      I worked on it for many hours last night and finally got it working. I was a little thrown off by the “rectangle” in michaelf’s guide, but finally figured it to be a “box”. I’m not sure if that was what was intended, but it worked.

      I made probably a dozen iterations before I got it right. As I said, all this was done last night, so it took place before kghs’s comment. I’ll take a look at that this weekend. For most of my purposes, medium accuracy seems to work well enough. An interesting and valuable comment none the less.

      Thanks for commenting.

    • #35273
      michael f. berg

      Hi Petter,

      I am happy you succeeded.:)
      By the way:
      When I wrote “rectangle” I meant “rectangle” not “box”. A box consists of six rectangles, of which 5 are not useful for our problem.

      Make layer 1 the active layer to accept the next input:
      Delftship suggests (0,0,0) in the co-ordinate window.
      Insert for x -2
      Delftship suggests (0,0,0) again in the co-ordinate window.
      Insert for x -2
      Insert for y 4
      Delftship suggests (0,0,0) again in the co-ordinate window.
      Insert for x 5
      Delftship suggests (0,0,0) again in the co-ordinate window.
      Insert for x 5
      Insert for y 4
      Look at the four newly generated points in the perspective view
      Keep the CTRL key pressed
      Select in counter clockwise direction the 1st, 2nd, 3rd, and 4th point
      You see a sort of ellipse.
      Select one after another without CTRL the four points and set the corner property in the co-ordinate window.
      Then you have a rectangle, flat and 2 dimensional…

      In intersecting layers
      the first layer, where you want the new points inserted (here layer 0), must have a fine control grid. The fineness of the one where you take the cut from (here layer 1) does not matter.
      This is because only the edges of the first layer are tested where they dissect the faces of the second layer.

      Oh, please, try this as well: I love to be right.:)

      We are learning every day by doing and
      we learn from examples and counter examples and from errors.:lol:

      Kindest regards

      PS: I do the rotations separately first for the x-axis then for the y-axis.
      One funny thing about rotations is: The result depends on what you do first.
      Try it with a dice…

    • #35274
      Petter Blix

      Oh, I see. I tried the points first but couldn’t remember a new face is generated from points not edges – stupid me…

      Anyways, the box worked if only using one face of it. A rookie method, but still. I like your idea better since I finally “got it”. I’m going to try that soon.

      As for the angles and orders, I kept rotating and undoing until it looked right. In fact, I ended up rotating around both axis in the same transform window prompt (-15 and -25 degrees I think). I wonder what the algorithm is as compared to doing them separate and in different orders? No need to answer, just thinking out loud…

      All the best,


    • #35281
      michael f. berg

      Hi Petter:

      If you do it axis by axis the number, you put in, is the angle in degrees and the rotational direction (looking into the direction of the respective axis) is counterclockwise for positive angles.

      If you put in more components at once- say rx, ry, rz- the rotational axis has the direction of the vector (rx,ry,rz). If you look into this direction the rotation will be counter clockwise with the amount sqrt(rx²+ry²+rz²). This (rx,ry,rz) is therefore called an “axial vector”. My 3D imagination is not good enough, so I prefer to do it axis by axis.

      In your case you did a rotation around an axis pointing (-25,-15,0) by an angle of
      sqrt(625+225)=29.15… degrees counter clockwise, OK?

      Have a nice day…


    • #35288
      Petter Blix

      I’ll stick with rotating the axis separate as well. This worked out well. Thanks.

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