Constraint fitting a fixed shape inside a hull

Discussion in 'Boat Design' started by Grant Nelson, Mar 25, 2006.

  1. Grant Nelson
    Joined: Feb 2005
    Posts: 210
    Likes: 12, Points: 0, Legacy Rep: 163
    Location: Netherlands

    Grant Nelson Senior Member

    Hi,

    Using Rhino, I am trying to find the outboard and forward most position for a toilet inside a hull. Is there a way to take my toilet "solid" and dynamically move it around (constrained to a particular height, and sometimes a minimum inside beam position) such that when it "bumps against" the hull (or the inside beam constraint) that I can not move it past the hull?

    If I could set up both a "physical" barrier of the hull, and the inside beam, then I could kind of slide it forward into the "point" that they make, and I would automatically have the optimal position...

    Naturally the same concept could be used for many "fixed shape" objects that one would want to optimally fit into a given space...
     
  2. solrac
    Joined: Feb 2006
    Posts: 138
    Likes: 5, Points: 0, Legacy Rep: 42
    Location: 34'54"35"47S - 56'07"48"98W

    solrac 100% sudaca

    I know it's not the most adequate response, but I always used autocad for that, just a couple of considerations:
    1. use diferent layers for hull/cockpit/deck, etc... so you can "freeze" each layer independantly of the others.
    2. use, name & save different UCS (User coordinate systems) for each entity you will draw.
    3. use the shaded or rendered view, with lines visible, it will help a lot in detecting "passed intersections", to correct, just use the adequate substraction tool. (make an exagerate use of the backup tool for your mental health)
    4. Using the "grips" in combination with the snap settings only to endpoint will help a lot.
     
  3. Grant Nelson
    Joined: Feb 2005
    Posts: 210
    Likes: 12, Points: 0, Legacy Rep: 163
    Location: Netherlands

    Grant Nelson Senior Member

    Thanks Solrac, one 3d application at a time for me... still in the learning curve of moving completely from pencil/pen and paper (and eraser) to various CAD solutions - although I was using AutoYacht for a while in 1987 (!). What you suggest seems to have parallels in Rhino and might be the only solution.. still, I am a hands on kind of person, and I like the idea of a virtual physical solid wall to contrain my movement... so we will wait and see if some of our more brilliant members will jump in...
    Cheers,
    Grant
     
  4. GeoffSChapman
    Joined: Dec 2003
    Posts: 37
    Likes: 0, Points: 0, Legacy Rep: 10
    Location: France

    GeoffSChapman Junior Member

    Orient on curve

    Try one of the new bonus cmds with v3,
    Transform - Orient on curve
    If you move the corner of your object (WC) on to a curve (strake for ex.) you can slide the object along it
    Geoff
     
  5. D'ARTOIS
    Joined: Nov 2004
    Posts: 1,068
    Likes: 18, Points: 0, Legacy Rep: 321
    Location: The Netherlands

    D'ARTOIS Senior Member

    Just a practical hint: a forward/frontal position of toilet or head is the most uncomfortable one, provided you are using it when under power or sail.
    Nowadays (in sailingyachts) shower/toilet cabis are placed more aft and for
    sensible reasons that you might stay on the toilet when using it.
    The forward part of the boat is the one that moves.

    It remembers me on a trip I made: when the weather became bad there was a guy always sitting next to me in the bar of the vessel.
    The bar was located not far of the COG of the boat and movements were minimal there. He said: "when the weather becomes bad, I feel best in the bar"
    not realising why.
     
  6. yipster
    Joined: Oct 2002
    Posts: 3,486
    Likes: 95, Points: 58, Legacy Rep: 1148
    Location: netherlands

    yipster designer

    you can allways simply test render for fit
    in 3d studio it can be done by making objects active as pc games work
    dont know, maybe theres a script for acad or rhino?
     
  7. Grant Nelson
    Joined: Feb 2005
    Posts: 210
    Likes: 12, Points: 0, Legacy Rep: 163
    Location: Netherlands

    Grant Nelson Senior Member

    Thank you all! This is so cool, 2 replys from the Netherlands (homies), one from France, and one from 34'54"35"47S - 56'07"48"98W (Argentina I think).

    Geoff wins 1st place, the orient on curve comes real close to what I need, but its still not quite the "wall" feeling I was looking for.

    I love the story about the Bar... I have to remember that one. Regading the foward location, good point, but its not a problem, as this particular design is for two crusing couples, power, who will stay on protected waters. If it gets rough the can use the bar, which should also be near the COG on my boat ;-)

    And do I understand from Yipster that 3d Studio lets you turn solids into just that, like in a PC game, so you can not pass through them? Interesting.

    Cheers,
    Grant
     
  8. solrac
    Joined: Feb 2006
    Posts: 138
    Likes: 5, Points: 0, Legacy Rep: 42
    Location: 34'54"35"47S - 56'07"48"98W

    solrac 100% sudaca

    34'54"35"47S - 56'07"48"98W, if you check on a chart, is the swimming pool center (XY) of the YCU (Yacht Club Uruguayo), Puerto del Buceo, Montevideo, Uruguay :D :D :D :D
     
  9. Rick Loheed
    Joined: Mar 2006
    Posts: 57
    Likes: 2, Points: 0, Legacy Rep: 16
    Location: Maryland, USA

    Rick Loheed Junior Member

    Move to Surface Intersection

    I have often needed the same functionality, so I wrote one today for surface intersections- it was not to hard. copy this script into a text file, save as maybe MoveToInt.rvb wherever you have your scripts;

    sub MoveToInt
    Dim objecta, objectb, XStep,YStep, ZStep, arrPoint1, arrPoint2, arrSSX
    'Written by Rick Loheed
    'March 26, 2006
    'you may use it as you wish
    'Creates a point or curve at the intersection when found
    'Change True to False at the end of line 26 if you do not wish creation

    'Get Objects
    objecta=rhino.getobject("object to move")
    if isnull(objecta) then exit sub
    objectb=rhino.getobject("object to hit")
    if isnull(objectb) then exit sub

    'initialize step
    XStep = Rhino.GetReal("X Step Interval", -0.010)
    YStep = Rhino.GetReal("Y Step Interval", 0.000)
    ZStep = Rhino.GetReal("Z Step Interval", 0.000)

    'Initialize delta move points
    arrPoint1 = Array(0,0,0)
    arrPoint2 = Array(XStep,0,0)

    'Iterate until an intersection is found
    DO while Not IsArray(arrSSX)
    arrSSX = Rhino.SurfaceSurfaceIntersection(objecta, objectb,, True)
    'reinitialize for next step, put point2 into point1
    arrPoint1(0) = arrPoint2(0)
    arrPoint1(1) = arrPoint2(1)
    arrPoint1(2) = arrPoint2(2)
    'Add step intervals
    arrPoint2(0) = arrPoint2(0) + XStep
    arrPoint2(1) = arrPoint2(1) + YStep
    arrPoint2(2) = arrPoint2(2) + ZStep
    'Move to next position if intersection not found
    Rhino.MoveObject objecta, arrPoint1, arrPoint2
    Loop

    rhino.unselectallobjects
    end sub
     
  10. Rick Loheed
    Joined: Mar 2006
    Posts: 57
    Likes: 2, Points: 0, Legacy Rep: 16
    Location: Maryland, USA

    Rick Loheed Junior Member

    Script

    Hey- anyone tried my script yet? I was thinking maybe someone would find it useful-
     

  11. marshmat
    Joined: Apr 2005
    Posts: 4,127
    Likes: 146, Points: 0, Legacy Rep: 2043
    Location: Ontario

    marshmat Senior Member

    Haven't had a chance to yet, Rick... probably will in a few days. Gotta love Rhino... so many things to tweak, customize and add!
     
Loading...
Forum posts represent the experience, opinion, and view of individual users. Boat Design Net does not necessarily endorse nor share the view of each individual post.
When making potentially dangerous or financial decisions, always employ and consult appropriate professionals. Your circumstances or experience may be different.