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/
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 <ummusaiyidah95@gmail.com 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
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
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/
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/
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 <stonysmith@gmail.com 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
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
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
--
Sent from: http://forum.openscad.org/
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/