• No results found

Component Placement Example

This section provides a step-by-step example of how PDS uses Eden and the information in the physical dimension tables to place components in a model.

Eden Modules

Eden is composed of three major modules:

1. Symbol Processors Sub-Symbol Processors 2. Physical Data Subroutines

3. Parametric Shape Definitions

These modules are designed to carry out two functions: data definition and graphic presentation.

The data associated with these modules is delivered in the following files:

˜\pdshell\lib\pip_gcom.l — object library

˜\pdshell\lib\pip_gcom.l.t — text library

The modular approach provides for more efficient storage of information in these libraries by enabling common information to be shared by different symbols.

PDS Eden for Piping - April 2002

________________

The following graphic illustrates the relationship among these modules:

Eden Module Relationships

The first line of each Eden module defines the type of module (such as symbol processor) and the module name.

This statement determines a two-character category code to be prefixed to the module name in the object library. This prefix is only used by the system; it should not be keyed in as part of the module name.

The entries in the library use the following prefixes to identify the type of data:

SP Symbol Processor

PD Physical Data Definition Module UF User Function Module

MG Model Parametric Shape Definition Module

IG Interference Envelope Parametric Shape Definition Module SS Sub-Symbol Processor Module

Each module must be given a unique name within the graphic commodity library.

22

2.Placement Symbol Processors

________________

Symbol Processors

A symbol processor is the controlling function or logic used to produce the graphics for a commodity item, piping specialty, instrument, pipe support, or interference envelope. During component placement, the symbol processor

Accesses the active component design parameters Assigns connect points

Calls the required physical data modules

Determines and calls the required parametric shape modules.

The system retrieves the active component parameters which are dependent upon a connect point from the PJS in terms of green, red, or tap connect point properties. The symbol definition assigns the data corresponding to these connect point types (green, red, or tap) to the physical connect point numbers (CP1, CP2, CP3, CP4, or CP5).

The first line of the Eden module defines the type of module and the module name. The following statement is used in the Eden modules to indicate a symbol processor module.

Symbol_Processor ’MODULE NAME’

This statement tells the system to use the category code SP for the prefix. You should use the following conventions in assigning the module name (the module name must be in UPPER CASE). The module name is determined by the type of component being placed (commodity item or specialty item).

For a commodity item, the system searches for the New Item Name (model code) of the commodity item as the module name. If the New Item Name is blank in the Commodity Item entity, the system searches for the Item Name as the module name.

For a specialty item, the system searches for the specialty item name (derived from the PJS) as the module name.

For an instrument, the system searches for the instrument name (derived from the PJS) as the module name.

The delivered symbol processors are identified in the library with the prefix SP.

The following lists the symbol processor SPGAT, which is used to control the placement of a gate valve.

PDS Eden for Piping - April 2002

________________

! REGULAR PATTERN, BOLTED OR MALE ENDS GATE VALVE Symbol_Processor ’GAT’

Call Assign_Connect_Point ( GREEN, CP1 ) Call Assign_Connect_Point ( RED, CP2 )

physical_data_source = ’V1’ // Standard_Type Call Get_Physical_Data ( physical_data_source )

parametric_shape = ’V1’

Call Draw_Parametric_Shape ( parametric_shape ) Valve_Operator = DABS ( Valve_Operator ) If ( Valve_Operator .NE. 0 ) Then

If ( Valve_Operator .LT. 1000 ) Then Subcomponent = ’OP’ // Valve_Operator Else

Subcomponent = ’A’ // Valve_Operator EndIf

Operator_Orient = FALSE EndIf

Stop End

Listing for Symbol Processor SPGAT

24

2.Placement Sub-Symbol Processor

________________

Sub-Symbol Processor

A subcomponent call in a symbol processor module indicates a sub-symbol processor. Subcomponents are additions to symbols such as an operator on a valve.

The first line of a sub-symbol processor module indicates the module type and the module name.

Sub_Symbol_Processor ’module name’

This statement tells the system to use the category code SS for the prefix.

The sub-symbol processor name for operators is a concatenation of the characters OP_ and the modifier value from the Commodity Item entity in the PJS database. The value is expressed as a code list number from CL550 (operator/actuator type). If the value is a positive number (such as 3) the operator is placed with the valve. If the value is a negative number (such as -3) the operator is not placed with the valve. (This is useful in segregating large diameter valves which almost always display a valve operator from small diameter valves, which frequently do not display an operator in the model.)

The symbol processor for the gate valve calls a sub-symbol processor (Subcomponent = ’OP’ //

Valve_Operator), which places an operator on the valve. The following depicts the sub-symbol processor SSOP_3, which is used to control the placement of a handwheel operator on the valve.

