Вы находитесь на странице: 1из 160

PDS Eden Interface

Reference Guide - Volume 3: Pipe Supports









Document Number Version Date Pages
DPDS3-PB-200042A PDS 7.3 October 2004 1-146
DPDS3-PB-200042B PDS 8.0 SE November 2005 Cover/Notice
DPDS3-PB-200042C PDS 8.0 SE March 2007 147-160

























Copyright
Copyright 1984-2007 Intergraph Corporation. All Rights Reserved.
Including software, file formats, and audiovisual displays; may be used pursuant to
applicable software license agreement; contains confidential and proprietary information
of Intergraph and/or third parties which is protected by copyright law, trade secret law,
and international treaty, and may not be provided or otherwise made available without
proper authorization.
Restricted Rights Legend
Use, duplication, or disclosure by the government is subject to restrictions as set forth
below. For civilian agencies: This was developed at private expense and is restricted
computer software submitted with restricted rights in accordance with subparagraphs (a)
through (d) of the Commercial Computer Software - Restricted Rights clause at 52.227-
19 of the Federal Acquisition Regulations (FAR) and its successors, and is unpublished
and all rights are reserved under the copyright laws of the United States. For units of the
Department of Defense (DoD): This is commercial computer software as defined at
DFARS 252.227-7014 and the rights of the Government are as specified at DFARS
227.7202-3.
Unpublished rights reserved under the copyright laws of the United States.
Intergraph Corporation
Huntsville, Alabama 35894-0001
Warranties and Liabilities
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.
Intergraph believes the information in this publication is accurate as of its publication
date.
The information and the software discussed in this document are subject to change
without notice and are subject to applicable technical product descriptions. Intergraph
Corporation is not responsible for any error that may appear in this document.
The software discussed in this document is furnished under a license and may be used or
copied only in accordance with the terms of this license.
No responsibility is assumed by Intergraph for the use or reliability of software on
equipment that is not supplied by Intergraph or its affiliated companies. THE USER OF
THE SOFTWARE IS EXPECTED TO MAKE THE FINAL EVALUATION AS TO
THE USEFULNESS OF THE SOFTWARE IN HIS OWN ENVIRONMENT.
Trademarks
Intergraph, the Intergraph logo, PDS, SmartPlant, SmartSketch, FrameWorks, INtools,
MARIAN, ISOGEN, and IntelliShip are registered trademarks and SupportModeler and
SupportManager are trademarks of Intergraph Corporation. Microsoft and Windows are
registered trademarks of Microsoft Corporation. MicroStation is a registered trademark of
Bentley Systems, Inc. Other brands and product names are trademarks of their respective
owners.
If You Need Assistance
________________

If You Need Assistance

Intergraph Online

Our web site brings you fast, convenient, up-to-the-minute information about Intergraphs
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.
Intergraph General Information

All countries 1-256-730-2000
Training Registration

1-800-766-7701 (U.S. Only)
1-256-730-5400 (Outside the U.S.)
Mailing Address

Intergraph Process, Power & Offshore
300 Intergraph Way
Madison, Alabama 35758
U.S.A.
You can also reach us by electronic mail at info@intergraph.com.
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:
Mail Intergraph Process, Power & Offshore
Documentation Manager
300 Intergraph Way
Madison, AL 35758
4
Table of Contents
________________

Table of Contents

If You Need Assistance ........................................................................................................ 3
Intergraph Directory ............................................................................................................. 3
General Conventions .................................................................................................................... 9
Keyboard Conventions ......................................................................................................... 10
Terminology ......................................................................................................................... 11
1. The Eden Basics ........................................................................................................................... 13
Pipe Support Symbol Processor ................................................................................................... 14
Tutorial Definition Table ............................................................................................................. 17
Forms Interface ............................................................................................................................ 21
2. Eden Language Structure ............................................................................................................. 23
Beginning Statements .................................................................................................................. 24
Ending Statements ....................................................................................................................... 24
Begin ..................................................................................................................................... 25
Begin EQP Category ............................................................................................................. 27
Variables ...................................................................................................................................... 29
Common Keywords ..................................................................................................................... 35
Comments .................................................................................................................................... 37
Operators ...................................................................................................................................... 38
Expressions .................................................................................................................................. 40
Functions ...................................................................................................................................... 43
Primitives ..................................................................................................................................... 44
Load Spec Data ..................................................................................................................... 45
Draw Section Member .......................................................................................................... 46
Place Connect Point .............................................................................................................. 47
Prompt For Orientation ......................................................................................................... 48
Load Section Data ................................................................................................................. 49
Convert NPD to Subunits ..................................................................................................... 50
Define Active Orientation ..................................................................................................... 51
Draw Cone ............................................................................................................................ 53
Draw Cylinder ...................................................................................................................... 54
Draw Eccentric Cone ............................................................................................................ 55
Draw Projected Rectangle .................................................................................................... 56
Draw Projected Triangle ....................................................................................................... 58
Draw Semi-Ellipsoid ............................................................................................................ 60
Draw Sphere ......................................................................................................................... 61
Draw Torus ........................................................................................................................... 62
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
User Function FLAT_OVAL_PRISM .......................................................................... 114
User Function FLAT_OVAL_TOR .............................................................................. 115
User Function FLAT_OVAL_SEG_TOR1 ................................................................... 116
User Function FLAT_OVAL_SEG_TOR2 ................................................................... 117
User Function ROUND_SEG_TOR1 ............................................................................ 118
User Function ROUND_SEG_TOR2 ............................................................................ 119
User Function RECT_SEG_TOR .................................................................................. 120
6
Table of Contents
________________

User Function RECT_FLAT_OVAL ............................................................................ 121
User Function ROUND_RECT ..................................................................................... 122
3. Defining Symbols ........................................................................................................................ 123
4. Creating a New Pipe Support ....................................................................................................... 125
Eden Setup ................................................................................................................................... 125
Reference Database Management Data ................................................................................ 129
Default Project Control Data ................................................................................................ 132
Glossary ............................................................................................................................................... 135
Index .................................................................................................................................................... 143
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,
The text is placed in the viewing plane.
Bold Indicates a command name, parameter name, or dialog box title. Command
paths are shown using an arrow between command names. For example,
Choose File > Open to load a new file.
Sans serif Indicates a system prompt or message, which requires an action be taken by
the user. For example,
Select first segment of alignment
Bold Typewriter
Indicates what you should literally type in. For example,
Key in original.dat to load the ASCII file.
Normal Typewriter
Indicates an actual file or directory name. For example,
The ASCII report is stored in the layout.rpt file.
9
PDS Eden for Pipe Supports - April 2002
________________

Symbols
This document uses the following symbols to represent mouse buttons and to identify special
information:
<C> Command button
<D> Data button (usually the left mouse button)
<R> Reset/reject button (usually the right mouse button)
<T> Tentative button (usually the center mouse button)

Note Important supplemental information.

Warning Critical information that could cause the loss of data if not followed.

Technical tip or information provides information on what the software is
doing or how it processes information.

Map or path shows you how to get to a specific command or form.

More information indicates there is additional or related information.

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.
ALT Alternate key
CTRL Control key
DEL Delete key
ENTER Enter key
ESC Escape key
CTRL+z To hold down the Control key and press Z.
ESC,k To press the Escape key, then K.
10
Table of Contents
________________

Terminology

Click To use a mouse or key combination to pick an item that begins an
action. For example,
Click Apply to save the changes.
Select To mark an item by highlighting it with key combinations or by picking
it with your cursor. Selecting does not initiate an action. After
selecting an item, you click the action you want to affect the item. For
example,
Select the file original.dat from the list box, then click Delete to
remove it from the directory.
In addition, you would select items to define parameters, such as
selecting toggle buttons. This also applies to selecting graphic
elements from the design file. For example,
Select the line string to define the graphic template.
Tentative-select To place a tentative point on an existing graphic element in a design
file. If you are using the CLIX operating system, you tentative-select
by double-clicking with a mouse or pressing <T> on a hand-held
cursor. If you are using the Windows NT operating system, you
tentative-select by pressing a left-button, right-button chord.
Double-click To select and execute a command by clicking the mouse or hand-held
cursor button twice in rapid succession. This term implies that you are
clicking the data button (<D>) as part of a menu or dialog box action.
For example,
Double-click on the file original.dat to load it into the new surface.
Drag To press and hold the data button (<D>) while moving the mouse or
hand-held cursor.
Type To key a character string into a text box.
Key in To type in data and press ENTER to enter the data and execute the
default action.

In a dialog box, pressing TAB after keying in data will
enter the data and move the cursor to the next field.
11
PDS Eden for Pipe Supports - April 2002
________________

12
1
.
B
a
s
i
c
s
The Eden Basics
________________

1. The Eden 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 Edens 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 companys 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:
Call Draw_Cone (X, Y, Z)
The output produced will look similar to the following graphic:


You can call up to five nested subroutines within a program.
13
PDS Eden for Pipe Supports - April 2002
________________

