Skip to content

unp_profile

structural_sections.steel.profile_definitions.unp_profile

UNP-Profile.

Classes:

  • UNPProfile

    Representation of U/C shaped profiles.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile dataclass

UNPProfile(
    *,
    top_flange_total_width: MM,
    top_flange_thickness: MM,
    bottom_flange_total_width: MM,
    bottom_flange_thickness: MM,
    total_height: MM,
    web_thickness: MM,
    top_root_fillet_radius: MM = 0.0,
    top_toe_radius: MM = 0.0,
    top_outer_corner_radius: MM = 0.0,
    bottom_root_fillet_radius: MM = 0.0,
    bottom_toe_radius: MM = 0.0,
    bottom_outer_corner_radius: MM = 0.0,
    top_slope: PERCENTAGE = 0.0,
    bottom_slope: PERCENTAGE = 0.0,
    name: str = "UNP-Profile",
    plotter: Callable[[Profile], Figure] = plot_shapes,
)

Bases: Profile

Representation of U/C shaped profiles.

For standard profiles, use the specific standard profile class like UNP. For example,

unp_profile = UNP.UNP200

Attributes:

  • top_flange_total_width (MM) –

    The total width of the top flange, measured halfway the total width of the element [mm].

  • top_flange_thickness (MM) –

    The thickness of the top flange [mm].

  • bottom_flange_total_width (MM) –

    The total width of the bottom flange, measured halfway the total width of the element [mm].

  • bottom_flange_thickness (MM) –

    The thickness of the bottom flange [mm].

  • total_height (MM) –

    The total height of the profile [mm].

  • web_thickness (MM) –

    The thickness of the web [mm].

  • top_root_fillet_radius (MM) –

    The radius of the curved corners of the top flange. Default is 0, meaning sharp corner.

  • top_toe_radius (MM) –

    The radius of the outer corners of the top flange. Default is 0, meaning sharp corner.

  • top_outer_corner_radius (MM) –

    The radius of the outer corners of the top flange. Default is 0, meaning sharp corner.

  • bottom_root_fillet_radius (MM) –

    The radius of the curved corners of the bottom flange. Default is 0, meaning sharp corner.

  • bottom_toe_radius (MM) –

    The radius of the outer corners of the bottom flange. Default is 0, meaning sharp corner.

  • bottom_outer_corner_radius (MM) –

    The radius of the outer corners of the bottom flange. Default is 0, meaning sharp corner.

  • top_slope (PERCENTAGE) –

    The slope of the top flange. Default is 0.

  • bottom_slope (PERCENTAGE) –

    The slope of the bottom flange. Default is 0.

  • name (str) –

    The name of the profile. Default is "UNP-Profile". If corrosion is applied, the name will include the corrosion value.

  • plotter (Callable[[Profile], Figure]) –

    The plotter function to visualize the profile (default: plot_shapes).

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.bottom_flange_thickness instance-attribute

bottom_flange_thickness: MM

