SCHEMA PWB_schema; (* Defined Data Types *) TYPE board_side = ENUMERATION OF ( top , bottom ); END_TYPE; (* Entity Definitions *) ENTITY physical_entity ABSTRACT SUPERTYPE OF ( ONEOF( physical_object , physical_feature ) ); description : STRING; total_length : positive_length_measure; total_width : positive_length_measure; total_diagonal : positive_length_measure; total_height : positive_length_measure; total_thickness : positive_length_measure; photos : image; primary_structural_material : solid_material; analysis_problems : LIST[0:?] OF analysis_problem; (* NOTE: Some of the subtypes of physical_entity will have a list of supported analysis models. This list must be consistent with the analysis models defined for each physical_entity in the analysis_models_schema. For now, we are implementing this as a comment in the definition of the subtype *) END_ENTITY; ENTITY physical_object ABSTRACT SUPERTYPE OF( part ) SUBTYPE OF ( physical_entity ); END_ENTITY; ENTITY physical_feature ABSTRACT SUPERTYPE OF( ONEOF( pwb_feature , component_occurrence ) ) SUBTYPE OF ( physical_entity ); (* All the subtypes of physical_feature must have an attribute that links them to a subtype of physical_entity. For instance, pwb_feature should have an attribute called "associated_pwb" of type "pwb", which is a physical_entity *) END_ENTITY; ENTITY pwb_feature SUPERTYPE OF ( ONEOF( pwb_passage , pwb_layer ) ) SUBTYPE OF ( physical_feature ); associated_pwb : pwb; END_ENTITY; ENTITY part ABSTRACT SUPERTYPE OF( ONEOF ( unimaterial_part , multimaterial_part , assembly ) ) SUBTYPE OF ( physical_object ); part_number : id; cost : money; END_ENTITY; ENTITY unimaterial_part SUBTYPE OF ( part ); END_ENTITY; ENTITY multimaterial_part ABSTRACT SUPERTYPE OF( ONEOF ( electrical_component , pwb ) ) SUBTYPE OF ( part ); END_ENTITY; ENTITY pwb SUBTYPE OF( multimaterial_part ); layers : LIST [1:?] OF pwb_layer; specific_coefficient_of_thermal_bending : REAL; core_material : solid_material; core_thickness : positive_length_measure; multi_stratum_features : SET [1:?] OF pwb_passage; (* SUPPORTED_ANALYSIS_MODELS : pwb_thermal_bending_model pwb_plane_strain_warpage_model *) END_ENTITY; ENTITY pwb_passage ABSTRACT SUPERTYPE OF ( plated_through_passage ) SUBTYPE OF( pwb_feature ); passage_location : location; from_layer : pwb_layer; to_layer : pwb_layer; hole_diameter : positive_length_measure; hole_height : positive_length_measure; aspect_ratio : positive_real; WHERE wr1 : hole_height = SELF\pwb_feature.associated_object.total_thickness; wr2 : aspect_ratio = hole_height/hole_diameter; END_ENTITY; ENTITY plated_through_passage ABSTRACT SUPERTYPE OF( ONEOF ( plated_through_hole , pwb_via ) ) SUBTYPE OF( pwb_passage ); land_radius : positive_length_measure; plating_material : solid_material; plating_thickness : positive_length_measure; land_thickness : positive_length_measure; outer_corner_radius : positive_length_measure; inner_corner_radius : positive_length_measure; WHERE wr1 : hole_height = SELF\pwb_passage.associated_object.total_thickness; (* SUUPORTED ANALYSIS MODELS : plated_through_passage_deformation_model *) END_ENTITY; ENTITY plated_through_hole SUBTYPE OF( plated_through_passage ); (* SUPPORTED_ANALYSIS_MODELS : plated_through_hole_axisymmetric_model *) END_ENTITY; ENTITY pwb_via SUBTYPE OF( plated_through_passage ); END_ENTITY; ENTITY pwb_layer SUBTYPE OF( pwb_feature ); name : STRING; thickness : positive_length_measure; material : solid_material; END_ENTITY; END_SCHEMA (*PWB *); (* ******************************************************** Version : 960705 author: A. Scholand (gt0540b@prism.gatech.edu) guidelines: v0.1 changes: updated to guidelines Version : 1.0 Developed by: Diego R. Tamburini (gt1423b@cad.gatech.edu) Russell S. Peak (peak@cad.gatech.edu) Engineering Information Systems Laboratory Georgia Institute of Technology Atlanta, GA Date: June 3, 1996 ********************************************************* *)