Pipe Support Symbol Processor
The symbol processor is the Eden code that defines a pipe support. It calls all the subroutines or modules that
activate forms, check input data, assign placement points, and place graphics.
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:
Support_Symbol_Processor MODULE NAME
The module name should be entered using UPPER CASE characters. For example:
Support_Symbol_Processor GUIDE
The following example symbol processor defines a cantilever-braced support:
SUPPORT_SYMBOL_PROCESSOR CBA
exit = 0
tutname = CBA
Cstring [29] = Support_commodity_name
Call Get_Date ( Cstring [38] ) ! display date
angle = 45.0
call Convert_NPD_to_Subunits ( Nom_Pipe_D, dia )
If ( dia .LE. 14 ) then
overhang = 9.0
else
overhang = dia/2 + 2
endif
If ( Support_commodity_name .EQ. CBB ) then
len = Pipe_to_Steel_Distance + overhang + 6.0
else
If ( Support_commodity_name .EQ. CBD ) then
len = Pipe_to_Steel_Distance + overhang + 21.25
else
len = Pipe_to_Steel_Distance + overhang
endif
endif
Do while ( exit .EQ. 0 )
Call Display_Tutorial ( tutname )
If ( LAST_INP_TYPE .EQ. USER_KEYIN ) then
If ( Support_commodity_name .EQ. CBC .OR. Support_commodity_name .EQ. CBD ) then
Call Display_message ( Concrete Strength Should Be 3000 PSI, 48 )
endif
If ( LAST_INP_NUM .EQ. 46 ) then ! user keyin Load
Call Display_message ( , 48 ) ! Clear message field
Call User_function ( CB_ITEM_TYPE ) ! User function to look up item type
If ( Dimension[99] .EQ. 1 ) then
len = Dimension[5]
SUPPORT_SEQUENCE_NUMBER = 1
Call Put_field ( Support_Item_Key0, 25 )
Call Load_Spec_Data ( Support_commodity_name, NOM_PIPE_D, Support_Item_Key0,
14
1
.
B
a
s
i
c
s
Pipe Support Symbol Processor
________________

, , SUPPORT_SEQUENCE_NUMBER, ret )
If ( ret .EQ. 1 ) then
Call Display_message ( Accept to place support, 48 )
SUPPORT_MARK_NUMBER = Support_commodity_name ||-|| Support_Item_Key0
||-|| 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
If ( LAST_INP_NUM .EQ. 26 ) then
Call Put_field ( len, 46 )
endif
endif
If ( LAST_INP_TYPE .NE. application_cmd .AND. LAST_INP_TYPE .NE. user_keyin ) then
If ( Dimension[99] .NE. 0 ) then
exit = 1
endif
endif
Enddo
! Define PLACEMENT
Call Place_connect_point ( CP1 )
Offset = 0.5 * PIPE_OD
Call Prompt_for_orientation ( 1.0 )
Call Move_along_axis ( offset, SECONDARY )
Call Move_along_axis ( - overhang, PRIMARY )
Support_Material_Length = Dimension[5] ! Dimension L
Call Draw_section_member ( SECTION_TABLE_NAME, CARDINAL_BC, Support_Material_Length )
Call Place_connect_point ( CP0 )
! Draw Brace Graphics
SUPPORT_SEQUENCE_NUMBER = 2
Call Load_Spec_Data ( Support_commodity_name, NOM_PIPE_D, Support_Item_Key0, , ,
SUPPORT_SEQUENCE_NUMBER, ret )
Call Move_along_axis ( - Support_Material_Length, PRIMARY )
Call Move_along_axis ( 9.0, PRIMARY )
Call Rotate_orientation ( angle, NORMAL )
offset = ( Support_Material_Length - 9.0 ) / DCOSD ( angle )
Call Draw_section_member ( SECTION_TABLE_NAME, CARDINAL_BC, offset )
STOP
END
15
PDS Eden for Pipe Supports - April 2002
________________

16
1
.
B
a
s
i
c
s
Tutorial Definition Table
________________

Tutorial Definition Table
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.
1. field the tutorial field number defining the form.
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
fields 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.
For data type 7, number defines the attribute number in the
appropriate database entity to which the field inserts input.

Use the following numbers for the respective attribute:
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:
1 - user input is optional.
2 - user input is required.
3 - user input is optional but causes return to the symbol. This
type of field has also been called a terminated key-in field.
Refer to the DISPLAY_TUTORIAL primitive for more
information on how to handle these fields from the symbol.
4 - user input is required but causes return to the symbol. This
is also a terminated key-in field.
18
1
.
B
a
s
i
c
s
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
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.
The default types include:
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
Dxxx- Use the contents of DIMENSION_xxx as the default for this
field. There is no practical limit on the number of tutorials that
a symbol can activate. Therefore, any calculations that were
made before the symbol definition activated the current tutorial
can provide defaults for that tutorial. Example: D23
Cxx- Use the contents of CSTRING_xx as the default for this field.
xx.x- Decimal constant with or without a decimal point. All distances
are assumed to be in English subunits (inches). If the default is
a metric constant, then the constant should be given a suffix of
M. Example: 125M
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.
Default expressions are currently limited to 20 characters in length.
Example:
CB - default for a support item name field
19
PDS Eden for Pipe Supports - April 2002
________________

Example:
F1/2+10 - use the first input to field 1 divided by 2 plus 10 inches as
the default.
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.
The gadget numbers 1-10 are identified as follows:
1 = 951
2 = 952
3 = 953
4 = 954
5 = 955
6 = 956
7 = 957
8 = 958
9 = 959
10 = 960
Gadget numbers 11, 12, 13 ... remain 11, 12, 13 ...
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.
Field 1 collects your support ID (support entity, attribute number 2).
20
1
.
B
a
s
i
c
s
Forms Interface
________________

Forms Interface
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
components parameters. DBAccess is used to build forms.
21
PDS Eden for Pipe Supports - April 2002
________________

22
2
.
S
t
r
u
c
t
u
r
e
Eden Language Structure
________________

2. Eden Language Structure

Eden is similar to the FORTRAN programming language. Therefore, the general rules for evaluating
expressions in Eden are identical to those in FORTRAN.

You do not need to know FORTRAN to use the Eden language.
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.
The Eden language structure incorporates:
Statements
Beginning
Ending
Variables
Local
Global
Keywords
Connect Point Geometry (piping only)
Operators
Arithmetic
Relational
Logical
Expressions
Functions
Primitives (or Subroutines)
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.
SSP - Support_Symbol_Processor 6CHAR
SUF - Support_User_Function_Definition 28CHAR
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
Ending statements in the user functions include:
Return
End
24
2
.
S
t
r
u
c
t
u
r
e
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

category keyword specifying the graphics category you want to place. Allowable
category keywords for each class of graphics include:
Regular equipment graphics
EQUIPMENT This is executed at the beginning of symbol execution. It is
needed if you have placed some other category and want to
resume equipment graphics.
Interference envelope graphics
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
Light steel graphics
LADDER
PLATFORM
HANDRAIL
MISCELLANEOUS
25
PDS Eden for Pipe Supports - April 2002
________________

Holes
HOLE
NOHOLE
The keywords HOLE and NOHOLE are different from other keywords
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
SURFACE
The keywords SOLID and SURFACE set the active surface type of
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
2
.
S
t
r
u
c
t
u
r
e
Begin EQP Category
________________

Begin EQP Category

The Begin EQP Category primitive allows you to create graphics for various EQUIPMENT subcategories each
having its own level and symbol.
Syntax

Begin_EQP_Category (subcategory)
Options

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:
Call Begin (ENVELOPE_MAINTENANCE_HARD)
.. ! place envelope graphics
..
Call Begin (EQUIPMENT) ! to set category next
Call Begin_EQP_Category (PUMPS) ! PUMPS must be a valid
! category for project
Call Draw_Complex_Surface (4, 0)
.. ! pump graphics
..
Call Begin (HOLE) ! HOLE is allowed anywhere
..
27
PDS Eden for Pipe Supports - April 2002
________________

..
Call Draw_Complex_Surface (-99, 0) ! end pump
The following example is not a valid code fragment:
Call Begin (LADDER)
Call Begin_EQP_Category (PUMPS) ! Begin (EQUIPMENT) not active
..
..
This example is not a valid code fragment.
Call Draw_Complex_Surface (4, 0)
Call Begin_EQP_Category (PUMPS) ! cannot change within surface
28
2
.
S
t
r
u
c
t
u
r
e
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:

When converting a floating point number to an integer, the fractional part of the floating point number is
truncated.
A variable used in a logical expression evaluates to TRUE when the value of the variable is 1 and 0 when
the logical value is FALSE.
Variables that hold values representing distances are assumed to be in subunits. A variable containing the
value 25 represents 25 inches in an English unit design file and 25 millimeters in a metric unit design file.

Be careful when using hard coded numbers or when using the system_of_units variable.
Local Variables

Local variables are user defined and declared in the symbol definition. You can refer to a local variable only
when you are in the same module as the local variable.
Local variable names are formed using alphanumeric (a-z), numeric (1-9), and special (_ and $) characters.
They must begin with an alphanumeric character and must be less than or equal to 31 characters in length.

The Eden compiler does not verify the spelling of local variables within call statements. It assumes a
null value for the misspelled variable at component placement time.
The Eden language refers to constants as local variables. Both character strings and numeric constants are
valid; however, character string constants must be surrounded by single quotes. In most cases, character
strings and constants are case sensitive. Thus, a and A are interpreted differently.
Examples:

diameter 13.25
shell_thickness A TEXT STRING
projection_1 radius [2]
25
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.
Int2 D[5], EF[6]
Example:

Below, LENGTHS is an array of 10 REAL variables. They are referenced as LENGTHS [1] ... LENGTHS [10]
R8 LENGTHS [10]
30
2
.
S
t
r
u
c
t
u
r
e
Variables
________________

Example:

In the following example, PT is declared as a buffer with four locations.
Location PT [12]
where
PT [1], PT [4], PT [7] PT [10] are x-coordinates
PT [2], PT [5], PT [8] PT [11] are y-coordinates
PT [3], PT [6], PT [9] PT [12] are z-coordinates
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 Common to Piping, Equipment, and Pipe
Support Modeling

Global variables are system-defined names allowing you to refer to them at any subroutine level. More
specifically, you can use them for passing values between subroutine levels or for communicating input values
to the symbol. The following list shows the global variables common to all Eden applications. Refer to the
application-specific section for detailed information concerning specific global variables.

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.)
Pr_Rating_n Variable containing the current item pressure rating value.
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.
Global Variables Common to Equipment and Pipe Support
Modeling