! HANDWHEEL OPERATOR

Sub_Symbol_Processor ’OP_3’

If ( Operator_Orient .EQ. TRUE ) Then prompt = 1.0

Call Prompt_to_Orient_Operator ( prompt ) EndIf

physical_data_source = ’OPERATOR_3’

Call Get_Physical_Data ( physical_data_source ) parametric_shape = ’OP3’

Call Draw_Parametric_Shape ( parametric_shape ) Stop

End

Listing for Sub-Symbol Processor SSOP_3

PDS Eden for Piping - April 2002

________________

Physical Data Definitions

The system uses the physical data definitions to determine the dimension data, weight data, and surface area data using the active design parameters. Physical data modules are identified by the statement

Physical_Data_Definition ’MODULE NAME’

as the first line in the Eden module. This statement tells the system to use the category code PD for the prefix.

This prefix is only used by the system; it should not be keyed in as part of the module name.

The module name for a physical data module consists of a symbol type (such as V1, V2,... for valves) and a generic type of geometric industry standard (such as AMS or DIN). You can define multiple physical data modules for the same symbol depending on the type of standard being referenced (for example, V1_AMS for American standards and V1_DIN for European standards).

You can manage ten different sets of logic for table naming conventions for the following industry practices.

The corresponding table suffix ranges and the suffix for the Piping Eden physical data modules are indicated below.

Practice Range Suffix

U.S. Practice 1-99 AMS

European - DIN 100-199 DIN

European - British Standard 200-299 BRITISH_STD

European - Practice A 300-399 EURO_A

International - JIS 400-499 JIS

International - Australian 500-599 AUS

European - Practice B 600-699 EURO_B

International - Practice A 700-799 INT_A

International - Practice B 800-899 INT_B

Company Practice 900-999 COMPANY

The table suffix standard for a component is defined in the Piping Commodity Data table of the Material Reference Database. Each component must be assigned a geometric industry standard if it is to use physical data tables.

For most of the delivered symbols, the physical data modules are classified into two categories: specific and generic. The specific physical data module is called by the symbol processor. This module then calls a generic physical data module.

Specific Physical Data Modules

The physical data module PDV1_AMS determines the specific dimensions (face-to-center and face-to-face) and other physical properties for a gate valve. This is the module called by the symbol processor SP_GAT.

Physical_Data_Definition ’V1_AMS’

physical_data_source = ’VALVE_2_AMS’

Call Get_Physical_Data ( physical_data_source ) Call Read_Table ( Table_Name_A, input, output )

Surface_Area = Output_1 Wet_Weight = Output_2

26

2.Placement Physical Data Definitions

________________

F_to_C_Dim_1 = Output_3

If ( Term_Type_1 .EQ. Term_Type_2 ) Then F_to_C_Dim_2 = F_to_C_Dim_1

Else

F_to_C_Dim_2 = Output_4 EndIf

F_to_F_Dim = F_to_C_Dim_1 + F_to_C_Dim_2 If ( Valve_Operator .LE. 24.0 ) Then

Call Read_Table ( Table_Name_W, input, output ) Dry_Weight = Output_1

EndIf Return

End

Listing for Physical Data Module PDV1_AMS

Generic Physical Data Modules

The generic modules contain information that is common to more than one symbol, such as flange thickness, gasket separation, and outside diameter. The physical data module V1_AMS calls another physical data module VALVE_2_AMS which contains the generic dimension data for all valves with two connect points.

Physical_Data_Definition ’VALVE_2_AMS’

Input_1 = Nom_Pipe_D_1 If ( Gen_Type_1 .EQ. BOLTED ) Then

table_name = ’BLT’ // Term_Type_1 // Pr_Rating_1 // Gen_Flag_Green Call Read_Table ( table_name, input, output )

Facing_OD_1 = Output_1 Thickness_1 = Output_2 Seat_Depth_1 = Output_3

Thickness_1 = Thickness_1 - Seat_Depth_1 CP_Offset_1 = Gasket_Sep_1

If ( Symbology .EQ. MODEL ) Then Thickness_1 = 0.0

Call Read_Table ( table_name, input, output ) Pipe_OD_1 = Output_2

Body_OD_1 = Pipe_OD_1 EndIf

Else

If ( Gen_Type_1 .EQ. MALE ) Then

table_name = ’MAL’ // Term_Type_1 // Gen_Flag_Green Call Read_Table ( table_name, input, output ) Facing_OD_1 = Output_2

PDS Eden for Piping - April 2002

________________

