[Challenge] How to model an oloid?
Forum rules
and Helpful information
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!
Also, be nice to others! Read the FreeCAD code of conduct!
[Challenge] How to model an oloid?
Here's a shout to the experts in weird geometries. (this kind of stuff is not my forte)
Someone on another forum was asking how to model an oloid.
https://en.wikipedia.org/wiki/Oloid
Here's the best I could come up with by creating a face between wires (EDIT: could have used a Part Loft between sketches, would have been parametric) then mirroring on two planes and creating a shell then a solid. But it's not a true oloid.
P.S. I'm sure someone will reply that this can be done easily in OpenSCAD with the convex hull function but the goal here is to make it in FreeCAD with GUI tools if possible.
Someone on another forum was asking how to model an oloid.
https://en.wikipedia.org/wiki/Oloid
Here's the best I could come up with by creating a face between wires (EDIT: could have used a Part Loft between sketches, would have been parametric) then mirroring on two planes and creating a shell then a solid. But it's not a true oloid.
P.S. I'm sure someone will reply that this can be done easily in OpenSCAD with the convex hull function but the goal here is to make it in FreeCAD with GUI tools if possible.
- Attachments
-
- oloid_normandc1.FCStd
- (157.87 KiB) Downloaded 89 times
Last edited by NormandC on Fri Sep 30, 2016 2:59 am, edited 1 time in total.
Re: [Challenge] How to model an oloid?
It's like four oblique circular cones gathered together, but there's some blending of faces involved.
I'm wondering if the OCC kernel allows to make something like that...
And I was supposed to turn in early...
I'm wondering if the OCC kernel allows to make something like that...
And I was supposed to turn in early...
- Attachments
-
- oloid_normandc2.FCStd
- (14.69 KiB) Downloaded 94 times
Re: [Challenge] How to model an oloid?
intersting shape!!
Re: [Challenge] How to model an oloid?
I'm wondering if it could be done by FreeCAD CADQuery ...NormandC wrote: Someone on another forum was asking how to model an oloid.
https://en.wikipedia.org/wiki/Oloid
P.S. I'm sure someone will reply that this can be done easily in OpenSCAD with the convex hull function but the goal here is to make it in FreeCAD with GUI tools if possible.
Re: [Challenge] How to model an oloid?
The German wikipedia article is a bit more informative since it gives some construction tips. You start with two arcs of circle with an angle of 240 degree. Since you have to make a ruled surface that starts in the middle of one arc it's best to split both arcs in two arcs so that you have altogether four.
Afterwards for each section you make a ruled surface so that you have four of them and join them together. Unfortunately, the shape is not fully correct because the article says that the shape is the convex hull and thus of course must be convex. However, you can clearly see (if you look along the X axis) that the shape is not convex.
The problem here is the way how the ruled surface is created. The article says that the line out of which you create the ruled surface has constant length but the OCC function to create the surface doesn't allow to define constraints. Maybe OCC offers a lower level function that allows this.
In the English article this site is referenced which contains C++ code to create a mesh and some meshes of different resolutions. When you load one with the lowest resolution and switch two wireframe mode you get an idea how the ruled surface should be parametrized.
Afterwards for each section you make a ruled surface so that you have four of them and join them together. Unfortunately, the shape is not fully correct because the article says that the shape is the convex hull and thus of course must be convex. However, you can clearly see (if you look along the X axis) that the shape is not convex.
The problem here is the way how the ruled surface is created. The article says that the line out of which you create the ruled surface has constant length but the OCC function to create the surface doesn't allow to define constraints. Maybe OCC offers a lower level function that allows this.
In the English article this site is referenced which contains C++ code to create a mesh and some meshes of different resolutions. When you load one with the lowest resolution and switch two wireframe mode you get an idea how the ruled surface should be parametrized.
- Attachments
-
- oloid_wmayer1.FCStd
- (20.26 KiB) Downloaded 122 times
Re: [Challenge] How to model an oloid?
something to read
http://www.geometrie.tuwien.ac.at/stachel/jgg0113.pdf
this looks good, but I don't think it's a real oloid:
https://www.youtube.com/watch?v=OPCNxHy3Tg0
http://www.geometrie.tuwien.ac.at/stachel/jgg0113.pdf
this looks good, but I don't think it's a real oloid:
https://www.youtube.com/watch?v=OPCNxHy3Tg0
Re: [Challenge] How to model an oloid?
Now it looks like a correct oloid. When splitting the arcs at 90 degree and adding a second one with 30 degree then later the ruled surface function seems to create correct surfaces.
- Attachments
-
- oloid_wmayer2.FCStd
- (23.45 KiB) Downloaded 234 times
-
- Veteran
- Posts: 2756
- Joined: Mon Feb 27, 2012 5:31 pm
Re: [Challenge] How to model an oloid?
I found an OpenSCAD version of an oloid at http://www.thingiverse.com/thing:44326 Still seems quite complex looking at the scad file and of course if one loads onto FreeCAD you just get a mesh https://www.dropbox.com/sh/zrm51sctaew0 ... KNVEa?dl=0 ( File too large so used Dropbox ) So I think its FreeCAD 2 OpenSCAD 1
Re: [Challenge] How to model an oloid?
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 ofwmayer wrote:Now it looks like a correct oloid.
Code: Select all
>>> 60**3*3.0524
659318.4
I think, one has to calculate paths for the ruled surface, where it is possible to move each path in a linear way to create the rules of the surface. But this is a real mathematical challenge.
Ulrich
Re: [Challenge] How to model an oloid?
Although the task isn't about using python I had to try it.
even with python it's not so easy to create a nice face of the oloid. (the interpolation isn't very good at one edge. math is from the pdf posted above.
even with python it's not so easy to create a nice face of the oloid. (the interpolation isn't very good at one edge. math is from the pdf posted above.
Code: Select all
from numpy import sin, cos, sqrt, array, linspace, pi
import FreeCAD as App
import Part
num_points = 100
t = linspace(0, pi * 2. / 3., num_points )
A = array([sin(t), -0.5 - cos(t), 0 * t]).T
B = array([t * 0., 0.5 - cos(t) / (1. + cos(t)), sqrt(1. + 2 * cos(t))/ (1. + cos(t))]).T
D = Part.BSplineSurface()
D.interpolate([[App.Vector(*v) for v in A], [App.Vector(*v) for v in B]])
Part.show(D.toShape())