Professional Documents
Culture Documents
PDS Piping Eden Interface
PDS Piping Eden Interface
May 2011
DPDS3-PB-200013G
Copyright
Copyright © 1984-2011 Intergraph Corporation. All Rights Reserved.
Including software, file formats, and audiovisual displays; may be used pursuant to applicable software license agreement;
contains confidential and proprietary information of Intergraph and/or third parties which is protected by copyright law, trade
secret law, and international treaty, and may not be provided or otherwise made available without proper authorization from
Intergraph Corporation.
U.S. Government Restricted Rights Legend
Use, duplication, or disclosure by the government is subject to restrictions as set forth below. For civilian agencies: This was
developed at private expense and is "restricted computer software" submitted with restricted rights in accordance with
subparagraphs (a) through (d) of the Commercial Computer Software - Restricted Rights clause at 52.227-19 of the Federal
Acquisition Regulations ("FAR") and its successors, and is unpublished and all rights are reserved under the copyright laws of
the United States. For units of the Department of Defense ("DoD"): This is "commercial computer software" as defined at DFARS
252.227-7014 and the rights of the Government are as specified at DFARS 227.7202-3.
Unpublished - rights reserved under the copyright laws of the United States.
Intergraph Corporation
P.O. Box 240000
Huntsville, AL 35813
Terms of Use
Use of this software product is subject to the End User License Agreement ("EULA") delivered with this software product unless
the licensee has a valid signed license for this software product with Intergraph Corporation. If the licensee has a valid signed
license for this software product with Intergraph Corporation, the valid signed license shall take precedence and govern the use
of this software product. Subject to the terms contained within the applicable license agreement, Intergraph Corporation gives
licensee permission to print a reasonable number of copies of the documentation as defined in the applicable license agreement
and delivered with the software product for licensee's internal, non-commercial use. The documentation may not be printed for
resale or redistribution.
Warranties and Liabilities
All warranties given by Intergraph Corporation about equipment or software are set forth in the EULA provided with the software
or applicable license for the software product signed by Intergraph Corporation, and nothing stated in, or implied by, this
document or its contents shall be considered or deemed a modification or amendment of such warranties. Intergraph believes
the information in this publication is accurate as of its publication date.
The information and the software discussed in this document are subject to change without notice and are subject to applicable
technical product descriptions. Intergraph Corporation is not responsible for any error that may appear in this document.
The software discussed in this document is furnished under a license and may be used or copied only in accordance with the
terms of this license. No responsibility is assumed by Intergraph for the use or reliability of software on equipment that is not
supplied by Intergraph or its affiliated companies. THE USER OF THE SOFTWARE IS EXPECTED TO MAKE THE FINAL
EVALUATION AS TO THE USEFULNESS OF THE SOFTWARE IN HIS OWN ENVIRONMENT.
Intergraph is not responsible for the accuracy of delivered data including, but not limited to, catalog, reference and symbol data.
Users should verify for themselves that the data is accurate and suitable for their project work.
Trademarks
Intergraph, the Intergraph logo, PDS, SmartPlant, FrameWorks, I-Convert, I-Export, I-Sketch, SmartMarine, IntelliShip, INtools,
ISOGEN, MARIAN, SmartSketch, SPOOLGEN, SupportManager, and SupportModeler are trademarks or registered trademarks
of Intergraph Corporation or its subsidiaries in the United States and other countries. Microsoft and Windows are registered
trademarks of Microsoft Corporation. Oracle, JD Edwards, PeopleSoft, and Retek are registered trademarks of Oracle
Corporation and/or its affiliates. MicroStation is a registered trademark of Bentley Systems Inc, all rights reserved. Other brands
and product names are trademarks of their respective owners.
Contents
Preface PDS ................................................................................................................................................. 5
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.
The surface area data enables the system to perform paint requirement calculations and
insulation weight calculations.
Specific commodity dry weight data
Piping Specialty physical data
The dimensions, dry weight, water weight, and surface area for specialty items can be
stored in a set of tables or defined at placement.
Instrument physical data
The dimensional data, dry weight, water weight, and surface area for instruments can be
stored in a set of tables or defined at placement.
You can form the name of a physical data table from attributes for the component (such as
geometry standard and end preparation). However, the table name cannot exceed 46
characters.
See Also
Data Retrieval from the Physical Data Library (on page 11)
Example of Physical Data Look-Up (on page 11)
Generic Tables
The spec access for a six-inch gate valve defines the end preparation at both connect points as
Raised Face Flanged End (code list value 21), which is a bolted connection. As shown in the
listing for VALVE_2_AMS, the table name for a bolted connection on a two-connect point valve
is
table_name= 'BLT' // Term_Type_1 // Pr_Rating_1 // Gen_Flag_Green
Using the values from the Piping Job Specification (PMC=1C0031, Item Name=6Q1C01), the
actual table name will be:
BLT_20_150_5
This table returns the outside diameter, flange thickness, and the seating depth for each end of
the valve. Note that the termination type (20) is used rather than the actual end preparation
value (21).
Specific Tables
The specific tables are used to define the main body of the valve. Refer to the Table
Requirement section in the Reference Data Manager Reference Guide for an outline of the
types of tables that are required to place a valve. Since the termination type is the same at
both ends of the valve (bolted), no red connect point data is required. The required tables are
found by referring to the Bolted(G) termination type.
MC_GS_Term(G)_Rat(G)_A (P15A).
MC_GS_Term(G)_Rat(G)_B (P15B) --- This table is only required if more than eight
outputs are necessary to define a commodity item.
Commodity Code (P59).
Using this information, the dimension tables for a 6" gate valve are:
GAT_40_20_150_A
This table returns the face-to-center dimension for the valve. Table P15B is not required for
a gate valve.
VAABAHCCAA
This table returns the empty weight of the valve, including the weight of the operator.
If the end preparations were different at each end of the valve (such as female threaded by
socket welded), then a different set of tables would be required.
An additional table look-up is required to access the dimensional data for the valve operator.
The following table is required to define the valve operator:
MC_Type(G)_Rat(G)_Op_A (P31A)
Using this table name format, the dimension table for a handwheel operator on a 6" gate valve
is:
GAT_BLT_150_3_A
This table returns the stem length and the wheel diameter for the handwheel operator.
Eden Modules
Eden is composed of three major modules:
1. Symbol Processors (on page 15) Sub-Symbol Processors (see "Sub-Symbol Processor" on
page 16)
2. Physical Data Subroutines (see "Physical Data Definitions" on page 17)
3. Parametric Shape Definitions (on page 23)
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.
The following graphic, Eden Module Relationships, illustrates the relationship among these
modules:
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
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.
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.
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.
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
Thickness_2 = 0.0
Depth_2 = 0.0
Seat_Depth_2 = 0.0
CP_Offset_2 = 0.0
Pipe_OD_2 = Facing_OD_2
Body_OD_2 = Facing_OD_2
Else
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
CP_Offset_2 = 0.0
Pipe_OD_2 = 0.0
Body_OD_2 = Facing_OD_2
Else
CP_Offset_2 = -Depth_2
table_name = 'MAL_300_5'
Input_1 = Nom_Pipe_D_2
Call Read_Table ( table_name, input, output )
Pipe_OD_2 = Output_2
Body_OD_2 = Pipe_OD_2
EndIf
EndIf
EndIf
EndIf
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
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.
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.
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.
Beginning Statements
Beginning statements define the types of modules being entered. Names within the single
quotes must be all upper case.
SP - Symbol_Processor '6CHAR'
SS - Sub_Symbol_Processor '6CHAR'
PD - Physical_Data_Definition '28CHAR'
UF - User_Function_Definition '28CHAR'
MG - Model_Parametric_Shape_Definition '28CHAR'
IG - Interference_Parametric_Shape_Definition '28CHAR'
Examples
Symbol_Processor 'GAT'
Physical_Data_Definition 'V1_AMS'
Ending Statements
Ending statements mark the end of the module in which the system has been processing.
Ending statements in the symbol and subsymbol processor (beginning statements SP and SS)
include:
Stop
End
Ending statements in the children processor (beginning statements PD, UF, MG, and IG)
include:
Return
End
Variables
Variables in Eden can be either local or global. They can contain either numeric or alphanumeric
data. Internally, numeric data is stored as REAL*8 (double precision). If a different data type is
required in the context of an expression, then the conversion is performed at the time the
expression is evaluated.
Variable names can be either upper or lower case. Symbols tend to be easier to read
when you use all lower case for local symbols and all upper case for global symbols or vice
versa.
Examples
When converting a floating point number to an integer, the fractional part of the floating point
number is truncated.
A variable used in a logical expression evaluates to TRUE when the value of the variable is
1 and 0 when the logical value is FALSE.
Variables that hold values representing distances are assumed to be in subunits. A variable
containing the value 25 represents 25 inches in an English unit design file and 25 millimeters
in a metric unit design file.
Be careful when using hard coded numbers or when using the system_of_units variable.
Local Variables
Local variables are user defined and declared in the symbol definition. You can refer to a local
variable only when you are in the same module as the local variable.
Local variable names are formed using alphanumeric (a-z), numeric (1-9), and special (_ and $)
characters. They must begin with an alphanumeric character and must be less than or equal to
31 characters in length.
The Eden compiler does not verify the spelling of local variables within call
statements. It assumes a null value for the misspelled variable at component placement time.
The Eden language refers to constants as local variables. Both character strings and numeric
constants are valid; however, character string constants must be surrounded by single quotes.
In most cases, character strings and constants are case sensitive. Thus, a and A are
interpreted differently.
Examples
diameter 13.25
shell_thickness 'A TEXT STRING'
projection_1 radius [2]
25
Only in Pipe Support and Equipment Modeling can you declare local variable types. The
variable types default to either CHARACTER or REAL depending on the context. To override
this default, you can use a local variable type declaration statement anywhere before the
variable(s) is (are) actually referenced. Variable types INT2, R8, and LOCATION are
recognized by the compiler.
Example
In the following example, variables a, B, and C are declared as type short integers. They hold
values ranging from -32767 to 32767.
Int2 a
Int2 B, C
Example
In the example below, variable d is declared as a type REAL, capable of holding decimal
fractional values. This is the usual default type for numeric variables. However, explicit typing
to this category may be necessary to declare local arrays.
R8 d
As a recommendation, all declaration statements should be placed at the very beginning of the
symbol code and not interspersed among statements to be executed during symbol placement.
This improves program readability.
Also in Pipe Support and Equipment Modeling, referencing a variable using subscripts is
extremely useful when coding repetitive statements such as the body of a loop. Prior to use,
variables must appear in a type declaration in which its subscript or index range is also
specified.
Example
Below, LENGTHS is an array of 10 REAL variables. They are referenced as LENGTHS [1] ...
LENGTHS [10].
R8 LENGTHS [10]
Gen_Flag_Red The generic flag retrieves the table suffix for use with table
Gen_Flag_Green identification.
Item_Name This variable equates to the model code used in defining a table
name.
MIN_CYL_DIA = 1/32 The minimum cylinder diameter permitted in the Eden program.
in.
Nipple_Length The nipple length is retrieved from the modifier column in piping
component data from the reference database.
Nom_Bend_Rad The nominal bend radius. This variable will write to the
database and allow reconstruction of the component.
NUMBER_BOLTS Table lookups are performed during the execution of the MTO
process when two mating flanges are found. This keyword is
used to hold the data retrieved for the table and then pass on to
the MTO process.
Number_Miter The number of miter joints is the number of miters to be used in
a mitered joint. It is retrieved from the modifier column in the
piping component data from the reference database.
Number_of_Taps The number of taps is retrieved from the modifier column in the
piping component data from the reference database.
Common Keywords
Eden uses keywords for labeling specific values or groups of values. All keywords except
TRUE and FALSE can appear as arguments in system-defined primitives (or subroutines).
Keywords can be upper or lower case. For consistency, this reference guide displays keywords
in upper case.
STANDARD_TYPE The standard types are used in building the physical data
module name. The keyword STANDARD_TYPE is replaced
by one of the following keywords dependent upon the table
suffix value found for the commodity being placed.
Keyword Practice Range
ITEM_NAME The model code data retrieved from the piping commodity
data used in building table names.
PHYSICAL_DATA_IDENT The physical data identification is used to retrieve tag names
or numbers for an instrument. It is also used for table lookup
dimensions.
Comments
To place a comment within Piping source code, the comment must be on a separate line from
the source line and the exclamation point (!) must be in the first column of the comment line.
You cannot place a comment immediately after a call statement (on the same line).
Example
Table_Data_Definition 'T_41_420_3000_NREQD_52'
! Description= CL3000 equal tee socketwelded ends weight
! Source= GRINNELL catalog PF-78
Operators
Operators are used in conjunction with variables to form expressions. As in FORTRAN,
operators can be any one of three types:
1. Arithmetic
2. Relational
3. Logical
Arithmetic Operators
Arithmetic operators are used to form arithmetic expressions. These operators follow the
mathematical conventions. Valid arithmetic operators include:
+ addition
- subtraction
* multiplication
/ division
** exponentiation
// concatenation using '_'
|| concatenation without using '_'
The first five operators (+, -, *, /, **) can only be used with numeric local and global variables.
The concatenation operators (// , || ) can be used with both numeric and string variables.
The concatenation operator // is used primarily to form table names. It joins two variables
together with an underbar (_) character. The result is a text string.
Example
'ABC' // 'DEF'
produces
'ABC_DEF'
When using the concatenation operation, real numbers are converted to integers (that is,
truncated), then converted to character strings and finally joined together with the underbar
character. The concatenation operation is generally used to form messages and character field
outputs.
Example
If GEN_TYPE = 20 and PR_RATING = 300, then 'BLT' // GEN_TYPE // PR_RATING
// '5'
produces
'BLT_20_300_5'
Relational Operators
Relational operators are used to form relational expressions that test the value of an Eden
expression or establish conditions under which a group of Eden statements can be executed.
Valid relational operators include:
.EQ. equal to
.NE. not equal to
.GE. greater than or equal to
.GT. greater than
.LE. less than or equal to
.LT. less than
Periods must appear before and after the expression.
Relational operators can be used on both numeric and character string variables. However,
mixing the two types of operands for a given operation produces computing errors.
In character relational expressions, less than means precedes in the ASCII collating sequence,
and greater than means follows in the ASCII collating sequence.
'ABCD' .LT. 'ACCD'
If two strings in a relational expression are not the same length, the shorter one is padded on
the right with spaces until the lengths are equal.
'PQRSTU' .EQ. 'PQR '
'PQRSTU' .EQ. 'PQR '
Logical Operators
Logical operators are used to combine relational expressions into more complex logical
expressions. Valid logical operators include:
.OR. logical or
.AND. logical and
Periods must appear before and after the expression.
Expressions
Expressions are variables, constants, and operators combined to make statements. The format
of most Eden expressions is the same as in FORTRAN. Valid expressions include:
For every IF statement, there must be an ENDIF statement to end the expression. You
can nest up to five If-then-else expressions within an Eden module.
For the Replacement, Do while, and If-then-else expressions, you can use parentheses to alter
the precedence of calculation.
Replacement Statements
Replacement statements are used to set variables or perform calculations. The following list
illustrates the various Replacement statements:
thickness = 25.
vessel_od = DIMENSION_1
test = test + 1
tutor_name = 'EXCH1'
table_name = 'BLT' // GEN_TYPE // PR_RATING // '5'
dim_a = (dim_b + dim_c) * 2. + dim_d
Call Statement
Call statements are used to execute system primitives. The syntax for the Call statement is:
Call "primitive" or "subroutine" (argument 1, argument 2, ...)
Example
Call Place_Cylinder_With_Capped_Ends (diameter, length)
Do While Statement
The Do While statement is used to form indefinite loops. The condition of a Do While statement
must equal a logical value (either true or false). The body of the Do While statement will be
repeatedly executed as long as the logical expression remains true.
Example
The following Do While loop places four cylinders end to end. The pretested loop condition fails
on the fifth try (if i equals 4), and control transfers to the message display routine.
i = 0
do while (i .LT. 4)
i = i + 1
Indexed Do Statement
The Indexed Do statement allows you to form loops that execute a specified number of times.
This number is determined by an initial, a terminal, and an incremental parameter of a control
variable. The syntax for the Indexed Do statement is:
do V = v1, v2, v3
.
.
.
enddo
where
Example
In this example, I is set to 1. The body of the loop is then executed. I increments by 2 each time
the cycle is complete, and the value 3 is checked against the terminator 20. The iteration
continues as long as I is less than or equal to 20. When the iteration is greater than 20, the loop
ends.
do I = 1, 20, 2
.
.
.
enddo
Example
if (DIMENSION_1 .gt. 24.) then
thk = thk + .125
else
thk = thk + .250
endif
An If statement of the form if (condition) is not valid. In Eden, all If statements must be of
the form If (condition) then. The else statement is optional.
Functions
Eden provides several functions for performing common mathematical operations. These
functions can be used within replacement statements.
The following functions must contain the parentheses.
DSQRT () square root
DABS () absolute value
DSINR () sine of an angle in radians
DCOSR () cosine of an angle in radians
DTANR () tangent of angle in radians
DSIND () sine of an angle in degrees
DCOSD () cosine of an angle in degrees
DTAND () tangent of an angle in degrees
DASINR () arcsine returned in radians
DACOSR () arccosine returned in radians
DATANR () arctangent returned in radians
DASIND () arcsine returned in degrees
DACOSD () arccosine returned in degrees
DATAND () arctangent returned in degrees
Example
The following list illustrates a few possible Eden functions:
length = hypot * DSIND (30.)
side = DTANR (pi/2) + 32.
hypot = DSQRT (a**2 + b**2)
angle = DATAND (side1/side2)
Primitives
Primitives are system-defined routines that perform specific functions for symbol definition.
Convert NPD to Subunits (on page 46)
Define Active Orientation (on page 47)
Draw Cone (on page 48)
Draw Cylinder (on page 49)
Draw Eccentric Cone (on page 49)
Draw Projected Rectangle (on page 50)
Draw Projected Triangle (on page 51)
Draw Semi-Ellipsoid (on page 51)
Draw Sphere (on page 52)
Draw Torus (on page 53)
Assign Connect Point (on page 53)
Assign Generic Tap (on page 54)
Assign Tap (on page 54)
Compute Perpendicular Vector (on page 55)
Define Connect Point Geometry (on page 55)
Display Tutorial (on page 56)
Draw Cone With Capped Ends (on page 57)
Draw Cylinder With Capped Ends (on page 57)
Draw Eccentric Cone With Capped Ends (on page 58)
Draw Hexagon (on page 59)
Draw Mitered Torus (on page 59)
Draw Octagon (on page 60)
Draw Parametric Shape (on page 61)
Draw Torus With Capped Ends (on page 61)
Get Physical Data (on page 62)
Move Along Axis (on page 63)
Move By Distance (on page 63)
Move To Connect Point (on page 64)
Place COG Location (on page 64)
Place Connect Point (on page 65)
Prompt to Orient Operator (on page 65)
Read Table (on page 65)
Rotate Orientation (on page 66)
This primitive does not perform unit conversions. If American standard pipe sizes are being used
in a Metric file, this primitive will return the NPD in inches.
Syntax
Call Convert_NPD_To_Subunits (coded_input, npd)
Options
coded_input The nominal pipe diameter in internal or coded units. This variable
must be the keyword Nom_Pipe_D_n.
npd The nominal piping diameter in subunits.
Examples
In this example, the Real*8 equivalence of the coded NPD in Nom_Pipe_D_1 is returned in
Pipe_Dia_1.
Call Convert_NPD_To_Subunits (Nom_Pipe_D_1, pipe_dia_1)
All NPDs used internally in the software are in encoded form. Most table lookups based
on NPDs require the input to be in encoded form. However, if a nozzle size is needed in a
calculation, it must be converted from internal units to subunits.
Specific keywords are available for specifying either the primary axis or the secondary axis of
the connect point's orientation.
Syntax
Call Define_Active_Orientation (primary, secondary)
Options
primary Variable that defines the flow centerline or primary direction.
secondary Variable that defines the line perpendicular to the flow centerline or
secondary direction.
Valid keywords for the primary and secondary variables include:
CP_PRIMARY_n
CP_SECONDARY_n
CP_NORMAL_n
For the Piping keywords, n is the connect point number.
If the initial active orientation for a symbol definition has the primary pointing east and the
secondary pointing north, the normal axis of the active orientation would be up. (Normal axis
can be found using the right-hand rule.)
Restrictions
In Piping, you must have already called Place Connect Point (CPn). For operator, initial
point of operator is assumed CP1.
In Piping, the two variables used must have the same connect point number.
Example
In the following example, the secondary orientation at connect point 2 becomes the new active
primary orientation at the active point, and the primary orientation at connect point 2 becomes
the active secondary.
Call Define_Active_Orientation (CP_Secondary_2, CP_Primary_2)
Draw Cone
The Draw Cone primitive places a cone where the first end is at the current active point and the
second end is at a location computed by the system given the input length along the primary
axis. You must define the diameters of each end of the cone with separate variables.
Syntax
Call Draw_Cone (length, diameter_1, diameter_2)
Options
length The length of the cone (A), which can be positive or negative.
diameter_1 The diameter of the cone (B) at the active point.
diameter_2 The diameter of the cone (C) at the end opposite the active
point.
Draw Cylinder
The Draw Cylinder primitive places a cylinder where the first end is at the current active point
and the second end is at a location computed by the system along the primary axis. You must
specify the diameter and the length of the cylinder. The active point will be moved to the
opposite end.
Syntax
Call Draw_Cylinder (length, diameter)
Options
length The length (A) of the cylinder.
diameter The diameter (B) of the cylinder.
Syntax
Call Draw_Eccentric_Cone (length, eccentric_offset, diameter_1,
diameter_2)
Options
length Cone length (A).
eccentric_offset Eccentric cone offset. This is the center-to-center distance between
cone endpoints as measured positive going against the secondary.
diameter_1 Diameter (B) at active point.
diameter_2 Diameter (C) at the opposite end.
You must specify the projected height, projected width, and projected length dimensions.
Syntax
Call Draw_Proj_Rectangle (length1, length2, projection)
Options
length1 Length of the rectangle side (C) parallel to the secondary axis of the
active orientation.
length2 Length of the rectangle side (B) parallel to the normal axis of the active
orientation.
projection Length of the projection (A).
Restrictions
The active point must be located at the center of geometric shape of the rectangle.
The refresh tee must point inward (the direction of projection).
Syntax
Call Draw_Proj_Triangle (project_side_length, project_base_length,
project_length)
Options
project_side_length Length of the side (A) of the triangle.
project_base_length Length of the base (B) of the triangle.
project_length Length of the projection (C).
Restrictions
The active point must be located at the center of geometric shape of the triangle.
The refresh tee must point inward.
Make sure that dimension A is greater than 1/2 of dimension B, otherwise, errors will
result.
Draw Semi-Ellipsoid
The Draw Semi-Ellipsoid primitive allows you to place a semi-ellipsoid, where the center is at
the current active point. You must specify the diameter of the major axis and the radius of the
minor axis.
The system does not update to a new active orientation after placement of the
semi-ellipsoid.
Syntax
Call Draw_Semi_Ellipsoid (major_axis_diameter, minor_axis_radius)
Options
major_axis_diameter Variable defining the major axis diameter (A).
minor_axis_radius Variable defining the minor axis radius (B).
Draw Sphere
The Draw Sphere primitive allows you to place a sphere where the center of the sphere is at the
current active point. You must specify the radius, and the radius must be greater than or equal
to () 1/64 inches.
The refresh tee and orientation will not change after placement.
Syntax
Call Draw_Sphere (radius)
Options
radius Variable (A) defining the sphere radius.
Draw Torus
The Draw Torus primitive allows you to place a torus from the current flow centerline to the
current direction of the secondary axis using the bend radius, bend angle, and diameter you
specify. This call changes the active orientation.
The torus diameter must be greater than or equal to () 1/32 inches, and the bend radius
diameter must be greater than or equal to () 1/32 inches and greater than (>) 1/2 the torus
diameter.
Syntax
Call Draw_Torus (radius, angle, diameter)
Options
radius The bend radius of the torus (B) as measured from the origin of the
torus to its centerline.
angle The bend angle of the torus (C).
diameter The diameter of the torus (A).
Syntax
Call Assign_Connect_Point (color, CPn)
Options
color RED - small line size.
GREEN - large line size.
CPn Connect point number.
Restrictions
One component can have up to five connect points including up to two tap points, for a total
of five connect points per component.
You must assign all the connect points for a component before you call the physical data
routine. Once you make another call, Eden assumes that there are no more connect points
associated with the symbol. Any connect points assigned after the subroutine call are
considered illegal.
To ensure that the connect points are assigned before another call is made, place the
call to assign connect points in the beginning of the Symbol Processor module.
Examples
The following example assigns GREEN properties to connect point 1.
Call Assign_Connect_Point (GREEN,CP1)
The following example assigns RED properties to connect point 2.
Call Assign_Connect_Point (RED, CP2)
Syntax
Call Assign_Generic_Tap (cp_type, CPn)
Options
cp_type GREEN or RED
CPn Connect point number.
Example
The following example assigns GREEN properties to connect point 4, but is by definition a tap.
Call Assign_Generic_Tap (GREEN, CP4)
Assign Tap
The Assign Tap primitive allows you to define a pressurized connect point as a tap. The
system uses the nominal piping diameter you specified for the tap and the connect point data
from the Tap Properties Table of the Piping Job Specification.
The Assign Tap command applies only to components that have the geometry type of
ORIFICE_FLANGE.
You must assign all connect points and the tap_diameter before assigning a tap.
Syntax
Call Assign_Tap (tap_diameter, CPn)
Options
tap_diameter Diameter of the tap.
CPn Connect point number.
Example
The following example assigns a tap at connect point three with a diameter of two inches.
tap_diameter = 2.0
Call Assign_Tap (tap_diameter, CP3)
Syntax
Call Compute_Perpendicular_Vector (CPn, CP_Primary_n, CP_Secondary_n)
Options
CPn Connect point number (stored temporarily).
CP_Primary_n Variable used to store computed primary.
CP_Secondary_n Variable used to store computed secondary.
Example
Call Compute_Perpendicular_Vector (CP5, CP_Primary_5, CP_Secondary_5)
Call Move_By_Distance (f_to_c_dim_1)
Call Define_Active_Orientation (CP_Primary_5, CP_Secondary_5)
Call Draw_Cylinder (length, diameter)
Syntax
Call Define_Connect_Point_Geometry (geometry_type)
Options
geometry_type Name of specific geometry of symbol. Valid geometries
include:
LINEAR CROSS OPERATOR
ELBOLET LATROLET
BEND OLET
ANGLE_VALVE SINGLE
ECC_REDUCER SINGLE_CP
BRANCH_TEE RET_180
BRANCH_LAT ORIFICE_FLANGE
BRANCH_WYE GENERIC_COMPONENT
BRANCH_2WYE NON_RADIAL_BRANCH OPERATOR
Restrictions
Each component can have only one geometry type.
The number of connect points for the geometry type defined here must match the number in
the Symbol Processor module.
The geometry type is limited to the possible geometries associated with the component
being placed.
Example
The following example calls the connect point geometry for a bend that tests to see that all
connect points are defined for a bend geometry type.
Call Define_Connect_Point_Geometry (BEND)
Display Tutorial
The Display Tutorial primitive allows you to display a tutorial from within an Eden module in
order to obtain dimensions from the user key-ins. This routine should not be called in
Interference Graphics modules.
Syntax
Call Display_Tutorial (Tut_Name)
Options
Tut_Name The form as it appears in the forms directory. You are limited to six
characters.
Example
In this example, the tutorial for operator 33C dimensions is displayed. You can now enter the
needed dimensions.
Call Display_Tutorial ('VOP33C')
Syntax
Call Draw_Cone_With_Capped_Ends (length, diameter_1, diameter_2)
Options
length Variable (A) that defines the length of the cone.
diameter_1 Variable (B) that defines the diameter at the active point.
diameter_2 Variable (C) that defines the diameter at the opposite end of the of
the cone.
Example
A = 5
B = 2
C = 1
Call Draw_Cone_With_Capped_Ends (A, B, C)
Syntax
Call Draw_Cylinder_With_Capped_Ends (length, diameter)
Options
length Variable (A) defining the cylinder length.
Example
The following example draws a cylinder with a length of 5.0 and a diameter of 1.0.
If cyl_len is positive, a cylinder of the specified length is drawn. If cyl_len is zero,
nothing happens. If cyl_len is negative, the active point is moved the specified negative
distance, but the cylinder is not drawn.
A = 5.0
B = 1.0
Call Draw_Cylinder_With_Capped_Ends (A, B)
Syntax
Call Draw_Eccentric_Cone_With_Capped_Ends (length, offset, diameter_1,
diameter_2)
Options
length Variable (A) defining the cone length.
offset Variable defining the eccentric cone offset.
diameter_1 Variable (B) defining the diameter at the active point.
diameter_2 Variable (C) defining the diameter at the opposite end.
Example
A = F_to_f_Dim - Thickness_1 - Thickness_2
offset = 0.5 * (C - B)
Call Draw_Eccentric_Cone_With_Capped_Ends (A, offset, B, C)
Draw Hexagon
The Draw Hexagon primitive draws a hexagon of the specified length and depth.
Syntax
Call Draw_Hexagon (length, depth)
Options
side_length Side B is the side length.
proj Side A is the length of the projection.
Example
The following example draws a hexagonal shape with the specified diameter and depth.
A = Dimension_2
B = Dimension_3
Call Draw_Hexagon (B, A)
Syntax
Call Draw_Mitered_Torus (radius, angle, diameter, number)
Options
radius Variable (A) defining the torus bend radius.
angle Variable (B) defining the torus bend angle.
diameter Variable (C) defining the torus diameter.
number Number of cuts to generate a miter.
Example
The following example draws a torus with the bend radius, bend angle, and diameter equal to
the outside diameter of the body at connect point 1.
A = bend_radius
B = bend_angle
C = body_OD_1
Call Draw_Mitered_Torus (A, B, C, 2)
Draw Octagon
The Draw Octagon primitive allows you to draw an octagon of the specified width and depth.
Syntax
Call Draw_Octagon (width, projection)
Options
width Distance (A) between the two opposite sides.
projection Depth (B) of shape.
Example
The following example draws an octagonal shape given the width and depth.
A = Dimension_2
B = Dimension_3
Call Draw_Octagon (A, B)
Syntax
Call Draw_Parametric_Shape (parametric_shape)
Options
parametric_shape Name of the module that you defined to draw the graphics. The
name must be set before calling the module.
Example
The following example calls the module that places the graphics, connect points, and so forth for
parametric shape F47.
parametric_shape = 'F47'
Call Draw_Parametric_Shape (parametric_shape)
OR
Call Draw_Parametric_Shape ('F47')
The diameter must be greater than or equal to () 1/32 inches and the bend radius diameter
must be greater than or equal to 1/32 inches and > 1/2 torus diameter.
Syntax
Call Draw_Torus_with_Capped_Ends (radius, angle, diam)
Options
radius Variable (B) defining the bend radius.
angle Variable (C) defining the angle of the torus.
diam Diameter (A) of the torus.
Example
The following example draws a torus with capped ends with a radius equal to the bend radius, at
an angle equal to the active bend_angle, with a diameter equal to the outside diameter of the
body at connect point 1.
Call Draw_Torus_with_Capped_Ends (bend_radius, bend_angle, body_OD_1)
Syntax
Call Get_Physical_Data (physical_data_source)
Options
physical_data_source Name of the physical data module set previous to this primitive.
Examples
The following example sets the variable physical_data_source to F47_AMS and then calls
the routine which accesses the physical data:
physical_data_source = 'F47' // STANDARD_TYPE
Call Get_Physical_Data (physical_data_source)
The following example sets a variable named physical_data_source to F47_AMS and then
calls the routine which accesses the physical data:
physical_data_source = 'F47_AMS'
Call Get_Physical_Data (physical_data_source)
The following example calls the routine which accesses the physical data without defining a
variable for the physical data source:
Call Get_Physical_Data ('F47_AMS')
Syntax
Call Move_Along_Axis (distance, axis)
Options
distance Negative or positive distance to move.
axis Axis to move along: PRIMARY, SECONDARY, or
NORMAL.
Examples
In this example, after obtaining radius of pipe and diameter of cylinder, move along the active
secondary axis to the edge of the pipe and place cylinder graphics for an olet.
cyl_diam = Dimension_1
radius = (Dimension_2 - cwht) + 0.5
Call Move_Along_Axis (-radius, SECONDARY)
Call Draw_Cylinder (radius, cyl_diam)
Move By Distance
The Move By Distance primitive allows you to move from the current active point along the
current flow centerline by a distance (positive or negative). The distance you specify must be a
real number in floating point form.
Syntax
Call Move_By_Distance (distance)
Options
distance Variable name for the distance along the flow centerline.
Examples
The following example moves the active point by a distance equal to the offset of connect
point 2:
Call Move_By_Distance (CP_Offset_2)
The following example moves the active point by a distance equal to the face to center
dimension for connection point 2 and in the opposite direction:
Call Move_By_Distance (-F_to_C_Dim_2)
Syntax
Call Move_To_Connect_Point (CPn)
Options
CPn Variable defining the connect point number (n = 0,1,2,3,4,5).
Example
In the following example, the call moves the active point to connect point 1:
Call Move_To_Connect_Point (CP1)
Syntax
Call Place_COG_Location (COG_type)
Options
COG_type Variable defining the center of gravity type.
Examples
The following examples display the three types of centers of gravity:
Call Place_COG_Location (DRY_COG)
Call Place_COG_Location (WET_COG)
Call Place_COG_Location (OP_COG)
Syntax
Call Place_Connect_Point (CPn)
Options
CPn Variable defining the connect point (n = 0,1,2,3,4,5).
Example
The following example places a connect point at the current location with current orientation:
Call Place_Connect_Point (CP0)
Syntax
Call Prompt_to_Orient_Operator (prompt)
Example
Prompt = 1.0
Call Prompt_to_Orient_Operator (prompt)
Read Table
The Read Table primitive allows you to read data from a table in the Piping Job Spec Table
Library or Dimension Table Library. Call this primitive from the Physical Data Definition
module.
Refer to the Reference Data Manager (PD_DATA) Reference Guide for information on the valid
naming formats for tables and the valid units that can be used in tables.
Use the input and output arrays that are defined in the Data Dictionary.
Table names are limited to 46 characters. You must assign input values before using this
primitive; otherwise, the system sets the input values to zero. The syntax for the Read Table
primitive is:
Call Read_Table (table_name, input, output)
Options
table_name Variable defining the table name.
input Variable defining the input used to access data in the table. This variable ranges
from input_1 to input_10.
output Variable defining the output read from the table. The variable range is from
output_1 to output_8.
Example
The following example sets the global variable, Table_Name_A, equal to the name of the table
to be called, then sets input_1 equal to the nominal pipe diameter at connect point 1 and input_2
to the nominal pipe diameter at connect point 2, and then calls the routine that reads the output
from the table. The face to center dimension is output 3 from the table read.
You do not need to put the underbar in the table name. Concatenation inserts the
underbar when forming the table names.
Table_Name_A = Item_Name // Geo_Ind_Std // Term_Type_1
Input_1 = Nom_Pipe_D_1
Input_2 = Nom_Pipe_D_3
Call Read_Table (Table_Name_A, input, output)
F_to_C_Dim_1 = Output_3
Rotate Orientation
The Rotate Orientation primitive allows you to rotate the active orientation about any axis and
with any angle.
Syntax
Call Rotate_Orientation (angle, axis)
Options
angle Angle of rotation in degrees.
axis Axis of rotation: primary, secondary, or normal.
Example
In the following example, after the primitive is executed, the primary and normal are rotated 90
degrees about the secondary axis:
Call Rotate_Orientation (angle, SECONDARY)
LINEAR Any component that has all connect points along one vector, such
as a gate valve or a weld-neck flange.
ELBOLET Elbolets or any component that has a tap that lies along the same
vector as the one formed by CP1 and CP0 or CP2 and CP0.
BRANCH_TEE Branch component where CP1 and CP2 are along the same
primary vector. CP3 is along the vector of the secondary.
BRANCH_LAT Branch component that has the branch leg coming off at a variable
angle from the primary. CP1 and CP2 are along the primary, and
CP3 is along the secondary.
BRANCH_WYE Branch component where CP1 is on the primary axis; CP2 and
CP3 are both on vectors that are offset from the primary vector by
45 degrees in either direction. The vectors created by CP2 and
CP0 or CP3 and CP0 are perpendicular.
BRANCH_2WYE A 4-connect-point branch that has the same general layout as the
BRANCH_WYE, but instead of the line splitting off in two directions,
a third line continues on the flow centerline.
OPERATOR Any item that does not have connect points. Operators have no
connect points.
LATROLET Olets that can be placed at a variable angle to the primary or flow
LATROLETcenterline, such as reinforcing pads and reinforcing
welds.
ORIFICE_FLANGE Linear component that has 1 or 2 taps that are perpendicular to the
flow centerline.
The refresh tee must point inwards (to CP0) before you define each connect point
(CP#). Not all geometric configurations associated with this type may be defined for ISOGEN.
Eden Setup
Before a new piping component can be defined through Eden, follow these steps:
1. Create a directory path for symbol definition files
Log in to the server where the PDS project resides.
Create a piping symbols directory. If the new components will be shared by two or
more projects, the new directory could look like this:
c:\users\default\projects\custom\pipesym
where custom is an optional directory where customized libraries and symbol definition
directories for all projects can be kept.
If the customized libraries and components will be specific to one project, the following
alternative can be used:
c:\users\default\projects\proj1\pipesym
where proj1 is the directory of an existing project.
2. Create a directory path for dimension and spec tables.
Log in to the server where the PDS project resides.
Create the dimension and spec tables directory.
c:\users\default\projects\custom\tbls
OR
c:\users\default\projects\proj1\tbls
3. Create a directory path for graphic data and table libraries, and copy them into this directory.
Log in to the server where the PDS project resides.
Create a library directory.
c:\users\default\projects\custom\libs
OR
c:\users\default\projects\proj1\libs
Copy the standard delivered libraries into the library directory.
copy c:\win32app\ingr\rdusrdb\*.l*
c:\users\default\projects\custom\libs\
copy c:\win32app\ingr\pdshell\lib\*.l*
c:\users\default\projects\custom\libs\
OR
copy c:\win32app\ingr\rdusrdb\*.l*
c:\users\default\projects\proj1\libs\
copy c:\win32app\ingr\pdshell\lib\*.l*
c:\users\default\projects\proj1\libs\
If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used.
4. Access the Reference Database Defaults form and enter the node name and path to the
directories previously defined.
Operating Sequence
1. Select Reference Database Management Data from the Reference Data Manager form.
Long Material Description Library — This field identifies the library which contains the
long BOM description for all piping commodity items. The long BOM description is only
used for requisitions.
Specialty Material Description Library — This field identifies the library which contains
the BOM description for engineered items, in-line instruments, and pipe supports. This
library tends to be customer-specific.
Standard Note Library — This field identifies the location of the standard note library.
Label Description Library — This field identifies the location for the label description
library.
Piping Assembly Library — This field identifies the location for the Piping Assembly
library. This library contains the symbol definitions for assemblies.
Graphic Commodity Library — This field identifies the library which contains the Eden
modules used to place components in the model.
Physical Data Tables Library — These fields identify the library files which contain the
physical data tables for a range of geometric industry standards.
Commodity Synonym Library — This field identifies the user-defined library which
contains the map for translating the default piping commodity names used in the P&ID
Task to names specified by the user in the Piping Job Specification.
Orthographic Drawing Borders — This field identifies the drawing border files to be
used when creating drawings. A set of border files are delivered to the directory
win32app\ingr\pddraw\border. You must specify which style of borders is to be used.
3. Key in any changes to the selected RDB files. Refer to Delivered Reference Data for a
listing of the delivered reference data files.
If you specify an unapproved file, the system will use the unapproved file for all Reference
Data Manager operations (such as revising entries in a library.)
Refer to the Project Data Manager in the Project Administrator Reference Guide for
information on setting the choice of data for a model file or drawing.
4. You can select Approved --> Not Approved to copy the approved definition of the selected
RDB file to the Not Approved fields. Select confirm to update the information.
Refer to the individual managers for information on posting the unapproved information to
the approved files.
5. You can select Default All Library Locations to define a default location for all approved
and all unapproved library files.
6. You can select Copy All Standard Libraries to copy the delivered library files to a specified
location.
7. Select Accept following each change to the reference data to accept the specified file
location.
— THEN —
Select Cancel to exit the form.
The text to be used for the <standard> is determined in the following manner.
Practice Prefix
U.S. Practice us
European - DIN din
European - British Standard bs
European - Practice A eua
European - Practice B eub
International - JIS jis
International - Australian aus
International - Practice A ina
International - Practice B inb
Company Practice cmp
Practice Prefix
U.S. Practice us
European - DIN din
European - British Standard bs
International - JIS jis
International - Australian aus
The list of available products is determined from the list of exported variables as specified in the
pds.cmd shell script. Therefore, this command presently searches for the following exported
variables:
Product Practice
Operating Sequence
1. Select the field to be defined, and key in the location of the source files and the associated
node name.
Piping Eden Path / Node The default location for the Eden source files.
Eden Table Path / Node The default location of the Dimension Table and
Spec Table source files.
Piping Spec Path / Node The default location for the neutral files to be
used to load the Specification/Material Reference
Database.
Assembly Path / Node The default location for the Piping Assembly
Language source files.
Standard Note Library The default location for the Standard Note (code
list) source files.
Equipment Eden Path / The default location for the Equipment Eden
Node source files.
TDF Table Path / Node The default location for the Equipment tutorial
definition files.
Model Builder Path / Node The default location for the model builder
language source files.
2. Select the Confirm () button to accept any changes to the Project Control Data.
Method I
1. Find the component that would require the least number of modifications to make it appear
as the graphics that will represent the new item.
2. Retrieve the model code from the first line on the bottom of the title block. If more than one
"MC" are listed, the first one is all that is needed.
Method II
1. Enter the piping design environment.
2. Select the Place component command.
3. Place a component or instrument or specialty item that closely resembles the component to
be created.
4. Select the Diagnostics command.
5. Select the Review Component Placement option from the form.
The model code is the first item displayed in the message box.
The items that appear indented in the message box are the physical data definitions and
parametric shape definitions used for placing the component.
Once the model code is known, you can extract the symbol processor for the existing item. The
name of the symbol processor for a component is always the same as the model code. To
obtain all the data about a component, the physical data and parametric shape definitions called
from the symbol processor also need to be extracted. These modules may require slight to
several changes as well as the symbol processor to create a new component these changes
depend on how closely the existing item resembles the new one.
To extract the Eden modules for the symbol processor, physical data definition, and parametric
shape definition, follow these steps:
1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Graphic Data Management option.
4. Toggle Full List to Sub-string.
5. Enter the name of the symbol processor, and press Enter.
6. Select the Extract option.
7. Identify the symbol processor from the form.
Method I
1. Find the table format that fits the input/output requirements for the new component.
2. Use a screen editor to create the new table(s) following the format requirements found.
3. Place the new table in the tbls (or equivalent) directory previously defined during setup.
Method II
1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Physical Data Management option.
4. Identify the table library being used (U.S. practice, European - Din, and so forth) and accept
the form.
5. Toggle Full List to Sub-string.
6. Enter the name of a table used by the physical data definition of the existing component
referred to in the steps above, and press Enter.
7. Select the Extract option.
8. Identify the table from the form.
9. Accept the form.
The extracted table is placed in the tbls (or equivalent) directory previously defined during
setup.
10. Use a screen editor to modify the extracted table as necessary to contain the type of
input/output required by the new component.
Editing Modules
After the Eden modules for an existing component have been extracted, they can be used as
models or modified as needed to make them generate a new component. It is recommended
that the symbol processor be created first and the additional modules be created/edited as
needed in the same sequence, in which they are called from their parent modules.
If the new component will require the creation or editing of forms, turn to the end of this chapter
for information about using DBAccess.
Revising Modules
After the Eden modules of a new component have been defined, the component should be
placed in the piping design environment to verify that it places correctly. Should the component
not place correctly, follow these steps to revise the incorrect Eden module:
1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Graphic Data Management option.
4. Toggle Full List to Sub-string.
5. Enter the name of the Eden module to be revised.
6. Select the Revise option.
12. Use the Associate Gadgets option to create and manipulate gadget sequences (where the
cursor should appear following an entry in a key-in gadget).
13. If you are familiar with the procedures used in piping and equipment modeling for identifying,
accepting, and rejecting a selection using the mouse, you will find it easy to follow the
prompts provided for each of the FORMS commands
14. When exiting and saving a form, make sure that the exit form has the following selections
turned on: No Program Skeleton, Erase Form Yes, Write Form Yes.
15. To place a new or customized form where the piping design software will be able to access
it, copy the new form to the pdshell\forms directory.
copy PA001 c:\win32app\ingr\pdshell\forms\PA001
16. Refer to the DBACCESS documentation for detailed information on using this product.
There is no symbol editor for the Windows environment. However, bitmaps (BMP files)
can be used to create symbols.
key: 456
gadget number: 995
button: automatic
'form size' selection:
key: 403
gadget number: 997
button: automatic
'exit' selection:
key: 4001
gadget number: 998
button: manual
'accept' selection:
key: 4002
gadget number: 999
button: manual
'connect to piping' selection:
key: 3200
gadget number: 310
button: manual
'intersection with steel' selection:
key: 4089
gadget number: 89
button: manual
'piping on segment' selection:
key: 4091
gadget number: 51
button: manual
'point on pipe' selection:
key: 4092
gadget number: 52
button: manual
'move from active point' selection:
key: 4093
gadget number: 53
button: manual
'move from reference point' selection:
key: 4094
gadget number: 54
button: manual
'move to coordinate axis' selection:
key: 4095
gadget number: 55
button: manual
message area 'a' for messages:
piping specialties with 'partial data input' have been named using the convention PSB<nnn>.
Use the convention PSU<nnn> to avoid confusion with any Intergraph I/Forms.
These I/Forms delivered by Intergraph can be used as examples for customization.
buttons (automatic):
key: 456
gadget number: 995
button: automatic
'form size' selection:
key: 403
gadget number: 997
button: automatic
'exit' selection:
key: 4001
gadget number: 998
button: manual
'accept' selection:
key: 4002
gadget number: 999
button: manual
'connect to piping' selection:
key: 3200
gadget number: 310
button: manual
'intersection with steel' selection:
key: 4089
gadget number: 89
button: manual
'piping on segment' selection:
key: 4091
gadget number: 51
button: manual
'point on pipe' selection:
key: 4092
gadget number: 52
button: manual
'move from active point' selection:
key: 4093
gadget number: 53
button: manual
'move from reference point' selection:
key: 4094
gadget number: 54
button: manual
'move to coordinate axis' selection:
key: 4095
gadget number: 55
button: manual
message area 'a' for messages:
Valve Operators
You can customize the I/Forms for valve operators. You must adhere to the following
conventions when customizing these I/Forms. If not documented, any I/Form you customize
should remain consistent with those delivered by Intergraph.
Intergraph has chosen to name the I/Forms for valve operators using the convention
VOP<nnn>, where <nnn> are three unique alphanumeric characters. Use the convention
VOU<nnn> to avoid confusion with any Intergraph I/Forms.
I/Forms delivered by Intergraph may be used as examples for customization.
buttons (automatic):
'help' selection:
key: 456
gadget number: 995
button: automatic
'form size' selection:
key: 403
gadget number: 997
button: automatic
'exit' selection:
key: 4001
gadget number: 998
button: manual
'accept' selection:
key: 4002
gadget number: 999
button: manual
'connect to piping' selection:
key: 3200
gadget number: 310
button: manual
'intersection with steel' selection:
key: 4089
gadget number: 89
button: manual
'piping on segment' selection:
key: 4091
gadget number: 51
button: manual
'point on pipe' selection:
key: 4092
gadget number: 52
button: manual
'move from active point' selection:
key: 4093
gadget number: 53
button: manual
'move from reference point' selection:
key: 4094
gadget number: 54
button: manual
'move to coordinate axis' selection:
key: 4095
gadget number: 55
button: manual
message area 'a' for messages:
Pipe Supports
You can customize the I/Form, PSP000.fb, for use as the pipe support menu. You must adhere
to the following conventions in customizing this I/Form. If not documented, any other gadgets on
the I/Form should remain consistent with those delivered by Intergraph.
individual physical pipe support selection:
key: "$<i/form_name>,<model_code>"
where
<I/Form_name> - name of the I/Form to be displayed by Place Pipe Support.
<model_code> - model code of the physical pipe support to be placed by Eden.
Intergraph has chosen to name the I/Forms for physical pipe supports using the convention
PSP<nnn>, where <nnn> are three unique alphanumeric characters.
gadget number: defined by user
any gadget number not reserved by Intergraph
individual functional pipe support selection:
key: "#<pipe_support_type>,<model_code>"
where
<pipe_support_type> - name of the I/Form to be displayed by Place Pipe Support.
<model_code> - model code of the physical pipe support to be placed by Eden.
Intergraph has chosen to name the I/Forms for physical pipe supports using the convention
PSP<nnn>, where <nnn> are three unique alphanumeric characters.
gadget number: defined by user
any gadget number not reserved by Intergraph
’help’ selection:
key: 456
gadget number: 995
button: automatic
’form size’ selection:
key: 403
gadget number: 997
button: automatic
’exit’ selection:
key: 4001
gadget number: 998
button: manual
’accept’ selection:
key: 4002
gadget number: 999
button: automatic
'connect to piping' selection:
key: 3200
gadget number: 310
button: manual
'intersection with steel' selection:
key: 4089
gadget number: 89
button: manual
'piping on segment' selection:
key: 4091
gadget number: 51
button: manual
'point on pipe' selection:
key: 4092
gadget number: 52
button: manual
'move from active point' selection:
key: 4093
gadget number: 53
button: manual
'move from reference point' selection:
key: 4094
gadget number: 54
button: manual
'move to coordinate axis' selection:
key: 4095
gadget number: 55
button: manual
message area ’a’ for messages:
’help’ selection:
key: 456
gadget number: 995
button: automatic
’form size’ selection:
key: 403
gadget number: 997
button: automatic
’exit’ selection:
key: 4001
gadget number: 998
button: manual
’accept’ selection:
key: 4002
gadget number: 999
button: manual
'connect to piping' selection:
key: 3200
gadget number: 310
button: manual
'intersection with steel' selection:
key: 4089
gadget number: 89
button: manual
'piping on segment' selection:
key: 4091
gadget number: 51
button: manual
'point on pipe' selection:
key: 4092
gadget number: 52
button: manual
'move from active point' selection:
key: 4093
gadget number: 53
button: manual
'move from reference point' selection:
key: 4094
gadget number: 54
button: manual
'move to coordinate axis' selection:
key: 4095
gadget number: 55
button: manual
message area ’a’ for messages:
Gadgets 121 through 140 in the previous list are input fields that pass dimensions into
Eden only. Gadgets 141 through 145 pass the dimensions into Eden and pdtable_80. Gadgets
161 through 165 pass dimensions only into pdtable_80 in the database.
All input fields should be sequenced and must have the following characteristics. The settings
for ’editing options’ in the Form Builder should be as follows.
change mode
’not required’
’echo input’
’replace text mode’
’notify by line’
The characteristics form in the Form Builder should have the following settings:
'notify upon completion ---> off (NOT the default)
'notify upon initial' ---> off
<E>*** INTERNAL ERROR - Object code being generated is too big to catalogue
This error occurs when the total number of bytes of object code has exceeded 9560.
Invalid Operation - x
This error occurs when the EDEN module has an illegal use of a relational operator (.gt.,
.le., etc.).
D I
Data Retrieval from the Physical Data If - then - else Statement • 44
Library • 11 Indexed Do Statement • 44
Default Project Control Data • 79
Define Active Orientation • 47 K
Define Connect Point Geometry • 55
Display Tutorial • 56 Keywords (Piping Specific) • 38
Do While Statement • 43
Draw Cone • 48 L
Draw Cone With Capped Ends • 57 Local Variables • 32
Draw Cylinder • 49 Logical Operators • 42
Draw Cylinder With Capped Ends • 57
Draw Eccentric Cone • 49
Draw Eccentric Cone With Capped Ends •
M
58 Move Along Axis • 63
Draw Hexagon • 59 Move By Distance • 63
Draw Mitered Torus • 59 Move To Connect Point • 64
Draw Octagon • 60
Draw Parametric Shape • 61
Draw Projected Rectangle • 50
N
Notes for Graphic Commodity Data • 26
O
Operators • 41
P
Parametric Shape Definitions • 23
Physical Data Definitions • 17
Physical Data Tables • 10
Pipe, Tubing, and Hose • 29
Piping Eden Global Variables • 35
Piping Specialty Components • 84
Place COG Location • 64
Place Connect Point • 65
Preface PDS • 5
Primitives • 46
Prompt to Orient Operator • 65
R
Read Table • 65
Reference Database Management Data •
75
Relational Operators • 42
Replacement Statements • 43
Revising Modules • 82
Rotate Orientation • 66
S
Sub-Symbol Processor • 16
Symbol Processors • 15
T
The Eden Basics • 7
V
Variables • 32
W
What's New in Piping Eden Interface • 6