11/*
221. SetSteeleDesignConfigurations - no API support for Strength configuration?
332. SetSteeleDesignConfigurations - no API support for Seismic configuration?
4+ 3. design_properties_parent_member_set cam't be set?
45*/
56
67include ( "../Tools/high_level_functions_support.js" ) ;
@@ -806,12 +807,27 @@ Member.prototype.GetMember = function (){
806807 */
807808Member . prototype . SteelDesignProperties = function ( enabled ) {
808809 ASSERT ( STEEL_DESIGN . isActive ( ) , "Steel design add-on must be active" ) ;
810+ ASSERT ( ! this . member . is_deactivated_for_calculation , "Calculation must be deactivated" ) ;
809811 if ( typeof enabled === "undefined" ) {
810812 enabled = true ;
811813 }
812814 this . member . design_properties_via_member = enabled ;
813815}
814816
817+ Member . prototype . SteelDesignPropertiesViaParentMemberSet = function ( design_properties_via_parent_member_set ,
818+ design_properties_parent_member_set_no ) {
819+ ASSERT ( STEEL_DESIGN . isActive ( ) , "Steel design add-on must be active" ) ;
820+ ASSERT ( ! this . member . is_deactivated_for_calculation , "Calculation must be deactivated" ) ;
821+ ASSERT ( typeof design_properties_via_parent_member_set !== "undefined" , "Enable / disable must be defined" ) ;
822+ this . member . design_properties_via_parent_member_set = design_properties_via_parent_member_set ;
823+ if ( typeof design_properties_parent_member_set_no !== "undefined" ) {
824+ ASSERT ( this . member . design_properties_via_parent_member_set , "Via parent member set must be enabled" ) ;
825+ if ( __objectExists ( design_properties_parent_member_set_no , "Member set" , member_sets ) ) {
826+ //this.member.design_properties_parent_member_set = design_properties_parent_member_set_no; // Can't be set?
827+ }
828+ }
829+ } ;
830+
815831/**
816832 * Sets Steel design types (Steel design add-on)
817833 * @param {Number } steel_effective_lengths_no Effective length number, can be undefined
@@ -863,6 +879,79 @@ Member.prototype.SetSteeleDesignConfigurations = function (member_steel_design_u
863879 }
864880} ;
865881
882+ /**
883+ * Sets Design supports
884+ * @param {Number } design_support_on_member_start Design support at member start, can be undefined
885+ * @param {Number } design_support_on_member_end Design support at member end, can be undefined
886+ */
887+ Member . prototype . SetDesignSupport = function ( design_support_on_member_start ,
888+ design_support_on_member_end ) {
889+ ASSERT ( STEEL_DESIGN . isActive ( ) , "Steel design add-on must be active" ) ;
890+ if ( typeof design_support_on_member_start !== "undefined" ) {
891+ if ( __objectExists ( design_support_on_member_start , "Design support" , design_supports ) ) {
892+ this . member . design_support_on_member_start = design_support_on_member_start ;
893+ }
894+ }
895+ if ( typeof design_support_on_member_end !== "undefined" ) {
896+ if ( __objectExists ( design_support_on_member_end , "Design support" , design_supports ) ) {
897+ this . member . design_support_on_member_end = design_support_on_member_end ;
898+ }
899+ }
900+ } ;
901+
902+ /**
903+ * Sets Deflection analysis
904+ * @param {String } deflection_check_direction Check direction (LOCAL_AXIS_Z, LOCAL_AXIS_Y, LOCAL_AXIS_Z_AND_Y, RESULTING_AXIS), can be undefined (LOCAL_AXIS_Z_AND_Y as default)
905+ * @param {String } deflection_check_displacement_reference Displacement reference (DEFORMED_SEGMENT_ENDS, DEFORMED_UNDEFORMED_SYSTEM), can be undefined (DEFORMED_SEGMENT_ENDS as default)
906+ * @param {Boolean } active_z Segment in z-axis - active, can be undefined (true as default)
907+ * @param {Number } length_z Segment in z-axis - length, can be undefined (member length as default)
908+ * @param {Number } precamber_z Segment in z-axis - precamber, can be undefined (0.0 as default)
909+ */
910+ Member . prototype . SetDeflectionAnalysis = function ( deflection_check_direction ,
911+ deflection_check_displacement_reference ,
912+ active_z ,
913+ length_z ,
914+ precamber_z /*,
915+ active_y,
916+ length_y,
917+ precamber_y*/ ) {
918+ ASSERT ( STEEL_DESIGN . isActive ( ) , "Steel design add-on must be active" ) ;
919+ this . member . deflection_check_direction = GetMemberDesignSupportCheckDirection ( deflection_check_direction ) ;
920+ this . member . deflection_check_displacement_reference = GetMemberDesignCheckDisplacementDirection ( deflection_check_displacement_reference ) ;
921+ if ( typeof active_z !== "undefined" ) {
922+ ASSERT ( this . member . deflection_check_direction !== members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y , "Check direction can't be " + members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y ) ;
923+ this . member . deflection_segments_z_axis [ 1 ] . active = active_z ;
924+ }
925+ if ( typeof length_z !== "undefined" ) {
926+ ASSERT ( this . member . deflection_check_direction !== members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y , "Check direction can't be " + members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y ) ;
927+ this . member . deflection_segments_defined_length_z_axis_enabled = true ;
928+ this . member . deflection_segments_z_axis [ 1 ] . length = length_z ;
929+ }
930+ else {
931+ this . member . deflection_segments_defined_length_z_axis_enabled = false ;
932+ }
933+ if ( typeof precamber_z !== "undefined" ) {
934+ ASSERT ( this . member . deflection_check_direction !== members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y , "Check direction can't be " + members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y ) ;
935+ this . member . deflection_segments_z_axis [ 1 ] . precamber = precamber_z ;
936+ }
937+ /*if (typeof active_y !== "undefined") {
938+ ASSERT(this.member.deflection_check_direction !== members.DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z, "Check direction can't be " + members.DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z);
939+ this.member.deflection_segments_y_axis[1].active = active_y;
940+ }
941+ if (typeof length_y !== "undefined") {
942+ ASSERT(this.member.deflection_check_direction !== members.DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z, "Check direction can't be " + members.DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z);
943+ this.member.deflection_segments_defined_length_y_axis_enabled = true;
944+ this.member.deflection_segments_y_axis[1].length = length_y;
945+ }
946+ else {
947+ this.member.deflection_segments_defined_length_y_axis_enabled = false;
948+ }
949+ if (typeof precamber_y !== "undefined") {
950+ ASSERT(this.member.deflection_check_direction !== members.DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z, "Check direction can't be " + members.DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z);
951+ this.member.deflection_segments_y_axis[1].precamber = precamber_y;
952+ }*/
953+ } ;
954+
866955/**
867956* Support function for section distributions (private), more info can be find there
868957*/
@@ -1145,3 +1234,45 @@ function GetMemberSectionAlignment(section_alignment) {
11451234 return members . SECTION_ALIGNMENT_TOP ;
11461235 }
11471236}
1237+
1238+ function GetMemberDesignSupportCheckDirection ( direction_type ) {
1239+ const direction_types_dict = {
1240+ "LOCAL_AXIS_Z" : members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z ,
1241+ "LOCAL_AXIS_Y" : members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Y ,
1242+ "LOCAL_AXIS_Z_AND_Y" : members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z_AND_Y ,
1243+ "RESULTING_AXIS" : members . DEFLECTION_CHECK_DIRECTION_RESULTING_AXIS
1244+ } ;
1245+
1246+ if ( direction_type !== undefined ) {
1247+ var type = direction_types_dict [ direction_type ] ;
1248+ if ( type === undefined ) {
1249+ console . log ( "Wrong design support check direction type. Value was: " + direction_type ) ;
1250+ console . log ( "Correct values are: ( " + Object . keys ( direction_types_dict ) + ")" ) ;
1251+ type = members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z_AND_Y ;
1252+ }
1253+ return type ;
1254+ }
1255+ else {
1256+ return members . DEFLECTION_CHECK_DIRECTION_LOCAL_AXIS_Z_AND_Y ;
1257+ }
1258+ }
1259+
1260+ function GetMemberDesignCheckDisplacementDirection ( direction_type ) {
1261+ const direction_types_dict = {
1262+ "DEFORMED_SEGMENT_ENDS" : members . DEFLECTION_CHECK_DISPLACEMENT_REFERENCE_DEFORMED_SEGMENT_ENDS ,
1263+ "DEFORMED_UNDEFORMED_SYSTEM" : members . DEFLECTION_CHECK_DISPLACEMENT_REFERENCE_DEFORMED_UNDEFORMED_SYSTEM
1264+ } ;
1265+
1266+ if ( direction_type !== undefined ) {
1267+ var type = direction_types_dict [ direction_type ] ;
1268+ if ( type === undefined ) {
1269+ console . log ( "Wrong design support check displacement type. Value was: " + direction_type ) ;
1270+ console . log ( "Correct values are: ( " + Object . keys ( direction_types_dict ) + ")" ) ;
1271+ type = members . DEFLECTION_CHECK_DISPLACEMENT_REFERENCE_DEFORMED_SEGMENT_ENDS ;
1272+ }
1273+ return type ;
1274+ }
1275+ else {
1276+ return members . DEFLECTION_CHECK_DISPLACEMENT_REFERENCE_DEFORMED_SEGMENT_ENDS ;
1277+ }
1278+ }
0 commit comments