NaxToPy.Modules.Fasteners package#
Subpackages#
- NaxToPy.Modules.Fasteners.Joints package
- Submodules
- NaxToPy.Modules.Fasteners.Joints.N2PAttachment module
- NaxToPy.Modules.Fasteners.Joints.N2PBolt module
N2PBolt
N2PBolt.id
N2PBolt.one_dim_elems_id_list
N2PBolt.cards
N2PBolt.type
N2PBolt.joint
N2PBolt.element_list
N2PBolt.element_local_system_force
N2PBolt.axial_force
N2PBolt.shear_force
N2PBolt.max_axial_force
N2PBolt.load_angle
N2PBolt.AxialForce
N2PBolt.Cards
N2PBolt.ElementIDList
N2PBolt.ElementInternalIDList
N2PBolt.ElementList
N2PBolt.ElementLocalSystemForce
N2PBolt.ID
N2PBolt.Joint
N2PBolt.LoadAngle
N2PBolt.MaxAxialForce
N2PBolt.NodeList
N2PBolt.OneDimElemsIDList
N2PBolt.PartID
N2PBolt.ShearForce
N2PBolt.Type
- NaxToPy.Modules.Fasteners.Joints.N2PFastenerSystem module
N2PFastenerSystem
N2PFastenerSystem.Designation
N2PFastenerSystem.Fastener_pin_single_SH_allow
N2PFastenerSystem.Fastener_collar_single_SH_allow
N2PFastenerSystem.Fastener_pin_tensile_allow
N2PFastenerSystem.Fastener_collar_tensile_allow
N2PFastenerSystem.D_head
N2PFastenerSystem.D_tail
N2PFastenerSystem.D_nom
N2PFastenerSystem.Configuration
N2PFastenerSystem.FastenerType
N2PFastenerSystem.FastenerInstallation
N2PFastenerSystem.FastenerHead
N2PFastenerSystem.FloatingNut
N2PFastenerSystem.AluminumNut
N2PFastenerSystem.AluminumNut
N2PFastenerSystem.Configuration
N2PFastenerSystem.D_head
N2PFastenerSystem.D_nom
N2PFastenerSystem.D_tail
N2PFastenerSystem.Designation
N2PFastenerSystem.FastenerHead
N2PFastenerSystem.FastenerInstallation
N2PFastenerSystem.FastenerType
N2PFastenerSystem.Fastener_collar_single_SH_allow
N2PFastenerSystem.Fastener_collar_tensile_allow
N2PFastenerSystem.Fastener_pin_single_SH_allow
N2PFastenerSystem.Fastener_pin_tensile_allow
N2PFastenerSystem.FloatingNut
N2PFastenerSystem.designation
- NaxToPy.Modules.Fasteners.Joints.N2PJoint module
N2PJoint
N2PJoint.diameter
N2PJoint.bolt
N2PJoint.plate_list
N2PJoint.switch_plates
N2PJoint.attachment
N2PJoint.pitch
N2PJoint.fastener_system
N2PJoint.Attachment
N2PJoint.Bolt
N2PJoint.BoltElementIDList
N2PJoint.BoltElementInternalIDList
N2PJoint.BoltElementList
N2PJoint.BoltNodeList
N2PJoint.Diameter
N2PJoint.FastenerSystem
N2PJoint.ID
N2PJoint.PartID
N2PJoint.Pitch
N2PJoint.PlateElementIDList
N2PJoint.PlateElementInternalIDList
N2PJoint.PlateElementList
N2PJoint.PlateList
N2PJoint.PlateNodeList
N2PJoint.PlatePartID
N2PJoint.SwitchPlates
N2PJoint.TypeFastener
N2PJoint.export_forces()
N2PJoint.get_bypass_loads()
N2PJoint.get_bypass_loads_PAG()
N2PJoint.get_distance()
N2PJoint.get_forces()
N2PJoint.get_forces_PAG()
- NaxToPy.Modules.Fasteners.Joints.N2PPlate module
N2PPlate
N2PPlate.id
N2PPlate.global_id
N2PPlate.solver_id
N2PPlate.plate_central_cell_solver_id
N2PPlate.cards
N2PPlate.joint
N2PPlate.element_list
N2PPlate.bolt_element_list
N2PPlate.attachment_id
N2PPlate.intersection
N2PPlate.distance
N2PPlate.normal
N2PPlate.no_adjacents
N2PPlate.switched_bolt_elements
N2PPlate.self._projection_tolerance
N2PPlate.bearing_force
N2PPlate.translational_fastener_forces
N2PPlate.nx_bypass
N2PPlate.nx_total
N2PPlate.ny_bypass
N2PPlate.ny_total
N2PPlate.nxy_bypass
N2PPlate.nxy_total
N2PPlate.mx_total
N2PPlate.my_total
N2PPlate.mxy_total
N2PPlate.bypass_max
N2PPlate.bypass_min
N2PPlate.box_dimension
N2PPlate.box_system
N2PPlate.box_points
N2PPlate.box_elements
N2PPlate.8
N2PPlate.box_fluxes
N2PPlate.AttachmentID
N2PPlate.BearingForce
N2PPlate.Bolt
N2PPlate.BoltDirection
N2PPlate.BoltElementList
N2PPlate.BoxDimension
N2PPlate.BoxElements
N2PPlate.BoxFluxes
N2PPlate.BoxPoints
N2PPlate.BoxSystem
N2PPlate.BypassMax
N2PPlate.BypassMin
N2PPlate.BypassSides
N2PPlate.CFASTFactor
N2PPlate.Cards
N2PPlate.Distance
N2PPlate.ElementIDList
N2PPlate.ElementInternalIDList
N2PPlate.ElementList
N2PPlate.GlobalID
N2PPlate.ID
N2PPlate.Intersection
N2PPlate.Joint
N2PPlate.MxTotal
N2PPlate.MxyTotal
N2PPlate.MyTotal
N2PPlate.NodeList
N2PPlate.Normal
N2PPlate.NxBypass
N2PPlate.NxTotal
N2PPlate.NxyBypass
N2PPlate.NxyTotal
N2PPlate.NyBypass
N2PPlate.NyTotal
N2PPlate.PartID
N2PPlate.PlateCentralCellSolverID
N2PPlate.SolverID
N2PPlate.TranslationalFastenerForces
N2PPlate.get_box_PAG()
N2PPlate.get_bypass_PAG()
- Module contents
Submodules#
NaxToPy.Modules.Fasteners.N2PGetFasteners module#
- class NaxToPy.Modules.Fasteners.N2PGetFasteners.N2PGetFasteners[source]#
Bases:
object
Class used to obtain all necessary geometrical information of a model’s N2PJoints, N2PBolts and N2PPlates.
The instance of this class must be prepared using its properties before calling it method calculate.
- property AttachmentsList: list[N2PAttachment]#
Property that returns the attachments_list attribute, that is, the list of N2PAttachments.
- property ElementList: list[N2PElement]#
Property that returns the element_list attribute, that is, the list of the loaded CFASTs.
- property GetAttachmentsBool: bool#
Sets if the get_attachments() method will be used inside method calculate().
- property JointsList: list[N2PJoint]#
Property that returns the joints_list attribute, that is, the list of N2PJoints to be analyzed.
- property Model: N2PModelContent#
Model to be analyzed. It is a compulsory input and an error will occur if it is not present.
- property Thresh: float#
Tolerance used in the obtention of the N2Joints in C#. 2.0 by default.
- calculate() None [source]#
Method used to do all the previous calculations.
- Calling example:
>>> fasteners.calculate()
- flip_plates() None [source]#
Method used to flip some plate lists.
- Calling example:
>>> fasteners.flip_plates( )
- get_attachments() None [source]#
Method used to obtain the list of N2PAttachments and calculate their pitch. The get_joints() method must be used before this one. Otherwise, an error will occur.
- Calling example:
>>> fasteners.get_attachments()
- get_distance() None [source]#
Method used to obtain the distance from every N2PPlate’s edge to its N2PJoint, the intersection between an N2PPlate and its N2PJoint and the perpendicular direction to the N2PPlates. The get_joints() method must be used before this one. Otherwise, an error will occur.
- Calling example:
>>> fasteners.get_distance()
- get_joints() None [source]#
This method is used to create all N2PJoints, N2PPlates and N2PBolts and assign them certain useful attributes. In order to work, the n2joints and model attributes must have been previously filled. If they have not, an error will occur.
- The following steps are followed:
1. All N2Joints are created differently depending on the user’s inputs. 1. All N2PJoints are created. Inside this, all N2PBolts and N2PPlates associated to each N2PJoint are also created. 2. All N2PBolts, N2PPlates are assigned its corresponding N2PElements and N2PNodes. Also, N2PJoints are assigned its bolt’s N2PElements and N2PNodes, as well as its plates’ N2PElements and N2PNodes.
- Calling example:
>>> fasteners.get_joints()
NaxToPy.Modules.Fasteners.N2PGetLoadFasteners module#
NaxToPy.Modules.Fasteners.N2PUpdateFastener module#
- class NaxToPy.Modules.Fasteners.N2PUpdateFastener.N2PUpdateFastener(model: N2PModelContent, information: dict | list, id_list: list = None, stiffness_method: str = 'HUTH')[source]#
Bases:
object
This class stores information about fasteners and provides methods to update their stiffness and generate a new FEM Input File (.bdf, .fem, .dat, etc.) file with the updated data.
Fastener information can be input either as a dictionary (for a single type of fastener) or as a list of dictionaries (for multiple types). Each dictionary must include at least the keys for diameter [“D”] and elastic modulus [“E”]. Optional keys include head height [“h_head”], nut height [“h_nut”], Poisson ratio [“nu”], shear modulus [“G”], connection type (“bolt” or “rivet”) [“connection_type”], shear type (“simple” or “double”) [“shear_type”], and the beta value for Nelson method [“beta”].
IDs of fasteners to be updated can be provided as either a single list (for a single type of fastener) or as a list of lists (for multiple types). If no list of IDs is provided, all fasteners in the model will be updated.
When multiple types of fasteners are used, the order of the list of dictionaries must match the order of the list of ID lists to ensure proper mapping of variables.
Supported methods for stiffness calculation include HUTH, TATE_ROSENFELD, SWIFT, BOEING, GRUMMAN, and NELSON.
Example
Example 1:
>>> import NaxToPy as n2p >>> model = n2p.load_model("model.dat") >>> info1 = {"D": 4.8, ... "E": 110000} >>> info2 = {"D": 7.2, ... "E": 70000, ... "connection_type": "rivet", ... "shear_type": "double"} >>> ele1 = [1000, 1001, 1002] >>> ele2 = [2000, 2001, 2002] >>> update1 = N2PUpdateFastener(model, [info1, info2], [ele1, ele2], "BOEING") >>> update1.calculate() # This will update the model in memory with the information of the object. >>> model.ModelInputData.rebuild_file() # With the model updated, the model is rewritten
Example 2:
>>> model = n2p.load_model("model.dat") >>> update2 = N2PUpdateFastener(model, {}) # Create the object without information >>> update2.IDList = [3000, 3001, 3002] # Add the information using it properties >>> update2.StiffnessMethod = "GRUMMAN" >>> update2.FastenerInformation = {3000: {"D": 4.8, "E": 70000, "connection_type": "rivet"}, ... 3001: {"D": 6.8, "E": 70000, "connection_type": "bolt"}, ... 3002: {"D": 7.2, "E": 70000, "shear_type": "double"}} >>> update2.calculate() # This will update the model in memory with the information of the object. >>> model.ModelInputData.rebuild_file() # With the model updated, the model is rewritten
- property FastenerInformation: dict#
Returns the dictionary mapping each fastener with its properties
- property IDList: list | list[list]#
Returns the list of fasteners to be updated
- property InfoDicts: dict | list[dict]#
Returns the list of dictionaries containing the fastener information
- property StiffnessMethod: str#
Returns the name of the method used to calculate the fastener stiffness