+1 since I do not really need it. But I'd be happy to help in testing if someone implements it.PrzemoF wrote:... But I'm not going to work on it now - I have too many things half-finished to start another one
CLOAD and DLOAD
Moderator: bernd
Forum rules
and Helpful information for the FEM forum
and Helpful information for the FEM forum
Re: CLOAD and DLOAD
Re: CLOAD and DLOAD
I'd also prefer you finished off the many good things already done, before you started my request, just thought I'd mention it so its at the back of the dev's minds.bernd wrote:CalculiX part:
We could get the direction vector for every FemMesh face and use it with CLOAD. What do you think ?!?
The same tool might be useful to easily apply, say, a frictional force to a face, e.g. in a sliding bearing, or wind loading to a building.
I'd also try to help with testing, I'm building FreeCAD from the git sources fairly regularly (even had one tiny pull request merged).
Re: CLOAD and DLOAD
I have a couple of python functions which might useful for the tangential force direction calculation. These are specifically for a torque on a cylindrical surface, but have parts that may be more generally useful (e.g. rotating a vector 90 degrees). They calculate appropriate forces in the X and Y plane for a torque by rotating a vector pointing from the centre of the cylinder to the point on the surface cylinder. I use these in Code_Aster to apply forces like these.
Code: Select all
def torqueFX (tq_total, x, y, Rf, l):
"""
Calculate x component of torque on cylinder surface
tq_total is the applied torque
x and y are locations on the cylinder surface
Rf is the radius of the cylinder
l is the length of the cylinder
"""
Fperarea = tq_total / (2 * pi * (Rf**2) * l);
theta = atan2 (y,x)
# The tangential force is the force pointing in the
# direction of the radial position rotated by 90 degrees.
# To rotate a vector 90 degrees, we can simply replace
# (x, y) with (-y, x)
Fx = -Fperarea * sin (theta);
return Fx
def torqueFY (tq_total, x, y, Rf, l):
"""
Calculate y component of torque on cylinder surface
tq_total is the applied torque
x and y are locations on the cylinder surface
Rf is the radius of the cylinder
l is the length of the cylinder
"""
Fperarea = tq_total / (2 * pi * (Rf**2) * l);
theta = atan2 (y,x)
# The tangential force is the force pointing in the
# direction of the radial position rotated by 90 degrees.
# To rotate a vector 90 degrees, we can simply replace
# (x, y) with (-y, x), so here we return
Fy = Fperarea * cos (theta);
return Fy