Skip to content

P Family

Pot cores and their variants. These shapes provide partial or full shielding of the winding, reducing electromagnetic interference.

Shapes

P - Pot Core

Fully enclosed pot core with a cylindrical winding area.

Dimension Description
A Overall diameter
B Overall height (one half)
C Winding window height
D Base height
E Center post diameter
F Winding area outer diameter
G Inner dimension
H Additional dimension

P cores have 4 subtypes, each using a slightly different dimension set.

Class hierarchy: P(IPiece)


PQ - Pot Core, Quasi-Planar

Modified pot core with a more rectangular profile, optimized for PCB mounting while maintaining some shielding.

Dimensions: A, B, C, D, E, F, G, H

Class hierarchy: Pq(P)


PM - Pot Core, Modified

Modified pot core geometry with non-circular outer profile.

Dimensions: A, B, C, D, E, F, G, H

Class hierarchy: Pm(P)


RM - Pot Core, Rectangular

Rectangular pot core combining the shielding benefits of pot cores with the mounting convenience of rectangular shapes.

Dimension Description
A-H Standard pot core dimensions
J Additional dimension

RM cores have 4 subtypes.

Class hierarchy: Rm(P)

Subtypes

P and RM families support multiple subtypes:

# P family 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"],      # No "C"
    4: ["A", "B", "C", "D", "E", "F", "G", "H"],
}

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

Generating a PQ Core

from OpenMagneticsVirtualBuilder.builder import Builder
import copy

builder = Builder("CadQuery")

pq_shape = {
    "family": "pq",
    "name": "PQ 40/40",
    "familySubtype": "1",
    "dimensions": {
        "A": {"nominal": 0.0404},
        "B": {"nominal": 0.0386},
        "C": {"nominal": 0.0287},
        "D": {"nominal": 0.0275},
        "E": {"nominal": 0.0285},
        "F": {"nominal": 0.0135},
    }
}

geo_desc = [
    {"type": "half set", "shape": copy.deepcopy(pq_shape),
     "rotation": [0, 0, 0], "coordinates": [0, 0], "machining": None},
    {"type": "half set", "shape": copy.deepcopy(pq_shape),
     "rotation": [3.14159265359, 0, 0], "coordinates": [0, 0], "machining": None},
]

step_path, stl_path = builder.get_core("PQ4040", geo_desc, output_path="./output/")