NaxToPy 3.3.0__tar.gz → 3.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. {naxtopy-3.3.0 → naxtopy-3.4.0}/PKG-INFO +183 -13
  2. naxtopy-3.3.0/src/NaxToPy.egg-info/PKG-INFO → naxtopy-3.4.0/README.md +73 -33
  3. naxtopy-3.4.0/pyproject.toml +59 -0
  4. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PNastranInputData.py +2910 -3599
  5. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Constants/Constants.py +5 -5
  6. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Errors/N2PLog.py +330 -18
  7. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/N2PModelContent.py +262 -4
  8. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/N2PFatigueDamage.py +1949 -0
  9. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/__init__.py +1 -0
  10. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/_n2pfatiguedamage/Combination.py +1656 -0
  11. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/_n2pfatiguedamage/Event.py +186 -0
  12. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/_n2pfatiguedamage/FatigueEvents.py +100 -0
  13. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/_n2pfatiguedamage/Load.py +275 -0
  14. naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/_n2pfatiguedamage/Material.py +108 -0
  15. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/composite/delamination/N2PEdgeDelamination.py +14 -14
  16. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/composite/failure_analysis/N2PCompositeFailure.py +20 -3
  17. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/composite/sandwich/N2PSandwich.py +1 -1
  18. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PCalculatorRFJoints.py +2 -2
  19. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/N2PCreateFasteners.py +1168 -0
  20. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PGetFasteners.py +31 -40
  21. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PGetLoadFasteners.py +389 -130
  22. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PUpdateFastener.py +24 -1
  23. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetResults.py +57 -22
  24. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PRotation.py +6 -3
  25. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/AR1DElement.py +5 -5
  26. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetBolts.py +21 -112
  27. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/__init__.py +3 -1
  28. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_isami_export.py +294 -0
  29. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/N2PCardBuilder.py +701 -0
  30. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/N2PFastenerLayout.py +355 -0
  31. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/N2PGeometry.py +563 -0
  32. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/N2PIDManager.py +258 -0
  33. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/N2PPiece.py +300 -0
  34. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/N2PStiffness.py +378 -0
  35. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_n2pcreatefasteners/__init__.py +2 -0
  36. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/joints/N2PJoint.py +14 -5
  37. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/joints/N2PPlate.py +198 -42
  38. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/templates/isami/CFH_template_Input.xlsm +0 -0
  39. naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/templates/isami/MFH_template_Input.xlsx +0 -0
  40. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/metallic/neuber/N2PNeuber.py +1 -1
  41. naxtopy-3.4.0/src/NaxToPy/Modules/static/metallic/neuber/__init__.py +0 -0
  42. naxtopy-3.4.0/src/NaxToPy/__init__.py +37 -0
  43. naxtopy-3.3.0/README.md → naxtopy-3.4.0/src/NaxToPy.egg-info/PKG-INFO +203 -6
  44. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy.egg-info/SOURCES.txt +19 -1
  45. naxtopy-3.3.0/pyproject.toml +0 -35
  46. naxtopy-3.3.0/setup.py +0 -15
  47. naxtopy-3.3.0/src/NaxToPy/__init__.py +0 -18
  48. {naxtopy-3.3.0 → naxtopy-3.4.0}/LICENSE +0 -0
  49. {naxtopy-3.3.0 → naxtopy-3.4.0}/setup.cfg +0 -0
  50. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntity.py +0 -0
  51. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityElement.py +0 -0
  52. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityNode.py +0 -0
  53. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQEntities/N2PEntityShell.py +0 -0
  54. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQEntities/__init__.py +0 -0
  55. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeyword.py +0 -0
  56. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordBEAMSECTION.py +0 -0
  57. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordCOUPLING.py +0 -0
  58. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDENSITY.py +0 -0
  59. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTING.py +0 -0
  60. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordDISTRIBUTINGCOUPLING.py +0 -0
  61. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELASTIC.py +0 -0
  62. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELEMENT.py +0 -0
  63. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordELSET.py +0 -0
  64. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDINSTANCE.py +0 -0
  65. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordENDPART.py +0 -0
  66. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordINSTANCE.py +0 -0
  67. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATIC.py +0 -0
  68. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordKINEMATICCOUPLING.py +0 -0
  69. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordMATERIAL.py +0 -0
  70. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNODE.py +0 -0
  71. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordNSET.py +0 -0
  72. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordORIENTATION.py +0 -0
  73. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPART.py +0 -0
  74. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordPLASTIC.py +0 -0
  75. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSHELLSECTION.py +0 -0
  76. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSOLIDSECTION.py +0 -0
  77. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/N2PKeywordSURFACE.py +0 -0
  78. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ABQKeywords/__init__.py +0 -0
  79. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/AllClasses.py +0 -0
  80. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PAbaqusInputData.py +0 -0
  81. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PComponent.py +0 -0
  82. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PConnector.py +0 -0
  83. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PCoord.py +0 -0
  84. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PElement.py +0 -0
  85. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PFreeBody.py +0 -0
  86. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PIncrement.py +0 -0
  87. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PLoadCase.py +0 -0
  88. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PMaterial.py +0 -0
  89. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PNode.py +0 -0
  90. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PProperty.py +0 -0
  91. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PReport.py +0 -0
  92. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PResult.py +0 -0
  93. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PSection.py +0 -0
  94. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/N2PSet.py +0 -0
  95. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/ProgresBar.py +0 -0
  96. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Classes/__init__.py +0 -0
  97. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Constants/__init__.py +0 -0
  98. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Constants/librerias.py +0 -0
  99. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Errors/N2PColors.py +0 -0
  100. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Errors/N2PFileHandler.py +0 -0
  101. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Errors/__init__.py +0 -0
  102. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Reference_Finder/__Reference_Finder.py +0 -0
  103. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/Reference_Finder/__init__.py +0 -0
  104. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/_AuxFunc/_NetToPython.py +0 -0
  105. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/_AuxFunc/__init__.py +0 -0
  106. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Core/__init__.py +0 -0
  107. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/__init__.py +0 -0
  108. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/common/__init__.py +0 -0
  109. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/common/data_input_hdf5.py +0 -0
  110. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/common/hdf5.py +0 -0
  111. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/common/material.py +0 -0
  112. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/common/model_processor.py +0 -0
  113. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/common/property.py +0 -0
  114. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/envelope/N2PEnvelope.py +0 -0
  115. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/envelope/__init__.py +0 -0
  116. {naxtopy-3.3.0/src/NaxToPy/Modules/static → naxtopy-3.4.0/src/NaxToPy/Modules/fatigue/_n2pfatiguedamage}/__init__.py +0 -0
  117. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/__init__.py +0 -0
  118. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/airbus/__init__.py +0 -0
  119. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/airbus/core_shear_crimping_airbus.py +0 -0
  120. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/airbus/dimpling_airbus.py +0 -0
  121. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/airbus/wrinkling_airbus.py +0 -0
  122. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/bruhn/__init__.py +0 -0
  123. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/cmh/__init__.py +0 -0
  124. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/cmh/core_shear_crimping_cmh.py +0 -0
  125. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/cmh/dimpling_cmh.py +0 -0
  126. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/cmh/wrinkling_cmh.py +0 -0
  127. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/esdu/__init__.py +0 -0
  128. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/hsb/__init__.py +0 -0
  129. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/hsb/wrinkling_hsb.py +0 -0
  130. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/hypersizer/__init__.py +0 -0
  131. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/hypersizer/crimping_hypersizer.py +0 -0
  132. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/hypersizer/dimpling_hypersizer.py +0 -0
  133. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/hypersizer/wrinkling_hypersizer.py +0 -0
  134. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/nasa/__init__.py +0 -0
  135. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/handbooks/nasa/wrinkling_nasa.py +0 -0
  136. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/n2ptoexe/N2PtoEXE.py +0 -0
  137. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/n2ptoexe/__init__.py +0 -0
  138. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/numericaltools/N2PCoefficientsFinder.py +0 -0
  139. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/numericaltools/__init__.py +0 -0
  140. {naxtopy-3.3.0/src/NaxToPy/Modules/static/composite/delamination → naxtopy-3.4.0/src/NaxToPy/Modules/static}/__init__.py +0 -0
  141. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/composite/__init__.py +0 -0
  142. {naxtopy-3.3.0/src/NaxToPy/Modules/static/composite/failure_analysis → naxtopy-3.4.0/src/NaxToPy/Modules/static/composite/delamination}/__init__.py +0 -0
  143. {naxtopy-3.3.0/src/NaxToPy/Modules/static/composite/sandwich → naxtopy-3.4.0/src/NaxToPy/Modules/static/composite/failure_analysis}/__init__.py +0 -0
  144. {naxtopy-3.3.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions → naxtopy-3.4.0/src/NaxToPy/Modules/static/composite/sandwich}/__init__.py +0 -0
  145. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PCompRF.py +0 -0
  146. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PFastenerAnalysis.py +0 -0
  147. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PMetalRF.py +0 -0
  148. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/N2PRivetRF.py +0 -0
  149. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PGetAttachments.py +0 -0
  150. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PInterpolation.py +0 -0
  151. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions/N2PLoadModel.py +0 -0
  152. {naxtopy-3.3.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core → naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core/Functions}/__init__.py +0 -0
  153. {naxtopy-3.3.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis → naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis/Core}/__init__.py +0 -0
  154. {naxtopy-3.3.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated → naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysis}/__init__.py +0 -0
  155. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Check/Validation.py +0 -0
  156. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARAttachment.py +0 -0
  157. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARBolt.py +0 -0
  158. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlate.py +0 -0
  159. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/ARPlateElements.py +0 -0
  160. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Classes/__init__.py +0 -0
  161. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARAuxiliarFunctions.py +0 -0
  162. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARBilinearInterpolation.py +0 -0
  163. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARConfigurationInput.py +0 -0
  164. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARDerivedLoadCases.py +0 -0
  165. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARFileInputRivetsIDs.py +0 -0
  166. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARGetAttachments.py +0 -0
  167. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARReadResultsFromFile.py +0 -0
  168. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARResults.py +0 -0
  169. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARRotation.py +0 -0
  170. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/ARSerialize.py +0 -0
  171. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/Functions/__init__.py +0 -0
  172. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated/Core/__init__.py +0 -0
  173. {naxtopy-3.3.0/src/NaxToPy/Modules/static/fasteners/joints → naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/_N2PFastenerAnalysisDeprecated}/__init__.py +0 -0
  174. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/joints/N2PAttachment.py +0 -0
  175. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/joints/N2PBolt.py +0 -0
  176. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/joints/N2PFastenerSystem.py +0 -0
  177. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/fasteners/joints/N2PJointAnalysisParameters.py +0 -0
  178. {naxtopy-3.3.0/src/NaxToPy/Modules/static/metallic/neuber → naxtopy-3.4.0/src/NaxToPy/Modules/static/fasteners/joints}/__init__.py +0 -0
  179. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/Modules/static/metallic/__init__.py +0 -0
  180. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/NaxToPy.ico +0 -0
  181. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy/user_functions.txt +0 -0
  182. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy.egg-info/dependency_links.txt +0 -0
  183. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy.egg-info/requires.txt +0 -0
  184. {naxtopy-3.3.0 → naxtopy-3.4.0}/src/NaxToPy.egg-info/top_level.txt +0 -0