The following list contains global variables common to Equipment and Pipe Support Modeling. For more
information on global variables, refer to the System-defined Subroutines section and the Eden User Interface
section.
Point_n
Point [n]
(Point_1 - Point_24) Names representing points that have been
defined or saved for later use in a symbol definition. The n in [n]
can be between 0 and 125.
Act_Lib Variable that contains an identifier for the active library of
dimension tables. This is a read-only variable.
Cstring_n (Cstring_1 through Cstring_40) Names representing global
character variables. Each name can contain a maximum of 50
characters.
Last_Inp_Type
Last_Inp_Num
Refer to the Dsplay_Tutorial primitive in the Eden Primitives
section.
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.
Global Variables (Pipe Support Specific)

The following list contains global variables specific to Pipe Support Modeling. For more information on global
variables, refer to the System-defined Subroutines section and the Eden User Interface section.
Support_Symbol_Processor Identifies the module as a symbol processor.
Support_User_Function Identifies the module as a user function.
32
2
.
S
t
r
u
c
t
u
r
e
Variables
________________

Support_Sequence_Number Variable defining the value of attribute 3 in PDTABLE_243.
This variable must be set before using the Load Spec Data
function.
Support_Material_Length This variable sets the value of the PDTABLE_80 attribute
specified in attribute 5 of PDTABLE_243
(Dimension_Att_No). This variable is used in defining the
length of the support.
Existing_Steel_Flange_Width Variable containing the existing structural members flange
width.
Support_Commodity_Name Variable containing the value of attribute 3 from
PDTABLE_241 (Commodity_Name).
Section_Table_Name Defines the section library to be used for placing supports.
Pipe_OD The outer diameter of the selected pipe.
Nom_Pipe_D The nominal piping diameter of the selected pipe.
Support_Item_Key0 Must be set to match attribute 8 in PDTABLE_242 before
using the Load_Spec_Data function.
Support_Item_Key1 Must be set to match attribute 9 in PDTABLE_242 before
using the Load_Spec_Data function.
Support_Item_Key2 Must be set to match attribute 10 in PDTABLE_242 before
using the Load_Spec_Data function.
Support_Mark_Number This variable sets the Mark Number attribute in
PDTABLE_80.
Support_Materials_Grade Places the value of the pipes material grade in attribute 42 in
PDTABLE_80.
Insulation_Thickness The insulation thickness of the selected pipe.
Existing_Steel_Point A point specified on the existing structural member. You can
use this global variable to move to this point while drawing
graphics.
Pipe_Wall_Thickness The schedule thickness of the selected pipe.
Geo_Ind_Std The geometric industry standard used for the selected pipe.
Pipe_To_Steel_Distance The perpendicular distance between the pipe and structural
steel selected.
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.
Subscripted Global Variables

In Equipment and Pipe Support Modeling, a global variable can contain an index value as part of the variable
name even though the index value is not a variable. This is known as subscripted global variables. For
example, Dimension_10 and Point_3 are global variables whose index values are 10 and 3, respectively.
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
cstring [1] ... cstring [40] cstring_1 ... cstring_40
dimension [1] ... dimension [100] dimension_1 ...dimension_100
inputs [1] ... inputs [20] input_1 ... input_20
outputs [1] ... outputs [20] output_1 ... output_20
point [0] ... point [125]
(point [0] ... point [24] point_0 ... point_24)
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
2
.
S
t
r
u
c
t
u
r
e
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.
TRUE Logical true. Used in logical expressions.
FALSE Logical false. Used in logical expressions.
MALE Keywords for generic end preparation.
FEMALE
BOLTED
PRIMARY
SECONDARY
NORMAL
Keywords used to identify or refer to individual refresh tee axes.
ENGLISH
METRIC
Names used to define the units of a constant used in the symbol definition.
ACTIVE_POINT
POINT_0
Name representing the location of the active point in the local coordinate system
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
EQP_TABLES
Names representing the different libraries that can be made active in a symbol
definition.
RETURN
STOP
Terminates module execution normally. If it encounters either a RETURN or STOP in
a user function, the system returns control to the calling module.
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:
#TYPE = Type 1, Type 2, Type 3, ... , Type n
where
Type 1 ... Type n Labels representing types under which the symbol will be classified.
Using each type, you can later inquire on the symbol.
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.
#TYPE = tower, vertical vessel, drum, reactor
DESCRIPTION Statement

The DESCRIPTION statement assigns a descriptive phrase of up to 40 characters to the symbol.
The syntax for the DESCRIPTION statement is:
#DESC = This is a description
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
2
.
S
t
r
u
c
t
u
r
e
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
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
2
.
S
t
r
u
c
t
u
r
e
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

Periods must appear before and after the expression.
Relational operators can be used on both numeric and character string variables. However, mixing the two
types of operands for a given operation produces computing errors.
In character relational expressions, less than means precedes in the ASCII collating sequence, and greater than
means follows in the ASCII collating sequence.
ABCD .LT. ACCD
If two strings in a relational expression are not the same length, the shorter one is padded on the right with
spaces until the lengths are equal.
PQRSTU .EQ. PQR
Logical Operators

Logical operators are used to combine relational expressions into more complex logical expressions. Valid
logical operators include:
.OR. logical or
.AND. logical and

Periods must appear before and after the expression.
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:
Replacement simple arithmetic replacement
Call executes primitives or subroutines
Do while execute loop
Indexed Do execute loop
If - then - else conditional execution

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
2
.
S
t
r
u
c
t
u
r
e
Expressions
________________

Call Statement

Call statements are used to execute system primitives. The syntax for the Call statement is:
call "primitive" or "subroutine" (argument 1, argument 2, ...)
Example:

Call Place_Cylinder_With_Capped_Ends (diameter, length)
Call Define_Placepoint (PP1)
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
________________

V is a control variable (non-string type)
v1
v2
v3
are constants or variables that evaluate to the initial, terminal, and incremental parameters respectively.
v3 is optional. If v3 is omitted, the system assumes that the incremental parameter is one.

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 - then - else Statement

If - then - else statements are used when a group of statements is to be conditionally executed. The Eden syntax
is the same as FORTRAN syntax.
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
2
.
S
t
r
u
c
t
u
r
e
Functions
________________

Functions
Eden provides several functions for performing common mathematical operations. These functions can be used
within replacement statements.

The following functions must contain the parentheses.
DSQRT () square root
DABS () absolute value
DSINR () sine of an angle in radians
DCOSR () cosine of an angle in radians
DTANR () tangent of angle in radians
DSIND () sine of an angle in degrees
DCOSD () cosine of an angle in degrees
DTAND () tangent of an angle in degrees
DASINR () arcsine returned in radians
DACOSR () arccosine returned in radians
DATANR () arctangent returned in radians
DASIND () arcsine returned in degrees
DACOSD () arccosine returned in degrees
DATAND () arctangent returned in degrees
Example:

The following list illustrates a few possible Eden functions:
length = hypot * DSIND (30.)
side = DTANR (pi/2) + 32.
hypot = DSQRT (a**2 + b**2)
angle = DATAND (side1/side2)
43
PDS Eden for Pipe Supports - April 2002
________________

Primitives
Primitives are system-defined routines that perform specific functions for symbol definition.
44
2
.
S
t
r
u
c
t
u
r
e
Load Spec Data
________________

Load Spec Data

The Load Spec Data primitive gathers information from the database tables in order to place pipe supports.
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

Support_Commodity_Name Value from reference database table 241, column 3.
Nom_Pipe_D The selected pipes nominal piping diameter in subunits.
Support_Item_Key0 Value to be matched with item_key0 (column 7) in
reference database table 242.
Support_Item_Key1 Value to be matched with item_key1 (column 8) in
reference database table 242.
Support_Item_Key2 Value to be matched with item_key2 (column 9) in
reference database table 242.
Support_Sequence_Number Value to be matched with column 3 in reference database
table 243 along with the material_index variable from
reference database table 242.
Return_Value 1 = Spec entry was found for the specified criteria and
loaded from the spec database.
0 = Spec entry was not found for the specified criteria.
45
PDS Eden for Pipe Supports - April 2002
________________

Draw Section Member

The Draw Section Member primitive draws a steel member.
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
2
.
S
t
r
u
c
t
u
r
e
Place Connect Point
________________

Place Connect Point

The Place Connect Point primitive allows you to define the location and the orientation of a connect point and
place that 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)
Options

CPn Variable defining the connect point (n = 0,1,2,3,4,5).
47
PDS Eden for Pipe Supports - April 2002
________________

Prompt For Orientation

The Prompt For Orientation primitive prompts the user to change the active orientation.
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
2
.
S
t
r
u
c
t
u
r
e
Load Section Data
________________

Load Section Data

The Load Section Data primitive loads data from the previously-defined section table.
Syntax

Call Load_Section_Data ( Section_Table_Name )
Options

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
________________

Convert NPD to Subunits

The Convert NPD to Subunits primitive converts the coded input value and returns its Real*8 equivalent.
This primitive is often used for converting the nominal piping diameter that is stored in the database.

Metric files base the diameter in millimeters. Imperial files store the nominal piping diameter as
NPD 1/32 + 5000. Thus,
1 inch NPD is 5000 + 32 * 1 = 5032
20 inch NPD is 5000 + 32 * 20 = 5640
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.
npd The nominal piping diameter in subunits.
Examples

In this example, the Real*8 equivalence of the coded NPD in Nom_Pipe_D_1 is returned in Pipe_Dia_1.
Call Convert_NPD_To_Subunits (Nom_Pipe_D_1, pipe_dia_1)

All NPDs used internally in the software are in encoded form. Most table lookups based on
NPDs require the input to be in encoded form.
50
2
.
S
t
r
u
c
t
u
r
e
Define Active Orientation
________________

Define Active Orientation

The Define Active Orientation primitive allows you to define the active orientation by specifying the
directions of the primary and secondary axes. The orientation is defined in the local coordinate system by the
symbol. This definition has no bearing on the design file coordinate system.
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 symbols connect point geometry) in order to place
graphic shapes.

