Title Block¶
WERK24's Title Block feature allows you the programmatic access of information stored on a drawing's title block. We know, your drawings contain a variety of Title Block formats, we understand most of them. WERK24 understands complexities in the Title Blocks Fields and the Title Block Frame that are explained in the section below.
If you ever come across new types of Title Blocks, do reach out to us, we are happy to implement them for you.
Explore features of the Title Block
Designation
Use the drawing's designation
Drawing Id
Access the Drawing ID
Filename: Drawing
Access the indicated drawing filename
General Tolerances
Learn more about the drawing's general tolerances
Material
Access the Material in raw format and EN10027 equivalents
Reference Ids
Access reference IDs other than the drawing ID
Weight
Access the part's weight and weight unit
Title Block Challenges¶
In the technical drawings, there exist various challenges associated with the title block. Werk24 categorizes these challenges into two types:
-
Title Block Fields
, which encompass difficulties related to the written components within the title block -
Title Block Frame
, which refers to the issue of low-quality title block lines leading to misinterpretation.
(1) Title Block Fields¶
-
Missing Captions. To the human reader it is obvious that “Screw M3x100” is a designation (and not a drawing number or a material number 3.100 with a misread ‘x’). Because of this “obvious to humans”-phenomenon, the Designation field is frequently drawn without caption.
-
Captions in neighboring cells. Some drawings show the caption of titles on a neighboring cell. The caption can be below, above or to one side. Often the true association between caption and value can only be determined by a process of elimination.
-
Non-Standard values. The Title Block fields are free-text blocks that are filled out by the individual designer. We do our best to deal with all the creative deviations from the standards. Take the DIN ISO 2768-1-m / DIN ISO 2768-2-K in the title block below as an example. From WERK24 you receive "DIN ISO 2768-m-K-E" with the corresponding toleration tables.
(2) Title Block Frame¶
- Low Quality/Scanned. : Title Blocks from scanned/old drawings where the quality of the title block frame is compromised due to scanning. WERK24's AI understands these low quality title blocks.
Models¶
The data models are defined in the following models:
-
Requesting the Title Block: W24AskTitleBlock
-
Processing the Title Block: W24TitleBlock
Extracted information can be accessed from the W24TitleBlock
Model.
W24TitleBlock¶
Information that could be extracted from the Title Block.
Attributes:
designation: Designation of the Sheet on the Title Block
drawing_id: Main Identification Number of the Drawing
part_ids: List of Part IDs that are located on the drawing.
Keep in mind that the drawing might define multiple
variants that each specify their own part id
reference_ids: List of additional reference IDs
detected on the Drawing
general_tolerances: General Tolerances quoted on the TitleBlock
material: Material which is quoted on the TitleBlock
weight: Weight as read from the TitleBlock. NOTE: this is not
cross-checked with the material and volume of the part,
but provided as it was read on the TitleBlock.
filename_drawing: Filename of the drawing if it is explicitly
indicated on the title block
colors: List of colors detected on the TitleBlock or in the
canvas notes.
Properties¶
-
designation
: Refer to #/definitions/W24CaptionValuePair. -
drawing_id
: Refer to #/definitions/W24CaptionValuePair. -
part_ids
(array): Default:[]
. -
Items: Refer to #/definitions/W24CaptionValuePair.
-
reference_ids
(array) -
Items: Refer to #/definitions/W24CaptionValuePair.
-
general_tolerances
: Refer to #/definitions/W24GeneralTolerances. -
material
: Refer to #/definitions/W24Material. -
weight
: Refer to #/definitions/W24Weight. -
filename_drawing
: Refer to #/definitions/W24Filename. -
colors
(array): Default:[]
. -
Items: Refer to #/definitions/W24PropertyColor.
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.
-
W24Language
(string): Enum of supported languages following the naming convention of ISO/639-2B. Must be one of:['DEU', 'DUT', 'ENG', 'FRA', 'ITA', 'SPA', '__UNK__']
. -
W24TitleBlockItem
(object): Per-Language caption or value
Attributes:
language: Language in accordance with the ISO/639-2B standards
text: Text of the identification. -
position
: Refer to #/definitions/W24BaseFeaturePosition. -
language
: Refer to #/definitions/W24Language. -
text
(string) -
W24CaptionValuePair
(object): Caption-Value pair for that were found on the Title Block.
Attributes:
blurb: Caption-Value pair for human consumption
captions: List of captions in different languages. This will only return the languages that were detected and NOT translate the captions into languages that are not present on the drawing. This behavior might however change in the future. -
blurb
(string) -
captions
(array)- Items: Refer to #/definitions/W24TitleBlockItem.
-
values
(array)- Items: Refer to #/definitions/W24TitleBlockItem.
-
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.
-
W24GeneralTolerances
(object): Object representing the General Tolerances indicated on the Title Block of the Technical Drawing. -
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. -
W24MaterialCategory1
(string): An enumeration. Must be one of:['FERROUS_ALLOY', 'NONFERROUS_ALLOY', 'POLYMER', 'CERAMIC', 'COMPOSITE', 'ORGANIC']
. -
W24MaterialCategory2
(string): An enumeration. Must be one of:['STEEL', 'IRON', 'MAGNETIC_OR_ELECTRICAL_MATERIAL', 'SINTERED_POWDEDERD_METAL', 'WELDING_FILLER_MATERIAL', 'ALUMINUM', 'ANTIMONY', 'BERYLLIUM', 'BISMUTH', 'CADMIUM', 'CHROMIUM', 'COBALT', 'COPPER', 'GALLIUM', 'LEAD', 'MAGNESIUM', 'MANGANESE', 'MERCURY', 'MOLYBDENUM', 'NICKEL', 'NIOBIUM', 'PLATINUM', 'REAR_EARTHS', 'SELENIUM', 'SILICON', 'THALLIUM', 'TIN', 'TITANIUM', 'TUNGSTEN', 'VANADIUM', 'ZINC', 'ZIRCONIUM', 'THERMOPLAST', 'THERMOSET', 'THERMOPLASTIC_ELASTOMER', 'THERMOSET_ELASTOMER', 'POLYMER_FOAM', 'REFRACTORY', 'TECHNICAL_CERAMIC', 'CERAMIC_FOAM', 'MATRIX', 'REINFORCEMENT', 'WOOD']
. -
W24MaterialCategory3
(string): An enumeration. Must be one of:['STRUCTURAL_OR_CONSTRUCTIONAL_STEEL', 'STAINLESS_STEEL', 'TOOL_STEEL', 'CAST_STEEL', 'CAST_IRON', 'FERROALLOY', 'ABS', 'ABS_PC', 'ABS_PLUS_PA', 'ABS_PLUS_PA6', 'ABS_PLUS_PA66', 'ABS_PLUS_PBT', 'ABS_PLUS_PC', 'ABS_PLUS_PET', 'ABS_PLUS_PMMA', 'ABS_PLUS_PVC', 'ABS_PLUS_PVC_C', 'ABS_PLUS_SAN', 'ABS_PLUS_TPE', 'ABS_PLUS_TPES', 'ABS_PLUS_TPU', 'ABS_PP', 'ACPES', 'AES', 'AES_PLUS_PC', 'ASA', 'ASA_PC', 'ASA_PLUS_ABS', 'ASA_PLUS_AES', 'ASA_PLUS_MSAN', 'ASA_PLUS_PA', 'ASA_PLUS_PC', 'ASA_PLUS_PMMA', 'ASA_PLUS_SAN', 'ASA_PLUS_TPE', 'BMI', 'BVOH', 'CAB', 'CAP', 'CE', 'COC', 'CP', 'CPE', 'CPT', 'E_P', 'EA', 'EAA', 'EBA', 'EBACO', 'EC', 'ECTFE', 'EEA', 'EFEP', 'EMAA', 'EMAAA', 'ENBAGMA', 'ETFE', 'EVA', 'EVACO', 'EVOH', 'FEP', 'HDPE', 'HIPP', 'HIPS', 'IONOMER_RESIN', 'LCP', 'LCP_PLUS_PPS', 'LDPE', 'LDPE_EVA', 'LDPE_LLDPE', 'LLDPE', 'LMDPE', 'MABS', 'MBS', 'MDPE', 'MFA', 'PA', 'PA_MACM10_1010', 'PA_MACM12', 'PA_MACM12_PLUS_PA_12', 'PA_MXD6', 'PA_MXD6_MXDI', 'PA_PACM12', 'PA_PLUS_HDPE', 'PA_PLUS_PA66_6', 'PA_PLUS_PE', 'PA_PLUS_PP', 'PA_PLUS_PPA', 'PA_PLUS_SPS', 'PA_PLUS_TPE', 'PA_TPE', 'PA1010', 'PA1012', 'PA10T_X', 'PA11', 'PA12', 'PA12_MACMI', 'PA12_MACMI_PLUS_PA12', 'PA410', 'PA46', 'PA46_PLUS_PA6', 'PA4T', 'PA510', 'PA6', 'PA6_12', 'PA6_3T', 'PA6_66_12', 'PA6_66_136', 'PA6_66_610', 'PA6_69', 'PA6_6I', 'PA6_6T', 'PA6_IPDI', 'PA6_PA12', 'PA6_PLUS_ASA', 'PA_6_PLUS_PA_6I_6T', 'PA6_PLUS_PA12', 'PA6_PLUS_PA12_X', 'PA6_PLUS_PA66', 'PA6_PLUS_PA66_6', 'PA6_PLUS_PE', 'PA6_PLUS_PP', 'PA610', 'PA612', 'PA66', 'PA66_6', 'PA66_610', 'PA66_PLUS_PA610', 'PA66_PLUS_PA612', 'PA66_PLUS_PA6I', 'PA66_PLUS_PA6I_6T', 'PA66_PLUS_PA6I_X', 'PA66_PLUS_PE', 'PA66_PLUS_PP', 'PA66_PLUS_PPA', 'PA69', 'PA6I', 'PA6I_6T', 'PA6I_X', 'PA6T', 'PA6T_66', 'PA6T_XT_PLUS_PA6T_66', 'PA6T_6I', 'PA6T_6I_66', 'PA6T_MPMDT', 'PA6T_XT', 'PA9T', 'PAEK', 'PAI', 'PAMXD6_PA66', 'PAO', 'PAR', 'PARA', 'PB', 'PBAT', 'PBAT_PLUS_PLA', 'PBI', 'PBS', 'PBT', 'PBT_ASA', 'PBT_PC', 'PBT_PLUS_ASA', 'PBT_PLUS_PE', 'PBT_PLUS_PET', 'PBT_PLUS_PET_PLUS_ASA', 'PBT_PLUS_PETG', 'PBT_PLUS_PPE', 'PBT_PLUS_PS', 'PBT_PLUS_SAN', 'PC', 'PC_PET', 'PC_PLUS_HIPS', 'PC_PLUS_MBS', 'PC_PLUS_PBT', 'PC_PLUS_PCT', 'PC_PLUS_PET', 'PC_PLUS_PET_PLUS_PBT', 'PC_PLUS_PLA', 'PC_PLUS_PMMA', 'PC_PLUS_PPC', 'PC_PLUS_PS', 'PC_PLUS_PTFE', 'PC_PLUS_SAN', 'PC_PLUS_TPES', 'PC_PLUS_TPU', 'PC_PPC', 'PCL', 'PCT', 'PCTA', 'PCTFE', 'PCTG', 'PCTG_PLUS_PC', 'PE', 'PE_HMW', 'PE_HMWHD', 'PE_PLUS_HIPS', 'PE_UHMW', 'PEEK', 'PEI', 'PEI_PLUS_PCE', 'PEK', 'PEKEKK', 'PEKK', 'PEN', 'PESU', 'PET', 'PET_G', 'PET_PLUS_PA6', 'PET_PLUS_PA66', 'PEX_B', 'PFA', 'PFSA_PTFE', 'PGA', 'PHA', 'PHB', 'PHBV', 'PI', 'PIB', 'PK', 'PLA', 'PLA_PCL', 'PLA_PEG', 'PLA_PHA', 'PLA_PLUS_ABS', 'PLA_PLUS_HDPE', 'PLA_PLUS_PHB', 'PLA_PLUS_PMMA', 'PLGA', 'PMMA', 'PMMI', 'PMP', 'PMS', 'POM', 'POM_PLUS_MBS', 'POM_PLUS_PE', 'POM_PLUS_PTFE', 'POM_PLUS_PUR', 'PP', 'PP_PE', 'PP_PLUS_EPDM', 'PP_PLUS_EPR', 'PP_PLUS_EVA', 'PP_PLUS_PE', 'PP_PLUS_PPE_PLUS_PS', 'PPA', 'PPC', 'PPE', 'PPE_PLUS_HIPS', 'PPE_PLUS_PA', 'PPE_PLUS_PA6', 'PPE_PLUS_PA66', 'PPE_PLUS_PP', 'PPE_PLUS_PS', 'PPE_PLUS_PS_PLUS_PA', 'PPE_PLUS_TPE', 'PPE_PLUS_TPS_SEBS', 'PPOX', 'PPS', 'PPS_PLUS_PA', 'PPS_PLUS_PPE', 'PPS_PLUS_PTFE', 'PPSU', 'PPSU_PLUS_PSU', 'PS', 'PS_I', 'PS_PLUS_PE', 'PS_PLUS_PMMA', 'PS_PLUS_SPS', 'PSU', 'PSU_PLUS_ABS', 'PSU_PLUS_PC', 'PTFE', 'PTT', 'PVAL', 'PVB', 'PVC', 'PVC_C', 'PVC_C_PLUS_PVC', 'PVC_PLUS_NBR', 'PVC_PLUS_PMMA', 'PVC_PLUS_PUR', 'PVC_U', 'PVCA', 'PVDC', 'PVDF', 'PVP', 'RPS', 'SAN', 'SB', 'SMA', 'SMA_PLUS_HIPS', 'SMI', 'SMMA', 'SPS', 'SRP', 'TPC_EE_PLUS_PBT', 'TPC_ET_PLUS_EMA', 'TPC_ET_PLUS_PBT', 'TPES', 'TPU_PLUS_TPS_PLUS_TPA', 'VDF_CTFE', 'VDF_HFP', 'VINYL_CHLORIDE_BLEND', 'VLDPE', 'XLPE', 'XLPO', 'CA', 'EP', 'MA', 'MF', 'MP', 'PDAIP', 'PDAP', 'PUR', 'UF', 'UP', 'VE', 'MPR', 'PCU', 'PEBA', 'SPU', 'TPA', 'TPC', 'TPC_EE', 'TPC_ES', 'TPC_ET', 'TPE', 'TPO', 'TPO_EB', 'TPO_EO', 'TPO_EPDM_PLUS_PP', 'TPS', 'TPS_SBS', 'TPS_SEBS', 'TPS_SIS', 'TPU', 'TPU_ALES', 'TPU_ALET', 'TPU_ARES', 'TPU_ARET', 'TPU_ES', 'TPU_ET', 'TPV', 'TPV_EPDM', 'TPV_EPDM_PLUS_PP', 'TPV_IIR_HIIR', 'TPV_NBR', 'TSPCU', 'TSPU', 'ACM', 'ACSM', 'AEM', 'AU', 'BIIR', 'BR', 'CIIR', 'CM', 'CR', 'CR_NBR', 'CR_SBR', 'CSM', 'ECO', 'EPDM', 'EPDM_SBR', 'EPM', 'EPM_EPDM', 'EPT', 'EU', 'FFKM', 'FKM', 'FMQ', 'FVMQ', 'HNBR', 'IIR', 'IR', 'IR_BR', 'NBR', 'NBR_PVC', 'NBR_SBR', 'NR', 'PDMS', 'PUMA', 'PVMQ', 'RET', 'SBR', 'SBR_ACM', 'SBR_BR', 'SBR_IR', 'SBR_NR', 'SI', 'VMQ', 'VMQ_PVMQ', 'XNBR', 'XNBR_PVC', 'CARBON_FIBER_COMPOSITE', 'GLASS_FIBER_COMPOSITE', 'FIBER_REINFORCEMENT', 'STRUCTURAL_COMPOSITE', 'POLYPHENYLENE_OR_POLYSTYRENE', 'POLYPHENYLENE_OR_POLYSTYRENE_HIPS', 'POLYCARBONATE']
. -
W24Material
(object): W24 Object for Materials.
Parsed Material object that can either be associated to the TitleBlock or derived from all the available information (including the text on the canvas.
Attributes: blurb: Material Name for human consumption. This will typically include the designation and the standard.
standard: Material Standard indicated on the technical drawing. This used to be an enum - but we now have over 100 supported material standards and the number is increasing weekly. So a string seems to be more appropriate.
designation: Name of the material in accordance with the material standard. An alternative name would be material_designation.
material_category: Categorization of the material following W24MaterialCategoryX Tree. -
position
: Refer to #/definitions/W24BaseFeaturePosition. -
blurb
(string) -
standard
(string) -
designation
(string) -
material_category
(array)-
Items_0: Refer to #/definitions/W24MaterialCategory1.
-
Items_1: Refer to #/definitions/W24MaterialCategory2.
-
Items_2: Refer to #/definitions/W24MaterialCategory3.
-
-
material_family
-
material_class
-
material_type
-
material_group
-
material_standard
-
material_code
(string) -
W24UnitWeight
(string): Enum of all the supported weights
NOTE: This also includes relative weights such as kilogram per meter. Must be one of:['GRAM', 'KILOGRAM', 'POUND', 'OUNCE']
. -
W24UnitLength
(string): Enum of the supported length units . Must be one of:['METER', 'DECIMETER', 'CENTIMETER', 'MILLIMETER', 'FOOT', 'INCH', 'MICRO_INCH']
. -
W24Weight
(object): Weight of a Part - for example as indicated on the Title Block.
NOTE: this can also be a relative weight (e.g. kg per meter for profiles)
Attributes: blurb: Weight in a human-readable format.
value: Value of the Weight
weight_unit: Unit of the Weight (e.g., kg)
length_unit: Unit of the Length for relative weights (e.g., METER for meter weights of profiles)s. -
position
: Refer to #/definitions/W24BaseFeaturePosition. -
blurb
(string) -
value
(number) -
weight_unit
: Refer to #/definitions/W24UnitWeight. -
length_unit
: Refer to #/definitions/W24UnitLength. -
W24FileExtensionType
(string): Enum of the extension types.
For example, pdf and idw extensions will be mapped to DRAWING, while step and stl extensions will be mapped to MODEL. Must be one of:['DRAWING', 'MODEL', 'UNKNOWN']
. -
W24FilePathType
(string): Enum of the file path types, indicating whether a POSIX (unix) or WINDOWS path is used. When only a filename is indicated, the value will be UNKNOWN. Must be one of:['POSIX', 'WINDOWS', 'UNKNOWN']
. -
W24Filename
(object): Object describing all the information that we can deduce from a filename that was found on the TitleBlock
Attributes:
blurb: Filename and Path as it was found on the drawing. Example: /path/to/drawing.pdf
filename: Filename without the prefix. Example drawing.pdf
extension: Extension of the filename. Examples: .pdf, .tar.gz
extension_type: filetype indicated by the extension. PDF, ... extensions are mapped to DRAWING, while STEP, ... extensions are mapped to MODEL
path_type: WINDOWS or POSIX (unix) path types if we have found an absolute path. UNKNOWN if we only read a filename without prefix. -
position
: Refer to #/definitions/W24BaseFeaturePosition. -
blurb
(string) -
filename
(string) -
extension
(string) -
extension_type
: Refer to #/definitions/W24FileExtensionType. -
path_type
: Refer to #/definitions/W24FilePathType. -
W24PropertyColor
(object): Color Property.
NOTE: at this stage we do not make the colors comparable. There might be ways of doing this, but colors are complex and most color systems cannot express the complete space (e.g., RGB is not describing the glossiness of the color). -
property_type
(string): Must be one of:['COLOR']
. Default:COLOR
. -
property_subtype
-
blurb
(string)
Requesting the Title Block¶
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 Weight when we received it
"""
if message.is_successful:
print(message.payload_dict.get('weight'))
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)