Hinges - HiStructClient/femcad-doc GitHub Wiki
Since 4.2019, FemCad has possibility to add hinges to beam. The hinge can be fully flexible (Free) or it can have defined stiffness (Semistiff). New hinges are defined via variable FcsHingeHead and FcsHingeEnd in SimpleBeamPartClass.fcs. The basic hinges definitions are:
Fcs.Beam.Hinge.Nx
Fcs.Beam.Hinge.Vy
Fcs.Beam.Hinge.Vz
Fcs.Beam.Hinge.Mx
Fcs.Beam.Hinge.My
Fcs.Beam.Hinge.Mz
Fcs.Beam.Hinge.SemiNx(k[N/m])
Fcs.Beam.Hinge.SemiVy(k[N/m])
Fcs.Beam.Hinge.SemiVz(k[N/m])
Fcs.Beam.Hinge.SemiMx(k[Nm/rad])
Fcs.Beam.Hinge.SemiMy(k[Nm/rad])
Fcs.Beam.Hinge.SemiMz(k[Nm/rad])
Hinges can be added together:
HingeHead := Fcs.Beam.Hinge.Mz + Fcs.Beam.Hinge.My + Fcs.Beam.Hinge.SemiMx(k[Nm/rad])
(if there are two parameters for one direction, the more flexible (weaker) wins).
A few predefined hinges are:
Fcs.Beam.Hinge.None
Fcs.Beam.Hinge.Full - all the rotations are free
Fcs.Beam.Hinge.Bend - only My and Mz are free
Fcs.Beam.Hinge.FreeRotation(bool,bool,bool)
Fcs.Beam.Hinge.Dof.Free
Fcs.Beam.Hinge.Dof.Stiff
Fcs.Beam.Hinge.Dof.Semistiff(double)
Fully optional input of custom hinge can be done through Fcs.Beam.Hinge.General:
FcsHinge_Full := Fcs.Beam.Hinge.General(
Fcs.Beam.Hinge.Dof.Semistiff(25000), # ux
Fcs.Beam.Hinge.Dof.Stiff, # ux
Fcs.Beam.Hinge.Dof.Stiff, # uz
Fcs.Beam.Hinge.Dof.Free, # fix
Fcs.Beam.Hinge.Dof.Free, # fiy
Fcs.Beam.Hinge.Dof.Free, # fiz
)
Hinges are then passed to beam as a optional parameter:
FcsHinges := Fcs.Beam.Hinges{
Head := Fcs.Beam.Hinge.None,
End := Fcs.Beam.Hinge.None,
}
beam {b1} type Frame curve {c1} xsection {cross_section1} hinges (FcsHinges)
There are two predefined shortcuts for beam hinges:
Fcs.Beam.Hinges.None
equals to
Fcs.Beam.Hinges{
Head := Fcs.Beam.Hinge.None,
End := Fcs.Beam.Hinge.None,
}
and
Fcs.Beam.Hinges.Brace
equals to
Fcs.Beam.Hinges{
Head := Fcs.Beam.Hinge.Bend,
End := Fcs.Beam.Hinge.Full,
}
To get info about hinges it is possible to use following bool values where "i" represents index of degree of freedom (see Fcs.Beam.Hinge.General).
hinge.Head.Dofs[i].HasExtreDof returns True for Free or Semistiff
hinge.Head.Dofs[i].NeedsGlobalDof returns True for Stiff or Semistiff
hinge.Head.Dofs[i].HasStiffness returns True for Semistiff