If ( symbology .EQ. MODEL ) Then Depth_1 = 0.0

Call Read_Table ( table_name, input, output ) Pipe_OD_1 = Output_2

Body_OD_1 = Pipe_OD_1 EndIf

EndIf EndIf

If ( Term_Type_2 .EQ. Term_Type_1 .AND. Nom_Pipe_D_1 .EQ. Nom_Pipe_D_2 ) Then If ( Gen_Type_2 .EQ. BOLTED ) Then

table_name = ’BLT’ // Term_Type_2 // Pr_Rating_2 // Gen_Flag_Red Call Read_Table ( table_name, input, output )

Facing_OD_2 = Output_1 Thickness_2 = Output_2 Seat_Depth_2 = Output_3

Thickness_2 = Thickness_2 - Seat_Depth_2 CP_Offset_2 = Gasket_Sep_2

If ( Symbology .EQ. MODEL ) Then Thickness_2 = 0.0

Call Read_Table ( table_name, input, output ) Pipe_OD_2 = Output_2

Body_OD_2 = Pipe_OD_2 EndIf

Else

If ( Gen_Type_2 .EQ. MALE ) Then

table_name = ’MAL’ // Term_Type_2 // Gen_Flag_Red Call Read_Table ( table_name, input, output ) Facing_OD_2 = Output_2

table_name = ’FEM’ // Term_Type_2 // Pr_Rating_2 // Gen_Flag_Red Call Read_Table ( table_name, input, output )

Facing_OD_2 = Output_1 Depth_2 = Output_2 Seat_Depth_2 = 0.0 Thickness_2 = 0.0

If ( Symbology .EQ. MODEL ) Then Depth_2 = 0.0

Call Read_Table ( table_name, input, output ) Pipe_OD_2 = Output_2

Body_OD_2 = Pipe_OD_2 EndIf

28

2.Placement

Table_Name_A = Item_Name // Geo_Ind_Std // Term_Type_1 Table_Name_W = Commodity_Code

Input_1 = Nom_Pipe_D_1 Input_2 = Nom_Pipe_D_2

If ( Term_Type_1 .EQ. Term_Type_2 .AND. Nom_Pipe_D_1 .EQ. Nom_Pipe_D_2 ) Then

Table_Name_A = Table_Name_A // Pr_Rating_1 // ’A’

Else

If ( Gen_Type_1 .EQ. Gen_Type_2 ) Then

! Male X Male or Bolted X Bolted

! or Female X Female

Table_Name_A = Table_Name_A // Pr_Rating_1 // Term_Type_2 //

Pr_Rating_2 // ’A’

Else

If ( Gen_Type_1 .EQ. MALE ) Then

! Male X Bolted and Male X Female

Table_Name_A = Table_Name_A // Term_Type_2 // Pr_Rating_2 // ’A’

Else

If ( Gen_Type_2 .EQ. MALE ) Then

! Bolted X Male and Female X Male

Table_Name_A = Table_Name_A // Pr_Rating_1 // Term_Type_2 //

Else

! Bolted X Female and Female X

Bolted

Table_Name_A = Table_Name_A // Pr_Rating_1 // Term_Type_2 //

Pr_Rating_2 // ’A’

Listing for Physical Data Module PDVALVE_2_AMS

Physical_Data_Definition ’OPERATOR_3’

Input_1 = Nom_Pipe_D_1

If ( Gen_Type_1 .EQ. BOLTED ) Then

Table_Name_A = Item_Name // ’BLT’ // Pr_Rating_1 // Valve_Operator // ’A’

Else

If ( Gen_Type_1 .EQ. MALE ) Then

Table_Name_A = Item_Name // ’MAL’ // Pr_Rating_1 // Valve_Operator // ’A’

Else

If ( Gen_Type_1 .EQ. FEMALE ) Then

Table_Name_A = Item_Name // ’FEM’ // Pr_Rating_1 // Valve_Operator // ’A’

EndIf EndIf EndIf

Call Read_Table ( Table_Name_A, input, output ) Dimension_1 = Output_1

Dimension_2 = Output_2 OP_Weight = 0.0

Return End

PDS Eden for Piping - April 2002

________________

Parametric Shape Definitions

The parametric shape definition describes the graphics symbol (such as bend, flange, or valve body) that is placed for the component in the model.

Parametric shape definitions are used to place symbol graphics in the model or define interference envelopes.

This involves the following major functions:

Defining connect point geometry Placing connect points

Moving the active location a specified distance Drawing a specific graphic shape

Placing a center of gravity location.

