Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
2. Need support? Ask a question to our Community Support category.
3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
4. Be respectful, on topic and if you see a problem, Flag it.

If you would like to contact our Community Manager personally, feel free to send a private message or an email.

# Fresnel Lens 3D model (rotationally symmetric spherical surfaces with a maximum sag from plane)

Member Posts: 2 EDU
Hello, I am a very new user to OnShape and CAD in general, so bear with me as I try to explain what I am attempting to do.

Firstly, a Fresnel lens is essentially a convex or concave lens with a defined thickness for each surface which when reached, the function defining the surface is set back to zero (essentially the modulo function).
The above image is an example of what I mean, where the curvature of the lens (red line) is kept, but it has much a much lower thickness (blue line).

The blue line above is what I would like to somehow model/import in this software, rotate around the central point (0,0) in order to make a Fresnel surface, which I would imagine is possible considering it is rotationally symmetric, then fill in the surface to make it a solid object connected to a circular plane.

This is a model I have done by just exporting it from the design software as .stp file and importing to here, but if you just compare the surface of this model to the above graph, you'd notice that the steps don't exactly line up and that the original design software can't accurately model what we need.

So what I have been trying to do is using the function defined above in the first figure to write different points for vertices to be used in SkFitSpline and then somehow rotate that into a 3d surface, but I can't even get the SkFitSpline to properly work. I'm wondering if there is a way to just write a circular formula with a modulo function (like I did in Matlab) directly in OnShape to create the profile of the surface and rotate that or if there is some better way to do what I've been describing.

Essentially I just want to recreate the second image (there is a mirrored surface on the other side of the model that is same as the top surface but cannot be seen) but with the each successive ring being less wide (for lack of better words) and match the figure above.

If anyone could help that would be greatly appreciated. I can provide more information as needed.

• Onshape Employees, Developers, HDM Posts: 992
You can do this the way you described using multiple skFitSpline calls, but you'd have to solve for the exact positions of the edges.  Here's a way of doing this using existing custom features (parametric curve and measure distance) and a slightly fancy use of feature pattern:
The pre-modulo equation goes into the Z component of the Parametric Curve feature (second feature from the top)
The number of slices is controlled by the #Count variable.

Hope this helps.
Ilya Baran \ Director, Architecture and FeatureScript \ Onshape Inc
• Member Posts: 1,017 ✭✭✭✭✭
edited December 2017
i used a conic curve with rho=0.5 as lens profile (it should be parabola i think) and my custom FS Parameter pattern, (i think it might be replaced by built in feature pattern)