Geometric Dimensioning and Toleration (GD&Ts) Frames¶
Geometric Dimensioning and Tolerancing (GD&T) is a system for defining and communicating the allowed geometric deviations from the norm geometry. These deviations can concern the shape, direction, location and run of a feature relative to a reference position. The table below gives you an overview of the available attributes.
Shape | Direction | Location | Run |
---|---|---|---|
⏤ Straightness | ∥ Parallelism | ⌖ Position | ↗ Circular Runout |
⏥ Flattness | ⟂ Perpendicularity | ◎ Concentricity | |
○ Circularity | ∠ Angularity | ◎ Coaxiality | |
⌭ Cylindricity | ⌯ Symmetry | ||
⌒ Line Profile | ⌒ Line Profile | ⌒ Line Profile | ⌰ Total Runout |
⌓ Surface Profile | ⌓ Surface Profile | ⌓ Surface Profile |
Source: Hoischen, H., & Hesser, W.(2011): Technisches Zeichnen: Grundlagen, Normen, Beispiele, darstellende Geometrie ; Lehr-, Übungs- und Nachschlagewerk für Schule, Fortbildung, Studium und Praxis ; mit mehr als 100 Tabellen 33., überarb. und aktualisierte Aufl.. Cornelsen.
Models¶
The data models are defined in the following models:
- Requesting the GD&Ts:W24AskVariantGDTs
-
Receiving the GD&Ts as W24 Object: W24AskVariantGDTsResponse
-
Processing the GD&Ts: W24GDT
Extracted information can be accessed from the W24GDT
Model.
W24GDT¶
Parent object for Geometric Dimensionsing and Toleration Frames, attaching them to the physical location on the drawing.
Attributes: frame: Representation of the GDT frame
Properties¶
-
position
: Refer to #/definitions/W24BaseFeaturePosition. -
bounding_polygon
(array) -
Items (array)
-
Items_0 (number)
-
Items_1 (number)
-
-
frame
: Refer to #/definitions/W24GDTFrame.
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.
-
W24GDTCharacteristic
(string): Enum of all possible Characteristics following ISO 1101.
!!! note When the GDT frame only describes the location of a reference datum, the value DATUM_INDICATOR is used. Must be one of:['⏤', '⏥', '○', '⌭', '⌓', '⌒', '⟂', '∠', '∥', '⌖', '◎', '⌯', '↗', '⌰', '[DATUM]']
. -
W24GDTZoneShape
(string): Enum of all zone shapes . Must be one of:['Ø', 'S⌀']
. -
W24GDTZoneValue
(object): Preliminary defintion of the GDT Zone Value Future implementation will give access to the width and extend seperately
Attributes:
blurb: String representation for human consumption e.g., 0.05/12x10°
width_min: Minimal width. Also used when no maximal width is defined.
width_max: Optional maximal width.
extend_quantity: Optional quantity of the spacing
extend_shape: Optional shape of the extend
extend_value: Optional extend value
extend_angle: Optional angle of the extend. -
blurb
(string) -
width_min
(number) -
width_max
(number) -
extend_quantity
(integer) -
extend_shape
: Refer to #/definitions/W24GDTZoneShape. -
extend_value
(number) -
extend_angle
(number) -
W24GDTZoneCombination
(string): Enum of all tolerance zone combinations . Must be one of:['CZ', 'SZ']
. -
W24GDTZoneOffset
(object): Specified offset indicated by leading UZ...
Attributes: blurb: blurb of the specified offset for human consumption. e.g., UZ+0.15, UZ-0.2, UZ+0.1:0.2. -
blurb
(string) -
W24GDTZoneConstraint
(string): Enum of the Zone Constraints . Must be one of:['OZ', 'VA', '><']
. -
W24GDTFilterType
(string): Preliminary list of feature filters
Filters remaining: RG, S, OH, SW, AB, CW. Must be one of:['G', 'S', 'SW', 'CW', 'RG', 'RS', 'OB', 'OH', 'OC', 'CB', 'CH', 'CD', 'AB', 'AH', 'AD', 'F', 'H']
. -
W24GDTFilter
(object): Abstract base class to describe feature filters
Attributes: blurb: String representation of the file for human consumption
filter_type: Filter Type to facilitate deserialization. -
blurb
(string) -
filter_type
: Refer to #/definitions/W24GDTFilterType. -
W24GDTFeatureAssociated
(string): Enum of all associated tolerated features . Must be one of:['Ⓒ', 'Ⓖ', 'Ⓝ', 'Ⓧ', 'Ⓣ']
. -
W24GDTFeatureDerived
(string): Enum of all derived features . Must be one of:['Ⓟ', 'Ⓐ']
. -
W24GDTReferenceAssociation
(string): Association of the Reference Element . Must be one of:['C', 'CE', 'CI', 'G', 'GE', 'GI', 'N', 'X']
. -
W24GDTReferenceParameter
(string): Parameter of the reference element . Must be one of:['P', 'V', 'T', 'Q']
. -
W24GDTMaterialCondition
(string): Enum for Material Conditions . Must be one of:['Ⓜ', 'Ⓛ', 'Ⓡ']
. -
W24GDTState
(string): Enum for the State . Must be one of:['Ⓕ']
. -
W24GDTDatum
(object): Preliminary implementation of the GD&T Datum
Attributes: blurb: Reference name. Typically: A,B,C ... Can also contain more complex names, e.g., (A-B-C-D)[CM]
!!! note Future implementations might allow fine-grained access to the attributes of complex names: e.g., (A-B-C-D)[CM]. -
blurb
(string) -
W24GDTFrame
(object): Representation of the Geometric Dimensioning and Toleration frame
Attributes: gdt_id: Unique id of the GDT
blurb: String representation of the label for human consumption e.g., [⌖|⌀0.3Ⓜ|A|B|C]
characteristic: Section for geometric characteristic e.g.: ⌓
zone_shape: Tolerance zone shape, e.g, S⌀
zone_value: GDT value: e.g., 0.03 Is optional to support Datum Feature Indicators
zone_combinations: Ordered list of zone combinations, e.g., CZ, SZ
zone_offset: Optional specified offset, e.g., UZ-0.2
zone_constraint: Optional zone constraint: e.g., OZ, VA
feature_filter: Optional feature filter
feature_associated: Associated toleraced feature
feature_derived: Derived Feature
reference_association: Reference element association
reference_parameter: Reference element parameter
material_condition: Material condition
state: FREE or None
data: Ordered list of data. -
gdt_id
(string) -
blurb
(string) -
characteristic
: Refer to #/definitions/W24GDTCharacteristic. -
zone_shape
: Refer to #/definitions/W24GDTZoneShape. -
zone_value
: Refer to #/definitions/W24GDTZoneValue. -
zone_combinations
(array): Default:[]
.- Items: Refer to #/definitions/W24GDTZoneCombination.
-
zone_offset
: Refer to #/definitions/W24GDTZoneOffset. -
zone_constraint
: Refer to #/definitions/W24GDTZoneConstraint. -
feature_filter
: Refer to #/definitions/W24GDTFilter. -
feature_associated
: Refer to #/definitions/W24GDTFeatureAssociated. -
feature_derived
: Refer to #/definitions/W24GDTFeatureDerived. -
reference_association
: Refer to #/definitions/W24GDTReferenceAssociation. -
reference_parameter
: Refer to #/definitions/W24GDTReferenceParameter. -
material_condition
: Refer to #/definitions/W24GDTMaterialCondition. -
state
: Refer to #/definitions/W24GDTState. -
data
(array): Default:[]
.- Items: Refer to #/definitions/W24GDTDatum.
Requesting the GD&Ts¶
from werk24 import Hook, W24AskVariantGDTs
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_gdts(message: W24TechreadMessage) -> None:
""" print the GD&Ts when we received them
"""
if message.is_successful:
print(message.payload_dict)
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=W24AskVariantGDTs(), function=recv_gdts)]
# submit the request to the Werk24 API
w24_read_sync(drawing_bytes, hooks)
Example Response¶
"gdts": [
{
"bounding_polygon": [
[
0.4561766735679779,
0.8484848484848485
],
[
0.27191166321601107,
0.8484848484848485
],
[
0.27191166321601107,
0.7985739750445633
],
[
0.4561766735679779,
0.7985739750445633
]
],
"frame": {
"gdt_id": null,
"blurb": "[\u27c2|0.03|A]",
"characteristic": "\u27c2",
"zone_shape": null,
"zone_value": {
"blurb": "0.03",
"width_min": 0.03,
"width_max": null,
"extend_quantity": null,
"extend_shape": null,
"extend": null,
"extend_angle": null
},
"zone_combinations": [],
"zone_offset": null,
"zone_constraint": null,
"feature_filter": null,
"feature_associated": null,
"feature_derived": null,
"reference_association": null,
"reference_parameter": null,
"material_condition": null,
"state": null,
"data": [
{
"blurb": "A"
}
]
}
},
{
"bounding_polygon": [
[
0.24913733609385783,
0.19607843137254902
],
[
0.11042097998619738,
0.19607843137254902
],
[
0.11042097998619738,
0.14616755793226383
],
[
0.24913733609385783,
0.14616755793226383
]
],
"frame": {
"gdt_id": null,
"blurb": "[\u23e5|0.03]",
"characteristic": "\u23e5",
"zone_shape": null,
"zone_value": {
"blurb": "0.03",
"width_min": 0.03,
"width_max": null,
"extend_quantity": null,
"extend_shape": null,
"extend": null,
"extend_angle": null
},
"zone_combinations": [],
"zone_offset": null,
"zone_constraint": null,
"feature_filter": null,
"feature_associated": null,
"feature_derived": null,
"reference_association": null,
"reference_parameter": null,
"material_condition": null,
"state": null,
"data": []
}
}
]
Standards¶
Please refer to these standards for defining GD&Ts:
- ISO TC 10 (Technical product documentation),
- ISO/TC 213 (Dimensional and geometrical product specifications and verification),
- ASME Y14.41 (Digital Product Definition Data Practices),
- ASME 14.5 (Dimensioning and Tolerancing),
- ASME Y14.5.1M (Mathematical Definition of Dimensioning and Tolerancing Principles), and
- ISO 10303 (Industrial automation systems and integration - Product data representation and exchange).