The thickness of the bottom flange [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.bottom_flange_total_width instance-attribute

bottom_flange_total_width: MM

The total width of the bottom flange [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.bottom_outer_corner_radius class-attribute instance-attribute

bottom_outer_corner_radius: MM = 0.0

The radius of the outer corners of the bottom flange. Default is 0, meaning sharp corner.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.bottom_root_fillet_radius class-attribute instance-attribute

bottom_root_fillet_radius: MM = 0.0

The radius of the curved corners of the bottom flange. Default is 0, meaning sharp corner.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.bottom_slope class-attribute instance-attribute

bottom_slope: PERCENTAGE = 0.0

The slope of the bottom flange. Default is 0.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.bottom_toe_radius class-attribute instance-attribute

bottom_toe_radius: MM = 0.0

The radius of the outer corners of the bottom flange. Default is 0, meaning sharp corner.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.max_thickness property

max_thickness: MM

Maximum element thickness of the profile [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.name class-attribute instance-attribute

name: str = 'UNP-Profile'

The name of the profile. Default is "UNP-Profile". If corrosion is applied, the name will include the corrosion value.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.plotter class-attribute instance-attribute

plotter: Callable[[Profile], Figure] = plot_shapes

The plotter function to visualize the profile (default: plot_shapes).

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.top_flange_thickness instance-attribute

top_flange_thickness: MM

The thickness of the top flange [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.top_flange_total_width instance-attribute

top_flange_total_width: MM

The total width of the top flange [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.top_outer_corner_radius class-attribute instance-attribute

top_outer_corner_radius: MM = 0.0

The radius of the outer corners of the top flange. Default is 0, meaning sharp corner.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.top_root_fillet_radius class-attribute instance-attribute

top_root_fillet_radius: MM = 0.0

The radius of the curved corners of the top flange. Default is 0, meaning sharp corner.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.top_slope class-attribute instance-attribute

top_slope: PERCENTAGE = 0.0

The slope of the top flange. Default is 0.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.top_toe_radius class-attribute instance-attribute

top_toe_radius: MM = 0.0

The radius of the outer corners of the top flange. Default is 0, meaning sharp corner.

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.total_height instance-attribute

total_height: MM

The total height of the profile [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.web_thickness instance-attribute

web_thickness: MM

The thickness of the web [mm].

structural_sections.steel.profile_definitions.unp_profile.UNPProfile.with_corrosion

with_corrosion(corrosion: MM = 0) -> UNPProfile

Apply corrosion to the UNP-profile and return a new UNP-profile instance.

The name attribute of the new instance will be updated to reflect the total corrosion applied including any previous corrosion indicated in the original name.

Parameters:

  • corrosion (MM, default: 0 ) –

    Corrosion per side (default is 0).

Returns:

  • UNPProfile

    A new UNP-profile instance with the applied corrosion.

Raises:

  • ValueError

    If the profile has fully corroded.

Source code in blueprints/structural_sections/steel/profile_definitions/unp_profile.py
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
def with_corrosion(self, corrosion: MM = 0) -> UNPProfile:
    """Apply corrosion to the UNP-profile and return a new UNP-profile instance.

    The name attribute of the new instance will be updated to reflect the total corrosion applied
    including any previous corrosion indicated in the original name.

    Parameters
    ----------
    corrosion : MM, optional
        Corrosion per side (default is 0).

    Returns
    -------
    UNPProfile
        A new UNP-profile instance with the applied corrosion.

    Raises
    ------
    ValueError
        If the profile has fully corroded.
    """
    raise_if_negative(corrosion=corrosion)

    if corrosion == 0:
        return self

    # Use a buffer dict to store updated dimensions
    buffer = {
        "top_flange_total_width": self.top_flange_total_width - 2 * corrosion,
        "top_flange_thickness": self.top_flange_thickness - 2 * corrosion,
        "bottom_flange_total_width": self.bottom_flange_total_width - 2 * corrosion,
        "bottom_flange_thickness": self.bottom_flange_thickness - 2 * corrosion,
        "total_height": self.total_height - 2 * corrosion,
        "web_thickness": self.web_thickness - 2 * corrosion,
        "top_root_fillet_radius": self.top_root_fillet_radius + corrosion,
        "top_toe_radius": max(0, self.top_toe_radius - corrosion),
        "top_outer_corner_radius": max(0, self.top_outer_corner_radius - corrosion),
        "bottom_root_fillet_radius": self.bottom_root_fillet_radius + corrosion,
        "bottom_toe_radius": max(0, self.bottom_toe_radius - corrosion),
        "bottom_outer_corner_radius": max(0, self.bottom_outer_corner_radius - corrosion),
    }

    if any(
        buffer[thickness] < FULL_CORROSION_TOLERANCE
        for thickness in (
            "top_flange_thickness",
            "bottom_flange_thickness",
            "web_thickness",
        )
    ):
        raise ValueError("The profile has fully corroded.")

    name = update_name_with_corrosion(self.name, corrosion=corrosion)

    return UNPProfile(
        top_flange_total_width=buffer["top_flange_total_width"],
        top_flange_thickness=buffer["top_flange_thickness"],
        bottom_flange_total_width=buffer["bottom_flange_total_width"],
        bottom_flange_thickness=buffer["bottom_flange_thickness"],
        total_height=buffer["total_height"],
        web_thickness=buffer["web_thickness"],
        top_root_fillet_radius=buffer["top_root_fillet_radius"],
        top_toe_radius=buffer["top_toe_radius"],
        top_outer_corner_radius=buffer["top_outer_corner_radius"],
        bottom_root_fillet_radius=buffer["bottom_root_fillet_radius"],
        bottom_toe_radius=buffer["bottom_toe_radius"],
        bottom_outer_corner_radius=buffer["bottom_outer_corner_radius"],
        top_slope=self.top_slope,
        bottom_slope=self.bottom_slope,
        name=name,
        plotter=self.plotter,
    )