Specific keywords are available for specifying either the primary axis or the secondary axis of the connect
points orientation.
Syntax

Call Define_Active_Orientation (primary, secondary)
Options

primary Variable that defines the flow centerline or primary direction.
secondary Variable that defines the line perpendicular to the flow centerline or secondary
direction.
Valid keywords for the primary and secondary variables include:
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:
Call Define_Active_Orientation (WEST,DOWN)
52
2
.
S
t
r
u
c
t
u
r
e
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.

Syntax

Call Draw_Cone (length, diameter_1, diameter_2)
Options

length The length of the cone (A) which can be positive or negative.
diameter_1 The diameter of the cone (B) at the active point.
diameter_2 The diameter of the cone (C) at the end opposite the active point.
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.
diameter The diameter (B) 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
2
.
S
t
r
u
c
t
u
r
e
Draw Eccentric Cone
________________

Draw Eccentric Cone

The Draw Eccentric Cone primitive allows you to place an eccentric truncated cone. The first end is at the
current active point. The second end is at a location the system computes by moving from the current active
point along the current flow centerline by the length of the cone and along the secondary axis by the negative of
the eccentric offset. You must specify the eccentric offset and the diameters of both ends of the eccentric cone.

Syntax

Call Draw_Eccentric_Cone (length, eccentric_offset, diameter_1, diameter_2)
Options

length Cone length (A).
eccentric_offset Eccentric cone offset. This is the center-to-center distance between cone
endpoints as measured positive going against the secondary.
diameter_1 Diameter (B) at active point.
diameter_2 Diameter (C) at the opposite end.
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
________________

Draw Projected Rectangle

The Draw Projected Rectangle primitive allows you to place a component with a rectangular cross section.
The current active point must be moved to the center of the rectangle, and the primary axis must point in the
direction of the projection. The secondary axis orients the side of length1.

You must specify the projected height, projected width, and projected length dimensions.
Syntax

Call Draw_Proj_Rectangle (length1, length2, projection)
Options

length1 Length of the rectangle side (C) parallel to the secondary axis of the active
orientation.
length2 Length of the rectangle side (B) parallel to the normal axis of the active
orientation.
projection Length of the projection (A).
Restrictions

The active point must be located at the center of geometric shape of the rectangle.
The refresh tee must point inward (the direction of projection).
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
2
.
S
t
r
u
c
t
u
r
e
Draw Projected Rectangle
________________

Call Draw_Proj_Rectangle (C, B, A)
stop
end
57
PDS Eden for Pipe Supports - April 2002
________________

Draw Projected Triangle

The Draw Projected Triangle primitive allows you to place a component that has an isosceles triangular
cross-section. The current active point must be moved to the center of the cross-section. The primary axis
points in the direction of the projection, and the secondary axis points to the base of the triangle. You must
specify the side length, base length, and projected length dimensions.

Syntax

Call Draw_Proj_Triangle (project_side_length, project_base_length, project_length)
Options

project_side_length Length of the side (A) of the triangle.
project_base_length Length of the base (B) of the triangle.
project_length Length of the projection (C).
Restrictions

The active point must be located at the center of geometric shape of the triangle.
The refresh tee must point inward.

Make sure that dimension A is greater than 1/2 of dimension B, otherwise errors will result.
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
2
.
S
t
r
u
c
t
u
r
e
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
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).
minor_axis_radius Variable defining the minor axis radius (B).
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
2
.
S
t
r
u
c
t
u
r
e
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.

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
Call Draw_Sphere (A)
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.
angle The bend angle of the torus (C).
diameter The diameter of the torus (A).
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
2
.
S
t
r
u
c
t
u
r
e
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)
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.
Call Convert_Unit (10, ENGLISH, length2)
64
2
.
S
t
r
u
c
t
u
r
e
Define Active Point
________________

Define Active Point

The Define Active Point primitive functions similarly to the Define Active Orientation primitive, but also
defines the active point in the symbols local coordinate system.
Syntax

Call Define_Active_Point (point)
Options

point Is a keyword specifying a previously defined point. Valid values for point
include:
local point variables
global point variables
Restrictions

The initial position of the active point must be located at the symbols local coordinate system origin.
Before using POINT_n, you must define it by calling Define Point.
Example

Call Define_Active_Point (POINT_3)
Call Define_Active_Point (PP_LOCATION_1)
65
PDS Eden for Pipe Supports - April 2002
________________

Define Orientation By Points

The Define Orientation By Points primitive allows you to redefine the active orientation using three known
points.
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:
Call Define_Orientation_By_Points (point [1], point [2], point [3])
66
2
.
S
t
r
u
c
t
u
r
e
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

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:
local point variable
global point variable
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.
Call Define_Point (POINT_1, ACTIVE_POINT, 0, 0, 0)
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.
[optional] This argument defaults to 0 if omitted.

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
2
.
S
t
r
u
c
t
u
r
e
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

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.
Call Display_Tutorial (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.
Interacting with Tutorials

Terminated fields allow the symbol code some control over operator interaction when a tutorial is active. Refer
to the Creating the Tutorial Definition Table section for creating these fields. When you select a terminated
application command or key-in field, the control returns to the symbol code, which can test specific global
variables identifying the field number and its type. The global variable LAST_INP_TYPE has the type of the
most recent terminated field selected. It can be tested against the following keywords for field types:
APPLICATION_CMD application command field
USER_KEYIN user key-in field
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
2
.
S
t
r
u
c
t
u
r
e
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

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.
The parent ellipse is completely known given the active primary,
secondary and the axis lengths. The two angles merely fix the arcs
angular position and not the distance of any of its points from the
foci.
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.
Call Draw_Arc (20, 10, 90, 90)

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:
tan(microstation_angle) = (semimajor/semiminor) tan(your_angle)
71
PDS Eden for Pipe Supports - April 2002
________________

Draw Complex Surface

The Draw Complex Surface primitive allows you to build projected and revolved shapes one element at a time.
Familiarity with the structure of 3D MicroStation shapes is required to use this primitive effectively.
Syntax

Call Draw_Complex_Surface (argument_1, argument_2)
The call can be made in three modes:
1. Start surface
2. Change class or symbology of elements being placed
3. End surface
Each argument has a different interpretation for each mode.
Start Surface

Used to start the surface.
Syntax
Call Draw_Complex_Surface (no_of_ele, surface_type)
Options
no_of_ele The number of elements per face.
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
Call Draw_Complex_Surface (_element_class, symbology)
72
2
.
S
t
r
u
c
t
u
r
e
Draw Complex Surface
________________

Options
element_class The class of elements to be placed. Typical classes include:
primary elements (class = 0, the default)
rule elements (class = 4)
symbology The symbology of elements to be placed.
This is an INTEGER (I*4 or 4 bytes) word. The upper word (2 bytes) is
set to:
0 - allows defaults to apply
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
Call Draw_Complex_Surface (-99, 0)
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.
Call Draw_Complex_Surface (4, 0) ! start projected;
Call Draw_Arc (radius, radius, -90, 180)
Call Draw_Line (point_1, point_2)
Call Draw_Arc (radius, radius, 90, 180)
Call Draw_Line (point_3, point_4)
Call Draw_Complex_Surface (4, 0) ! surface 2
Call Draw_Arc (radius, radius, -90, 180)
Call Draw_Line (point_5, point_6)
Call Draw_Arc (radius, radius, 90, 180)
Call Draw_Line (point_7, point_8)
Call Draw_Complex_Surface (-4, 0) ! start rule lines
Call Draw_Line (point_1, point_5) ! place a rule line
Call Draw_Line (point_2, point_6) ! place a rule line
Call Draw_Line (point_3, point_7) ! place a rule line
Call Draw_Line (point_4, point_8) ! place a rule line
Call Draw_Complex_Surface (-99, 0) ! wrap it up
74
2
.
S
t
r
u
c
t
u
r
e
Draw Con Prism
________________

Draw Con Prism

The Draw Con Prism primitive places a concentric prism by a point in the center of either rectangular end.
The active orientation primary axis is used to orient the direction of projection. The secondary axis orients a
side of each end.

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

Call Draw_Con_Prism (length_sec, length_norm, length_proj, length2_sec, length2_norm)
Options

length_sec The length of rectangular base along secondary.
length_norm The length of rectangular base along normal.
length_proj The length of projection.
length2_sec The length of rectangular top along secondary.
length2_nor The length of rectangular top along normal.
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].
Call Draw_Curve (20, point_24)

This primitive is not supported by the equipment task but is available in the HVAC task.
76
2
.
S
t
r
u
c
t
u
r
e
Draw Ecc Prism
________________

Draw Ecc Prism

The Draw Ecc Prism primitive places an eccentric prism by a point in the center of either rectangular end. The
active orientation primary axis orients the direction of projection. The secondary axis orients a side of each end
as well as the offset direction.

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.

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.
length_norm The length of rectangular base along normal.
length_proj The length of projection.
length2_sec The length of rectangular top along secondary.
length2_norm The length of rectangular top along normal.
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
________________

offset = (A - C) / 2.0 ! offset
Call Draw_Ecc_Prism (A, B, E, C, D, offset)
stop
end
78
2
.
S
t
r
u
c
t
u
r
e
Draw Ecc Transitional Element
________________

Draw Ecc Transitional Element

The Draw Ecc Transitional Element primitive allows you to place an eccentric transitional element by a point
in the center of either the rectangular or circular face. The active orientation primary axis orients the direction
of projection. The secondary axis orients a side of the rectangular base and the direction of offset.

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.
length_norm The length of rectangular base along normal.
length_proj The length of projection.
length_radius The radius of circular face.
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.
semiminor_len Half the length of the minor axis.
Example

This call places an ellipse whose major and minor axes are 40 and 20 units long.
Call Draw_Ellipse (20.0, 10.0)
80
2
.
S
t
r
u
c
t
u
r
e
Draw Line
________________

