Arbitrary law-based curve and surface modeling. Part 2
(Continuation of part1)
Same approach works for surfaces. In this case GeomConvert_ApproxSurface and Adaptor3d_Surface classes should be used in exact same manner.
Below are a few examples of creating law surfaces.
The first case is an example of creating a variable offset surface, where a surface is defined as follows:
S(u,v) = B(u,v) + Offset(u,v) * N (u,v), where
B(u,v) is a basis surface,
N (u,v) is a unit normal to the basis surface,
Offset (u,v) is a function C + u ^ 2 + v ^ 2, where C is constant.
The two below examples apply such offset laws to plane and sphere respectively. The basis surface B is in red, and the resulting surface S – in green.
The other example below demonstrates surface warping, where a planar face is twisted along one of its directions:
Enjoy! :-)
Roman
Same approach works for surfaces. In this case GeomConvert_ApproxSurface and Adaptor3d_Surface classes should be used in exact same manner.
Below are a few examples of creating law surfaces.
The first case is an example of creating a variable offset surface, where a surface is defined as follows:
S(u,v) = B(u,v) + Offset(u,v) * N (u,v), where
B(u,v) is a basis surface,
N (u,v) is a unit normal to the basis surface,
Offset (u,v) is a function C + u ^ 2 + v ^ 2, where C is constant.
The two below examples apply such offset laws to plane and sphere respectively. The basis surface B is in red, and the resulting surface S – in green.
The other example below demonstrates surface warping, where a planar face is twisted along one of its directions:
Enjoy! :-)
Roman
2 comments
Hello Roman,
ReplyDeleteThank you for sharing your technical blog! When I first started exploring OpenCascade, I learned a lot from your articles on topology, geometry, and surfaces — that knowledge was really helpful for my own project development. By the way, my own focus is on energy-based single-surface hole-filling algorithms.
Right now, I’m working on my first demo of a design software for the manufacturing industry. Some of my potential customers expect me to support .x_t as both input and output. Unfortunately, I can’t build such a conversion module on my own.
I remembered that in one of your blog replies, you mentioned that your team has a data conversion module, so I looked up your company and contacted sales. However, I was told that new purchases of CAD Exchanger SDK/Lab are currently suspended due to internal strategy reviews, and only renewals are being processed.
Since this feature is critical for me, I just wanted to ask if there’s any chance of either getting a trial license or purchasing the SDK even under a special arrangement. CAD Exchanger seems like the most suitable solution, and I would prefer to rely on your software rather than trying to reinvent this part myself.
Thanks again for all the valuable knowledge you’ve shared over the years — it has already helped me a lot. And if my message here causes any inconvenience, please accept my apologies.
Best regards,
Dean
Hi Dean, please rich out to me via LinkedIn or personal email. Thanks
ReplyDelete