Parametric shape definitions are divided into two basic types: model parametric shapes and interference envelopes. The first line of the Eden module indicates the module type and the module name.

Model Parametric Shape Definitions

Model parametric shapes are used to define the symbol graphics to be placed in the model. For example, the parametric shape module for a valve consists of a cylinder, two cones, and a cylinder (flange, valve body, flange).

The first line for these modules is of the form

Model_Parametric_Shape_Definition ’MODULE NAME’

This statement tells the system to use the category code MG for the prefix. This prefix is only used by the system; it should not be keyed in as part of the module name.

The module name for a parametric shape module consists of a symbol type (such as V1, V2,... for valves).

The parametric shape module MGV1 determines the model graphics for a valve. This is the module called by the symbol processor SPGAT. The parametric shape module MGOP3 determines the model graphics for a handwheel operator. This is the module called by the sub-symbol processor SSOP_3.

30

2.Placement Parametric Shape Definitions

________________

Model_Parametric_Shape_Definition ’V1’

Call Define_Connect_Point_Geometry ( LINEAR ) Call Place_Connect_Point ( CP1 )

Call Move_By_Distance ( CP_Offset_1 )

Call Draw_Cylinder_With_Capped_Ends ( Depth_1, Facing_OD_1 ) length = F_to_C_Dim_1 - Thickness_1

diameter = 0.0

Call Draw_Cone ( length, Body_OD_1, diameter ) Call Place_Connect_Point ( CP0 )

Call Place_COG_Location ( DRY_COG ) Call Place_COG_Location ( WET_COG )

length = F_to_C_Dim_2 - Thickness_2 Call Draw_Cone ( length, diameter, Body_OD_2 )

Call Draw_Cylinder_With_Capped_Ends ( Depth_2, Facing_OD_2 ) Call Move_By_Distance ( CP_offset_2 )

Call Place_Connect_Point ( CP2 ) Return

End

Listing for Parametric Shape Module MGV1

Model_Parametric_Shape_Definition ’OP3’

Call Define_Connect_Point_Geometry ( OPERATOR ) Call Convert_NPD_to_Subunits ( Nom_Pipe_D_1, dia )

dist = dia + Min_Cyl_Dia * 0.5 angle = 90.0

radius = ( Dimension_2 - Min_Cyl_Dia ) * 0.5

Call Draw_Cylinder_With_Capped_Ends ( Dimension_1, Min_Cyl_Dia ) Call Move_by_Distance ( -dist )

Call Rotate_Orientation ( angle, Secondary ) Call Rotate_Orientation ( angle, Normal ) Call Move_Along_Axis ( -radius, Secondary ) Call Draw_Torus ( radius, angle, Min_Cyl_Dia ) Call Draw_Torus ( radius, angle, Min_Cyl_Dia ) Call Draw_Torus ( radius, angle, Min_Cyl_Dia ) Call Draw_Torus ( radius, angle, Min_Cyl_Dia ) Return

End

Listing for Parametric Shape Module MGOP3

Interference Parametric Shape Definition

Interference parametric shapes are not used during component placement. They are referenced during interference detection to determine the volume (interference envelope) to be compared for clashes with other elements. If a clash is detected during the interference detection process, the interference parametric shape is used to place an interference marker. Refer to the PDS Interference Checker/Manager (PD_Clash) User’s Guide for more information on interference envelopes.

Interference_Parametric_Shape_Definition ’MODULE NAME’

PDS Eden for Piping - April 2002

________________

If no interference module is found for a component, the system uses the model graphics module to determine the interference parametric shape.

Interference_Parametric_Shape_Definition ’V1’

Call Define_Connect_Point_Geometry ( LINEAR ) dist = 0.0

If ( Gen_Type_1 .EQ. BOLTED ) Then extra1 = CP_Offset_1

Else

extra1 = 0.0 dist = CP_Offset_1 EndIf

If ( Gen_Type_2 .EQ. BOLTED ) Then extra2 = CP_Offset_2

Else

extra2 = 0.0 EndIf

sec1 = Depth_1 + extra1 sec2 = Depth_2 + extra2

diameter1 = Facing_OD_1 + Insulation * 2.0 diameter2 = Facing_OD_2 + Insulation * 2.0 diameter3 = Body_OD_1 + Insulation * 2.0

length = F_to_C_Dim_1 - Thickness_1 + F_to_C_Dim_2 - Thickness_2 Call Move_By_Distance ( dist )

If ( diameter1 .GE. diameter2 ) Then

Call Draw_Cylinder_With_Capped_Ends ( sec1+sec2+length, diameter1 ) Else