Draw Line

The Draw Line primitive allows you to place a line.

Syntax

Call Draw_Line (start_pt, end_pt)
Options

start_pt The location of first vertex. Use global or local point.
end_pt The location of second vertex. Use global or local point.
Example

In this example, the call places a line from POINT_10 to POINT_20.
Call Draw_Line (point_10, point 20)
81
PDS Eden for Pipe Supports - April 2002
________________

Draw Line String

The Draw Line String primitive allows you to place a line string.

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].
Call Draw_Line_String (20, point [24] )
82
2
.
S
t
r
u
c
t
u
r
e
Draw Proj Hexagon
________________

Draw Proj Hexagon

The Draw Proj Hexagon primitive allows you to place a projected hexagon by a point in the center of a face.
The active orientation primary axis orients the direction of projection. The secondary axis orients a flat of the
hexagonal solid.

Syntax

Call Draw_Proj_Hexagon (side_length, proj)
Options

side_length Side B is the side length.
proj Side A is the length of the projection.
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
________________

if (D_out .GT. 0) then
D_side = D_out / 2
DIMENSION_2 = 0
endif
endif
Call Draw_Proj_Hexagon (D_side, A)
stop
end
84
2
.
S
t
r
u
c
t
u
r
e
Draw Proj Octagon
________________

Draw Proj Octagon

The Draw Proj Octagon primitive places a projected octagon by a point in the center of a face. The active
orientation primary axis orients the direction of the projection. The secondary axis orients a flat side of the
octagonal solid.

Syntax

Call Draw_Proj_Octagon (side_length, proj)
Options

side_length Side B is the side length.
proj Side A is the length of the projection.
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
________________

if (D_out .GT. 0) then
D_side = D_out * DSIND (22.5)
DIMENSION_2 = 0
endif
endif
Call Draw_Proj_Octagon (D_side, A)
stop
end
Call Draw_Proj_Octagon (12, 12)
86
2
.
S
t
r
u
c
t
u
r
e
Draw Proj Shape
________________

Draw Proj Shape

The Draw Proj Shape primitive allows you to place an arbitrary (planar) shape and project it by a given
distance. The active primary orients the direction of projection.

Syntax

Call Draw_Proj_Shape (no_pnt, proj_len, pnt_buffer)
Options

no_pnt The number of vertices from 1 - 24.
proj_len The length (A) of the projection.
pnt_buffer [optional] If supplied, points to the location of the first vertex. If
omitted, the vertices are assumed to be in the global POINT array with
vertex 1 in point_1, vertex 2 in point_2, and so forth. Local or global
point arrays.
Examples

The length of the shape to be placed is 10.0 units. The 5 vertices are in POINT [101] ... POINT [105].
Call Draw_Proj_Shape ( 5, 10.0, point [101])
The projected shapes 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.
Call Draw_Proj_Shape ( 5, 10.0 )
87
PDS Eden for Pipe Supports - April 2002
________________

Draw Rectangular Torus

The Draw Rectangular Torus primitive places a rectangular torus by a point in the center of either rectangular
end. The active orientation primary axis orients the direction of projection. The secondary axis points toward
the origin of the torus.

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.
length_sec The length of rectangular end along secondary.
length_norm The length of rectangular end along normal.
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
2
.
S
t
r
u
c
t
u
r
e
Draw Revolved Shape
________________

Draw Revolved Shape

The Draw Revolved Shape primitive allows you to create a MicroStation surface of revolution by rotating an
arc, line string, or shape. The axis of rotation is the primary axis passing through the symbol active point.
Rotation is counter-clockwise.
Syntax

Call Draw_Revolved_Shape (generator_type, total_stroke_angle,
no_of_steps point_buffer, argument_5, argument_6)
Options

generator_type A keyword specifying the element type being revolved.
Keywords include:
EL_LINESTR for line string
EL_SHAPE for planar shape
EL_ARC for arc
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.
point_buffer An array of points used to define the rotating element.
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.
argument_5 For line string or shape: the number of points in point_buffer.
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)
point_1 = point_0 ! save arc center
Call Move_Along_Axis (dia/2, SECONDARY)
point_2 = point_0 ! point for arc primary
point_0 = point_1 ! for next move_along
Call Move_Along_Axis (dish_depth, PRIMARY)
point_3 = point_0 ! define arc secondary
total_sweep = 360
arc_sweep = 90 ! quadrant arc rotating
Call Draw_Revolved_Shape (EL_ARC, total_sweep, 2, POINT_1, 0, arc_sweep)

If you are rotating an arc, refer to the Draw Arc section for proper specifications of start and
sweep angles.
90
2
.
S
t
r
u
c
t
u
r
e
Draw Shape
________________

Draw Shape

The Draw Shape primitive is a 2D call allowing you to place a planar closed shape.

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].
Call Draw_Shape (20, point [24])
91
PDS Eden for Pipe Supports - April 2002
________________

Draw Transitional Element

The Draw Transitional Element primitive allows you to place a right transitional element with a point in the
center of either the rectangular or circular face. The active orientation primary axis orients the projection
direction. The secondary axis orients a side of the rectangular base.
Syntax

Call Draw_Transitional_Element (length_sec, length_norm, length_proj, length_radius)
Options

length_sec The length of rectangular base along secondary.
length_norm The length of rectangular base along normal.
length_proj The length of projection.
length_radius The radius of circular face.
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.
Call Draw_Transitional_Element (24, 16, 30, 6)
92
2
.
S
t
r
u
c
t
u
r
e
Get Arc Points
________________

Get Arc Points

The Get Arc Points primitive allows you to access the data for the arc last identified in a Get Point call. The
system ignores the secondary length of the arc, assuming it to be identical to the primary. This call is
specifically geared to facilitate hand-railing placement.
Syntax

Call Get_Arc_Points (arc_definition)
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
________________

Get Arc Size

The Get Arc Size primitive returns the circumferential distance between two points on an arc.
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 arcs 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).
int2 ret_pt_type, ret_ele_type
.
.
Call Get_Point (PT_SNAP, point [1], ret_pt_type, ret_ele_type, EL_ARC)
Call Get_Arc_Points (point [2])
Call Get_Arc_Size (point [2], point [3], point [5], length)
94
2
.
S
t
r
u
c
t
u
r
e
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

date_string The character variable receiving system date in the form: dd-mmm-yyyy
Example

Call Get_Date (cstring_1)
After this call, cstring_1 appears as: "22-JAN-1989"
95
PDS Eden for Pipe Supports - April 2002
________________

Get Line Size

The Get Line Size primitive returns the straight line distance between two points.
Syntax

Call Get_Line_Size (from_pt, to_pt, size)
Options

from_pt The start point of measurement. Use global or local point.
to_pt The endpoint 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
2
.
S
t
r
u
c
t
u
r
e
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

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_RESET Return by selecting RESET (no point returned).
PT_BORE Boresight location point.
PT_SNAP Snap point.
PT_PREC Key-in precision point.
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_3DB A 2-view data button.
PT_ALL Contains the result obtained by adding all the above point types. Any
point type can be removed from this mask by subtraction.
When forming the mask, remember to use a keyword only once
whether adding or subtracting.
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:
EL_LINE line element
EL_LINESTR line string
EL_SHAPE shape
EL_ELLIPSE ellipse
EL_ARC arc
EL_PTSTR point string
EL_CONE cone
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:
int2 retpttype, reteletype
.
.
Call Display_Message (Identify arc or line)
Call Get_Point (pt_snap+pt_prec, point [101], retpttype,
reteletype, el_arc+el_line)
if (retpttype .eq. pt_snap) then ! is it a snap point?
if (reteletype .eq. EL_ARC) then ! an arc was snapped to
.
.
else ! it must be EL_LINE
.
.
endif
else ! it must be precision
.
.
endif
98
2
.
S
t
r
u
c
t
u
r
e
Move Along Arc
________________

Move Along Arc

The Move Along Arc primitive returns a destination point (after traversing a specified distance along a given
arc) from a given point.
Syntax

Call Move_Along_Arc (arc_definition, from_pt, to_pt, travel dist, out_pt)
Options

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 arcs 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 arcs size.
int2 ret_pt_type, ret_ele_type
.
.
Call Get_Point (pt_snap, point [1], ret_pt_type, ret_ele_type, el_arc)
Call Get_Arc_Point (point [2])
Call Get_Arc_Size (point [2], point [3], point [5], length)
Call Move_Along_Arc (point [2 ], point [3], point [5], length/2, point [10])
! find the middle
99
PDS Eden for Pipe Supports - April 2002
________________

Move Along Axis

The Move Along Axis primitive is similar to the Move By Distance primitive except that Move Along Axis
allows you to move the active point a specified distance along any specified axis of the active orientation.
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.
Call Move_Along_Axis (24., SECONDARY)
100
2
.
S
t
r
u
c
t
u
r
e
Move Along Line
________________

Move Along Line

The Move Along Line primitive returns a destination point given the direction of travel, a starting point, and a
distance of travel.
Syntax

Call Move_Along_Line (from_line_end, to_line_end, from_pt, distance, to_pt)
Options

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.
distance The input variable containing the distance of travel.
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:
Call Move_By_Distance (24.)
In this example, the active point is moved by the distance defined by the variable dimension_a.
Call Move_By_Distance (dimension_a)
102
2
.
S
t
r
u
c
t
u
r
e
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

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
2
.
S
t
r
u
c
t
u
r
e
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

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:
Nonexistent field numbers.
Incompatible type conversion.
No tutorial being active.
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.
Call Put_Field (10, 2)
106
2
.
S
t
r
u
c
t
u
r
e
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)
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:
0 - table read successfully
3 - table not in table library / library not attached
6 - invalid inputs for table look-up.
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
2
.
S
t
r
u
c
t
u
r
e
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)
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.
Call Define_Active_Orientation (EAST, NORTH)
.
.
.
.
Call Rotate_Orientation (90, SECONDARY)
109
PDS Eden for Pipe Supports - April 2002
________________

