Skip to content

CenterHole

The CenterHole model records a center hole that the drawing specifies by a standard (for example DIN 332-A 2,5x5,3 or ISO 6411-A 2/4.25). It stores the standard and the form as written, the pilot and outer diameters where the drawing states them, whether the hole must, may or must not remain on the finished part, the thread of a threaded center hole, the quantity, a normalised label and a confidence score.

For the threaded forms of DIN 332-2 (D, DR, DS), thread carries the thread (M16 in DIN 332-D M16). A drawing that writes the countersink's two diameters instead of the thread (DIN 332-D 8,4x12,2) gets the thread those diameters stand for in the standard's table (M8). thread needs werk24 2.9.0 or newer.

requirement

requirement says whether the center hole must, may or must not remain on the finished part, following ISO 6411:

Value Meaning Typical wording
REQUIRED The center hole must remain on the finished part. required, erforderlich
PERMITTED It may remain, but is not required. A hole marked "optional" is PERMITTED. permitted, optional, may remain, zulässig, darf verbleiben
NOT_PERMITTED It must not remain on the finished part. not permitted, must not remain, nicht zulässig, darf nicht verbleiben
null The drawing does not say, or what it says is contradictory.

The requirement is read from text, in two places:

  1. In the callout itself, before or after the designation, with or without brackets: DIN 332-A 2,5x5,3 (not permitted), Center hole (optional) DIN 332. What the callout says always wins.
  2. In a note on the drawing that states it, such as Center holes not permitted on the finished part or Zentrierbohrung links am Fertigteil nicht zulässig.
    • A note that names no side applies to every center hole on the part.
    • A note that names a side (left or right) is applied only when the part has exactly two center holes, one at each end, shown in the same view. The hole whose callout sits further left on the drawing is the left one.
    • Two notes that disagree leave requirement as null.

The ISO 6411 graphical symbols on their own, without words, are not read. To get the requirement in the response, write it as text in the callout or in a note.

Bases: Feature

Represents a center hole specified by a standard (e.g. DIN 332-A 2,5x5,3, ISO 6411-A 2/4.25, DIN 332-D M16).

PARAMETER DESCRIPTION
reference_id

Reference ID to identify the object.

TYPE: int

label

A short description of the feature in a human-readable format.

TYPE: str

confidence

Confidence in the feature extraction or interpretation.

TYPE: Confidence | None

quantity

The number of center holes or instances. Must be at least 1.

TYPE: int

standard

The standard the center hole is specified by, as written on the drawing.

TYPE: str

form

The form defined by the standard (e.g. A, B, R, or D, DR, DS for the threaded forms of DIN 332-2), if stated.

TYPE: str | None DEFAULT: None

pilot_diameter

The diameter of the pilot hole (e.g. 2.5 in A 2,5x5,3), if stated. For the threaded forms of DIN 332-2 the pilot is the thread's core hole and is normally not written.

TYPE: Size | None DEFAULT: None

outer_diameter

The outer diameter of the countersink (e.g. 5.3 in A 2,5x5,3), if stated. For the threaded forms of DIN 332-2 this is the countersink's outer diameter d4. A drawing may state the countersink's two diameters d3 x d4 instead of the thread (e.g. DIN 332-D 8,4x12,2, the row for M8): 12.2 is d4, and d3 (8.4) is fixed by the thread in the standard's table, so it is carried by thread rather than by a field of its own.

TYPE: Size | None DEFAULT: None

requirement

Whether the center hole must, may or must not remain on the finished part, if stated.

TYPE: CenterHoleRequirement | None DEFAULT: None

thread

The thread in a threaded center hole (e.g. M16 in DIN 332-D M16, DIN 332-2 forms D, DR and DS), or None for a center hole without a thread. A pitch that is not written is the standard coarse pitch.

TYPE: ThreadISOMetric | ThreadSM | ThreadUTS | ThreadACME | ThreadWhitworth | ThreadKnuckle | ThreadNPT | None DEFAULT: None

Source code in werk24/models/v2/models.py
class CenterHole(Feature):
    """
    Represents a center hole specified by a standard (e.g.
    `DIN 332-A 2,5x5,3`, `ISO 6411-A 2/4.25`, `DIN 332-D M16`).
    """

    quantity: int = Field(
        ...,
        ge=1,
        description="The number of center holes or instances. Must be at least 1.",
        examples=[2],
    )
    standard: str = Field(
        ...,
        description="The standard the center hole is specified by, as written on the drawing.",
        examples=["DIN 332"],
    )
    form: Optional[str] = Field(
        None,
        description=(
            "The form defined by the standard (e.g. `A`, `B`, `R`, or `D`, "
            "`DR`, `DS` for the threaded forms of DIN 332-2), if stated."
        ),
        examples=["A"],
    )
    pilot_diameter: Optional[Size] = Field(
        None,
        description=(
            "The diameter of the pilot hole (e.g. `2.5` in `A 2,5x5,3`), if "
            "stated. For the threaded forms of DIN 332-2 the pilot is the "
            "thread's core hole and is normally not written."
        ),
        examples=[
            Size(
                size_type=SizeType.DIAMETER,
                value=Decimal("2.5"),
                tolerance=None,
                unit="millimeter",
            )
        ],
    )
    outer_diameter: Optional[Size] = Field(
        None,
        description=(
            "The outer diameter of the countersink (e.g. `5.3` in `A 2,5x5,3`), "
            "if stated. For the threaded forms of DIN 332-2 this is the "
            "countersink's outer diameter d4. A drawing may state the "
            "countersink's two diameters d3 x d4 instead of the thread (e.g. "
            "`DIN 332-D 8,4x12,2`, the row for M8): `12.2` is d4, and d3 "
            "(`8.4`) is fixed by the thread in the standard's table, so it "
            "is carried by `thread` rather than by a field of its own."
        ),
    )
    requirement: Optional[CenterHoleRequirement] = Field(
        None,
        description="Whether the center hole must, may or must not remain on the finished part, if stated.",
    )
    thread: Optional[ThreadUnion] = Field(
        None,
        description=(
            "The thread in a threaded center hole (e.g. `M16` in "
            "`DIN 332-D M16`, DIN 332-2 forms D, DR and DS), or None for a "
            "center hole without a thread. A pitch that is not written is "
            "the standard coarse pitch."
        ),
    )

Bases: str, Enum

Whether a center hole must remain on the finished part (ISO 6411).

  • REQUIRED: the center hole is required on the finished part.
  • PERMITTED: the center hole may remain, but is not required (often written as "optional").
  • NOT_PERMITTED: the center hole must not remain on the finished part.
Source code in werk24/models/v2/enums.py
class CenterHoleRequirement(str, Enum):
    """Whether a center hole must remain on the finished part (ISO 6411).

    - REQUIRED: the center hole is required on the finished part.
    - PERMITTED: the center hole may remain, but is not required (often
      written as "optional").
    - NOT_PERMITTED: the center hole must not remain on the finished part.
    """

    REQUIRED = "REQUIRED"
    PERMITTED = "PERMITTED"
    NOT_PERMITTED = "NOT_PERMITTED"