Call Draw_Cylinder_With_Capped_Ends ( sec1+sec2+length, diameter2 ) EndIf

Return End

Listing for VI IFC

Interference_Parametric_Shape_Definition ’OP3’

Call Define_Connect_Point_Geometry ( OPERATOR ) Call Convert_NPD_to_Subunits ( Nom_Pipe_D_1, dia )

dist = dia + Min_Dimension * 0.5

Call Draw_Cone_With_Capped_Ends ( Dimension_1 - dia, 0.0, Dimension_2 ) Call Draw_Cylinder_With_Capped_Ends ( dia, Dimension_2 )

Return End

Listing for OP3 IFC

32

2.Placement Forms Interface

________________

Forms Interface

Forms in piping design serve to collect input via key-in fields or command buttons. They also provide feedback information to the user through message fields.

The data gathered through the forms serves as the input that defines the values of the global variables used by the Eden modules. When a new specialty item is defined through Eden a form specific to that item can be created using the Form Builder and Symbol Editor products, or the DBAccess product.

PDS Eden for Piping - April 2002

________________

Notes for Graphic Commodity Data

Connect Point Data

As described in the Piping Job Specification description, connect point information for commodity items, piping specialties, and instruments is classified in terms of green and red connect points. The following conventions are used to coordinate the two sets of data:

For full-size components, data is only defined for the green connect point and applies to all ends of the component.

For size change components, data for commodity items, speciality items, or instruments should be created with the green connect point representing the larger diameter (first size) of the component and the red connect point diameter representing the smaller diameter (second size).

If the end preparation is different at each end of the component, the end preparation should be defined to match the required green and red connect points.

If a component has ends with the same nominal diameter but other end properties that differ, the following rules apply:

— If the ends have different end preparations (regardless of the values for schedule/thickness) the end(s) whose end preparations have the lowest code list number are designated as the green connect point.

— If the end preparations are the same but the values for rating, schedule, or thickness differ, the

"stronger" end(s) are designated as the green connect point.

Schedule or thickness values should be defined for all applicable components. Refer to the PJS Tables and Functions section in the Reference Data Manager (PD_DATA) Reference Guide for a detailed description of the methods for defining the schedule or thickness value.

A flow direction component (such as a check valve) must be defined so that the flow is directed from connect point 1 to connect point 2.

A tee type branch must be defined with connect point three on the branch leg of the tee.

The origin of a component must lie between connect point 1 and connect point 2.

Flanges should be defined with the green connect point representing the flanged connect point and the red connect point representing the non-flanged connect point.

34

2.Placement Notes for Graphic Commodity Data

________________

A valve operator is always placed at the component origin of the corresponding valve body.

To ensure consistency in pipe cut length calculations, the connect points of a component should be located using face-to-face or face-to-center dimension rather than end-to-end or end-to-center dimension.

A change of direction component placed by component center must be defined such that connect point 1 is on the primary axis.

Bends and Branches

For bend components (specific and generic), the item name must be unique with respect to the angle of the bend. In other words, you specify the angle of the bend by selecting the item name for the

corresponding angle of the bend.

The number of joints in a miter is required to compute the stress intensification factor (SIF). The graphics symbol description in the Graphic Commodity Library sets an attribute in the piping design database that defines the number of joints.

For miter bend components, the system requires that the item name and the new item name be unique with respect to the number of miter joints of the bend. In other words, the item name specifies the number of miter joints of the bend.

For branches (tees and laterals), the system uses the first and second size to access the branch table and to determine the item name of the component to be placed at the branch point (intersection). Depending on the active values, the branch table may define a single component or a set of two or three components.

PDS Eden for Piping - April 2002

________________

Bolts, Gaskets, and Flanges

The data for the number of bolts and the bolt diameter is available with the flange data in the Physical Dimension Table Library as a function of nominal piping diameter, pressure rating, termination type, and geometric industry standard. However, the bolt data and the flange data are stored in separate tables.

Refer to the Report Manager (PD_Report) User’s Guide for a description of the table access.

A lap joint flange is defined with the end preparation at one end as flanged and the other end as lap.

The system determines the gasket separation at each connect point of a piping component, speciality item, and an instrument component by the following rules:

— If the end preparation for the connect point is flanged, the gasket separation for the connect point is set to one-half the Active Gasket Separation. However, some flanged connections (lug, ring type joint, or wafer) have integral gaskets and do not have a gasket separation. In this situation, the gasket

separation at each connect point is set to zero.

— If the end preparation for the connect point is not flanged, the gasket separation for the connect point

— If the end preparation for the connect point is not flanged, the gasket separation for the connect point

Related documents