[Challenge] How to model an oloid?

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
wmayer
Site Admin
Posts: 16649
Joined: Thu Feb 19, 2009 10:32 am

Re: [Challenge] How to model an oloid?

Postby wmayer » Sat Oct 01, 2016 10:30 am

Yes it looks really good. I made a shell and a solid from it. So I got a volume of 654000.0000338121 mm3. But according to the German wikipedia, it should have a volume of
I have tested this against the area and realized that it's slightly too small. The problem must be how OCC creates the ruled surface and we need a way to set somehow the constraint that the line has constant length.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Challenge] How to model an oloid?

Postby NormandC » Sat Oct 01, 2016 12:26 pm

Thanks for your input guys. :)

So as I surmised, it's not an easy problem to solve.
wmayer wrote:The problem must be how OCC creates the ruled surface and we need a way to set somehow the constraint that the line has constant length.
You mean that the distance between one arc and the other should always be equal?

I'm guessing that the distance should always remain 103.923mm on this specific oloid.
FC_oloid_01.png
FC_oloid_01.png (48.44 KiB) Viewed 852 times
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Challenge] How to model an oloid?

Postby NormandC » Sat Oct 01, 2016 12:48 pm

wmayer wrote:we need a way to set somehow the constraint that the line has constant length.
I thought of making a Part Sweep instead of a ruled surface, using one of the arcs as path, and 3 equal length Draft Lines as sweep profiles.

I had previously used only two lines (start and end), but it didn't produce a correct shape.

With three lines, when I create the sweep, POOF! Instant crash. :D
(If I make the arc in a single segment instead of two, there's no crash, but the resulting shape is wildly wrong)

Going the other way, selecting the sketches as profiles and one of the Draft Lines as path, the created shape is not right.

OS: Ubuntu 14.04.5 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6703 (Git)
Build type: None
Branch: releases/FreeCAD-0-16
Hash: 2ce5c8d2e3020d05005ed71f710e09e9aa561f40
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
Attachments
FC_oloid_02.png
FC_oloid_02.png (6.76 KiB) Viewed 849 times
oloid_normandc5.FCStd
(13.47 KiB) Downloaded 10 times
wmayer
Site Admin
Posts: 16649
Joined: Thu Feb 19, 2009 10:32 am

Re: [Challenge] How to model an oloid?

Postby wmayer » Sat Oct 01, 2016 2:35 pm

You mean that the distance between one arc and the other should always be equal?
Yes, that's what the WP article says. So, in other words this means if you start to move the line along the two curves you always find two point pairs on them so that their distances are kept constant. Basically this must be achieved by a certain parametrization how fast you move the lines.

If you load the meshes from the article I referenced, create a shape from them and then measure the edge lengths you will see that they are basically equal (they are not identical because the mesh is only an approximation).
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Challenge] How to model an oloid?

Postby NormandC » Sat Oct 01, 2016 2:38 pm

Maybe what we need is a sweep function that supports more than a single path. Or a loft tool that supports "guide rails", as other CAD programs have. On the other hand that may not produce the expected result either...
wmayer
Site Admin
Posts: 16649
Joined: Thu Feb 19, 2009 10:32 am

Re: [Challenge] How to model an oloid?

Postby wmayer » Sat Oct 01, 2016 6:20 pm

When looking at the OCC API there is e.g. the class GeomFill_Sweep where you can define a "law" function. I assume that with this we could make it more flexible but it's like always with OCC that there are almost no examples or documentation.
ulrich1a
Posts: 1958
Joined: Sun Jul 07, 2013 12:08 pm

Re: [Challenge] How to model an oloid?

Postby ulrich1a » Sun Oct 02, 2016 1:34 pm

NormandC wrote:On the other hand that may not produce the expected result either...
It is already possible to get an improved but still not perfect oloid with the classical FreeCAD sketcher. I made a sketch, which creates more divisions of the 30°-arc but uses the same technique as used by wmayer. So I came to an oloid with 659316.2 mm3 instead of the 659322.2 mm3 as calculated with the magic number from the German Wikipedia.

Ulrich
Attachments
Oloid3.fcstd
(70.31 KiB) Downloaded 22 times
Oloid3.png
Oloid3.png (75.18 KiB) Viewed 792 times
Plue
Posts: 4
Joined: Mon Sep 26, 2016 1:46 pm

Re: [Challenge] How to model an oloid?

Postby Plue » Sun Oct 02, 2016 2:55 pm

keithsloan52 wrote:I found an OpenSCAD version of an oloid at http://www.thingiverse.com/thing:44326 Still seems quite complex looking at the scad file
The file is complex because it contains the code for a half oloid with pegs. The following code, which can be entered directly into FreeCAD, works:

Code: Select all

radius = 20;
$fn=180;
hull() {
    cylinder(r=radius, h=0.0001);
    
    rotate([90,0,0])
        translate([radius,0,0])
            cylinder(r=radius, h=0.0001);
}
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Challenge] How to model an oloid?

Postby NormandC » Sun Oct 02, 2016 4:26 pm

ulrich1a wrote:It is already possible to get an improved but still not perfect oloid with the classical FreeCAD sketcher. I made a sketch, which creates more divisions of the 30°-arc but uses the same technique as used by wmayer. So I came to an oloid with 659316.2 mm3 instead of the 659322.2 mm3 as calculated with the magic number from the German Wikipedia.
As always, very nice Ulrich. :)

Based on my previous idea of using Loft, I extracted the edges from your shape and created a Loft out of them. This gives a very smooth surface with no edges crossing it. Of course, it is no longer parametric.
FC_oloid_loft_profiles_01.png
FC_oloid_loft_profiles_01.png (13.57 KiB) Viewed 778 times
FC_oloid_loft_profiles_02.png
FC_oloid_loft_profiles_02.png (33.91 KiB) Viewed 778 times
Attachments
Oloid_with_loft_normandc1.fcstd
(22.59 KiB) Downloaded 22 times
ulrich1a
Posts: 1958
Joined: Sun Jul 07, 2013 12:08 pm

Re: [Challenge] How to model an oloid?

Postby ulrich1a » Sun Oct 02, 2016 6:54 pm

NormandC wrote:Based on my previous idea of using Loft, I extracted the edges from your shape and created a Loft out of them.
Your approach seems to be even tighter to the requested shape. I got a volume of 659321.6 mm3 from it. This is the best value, I have seen so far.

Congratulations!
NormandC wrote:Of course, it is no longer parametric.
We have to learn now version 0.17. The Part-Design Next has an Icon, that looks like the loft symbol. So combining both approaches in Part-Design Next, it could be parametric! What is missing now, is a parametric version of making shells and solids from faces.

Ulrich