Start Complex Shape

The Start Complex Shape primitive informs the system that linear elements (line, linestring, arc) to be placed
subsequently are to be accumulated by the system and grouped as a complex shape. The elements must
maintain a continuous flowline when they are sequentially traced through their vertices or end points. (This is a
requirement for MicroStation complex shape elements.) The 0 only supplies a nonempty argument list.
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
2
.
S
t
r
u
c
t
u
r
e
Stop Complex Shape
________________

Stop Complex Shape

The Stop Complex Shape primitive informs the system that the complex shape under progress is complete.

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

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:
being stored (=2)
recalled (=1)
orientation_no The orientation location number. Valid values include:
1 - 10 local orientation location (known to the current symbol or user function
only).
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:
Call Store_Orientation (2, 8)
.
.
.
Call Store_Orientation (1, 8)
112
2
.
S
t
r
u
c
t
u
r
e
Support User Function
________________

Support User Function

The Support User Function primitive allows you to call another Eden module compiled as a 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.
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 .
.
arguement9
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
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
________________

User Function FLAT_OVAL_PRISM

The FLAT_OVAL_PRISM user function allows you to place a flat oval prism with faces parallel but offset
from each other along both the secondary and normal axes.

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.
length1 Flat segment length of first face.
depth1 Depth of first face.
length2 Flat side length of second face.
depth2 Depth of second face.
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: Dont update active point and orientation upon exit (default).
1: Update active point and orientation to the opposite face upon exit.
114
2
.
S
t
r
u
c
t
u
r
e
User Function FLAT_OVAL_TOR
________________

User Function FLAT_OVAL_TOR

The user function FLAT_OVAL_TOR allows you to place a flat oval torus.

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.
sweep_angle Revolved angle.
length Flat segment length of face.
depth Depth of face.
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: Dont 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
________________

User Function FLAT_OVAL_SEG_TOR1

The FLAT_OVAL_SEG_TOR1 user function allows you to place a segmented flat oval torus.

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).
num_seg Number of segments (between 2 and 30 inclusive).
length Flat segment length of face.
depth Depth of face (half of this depth must be well within the bend_radius).
update_flg 0: Dont update active point or orientation upon exit (default).
1: Update active point and orientation to the last face upon exit.
116
2
.
S
t
r
u
c
t
u
r
e
User Function FLAT_OVAL_SEG_TOR2
________________

User Function FLAT_OVAL_SEG_TOR2

The FLAT_OVAL_SEG_TOR2 user function allows you to place a segmented flat oval torus.

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).
num_seg Number of segments (between 2 and 30 inclusive).
length Flat segment length of face.
depth Depth of face (half of this depth must be well within the bend_radius).
update_flg 0: Dont update active point or orientation upon exit (default).
1: Update active point and orientation to the last face upon exit.
117
PDS Eden for Pipe Supports - April 2002
________________

User Function ROUND_SEG_TOR1

The user function ROUND_SEG_TOR1 allows you to place a segmented round torus.

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).
num_seg Number of segments (at least 2).
radius Cross-sectional radius of any segment (this value must be well within the
bend_radius).
update_flg 0: Dont update active point or orientation upon exit (default).
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
2
.
S
t
r
u
c
t
u
r
e
User Function ROUND_SEG_TOR2
________________

User Function ROUND_SEG_TOR2

The user function ROUND_SEG_TOR2 allows you to place a segmented round torus.

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).
num_seg Number of segments.
radius Cross-sectional radius of any segment. (This value is well within the
bend_radius.)
update_flg 0: Dont update active point or orientation upon exit (default).
1: Update active point and orientation to the last face upon exit.
119
PDS Eden for Pipe Supports - April 2002
________________

User Function RECT_SEG_TOR

The user function RECT_SEG_TOR allows you to place a segmented rectangular torus.

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).
num_seg Number of segments (at least 2; at most 30).
length1 Length of face along the secondary axis.
length2 Length of face along the normal axis.
update_flg 0: Dont update active point and orientation upon exit (default).
1: Update active point and orientation to the last face upon exit.
120
2
.
S
t
r
u
c
t
u
r
e
User Function RECT_FLAT_OVAL
________________

User Function RECT_FLAT_OVAL

The user function RECT_FLAT_OVAL allows you to place a rectangular to flat oval transitional element with
faces parallel but offset from each other along both the secondary and normal axes.

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.
length1 Length of rectangular face along the secondary axis.
depth1 Depth of rectangular face along the normal axis.
length2 Flat segment length of flat oval face along the secondary axis.
depth2 Depth of flat oval face along the normal 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.
update_flg 0: Dont update active point or orientation upon exit (default).
1: Update active point and orientation to the flat oval face upon exit.
121
PDS Eden for Pipe Supports - April 2002
________________

User Function ROUND_RECT

The user function ROUND_RECT allows you to place a round to rectangular transitional element with faces
parallel but offset from each other along both the active secondary and normal axes.

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.
radius Radius of round face.
width Width of rectangular face along the secondary axis.
depth Depth of rectangular face along the normal axis.
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: Dont update active point and orientation upon exit (default).
1: Update active point and orientation to the rectangular face upon exit.
122
3
.
S
y
m
b
o
l
s
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.
3. Determine where connect points are needed for the symbol.
4. Assign global variables to the input. This step allows design of the tutorial for the symbol.
5. Develop the symbol code.
6. Compile the symbol.
7. Create the form.
8. Create the tutorial definition table.
9. Insert the tutorial definition table into the tutorial definition library.
123
PDS Eden for Pipe Supports - April 2002
________________

124
4
.
N
e
w
Creating a New Pipe Support
________________

4. Creating a New Pipe Support

Eden Setup
Before a new pipe support can be defined through Eden, follow these steps:
1. Create a directory path for symbol definition files
Login to the server where the PDS project resides
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
where proj1 is the directory of an existing project.
2. Create a directory path for dimension and spec tables.
Login to the server where the PDS project resides.
Create the dimension and spec tables directory.
c:\users\default\projects\custom\tbls
OR
c:\users\default\projects\proj1\tbls
3. Create a directory path for for tutorial definition neutral files.
Login to the server where the PDS project resides.
Create the tutorial definition neutral file directory.
c:\users\default\projects\custom\tdf
OR
c:\users\default\projects\proj1\tdf
125
PDS Eden for Pipe Supports - April 2002
________________

4. Create a directory path for storing pipe support fabrication drawings.
Login to the server where the PDS project resides.
Create the fabrication drawing directory.
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.
Login to the server where the PDS project resides.
Create the pipe support seed files 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.
copy c:\win32app\ingr\pdshell\psmsymbols\*.* c:\users\default\projects\custom\psmsymbols\
OR
copy c:\win32app\ingr\pdshell\psmsymbols\*.* c:\users\default\projects\proj1\psmsymbols\
6. Create a directory path for graphic data and table libraries, and copy them into this directory.
Login to the server where the PDS project resides
Create library directory.
c:\users\default\projects\custom\libs
OR
c:\users\default\projects\proj1\libs
Copy standard delivered libraries into library directory.
copy c:\win32app\ingr\rdusrdb\*.l* c:\users\default\projects\custom\libs\
copy c:\win32app\ingr\pdshell\lib\*.l* c:\users\default\projects\custom\libs\
copy c:\win32app\ingr\fwplus\ESL\AISC.dat c:\users\default\projects\custom\libs\
copy c:\win32app\ingr\fwplus\ESL\AISC.idx c:\users\default\projects\custom\libs\
126
4
.
N
e
w
Creating a New Pipe Support
________________

OR
copy c:\win32app\ingr\rdusrdb\*.l* c:\users\default\projects\proj1\libs\
copy c:\win32app\ingr\pdshell\lib\*.l* c:\users\default\projects\proj1\libs\
copy c:\win32app\ingr\fwplus\ESL\AISC.dat c:\users\default\projects\proj1\libs\
copy c:\win32app\ingr\fwplus\ESL\AISC.idx c:\users\default\projects\proj1\libs\
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.
Access the pdshell form.
Select a project from the form.
Select the Reference Data Manager option.
Select the Default Project Control Data option.
Enter the path and node name to the directories previously created.
Piping Eden Path: c:\users\default\projects\custom\pipesym\
Piping Eden node: <server name>
Dim/Spec Table Path: c:\users\default\projects\custom\tbls\
Dim/Spec Table node: <server name>
Support TDF Path: c:\users\default\projects\custom\tdf\
Support TDF node: <server name>
Make sure that the Piping Spec definitions are specified. If a U.S. standards project is being used
the following data should appear:
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 Cancel on the Defaults form.
Select the Reference Database Management Data option.
Select the Default All Library Locations, and enter the library directory previously created.
127
PDS Eden for Pipe Supports - April 2002
________________

Network Address: <server name>
Directory: c:\users\default\projects\custom\libs
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:
Piping Job Spec Table us_pjstb.l
Short Matl Description us_shbom.l
Long Matl Description us_lgbom.l
Specialty Matl Description us_spbom.l
Standard Note std_note.l
Label Description labels.l
Piping Assembly assembly.l
Graphic Commodity pip_gcom.l
Pipe Support Tutorial Definition Library ppsm_tlib.l
Pipe Support Section Table Library AISC
Physical Data - U.S. Practice us_pcdim.l
If working in a non-U.S. standards project, see the rdb directory being used to find the correct
specifications
To revise an entry, follow these steps:
Identify the library to be checked.
Place the cursor at the beginning of the "Specification" field.
Delete to the right of the cursor.
Enter the correct value and press the return key.
Accept the form.

A detailed description of the Reference Database Management option is provided in the
next few pages
Change the location of pipe support seed files.
Network Address: <server name>
Directory: c:\users\default\projects\custom\psmsymbols
Change the pipe support drawings base directory.
Network Address: <server name>
Directory: c:\users\default\projects\proj1\drawings\
128
4
.
N
e
w
Reference Database Management Data
________________

