Skip to content

3. Computer Aided design

jannuary 30

I did a sketch using paintbrush, a really simple 2D paint/drawing software. With this software you can edit also photos and change them, not only to reduce the canvas as well as to reduce file weights.

Openscad is a simple CAD software very reliable, parametric, easy to use for simple CAD structures. But you can do very complex functional shapes with high accuracy.

The drawbacks happens when the project start to be huge or you need to use simulations or calculations, or even measurements.

Project overview

Dimensions

Features

Security

Openscad

CGS, constructive solid geometry, where its possible to make a complex geometry using primitives with boolean operators.

If you want to start with Openscad, start here and here.

Openscad Rendering

MAC: fn+F5 (Preview) and fn+F6 (Rendering)

Rendering step meaning comment
Compiling design (CSG Tree generation)… Verify de code
Rendering Polygon Mesh using CGAL… CGAL is a software project Acess to efficient and reliable geometric algorithms in the form of a C++ library
Geometries in cache: 55 55 primitives
Geometry cache size in bytes: 9688424 ~10MB
CGAL Polyhedrons in cache: 10 number of Polyhedrons (examples bellow)
CGAL cache size in bytes: 75748224 memory size
Total rendering time: 0 hours, 0 minutes, 0 seconds
Top level object is a 3D object:
Simple: yes
Vertices: 13420 number of vertices
Halfedges: 67292 see pic It doubles the edges
Edges: 33646 number odf edges
Halffacets: 40448 see pic It doubles the facets
Facets: 20224 number of facets (see below)
Volumes: 2
Rendering finished.

In Solid modeling, two schemes are used: CSG and B-rep.

1In CSG, a solid is represented as a set-theoretic Boolean combination of primitive solid objects, such as blocks, prisms, cylinders, or toruses. The class of orientable 2-manifold objects is a popular and well understood class of surfaces commonly used for B-reps

Geometry basic names

this is the image caption

Halfedges

(source: https://doc.cgal.org/latest/HalfedgeDS/index.html)

CGAL represent facets using 2 halffacets, the facet facing to the interior of the volume and the facet facing the exterior, and edges using halfedges, the halfedge facing into the interior of the facet, and the halfedge facing to the exterior of the facet.

this is the image caption

this is the image caption

Polyhedrons

Polyhedral surfaces in three dimensions are composed of vertices, edges, facets and an incidence relationship on them.

The organization beneath is a halfedge data structure, which restricts the class of representable surfaces to orientable 2-manifolds - with and without boundary. If the surface is closed we call it a polyhedron:

this is the image caption

source

Readings that help to understand the upper table:

https://doc.cgal.org/latest/Nef_3/index.html

https://en.wikipedia.org/wiki/Manifold

Open halfspaces

A hyperplane (dashed), its associated open halfspaces (square and round vertices, respectively) and the associated carrier (dotted) in a COM.

source: https://www.researchgate.net/figure/A-hyperplane-dashed-its-associated-open-halfspaces-square-and-round-vertices_fig2_280329937

Boat

$fn=128;
a=100; // altura do flutuador //hull height
r=200; //raio do cilindro //cylinder radius
b=1000;//boca do barco //boat width
c=600; //comprimento do flutuador //lenght
cep=250;//curvatura na popa //Stern curve
m=7;//scale
lmf=10;//scale

//flutuadores //Hulls
translate([b,0,0])mirror()difference(){
intersection(){
scale([1,m,m])cylinder(a,r,r);
translate([0,0,-5000])scale([lmf/2,8*m,8*m])sphere(a);
translate([0,0,5600])scale([lmf/2,8*m,8*m])sphere(a);
}
translate([150,0,400])scale([2,6,1])sphere(150,true);//abertura
translate([-150,0,400])scale([2,6,1])sphere(150,true);
}

difference(){
intersection(){
scale([1,m,m])cylinder(a,r,r);
translate([0,0,-5000])scale([lmf/2,8*m,8*m])sphere(a);
translate([0,0,5600])scale([lmf/2,8*m,8*m])sphere(a);
}//abertura
translate([150,0,400])scale([2,6,1])sphere(150,true);
translate([-150,0,400])scale([2,6,1])sphere(150,true);
}

//cobertura para os painéis solares //solar pannels
difference(){
translate([0,0,-4.7*lmf*a])rotate([0,90,0])cylinder(b,5.3*lmf*a,5.3*lmf*a);
translate([-10,0,-4.745*lmf*a])rotate([0,90,0])cylinder(b+20,5.3*lmf*a-10,5.3*lmf*a-10);
mirror([0,1,0])translate([c-100,-2.5*c,2*a])rotate([0,0,0])cylinder(4*a,c,c);//proa
translate([c-100,-2.5*c,2*a])rotate([0,0,0])cylinder(4*a,c,c);
translate([-15,-5.3*lmf*a,-5.15*lmf*a*2])cube([b+40,2*5.3*lmf*a,2*5.3*lmf*a]);//popa

}

Paintbrush

Photo source: (https://paintbrush.sourceforge.io)

Readings and Useful links

NEXT: furher project 3D Models

I will use 3D Fusion360 for reasons related to calculations and simulation. I will share it at the my sketchfab site

Hull catamaran reference procedure with, Fusion360 forum work flow:

- 1. Create a number of planes which might be sufficient enough to represent the surface
- 2. Create a sketch on every plane that woul represent a cut in this section of the boat
- 3. Use the "Loft" feature in the "Sculpt" environment and select multiple sketches
- 4. Delete the surfaces you would not need and mirror your design

But, I didn’t use it yet. My strategy, for this first Aqua Nostra design, was to use simple steps, like:

    1. Find the upper hull catamaran shape in the real market[1];
    1. Copy the contour and addapt it to the overall dimensions defined: 1200x1000x800mm;
    1. Use the extrude and fillet tools to shape the hull;
    1. Reinforce the structure wth aluminium bars (two), see reference [2];
    1. Include the engine;
    1. Mirror the hull, with the fusion 360 mirror tool;
    1. Draw the platform: error here, I did it based on a sketch that started in the hulls: if you change it, its a problem because all is linked;
    1. Assemble the boat: solar pannel;
    1. Rudder and motors.
    1. Cut transverse parts in Fusion360 to be cutted in a laser in order to reinforce the hulls.

[1] Reference from the market [2] Autonomous Surface Vessels

Simulation

Not totally completed.

  1. I just simulated it on FUSION360 using pressure.
  2. I want to use the Open Dynamics Engine and Modelica (don’t know how yet);
  3. I would like to use also BLENSER, UNITY or Unreal (don’t know how yet).