Eden Supp
Eden Supp
Eden Supp
DPDS3-PB-200013A
For PDS version 07.01.00.**
All warranties given by Intergraph Corporation about equipment or software are set forth in your purchase contract, and nothing stated in, or
implied by, this document or its contents shall be considered or deemed a modification or amendment of such warranties.
The information and the software discussed in this document are subject to change without notice and should not be considered
commitments by Intergraph Corporation. Intergraph Corporation assumes no responsibility 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.
Trademarks
InterAct and Intergraph are registered trademarks of Intergraph Corporation. PDS is a trademark of Intergraph Corporation. MicroStation is
a registered trademark of Bentley Systems, Inc. Windows NT is a trademark of Microsoft Corp. All other brands and product names are
trademarks of their respective owners.
Copyright
1984-2002 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 and trade secret law and may not
be provided or otherwise made available without proper authorization.
Unpublished — rights reserved under the copyright laws of the United States.
Intergraph Corporation
Huntsville, Alabama 35894-0001
________________ If You Need Assistance
Intergraph Online
Our web site brings you fast, convenient, up-to-the-minute information about Intergraph’s
products, services, and direction. Our web address is: http://www.intergraph.com.
Support
For the lasest Support Services information, use a World Wide Web browser to connect to
http://www.intergraph.com/ppo/services/support.asp.
If you are outside of the United States, please call your local Intergraph office. The most up-
to-date list of international offices and distributors is available on the web at
http://www.intergraph.com.
Intergraph Directory
The following numbers are only valid in the United States unless otherwise indicated. If you
are outside the United States, please call your local Intergraph office.
Training Registration
1-800-766-7701 (U.S. Only)
Mailing Address
Intergraph Process, Power & Offshore
300 Intergraph Way
Madison, Alabama 35758
U.S.A.
3
________________
Documentation Contacts
We are constantly working on updates and improvements to the documents and other
educational media. If you have any suggestions on where we can improve the documentation
or where you think more information is needed, let us know. You can reach us by:
4
________________ Table of Contents
Table of Contents
If You Need Assistance ........................................................................................................ 3
Intergraph Directory ............................................................................................................. 3
Begin ..................................................................................................................................... 25
Begin EQP Category ............................................................................................................. 27
Variables ...................................................................................................................................... 29
Common Keywords ..................................................................................................................... 35
Comments .................................................................................................................................... 37
Operators ...................................................................................................................................... 38
Expressions .................................................................................................................................. 40
Functions ...................................................................................................................................... 43
Primitives ..................................................................................................................................... 44
5
________________
PDS Eden for Pipe Supports - April 2002
Abort ..................................................................................................................................... 63
Convert Unit ......................................................................................................................... 64
Define Active Point .............................................................................................................. 65
Define Orientation By Points ................................................................................................ 66
Define Point .......................................................................................................................... 67
Display Message ................................................................................................................... 68
Display Tutorial .................................................................................................................... 69
Draw Arc ............................................................................................................................... 71
Draw Complex Surface ......................................................................................................... 72
Draw Con Prism ................................................................................................................... 75
Draw Curve ........................................................................................................................... 76
Draw Ecc Prism .................................................................................................................... 77
Draw Ecc Transitional Element ............................................................................................ 79
Draw Ellipse ......................................................................................................................... 80
Draw Line ............................................................................................................................. 81
Draw Line String .................................................................................................................. 82
Draw Proj Hexagon .............................................................................................................. 83
Draw Proj Octagon ............................................................................................................... 85
Draw Proj Shape ................................................................................................................... 87
Draw Rectangular Torus ....................................................................................................... 88
Draw Revolved Shape .......................................................................................................... 89
Draw Shape ........................................................................................................................... 91
Draw Transitional Element ................................................................................................... 92
Get Arc Points ....................................................................................................................... 93
Get Arc Size .......................................................................................................................... 94
Get Date ................................................................................................................................ 95
Get Line Size ........................................................................................................................ 96
Get Point ............................................................................................................................... 97
Move Along Arc ................................................................................................................... 99
Move Along Axis ................................................................................................................. 100
Move Along Line .................................................................................................................. 101
Move By Distance ................................................................................................................ 102
Move Data ............................................................................................................................ 103
Place COG ............................................................................................................................ 104
Position Cursor ..................................................................................................................... 105
Put Field ................................................................................................................................ 106
Read Table ............................................................................................................................ 107
Rotate Orientation ................................................................................................................. 109
Start Complex Shape ............................................................................................................ 110
Stop Complex Shape ............................................................................................................. 111
Store Orientation ................................................................................................................... 112
Support User Function .......................................................................................................... 113
6
________________ Table of Contents
7
________________
PDS Eden for Pipe Supports - April 2002
8
________________ Table of Contents
General Conventions
This document contains many visual cues to help you understand the meaning of certain
words or phrases. The use of different fonts for different types of information allows you to
scan the document for key concepts or commands. Symbols help abbreviate and identify
commonly used words, phrases, or groups of related information.
Typefaces
Italic Indicates a system response, which is an explanation of what the software is
doing. For example,
Bold Indicates a command name, parameter name, or dialog box title. Command
paths are shown using an arrow between command names. For example,
Sans serif Indicates a system prompt or message, which requires an action be taken by
the user. For example,
Bold Typewriter
Indicates what you should literally type in. For example,
Normal Typewriter
Indicates an actual file or directory name. For example,
9
________________
PDS Eden for Pipe Supports - April 2002
Symbols
This document uses the following symbols to represent mouse buttons and to identify special
information:
Warning — Critical information that could cause the loss of data if not followed.
Need a hint — used with activities and labs, provides a tip or hint for doing the
exercises.
Keyboard Conventions
The following list outlines the abbreviations this document uses for keyboard keys and
describes how to use them in combination. You can make some menu selections through the
use of keyboard accelerators, which map menu selections to key combinations.
10
________________ Table of Contents
Terminology
Click To use a mouse or key combination to pick an item that begins an
action. For example,
Select the file original.dat from the list box, then click Delete to
remove it from the directory.
Drag To press and hold the data button (<D>) while moving the mouse or
hand-held cursor.
Key in To type in data and press ENTER to enter the data and execute the
default action.
11
________________
PDS Eden for Pipe Supports - April 2002
12
________________ The Eden Basics
1.Basics
Eden is a high-level symbol definition language modeled on the FORTRAN programming language. It allows
you to design your own symbols for equipment, piping, pipe supports, instrumentation, and specialty items.
The Eden language syntax is not case sensitive. You can write code with whatever case conventions make it
easiest for you to read. While you do not need a programming background to write Eden programs, any
programming experience is highly recommended.
Most of the symbol definition functions are built into Eden’s command structure. This high-level command
structure makes it easier to share code among several different symbol definitions.
Eden is flexible enough to allow you to design codes specific to your company’s needs, yet offers predefined
subroutines, called primitives, which carry out functions often repeated within symbol definitions.
For example, the following primitive draws a cone with a length of X units, a diameter at the active point (first
end) of Y units and a diameter at the opposite end of Z units:
13
________________
PDS Eden for Pipe Supports - April 2002
The first line of an Eden module defines the module name. The following statement is used in the Eden
modules to indicate a symbol processor module:
The module name should be entered using UPPER CASE characters. For example:
Support_Symbol_Processor ’GUIDE’
SUPPORT_SYMBOL_PROCESSOR ’CBA’
exit = 0
tutname = ’CBA’
Cstring [29] = Support_commodity_name
Call Get_Date ( Cstring [38] ) ! display date
angle = 45.0
14
________________ Pipe Support Symbol Processor
1.Basics
||’-’|| Dimension[5]
Call Put_field ( SUPPORT_MARK_NUMBER, 45 )
else
Call Display_message ( ’Entry not in spec’, 48 )
endif
else
Call Display_message ( ’Moment Criteria not satisfied’, 48 )
Call Position_cursor ( 47 )
endif
endif
! Define PLACEMENT
SUPPORT_SEQUENCE_NUMBER = 2
Call Load_Spec_Data ( Support_commodity_name, NOM_PIPE_D, Support_Item_Key0, ’’, ’’,
SUPPORT_SEQUENCE_NUMBER, ret )
STOP
END
15
________________
PDS Eden for Pipe Supports - April 2002
16
________________ Tutorial Definition Table
1.Basics
You can create or modify tutorial definition tables using an ASCII editor. The first line in a tutorial definition
table defines the tutorial name. This entry must begin in column 1.
Each input field in a tutorial must have a corresponding row in a tutorial definition table. Each row includes:
field number, data type, global variable, input attribute, default string, and field name.
2. datatype the data type of the field. This entry is a number whose values
include:
1 = linear dimension
2 = angular dimension
3 = integer (no units)
7 = support entity database attribute
9 = field to receive values for CSTRING_x variables
3. number a table data entry which the system interprets differently for each data
type:
For data types 1, 2, and 3, number is a value that can range from 1 to
100 defining the global variable DIMENSION_n, which holds the
field’s input. For example, if number is set to 10 in the table, then
any input into the field is placed by the software into
DIMENSION_10. The symbol can then refer to DIMENSION_10
and use it in any of its calculations.
support_group
2 , pipe_support_no , character(20)
3 , model_code_phy , character(6)
4 , model_code_log , character(6)
5 , iso_support_type_a , short , standard note 380
6 , iso_support_type_b , short , standard note 380
7 , iso_support_type_c , short , standard note 380
8 , iso_support_type_d , short , standard note 380
9 , details_for_shop , character(50)
10 , details_for_field , character(50)
11 , fabrication_orient , character(20)
12 , commodity_code , character(16)
13 , MTO_requirements , short , standard note 365
14 , fabrication_cat , short , standard note 180
15 , weight , double , standard note 1028 (units)
16 , construction_stat , short , standard note 130
17 , hold_status , short , standard note 50
18 , standard_note_no , short , standard note 499
19 , iso_dwg_index_no , integer
17
________________
PDS Eden for Pipe Supports - April 2002
20 , isometric_sheet_no , character(2)
21 , piece_mark_no , character(10)
22 , color_code , character(8)
23 , isometric_dim_a , double
24 , isometric_dim_b , double
25 , isometric_dim_c , double
26 , isometric_dim_d , double
27 , isometric_dim_e , double
28 , trans_rigidity_x , double
29 , trans_rigidity_y , double
30 , trans_rigidity_z , double
31 , rot_rigidity_x , double
32 , rot_rigidity_y , double
33 , rot_rigidity_z , double
34 , spring_gap_length , double
35 , spring_gap_direct , short
36 , number_of_springs , short
37 , last_placed_date , integer
38 , inspection_key , short
39 , mark_number , character(80)
40 , group_id , integer
41 , gang_id , integer
42 , material_grade , short , standard note 145
43 , weld_code , short
44 , material_index , character(16)
45 , operating_load , double
46 , installed_load , double
47 , hydrostatic_load , double
48 , total_movement_1 , double , in subunits - distance attribute
49 , total_movement_2 , double , in subunits - distance attribute
50 , rod_diameter , double , in subunits
For example, if the data type is 7 and number is 2, then any input to this field is put in the support entity,
attribute number 2 (or pipe support number) field of the record that is written to the database when the
component is placed.
For data type 9, number specifies the CSTRING variable to receive the
value.
4. attributes an entry that describes the input field itself. The available values for
this item include:
18
________________ Tutorial Definition Table
Example:
A tutorial has a field for which the attribute entry in the tutorial
definition table contains the number two. You are not allowed to select
1.Basics
the ACCEPT field to exit from the tutorial until you have provided a
valid input for the field.
5. default an entry allowing you to define a default for a particular tutorial input
field. The entry can take on several forms. All of the expressions
outlined below must be surrounded by single quotes in the tutorial
definition table.
XXX- A literal string used for defaulting character string input fields.
The double quote must be included as a delimiter. Example:
"101-C"
Fxxx- Use the current value of tutorial field number xxx as the default
for this field. Note that user-defined field numbers can range
from 1 to 200. (System-defined fields range from 201 to 256
and may not appear in default expressions.) Example: F23
Cxx- Use the contents of CSTRING_xx as the default for this field.
expr- Combine any of the above three default types to form a valid
arithmetic expression. Valid operators are +, -, *, /, and ˆ. Use
parentheses to alter order of evaluation. An expression is not
evaluated until all fields are defined. Example: (F1+F2)/2+30.
This expression is not computed until both fields 1 and 2 are
defined.
Example:
19
________________
PDS Eden for Pipe Supports - April 2002
Example:
6. name defines an alphanumeric name for the field which will be used in
future software releases for reporting and alphanumeric placement of
parametrics. The field name can be a maximum of 10 characters in
length.
1 = 951
2 = 952
3 = 953
4 = 954
5 = 955
6 = 956
7 = 957
8 = 958
9 = 959
10 = 960
Example
The following example tutorial definition table displays a support with 2 dimensional inputs (rows 5 and 7), 1
integer input (row 8), 3 fields for CSTRING_x variables (rows 3, 4, and 9), and 3 fields for support entity
database attributes (rows 1, 2, and 6).
CBA
1, 7, 2, 1, ’’, ’TAG’
14, 7, 4, 1, ’"CB"’, ’TUTNO’
15, 9, 38, 1, ’C38’, ’DATE’
25, 9, 4, 4, ’’, ’ITEM_TYPE’
26, 2, 11, 3, ’45 ’, ’ANGLE’
45, 7, 39, 4, ’’, ’MARK_NO’
46, 1, 5, 4, ’’, ’L’
47, 3, 6, 4, ’’, ’Load’
48, 9, 3, 1, ’’, ’Message’
In the tutorial above, the default value for field 2 on the tutorial is CB.
Since the second column is equal to 1 for field 7, it is a linear dimension input. Your input into this field
is placed in variable DIMENSION_5.
20
________________ Forms Interface
Forms Interface
1.Basics
Forms in pipe support modeling serve to collect input via key-in fields or command buttons. They also provide
feedback information to the user through message fields.
Input fields and application commands have unique identification numbers. These numbers are used with the
tutorial definition table (TDF) to communicate to the software the use for each field or command. The data
entered through the forms serves as the input that defines the values of the global variables used by the symbol
processor. When a new support item is defined through Eden, a form has to be created to define the
component’s parameters. DBAccess is used to build forms.
21
________________
PDS Eden for Pipe Supports - April 2002
22
________________ Eden Language Structure
Eden definitions are usually simpler than FORTRAN programs. To use Eden, you must be able to visualize the
symbol (in 3D) that you want to develop.
2.Structure
The Eden language structure incorporates:
Statements
— Beginning
— Ending
Variables
— Local
— Global
Keywords
Operators
— Arithmetic
— Relational
— Logical
Expressions
Functions
23
________________
PDS Eden for Pipe Supports - April 2002
Beginning Statements
Beginning statements define the types of modules being entered. Names within the single quotes must be all
upper case.
Examples
Support_Symbol_Processor ’A001’
Support_User_Function_Definition ’A001_CHECK’
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 include:
Stop
End
Return
End
24
________________ Begin
Begin
The Begin primitive allows you to generate graphics for 2D shadow, envelopes, various light steel categories,
and holes.
Syntax
Call Begin <category>
Options
2.Structure
category keyword specifying the graphics category you want to place. Allowable
category keywords for each class of graphics include:
ENVELOPE_MAINTENANCE_HARD
ENVELOPE_MAINTENANCE_SOFT
ENVELOPE_ACCESS_HARD
ENVELOPE_ACCESS_SOFT
ENVELOPE_SAFETY_HARD
ENVELOPE_SAFETY_SOFT
ENVELOPE_CONSTRUCTION_HARD
ENVELOPE_CONSTRUCTION_SOFT
2D footprint graphics
SHADOW
LADDER
PLATFORM
HANDRAIL
MISCELLANEOUS
25
________________
PDS Eden for Pipe Supports - April 2002
Holes
HOLE The keywords HOLE and NOHOLE are different from other keywords
NOHOLE in that they do not represent a separate category of graphics. You can
include Begin(HOLE) within another Begin category. A Begin(HOLE)
remains in effect across other Begin calls until a Begin(NOHOLE) is
reached. Hole graphics are given the level and symbology of holes.
Surface Type
SOLID The keywords SOLID and SURFACE set the active surface type of
SURFACE subsequent graphics. The default is SOLID. This results in capped
surfaces. With the SURFACE keyword, you can place uncapped
shapes such as open-ended cylinders.
Except for nozzles and placepoints, all graphics assume the level and symbology of the last executed Begin
statement. Placepoints always belong to the equipment/parametric cell. If your symbol executes no
EQUIPMENT category graphics, an otherwise empty parametric equipment cell is created for housing the
placepoints.
A Begin statement can repeat itself any number of times. After execution, it becomes the active category for
subsequent element placement calls. A (non-EQUIPMENT) Begin statement must be followed by at least one
call to generate graphic elements; otherwise that Begin statement will have no effect on symbol graphics.
26
________________ Begin EQP Category
Syntax
Begin_EQP_Category (subcategory)
Options
2.Structure
subcategory is a character string indicating the subcategory. There are presently 20
subcategories available. A valid subcategory must be one that has been
defined via the Project Administrator Module. Alternatively, you can use
one of the following:
’EQP_CATEGORY_1’,
’EQP_CATEGORY_2’,
..
..
..
’EQP_CATEGORY_20’
The argument is checked only when you place the symbol and not during
compilation.
Restrictions
You can use this call only within the Begin (EQUIPMENT) call. Also, you cannot make this call when Draw
Complex Surface or Start Complex Shape is in progress. By default, the Begin (EQUIPMENT) and Begin
EQP Category (’EQP_CATEGORY_1’) calls are active when a symbol executes.
Example
The following example is a valid code fragment:
27
________________
PDS Eden for Pipe Supports - April 2002
..
Call Draw_Complex_Surface (-99, 0) ! end pump
28
________________ Variables
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:
2.Structure
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 keyword.
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
29
________________
PDS Eden for Pipe Supports - April 2002
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:
In the example below, D is an array of 5 short integer variables stored contiguously. The individual elements
are referenced as D[1], D[2], D[3], D[4], and D[5]. You can also use a variable or an arithmetic expression for
indexing, such as D[i] where i is a value between 1 and 5, or D [i+1] where i is a value between 0 and 4. INT2-
typed variables are particularly useful in DO loops and array indexing where integral numbers are necessary and
roundoffs must be avoided. They are also stored much more efficiently than REAL variables.
Example:
Below, LENGTHS is an array of 10 REAL variables. They are referenced as LENGTHS [1] ... LENGTHS [10]
R8 LENGTHS [10]
30
________________ Variables
Example:
In the following example, PT is declared as a buffer with four locations.
Location PT [12]
where
2.Structure
These variables provide alternate locations for the point values that you do not want to store in POINT_1 ...
POINT_24... POINT [125]. You will also find them useful in accessing individual components of a location.
(Refer to the REPLACEMENT STATEMENT section.)
Location PT [12]
An array-formatted variable may also be referenced without the index. In this case, the first element of the array
is accessed. For example, PT and PT [1] are functionally the same in the above example.
Currently, only single expression subscripts (that is; single dimensioned arrays) are possible.
Global variables are system-defined. You cannot declare global or subscripted global variables.
Input_n (Input_1 through Input_20) An array with up to 20 variables used to define the input
parameters for table lookups. (Input_11 through Input_20 are specifically designed for
user function arguments in equipment and pipe support modeling.)
Output_n (Output_1 through Output_20) An array with up to 20 variables where the results of the
table lookup are stored. (Output_11 through Output_20 are specifically designed for user
function return arguments in equipment and pipe support modeling.)
Dimension_n (Dimension_1 through Dimension_100 for equipment and pipe supports, Dimension_1
through Dimension_20 for piping) General purpose variables used for communicating
input to the symbol logic. You can also use these variables for passing values between
subroutines or simply for local storage. (Dimension_20 is for angle; Dimension_1 through
Dimension_19 is for linear piping.)
31
________________
PDS Eden for Pipe Supports - April 2002
Nom_Pipe_D_n Variable containing the current item nominal pipe diameter. This variable contains the
nominal diameter in coded units. A special primitive is provided to help you convert from
coded units to subunits.
Gen_Type_n Variable containing the current item end preparation generic type (BLT, MAL, FEM). This
is a read-only variable.
Term_Type_n Variable containing the current item end preparation termination type (21, 22, and 23 will
fall into Term_Type_1=20). This is a read-only variable.
Standard_Type Variable containing the current item standard type value. This is a read-only variable and
is a function of TABLE_SUFFIX.
NPD_Unit_Type Contains the nominal piping diameter system of units defined for
the model file. You can test this variable against the keywords
ENGLISH and METRIC. This is a read-only variable.
32
________________ Variables
2.Structure
PDTABLE_241 (Commodity_Name).
Geo_Ind_Std The geometric industry standard used for the selected pipe.
33
________________
PDS Eden for Pipe Supports - April 2002
Support_Section_Breadth The breadth of the current support section. This variable can
only be used after a call to the Load_Section_Data function.
Support_Section_Depth The depth of the current support section. This variable can
only be used after a call to the Load_Section_Data function.
In addition to these variables, any PDTABLE_80 database attribute can be set using the
convention T80Cn where n is the column number of the attribute the value is assigned to.
You can reference the same location using subscripted global variables, which contain an index either as a
variable or as an expression. For example, Dimension [10] and Point [3] are subscripted global variables whose
index values are 10 and 3, respectively. They are equivalent to Dimension_10 and Point_3. Subscripted global
variables are useful when using loops. Below is a list comparing the two methods of accessing global variables
with indexes:
Subscripted Global Variable (variable index) Global Variable with non-variable index
A global variable referenced without a subscript causes the first element to be accessed. Thus, Point and Point
[0], Dimension and Dimension_1 are functionally equivalent.
34
________________ Common Keywords
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.
2.Structure
BOLTED
ENGLISH Names used to define the units of a constant used in the symbol definition.
METRIC
ACTIVE_POINT Name representing the location of the active point in the local coordinate system
POINT_0 defined by the symbol. These names can be used interchangeably.
EAST Keywords used to define directions in the local coordinate system defined by the
symbol definition.
WEST
NORTH
SOUTH
UP
DOWN
SUPPORT_SYMBOL_PROCESSOR Module type of all pipe support modeling Eden definitions. It is used in the first
statement of a symbol definition.
ENG_COMM_LIB Names representing the different libraries that can be made active in a symbol
EQP_TABLES definition.
END Must be the last line in the symbol source code. If execution reaches the END
statement, an implicit STOP is executed.
There are other keywords primarily used in specific subroutine calls. These keywords can be found in the
subsections that describe their associated primitives. Keywords APPLICATION_CMD and USER_KEYIN are
described under the DISPLAY_TUTORIAL primitive. Keywords such as PT_BORE and COG_TYPE are
explained under the GET_POINT and PLACE_COG primitives respectively.
35
________________
PDS Eden for Pipe Supports - April 2002
TYPE Statement
TYPE statements allow you to assign up to 150 labels or types to a symbol. The syntax for the TYPE statement
is:
where
Type 1 ... Type n Labels representing types under which the symbol will be classified.
A type label can be up to 28 characters long. The compiler automatically left justifies each type and converts it
to upper case. You can enter any number of complete type labels that fit in a line. Multiple TYPE statements
are allowed. A TYPE statement can appear anywhere in the source code; however, the # character must appear
in column 1.
Example:
The following TYPE statement appears in the code for a multi-diameter vertical vessel supported on skirt.
DESCRIPTION Statement
The DESCRIPTION statement assigns a descriptive phrase of up to 40 characters to the symbol.
A DESCRIPTION statement can appear anywhere in the symbol code. The description string is placed left
justified by the compiler. When more than one DESCRIPTION statement appears, only the last statement is
used. The # character must appear in column one.
36
________________ Comments
Comments
When you place an exclamation point (!) anywhere in an Equipment Modeling source line, the remainder of that
line is treated as a comment.
Example:
Call define_placepoint (PP1, POINT_1) ! POINT_1 is used to
! define place point 1
When you place an exclamation point (!) anywhere in an Pipe Support Modeling source line, the remainder of
2.Structure
that line is treated as a comment.
Example:
Call place_connect_point (CP1) ! Places Connect point 1
37
________________
PDS Eden for Pipe Supports - April 2002
Operators
Operators are used in conjunction with variables to form expressions. As in FORTRAN, operators can be
anyone 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.
38
________________ Operators
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
2.Structure
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.
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.
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
39
________________
PDS Eden for Pipe Supports - April 2002
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
In Equipment and Pipe Support Modeling, all three components of a point (or location variable) can be replaced
by another point value with one assignment statement.
Example:
In the following example, PT is declared as a buffer of three points. The second statement saves pt [4], pt [5], pt
[6] into global location Point_5. In the third statement, the location value stored in point [2] is saved in a PT
buffer, the x-coordinate being assigned to pt [7], y to pt [8], and so forth. Likewise, in the last statement, the
POINT_3 components are replaced by those of Point_4 in one aggregate operation.
Location pt [9]
.
.
point [5] = pt [4]
.
.
pt [7] = point_2
.
.
point_3 = point [4]
40
________________ Expressions
Call Statement
Call statements are used to execute system primitives. The syntax for the Call statement is:
Example:
Call Place_Cylinder_With_Capped_Ends (diameter, length)
2.Structure
Call Place_Connect_Point (CP1)
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
Call Draw_Cylinder_With_Capped_Ends (diam, leng)
enddo
Call Display_Message (’Out of loop now’)
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
41
________________
PDS Eden for Pipe Supports - April 2002
v1 are constants or variables that evaluate to the initial, terminal, and incremental parameters respectively.
v2 v3 is optional. If v3 is omitted, the system assumes that the incremental parameter is one.
v3
V3 cannot be negative.
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
if (condition) then
.
.
.
else
.
.
.
endif
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.
42
________________ Functions
Functions
Eden provides several functions for performing common mathematical operations. These functions can be used
within replacement statements.
2.Structure
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
Example:
The following list illustrates a few possible Eden functions:
43
________________
PDS Eden for Pipe Supports - April 2002
Primitives
Primitives are system-defined routines that perform specific functions for symbol definition.
44
________________ Load Spec Data
Syntax
Call Load_Spec_Data ( Support_Commodity_Name, Nom_Pipe_D, Support_Item_Key0,
Support_Item_Key1, Support_Item_Key2, Support_Sequence_Number, Return_Value )
Options
2.Structure
Support_Commodity_Name Value from reference database table 241, column 3.
45
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Draw_Section_Member ( Section_Table_Name, Cardinal_xx, Support_Material_Length )
Options
Section_Table_Name Section table name loaded by a prior call to load_spec_data.
Cardinal_xx One of the CARDINAL_xx variables to specify which steel cardinal point to
use in placing the steel.
Support_Material_Length The project length of the steel member. This option must be set by the Eden
module.
46
________________ Place Connect Point
When you call Place Connect Point, the location of the active point is assigned to the connect point. You must
place all of the connect points assigned in the symbol processor module.
Syntax
Call Place_Connect_Point (CPn)
2.Structure
Options
CPn Variable defining the connect point (n = 0,1,2,3,4,5).
47
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Prompt_For_Orientation ( 1 )
Options
1 1 is a dummy argument. This call can only be made after Connect Point 1
has been placed.
48
________________ Load Section Data
Syntax
Call Load_Section_Data ( Section_Table_Name )
Options
2.Structure
Section_Table_Name This keyword is loaded by a prior call to the Load_Spec_Data primitive.
49
________________
PDS Eden for Pipe Supports - April 2002
Metric files base the diameter in millimeters. Imperial files store the nominal piping diameter as
NPD 1/32 + 5000. Thus,
For Eden symbols in Piping that use imperial and metric files, hard coding the dimensions is not
recommended. A dimension entered as 5 inches and placed in an Imperial file is interpreted as 5
inches. However, the same value placed in a Metric file is interpreted as 5 millimeters. Instead
of hard coding, load the dimensions in a table to allow the piping software to convert the
dimensions to the correct values.
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.
Examples
In this example, the Real*8 equivalence of the coded NPD in Nom_Pipe_D_1 is returned in 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.
50
________________ Define Active Orientation
In Piping, this primitive defines the current flow centerline and a direction that is normal to the flow centerline
in terms of the connect point orientation (defined by the symbol’s connect point geometry) in order to place
graphic shapes.
2.Structure
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.
EAST PRIMARY
WEST SECONDARY
NORTH NORMAL
SOUTH
UP
DOWN
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.)
51
________________
PDS Eden for Pipe Supports - April 2002
Example:
In the following example, the primary orientation is set to point west, the secondary orientation is set to point
down, and the normal points out of the screen:
52
________________ Draw Cone
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.
2.Structure
Syntax
Call Draw_Cone (length, diameter_1, diameter_2)
Options
length The length of the cone (A) which can be positive or negative.
diameter_2 The diameter of the cone (C) at the end opposite the active point.
Examples
SUPPORT_SYMBOL_PROCESSOR ’CCONE’
tutnam = ’CCONE’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length of cone
B = DIMENSION_2 ! diameter at active pt
C = DIMENSION_3 ! diameter at opposite end
Call Draw_Cone (A, B, C)
stop
end
53
________________
PDS Eden for Pipe Supports - April 2002
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.
Examples
SUPPORT_SYMBOL_PROCESSOR ’CYLIND’
tutnam = ’CYLIND’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length
B = DIMENSION_2 ! diameter
Call Draw_Cylinder (A, B)
stop
end
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.
54
________________ Draw Eccentric Cone
2.Structure
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.
Examples
SUPPORT_SYMBOL_PROCESSOR ’ECONE’
tutnam = ’ECONE’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length
B = DIMENSION_2 ! diameter at active pt
C = DIMENSION_3 ! diameter at opposite end
offset = (C - B) * 0.5 ! offset
Call Draw_Eccentric_Cone (A, offset, B, C)
stop
end
55
________________
PDS Eden for Pipe Supports - April 2002
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.
Restrictions
The active point must be located at the center of geometric shape of the rectangle.
Examples
SUPPORT_SYMBOL_PROCESSOR ’RECTNG’
tutnam = ’RECTNG’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length of projection
B = DIMENSION_2 ! length of side parallel to normal
C = DIMENSION_3 ! length of side parallel to secondary
56
________________ Draw Projected Rectangle
2.Structure
57
________________
PDS Eden for Pipe Supports - April 2002
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.
Restrictions
The active point must be located at the center of geometric shape of the triangle.
Make sure that dimension A is greater than 1/2 of dimension B, otherwise errors will result.
Examples
SUPPORT_SYMBOL_PROCESSOR ’TRIANG’
tutnam = ’TRIANG’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length a side
B = DIMENSION_2 ! length of base
C = DIMENSION_3 ! length of projection
58
________________ Draw Projected Triangle
angle = DIMENSION_4
if (B .GT. 0) then
DIMENSION_4 = 0
endif
if (angle .GT. 0 .AND. B .EQ. 0) then
angle = angle * 0.5
B = 2.0 * (A * DSIND(angle))
endif
Call Draw_Proj_Triangle (A, B, C)
stop
end
2.Structure
59
________________
PDS Eden for Pipe Supports - April 2002
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).
Examples
SUPPORT_SYMBOL_PROCESSOR ’SELLIP’
tutnam = ’SELLIP’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! major axis diameter
B = DIMENSION_2 ! minor axis radius
Call Draw_Semi_Ellipsoid (A, B)
stop
end
60
________________ Draw Sphere
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.
2.Structure
Syntax
Call Draw_Sphere (radius)
Options
radius Variable (A) defining the sphere radius.
Examples
A = F_to_C_Dim_1*0.5 ! defining sphere radius
61
________________
PDS Eden for Pipe Supports - April 2002
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.
Examples
SUPPORT_SYMBOL_PROCESSOR ’CTORUS’
tutnam = ’CTORUS’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! torus diameter
B = DIMENSION_2 ! torus bend radius
if (DIMENSION_3 .eq. 0) then
DIMENSION_3 = 90
endif
C = DIMENSION_3 ! bend angle
Call Draw_Torus (B, C, A)
stop
end
62
________________ Abort
Abort
The Abort primitive allows you to terminate symbol execution without having to place graphics. It is similar to
the QUIT option available on symbol tutorials. When the system encounters an Abort call, it displays a
message indicating that the symbol execution has aborted.
Syntax
Call Abort (0)
2.Structure
63
________________
PDS Eden for Pipe Supports - April 2002
Convert Unit
The Convert Unit primitive is used to convert distance in a given system of units to the design file system of
units. Both lengths are expressed in subunits.
Syntax
Call Convert_Unit (length1, unit type, outlength)
Options
length1 Is the input length in subunits.
unit type Is the input as ENGLISH (for inches) or METRIC (for mm) to indicate the units
in which length1 is expressed.
outlength Is the output after converting length1 to design file system of units.
Example
In the following example, a length of 10 inches is input. length2 receives the value 10 if the unit type is set to
English or 254 if the unit type is set to Metric.
64
________________ Define Active Point
Syntax
Call Define_Active_Point (point)
Options
2.Structure
point Is a keyword specifying a previously defined point. Valid values for point
include:
Restrictions
The initial position of the active point must be located at the symbol’s local coordinate system origin.
Example
Call Define_Active_Point (POINT_3)
65
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Define_Orientation_By_Points (PT1, PT2, PT3)
Options
pt1 The active primary direction is computed using pt1 as the start point. Global or
local point.
pt2 The active primary direction is computed using pt2 as the end point. Global or
local point.
pt3 The active secondary direction is computed using pt3 as the end point. The start
point is the intersection between the primary vector from pt1 and its perpendicular
from pt3. Global or local point.
In case one or more of these points are coincident, the active orientation is unchanged.
Example
In the following example, the call orients the active primary along the line from POINT_1 to POINT_2, and the
active secondary towards POINT_3 along a perpendicular of the primary:
66
________________ Define Point
Define Point
The Define Point primitive allows you to save a point or to calculate a new point based on a reference point and
a delta x, y, and z.
Syntax
Call Define_Point (point, ref_point, delta_x, delta_y, delta_z, flag)
Options
2.Structure
point A keyword specifying the saved or calculated point storage location. Local or
global point variables are valid values.
ref_point A keyword specifying the point to be saved or the point from which the new
point is to be calculated. Valid values for ref_point include:
delta_x The delta in the x or east direction of the symbol coordinate system from the
reference point.
delta_y The delta in the y or north direction of the symbol coordinate system from the
reference point.
delta_z The delta in the z or up direction of the symbol coordinate system from the
reference point.
flag [optional] If supplied, the deltas are interpreted as offsets along the active
primary, secondary, and normal respectively.
Examples
In this example, the current active point is saved in POINT_1. You can make POINT_1 the active point
again simply by calling Define Active Point.
In this example, a new point is calculated from POINT_1. The result is saved in POINT_2.
delx = 24.
dely = 24.
delz = 24.
Call define_point (POINT_2, POINT_1, delx, dely, delz)
67
________________
PDS Eden for Pipe Supports - April 2002
Display Message
The Display Message primitive allows you to display a message in a tutorial field or MicroStation ’ER’ field.
Syntax
Call Display_Message (message, fldno)
Options
message A variable or expression. If necessary, the message can be converted to
displayable characters for output. You can specify a message up to 50 characters
in length; however, only the first 40 characters will be displayed.
fldno A field number on the active tutorial. Possible values are 0 - 255. If 0, the
message is displayed in the MicroStation ’ER’ field.
Tutorial fields defined (via TDF) to contain data for symbol generation should not receive input
through this call.
Example
dia = -10.0
.
.
.
Call Display_Message (’Cone dia is negative: ’ || dia, 0 )
The actual message displayed in the ’ER’ field will read: Cone dia is negative: -10.0
68
________________ Display Tutorial
Display Tutorial
The Display Tutorial primitive allows you to activate a tutorial and specify an optional tutorial definition file
name.
Syntax
Call Display_Tutorial (tutnam, tdfnam)
Options
2.Structure
tutnam Name of the form (1 - 6 characters) to be activated.
tdfnam [optional] The tutorial file name (1 - 6 characters). If omitted, the TDF name
defaults to the tutorial name itself. This argument allows you to activate the same
tutorial with different TDF names and hence different global variables for each
activation. The same TDF name can be used with different tutorials.
Example
This call activates a tutorial named TEST.
There is a limit of 10 forms that can be activate. It is also possible to activate the same form
several times per symbol execution. However, if a TDF name is used with several forms in the
modify mode, only the first such form will display existing data.
The global variable LAST_INP_NUM contains the number of the last terminated field selected.
69
________________
PDS Eden for Pipe Supports - April 2002
Example
Three possible operator actions can result in control returning to the symbol code for the example below. The
first test is against a terminated application field selection. If positive, the data in DIMENSION
[LAST_INP_NUM] is accessed and output to field 90.
The second test is for the selection of a terminated key-in field. The contents of CSTRING [LAST_INP_NUM]
is output to field 100. The receiving variable for the keyed-in text is stored as per TDF.
The symbol waits for further operator input by calling Display Tutorial. The tutorial does not redisplay since it
is already active.
If both tests fail, you must select ACCEPT (the control variable will be set to TRUE), forcing exit from the
loop.
ACCEPTED = FALSE
do while (.not. ACCEPTED)
Call Display_Tutorial (’TEST’)
if (LAST_INP_TYPE .eq. APPLICATION_CMD) then ! application cmd
! ... field
Call Put_Field (dimension [LAST_INP_NUM], 90)
else
if (LAST_INP_TYPE .eq. USER_KEYIN) then
Call Put_Field (cstring [LAST_INP_NUM],100)
else
ACCEPTED = TRUE ! get out of loop
endif
endif
enddo
70
________________ Draw Arc
Draw Arc
The Draw Arc primitive allows you to place an arc. An arc may be considered a continuous segment of an
ellipse whose axes are known.
Syntax
Call Draw_Arc (semimajor, semiminor, start_angle, sweep_angle)
Options
2.Structure
semimajor Supplies the length of the semimajor axis and is oriented by the local
primary.
semiminor Supplies the length of the semiminor axis and is oriented by the local
secondary.
start_angle Specifies the start point of the arc segment. The value range is -360.0
to 360.0. Larger or smaller values are reduced to this range,
remaindering by 360.0. Positive angles are measured by rotating the
primary into the secondary counterclockwise in a right-handed
system.
sweep_angle specifies the span of the arc segment. The value range is -360.0 to
360.0. Larger or smaller values are reduced to this range,
remaindering by 360.0. Rotational sense is counterclockwise, right-
handed, from start_angle.
Example
This call places an elliptical arc with major and minor axes of 40 and 20 units respectively. The primary axis is
rotated from a 90 degree position through a right angle to produce the arc.
If you are placing a non-circular arc with start or sweep angles that are NOT a multiple of 90
degrees, MicroStation computes these angles differently. To convert your angle to the input
argument, use the following formula:
71
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Draw_Complex_Surface (argument_1, argument_2)
1. Start surface
3. End surface
Start Surface
Used to start the surface.
Syntax
Options
surface_type The MicroStation surface type to build. Typical surface types include:
0 - surface of projection
8 - surface of revolution
Change Class/Symbology
Used to change the class/symbology of elements being placed within the surface. A negative symbol must be
placed in front of the first argument.
Syntax
72
________________ Draw Complex Surface
Options
2.Structure
1 - apply line code only
2 - apply line weight only
4 - apply color only
Sum the above values to send in combinations. For example, (3) code
and weight to apply is the result of adding (1) apply line code only and
(2) apply line weight only. Using this process, you can enter numbers 0-7
(default to all of the above).
The lower word supplies the symbology (line code, line weight, color) as
per MicroStation format.
Complete Surface
Used to complete the surface.
Syntax
Example
This example shows the creation of a flat-oval projected shape. The opening Draw Complex Surface specifies
that each face is composed of 4 elements and that this is a surface of projection.
73
________________
PDS Eden for Pipe Supports - April 2002
The code for placing a flat-oval face is shown (2 arcs and 2 lines). The second call to Draw Complex Surface
specifies that rule lines (class=4) will be placed. The minus sign before the class argument is needed by the
system to identify ongoing calls. The final call terminates surface construction.
74
________________ Draw Con Prism
Whenever possible, use the Draw Proj Shape primitive for pipe supports rather than the Draw
Con Prism primitive. Draw Con Prism does not draw the true shape when an envelope file is
created for the design file. It is protruded incorrectly at the projected end.
Syntax
2.Structure
Call Draw_Con_Prism (length_sec, length_norm, length_proj, length2_sec, length2_norm)
Options
length_sec The length of rectangular base along secondary.
Example
SUPPORT_SYMBOL_PROCESSOR ’RPRISM’
tutnam = ’RPRISM’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length of A
B = DIMENSION_2 ! length of B
C = DIMENSION_3 ! length of C
D = DIMENSION_4 ! length of D
proj = DIMENSION_5 ! length of E
Call Draw_Con_Prism (A, B, proj, C, D)
stop
end
75
________________
PDS Eden for Pipe Supports - April 2002
Draw Curve
The Draw Curve primitive allows you to place a curve string.
Syntax
Call Draw_Curve (no_vertex, point_buffer)
Options
no_vertex The number of vertices from 1 - 90.
point_buffer The location of the 1st vertex. The other vertices are sequentially stored
in the buffer. Use global or local point buffers.
Example
In this example, the call places a stream curve of 20 points in POINT [24] .. POINT [43].
This primitive is not supported by the equipment task but is available in the HVAC task.
76
________________ Draw Ecc Prism
Whenever possible, use the Draw Proj Shape primitive for pipe supports rather than the Draw
Ecc Prism primitive. Draw Ecc Prism does not draw the true shape when an envelope file is
created for the design file. It is protruded incorrectly at the projected end.
2.Structure
Syntax
Call Draw_Ecc_Prism (length_sec, length_norm, length_proj,
length2_sec, length2_norm, offset)
Options
length_sec The length of rectangular base along secondary.
offset The center-to-center distance between base end and top end measured
(positive) against the secondary.
Example
SUPPORT_SYMBOL_PROCESSOR ’EPRISM’
tutnam = ’EPRISM’
Call Display_tutorial (tutnam)
A = DIMENSION_1 ! length of A
B = DIMENSION_2 ! length of B
C = DIMENSION_4 ! length of C
D = DIMENSION_5 ! length of D
E = DIMENSION_3 ! length of E
77
________________
PDS Eden for Pipe Supports - April 2002
78
________________ Draw Ecc Transitional Element
2.Structure
Syntax
Call Draw_Ecc_Transitional_Element (length_sec, length_norm, length_proj,
length_radius, offset)
Options
length_sec The length of rectangular base along secondary.
offset The center-to-center distance between the rectangular end and the
circular end as measured positive going against the active secondary.
Example
SUPPORT_SYMBOL_PROCESSOR ’ETRANS’
tutnam = ’ETRANS’
Call Display_tutorial (tutnam)
A = DIMENSION_1 ! length of A
B = DIMENSION_2 ! length of B
C = DIMENSION_3 ! length of C
D = DIMENSION_4 / 2.0 ! length of D
offset = (A - D) / 2.0 ! offset
Call Draw_Ecc_Transitional_Element (A, B, C, D, offset)
stop
end
79
________________
PDS Eden for Pipe Supports - April 2002
Draw Ellipse
The Draw Ellipse primitive allows you to place an ellipse. The major and minor axes are oriented by the local
primary and secondary axes respectively.
Syntax
Call Draw_Ellipse (semimajor_len, semiminor_len)
Options
semimajor_len Half the length of the major axis.
Example
This call places an ellipse whose major and minor axes are 40 and 20 units long.
80
________________ Draw Line
Draw Line
The Draw Line primitive allows you to place a line.
Syntax
2.Structure
Call Draw_Line (start_pt, end_pt)
Options
start_pt The location of first vertex. Use global or local point.
Example
In this example, the call places a line from POINT_10 to POINT_20.
81
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Draw_Line_String (no_vertex, point_buffer)
Syntax
no_vertex Supplies the number of vertices from 1 - 90.
point_buffer The location of the first vertex. The other vertices are sequentially stored
in the buffer. Use global or local point buffers.
Example
In this example, the call places a line string of 20 vertices, which are found in POINT[24] ... POINT [43].
82
________________ Draw Proj Hexagon
2.Structure
Syntax
Call Draw_Proj_Hexagon (side_length, proj)
Options
side_length Side B is the side length.
Example
SUPPORT_SYMBOL_PROCESSOR ’HEXAGON’
tutnam = ’HEXAGON’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length of A
D_in = DIMENSION_2 !
D_out = DIMENSION_3 !
D_side = DIMENSION_4 !
if (D_side .GT. 0) then
DIMENSION_2 = 0
DIMENSION_3 = 0
endif
if (D_side .LE. 0) then
if (D_in .GT. 0) then
DIMENSION_3 = 0
D_side = D_in * DTAND(30.0)
endif
endif
if (D_side .LE. 0) then
83
________________
PDS Eden for Pipe Supports - April 2002
84
________________ Draw Proj Octagon
2.Structure
Syntax
Call Draw_Proj_Octagon (side_length, proj)
Options
side_length Side B is the side length.
Example
SUPPORT_SYMBOL_PROCESSOR ’OCTGON’
tutnam = ’OCTGON’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length of A
D_in = DIMENSION_2 !
D_out = DIMENSION_3 !
D_side = DIMENSION_4 !
if (D_side .GT. 0) then
DIMENSION_2 = 0
DIMENSION_3 = 0
endif
if (D_side .LE. 0) then
if (D_in .GT. 0) then
DIMENSION_3 = 0
D_side = D_in * DTAND(22.5)
endif
endif
if (D_side .LE. 0) then
85
________________
PDS Eden for Pipe Supports - April 2002
86
________________ Draw Proj Shape
2.Structure
Syntax
Call Draw_Proj_Shape (no_pnt, proj_len, pnt_buffer)
Options
no_pnt The number of vertices from 1 - 24.
Examples
The length of the shape to be placed is 10.0 units. The 5 vertices are in POINT [101] ... POINT [105].
The projected shape’s vertices are found in POINT_1 ... POINT_5. After placement, the active point is
updated from the face by which it was placed to the opposite face.
87
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Draw_Rectangular_Torus (bend_radius, sweep_angle, length_sec, length_norm)
Options
bend_radius The length from torus origin to center of either end.
sweep_angle The angle formed between two radii joining the center of each end to the
origin.
Example
SUPPORT_SYMBOL_PROCESSOR ’RTORUS’
tutnam = ’RTORUS’
Call Display_Tutorial (tutnam)
A = DIMENSION_1 ! length of A
B = DIMENSION_2 ! length of B
C = DIMENSION_3 ! length of C
D = DIMENSION_4 ! Sweep angle of D
Call Draw_Rectangular_Torus (C, D, A, B)
stop
end
88
________________ Draw Revolved Shape
Syntax
Call Draw_Revolved_Shape (generator_type, total_stroke_angle,
no_of_steps point_buffer, argument_5, argument_6)
2.Structure
Options
generator_type A keyword specifying the element type being revolved.
Keywords include:
total_stroke_angle Specifies the overall angle of revolution in degrees from -360 to +360.
no_of_steps Specifies the number of sections to create for the revolved shape. For example,
if you specify a value of 2, there will be one intermediate instance of the
generator element which will split the revolved shape into two sections. Must
be at least 1.
If you are rotating a shape or line string, this array supplies the vertices of the
element. If you are rotating an arc, this array must contain three points to define
the arc. The first point is the arc origin. The second point defines the length and
direction of the primary axis as measured from the arc origin. The third point
defines the arc secondary, also relative to the arc origin.
For arc: start angle of the arc (angle made between primary axis and the start of
the arc segment).
argument_6 For line string or shape: a flag to indicate how edge lines should be placed.
Specify a 1 if edge lines are to appear from all vertices. Specify a 0 if edge lines
are placed from the two end vertices only.
for arc: is the sweep angle of the arc segment. (For arcs, only two edge lines are
placed, one from each end point of the arc).
89
________________
PDS Eden for Pipe Supports - April 2002
Example
In this example, a 2:1 semi-elliptical head is placed. The straight section is 24 inches, and the vessel diameter is
120 inches. Only two instances of the arc will appear — one at 0 degrees, and another at 180 degrees
(intermediate).
straight_flange = 24
dia = 120
dish_depth = dia/4
Call Draw_Cylinder (straight_flange, dia)
If you are rotating an arc, refer to the Draw Arc section for proper specifications of start and
sweep angles.
90
________________ Draw Shape
Draw Shape
The Draw Shape primitive is a 2D call allowing you to place a planar closed shape.
2.Structure
Syntax
Call Draw_Shape (no_vertex, point_buffer)
Options
no_vertex Supplies the number of vertices from 1 - 90.
point_buffer The location of the first vertex. The other vertices are found in succeeding locations.
The system adds the last vertex to coincide with the first vertex and close the shape. Use
global or local point buffers.
Example
In this example, the call places a shape of 20 vertices in POINT [24] ... POINT [43].
91
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Draw_Transitional_Element (length_sec, length_norm, length_proj, length_radius)
Options
length_sec The length of rectangular base along secondary.
Example
In this example, a transitional element with a base measuring 24 x 16 and a height of 30 subunits is placed along
the active primary axis. The circular top is drawn with a radius of 6 subunits.
After placement, the active point is updated from the face by which the shape was placed to the opposite end.
92
________________ Get Arc Points
Syntax
Call Get_Arc_Points (arc_definition)
2.Structure
Options
arc_definition An output buffer of 4 points (global or local point buffer). The 4 points returned are (in
order): center, one end point, an intermediate point, and the other end point of the arc.
They allow the system to reconstruct the circular arc on arc-related calls where this
definition must be input. The call will work properly as long as the identified arc is
circular. The points are converted to the symbol (local) coordinate system before return.
93
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Get_Arc_Size (arc_definition, from_pt, to_pt, length)
Options
arc_definition An input buffer of four points identifying a circular arc in local coordinates. The
subroutine uses this argument to find the angular position or sweep of the arc segment
about the center (first point). The center of the arc is then used with the FROM_PT
argument to find trace radius.
from_pt An input identifying the starting point of measurement. It is also used to compute the
radius of the circular arc. Global or local point.
to_pt An input identifying the end point of measurement. This point only establishes an
ANGULAR position on the arc determined from the first two arguments. Thus, it may or
may not be on the arc itself. Global or local point.
length The output variable containing the peripheral separation between FROM_PT and TO_PT.
The result is accurate as long as both FROM_PT and TO_PT are within the sweep angle of the
arc in ARC_DEFINITION. However, if a point is off the curve, the system will route the
connection so as to include the arc’s end nearer the off-point.
Example
In this example, the Get Point call forces a snap only – to an arc. On return, the arc data is obtained with the
second call. The length of the arc is then computed by sending the third call (the start point (point [3]), the end
point (point [5]), and the arc itself).
94
________________ Get Date
Get Date
The Get Date primitive allows you to retrieve the current system date into a character variable.
Syntax
Call Get_Date (date_string)
Options
2.Structure
date_string The character variable receiving system date in the form: dd-mmm-yyyy
Example
Call Get_Date (cstring_1)
95
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Get_Line_Size (from_pt, to_pt, size)
Options
from_pt The start point of measurement. Use global or local point.
size The output variable containing the distance. This argument is always positive.
Example
In the following example, the code fragment computes the distance between point_1 and point_2 through the
previous Get Point calls:
.
.
Call Get_Point (pt_snap, point [1])
Call Get_Point (pt_snap, point [2])
Call Get_Line_Size (point [1], point [2], distance)
.
.
96
________________ Get Point
Get Point
The Get Point primitive allows you to get a point from the operator in addition to an identified element.
Syntax
Call Get_Point (pnt_types, ret_pnt, ret_pnt_type, ret_ele_type, ele_types)
Options
2.Structure
pnt_types An INT2 variable mask dictating the types of input you can select. You can combine the
following keywords to yield the INT2 result:
PT_EQPID Allows you to key-in the equipment name. The system returns its first
datum point location, if it exists. Otherwise, it returns the place point of
the first item placed for that equipment in the design file.
PT_NOZID Allows you to key in a NOZZLE ID. The system returns the location of
its first connect point.
PT_ALL Contains the result obtained by adding all the above point types. Any
point type can be removed from this mask by subtraction.
ret_pnt A global or local point variable containing (on return) the operator-selected point. The
design file coordinate system (global) point is transformed to the local coordinate system by
using the point and axes of alignment between the two systems. Therefore, the orientation
and location of the symbol placepoint must be established prior to this call. Also, the
alignment parameters (placepoint location, orientation, global active point, global active
orientation) must not be changed between Get Point calls. This can result in returned points
not maintaining proper relativity. Use global or local point buffer.
ret_pnt_type An INT2 output variable that contains the type of the returned point. This variable can be
tested against the above keywords. It is optional only if subsequent arguments are omitted.
97
________________
PDS Eden for Pipe Supports - April 2002
ret_ele_type An INT2 output variable that contains the coded TYPE of the MicroStation element
identified by a SNAP (see the PDS Equipment Modeling (PD_EQP) Reference Guide). It is
optional only if subsequent arguments are omitted. It can be tested against these keywords to
identify the type code:
ele_types An INT2 mask obtained by combining (adding) a number of element type codes just listed.
It dictates the types the operator can possibly identify. This variable is optional. If left off,
all element types are allowed.
EL_ALL contains the combination of all the above type codes. One or more types can be
removed from the mask by subtraction.
When forming the mask, remember to use a keyword only once whether adding or
subtracting.
Example
The following code segment enables the symbol to obtain an arc or a line from the operator using snap or
precision key-in:
98
________________ Move Along Arc
Syntax
Call Move_Along_Arc (arc_definition, from_pt, to_pt, travel dist, out_pt)
Options
2.Structure
arc_definition An input buffer of four points identifying a circular arc in local coordinates. The
subroutine uses it to find the angular position or sweep of the arc segment about the
center (first point). The center of the arc and the from_pt are used to find the trace radius.
from_pt An input to identify the measuring start point. It is also used to compute the radius of the
circular arc. Global or local point.
to_pt An input to identify the measuring end point. This point only establishes an angular
position on the arc determined from the first two arguments. Therefore, it may or may
not be on the arc itself. Global or local point.
travel_dist An input to specify the peripheral traversal distance from from_pt to to_pt.
out_pt An output location containing the destination point. The direction of travel if either
from_pt or to_pt is off. The curve is given by the connecting segment from from_pt to
to_pt through the arc’s end nearer the off-point.
Example
In the following example, the Get Point call forces the operator to snap only – to an arc. On return, the arc
definition is obtained in point_2 ... point_5. The length of the arc is then computed by sending the third call the
center (point [2]), start (point [3]), the end (point [5]), and the arc itself. Finally, the middle point (point [10])
on the arc is calculated by moving along the arc from start (point [3]) toward the end (point [5]). The distance
traveled is one-half the arc’s size.
99
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Move_Along_Axis (distance, axis)
Options
distance Variable or constant that defines the distance by which the active point should be moved.
axis Keyword defining the axis along which the active point should be moved. Valid values for axis
include:
PRIMARY NORTH
SECONDARY SOUTH
NORMAL UP
EAST DOWN
WEST
Example
In this example, the active point is moved 24 subunits in the secondary direction.
100
________________ Move Along Line
Syntax
Call Move_Along_Line (from_line_end, to_line_end, from_pt, distance, to_pt)
Options
2.Structure
from_line_end The starting input point for computing the direction of travel. Global or local point.
to_line_end The ending input point for computing direction of travel. Global or local point.
FROM_LINE_END and TO_LINE_END merely determine the direction and not the actual path
of travel.
from_pt The input point from which the travel begins. Global or local point buffer.
to_pt The output location variable containing the destination point. Use global or local point
buffer.
Example
In the following example, the code fragment finds the midpoint of the line segment obtained with two Get
Point calls.
.
.
Call Get_Point (pt_snap, point [1])
Call Get_Point (pt_snap, point [2])
Call Get_Line_Size (point [1], point [2], distance)
distance = distance/2
Call Move_Along_Line (point_1, point [2], point [1], distance, point[3])
.
.
101
________________
PDS Eden for Pipe Supports - April 2002
Move By Distance
The Move By Distance primitive allows you to move the active point along the primary axis of the active
orientation.
Syntax
Call Move_By_Distance (distance)
Options
distance Variable or constant that dictates how far along the primary the active point should be moved.
Negative values can be used.
Example
In the following example, the active point is moved 24 subunits in the primary direction:
In this example, the active point is moved by the distance defined by the variable dimension_a.
102
________________ Move Data
Move Data
The Move Data primitive writes contents of a variable or expression into another variable.
Syntax
Call Move_Data (source_item, destination_item)
Options
2.Structure
source_item A variable or expression from which data will be moved without conversion.
destination_item Variable into which data will be moved. Length of data moved is length of the shorter
item. If destination_item is a character variable, each source_item byte must be ASCII
(32 or more) before it is transferred. Otherwise, characters up to but excluding the first
non-ASCII byte make up the destination_item.
This routine is mainly useful for the Read Table primitive where INPUT/OUTPUT contains CHARACTER
fields. The following code segment shows how to access such data:
input_1 = 20
Call Move_Data (’col3_key’, INPUT_2) ! INPUT_2 is ASCII field
Call Read_Table (’TABLE_SO_AND_SO’, INPUT, OUTPUT ! Read table
Call Move_Data (OUTPUT_4, CSTRING_1) ! output_4 from table is
! ... ASCII. Move it into
! ... global ASCII
! ... variable CSTRING_1
103
________________
PDS Eden for Pipe Supports - April 2002
Place COG
The Place COG primitive allows you to place the center of gravity (COG) for a piece of equipment. There can
be at most two centers of gravity per piece of equipment, each designated by a different keyword. The call is
ignored if no datum points are being placed for the piece of equipment since the location of the COG is relative
to the first datum point. Define Datum Point for dp1 must be executed before or after this call. Graphics are
not created for COGs. Only numeric offsets are stored with the datum point to indicate the location.
Syntax
Call Place_Cog (cog_type, offset_x, offset_y, offset_z)
Option
cog_type Keyword specifying the type of center of gravity you want to place. If a cog type already exists, it
is replaced with the new definition. The following keywords are accepted:
DRY
OPERATING_1
OPERATING_2
offset_x Distance specifying the easting of the COG in the local coordinate system of the first datum point.
offset_y Distance specifying the northing of the COG in the local coordinate system of the first datum
point.
offset_z Distance specifying the elevation of the COG in the local coordinate system of the first datum
point.
104
________________ Position Cursor
Position Cursor
The Position Cursor primitive allows you to position the cursor at an input field on the active symbol tutorial.
Syntax
Call Position_Cursor (fieldno)
Options
2.Structure
fieldno A key-in field number on the active tutorial.
105
________________
PDS Eden for Pipe Supports - April 2002
Put Field
The Put Field primitive allows you to display a value in a tutorial field. It works similarly to default
expressions. After the value is evaluated, it must correspond to the numeric/character data type defined for the
field.
Syntax
Call Put_Field (value, fldno, ret_code)
Options
value A variable or expression that evaluates to the value to be input to the field. Character fields
must receive character data, and numeric fields must receive numeric data. No data
conversion between the two types is performed, and such type mismatch causes errors.
fldno A field number on the active tutorial. Possible values are 1 - 200 (since only these fields are
defined via TDF). Default computations are also performed if necessary as a result of ’fldno’
being defined.
ret_code [optional] A numeric variable to receive completion status of the call. If successful, a 0 is
returned. Expect negative values if the call completes unsuccessfully. Such abnormal return
may be possible due to:
Errors in computing defaults will be acknowledged only through system messages in the
’ER’ field.
By omitting it, you can ensure that the symbol execution is aborted if the call fails to
successfully complete. In the case of computing defaults, the call successfully returns.
Example
In the following example, the call puts out 10 in field #2 of the active tutorial. If DIMENSION_2 corresponds
to field #2, it also receives a value of 10.0.
106
________________ Read Table
Read Table
The Read Table primitive allows you to read values from a table for use in your symbol definition. This
process is called a table lookup.
Refer to 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.
Syntax
Call Read_Table (table_name, INPUT, OUTPUT, return_code)
2.Structure
Options
table_name Name of the table to be read. This argument can be a string variable or constant.
INPUT The global variable name INPUT. Table input parameters must be defined prior to calling
Read Table. The number and type of values needed in INPUT_1...INPUT_10 array depends
on the number and type of input columns defined for the table. An INPUT_X parameter may
be a number or a character string up to eight characters. Assigning numerical data to INPUT
elements is not a problem. Character data, however, must be treated differently since INPUT
is a REAL array. Characters cannot be assigned to its variables. You must use the Move
Data primitive. Refer to the Move_Data primitive for sample usage.
OUTPUT Global variable name OUTPUT. The table values read are stored in OUTPUT. You must
know the table structure in order to know where each output from the table is stored. An
OUTPUT_X field can be numeric or alphanumeric (up to eight characters) depending on the
table structure. Refer to the Move Data primitive for accessing character data once it is
retreived in an OUTPUT_X variable.
return_code [optional] The output argument allowing symbol execution to continue if the call fails to
read a table. If supplied, the values returned include:
Example
In this example, a table is read obtaining a flange diameter and thickness. The table name is derived from
character constants, the flange generic end prep, and the flange pressure rating. The table input is the
flange nominal pipe size. The flange diameter is taken from global variable OUTPUT_1, while the flange
thickness is taken from global variable OUTPUT_2.
INPUT_1 = Nom_Pipe_D
table = ’BLT’ // GEN_TYPE // PR_RATING // ’5’
Call Read_Table (table, INPUT, OUTPUT)
flange_diam = OUTPUT_1
flange_thk = OUTPUT_2
107
________________
PDS Eden for Pipe Supports - April 2002
In this example, a table is read obtaining the outside diameter of a pipe given the nominal pipe diameter.
INPUT_1 = Nom_Pipe_D
Call Read_Table (’MAL_300_5’, INPUT, OUTPUT)
pipe_od = OUTPUT_3
108
________________ Rotate Orientation
Rotate Orientation
The Rotate Orientation primitive allows you to rotate the active local orientation relative to itself. The
coordinate system is rotated about the designated axial direction through the specified angle according to the
right-hand rule. When you call this primitive, you change the local symbol orientation without affecting the
design file coordinate system.
Syntax
Call Rotate_Orientation (angle, axis)
2.Structure
Options
angle Variable or constant that dictates the amount of rotation.
axis Keyword that defines the local axial direction about which to rotate. Valid keywords include:
PRIMARY NORTH
SECONDARY SOUTH
NORMAL UP
EAST DOWN
WEST
Example
After the last statement is executed, the new primary is oriented down.
109
________________
PDS Eden for Pipe Supports - April 2002
Syntax
Call Start_Complex_Shape (0)
Example
call START_COMPLEX_SHAPE (0)
Call Define_Active_Orientation (NORTH,EAST)
call draw_line (point [1], point [2])
call rotate_orientation (end_angle, normal)
call draw_line (point [2], point [3])
Call Move_To_Placepoint (PP1)
Call Define_Active_Orientation (NORTH,EAST)
call draw_line (point [3], point [4])
call rotate_orientation (start_angle, normal)
call draw_arc (inner_dia, inner_dia, 0.0, angle_sweep)!
call STOP_COMPLEX_SHAPE (0)
Call Stop_Complex_Shape must be called to notify the system that the last element in
the complex shape has been defined.
One complex shape can remain in effect for each BEGIN call category, and the system
keeps track of all such complex shapes. A default Stop Complex Shape is executed by
the system following the element placed last inside a BEGIN category. Any number of
complex shapes can be created in a category with pairwise start/stop calls.
110
________________ Stop Complex Shape
One complex shape can remain in effect for each BEGIN call category, and the system keeps
track of all such complex shapes. A default Stop Complex Shape is executed by the system
following the element placed last inside a BEGIN category. Any number of complex shapes can
be created in a category with pairwise start/stop calls.
Syntax
2.Structure
Call Stop_Complex_Shape (0)
Example
call START_COMPLEX_SHAPE (0)
Call Move_To_Placepoint (PP1)
Call Define_Active_Orientation (NORTH,EAST)
call draw_line (point [1], point [2])
call rotate_orientation (end_angle, normal)
call draw_line (point [2], point [3])
Call Move_To_Placepoint (PP1)
Call Define_Active_Orientation (NORTH,EAST)
call draw_line (point [3], point [4])
call rotate_orientation (start_angle, normal)
call draw_arc (inner_dia, inner_dia, 0.0, angle_sweep)!
call STOP_COMPLEX_SHAPE (0)
111
________________
PDS Eden for Pipe Supports - April 2002
Store Orientation
The Store Orientation primitive allows you to store and recall orientations.
Syntax
Call Store_Orientation (save_retrieve_flag, orientation_no)
Options
save_retrieve_flag The value indicating whether active orientation is:
11 - 20 global orientation location (known to all main symbol and user function
calls).
Example
In this example, the call saves the active orientation into local orientation buffer 8. Later, the active orientation
can be restored to its original value:
112
________________ Support User Function
The Support User Function module is similar to a SYMBOL_PROCESSOR module, except the first statement
reads: Support_User_Function_Definition ’MODULE-NAME’ where ’module-name’ is a character string (1
to 20 characters) identifying the module being compiled.
The User_Function call causes the system to retrieve and execute the module from the Eden library. Please note
the following conventions:
1. The set of local variables in the calling module is completely separate from that in the called module.
2.Structure
Variables named the same between two modules do not share data or conflict with one another.
2. Data sharing can be done through the global variables as they are used in common.
3. Calls can be nested to any depth with a user function calling itself or other user functions.
Syntax
Call User_Function (module-name, argument1, argument2,....argument9)
Options
module_name The name of user function to execute.
arguement1 . The numeric values to pass to the called user function. These are optional arguments and
. can be omitted from the right end. Values are passed via global variables INPUT_11
arguement9 through INPUT_19. These are loaded from the optional arguments. Unused variables
are zeroed out. INPUT_20 contains the number of optional arguments supplied.
OUTPUT_11 through OUTPUT_20 are zeroed out when a user function is called. They
can also be used to pass results.
The modules are delivered with the Eden Interface allowing you to build certain common shapes
not directly supported by any Eden primitive. These functions make use of the Draw Complex
Surface primitive to create solid shapes by placing arcs and line strings individually. You can
call these user functions much like any other Eden primitive by including arguments in the
User_Function statement. You can obtain the source file name for a particular user function by
adding the extension .UF to the function name.
113
________________
PDS Eden for Pipe Supports - April 2002
It is placed by a point in the middle of the first face. The active primary axis orients the direction of projection
and the normal of both faces. The active secondary axis orients the flat sides of the faces.
Syntax
Call User_Function (’FLAT_OVAL_PRISM’, projlen, length1, depth1, length2,
depth2, offset1, offset2, update_flg)
Options
projlen Length of projection.
offset1 Offset of second face from the first face along the secondary axis.
offset2 Offset of second face from the first face along the normal axis.
update_flg 0: Don’t update active point and orientation upon exit (default).
1: Update active point and orientation to the opposite face upon exit.
114
________________ User Function FLAT_OVAL_TOR
2.Structure
It is placed by a point in the middle of the starting face. The active primary axis is the normal of the starting
face. The active secondary axis points to the center of rotation, and the active normal axis is the axis of rotation.
Syntax
Call User_Function (’FLAT_OVAL_TOR’, bend_radius, sweep_angle, length, depth,
face_angle, update_flg)
Options
bend_radius Distance from center of starting face to the center of rotation.
face_angle Angle between the flat side of the starting face and the secondary axis. (For
a torus rotated about an axis parallel to the flat sides, this is 90 degrees. For
a torus rotated about an axis parallel to the curved sides, this is 0 degrees.)
update_flg 0: Don’t update active point and orientation upon exit (default).
1: Update active point and orientation to the opposite face upon exit.
115
________________
PDS Eden for Pipe Supports - April 2002
It is placed by a point in the middle of the starting face. The active primary axis orients the direction of
projection of the first segment and is normal to the first face of the first segment. The active secondary axis
points to the center of rotation. Rotation occurs around the flat sides using the active normal as the axis of
rotation.
Syntax
Call User_Function (’FLAT_OVAL_SEG_TOR1’, bend_radius, seg_angle, num_seg,
length, depth, update_flg)
Options
bend_radius Length from center of rotation to middle of starting face (>0).
seg_angle Angle between segments (between 0 and 180 degrees as measured between
two cross-sections).
depth Depth of face (half of this depth must be well within the bend_radius).
1: Update active point and orientation to the last face upon exit.
116
________________ User Function FLAT_OVAL_SEG_TOR2
2.Structure
It is placed by a point in the middle of the starting face. The active primary axis orients the direction of
projection of the first segment and is normal to the first face of the first segment. The active secondary points to
the center of rotation. Rotation occurs around the curved sides using the active normal as the axis of rotation.
Syntax
Call User_Function (’FLAT_OVAL_SEG_TOR1’, bend_radius, seg_angle, num_seg,
length, depth, update_flg)
Options
bend_radius Length from center of rotation to middle of starting face (>0).
seg_angle Angle between segments (between 0 and 180 degrees as measured between
two cross-sections).
depth Depth of face (half of this depth must be well within the bend_radius).
1: Update active point and orientation to the last face upon exit.
117
________________
PDS Eden for Pipe Supports - April 2002
It is placed by a point in the middle of the starting face. The active primary axis orients the direction of
projection of the first segment and is normal to the first face of the first segment. The active secondary points
towards the center of rotation, and the active normal defines the axis of rotation. Cylinders are used to represent
the segments.
Syntax
Call User_Function (’ROUND_SEG_TOR1’, bend_radius, seg_angle, num_seg, radius,
update_flg)
Options
bend_radius Length between center of rotation and center of starting face (>0).
seg_angle Angle between segments (between 0 and 180 degrees as measured between
two cross-sections).
radius Cross-sectional radius of any segment (this value must be well within the
bend_radius).
1: Update active point and orientation to the last face upon exit.
HLINE in certain views may not work cleanly around the junction of segments placed with this
user function. User function ROUND_SEG_TOR2, however, works correctly with HLINE even
though it is more expensive in terms of design file space.
118
________________ User Function ROUND_SEG_TOR2
2.Structure
It is placed by a point in the middle of the starting face. The active primary axis orients the direction of
projection of the first segment and is normal to the first face of the first segment. The active secondary points
towards the center of rotation, and the active normal defines the axis of rotation. Projected shapes are used to
represent the segments.
Syntax
Call User_Function (’ROUND_SEG_TOR2’, bend_radius, seg_angle, num_seg,
radius, update_flg)
Options
bend_radius Length between the center of rotation and the center of starting face (>0).
seg_angle Angle between segments (between 0 and 180 degrees as measured between
two cross-sections).
radius Cross-sectional radius of any segment. (This value is well within the
bend_radius.)
1: Update active point and orientation to the last face upon exit.
119
________________
PDS Eden for Pipe Supports - April 2002
It is placed by a point in the middle of the starting face. The active primary axis orients the direction of
projection of the first segment, and the normal of the first face of the first segment. The active secondary axis
points to the center of rotation. The active normal defines the axis of rotation.
Syntax
Call User_Function (’RECT_SEG_TOR’, bend_radius, seg_angle, num_seg, length1,
length2, update_flg)
Options
bend_radius Distance between center of rotation and center of first face (>0).
seg_angle Angle between segments (between 0 and 180 as measured between cross-
sections).
update_flg 0: Don’t update active point and orientation upon exit (default).
1: Update active point and orientation to the last face upon exit.
120
________________ User Function RECT_FLAT_OVAL
2.Structure
It is placed by a point in the middle of the rectangular face. The active primary axis orients the direction of
projection and the normal of each face. The active secondary orients the flat sides of the flat oval shape.
Syntax
Call User_Function (’RECT_FLAT_OVAL’, projlen, length1, depth1, length2,
depth2, offset1, offset2, update_flg)
Options
projlen Length of projection.
length2 Flat segment length of flat oval face along the secondary axis.
offset1 Offset of flat oval face from rectangular face along the secondary axis.
offset2 Offset of flat oval face from rectangular face along the normal axis.
1: Update active point and orientation to the flat oval face upon exit.
121
________________
PDS Eden for Pipe Supports - April 2002
It is placed by a point in the middle of the round face. The active primary axis orients the direction of
projection and the normal of each face. The active secondary axis orients a flat side of the rectangular face.
Syntax
Call User_Function (’ROUND_RECT’, projlen, radius, width, depth, offset1,
offset2, update_flg)
Options
projlen Length of projection.
offset1 Offset of rectangular face from round face along the secondary axis.
offset2 Offset of rectangular face from round face along the normal axis.
update_flg 0: Don’t update active point and orientation upon exit (default).
1: Update active point and orientation to the rectangular face upon exit.
122
________________ Defining Symbols
3. Defining Symbols
The previous sections explained the tools that you need to completely define a pipe support symbol. This
section outlines the basic steps you need to follow using these tools to prepare a complete symbol definition.
Basic Steps:
1. Determine what the support will look like and what primitive graphics elements you want to use to create
it.
2. Determine what dimensional inputs should be required for placing a symbol based on availability. A
symbol cannot be efficiently placed if, in order to provide inputs for a symbol, you perform hand
calculations based on numbers from drawings.
4. Assign global variables to the input. This step allows design of the tutorial for the symbol.
3.Symbols
6. Compile the symbol.
9. Insert the tutorial definition table into the tutorial definition library.
123
________________
PDS Eden for Pipe Supports - April 2002
124
________________ Creating a New Pipe Support
Eden Setup
Before a new pipe support can be defined through Eden, follow these steps:
— Create pipe support 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\suppsym
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\suppsym
4.New
— Create the dimension and spec tables directory.
c:\users\default\projects\custom\tbls
— OR —
c:\users\default\projects\proj1\tbls
c:\users\default\projects\custom\tdf
— OR —
c:\users\default\projects\proj1\tdf
125
________________
PDS Eden for Pipe Supports - April 2002
c:\users\default\projects\custom\drawing
— OR —
c:\users\default\projects\proj1\drawing
5. Create a directory path for storing pipe support drawing seed files, and copy them to this directory.
c:\users\default\projects\custom\psmsymbols
— OR —
c:\users\default\projects\proj1\psmsymbols
— Copy standard delivered seed files into the pipe support seed files directory.
— OR —
6. Create a directory path for graphic data and table libraries, and copy them into this directory.
c:\users\default\projects\custom\libs
— OR —
c:\users\default\projects\proj1\libs
126
________________ Creating a New Pipe Support
— OR —
If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used.
7. Access the Reference Database Defaults form and enter the node name and path to the directories
previously defined.
— Enter the path and node name to the directories previously created.
— Make sure that the Piping Spec definitions are specified. If a U.S. standards project is being used
the following data should appear:
4.New
Piping Spec Path: c:\win32app\ingr\rdusrdb\spec_data\
Piping Spec node: <server name>
If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used.
A detailed description of the Default Project Control Data option is provided in the
next few pages.
8. Access the Reference Database Management Data form, and define the node name and directory path to
the graphic data and table libraries. When testing new libraries in a live project, it is recommended to
enter them as "Not Approved."
— Select the Default All Library Locations, and enter the library directory previously created.
127
________________
PDS Eden for Pipe Supports - April 2002
— Make sure that the specifications are correct for each library (some of the default values are
incorrect). The following specifications are used for a U.S. standards project:
If working in a non-U.S. standards project, see the rdb directory being used to find the correct
specifications
128
________________ Reference Database Management Data
Operating Sequence
1. Select Reference Database Management Data from the Reference Data Manager form.
4.New
2. Select RDB File Type
Select the RDB file from the list of files. You can use the scroll arrows to review the listed files.
The system identifies the file for the selected field in the fields at the bottom of the form. There are no
default settings for these files; you must define the applicable file locations before you can continue.
Material/Specification Reference Identifies the Material Reference Database for the project. Refer to
Database the Project Setup Manager in the Project Administrator
(PD_Project) Reference Guide for more information on this
database.
Piping Job Specification Table Identifies the location of the Spec Table library.
Library
129
________________
PDS Eden for Pipe Supports - April 2002
Short Material Description Library Identifies the library that contains the short bill-of-material
description for all piping commodity items and the BOM
description addenda for taps.
Long Material Description Library Identifies the library that contains the long BOM description for all
piping commodity items. The long BOM description is only used
for requisitions.
Specialty Material Description Identifies the library that contains the BOM description for
Library engineered items, in-line instruments, and pipe supports. This
library tends to be customer-specific.
Standard Note Library Identifies the location of the standard note library.
Label Description Library Identifies the location of the label description library.
Piping Assembly Library Identifies the location of the Piping Assembly library. This library
contains the symbol definitions for assemblies.
Graphic Commodity Library Identifies the library that contains the Eden modules used to place
components in the model.
Physical Data Library Identify the library files that contain the physical data tables for a
range of geometric industry standards.
Commodity Synonym Library Identifies the user-defined library that contains the map for
translating the piping commodity names displayed on Intergraph
forms to names specified by the user.
Orthographic Drawing Borders Identifies the path to the drawing border files to be used when
creating drawings. A set of border files are delivered to the
directory c:\win32app\ingr\pddraw\border\.
Pipe Support Section Table Library Identifies the location of the FrameWorks section library used to
model the graphics of various standard sections.
Pipe Support Tutorial Definition Identifies the location of the tutorial definition library for pipe
Library supports.
Pipe Support Seed Files Identifies the location of the Imagineer seed files used to generate
drawing files for pipe supports.
Pipe Support Drawing Base Location to store the fabrication drawings for pipe supports.
Directory
3. Key in any changes to the selected RDB files. Refer to Delivered Reference Data in the Reference Data
Manager (PD_DATA) Reference Guide 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).
130
________________ Reference Database Management Data
Refer to the Project Data Manager in the Project Administrator (PD_Project) 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 Project Control Data to define the default location for the RDB source files
used during the operation of the Reference Data Manager.
6. Select Confirm following each change to the reference to data to accept the specified file location.
— THEN —
4.New
131
________________
PDS Eden for Pipe Supports - April 2002
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 / Node The default location for the Equipment Eden 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.
132
________________ Default Project Control Data
Support TDF Path / Node The default location for the pipe support tutorial definition neutral files.
2. Select the Confirm (√) button to accept any changes to the Project Control Data.
4.New
133
________________
PDS Eden for Pipe Supports - April 2002
134
________________ Glossary
Glossary
AA code An alphanumeric code used to identify a group of elements.
AABBCC code an alphanumeric code which represents a specific item type within a given
class. This value is also referred to as the Item Name.
Glossary
assembly see piping assembly
beginning statements Eden statements that define the types of modules being entered.
call statement Eden statement used to execute system primitives (or subroutines).
code list A set of acceptable values for a particular attribute (column) which can be
referred to by an index number or selected from a form. For example, the
code list set for the fluid code attribute allows you to select from a set of
standard entries (such as P for process or MMA for methyl alcohol).
code list sets Files which define the values for all codelists having universal applicability
within PDS.
code-listed attribute an attribute linked to a specific entry in a code list set. These attribute
values can be referenced by entering the associated code list number.
color table A file which contains the standard color settings to be used for a design file
or set of design files.
comment Text inserted into Eden code which is ignored by the system. Comments
can be used to describe the code and to provide instructions to the user.
commodity code a user-defined code that provides an index to the material descriptions in the
Material Data Tables of the Specification/Material Database.
135
________________
PDS Eden for Pipe Supports - April 2002
database table The part of the database that is made of rows and columns and contains
information about the project and design elements.
design database a database which contains the non-graphic design data for a project. Each
model represents a partition of the database.
Do While statement Eden statement 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.
Eden module the source code used to define and place parametric symbols in the model.
Eden modules are contained in the Graphic Commodity Library.
ending statements Eden statements that mark the end of the module in which the system has
been processing.
form An interface or screen menu designed with the I/FORMS product or with
the DM/DBA product. Because many of the screen menus in the
application software on CLIX workstations are built with I/FORMS, you
must have the FORMS_S product on your workstation. There is no such
requirement for Windows NT.
format file a file that determines the contents and format of a report. It defines all the
needed criteria for creating the actual report, including which database
attributes are reported.
full path name The name of the entire path or directory hierarchy to a file, including the file
name. See also relative path name.
generic physical data Physical data module containing information common to more than one
module symbol. Generic physical data modules are called by specific physical data
modules.
136
________________ Glossary
Geometric industry a code-listed attribute which identifies the source of the data (industry
standard standard such as ANSI, ISO, or DIN, or company standard) from which the
specific geometry of a commodity item is deduced.
global variable System-defined names that can be referred to at any subroutine level.
Graphic Commodity a data library which contains the parametric symbol definitions (Eden
Library modules) required to place piping and instrument components in a 3-D
model.
If - then - else statement Eden statement that allows a group of statements to be conditionally
executed.
Glossary
Indexed Do statement Eden statement which allows loops that execute a specified number of
times.
interference parametric Eden code used to define the interference envelope for a component, to be
shape definition used in interference detection to show clashes in the model.
item name name used to access the Piping Job Specification. Refer to AABBCC code.
keyword Eden label for specific values or groups of values. Keywords can appear as
arguments in system-defined primitives (or subroutines).
Label Description Library a library which defines the types of labels and the label formats used in PDS
3D.
local variable Variable that is declared in the symbol definition, and which can only be
referred to in the same Eden module as the variable itself.
logical operator Operator used to combine relational expressions into more complex logical
expressions.
Long Material Description a library which contains the long bill-of-material descriptions for all piping
Library commodities.
MC model code
model code name used to reference the parametric definition of a component. The
model code is also referred to as the new item name.
model parametric shape Eden code used to define the symbol graphics to be placed in the model.
definition
137
________________
PDS Eden for Pipe Supports - April 2002
neutral file an ASCII file which can be used to load data into a library, database, or
design file.
object library a compiled library which contains reference data which can be accessed by
the task. For example, the Material Description Library.
OC operator code
OT operator type
parametric shape Eden code used to describe the graphics symbol placed for a component in
definition the model. Parametric shape definitions are divided into two basic types:
model parametric shapes and interference envelopes.
partition a subset of the database. Each model represents a partition of the database.
path name The sequence of directories leading to a file. See also full path name and
relative path name.
piping specialty a user-defined component. Specialty items can be defined in the Piping Job
Specification database or defined interactively while working in a model.
physical data definition A set of code which gathers data to use in placing graphics for commodity
items.
physical data table a table which contains the physical data such as dimensions, weights, and
surface area required for component placement, interference checking,
stress analysis, and MTO reporting. These tables can be stored in different
physical data libraries segregated by geometric industry standard (practice).
piping assembly a group of associated components that can be placed as a logical group
(such as a valve with mating flanges) using Piping Assembly Language
syntax.
138
________________ Glossary
Piping Assembly Library a library which contains the piping assembly definitions which define the
parameters necessary to place a piping assembly automatically in the model.
Piping Job Specification non-graphics data which provides selection criteria for piping commodity
items, engineered items, and instruments.
plant A group of facilities and equipment used to perform one or more material
processing functions within a given geographical area. One company may
Glossary
have many plants located in many different geographical locations.
primitive System-defined Eden routines that perform specific functions for symbol
definition.
project A term used for the convenient grouping of either all or part of the facilities
and equipment that constitute a plant. At a given time, the items that
constitute the plant can be included in one or more projects.
project control database a database used to define all the information related to managing a project
including design area definitions, interference management data, and
revision management data.
Relational DataBase A database management system that uses SQL, the Structured Query
Management System Language, to implement and query data in relational tables.
RDBMS
Relational Interface A generic relational database interface that isolates the differences in
System specific vendors’ relational database management systems.
relational operator Operator 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.
relative path name The sequence of directories leading from the current directory to a particular
file. See also path name and absolute path name.
139
________________
PDS Eden for Pipe Supports - April 2002
row A unit of related information in a table. One collection of column values for
a table.
Short Material Description a library which contains the short bill-of-material descriptions for all piping
Library commodity items and the description addenda for taps.
SN symbol name
source file the uncompiled version of a language file or other data table. Source files
are usually contained in text libraries. See also neutral file.
Spec Table Library a library which contains the Piping Job Specification tables and other
special tables which contain nonphysical data.
Specialty Material a library which contains the bill-of-material descriptions for engineered
Description Library items, instruments, and pipe supports.
specific physical data Physical data module that determines the dimensions and other physical
module properties for a specific component.
standard note a set of acceptable responses defined in the Standard Note Library. See also
code-list.
Standard Note Library library which contains the text for code-listed attributes and standard notes.
All attributes identified as code-listed are stored in the database as integer
data.
sub-symbol processor A set of code used to produce graphics for a subcomponent on a commodity
item.
symbol processor The controlling function or logic used to produce the graphics for a
commodity item.
140
________________ Glossary
task database Working database in which the actual engineering or design effort is
performed. A separate task database exists for each PDS task.
text library a library which contains a set of ASCII files. The PDS 3D software enables
you to extract source files from a text library.
Glossary
tutorial definition table Text table containing data used in placing graphics for equipment.
type 63 element an element used to store active parameters and customization data in a
model or drawing. Most of the customization data defined with the Project
Data Manager is stored in a type 63 element.
unit A grouping of those parts of the schematic and individual worlds of a plant
that together perform a given process function.
141
________________
PDS Eden for Pipe Supports - April 2002
142
________________ Index
Index
A draw (continued)
abort 63 proj (continued)
arithmetic operators 38 octagon 85
shape 87
B projected
begin 25 rectangle 56
EQP category 27 triangle 58
beginning statements 24 rectangular torus 88
revolved shape 89
C semi ellipsoid 60
call shape 91
statement 41 sphere 61
comments 37 torus 62
convert transitional element 92
NPD to subunits 50 draw section member 46
unit 64
E
D Eden
Index
default project control data 132 basics 13
define language structure 23
active beginning statements 24
orientation 51 comments 37
point 65 ending statements 24
orientation by points 66 expressions 40
point 67 functions 43
description statement 36 keywords 35
display operators 38
message 68 replacement statements 40
tutorial 69 variables 29
do while statement 41 ending statements 24
draw expressions 40
arc 71 call 41
complex surface 72 do while 41
con prism 75 if - then - else 42
cone 53 indexed do 41
curve 76 replacement statements 40
cylinder 54
ecc F
prism 77 ’flat_oval_prism’ 114
transitional element 79 ’flat_oval_seg_tor1’ 116
eccentric cone 55 ’flat_oval_seg_tor2’ 117
ellipse 80 ’flat_oval_tor’ 115
line 81 functions 43
string 82
proj
hexagon 83
143
________________
PDS Eden for Pipe Supports - April 2002
G primitives (continued)
get define active orientation 51
arc draw
points 93 cone 53
size 94 cylinder 54
date 95 eccentric cone 55
line size 96 projected rectangle 56
point 97 projected triangle 58
global variables 31 semi ellipsoid 60
equipment and pipe support 32 sphere 61
pipe support specific 32 torus 62
subscripted 34 equipment modeling
abort 63
I begin 25
if - then - else statement 42 begin EQP category 27
indexed do statement 41 convert unit 64
interacting terminated fields 69 define
active point 65
K orientation by points 66
keywords point 67
common 35 display
message 68
L tutorial 69
load draw
section data 49 arc 71
spec data 45 complex surface 72
local variables 29 con prism 75
logical operators 39 curve 76
ecc
M prism 77
move transitional element 79
along ellipse 80
arc 99 line 81
axis 100 string 82
line 101 proj
by distance 102 hexagon 83
data 103 octagon 85
shape 87
O rectangular torus 88
operators 38 revolved shape 89
arithmetic 38 shape 91
logical 39 transitional element 92
relational 39 ’flat_oval_prism’ 114
’flat_oval_seg_tor1’ 116
P ’flat_oval_seg_tor2’ 117
place ’flat_oval_tor’ 115
COG 104 get
place connect point 47 arc
position cursor 105 points 93
primitives 44 size 94
convert NPD to subunits 50 date 95
144
________________ Index
Index
start complex shape 110
stop complex shape 111 U
store user function 113
orientation 112 ’flat_oval_prism’ 114
user function 113 ’flat_oval_seg_tor1’ 116
load spec data 45 ’flat_oval_seg_tor2’ 117
prompt for orientation 48 ’flat_oval_tor’ 115
put field 106 ’rect_flat_oval’ 121
’rect_seg_tor’ 120
R ’round_rect’ 122
read table 107 ’round_seg_tor1’ 118
’rect_flat_oval’ 121 ’round_seg_tor2’ 119
’rect_seg_tor’ 120
reference database management data 129 V
default project control data 132 variables 29
relational operators 39 global 31
replacement statements 40 local 29
rotate orientation 109
’round_rect’ 122
’round_seg_tor1’ 118
’round_seg_tor2’ 119
S
spec data
loading 45
start complex shape 110
statements
beginning 24
145
________________
PDS Eden for Pipe Supports - April 2002
146