Reference Database Management Data

The Reference Database Management Data form allows you to define the file names for Reference Database
Files, graphic commodity data, dimension tables, and spec tables. You can define both approved or
unapproved RDB data for each item. You can also define the default location for the source files used to load
the RDB files (such as neutral files, language files, and report files.)
Operating Sequence

1. Select Reference Database Management Data from the Reference Data Manager form.

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
Database
Identifies the Material Reference Database for the project. Refer to
the Project Setup Manager in the Project Administrator
(PD_Project) Reference Guide for more information on this
database.
Piping Job Specification Table
Library
Identifies the location of the Spec Table 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
Library
Identifies the library that contains the BOM description for
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
Library
Identifies the location of the tutorial definition library for pipe
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
Directory
Location to store the fabrication drawings for pipe supports.
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
4
.
N
e
w
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
Select Cancel to exit the form.
131
PDS Eden for Pipe Supports - April 2002
________________

Default Project Control Data

This button allows you to define the default location for files commonly used by the project (such as neutral
files, report files, and library files). You can also set or change these file locations during the operation of the
applicable managers.

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
4
.
N
e
w
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.
133
PDS Eden for Pipe Supports - April 2002
________________

134
G
l
o
s
s
a
r
y
Glossary
________________

Glossary

AA code An alphanumeric code used to identify a group of elements.
AABB code An alphanumeric code which defines the class of an item.
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.
arithmetic operator Operator used to form arithmetic expressions.
assembly see piping assembly
attribute A property or characteristic of an entity. A column in an entity table.
beginning statements Eden statements that define the types of modules being entered.
BOM bill of materials
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.
column An attribute of a table. A group of columns defines a table.
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.
commodity item a standard component found in a manufacturers catalog (off-the-shelf
component).
component a graphic symbol representing a commodity item, specialty item,
instrument, or pipe support. Gate valves, elbows and expansion joints are
examples of piping components.
135
PDS Eden for Pipe Supports - April 2002
________________

database A collection of comprehensive informational files having predetermined
structure and organization that can then be communicated, interpreted, or
processed by a specific program.
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.
dimension table see physical data table
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 a high-level parametric language (similar to FORTRAN) which uses
information from the Piping Job Specification and Design Database to
access parametric and dimensional data, and place parametric symbols.
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.
entity An object (project, drawing, element, etc.) of interest about which
information is stored; a relational database table.
expression Variables, constants, and operators combined to form statements.
field An area of a table used to display information or receive input.
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.
GCL Graphic Commodity Library
generic physical data
module
Physical data module containing information common to more than one
symbol. Generic physical data modules are called by specific physical data
modules.
136
G
l
o
s
s
a
r
y
Glossary
________________

