Skip to content

Shape Class Hierarchy

Class Inheritance

Each engine contains nested shape classes that implement specific core geometries. The class hierarchy follows the EN 60205 standard grouping:

classDiagram
    class IPiece {
        <<abstract>>
        +get_shape_base(data)*
        +get_negative_winding_window(dimensions)*
        +get_piece(data)
        +get_plate(data)
        +get_piece_technical_drawing(data)
        +apply_machining(piece, machining, dimensions)
        +get_dimensions_and_subtypes()
    }

    class E {
        +get_shape_base(data)
        +get_negative_winding_window(dimensions)
    }

    class P {
        +get_shape_base(data)
        +get_negative_winding_window(dimensions)
    }

    class U {
        +get_shape_base(data)
        +get_negative_winding_window(dimensions)
    }

    class T {
        +get_shape_base(data)
        +get_negative_winding_window(dimensions)
    }

    IPiece <|-- E
    IPiece <|-- P
    IPiece <|-- U
    IPiece <|-- T

    E <|-- Er
    E <|-- Ep
    E <|-- Epx
    E <|-- Efd
    E <|-- El

    Er <|-- Etd
    Er <|-- Lp
    Er <|-- Eq
    Er <|-- Ec

    P <|-- Pq
    P <|-- Rm
    P <|-- Pm

    IPiece <|-- Ur
    IPiece <|-- Ut
    U <|-- C

Shape Families and EN 60205 Naming

Class Family EN 60205 Name Base Class
E E E cores IPiece
Etd ETD E cores, round center leg Er
Er ER E cores, round center leg E
Ep EP E cores, pot-like E
Epx EPX E cores, pot-like extended E
Efd EFD E cores, flat design E
Ec EC E cores, cylindrical Er
Eq EQ E cores, square Er
El EL E cores, low profile E
Lp LP Low-profile planar Er
P P Pot cores IPiece
Pq PQ Pot cores, quasi-planar P
Pm PM Pot cores, modified P
Rm RM Pot cores, rectangular P
U U U cores IPiece
Ur UR U cores, round IPiece
Ut UT U cores, T-shape IPiece
C C Cut C-cores U
T T Toroidal cores IPiece

Dimension Naming Convention

All shapes use single-letter dimension names from EN 60205:

Dimension Meaning
A Overall width (largest horizontal dimension)
B Overall height of one half
C Winding window height
D Center leg height (below winding window)
E Center leg width or outer leg spacing
F Center leg depth / diameter
G Additional dimension (shape-specific)
H Additional dimension (shape-specific)
J Additional dimension (RM family)

Subtypes

Some shape families have multiple subtypes (1-4), each with different dimension sets:

# P family has 4 subtypes
P_DIMENSIONS_AND_SUBTYPES = {
    1: ["A", "B", "C", "D", "E", "F", "G", "H"],
    2: ["A", "B", "C", "D", "E", "F", "G", "H"],
    3: ["A", "B", "D", "E", "F", "G", "H"],
    4: ["A", "B", "C", "D", "E", "F", "G", "H"],
}

# RM family has 4 subtypes
RM_DIMENSIONS_AND_SUBTYPES = {
    1: ["A", "B", "C", "D", "E", "F", "G", "H", "J"],
    ...
}