@@ -1,16 +1,121 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NaxToPy
3
- Version: 3.3.0
3
+ Version: 3.4.0
4
4
  Summary: Package for postprocessing FEM results in Python
5
- Home-page: https://www.idaerosolutions.com/Home/NaxToPy
6
- Download-URL: https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US
7
5
  Author-email: Idaero Solutions <manuel.sanchez@idaerosolutions.com>
8
- License: MIT
6
+ License: Copyright (c) 2026 Idaero Solutions
7
+
8
+ This freeware license agreement (“agreement”) is a legally binding contract
9
+ between the individual who downloads the software (“you”) and the licensor,
10
+ that should be read in its entirety. This is an agreement governing your use
11
+ this software own by Idaero Solutions, further defined herein as “software”,
12
+ and the licensor of the software is willing to provide you with access to the
13
+ software only on the condition that you accept all of the terms and conditions
14
+ contained in this agreement. You are deemed to have read, understood and accepted
15
+ all such terms and conditions upon executing a download of any free software.
16
+
17
+ 1. License Grant:
18
+
19
+ Subject to the terms and conditions of this Agreement, Idaero Solutions grants
20
+ the User a limited, non-exclusive, non-transferable license to use the Software
21
+ solely for non commercial purposes. This license does not grant any rights to the
22
+ source code of the Software. It is only free for non-professional and non-commercial
23
+ purposes. For commercial and professional purposes, you must install the professional
24
+ NaxTo(c) version.
25
+
26
+ 2. Ownership:
27
+
28
+ The User acknowledges that the Software, including any and all intellectual
29
+ property rights associated with it, is the sole property of Idaero Solutions
30
+ and/or its Suppliers. The User agrees not to claim ownership or proprietary
31
+ rights over the Software.
32
+
33
+ 3. Distribution:
34
+
35
+ The User is allowed to distribute the Software to third parties free of charge,
36
+ ONLY under .exe files that use the software as a dependence of the script,
37
+ provided that the distribution includes the complete and unmodified Software
38
+ package as originally provided by Idaero Solutions. The User must not charge
39
+ any fees or payments for the distribution of the Software.
40
+
41
+ 4. Modifications:
42
+
43
+ The User agrees not to modify, adapt, reverse engineer, decompile or disassemble,
44
+ the Software. Any attempt to do so shall be a violation of this Agreement. The
45
+ User is allowed to develop further code based on the Software. However, the
46
+ User agrees that the new software shall be subject to the same license terms
47
+ as this Agreement, including the prohibition on modification, reverse
48
+ engineering, and proprietization.
49
+
50
+ 5. Proprietization:
51
+
52
+ The User agrees not to use the Software or any part thereof to develop a
53
+ competing product or service or engage in any activities that may lead to
54
+ the proprietization of the Software.
55
+
56
+ 6. Termination:
57
+
58
+ This Agreement is effective until terminated. Idaero Solutions may terminate this
59
+ Agreement immediately and without notice if the User fails to comply with any
60
+ of the terms and conditions herein. Upon termination, the User must cease all
61
+ use of the Software and destroy all copies in their possession.
62
+
63
+ 7. Warranty and Liability:
64
+
65
+ The software is provided "as is", without warranty of any kind, express or
66
+ implied, including but not limited to the warranties of merchantability,
67
+ fitness for a particular purpose and noninfringement. In no event shall the
68
+ authors or copyright holders be liable for any claim, damages or other
69
+ liability, whether in an action of contract, tort or otherwise, arising from,
70
+ out of or in connection with the software or the use or other dealings in the
71
+ software.
72
+
73
+ 8. An extension of NaxTo(c) from Idaero Solutions:
74
+
75
+ The software is an extension of the NaxTo software developed by Idaero Solutions.
76
+ Therefore, the terms of use of this software are an extension of the
77
+ NaxTo license. In the event of any discrepancies, the NaxTo license takes precedence.
78
+
79
+ 9. Governing Law:
80
+
81
+ This Agreement shall be governed by and construed in accordance with the laws
82
+ of the jurisdiction in which Idaero Solutions is located.
83
+
84
+
85
+ IDAERO DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
86
+ LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
87
+ AND NON-INFRINGEMENT. IDAERO DOES NOT GUARANTEE THAT THE PRODUCTS WILL MEET LICENSEE'S
88
+ REQUIREMENTS, OPERATE UNINTERRUPTED OR ERROR-FREE, OR BE COMPATIBLE WITH ANY SPECIFIC
89
+ HARDWARE OR SOFTWARE. THE ENTIRE RISK ASSOCIATED WITH THE USE, PERFORMANCE, OR RESULTS
90
+ OBTAINED FROM THE PRODUCTS RESTS WITH THE LICENSEE, NOT IDAERO. IDAERO MAKES
91
+ NO WARRANTIES REGARDING THE ACCURACY, COMPLETENESS, FUNCTIONALITY, SAFETY, PERFORMANCE,
92
+ OR ANY OTHER ASPECT OF ANY DESIGN, PROTOTYPE, OR FINAL PRODUCT DEVELOPED BY THE LICENSEE
93
+ USING THE PRODUCTS.
94
+
95
+ IN NO EVENT SHALL IDAERO OR ITS SUPPLIERS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL,
96
+ OR CONSEQUENTIAL DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS OR DATA, DEFECTS
97
+ IN DESIGN OR PRODUCTS CREATED USING THE PRODUCTS, OR ANY INJURY OR DAMAGE RESULTING
98
+ FROM SUCH DEFECTS, SUFFERED BY THE LICENSEE OR ANY THIRD PARTY, EVEN IF IDAERO OR
99
+ ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE PRODUCTS
100
+ PROVIDED HEREUNDER ARE INTENDED ONLY TO AID THE LICENSEE IN DEVELOPING THEIR OWN
101
+ PRODUCTS OR CONDUCTING DATA ANALYSIS AND ARE NOT INTENDED TO SUBSTITUTE FOR SOUND
102
+ ENGINEERING JUDGMENT, INDEPENDENT TESTING OF PHYSICAL PROTOTYPES, CAREFUL NUMERICAL
103
+ REVIEW, OR SOUND BUSINESS JUDGMENT.
104
+
105
+
106
+ The above copyright notice and this permission notice shall be included in all
107
+ copies or substantial portions of the Software.
108
+ Project-URL: Homepage, https://www.idaerosolutions.com/Home/NaxToPy
109
+ Project-URL: Download, https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US
9
110
  Project-URL: Documentation, https://www.idaerosolutions.com/NaxToDocumentation/NaxTo/index.html
