Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

najihah
Hello.

i have a lines plan of a ship hull. then i would like to re-modelling the
ship hull in FreeCAD OpenSCAD by using hull operation. since there is no
manual to modelling ship hull in FreeCAD from given lines plan.

i would to ask an opinion and suggestion or any guidelines or any past
experienced in using FreeCAD OpenSCAD using hull operation?




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

frankv
If you define each of hull crosssections as a polygon in 3D (e.g draw each as a polygon in 2D in XY, then translate to right Z position), you could then do a hull() operation. But that would result in straight lines from one profile to the next.

On Thu, 20 Dec 2018, 12:37 PM najihah <[hidden email] wrote:
Hello.

i have a lines plan of a ship hull. then i would like to re-modelling the
ship hull in FreeCAD OpenSCAD by using hull operation. since there is no
manual to modelling ship hull in FreeCAD from given lines plan.

i would to ask an opinion and suggestion or any guidelines or any past
experienced in using FreeCAD OpenSCAD using hull operation?




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

stonysmith
In reply to this post by najihah
I found that the tricky part is that that the different slices have different
numbers of vertexes, so you end up with odd faceting in the final product.
The only choice would be to raise the number of vertexes on each slice.

Using hull() is also a bit tricky because you need to do it across each pair
of slices, not across the entire set of slices.



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

najihah
In reply to this post by frankv
Hi Frankv.

Thank you for your respond. i have done this method before in AutoCAD
software. but at the end of operation i had a difficulties in lofting the
ship surface. After done the lofting process, when i want to import in
OpenFOAM or ANSYS software for simulation, it say that it not in one solid
body.

Here is the figures of the ship hull that i have been done in AutoCAD.

<http://forum.openscad.org/file/t2430/ship_hull.jpg>
<http://forum.openscad.org/file/t2430/MTC092_ship_hull.jpg>




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

frankv
In reply to this post by stonysmith
Actually, if it was me I'd do it in OnShape.com. Probably most other CAD software would work, but OnShape is what I am familiar with. Generate each crosssection as a spline curve and a straight line across the top. Then use the Loft function to generate the 3D solid.

On Thu, 20 Dec 2018, 3:08 PM stonysmith <[hidden email] wrote:
I found that the tricky part is that that the different slices have different
numbers of vertexes, so you end up with odd faceting in the final product.
The only choice would be to raise the number of vertexes on each slice.

Using hull() is also a bit tricky because you need to do it across each pair
of slices, not across the entire set of slices.



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

Parkinbot
In reply to this post by najihah
Note that hull will always give you a convex result. It depends on the form,
whether hulling is eligible.

I guess the technique you are heading for is to extrude over a series of
polygons. OpenSCAD has no native support for this, but there are libraries
that can be used: search for "sweep()" and "skin()".
sweep(), at least the version in my  Naca_sweep.scad
<https://www.thingiverse.com/thing:900137>   library, expects all polygons
in the series to have the same number of vertices. skin() does not have this
restriction.
It is usually a good idea to also use an interpolation scheme like  nSpline
<https://www.thingiverse.com/thing:1208001>   to refine the polygons and the
polygon series before doing the sweep.

Note that these libraries don't check for
- the right winding order of the polygons. If your result shows only pink
faces in F12 view you have to reverse the vertex order.  
- self intersections and mutual intersections of polygons. If your result
shows some areas with pink faces in F12 view this indicates self
intersections. While this is no problem in F5 view, you won't be able to do
a valid STL export or Boolean operations with F6.




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: Remodelling ship hull in FreeCAD OpenScad by using hull operation from given lines plan.

shadowwynd
In reply to this post by najihah
Most 3D programs can do a loft/sweep/skin between "ribs" or profiles.

Rhino3D, Strata3D, AutoCAD, SolidWorks, Blender, TurboCAD, FreeCAD, Fusion
360, etc. all have ways of doing this.  OpenSCAD does not have a native way
(someone may have done it) to do this elegantly.  ... meaning you can
certainly do this in OpenSCAD, just not elegantly.

In Rhino, for example, you can define your ribs,then determine if the
resultant shape is curved / seamless, angular (like a polyhedron), etc.

For a traditional boat, the  cross-sectional ribs have both convex and
concave elements (such as where the keel meets the ribs, the interior
cavity, etc.), which doesn't work with OpenSCAD hull().   If you look on
thingiverse you can find some OpenSCAD lofts and things like the NACA
airfoil sweep that are different approaches to this.

If you wanted to do this purely in stock OpenSCAD, you would need to do
create profiles separately for the interior and exterior points and
difference the outer hull from the inner hull, like this:

rib1_outer = [[0, 10], [ 20, 10], [25, 0], [25, -5], [15, -15], [10, -16],
[5,-20], [0, -25] ];
rib2_outer = [[0,10], [10,10], [15,0], [10,-10], [0,-15]];

rib1_inner = [[-1,10], [18,11], [23,0], [23, -5], [13,-13],
[5,-16],[-1,-18]];
rib2_inner = [[-1,11], [8,11], [13,0], [8,-8], [0,-13]];


module profile(points)
{
    linear_extrude(1)
    {
        polygon(points);
        mirror([1,0,0]) polygon(points);
    }
}

module outer_hull()
{
   
    hull()
    {
        translate ([0, 30, 0]) rotate ([90,0,0]) profile (rib1_outer);
        translate ([0, -30, 0]) rotate ([90,0,0]) profile (rib1_outer);
       
        translate ([0, 60, 0]) rotate ([90,0,0]) profile (rib2_outer);
        translate ([0, -60, 0]) rotate ([90,0,0]) profile (rib2_outer);
       
        translate ([0, 80, 0]) sphere (5);
        translate ([0, -80, 0]) sphere (5);
       
    }
}

module inner_hull()
{
   
    hull()
    {
        translate ([0, 30, 0]) rotate ([90,0,0]) profile (rib1_inner);
        translate ([0, -30, 0]) rotate ([90,0,0]) profile (rib1_inner);
       
        translate ([0, 60, 0]) rotate ([90,0,0]) profile (rib2_inner);
        translate ([0, -60, 0]) rotate ([90,0,0]) profile (rib2_inner);
       
    }
}

difference()
{
    outer_hull();
    inner_hull();
}

<http://forum.openscad.org/file/t486/boat.png>




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org