Geometric industry
standard
a code-listed attribute which identifies the source of the data (industry
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
Library
a data library which contains the parametric symbol definitions (Eden
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.
Indexed Do statement Eden statement which allows loops that execute a specified number of
times.
instrument an item used to perform a process measurement, process indication, or
control function. Instruments can be defined in the Piping Job Specification
or defined interactively while working in the model.
interference parametric
shape definition
Eden code used to define the interference envelope for a component, to be
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
Library
a library which contains the long bill-of-material descriptions for all piping
commodities.
MC model code
model a 3-D design volume.
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
definition
Eden code used to define the symbol graphics to be placed in the model.
module a specialized application within PDS such as the Piping Designer or
Equipment Modeling task.
137
PDS Eden for Pipe Supports - April 2002
________________

monument the origin point for a coordinate system or design volume.
MTO material take-off
network An interconnection of host computers and workstations that enables them to
share data and control. The term network can mean the devices that connect
the system, or it can mean the connected system.
neutral file an ASCII file which can be used to load data into a library, database, or
design file.
NPD nominal piping diameter
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
operator Symbol or string used in conjunction with variables to form expressions.
OT operator type
PAL Piping Assembly Language
parametric shape
definition
Eden code used to describe the graphics symbol placed for a component in
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.
P&ID Piping and Instrumentation Diagram
path name The sequence of directories leading to a file. See also full path name and
relative path name.
PDS Plant Design System
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
G
l
o
s
s
a
r
y
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.
Piping Materials Class a classification of components by service or specification. For example, a
150 pound carbon steel specification.
PJS Piping Job Specification
plant A group of facilities and equipment used to perform one or more material
processing functions within a given geographical area. One company may
have many plants located in many different geographical locations.
PMC Piping Materials Class
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 number An alphanumeric code used to refer to a specific project.
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.
RDB Reference Database
Reference Database A collection of reference data containing information relative to industry
design codes, vendors catalog data, job specifications, commodity libraries,
graphics symbology, label descriptions, report formats and other
information of a similar manner.
Relational DataBase
Management System
RDBMS
A database management system that uses SQL, the Structured Query
Language, to implement and query data in relational tables.
Relational Interface
System
A generic relational database interface that isolates the differences in
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
________________

replacement statement Eden statements used to set variables or perform calculations.
report format file see format file
RIS Relational Interface System.
row A unit of related information in a table. One collection of column values for
a table.
schema An RIS schema identifies a unique database/user combination existing in a
commercial database system.
search criteria a set of values used to scan a database or object library.
seed data default data used in the creation of new projects/models/drawings.
Short Material Description
Library
a library which contains the short bill-of-material descriptions for all piping
commodity items and the description addenda for taps.
site A grouping of three-dimensional world data corresponding to schematic
data from one or more units. The relation-ship of site with plant and project
is identical to that between unit with plant and project.
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 item an piping specialty or instrument.
Specialty Material
Description Library
a library which contains the bill-of-material descriptions for engineered
items, instruments, and pipe supports.
specific physical data
module
Physical data module that determines the dimensions and other physical
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
G
l
o
s
s
a
r
y
Glossary
________________

task A specialized PDS function such as the Piping and Instrumentation
Diagrams (P&ID) task or the Piping Designer task.
task database Working database in which the actual engineering or design effort is
performed. A separate task database exists for each PDS task.
TDB Task Database
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.
toggle To switch; to change between two alternatives.
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.
variable An expression whose value can change. Used as a placeholder for
information in Eden code. Variables can be either global or local in Eden
code.
141
PDS Eden for Pipe Supports - April 2002
________________

142
I
n
d
e
x
Index
________________

Index

A
abort 63
arithmetic operators 38
B
begin 25
EQP category 27
beginning statements 24
C
call
statement 41
comments 37
convert
NPD to subunits 50
unit 64
D
default project control data 132
define
active
orientation 51
point 65
orientation by points 66
point 67
description statement 36
display
message 68
tutorial 69
do while statement 41
draw
arc 71
complex surface 72
con prism 75
cone 53
curve 76
cylinder 54
ecc
prism 77
transitional element 79
eccentric cone 55
ellipse 80
line 81
string 82
proj
hexagon 83
draw (continued)
proj (continued)
octagon 85
shape 87
projected
rectangle 56
triangle 58
rectangular torus 88
revolved shape 89
semi ellipsoid 60
shape 91
sphere 61
torus 62
transitional element 92
draw section member 46
E
Eden
basics 13
language structure 23
beginning statements 24
comments 37
ending statements 24
expressions 40
functions 43
keywords 35
operators 38
replacement statements 40
variables 29
ending statements 24
expressions 40
call 41
do while 41
if - then - else 42
indexed do 41
replacement statements 40
F
flat_oval_prism 114
flat_oval_seg_tor1 116
flat_oval_seg_tor2 117
flat_oval_tor 115
functions 43
143
PDS Eden for Pipe Supports - April 2002
________________

G
get
arc
points 93
size 94
date 95
line size 96
point 97
global variables 31
equipment and pipe support 32
pipe support specific 32
subscripted 34
I
if - then - else statement 42
indexed do statement 41
interacting terminated fields 69
K
keywords
common 35
L
load
section data 49
spec data 45
local variables 29
logical operators 39
M
move
along
arc 99
axis 100
line 101
by distance 102
data 103
O
operators 38
arithmetic 38
logical 39
relational 39
P
place
COG 104
place connect point 47
position cursor 105
primitives 44
convert NPD to subunits 50
primitives (continued)
define active orientation 51
draw
cone 53
cylinder 54
eccentric cone 55
projected rectangle 56
projected triangle 58
semi ellipsoid 60
sphere 61
torus 62
equipment modeling
abort 63
begin 25
begin EQP category 27
convert unit 64
define
active point 65
orientation by points 66
point 67
display
message 68
tutorial 69
draw
arc 71
complex surface 72
con prism 75
curve 76
ecc
prism 77
transitional element 79
ellipse 80
line 81
string 82
proj
hexagon 83
octagon 85
shape 87
rectangular torus 88
revolved shape 89
shape 91
transitional element 92
flat_oval_prism 114
flat_oval_seg_tor1 116
flat_oval_seg_tor2 117
flat_oval_tor 115
get
arc
points 93
size 94
date 95
144
I
n
d
e
x
Index
________________

primitives (continued)
equipment modeling (continued)
get (continued)
line
size 96
point 97
move
along
arc 99
axis 100
line 101
by distance 102
data 103
place COG 104
position cursor 105
put field 106
read table 107
rect_flat_oval 121
rect_seg_tor 120
rotate orientation 109
round_rect 122
round_seg_tor1 118
round_seg_tor2 119
start complex shape 110
stop complex shape 111
store
orientation 112
user function 113
load spec data 45
prompt for orientation 48
put field 106
R
read table 107
rect_flat_oval 121
rect_seg_tor 120
reference database management data 129
default project control data 132
relational operators 39
replacement statements 40
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
statements (continued)
call 41
do while 41
ending 24
if - then - else 42
indexed do 41
replacement 40
stop complex shape 111
store
orientation 112
structure Eden 23
subscripted global variables 34
T
tables
tutorial definition 17
terminated fields
interacting 69
tutorial
definition
table 17
type statement 36
typefaces 9
U
user function 113
flat_oval_prism 114
flat_oval_seg_tor1 116
flat_oval_seg_tor2 117
flat_oval_tor 115
rect_flat_oval 121
rect_seg_tor 120
round_rect 122
round_seg_tor1 118
round_seg_tor2 119
V
variables 29
global 31
local 29
145
PDS Eden for Pipe Supports - April 2002
________________

146
PDS Eden Interface
Reference Guide - Volume 3, Pipe Supports
Document Addendum

March 2007


DPDS3-PB-2000042C

For PDS 8.0 SE

This document supplements DPDS3-PB-2000042B.
PDS Eden for Pipe Supports March 2007
148
Table of Contents
Global Variables Common to Piping, Equipment, and Pipe Support Modeling
(replaces Variables subsection) ................................................................................149
Place COG (replaces Place COG) ............................................................................151
Basic Use of Forms...................................................................................................152
Piping Specialty Components...................................................................................154
Pipe Supports...................................................................................................................154

149
Global Variables Common to Piping,
Equipment, and Pipe Support Modeling
(replaces Variables subsection)
Note: The information in this section supersedes the information in the corresponding
section of previous versions of the PDS Eden Interface Reference Guide - Volume 3: Pipe
Supports (pp 31-32 in the PDS 7.1 version of the document).
The following information has been added:
System_Of_Units global variable
See the following text for details.
Global variables are system-defined names allowing you to refer to them at any
subroutine level. More specifically, you can use them for passing values between
subroutine levels or for communicating input values to the symbol. The following list
shows the global variables common to all Eden applications. Refer to the application-
specific section for detailed information concerning specific global variables.
Note: Global variables are system-defined. You cannot declare global or subscripted
global variables.
Variable Description
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.)
Pr_Rating_n Variable containing the current item pressure rating value.
PDS Eden for Pipe Supports March 2007
150
Variable Description
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.
System_Of_Units Variable defining the current system of measurement used. Valid
values are ENGLISH and METRIC.
151
Place COG (replaces Place COG)
Note: The information in this section supersedes the information in the corresponding
section of previous versions of the PDS Eden Interface Reference Guide - Volume 3: Pipe
Supports (p. 104 in the PDS 7.1 version of the document).
The following information has been added:
Note that the Place COG primitive is not supported
See the following text for details.
Important: The Pipe Supports Eden symbol processor does not support the Place Center
of Gravity (COG) primitive.
PDS Eden for Pipe Supports March 2007
152
Basic Use of Forms
DBACCESS is used to create the forms needed to interact with the operator. When a new
piping item is defined through Eden, some form customization may be required to make
the new item accessible to the users.
The fastest way to generate a new form or add a new option within an existing form is to
copy and edit a standard delivered form. The following general procedure can serve as a
guideline when creating a form that is to be linked to a new component:
1. Create a directory where forms can be worked on. This should be done on a
workstation that has PDS loaded or that at least has access to the server where PDS
products are loaded.
2. Copy into the new forms directory a form used to place an existing component.
copy c: \ wi n32app\ i ngr \ pdshel l \ f or ms\ PA001 f or ms\ .
3. From the forms directory access DBACCESS.
4. Select the Define Form option.
5. Identify the form to be modified from the list, and accept.
6. Use the Single Edit command to modify those gadgets on the form that only require
minor changes such as gadget numbers or text editing.
7. Use the Single Copy command followed by the Single Edit command to copy
existing options that should be left intact and edit the new options to perform the
desired task. This is useful when reproducing the font or line style of a gadget or
when the new gadget will perform a task similar to that of the parent gadget.
8. Use the Characteristics Form when gadget number and other gadget attributes need to
be updated.
9. Use Single Delete to remove gadgets from the original form that wont be needed on
the new one.
10. Use the Place Gadget option to place fields, buttons, toggles, text, lines, and so forth.
11. Use the Set Form Parameters option to select gadget colors, styles, fonts, and so forth.
12. Use the Associate Gadgets option to create and manipulate gadget sequences (where
the cursor should appear following an entry in a key-in gadget).
13. If you are familiar with the procedures used in piping and equipment modeling for
identifying, accepting, and rejecting a selection using the mouse, you will find it easy
to follow the prompts provided for each of the FORMS commands
14. When exiting and saving a form make sure that the exit form has the following
selections turned on: No Program Skeleton, Erase Form Yes, Write Form Yes.
153
15. To place a new or customized form where the piping design software will be able to
access it copy the new form to the pdshell\forms directory.
copy PA001 c: \ wi n32app\ i ngr \ pdshel l \ f or ms\ PA001
16. Refer to the DBACCESS documentation for detailed information on using this
product.
Note: There is no symbol editor for the Windows NT/2000/XP environment. However,
bitmaps (BMP files) can be used to create symbols.
PDS Eden for Pipe Supports March 2007
154
Piping Specialty Components
Pipe Supports
You can customize the I/Form, PSP000.fb, for use as the pipe support menu. You must
adhere to the following conventions in customizing this I/Form. If not documented, any
other gadgets on the I/Form should remain consistent with those delivered by Intergraph.
individual physical pipe support selection
key: "$<i/form_name>,<model_code>"
where
<I/Form_name> name of the I/Form to be displayed by Place Pipe Support
<model_code> model code of the physical pipe support to be placed by Eden
Intergraph has chosen to name the I/Forms for physical pipe supports using the
convention PSP<nnn>, where <nnn>are three unique alphanumeric characters.
gadget number: defined by user
any gadget number not reserved by Intergraph
individual functional pipe support selection
key: "#<pipe_support_type>,<model_code>"
where
<pipe_support_type> name of the I/Form to be displayed by Place Pipe Support
<model_code> model code of the physical pipe support to be placed by Eden
Intergraph has chosen to name the I/Forms for physical pipe supports using the
convention PSP<nnn>, where <nnn>are three unique alphanumeric characters.
gadget number: defined by user
any gadget number not reserved by Intergraph
help selection
key: 456
gadget number: 995
button: automatic
form size selection
key: 403
gadget number: 997
button: automatic
155
exit selection
key: 4001
gadget number: 998
button: manual
accept selection
key: 4002
gadget number: 999
button: automatic
message area a for messages
gadget number: 251
characters: 40
lines deep: 3
edit mode: review only
text font: 12
message area b for active segment data display
gadget number: 254
characters: 40
lines deep: 3
edit mode: review only
text font: 12
You can customize the I/Forms for pipe supports. You must adhere to the following
conventions to customize these I/Forms. If not documented, any I/Form you customize
should remain consistent with those delivered by Intergraph.
Intergraph has chosen to name the I/Forms for pipe supports using the convention
PSP<nnn>, where <nnn>are three unique alphanumeric characters. Use the convention
SPU<nnn>to avoid confusion with any Intergraph I/Forms.
I/Forms delivered by Intergraph may be used as examples for customization.
buttons (automatic):
pipe support data selection key =4092
help selection
key: 456
gadget number: 995
button: automatic
form size selection
key: 403
gadget number: 997
button: automatic
PDS Eden for Pipe Supports March 2007
156
exit selection
key: 4001
gadget number: 998
button: manual
accept selection
key: 4002
gadget number: 999
button: manual
message area a for messages
gadget number: 251
characters: 40
lines deep: 3
edit mode: review only
font size: 12
message area b for active segment data display
gadget number: 254
characters: 40
lines deep: 3
edit mode: review only
font size: 12
material description display
gadget number: 150
characters: 80
lines deep: 3
edit mode: review only
font size: 12
157
input fields
Dimension_1 gadget =121
Dimension_2 gadget =122
Dimension_3 gadget =123
Dimension_4 gadget =124
Dimension_5 gadget =125
Dimension_6 gadget =126
Dimension_7 gadget =127
Dimension_8 gadget =128
Dimension_9 gadget =129
Dimension_10 gadget =130
Dimension_11 gadget =131
Dimension_12 gadget =132
Dimension_13 gadget =133
Dimension_14 gadget =134
Dimension_15 gadget =135
Dimension_16 gadget =136
Dimension_17 gadget =137
Dimension_18 gadget =138
Dimension_19 gadget =139
Dimension_20 gadget =140
Dimension_1 & iso dwg dimension A gadget =141
Dimension_2 & iso dwg dimension B gadget =142
Dimension_3 & iso dwg dimension C gadget =143
Dimension_4 & iso dwg dimension D gadget =144
Dimension_5 & iso dwg dimension E gadget =145
isometric drawing dimension A gadget =161
isometric drawing dimension B gadget =162
isometric drawing dimension C gadget =163
isometric drawing dimension D gadget =164
isometric drawing dimension E gadget =165
pipe support number gadget =51
commodity code gadget =55
weight gadget =68
fabrication orientation gadget =84
details for shop gadget =82
details for field gadget =83
Note: Gadgets 121 through 140 in the previous list are input fields that pass dimensions
into Eden only. Gadgets 141 through 145 pass the dimensions into Eden and
pdtable_80. Gadgets 161 through 165 pass dimensions only into pdtable_80 in the
database.
PDS Eden for Pipe Supports March 2007
158
All input fields should be sequenced and must have the following characteristics. The
settings for editing options in the Form Builder should be as follows.
change mode
not required
echo input
replace text mode
notify by line
The characteristics form in the Form Builder should have the following settings:
notify upon completion >off (NOT the default)
notify upon initial >off

159
Index
DBACCESS, 152
forms
creating, 152
customizing, 154
DBACCESS, 152
gadgets, 154
pipe supports, 154
using, 152
global variables, 149
pipe supports
forms, 154
Place COG primitive, 151
primitives
Place COG, 151
using forms, 152
variables
global, 149

PDS Eden for Pipe Supports March 2007
160

Вам также может понравиться