General Tolerances¶
The Title Block typically lists the General Tolerances. They indicate what deviations from the nominal geometry are tolerable when they are not explicitly annotated on the measures, angles or GD&Ts.
Enrichments¶
Translation to Tolerance Tables¶
Whenever WERK24 finds General Tolerances on the Title Block, we return all associated tolerance tables. This allows you to deal with local and foreign norms in exactly the same way.
Supported General Tolerance Standards¶
Currently, we support the parsing of the ISO 2786 and the withdrawn DIN 7168. The data models are designed so that future support of per-factory and per-drawing defintions can be supported. If you require the support of a national standard, please reach out to us.
Tolerance Standard | Support | Standard Status | Comment |
---|---|---|---|
DIN_7168 | full | Retracted | Versions: DIN 7168-1:1981-05, DIN 7168-2:1986-07, DIN 7168:1991-04 |
ISO_2768 | full | Active | Versions: ISO 2768-1:1989-11 |
ISO_4759_1 | limited | Active | Versions: ISO 4759-1:1978-12, ISO 4759-1:2000-11 |
DEFINED_ON_SHEET | limited | Used when the handling of unspecified tolerances is handled directly on the sheet |
Model¶
Extracted information can be accessed from the W24GeneralTolerances
Model.
W24GeneralTolerances¶
Object representing the General Tolerances indicated on the Title Block of the Technical Drawing.
Properties¶
-
position
: Refer to #/definitions/W24BaseFeaturePosition. -
blurb
(string) -
tolerance_standard
: Refer to #/definitions/W24GeneralTolerancesStandard. -
principle
: Refer to #/definitions/W24GeneralTolerancesPrinciple. -
angular_class
: Refer to #/definitions/W24ToleranceClass. -
flatness_class
: Refer to #/definitions/W24ToleranceClass. -
straightness_class
: Refer to #/definitions/W24ToleranceClass. -
linear_class
: Refer to #/definitions/W24ToleranceClass. -
radius_class
: Refer to #/definitions/W24ToleranceClass. -
runout_class
: Refer to #/definitions/W24ToleranceClass. -
symmetry_class
: Refer to #/definitions/W24ToleranceClass. -
perpendicularity_class
: Refer to #/definitions/W24ToleranceClass.
Definitions¶
-
W24BaseFeatureCoordinate
(object): Coordinate point
Attributes: x: x position normalized by the thumbnail's width
y: y position normalized by the thumbnail's height. -
x
(number) -
y
(number) -
W24BaseFeaturePosition
(object): Position of the Feature on the individual thumbnails normalized by the width and height of each thumbnail.
Each features position is indicated as a list of coordinates. If the list only has two elements, you are dealing with a line. If it has four or more, you are looking at a polygon
Attributes: page: Position of the Feature on the Page thumbnail
sheet: Position of the Feature on the Sheet thumbnail
sectional: Position of the Feature on the Sectional thumbnail. -
sheet
(array)- Items: Refer to #/definitions/W24BaseFeatureCoordinate.
-
canvas
(array)- Items: Refer to #/definitions/W24BaseFeatureCoordinate.
-
sectional
(array)- Items: Refer to #/definitions/W24BaseFeatureCoordinate.
-
W24GeneralTolerancesStandard
(string): Enum of all supported General Tolerance Standards. Must be one of:['DIN 7168', 'ISO 2768', 'ISO 4759-1', 'DEFINED_ON_SHEET']
. -
W24GeneralTolerancesPrinciple
(string): Enum of the supported General Tolerance Principles. Must be one of:['INDEPENDENCE', 'ENVELOPE']
. -
W24ToleranceProperty
(string): Enum of all attributes that can be described by general tolerances. Must be one of:['ANGULAR', 'FLATNESS', 'LINEAR', 'PERPENDICULARITY', 'RADIUS', 'RUNOUT', 'STRAIGHTNESS', 'SYMMETRY']
. -
W24ToleranceTableItem
(object) -
nominal_min
(number) -
nominal_max
(number) -
deviation_min
(number) -
deviation_max
(number) -
W24ToleranceClass
(object): Tolerance Class which matches an individual attribute of the General Tolerances to a tolerance property and tolerance table
Attributes: blurb: Tolerance class label for human consumption
property: Property that is being tolerated
table: Rows of the tolerance table that correspond to the selected tolerance class. -
blurb
(string) -
property
: Refer to #/definitions/W24ToleranceProperty. -
table
(array)- Items: Refer to #/definitions/W24ToleranceTableItem.
Requesting the General Tolerances¶
from werk24 import Hook, W24AskTitleBlock
from werk24.models.techread import W24TechreadMessage
from werk24.utils import w24_read_sync
# define a function to read a file and return it as bytes
from . import get_drawing_bytes
def recv_title_block(message: W24TechreadMessage) -> None:
""" print the General Tolerances when we received them
"""
if message.is_successful:
print(message.payload_dict.get('general_tolerances'))
else:
print("Exceptions occurred: {message.exceptions}")
if __name__ == "__main__":
# get your drawing bytes from a file or buffer
drawing_bytes = get_drawing_bytes()
# define what information you want to receive from the API
# and what shall be done when the info is available.
hooks = [Hook(ask=W24AskTitleBlock(), function=recv_title_block)]
# submit the request to the Werk24 API
w24_read_sync(drawing_bytes, hooks)
Example Response¶
"general_tolerances": {
"blurb": "ISO 2768-mK-E",
"tolerance_standard": "ISO 2768",
"principle": "ENVELOPE",
"angular_class": {
"blurb": "m",
"property": "ANGULAR",
"table": [
{
"nominal_min": 0.0,
"nominal_max": 10.0,
"deviation_min": -1.0,
"deviation_max": 1.0
},
{
"nominal_min": 10.0,
"nominal_max": 50.0,
"deviation_min": -0.5,
"deviation_max": 0.5
},
{
"nominal_min": 50.0,
"nominal_max": 120.0,
"deviation_min": -0.3333333333333333,
"deviation_max": 0.3333333333333333
},
{
"nominal_min": 120.0,
"nominal_max": 400.0,
"deviation_min": -0.16666666666666666,
"deviation_max": 0.16666666666666666
},
{
"nominal_min": 400.0,
"nominal_max": Infinity,
"deviation_min": -0.08333333333333333,
"deviation_max": 0.08333333333333333
}
]
},
"flatness_class": {
"blurb": "K",
"property": "FLATNESS",
"table": [
{
"nominal_min": 0.0,
"nominal_max": 10.0,
"deviation_min": -0.05,
"deviation_max": 0.05
},
{
"nominal_min": 10.0,
"nominal_max": 30.0,
"deviation_min": -0.1,
"deviation_max": 0.1
},
{
"nominal_min": 30.0,
"nominal_max": 100.0,
"deviation_min": -0.2,
"deviation_max": 0.2
},
{
"nominal_min": 100.0,
"nominal_max": 300.0,
"deviation_min": -0.4,
"deviation_max": 0.4
},
{
"nominal_min": 300.0,
"nominal_max": 1000.0,
"deviation_min": -0.6,
"deviation_max": 0.6
},
{
"nominal_min": 1000.0,
"nominal_max": 3000.0,
"deviation_min": -0.8,
"deviation_max": 0.8
}
]
},
"straightness_class": {
"blurb": "K",
"property": "STRAIGHTNESS",
"table": [
{
"nominal_min": 0.0,
"nominal_max": 10.0,
"deviation_min": -0.05,
"deviation_max": 0.05
},
{
"nominal_min": 10.0,
"nominal_max": 30.0,
"deviation_min": -0.1,
"deviation_max": 0.1
},
{
"nominal_min": 30.0,
"nominal_max": 100.0,
"deviation_min": -0.2,
"deviation_max": 0.2
},
{
"nominal_min": 100.0,
"nominal_max": 300.0,
"deviation_min": -0.4,
"deviation_max": 0.4
},
{
"nominal_min": 300.0,
"nominal_max": 1000.0,
"deviation_min": -0.6,
"deviation_max": 0.6
},
{
"nominal_min": 1000.0,
"nominal_max": 3000.0,
"deviation_min": -0.8,
"deviation_max": 0.8
}
]
},
"linear_class": {
"blurb": "m",
"property": "LINEAR",
"table": [
{
"nominal_min": 0.5,
"nominal_max": 3.0,
"deviation_min": -0.1,
"deviation_max": 0.1
},
{
"nominal_min": 3.0,
"nominal_max": 6.0,
"deviation_min": -0.1,
"deviation_max": 0.1
},
{
"nominal_min": 6.0,
"nominal_max": 30.0,
"deviation_min": -0.2,
"deviation_max": 0.2
},
{
"nominal_min": 30.0,
"nominal_max": 120.0,
"deviation_min": -0.3,
"deviation_max": 0.3
},
{
"nominal_min": 120.0,
"nominal_max": 400.0,
"deviation_min": -0.5,
"deviation_max": 0.5
},
{
"nominal_min": 400.0,
"nominal_max": 1000.0,
"deviation_min": -0.8,
"deviation_max": 0.8
},
{
"nominal_min": 1000.0,
"nominal_max": 2000.0,
"deviation_min": -1.2,
"deviation_max": 1.2
},
{
"nominal_min": 2000.0,
"nominal_max": 4000.0,
"deviation_min": -2.0,
"deviation_max": 2.0
},
{
"nominal_min": 4000.0,
"nominal_max": 8000.0,
"deviation_min": -3.0,
"deviation_max": 3.0
}
]
},
"radius_class": {
"blurb": "m",
"property": "RADIUS",
"table": [
{
"nominal_min": 0.5,
"nominal_max": 3.0,
"deviation_min": -0.2,
"deviation_max": 0.2
},
{
"nominal_min": 3.0,
"nominal_max": 6.0,
"deviation_min": -0.5,
"deviation_max": 0.5
},
{
"nominal_min": 6.0,
"nominal_max": 30.0,
"deviation_min": -1.0,
"deviation_max": 1.0
},
{
"nominal_min": 30.0,
"nominal_max": 120.0,
"deviation_min": -2.0,
"deviation_max": 2.0
},
{
"nominal_min": 120.0,
"nominal_max": 400.0,
"deviation_min": -4.0,
"deviation_max": 4.0
}
]
},
"runout_class": {
"blurb": "K",
"property": "RUNOUT",
"table": [
{
"nominal_min": 0.0,
"nominal_max": Infinity,
"deviation_min": -0.2,
"deviation_max": 0.2
}
]
},
"symmetry_class": {
"blurb": "K",
"property": "SYMMETRY",
"table": [
{
"nominal_min": 0.0,
"nominal_max": 100.0,
"deviation_min": -0.6,
"deviation_max": 0.6
},
{
"nominal_min": 100.0,
"nominal_max": 300.0,
"deviation_min": -0.6,
"deviation_max": 0.6
},
{
"nominal_min": 300.0,
"nominal_max": 1000.0,
"deviation_min": -0.8,
"deviation_max": 0.8
},
{
"nominal_min": 1000.0,
"nominal_max": 3000.0,
"deviation_min": -1.0,
"deviation_max": 1.0
}
]
},
"perpendicularity_class": {
"blurb": "K",
"property": "PERPENDICULARITY",
"table": [
{
"nominal_min": 0.0,
"nominal_max": 100.0,
"deviation_min": -0.4,
"deviation_max": 0.4
},
{
"nominal_min": 100.0,
"nominal_max": 300.0,
"deviation_min": -0.6,
"deviation_max": 0.6
},
{
"nominal_min": 300.0,
"nominal_max": 1000.0,
"deviation_min": -0.8,
"deviation_max": 0.8
},
{
"nominal_min": 1000.0,
"nominal_max": 3000.0,
"deviation_min": -1.0,
"deviation_max": 1.0
}
]
}
}
Error Handling¶
Things do not always run smoothly. When you request the General Tolerances, the following exceptions might be triggered.
Exception Type | Level | Description |
---|---|---|
DRAWING_FILE_FORMAT_UNSUPPORTED | ERROR | The drawing could not be read in any of the supported file formats. Refer to Limitations/DrawingFileFormats for details. |
DRAWING_FILE_SIZE_TOO_LARGE | ERROR | The drawing exceeded the file size limit. Refer to Limitations/DrawingFileSize for details. |
DRAWING_RESOLUTION_TOO_LOW | ERROR | The drawing has a low resolution and could not be read. Refer to Limitations/DrawngResolution for details. |
DRAWING_CONTENT_NOT_UNDERSTOOD | ERROR | The file could not be interpreted as Technical Drawing or does not contain a TitleBlock. |