10
111
  Project-URL: LinkedIn, https://www.linkedin.com/company/idaero/
11
112
  Keywords: NaxTo,Postprocessing,FEM
12
113
  Classifier: Intended Audience :: Science/Research
13
- Classifier: Programming Language :: Python :: 3.9
114
+ Classifier: Programming Language :: Python :: 3.10
115
+ Classifier: Programming Language :: Python :: 3.11
116
+ Classifier: Programming Language :: Python :: 3.12
117
+ Classifier: Programming Language :: Python :: 3.13
118
+ Classifier: Programming Language :: Python :: 3.14
14
119
  Classifier: License :: Other/Proprietary License
15
120
  Classifier: Operating System :: Microsoft :: Windows :: Windows 10
16
121
  Classifier: Topic :: Scientific/Engineering
@@ -21,13 +126,11 @@ Requires-Dist: pythonnet>=3.0.4
21
126
  Requires-Dist: numpy>=1.25.1
22
127
  Requires-Dist: setuptools>=67.8.0
23
128
  Requires-Dist: h5py>=3.8.0
24
- Dynamic: download-url
25
- Dynamic: home-page
26
129
  Dynamic: license-file
27
130
 
28
131
  [![Idaero](https://img.shields.io/badge/powered%20by-Idaero%20Solutions-299797)](https://idaerosolutions.com)
29
132
  [![PyPi](https://img.shields.io/pypi/v/NaxToPy?color=ffd500)](https://pypi.org/project/NaxToPy/)
30
- [![Python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-00699d)](https://www.python.org/downloads/)
133
+ [![Python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-00699d)](https://www.python.org/downloads/)
31
134
  ![License](https://img.shields.io/badge/license-proprietary-red)
32
135
  [![MicrosoftStore](https://img.shields.io/badge/Microsoft%20Store-NaxTo-blue?logo=microsoftstore&logoColor=blue&labelColor=lightgrey)](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US)
33
136
  [![PyPi - Downloads](https://img.shields.io/pypi/dm/NaxToPy?color=dgreen)](https://pypi.org/project/NaxToPy/#files)
@@ -51,7 +154,7 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
51
154
  ---------------
52
155
 
53
156
  ⚠️**Warning:** To use NaxToPy, [**NaxTo**](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US) must be installed.
54
- This version is compatible with **NaxTo 2026.0**.
157
+ This version is compatible with **NaxTo 2026.1**.
55
158
  Check in _Programs and Features_ the NaxTo version that is installed.
56
159
 
57
160
  📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/#history) to find which newer version is compatible with it.
@@ -304,10 +407,77 @@ is redundant. The coordinate system will prevail.
304
407
 
305
408
  ### v.3.3.0
306
409
  1. feat: optistruct fem files are now completely supported.
307
- 2. feat: New methods for `N2PmodelContent.ModelInputData`: `update_model()` and `create_bdf_file`.
308
- 3. feat: New methods for Optistruct and Nastran Cards: `remap_card()`, `set_raw_content_and_remap()`, `IsValid()`, `IsModified()`, `mark_as_synthetic()` and `mark_as_original()`.
309
- 4. bugfix: minor errors have been fixed.
310
- 5. refactor: optimize BDF (Nastran) and FEM (OptiStruct) file parsing methods.
410
+ 2. bugfix: minor errors have been fixed
411
+ 3. refactor: optimize BDF (Nastran) and FEM (OptiStruct) file parsing methods.
412
+
413
+ ### v.3.4.0
414
+
415
+ 1. feat: `N2PFatigueDamage` - new module for fatigue damage calculation. It reads a
416
+ fatigue events definition file, builds the load histories, performs cycle
417
+ counting following ASTM E1049-85, and computes the damage. It supports
418
+ uniaxial and multiaxial analysis, signed von Mises, and derived event
419
+ combinations. Full documentation in the module docs folder.
420
+
421
+ 2. feat: `N2PCreateFasteners` (BETA) - new module that creates fasteners in a model
422
+ automatically. Given the plates and a rivet definition file, it builds the
423
+ required GRID, RBE2/RBE3, CBUSH and PBUSH cards, computes the fastener
424
+ stiffness (Huth, Swift, ...), and writes them into the input deck.
425
+
426
+ 3. feat: `N2PGetLoadFasteners` - new analysis mode. `TypeAnalysis` now accepts "N2P"
427
+ (the new default), "PAG" and "ALTAIR", instead of only "PAG" and "ALTAIR".
428
+ IMPORTANT: the default has changed, so results may differ from 3.3.0 unless
429
+ you set TypeAnalysis explicitly.
430
+
431
+ 4. feat: `N2PGetLoadFasteners` - new export format ISAMI (`TypeExport = "ISAMI"`),
432
+ including the CFH and MFH input templates. New properties `ISAMITemplate` and
433
+ `ISAMIOptions` to control it.
434
+
435
+ 5. refactor: `N2PGetLoadFasteners` - much faster. The bypass box calculation now uses the
436
+ new fast adjacency index; adjacency used to be around 85% of the analysis
437
+ time.
438
+
439
+ 6. refactor: `find_cards()` is more flexible: filters now accept collections of values,
440
+ None, and integers of any type, so you can query many IDs in a single call.
441
+ Its documentation has been rewritten with all the categories, how the
442
+ criteria combine, and a complete set of examples.
443
+
444
+ 7. feat: New supported cards: SET, SET1 and SET3, plus a large number of Nastran and
445
+ OptiStruct cards that were missing or that behaved differently in each
446
+ solver (CQUAD4, CWELD/PWELD, MAT8, MPC/MPCADD, PBAR, PBEAM, PGAP, PLOAD4,
447
+ PROD, PSHELL, PSOLID, RBAR, RBE1/RBE2/RBE3, RSPLINE, SPC, SPCD, ...).
448
+
449
+ 8. feat: New methods to write a modified deck back to disk: `update_model()` and
450
+ `create_bdf_file()`, plus new card level operations (`remap_card`,
451
+ `set_raw_content_and_remap`, `IsValid`, `IsModified`, `mark_as_synthetic`,
452
+ `mark_as_original`).
453
+
454
+ 9. feat: The messages produced when reading a Nastran/OptiStruct input deck are now
455
+ reported with their real severity (info, warning or error) instead of
456
+ always as an error, and every read/write operation on a card reports what
457
+ the reader detected, so problems in the deck are no longer silent.
458
+
459
+ 10. feat: New `N2PLog.set_input_checking()` / `is_input_checking()` to turn the input
460
+ deck checking messages on and off. It also applies to models that are
461
+ already loaded.
462
+
463
+ 11. bugfix: HDF5 export. The `ExportLocation` path is now set correctly and reports an
464
+ error if a folder is given instead of a file.
465
+
466
+ 12. bugfix: `create_bdf_file()` returned an internal object; it now returns the path of
467
+ the generated bdf file.
468
+
469
+ 13. bugfix: Fastener stiffness. The Swift shear stiffness formula was wrong.
470
+
471
+ 14. bugfix: Total moments are now computed as max-abs in N2P and PAG modes and as -mean
472
+ in ALTAIR mode (previously only PAG used max-abs).
473
+
474
+ 15. bugfix: Bearing loads are computed in the material coordinate system, and CBUSH
475
+ elements without an associated coordinate system are handled correctly.
476
+
477
+ 16. bugfix: Several robustness fixes so the fastener modules no longer crash on
478
+ imperfect models: out of range indexes when getting joints, incomplete
479
+ property dictionaries, bypass box edge cases (NODATA is now 0), and points
480
+ that fall exactly on a node.
311
481
 
312
482
  # Documentation
313
483
 
@@ -1,33 +1,6 @@
1
- Metadata-Version: 2.4
2
- Name: NaxToPy
3
- Version: 3.3.0
4
- Summary: Package for postprocessing FEM results in Python
5
- Home-page: https://www.idaerosolutions.com/Home/NaxToPy
6
- Download-URL: https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US
7
- Author-email: Idaero Solutions <manuel.sanchez@idaerosolutions.com>
8
- License: MIT
9
- Project-URL: Documentation, https://www.idaerosolutions.com/NaxToDocumentation/NaxTo/index.html
10
- Project-URL: LinkedIn, https://www.linkedin.com/company/idaero/
11
- Keywords: NaxTo,Postprocessing,FEM
12
- Classifier: Intended Audience :: Science/Research
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: License :: Other/Proprietary License
15
- Classifier: Operating System :: Microsoft :: Windows :: Windows 10
16
- Classifier: Topic :: Scientific/Engineering
17
- Requires-Python: >=3.9
18
- Description-Content-Type: text/markdown
19
- License-File: LICENSE
20
- Requires-Dist: pythonnet>=3.0.4
21
- Requires-Dist: numpy>=1.25.1
22
- Requires-Dist: setuptools>=67.8.0
23
- Requires-Dist: h5py>=3.8.0
24
- Dynamic: download-url
25
- Dynamic: home-page
26
- Dynamic: license-file
27
-
28
1
  [![Idaero](https://img.shields.io/badge/powered%20by-Idaero%20Solutions-299797)](https://idaerosolutions.com)
29
2
  [![PyPi](https://img.shields.io/pypi/v/NaxToPy?color=ffd500)](https://pypi.org/project/NaxToPy/)
30
- [![Python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-00699d)](https://www.python.org/downloads/)
3
+ [![Python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-00699d)](https://www.python.org/downloads/)
31
4
  ![License](https://img.shields.io/badge/license-proprietary-red)
32
5
  [![MicrosoftStore](https://img.shields.io/badge/Microsoft%20Store-NaxTo-blue?logo=microsoftstore&logoColor=blue&labelColor=lightgrey)](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US)
33
6
  [![PyPi - Downloads](https://img.shields.io/pypi/dm/NaxToPy?color=dgreen)](https://pypi.org/project/NaxToPy/#files)
@@ -51,7 +24,7 @@ additional software beyond NaxTo (see the Download and Homepage links on the lef
51
24
  ---------------
52
25
 
53
26
  ⚠️**Warning:** To use NaxToPy, [**NaxTo**](https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US) must be installed.
54
- This version is compatible with **NaxTo 2026.0**.
27
+ This version is compatible with **NaxTo 2026.1**.
55
28
  Check in _Programs and Features_ the NaxTo version that is installed.
56
29
 
57
30
  📘**Note:** If a specific NaxTo version is installed, search the [**NaxToPy History**](https://pypi.org/project/NaxToPy/#history) to find which newer version is compatible with it.
@@ -304,10 +277,77 @@ is redundant. The coordinate system will prevail.
304
277
 
305
278
  ### v.3.3.0
306
279
  1. feat: optistruct fem files are now completely supported.
307
- 2. feat: New methods for `N2PmodelContent.ModelInputData`: `update_model()` and `create_bdf_file`.
308
- 3. feat: New methods for Optistruct and Nastran Cards: `remap_card()`, `set_raw_content_and_remap()`, `IsValid()`, `IsModified()`, `mark_as_synthetic()` and `mark_as_original()`.
309
- 4. bugfix: minor errors have been fixed.
310
- 5. refactor: optimize BDF (Nastran) and FEM (OptiStruct) file parsing methods.
280
+ 2. bugfix: minor errors have been fixed
281
+ 3. refactor: optimize BDF (Nastran) and FEM (OptiStruct) file parsing methods.
282
+
283
+ ### v.3.4.0
284
+
285
+ 1. feat: `N2PFatigueDamage` - new module for fatigue damage calculation. It reads a
286
+ fatigue events definition file, builds the load histories, performs cycle
287
+ counting following ASTM E1049-85, and computes the damage. It supports
288
+ uniaxial and multiaxial analysis, signed von Mises, and derived event
289
+ combinations. Full documentation in the module docs folder.
290
+
291
+ 2. feat: `N2PCreateFasteners` (BETA) - new module that creates fasteners in a model
292
+ automatically. Given the plates and a rivet definition file, it builds the
293
+ required GRID, RBE2/RBE3, CBUSH and PBUSH cards, computes the fastener
294
+ stiffness (Huth, Swift, ...), and writes them into the input deck.
295
+
296
+ 3. feat: `N2PGetLoadFasteners` - new analysis mode. `TypeAnalysis` now accepts "N2P"
297
+ (the new default), "PAG" and "ALTAIR", instead of only "PAG" and "ALTAIR".
298
+ IMPORTANT: the default has changed, so results may differ from 3.3.0 unless
299
+ you set TypeAnalysis explicitly.
300
+
301
+ 4. feat: `N2PGetLoadFasteners` - new export format ISAMI (`TypeExport = "ISAMI"`),
302
+ including the CFH and MFH input templates. New properties `ISAMITemplate` and
303
+ `ISAMIOptions` to control it.
304
+
305
+ 5. refactor: `N2PGetLoadFasteners` - much faster. The bypass box calculation now uses the
306
+ new fast adjacency index; adjacency used to be around 85% of the analysis
307
+ time.
308
+
309
+ 6. refactor: `find_cards()` is more flexible: filters now accept collections of values,
310
+ None, and integers of any type, so you can query many IDs in a single call.
311
+ Its documentation has been rewritten with all the categories, how the
312
+ criteria combine, and a complete set of examples.
313
+
314
+ 7. feat: New supported cards: SET, SET1 and SET3, plus a large number of Nastran and
315
+ OptiStruct cards that were missing or that behaved differently in each
316
+ solver (CQUAD4, CWELD/PWELD, MAT8, MPC/MPCADD, PBAR, PBEAM, PGAP, PLOAD4,
317
+ PROD, PSHELL, PSOLID, RBAR, RBE1/RBE2/RBE3, RSPLINE, SPC, SPCD, ...).
318
+
319
+ 8. feat: New methods to write a modified deck back to disk: `update_model()` and
320
+ `create_bdf_file()`, plus new card level operations (`remap_card`,
321
+ `set_raw_content_and_remap`, `IsValid`, `IsModified`, `mark_as_synthetic`,
322
+ `mark_as_original`).
323
+
324
+ 9. feat: The messages produced when reading a Nastran/OptiStruct input deck are now
325
+ reported with their real severity (info, warning or error) instead of
326
+ always as an error, and every read/write operation on a card reports what
327
+ the reader detected, so problems in the deck are no longer silent.
328
+
329
+ 10. feat: New `N2PLog.set_input_checking()` / `is_input_checking()` to turn the input
330
+ deck checking messages on and off. It also applies to models that are
331
+ already loaded.
332
+
333
+ 11. bugfix: HDF5 export. The `ExportLocation` path is now set correctly and reports an
334
+ error if a folder is given instead of a file.
335
+
336
+ 12. bugfix: `create_bdf_file()` returned an internal object; it now returns the path of
337
+ the generated bdf file.
338
+
339
+ 13. bugfix: Fastener stiffness. The Swift shear stiffness formula was wrong.
340
+
341
+ 14. bugfix: Total moments are now computed as max-abs in N2P and PAG modes and as -mean
342
+ in ALTAIR mode (previously only PAG used max-abs).
343
+
344
+ 15. bugfix: Bearing loads are computed in the material coordinate system, and CBUSH
345
+ elements without an associated coordinate system are handled correctly.
346
+
347
+ 16. bugfix: Several robustness fixes so the fastener modules no longer crash on
348
+ imperfect models: out of range indexes when getting joints, incomplete
349
+ property dictionaries, bypass box edge cases (NODATA is now 0), and points
350
+ that fall exactly on a node.
311
351
 
312
352
  # Documentation
313
353
 
@@ -0,0 +1,59 @@
1
+ [build-system]
2
+ requires = ["setuptools>=67.8.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "NaxToPy"
7
+ version = "3.4.0"
8
+ license = {file = "LICENSE"}
9
+ authors = [ { name = "Idaero Solutions", email = "manuel.sanchez@idaerosolutions.com" }, ]
10
+ requires-python = ">=3.9"
11
+
12
+ dependencies = [
13
+ "pythonnet>=3.0.4",
14
+ "numpy>=1.25.1",
15
+ "setuptools>=67.8.0",
16
+ "h5py>=3.8.0"
17
+ ]
18
+
19
+ description = "Package for postprocessing FEM results in Python"
20
+ readme = "README.md"
21
+
22
+ classifiers = [
23
+ "Intended Audience :: Science/Research",
24
+ "Programming Language :: Python :: 3.10",
25
+ "Programming Language :: Python :: 3.11",
26
+ "Programming Language :: Python :: 3.12",
27
+ "Programming Language :: Python :: 3.13",
28
+ "Programming Language :: Python :: 3.14",
29
+ "License :: Other/Proprietary License",
30
+ "Operating System :: Microsoft :: Windows :: Windows 10",
31
+ "Topic :: Scientific/Engineering"
32
+ ]
33
+
34
+ keywords = [
35
+ "NaxTo",
36
+ "Postprocessing",
37
+ "FEM"
38
+ ]
39
+
40
+ [project.urls]
41
+ "Homepage" = "https://www.idaerosolutions.com/Home/NaxToPy"
42
+ "Download" = "https://apps.microsoft.com/detail/XP9MMH0KDKGRJN?hl=en-US&gl=US"
43
+ "Documentation" = "https://www.idaerosolutions.com/NaxToDocumentation/NaxTo/index.html"
44
+ "LinkedIn" = "https://www.linkedin.com/company/idaero/"
45
+
46
+ [tool.setuptools]
47
+ package-dir = {"" = "src"}
48
+ include-package-data = false
49
+
50
+ [tool.setuptools.packages.find]
51
+ where = ["src"]
52
+
53
+ [tool.setuptools.package-data]
54
+ "NaxToPy" = [
55
+ "NaxToPy.ico",
56
+ "user_functions.txt",
57
+ "Modules\\static\\fasteners\\templates\\isami\\CFH_template_Input.xlsm",
58
+ "Modules\\static\\fasteners\\templates\\isami\\MFH_template_Input.xlsx",
59
+ ]