mathematically defined surface

Felix L.

mathematically defined surface

Dear experts,

I have a problem related to the creation of a geometry in Catia V5, more precisely a mathematically defined surface.

I would appreciate if someone could assist me in finding a solution.

Basically, I want to construct a surface which is defined by two guide curves in the XY and YZ planes, respectively. I have uploaded a picture for illustration. The guide curves correspond to spline functions, which have defined tangent angles and radii of curvature at certain points. The draft direction of the surface shall correspond to the Z-axis. The surface is to be generated between the two guide curves in such a way that each intersection between the surface and a plane orthogonal to the Z-axis corresponds to the following mathematical equation: R(α)=2*RΔ(z)*sin(α)^2

Thereby RΔ=R1(z)-R2(z) shall be valid.

According to my understanding, the common features of Catia V5 (Adaptive Sweep, etc.) are not sufficient to generate the surface.

Does anybody have an idea to go about it?

Attachments

  • 1111 (1).jpg (290.9k)

Mikael Roslund

RE: mathematically defined surface
(in response to Felix L.)

Hi Felix!

I would use a multi-sections surface defined by multiple "Curve from Equations". I made an example for you, but with the equation R(α)=R1(z)-RΔ(z)*sin(α)^2 (seems to work better).

Explanation of the method:
- First I create two laws, one for each spline with reference z-axis. From these laws I can use "evaluate" and get the radius at that z-ratio.

- Second I create three laws (x, y, z):
x

let r1 (length)
let r2 (length)
let rd (length)
let a (angle)
let r (length)
r1 = `Geometrical Set.1\Law.1`.Evaluate(z_ratio)*1mm
r2 = `Geometrical Set.1\Law.2`.Evaluate(z_ratio)*1mm
rd = r1-r2
a = 90deg*t
r = r1-(rd*sin(a)**2)
x = r*cos(a)

y

let r1 (length)
let r2 (length)
let rd (length)
let a (angle)
let r (length)
r1 = `Geometrical Set.1\Law.1`.Evaluate(z_ratio)*1mm
r2 = `Geometrical Set.1\Law.2`.Evaluate(z_ratio)*1mm
rd = r1-r2
a = 90deg*t
r = r1-(rd*sin(a)**2)
y = r*sin(a)

z

let m (length)
m = length(`Geometrical Set.1\Combine.1` )
z = m*z_ratio+(0mm*t)


- Third I create a "Curve from Equations" with these three laws.

- Forth I wrap it in a "UserFeature" and instantiate it at different z-ratios and make a Multi-sections Surface from these curves.

Hope that could be of help!

Attachments

  • Part3.CATPart (308.6k)
  • math_surf_curve_equations.jpg (79.5k)
Edited By:
Mikael Roslund[Subscriber Members] @ Mar 10, 2023 - 01:32 PM (Europe/Stockholm)
Mikael Roslund[Subscriber Members] @ Mar 10, 2023 - 08:02 PM (Europe/Stockholm)