Eden Supp

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

description

FREE

Transcript of Eden Supp

Page 1: Eden Supp

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

Page 2: Eden Supp

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.

Page 3: Eden Supp

If You Need Assistance________________

If You Need Assistance

Intergraph Online

Our web site brings you fast, convenient, up-to-the-minute information about Intergraph’sproducts, 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 tohttp://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 athttp://www.intergraph.com.

Intergraph Directory

The following numbers are only valid in the United States unless otherwise indicated. If youare 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 & Offshore300 Intergraph WayMadison, Alabama 35758U.S.A.

You can also reach us by electronic mail at [email protected].

3

Page 4: Eden Supp

________________

Documentation Contacts

We are constantly working on updates and improvements to the documents and othereducational media. If you have any suggestions on where we can improve the documentationor where you think more information is needed, let us know. You can reach us by:

Mail Intergraph Process, Power & OffshoreDocumentation Manager300 Intergraph WayMadison, AL 35758

4

Page 5: Eden Supp

Table of Contents________________

Table of Contents

If You Need Assistance ........................................................................................................ 3Intergraph Directory ............................................................................................................. 3

General Conventions .................................................................................................................... 9

Keyboard Conventions ......................................................................................................... 10Terminology ......................................................................................................................... 11

1. The Eden Basics ........................................................................................................................... 13

Pipe Support Symbol Processor ................................................................................................... 14Tutorial Definition Table ............................................................................................................. 17Forms Interface ............................................................................................................................ 21

2. Eden Language Structure ............................................................................................................. 23

Beginning Statements .................................................................................................................. 24Ending Statements ....................................................................................................................... 24

Begin ..................................................................................................................................... 25Begin EQP Category ............................................................................................................. 27

Variables ...................................................................................................................................... 29Common Keywords ..................................................................................................................... 35Comments .................................................................................................................................... 37Operators ...................................................................................................................................... 38Expressions .................................................................................................................................. 40Functions ...................................................................................................................................... 43Primitives ..................................................................................................................................... 44

Load Spec Data ..................................................................................................................... 45Draw Section Member .......................................................................................................... 46Place Connect Point .............................................................................................................. 47Prompt For Orientation ......................................................................................................... 48Load Section Data ................................................................................................................. 49Convert NPD to Subunits ..................................................................................................... 50Define Active Orientation ..................................................................................................... 51Draw Cone ............................................................................................................................ 53Draw Cylinder ...................................................................................................................... 54Draw Eccentric Cone ............................................................................................................ 55Draw Projected Rectangle .................................................................................................... 56Draw Projected Triangle ....................................................................................................... 58Draw Semi-Ellipsoid ............................................................................................................ 60Draw Sphere ......................................................................................................................... 61Draw Torus ........................................................................................................................... 62

5

Page 6: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Abort ..................................................................................................................................... 63Convert Unit ......................................................................................................................... 64Define Active Point .............................................................................................................. 65Define Orientation By Points ................................................................................................ 66Define Point .......................................................................................................................... 67Display Message ................................................................................................................... 68Display Tutorial .................................................................................................................... 69Draw Arc ............................................................................................................................... 71Draw Complex Surface ......................................................................................................... 72Draw Con Prism ................................................................................................................... 75Draw Curve ........................................................................................................................... 76Draw Ecc Prism .................................................................................................................... 77Draw Ecc Transitional Element ............................................................................................ 79Draw Ellipse ......................................................................................................................... 80Draw Line ............................................................................................................................. 81Draw Line String .................................................................................................................. 82Draw Proj Hexagon .............................................................................................................. 83Draw Proj Octagon ............................................................................................................... 85Draw Proj Shape ................................................................................................................... 87Draw Rectangular Torus ....................................................................................................... 88Draw Revolved Shape .......................................................................................................... 89Draw Shape ........................................................................................................................... 91Draw Transitional Element ................................................................................................... 92Get Arc Points ....................................................................................................................... 93Get Arc Size .......................................................................................................................... 94Get Date ................................................................................................................................ 95Get Line Size ........................................................................................................................ 96Get Point ............................................................................................................................... 97Move Along Arc ................................................................................................................... 99Move Along Axis ................................................................................................................. 100Move Along Line .................................................................................................................. 101Move By Distance ................................................................................................................ 102Move Data ............................................................................................................................ 103Place COG ............................................................................................................................ 104Position Cursor ..................................................................................................................... 105Put Field ................................................................................................................................ 106Read Table ............................................................................................................................ 107Rotate Orientation ................................................................................................................. 109Start Complex Shape ............................................................................................................ 110Stop Complex Shape ............................................................................................................. 111Store Orientation ................................................................................................................... 112Support User Function .......................................................................................................... 113

User Function FLAT_OVAL_PRISM .......................................................................... 114User Function FLAT_OVAL_TOR .............................................................................. 115User Function FLAT_OVAL_SEG_TOR1 ................................................................... 116User Function FLAT_OVAL_SEG_TOR2 ................................................................... 117User Function ROUND_SEG_TOR1 ............................................................................ 118User Function ROUND_SEG_TOR2 ............................................................................ 119User Function RECT_SEG_TOR .................................................................................. 120

6

Page 7: Eden Supp

Table of Contents________________

User Function RECT_FLAT_OVAL ............................................................................ 121User Function ROUND_RECT ..................................................................................... 122

3. Defining Symbols ........................................................................................................................ 123

4. Creating a New Pipe Support ....................................................................................................... 125

Eden Setup ................................................................................................................................... 125

Reference Database Management Data ................................................................................ 129Default Project Control Data ................................................................................................ 132

Glossary ............................................................................................................................................... 135

Index .................................................................................................................................................... 143

7

Page 8: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

8

Page 9: Eden Supp

Table of Contents________________

General Conventions

This document contains many visual cues to help you understand the meaning of certainwords or phrases. The use of different fonts for different types of information allows you toscan the document for key concepts or commands. Symbols help abbreviate and identifycommonly used words, phrases, or groups of related information.

Typefaces

Italic Indicates a system response, which is an explanation of what the software isdoing. For example,

The text is placed in the viewing plane.

Bold Indicates a command name, parameter name, or dialog box title. Commandpaths 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 bythe user. For example,

Select first segment of alignment

Bold TypewriterIndicates what you should literally type in. For example,

Key in original.dat to load the ASCII file.

Normal TypewriterIndicates an actual file or directory name. For example,

The ASCII report is stored in the layout.rpt file.

9

Page 10: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Symbols

This document uses the following symbols to represent mouse buttons and to identify specialinformation:

<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 isdoing 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 theexercises.

Keyboard Conventions

The following list outlines the abbreviations this document uses for keyboard keys anddescribes how to use them in combination. You can make some menu selections through theuse of keyboard accelerators, which map menu selections to key combinations.

ALT Alternate keyCTRL Control keyDEL Delete keyENTER Enter keyESC Escape key

CTRL+z To hold down the Control key and press Z.ESC,k To press the Escape key, then K.

10

Page 11: Eden Supp

Table of Contents________________

Terminology

Click To use a mouse or key combination to pick an item that begins anaction. For example,

Click Apply to save the changes.

Select To mark an item by highlighting it with key combinations or by pickingit with your cursor. Selecting does not initiate an action. Afterselecting an item, you click the action you want to affect the item. Forexample,

Select the file original.dat from the list box, then click Delete toremove it from the directory.

In addition, you would select items to define parameters, such asselecting toggle buttons. This also applies to selecting graphicelements 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 designfile. If you are using the CLIX operating system, you tentative-selectby double-clicking with a mouse or pressing <T> on a hand-heldcursor. If you are using the Windows NT operating system, youtentative-select by pressing a left-button, right-button chord.

Double-click To select and execute a command by clicking the mouse or hand-heldcursor button twice in rapid succession. This term implies that you areclicking 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 orhand-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 thedefault action.

In a dialog box, pressing TAB after keying in data willenter the data and move the cursor to the next field.

11

Page 12: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

12

Page 13: Eden Supp

1.Basics

The Eden Basics________________

1. The Eden Basics

Eden is a high-level symbol definition language modeled on the FORTRAN programming language. It allowsyou 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 iteasiest for you to read. While you do not need a programming background to write Eden programs, anyprogramming experience is highly recommended.

Most of the symbol definition functions are built into Eden’s command structure. This high-level commandstructure makes it easier to share code among several different symbol definitions.

Eden is flexible enough to allow you to design codes specific to your company’s needs, yet offers predefinedsubroutines, 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 (firstend) 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

Page 14: Eden Supp

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 thatactivate 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 Edenmodules 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 = 0tutname = ’CBA’Cstring [29] = Support_commodity_nameCall Get_Date ( Cstring [38] ) ! display dateangle = 45.0

call Convert_NPD_to_Subunits ( Nom_Pipe_D, dia )If ( dia .LE. 14 ) then

overhang = 9.0else

overhang = dia/2 + 2endif

If ( Support_commodity_name .EQ. ’CBB’ ) thenlen = Pipe_to_Steel_Distance + overhang + 6.0

elseIf ( Support_commodity_name .EQ. ’CBD’ ) then

len = Pipe_to_Steel_Distance + overhang + 21.25else

len = Pipe_to_Steel_Distance + overhangendif

endif

Do while ( exit .EQ. 0 )Call Display_Tutorial ( tutname )

If ( LAST_INP_TYPE .EQ. USER_KEYIN ) thenIf ( Support_commodity_name .EQ. ’CBC’ .OR. Support_commodity_name .EQ. ’CBD’ ) then

Call Display_message ( ’Concrete Strength Should Be 3000 PSI’, 48 )endifIf ( LAST_INP_NUM .EQ. 46 ) then ! user keyin Load

Call Display_message ( ’ ’, 48 ) ! Clear message fieldCall User_function ( ’CB_ITEM_TYPE’ ) ! User function to look up item typeIf ( Dimension[99] .EQ. 1 ) then

len = Dimension[5]SUPPORT_SEQUENCE_NUMBER = 1Call Put_field ( Support_Item_Key0, 25 )Call Load_Spec_Data ( Support_commodity_name, NOM_PIPE_D, Support_Item_Key0,

14

Page 15: Eden Supp

1.Basics

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 )

elseCall Display_message ( ’Entry not in spec’, 48 )

endifelse

Call Display_message ( ’Moment Criteria not satisfied’, 48 )Call Position_cursor ( 47 )

endifendif

If ( LAST_INP_NUM .EQ. 26 ) thenCall Put_field ( len, 46 )

endifendif

If ( LAST_INP_TYPE .NE. application_cmd .AND. LAST_INP_TYPE .NE. user_keyin ) thenIf ( Dimension[99] .NE. 0 ) then

exit = 1endif

endifEnddo

! Define PLACEMENT

Call Place_connect_point ( CP1 )Offset = 0.5 * PIPE_ODCall 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 = 2Call 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 )

STOPEND

15

Page 16: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

16

Page 17: Eden Supp

1.Basics

Tutorial Definition Table________________

Tutorial Definition Table

You can create or modify tutorial definition tables using an ASCII editor. The first line in a tutorial definitiontable 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 valuesinclude:

1 = linear dimension2 = angular dimension3 = integer (no units)7 = support entity database attribute9 = field to receive values for CSTRING_x variables

3. number a table data entry which the system interprets differently for each datatype:

For data types 1, 2, and 3, number is a value that can range from 1 to100 defining the global variable DIMENSION_n, which holds thefield’s input. For example, if number is set to 10 in the table, thenany input into the field is placed by the software intoDIMENSION_10. The symbol can then refer to DIMENSION_10and use it in any of its calculations.

For data type 7, number defines the attribute number in theappropriate 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 3806 , iso_support_type_b , short , standard note 3807 , iso_support_type_c , short , standard note 3808 , iso_support_type_d , short , standard note 3809 , 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 36514 , fabrication_cat , short , standard note 18015 , weight , double , standard note 1028 (units)16 , construction_stat , short , standard note 13017 , hold_status , short , standard note 5018 , standard_note_no , short , standard note 49919 , iso_dwg_index_no , integer

17

Page 18: Eden Supp

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 , double24 , isometric_dim_b , double25 , isometric_dim_c , double26 , isometric_dim_d , double27 , isometric_dim_e , double28 , trans_rigidity_x , double29 , trans_rigidity_y , double30 , trans_rigidity_z , double31 , rot_rigidity_x , double32 , rot_rigidity_y , double33 , rot_rigidity_z , double34 , spring_gap_length , double35 , spring_gap_direct , short36 , number_of_springs , short37 , last_placed_date , integer38 , inspection_key , short39 , mark_number , character(80)40 , group_id , integer41 , gang_id , integer42 , material_grade , short , standard note 14543 , weld_code , short44 , material_index , character(16)45 , operating_load , double46 , installed_load , double47 , hydrostatic_load , double48 , total_movement_1 , double , in subunits - distance attribute49 , total_movement_2 , double , in subunits - distance attribute50 , 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 thecomponent is placed.

For data type 9, number specifies the CSTRING variable to receive thevalue.

4. attributes an entry that describes the input field itself. The available values forthis item include:

1 - user input is optional.

2 - user input is required.

3 - user input is optional but causes return to the symbol. Thistype of field has also been called a terminated key-in field.Refer to the DISPLAY_TUTORIAL primitive for moreinformation on how to handle these fields from the symbol.

4 - user input is required but causes return to the symbol. Thisis also a terminated key-in field.

18

Page 19: Eden Supp

1.Basics

Tutorial Definition Table________________

Example:

A tutorial has a field for which the attribute entry in the tutorialdefinition table contains the number two. You are not allowed to selectthe ACCEPT field to exit from the tutorial until you have provided avalid input for the field.

5. default an entry allowing you to define a default for a particular tutorial inputfield. The entry can take on several forms. All of the expressionsoutlined below must be surrounded by single quotes in the tutorialdefinition 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 defaultfor this field. Note that user-defined field numbers can rangefrom 1 to 200. (System-defined fields range from 201 to 256and may not appear in default expressions.) Example: F23

Dxxx- Use the contents of DIMENSION_xxx as the default for thisfield. There is no practical limit on the number of tutorials thata symbol can activate. Therefore, any calculations that weremade before the symbol definition activated the current tutorialcan 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 distancesare assumed to be in English subunits (inches). If the default isa metric constant, then the constant should be given a suffix ofM. Example: 125M

expr- Combine any of the above three default types to form a validarithmetic expression. Valid operators are +, -, *, /, and ˆ. Useparentheses to alter order of evaluation. An expression is notevaluated until all fields are defined. Example: (F1+F2)/2+30.This expression is not computed until both fields 1 and 2 aredefined.

Default expressions are currently limited to 20 characters in length.

Example:

’’’CB’’’ - default for a support item name field

19

Page 20: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Example:

’F1/2+10’ - use the first input to field 1 divided by 2 plus 10 inches asthe default.

6. name defines an alphanumeric name for the field which will be used infuture software releases for reporting and alphanumeric placement ofparametrics. The field name can be a maximum of 10 characters inlength.

The gadget numbers 1-10 are identified as follows:

1 = 9512 = 9523 = 9534 = 9545 = 9556 = 9567 = 9578 = 9589 = 95910 = 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), 1integer input (row 8), 3 fields for CSTRING_x variables (rows 3, 4, and 9), and 3 fields for support entitydatabase 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 fieldis placed in variable DIMENSION_5.

Field 1 collects your support ID (support entity, attribute number 2).

20

Page 21: Eden Supp

1.Basics

Forms Interface________________

Forms Interface

Forms in pipe support modeling serve to collect input via key-in fields or command buttons. They also providefeedback information to the user through message fields.

Input fields and application commands have unique identification numbers. These numbers are used with thetutorial definition table (TDF) to communicate to the software the use for each field or command. The dataentered through the forms serves as the input that defines the values of the global variables used by the symbolprocessor. When a new support item is defined through Eden, a form has to be created to define thecomponent’s parameters. DBAccess is used to build forms.

21

Page 22: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

22

Page 23: Eden Supp

2.Stru

cture

Eden Language Structure________________

2. Eden Language Structure

Eden is similar to the FORTRAN programming language. Therefore, the general rules for evaluatingexpressions 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 thesymbol (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

Page 24: Eden Supp

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 allupper 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 inthe symbol and subsymbol processor include:

StopEnd

Ending statements in the user functions include:

ReturnEnd

24

Page 25: Eden Supp

2.Stru

cture

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. Allowablecategory keywords for each class of graphics include:

Regular equipment graphics

EQUIPMENT This is executed at the beginning of symbol execution. It isneeded if you have placed some other category and want toresume equipment graphics.

Interference envelope graphics

ENVELOPE_MAINTENANCE_HARDENVELOPE_MAINTENANCE_SOFT

ENVELOPE_ACCESS_HARDENVELOPE_ACCESS_SOFT

ENVELOPE_SAFETY_HARDENVELOPE_SAFETY_SOFT

ENVELOPE_CONSTRUCTION_HARDENVELOPE_CONSTRUCTION_SOFT

2D footprint graphics

SHADOW

Light steel graphics

LADDERPLATFORMHANDRAILMISCELLANEOUS

25

Page 26: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Holes

HOLENOHOLE

The keywords HOLE and NOHOLE are different from other keywordsin that they do not represent a separate category of graphics. You caninclude Begin(HOLE) within another Begin category. A Begin(HOLE)remains in effect across other Begin calls until a Begin(NOHOLE) isreached. Hole graphics are given the level and symbology of holes.

Surface Type

SOLIDSURFACE

The keywords SOLID and SURFACE set the active surface type ofsubsequent graphics. The default is SOLID. This results in cappedsurfaces. With the SURFACE keyword, you can place uncappedshapes such as open-ended cylinders.

Except for nozzles and placepoints, all graphics assume the level and symbology of the last executed Beginstatement. Placepoints always belong to the equipment/parametric cell. If your symbol executes noEQUIPMENT category graphics, an otherwise empty parametric equipment cell is created for housing theplacepoints.

A Begin statement can repeat itself any number of times. After execution, it becomes the active category forsubsequent element placement calls. A (non-EQUIPMENT) Begin statement must be followed by at least onecall to generate graphic elements; otherwise that Begin statement will have no effect on symbol graphics.

26

Page 27: Eden Supp

2.Stru

cture

Begin EQP Category________________

Begin EQP Category

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

Syntax

Begin_EQP_Category (subcategory)

Options

subcategory is a character string indicating the subcategory. There are presently 20subcategories available. A valid subcategory must be one that has beendefined via the Project Administrator Module. Alternatively, you can useone of the following:

’EQP_CATEGORY_1’,’EQP_CATEGORY_2’,......’EQP_CATEGORY_20’

The argument is checked only when you place the symbol and not duringcompilation.

Restrictions

You can use this call only within the Begin (EQUIPMENT) call. Also, you cannot make this call when DrawComplex Surface or Start Complex Shape is in progress. By default, the Begin (EQUIPMENT) and BeginEQP 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 nextCall Begin_EQP_Category (’PUMPS’) ! ’PUMPS’ must be a valid

! category for projectCall Draw_Complex_Surface (4, 0)

.. ! pump graphics

..Call Begin (HOLE) ! HOLE is allowed anywhere

..

27

Page 28: Eden Supp

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

Page 29: Eden Supp

2.Stru

cture

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 thecontext 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 youuse 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 istruncated.

A variable used in a logical expression evaluates to TRUE when the value of the variable is 1 and 0 whenthe logical value is FALSE.

Variables that hold values representing distances are assumed to be in subunits. A variable containing thevalue 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 onlywhen 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 anull value for the misspelled variable at component placement time.

The Eden language refers to constants as local variables. Both character strings and numeric constants arevalid; however, character string constants must be surrounded by single quotes. In most cases, characterstrings and constants are case sensitive. Thus, a and A are interpreted differently.

Examples:

diameter 13.25shell_thickness ’A TEXT STRING’projection_1 radius [2]25

29

Page 30: Eden Supp

PDS Eden for Pipe Supports - April 2002________________ Only in Pipe Support and Equipment Modeling can you declare local variable types. The variable types defaultto either CHARACTER or REAL depending on the context. To override this default, you can use a localvariable type declaration statement anywhere before the variable(s) is (are) actually referenced. Variable typesINT2, 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 rangingfrom -32767 to 32767.

Int2 aInt2 B, C

Example:

In the example below, variable d is declared as a type REAL, capable of holding decimal fractional values. Thisis the usual default type for numeric variables. However, explicit typing to this category may be necessary todeclare local arrays.

R8 d

As a recommendation, all declaration statements should be placed at the very beginning of the symbol code andnot interspersed among statements to be executed during symbol placement. This improves programreadability.

Also in Pipe Support and Equipment Modeling, referencing a variable using subscripts is extremely useful whencoding repetitive statements such as the body of a loop. Prior to use, variables must appear in a type declarationin 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 elementsare referenced as D[1], D[2], D[3], D[4], and D[5]. You can also use a variable or an arithmetic expression forindexing, 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 androundoffs 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

Page 31: Eden Supp

2.Stru

cture

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-coordinatesPT [2], PT [5], PT [8] PT [11] are y-coordinatesPT [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 arrayis 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 PipeSupport Modeling

Global variables are system-defined names allowing you to refer to them at any subroutine level. Morespecifically, you can use them for passing values between subroutine levels or for communicating input valuesto the symbol. The following list shows the global variables common to all Eden applications. Refer to theapplication-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 inputparameters for table lookups. (Input_11 through Input_20 are specifically designed foruser 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 thetable lookup are stored. (Output_11 through Output_20 are specifically designed for userfunction return arguments in equipment and pipe support modeling.)

Dimension_n (Dimension_1 through Dimension_100 for equipment and pipe supports, Dimension_1through Dimension_20 for piping) General purpose variables used for communicatinginput to the symbol logic. You can also use these variables for passing values betweensubroutines or simply for local storage. (Dimension_20 is for angle; Dimension_1 throughDimension_19 is for linear piping.)

Pr_Rating_n Variable containing the current item pressure rating value.

31

Page 32: Eden Supp

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 fromcoded units to subunits.

Gen_Type_n Variable containing the current item end preparation generic type (BLT, MAL, FEM). Thisis a read-only variable.

Term_Type_n Variable containing the current item end preparation termination type (21, 22, and 23 willfall 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 andis a function of TABLE_SUFFIX.

Global Variables Common to Equipment and Pipe SupportModeling

The following list contains global variables common to Equipment and Pipe Support Modeling. For moreinformation on global variables, refer to the System-defined Subroutines section and the Eden User Interfacesection.

Point_nPoint [n]

(Point_1 - Point_24) Names representing points that have beendefined 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 ofdimension tables. This is a read-only variable.

Cstring_n (Cstring_1 through Cstring_40) Names representing globalcharacter variables. Each name can contain a maximum of 50characters.

Last_Inp_TypeLast_Inp_Num

Refer to the Dsplay_Tutorial primitive in the Eden Primitivessection.

NPD_Unit_Type Contains the nominal piping diameter system of units defined forthe model file. You can test this variable against the keywordsENGLISH 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 globalvariables, 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

Page 33: Eden Supp

2.Stru

cture

Variables________________ Support_Sequence_Number Variable defining the value of attribute 3 in PDTABLE_243.

This variable must be set before using the Load Spec Datafunction.

Support_Material_Length This variable sets the value of the PDTABLE_80 attributespecified in attribute 5 of PDTABLE_243(Dimension_Att_No). This variable is used in defining thelength of the support.

Existing_Steel_Flange_Width Variable containing the existing structural member’s flangewidth.

Support_Commodity_Name Variable containing the value of attribute 3 fromPDTABLE_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 beforeusing the Load_Spec_Data function.

Support_Item_Key1 Must be set to match attribute 9 in PDTABLE_242 beforeusing the Load_Spec_Data function.

Support_Item_Key2 Must be set to match attribute 10 in PDTABLE_242 beforeusing the Load_Spec_Data function.

Support_Mark_Number This variable sets the Mark Number attribute inPDTABLE_80.

Support_Materials_Grade Places the value of the pipe’s material grade in attribute 42 inPDTABLE_80.

Insulation_Thickness The insulation thickness of the selected pipe.

Existing_Steel_Point A point specified on the existing structural member. You canuse this global variable to move to this point while drawinggraphics.

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 structuralsteel selected.

33

Page 34: Eden Supp

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 canonly 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 theconvention 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 variablename even though the index value is not a variable. This is known as subscripted global variables. Forexample, 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 avariable or as an expression. For example, Dimension [10] and Point [3] are subscripted global variables whoseindex values are 10 and 3, respectively. They are equivalent to Dimension_10 and Point_3. Subscripted globalvariables are useful when using loops. Below is a list comparing the two methods of accessing global variableswith 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

Page 35: Eden Supp

2.Stru

cture

Common Keywords________________

Common Keywords

Eden uses keywords for labeling specific values or groups of values. All keywords except TRUE and FALSEcan 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.FEMALEBOLTED

PRIMARYSECONDARYNORMAL

Keywords used to identify or refer to individual refresh tee axes.

ENGLISHMETRIC

Names used to define the units of a constant used in the symbol definition.

ACTIVE_POINTPOINT_0

Name representing the location of the active point in the local coordinate systemdefined by the symbol. These names can be used interchangeably.

EAST Keywords used to define directions in the local coordinate system defined by thesymbol definition.

WESTNORTHSOUTHUPDOWN

SUPPORT_SYMBOL_PROCESSOR Module type of all pipe support modeling Eden definitions. It is used in the firststatement of a symbol definition.

ENG_COMM_LIBEQP_TABLES

Names representing the different libraries that can be made active in a symboldefinition.

RETURNSTOP

Terminates module execution normally. If it encounters either a RETURN or STOP ina 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 ENDstatement, an implicit STOP is executed.

There are other keywords primarily used in specific subroutine calls. These keywords can be found in thesubsections that describe their associated primitives. Keywords APPLICATION_CMD and USER_KEYIN aredescribed under the DISPLAY_TUTORIAL primitive. Keywords such as PT_BORE and COG_TYPE areexplained under the GET_POINT and PLACE_COG primitives respectively.

35

Page 36: Eden Supp

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 statementis:

#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 itto upper case. You can enter any number of complete type labels that fit in a line. Multiple TYPE statementsare allowed. A TYPE statement can appear anywhere in the source code; however, the # character must appearin 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 leftjustified by the compiler. When more than one DESCRIPTION statement appears, only the last statement isused. The # character must appear in column one.

36

Page 37: Eden Supp

2.Stru

cture

Comments________________

Comments

When you place an exclamation point (!) anywhere in an Equipment Modeling source line, the remainder of thatline 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 ofthat line is treated as a comment.

Example:

Call place_connect_point (CP1) ! Places Connect point 1

37

Page 38: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Operators

Operators are used in conjunction with variables to form expressions. As in FORTRAN, operators can beanyone of three types:

1. Arithmetic

2. Relational

3. Logical

Arithmetic Operators

Arithmetic operators are used to form arithmetic expressions. These operators follow the mathematicalconventions. 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. Theconcatenation 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 anunderbar (_) 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), thenconverted to character strings and finally joined together with the underbar character. The concatenationoperation is generally used to form messages and character field outputs.

38

Page 39: Eden Supp

2.Stru

cture

Operators________________

Relational Operators

Relational operators are used to form relational expressions that test the value of an Eden expression or establishconditions 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 twotypes of operands for a given operation produces computing errors.

In character relational expressions, less than means precedes in the ASCII collating sequence, and greater thanmeans 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 withspaces until the lengths are equal.

’PQRSTU’ .EQ. ’PQR ’

Logical Operators

Logical operators are used to combine relational expressions into more complex logical expressions. Validlogical operators include:

.OR. logical or

.AND. logical and

Periods must appear before and after the expression.

39

Page 40: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Expressions

Expressions are variables, constants, and operators combined to make statements. The format of most Edenexpressions is the same as in FORTRAN. Valid expressions include:

Replacement simple arithmetic replacementCall executes primitives or subroutinesDo while execute loopIndexed Do execute loopIf - then - else conditional execution

For every IF statement, there must be an ENDIF statement to end the expression. You can nestup 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 ofcalculation.

Replacement Statements

Replacement statements are used to set variables or perform calculations. The following list illustrates thevarious Replacement statements:

thickness = 25.vessel_od = DIMENSION_1test = test + 1tutor_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 replacedby 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 PTbuffer, the x-coordinate being assigned to pt [7], y to pt [8], and so forth. Likewise, in the last statement, thePOINT_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

Page 41: Eden Supp

2.Stru

cture

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 alogical value (either true or false). The body of the Do While statement will be repeatedly executed as long asthe logical expression remains true.

Example:

The following Do While loop places four cylinders end to end. The pretested loop condition fails on the fifthtry (if i equals 4), and control transfers to the message display routine.

i = 0do while (i .LT. 4)

i = i + 1Call Draw_Cylinder_With_Capped_Ends (diam, leng)

enddoCall 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 isdetermined by an initial, a terminal, and an incremental parameter of a control variable. The syntax for theIndexed Do statement is:

do V = v1, v2, v3...enddo

where

41

Page 42: Eden Supp

PDS Eden for Pipe Supports - April 2002________________ V is a control variable (non-string type)

v1v2v3

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 iscomplete, and the value 3 is checked against the terminator 20. The iteration continues as long as I is less thanor 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 syntaxis the same as FORTRAN syntax.

if (condition) then...

else...

endif

Example:

if (DIMENSION_1 .gt. 24.) thenthk = thk + .125

elsethk = thk + .250

endif

An If statement of the form if (condition) is not valid. In Eden, all If statements must be of theform If (condition) then. The else statement is optional.

42

Page 43: Eden Supp

2.Stru

cture

Functions________________

Functions

Eden provides several functions for performing common mathematical operations. These functions can be usedwithin replacement statements.

The following functions must contain the parentheses.

DSQRT () square rootDABS () absolute valueDSINR () sine of an angle in radiansDCOSR () cosine of an angle in radiansDTANR () tangent of angle in radiansDSIND () sine of an angle in degreesDCOSD () cosine of an angle in degreesDTAND () tangent of an angle in degrees

DASINR () arcsine returned in radiansDACOSR () arccosine returned in radiansDATANR () arctangent returned in radiansDASIND () arcsine returned in degreesDACOSD () arccosine returned in degreesDATAND () 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

Page 44: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

Primitives

Primitives are system-defined routines that perform specific functions for symbol definition.

44

Page 45: Eden Supp

2.Stru

cture

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 pipe’s nominal piping diameter in subunits.

Support_Item_Key0 Value to be matched with item_key0 (column 7) inreference database table 242.

Support_Item_Key1 Value to be matched with item_key1 (column 8) inreference database table 242.

Support_Item_Key2 Value to be matched with item_key2 (column 9) inreference database table 242.

Support_Sequence_Number Value to be matched with column 3 in reference databasetable 243 along with the material_index variable fromreference database table 242.

Return_Value 1 = Spec entry was found for the specified criteria andloaded from the spec database.0 = Spec entry was not found for the specified criteria.

45

Page 46: Eden Supp

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 touse in placing the steel.

Support_Material_Length The project length of the steel member. This option must be set by the Edenmodule.

46

Page 47: Eden Supp

2.Stru

cture

Place Connect Point________________

Place Connect Point

The Place Connect Point primitive allows you to define the location and the orientation of a connect point andplace that point.

When you call Place Connect Point, the location of the active point is assigned to the connect point. You mustplace 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

Page 48: Eden Supp

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 1has been placed.

48

Page 49: Eden Supp

2.Stru

cture

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

Page 50: Eden Supp

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 asNPD 1/32 + 5000. Thus,

1 inch NPD is 5000 + 32 * 1 = 503220 inch NPD is 5000 + 32 * 20 = 5640

For Eden symbols in Piping that use imperial and metric files, hard coding the dimensions is notrecommended. A dimension entered as 5 inches and placed in an Imperial file is interpreted as 5inches. However, the same value placed in a Metric file is interpreted as 5 millimeters. Insteadof hard coding, load the dimensions in a table to allow the piping software to convert thedimensions to the correct values.

This primitive does not perform unit conversions. If American standard pipe sizes are being used in a Metricfile, 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 bethe 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 onNPDs require the input to be in encoded form.

50

Page 51: Eden Supp

2.Stru

cture

Define Active Orientation________________

Define Active Orientation

The Define Active Orientation primitive allows you to define the active orientation by specifying thedirections of the primary and secondary axes. The orientation is defined in the local coordinate system by thesymbol. 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 centerlinein terms of the connect point orientation (defined by the symbol’s connect point geometry) in order to placegraphic shapes.

Specific keywords are available for specifying either the primary axis or the secondary axis of the connectpoint’s orientation.

Syntax

Call Define_Active_Orientation (primary, secondary)

Options

primary Variable that defines the flow centerline or primary direction.

secondary Variable that defines the line perpendicular to the flow centerline or secondarydirection.

Valid keywords for the primary and secondary variables include:

EAST PRIMARYWEST SECONDARYNORTH NORMALSOUTHUPDOWN

If the initial active orientation for a symbol definition has the primary pointing east and thesecondary pointing north, the normal axis of the active orientation would be up. (Normal axiscan be found using the right-hand rule.)

51

Page 52: Eden Supp

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 pointdown, and the normal points out of the screen:

Call Define_Active_Orientation (WEST,DOWN)

52

Page 53: Eden Supp

2.Stru

cture

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 ata location computed by the system given the input length along the primary axis. You must define thediameters 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 coneB = DIMENSION_2 ! diameter at active ptC = DIMENSION_3 ! diameter at opposite endCall Draw_Cone (A, B, C)stopend

53

Page 54: Eden Supp

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 secondend is at a location computed by the system along the primary axis. You must specify the diameter and thelength 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 ! lengthB = DIMENSION_2 ! diameterCall Draw_Cylinder (A, B)stopend

If cyl_len is positive, a cylinder of the specified length is drawn. If cyl_len is zero, nothinghappens. If cyl_len is negative, the active point is moved the specified negative distance, but thecylinder is not drawn.

54

Page 55: Eden Supp

2.Stru

cture

Draw Eccentric Cone________________

Draw Eccentric Cone

The Draw Eccentric Cone primitive allows you to place an eccentric truncated cone. The first end is at thecurrent active point. The second end is at a location the system computes by moving from the current activepoint along the current flow centerline by the length of the cone and along the secondary axis by the negative ofthe 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 coneendpoints 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 ! lengthB = DIMENSION_2 ! diameter at active ptC = DIMENSION_3 ! diameter at opposite endoffset = (C - B) * 0.5 ! offsetCall Draw_Eccentric_Cone (A, offset, B, C)stopend

55

Page 56: Eden Supp

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 thedirection 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 activeorientation.

length2 Length of the rectangle side (B) parallel to the normal axis of the activeorientation.

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 projectionB = DIMENSION_2 ! length of side parallel to normalC = DIMENSION_3 ! length of side parallel to secondary

56

Page 57: Eden Supp

2.Stru

cture

Draw Projected Rectangle________________ Call Draw_Proj_Rectangle (C, B, A)stopend

57

Page 58: Eden Supp

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 triangularcross-section. The current active point must be moved to the center of the cross-section. The primary axispoints in the direction of the projection, and the secondary axis points to the base of the triangle. You mustspecify 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 sideB = DIMENSION_2 ! length of baseC = DIMENSION_3 ! length of projection

58

Page 59: Eden Supp

2.Stru

cture

Draw Projected Triangle________________ angle = DIMENSION_4if (B .GT. 0) then

DIMENSION_4 = 0endifif (angle .GT. 0 .AND. B .EQ. 0) then

angle = angle * 0.5B = 2.0 * (A * DSIND(angle))

endifCall Draw_Proj_Triangle (A, B, C)stopend

59

Page 60: Eden Supp

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 currentactive 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 diameterB = DIMENSION_2 ! minor axis radiusCall Draw_Semi_Ellipsoid (A, B)stopend

60

Page 61: Eden Supp

2.Stru

cture

Draw Sphere________________

Draw Sphere

The Draw Sphere primitive allows you to place a sphere where the center of the sphere is at the current activepoint. 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

Page 62: Eden Supp

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 directionof the secondary axis using the bend radius, bend angle, and diameter you specify. This call changes the activeorientation.

The torus diameter must be greater than or equal to (≥) 1/32 inches, and the bend radius diameter must begreater 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 itscenterline.

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 diameterB = DIMENSION_2 ! torus bend radiusif (DIMENSION_3 .eq. 0) then

DIMENSION_3 = 90endifC = DIMENSION_3 ! bend angleCall Draw_Torus (B, C, A)stopend

62

Page 63: Eden Supp

2.Stru

cture

Abort________________

Abort

The Abort primitive allows you to terminate symbol execution without having to place graphics. It is similar tothe QUIT option available on symbol tutorials. When the system encounters an Abort call, it displays amessage indicating that the symbol execution has aborted.

Syntax

Call Abort (0)

63

Page 64: Eden Supp

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 ofunits. 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 unitsin 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 toEnglish or 254 if the unit type is set to Metric.

Call Convert_Unit (10, ENGLISH, length2)

64

Page 65: Eden Supp

2.Stru

cture

Define Active Point________________

Define Active Point

The Define Active Point primitive functions similarly to the Define Active Orientation primitive, but alsodefines the active point in the symbol’s local coordinate system.

Syntax

Call Define_Active_Point (point)

Options

point Is a keyword specifying a previously defined point. Valid values for pointinclude:

local point variablesglobal point variables

Restrictions

The initial position of the active point must be located at the symbol’s 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

Page 66: Eden Supp

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 knownpoints.

Syntax

Call Define_Orientation_By_Points (PT1, PT2, PT3)

Options

pt1 The active primary direction is computed using pt1 as the start point. Global orlocal point.

pt2 The active primary direction is computed using pt2 as the end point. Global orlocal point.

pt3 The active secondary direction is computed using pt3 as the end point. The startpoint is the intersection between the primary vector from pt1 and its perpendicularfrom 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 theactive secondary towards POINT_3 along a perpendicular of the primary:

Call Define_Orientation_By_Points (point [1], point [2], point [3])

66

Page 67: Eden Supp

2.Stru

cture

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 anda 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 orglobal point variables are valid values.

ref_point A keyword specifying the point to be saved or the point from which the newpoint is to be calculated. Valid values for ref_point include:

local point variableglobal point variable

delta_x The delta in the x or east direction of the symbol coordinate system from thereference point.

delta_y The delta in the y or north direction of the symbol coordinate system from thereference point.

delta_z The delta in the z or up direction of the symbol coordinate system from thereference point.

flag [optional] If supplied, the deltas are interpreted as offsets along the activeprimary, secondary, and normal respectively.

Examples

In this example, the current active point is saved in POINT_1. You can make POINT_1 the active pointagain 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

Page 68: Eden Supp

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 todisplayable characters for output. You can specify a message up to 50 charactersin 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, themessage 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 inputthrough 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

Page 69: Eden Supp

2.Stru

cture

Display Tutorial________________

Display Tutorial

The Display Tutorial primitive allows you to activate a tutorial and specify an optional tutorial definition filename.

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 namedefaults to the tutorial name itself. This argument allows you to activate the sametutorial with different TDF names and hence different global variables for eachactivation. 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 formseveral times per symbol execution. However, if a TDF name is used with several forms in themodify 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. Referto the Creating the Tutorial Definition Table section for creating these fields. When you select a terminatedapplication command or key-in field, the control returns to the symbol code, which can test specific globalvariables identifying the field number and its type. The global variable LAST_INP_TYPE has the type of themost recent terminated field selected. It can be tested against the following keywords for field types:

APPLICATION_CMD application command fieldUSER_KEYIN user key-in field

The global variable LAST_INP_NUM contains the number of the last terminated field selected.

69

Page 70: Eden Supp

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. Thefirst 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 itis already active.

If both tests fail, you must select ACCEPT (the control variable will be set to TRUE), forcing exit from theloop.

ACCEPTED = FALSEdo while (.not. ACCEPTED)Call Display_Tutorial (’TEST’)if (LAST_INP_TYPE .eq. APPLICATION_CMD) then ! application cmd

! ... fieldCall Put_Field (dimension [LAST_INP_NUM], 90)elseif (LAST_INP_TYPE .eq. USER_KEYIN) then

Call Put_Field (cstring [LAST_INP_NUM],100)else

ACCEPTED = TRUE ! get out of loopendifendifenddo

70

Page 71: Eden Supp

2.Stru

cture

Draw Arc________________

Draw Arc

The Draw Arc primitive allows you to place an arc. An arc may be considered a continuous segment of anellipse 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 localprimary.

semiminor Supplies the length of the semiminor axis and is oriented by the localsecondary.

start_angle Specifies the start point of the arc segment. The value range is -360.0to 360.0. Larger or smaller values are reduced to this range,remaindering by 360.0. Positive angles are measured by rotating theprimary into the secondary counterclockwise in a right-handedsystem.

sweep_angle specifies the span of the arc segment. The value range is -360.0 to360.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 arc’sangular position and not the distance of any of its points from thefoci.

Example

This call places an elliptical arc with major and minor axes of 40 and 20 units respectively. The primary axis isrotated 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 90degrees, MicroStation computes these angles differently. To convert your angle to the inputargument, use the following formula:

tan(microstation_angle) = (semimajor/semiminor) tan(your_angle)

71

Page 72: Eden Supp

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 projection8 - surface of revolution

Change Class/Symbology

Used to change the class/symbology of elements being placed within the surface. A negative symbol must beplaced in front of the first argument.

Syntax

Call Draw_Complex_Surface (_element_class, symbology)

72

Page 73: Eden Supp

2.Stru

cture

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) isset to:

0 - allows defaults to apply1 - apply line code only2 - apply line weight only4 - apply color only

Sum the above values to send in combinations. For example, (3) codeand 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) asper 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 specifiesthat each face is composed of 4 elements and that this is a surface of projection.

73

Page 74: Eden Supp

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 Surfacespecifies that rule lines (class=4) will be placed. The minus sign before the class argument is needed by thesystem 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 2Call 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 linesCall Draw_Line (point_1, point_5) ! place a rule lineCall Draw_Line (point_2, point_6) ! place a rule lineCall Draw_Line (point_3, point_7) ! place a rule lineCall Draw_Line (point_4, point_8) ! place a rule lineCall Draw_Complex_Surface (-99, 0) ! wrap it up

74

Page 75: Eden Supp

2.Stru

cture

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 aside of each end.

Whenever possible, use the Draw Proj Shape primitive for pipe supports rather than the DrawCon Prism primitive. Draw Con Prism does not draw the true shape when an envelope file iscreated 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 AB = DIMENSION_2 ! length of BC = DIMENSION_3 ! length of CD = DIMENSION_4 ! length of Dproj = DIMENSION_5 ! length of ECall Draw_Con_Prism (A, B, proj, C, D)stopend

75

Page 76: Eden Supp

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 storedin 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

Page 77: Eden Supp

2.Stru

cture

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. Theactive orientation primary axis orients the direction of projection. The secondary axis orients a side of each endas well as the offset direction.

Whenever possible, use the Draw Proj Shape primitive for pipe supports rather than the DrawEcc Prism primitive. Draw Ecc Prism does not draw the true shape when an envelope file iscreated 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 AB = DIMENSION_2 ! length of BC = DIMENSION_4 ! length of CD = DIMENSION_5 ! length of DE = DIMENSION_3 ! length of E

77

Page 78: Eden Supp

PDS Eden for Pipe Supports - April 2002________________ offset = (A - C) / 2.0 ! offsetCall Draw_Ecc_Prism (A, B, E, C, D, offset)stopend

78

Page 79: Eden Supp

2.Stru

cture

Draw Ecc Transitional Element________________

Draw Ecc Transitional Element

The Draw Ecc Transitional Element primitive allows you to place an eccentric transitional element by a pointin the center of either the rectangular or circular face. The active orientation primary axis orients the directionof 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 thecircular 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 AB = DIMENSION_2 ! length of BC = DIMENSION_3 ! length of CD = DIMENSION_4 / 2.0 ! length of Doffset = (A - D) / 2.0 ! offsetCall Draw_Ecc_Transitional_Element (A, B, C, D, offset)stopend

79

Page 80: Eden Supp

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 localprimary 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

Page 81: Eden Supp

2.Stru

cture

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

Page 82: Eden Supp

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 storedin 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

Page 83: Eden Supp

2.Stru

cture

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 thehexagonal 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 AD_in = DIMENSION_2 !D_out = DIMENSION_3 !D_side = DIMENSION_4 !if (D_side .GT. 0) then

DIMENSION_2 = 0DIMENSION_3 = 0

endifif (D_side .LE. 0) then

if (D_in .GT. 0) thenDIMENSION_3 = 0D_side = D_in * DTAND(30.0)

endifendifif (D_side .LE. 0) then

83

Page 84: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

if (D_out .GT. 0) thenD_side = D_out / 2DIMENSION_2 = 0

endifendifCall Draw_Proj_Hexagon (D_side, A)stopend

84

Page 85: Eden Supp

2.Stru

cture

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 activeorientation primary axis orients the direction of the projection. The secondary axis orients a flat side of theoctagonal 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 AD_in = DIMENSION_2 !D_out = DIMENSION_3 !D_side = DIMENSION_4 !if (D_side .GT. 0) then

DIMENSION_2 = 0DIMENSION_3 = 0

endifif (D_side .LE. 0) then

if (D_in .GT. 0) thenDIMENSION_3 = 0D_side = D_in * DTAND(22.5)

endifendifif (D_side .LE. 0) then

85

Page 86: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

if (D_out .GT. 0) thenD_side = D_out * DSIND (22.5)DIMENSION_2 = 0

endifendifCall Draw_Proj_Octagon (D_side, A)stopend

Call Draw_Proj_Octagon (12, 12)

86

Page 87: Eden Supp

2.Stru

cture

Draw Proj Shape________________

Draw Proj Shape

The Draw Proj Shape primitive allows you to place an arbitrary (planar) shape and project it by a givendistance. 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. Ifomitted, the vertices are assumed to be in the global POINT array withvertex 1 in point_1, vertex 2 in point_2, and so forth. Local or globalpoint 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 shape’s vertices are found in POINT_1 ... POINT_5. After placement, the active point isupdated from the face by which it was placed to the opposite face.

Call Draw_Proj_Shape ( 5, 10.0 )

87

Page 88: Eden Supp

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 rectangularend. The active orientation primary axis orients the direction of projection. The secondary axis points towardthe 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 theorigin.

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 AB = DIMENSION_2 ! length of BC = DIMENSION_3 ! length of CD = DIMENSION_4 ! Sweep angle of DCall Draw_Rectangular_Torus (C, D, A, B)stopend

88

Page 89: Eden Supp

2.Stru

cture

Draw Revolved Shape________________

Draw Revolved Shape

The Draw Revolved Shape primitive allows you to create a MicroStation surface of revolution by rotating anarc, 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 stringEL_SHAPE for planar shapeEL_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 thegenerator element which will split the revolved shape into two sections. Mustbe 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 theelement. If you are rotating an arc, this array must contain three points to definethe arc. The first point is the arc origin. The second point defines the length anddirection of the primary axis as measured from the arc origin. The third pointdefines 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 ofthe 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 linesare placed from the two end vertices only.

for arc: is the sweep angle of the arc segment. (For arcs, only two edge lines areplaced, one from each end point of the arc).

89

Page 90: Eden Supp

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 is120 inches. Only two instances of the arc will appear — one at 0 degrees, and another at 180 degrees(intermediate).

straight_flange = 24dia = 120dish_depth = dia/4Call Draw_Cylinder (straight_flange, dia)

point_1 = point_0 ! save arc centerCall Move_Along_Axis (dia/2, SECONDARY)point_2 = point_0 ! point for arc primarypoint_0 = point_1 ! for next move_alongCall Move_Along_Axis (dish_depth, PRIMARY)point_3 = point_0 ! define arc secondarytotal_sweep = 360arc_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 andsweep angles.

90

Page 91: Eden Supp

2.Stru

cture

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. Useglobal 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

Page 92: Eden Supp

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 thecenter of either the rectangular or circular face. The active orientation primary axis orients the projectiondirection. 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 alongthe 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

Page 93: Eden Supp

2.Stru

cture

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. Thesystem ignores the secondary length of the arc, assuming it to be identical to the primary. This call isspecifically 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 (inorder): 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 thisdefinition must be input. The call will work properly as long as the identified arc iscircular. The points are converted to the symbol (local) coordinate system before return.

93

Page 94: Eden Supp

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. Thesubroutine uses this argument to find the angular position or sweep of the arc segmentabout the center (first point). The center of the arc is then used with the FROM_PTargument to find trace radius.

from_pt An input identifying the starting point of measurement. It is also used to compute theradius of the circular arc. Global or local point.

to_pt An input identifying the end point of measurement. This point only establishes anANGULAR position on the arc determined from the first two arguments. Thus, it may ormay 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 thearc in ARC_DEFINITION. However, if a point is off the curve, the system will route theconnection so as to include the arc’s end nearer the off-point.

Example

In this example, the Get Point call forces a snap only – to an arc. On return, the arc data is obtained with thesecond call. The length of the arc is then computed by sending the third call (the start point (point [3]), the endpoint (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

Page 95: Eden Supp

2.Stru

cture

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

Page 96: Eden Supp

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 theprevious 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

Page 97: Eden Supp

2.Stru

cture

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 thefollowing 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 firstdatum point location, if it exists. Otherwise, it returns the place point ofthe 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 ofits first connect point.

PT_3DB A 2-view data button.

PT_ALL Contains the result obtained by adding all the above point types. Anypoint type can be removed from this mask by subtraction.

When forming the mask, remember to use a keyword only oncewhether adding or subtracting.

ret_pnt A global or local point variable containing (on return) the operator-selected point. Thedesign file coordinate system (global) point is transformed to the local coordinate system byusing the point and axes of alignment between the two systems. Therefore, the orientationand location of the symbol placepoint must be established prior to this call. Also, thealignment parameters (placepoint location, orientation, global active point, global activeorientation) must not be changed between Get Point calls. This can result in returned pointsnot 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 betested against the above keywords. It is optional only if subsequent arguments are omitted.

97

Page 98: Eden Supp

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 isoptional only if subsequent arguments are omitted. It can be tested against these keywords toidentify the type code:

EL_LINE line elementEL_LINESTR line stringEL_SHAPE shapeEL_ELLIPSE ellipseEL_ARC arcEL_PTSTR point stringEL_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 beremoved from the mask by subtraction.

When forming the mask, remember to use a keyword only once whether adding orsubtracting.

Example

The following code segment enables the symbol to obtain an arc or a line from the operator using snap orprecision 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

.

.endifelse ! it must be precision

.

.endif

98

Page 99: Eden Supp

2.Stru

cture

Move Along Arc________________

Move Along Arc

The Move Along Arc primitive returns a destination point (after traversing a specified distance along a givenarc) 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. Thesubroutine uses it to find the angular position or sweep of the arc segment about thecenter (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 thecircular arc. Global or local point.

to_pt An input to identify the measuring end point. This point only establishes an angularposition on the arc determined from the first two arguments. Therefore, it may or maynot 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 eitherfrom_pt or to_pt is off. The curve is given by the connecting segment from from_pt toto_pt through the arc’s end nearer the off-point.

Example

In the following example, the Get Point call forces the operator to snap only – to an arc. On return, the arcdefinition is obtained in point_2 ... point_5. The length of the arc is then computed by sending the third call thecenter (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 distancetraveled is one-half the arc’s 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

Page 100: Eden Supp

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 Axisallows 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 axisinclude:

PRIMARY NORTHSECONDARY SOUTHNORMAL UPEAST DOWNWEST

Example

In this example, the active point is moved 24 subunits in the secondary direction.

Call Move_Along_Axis (24., SECONDARY)

100

Page 101: Eden Supp

2.Stru

cture

Move Along Line________________

Move Along Line

The Move Along Line primitive returns a destination point given the direction of travel, a starting point, and adistance 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 pathof 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 pointbuffer.

Example

In the following example, the code fragment finds the midpoint of the line segment obtained with two GetPoint 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/2Call Move_Along_Line (point_1, point [2], point [1], distance, point[3])..

101

Page 102: Eden Supp

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 activeorientation.

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

Page 103: Eden Supp

2.Stru

cture

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 shorteritem. 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 firstnon-ASCII byte make up the destination_item.

This routine is mainly useful for the Read Table primitive where INPUT/OUTPUT contains CHARACTERfields. The following code segment shows how to access such data:

input_1 = 20Call Move_Data (’col3_key’, INPUT_2) ! INPUT_2 is ASCII fieldCall Read_Table (’TABLE_SO_AND_SO’, INPUT, OUTPUT ! Read tableCall Move_Data (OUTPUT_4, CSTRING_1) ! output_4 from table is

! ... ASCII. Move it into! ... global ASCII! ... variable CSTRING_1

103

Page 104: Eden Supp

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 canbe at most two centers of gravity per piece of equipment, each designated by a different keyword. The call isignored if no datum points are being placed for the piece of equipment since the location of the COG is relativeto the first datum point. Define Datum Point for dp1 must be executed before or after this call. Graphics arenot 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, itis replaced with the new definition. The following keywords are accepted:

DRYOPERATING_1OPERATING_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 datumpoint.

offset_z Distance specifying the elevation of the COG in the local coordinate system of the first datumpoint.

104

Page 105: Eden Supp

2.Stru

cture

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

Page 106: Eden Supp

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 defaultexpressions. After the value is evaluated, it must correspond to the numeric/character data type defined for thefield.

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 fieldsmust receive character data, and numeric fields must receive numeric data. No dataconversion 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 aredefined 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 isreturned. Expect negative values if the call completes unsuccessfully. Such abnormal returnmay 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 tosuccessfully 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 correspondsto field #2, it also receives a value of 10.0.

Call Put_Field (10, 2)

106

Page 107: Eden Supp

2.Stru

cture

Read Table________________

Read Table

The Read Table primitive allows you to read values from a table for use in your symbol definition. Thisprocess is called a table lookup.

Refer to Reference Data Manager (PD_DATA) Reference Guide for information on the valid naming formatsfor 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 callingRead Table. The number and type of values needed in INPUT_1...INPUT_10 array dependson the number and type of input columns defined for the table. An INPUT_X parameter maybe a number or a character string up to eight characters. Assigning numerical data to INPUTelements is not a problem. Character data, however, must be treated differently since INPUTis a REAL array. Characters cannot be assigned to its variables. You must use the MoveData primitive. Refer to the Move_Data primitive for sample usage.

OUTPUT Global variable name OUTPUT. The table values read are stored in OUTPUT. You mustknow the table structure in order to know where each output from the table is stored. AnOUTPUT_X field can be numeric or alphanumeric (up to eight characters) depending on thetable structure. Refer to the Move Data primitive for accessing character data once it isretreived in an OUTPUT_X variable.

return_code [optional] The output argument allowing symbol execution to continue if the call fails toread a table. If supplied, the values returned include:

0 - table read successfully3 - table not in table library / library not attached6 - 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 fromcharacter constants, the flange generic end prep, and the flange pressure rating. The table input is theflange nominal pipe size. The flange diameter is taken from global variable OUTPUT_1, while the flangethickness is taken from global variable OUTPUT_2.

INPUT_1 = Nom_Pipe_Dtable = ’BLT’ // GEN_TYPE // PR_RATING // ’5’Call Read_Table (table, INPUT, OUTPUT)flange_diam = OUTPUT_1flange_thk = OUTPUT_2

107

Page 108: Eden Supp

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_DCall Read_Table (’MAL_300_5’, INPUT, OUTPUT)pipe_od = OUTPUT_3

108

Page 109: Eden Supp

2.Stru

cture

Rotate Orientation________________

Rotate Orientation

The Rotate Orientation primitive allows you to rotate the active local orientation relative to itself. Thecoordinate system is rotated about the designated axial direction through the specified angle according to theright-hand rule. When you call this primitive, you change the local symbol orientation without affecting thedesign 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 NORTHSECONDARY SOUTHNORMAL UPEAST DOWNWEST

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

Page 110: Eden Supp

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 placedsubsequently are to be accumulated by the system and grouped as a complex shape. The elements mustmaintain a continuous flowline when they are sequentially traced through their vertices or end points. (This is arequirement 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 inthe complex shape has been defined.

One complex shape can remain in effect for each BEGIN call category, and the systemkeeps track of all such complex shapes. A default Stop Complex Shape is executed bythe system following the element placed last inside a BEGIN category. Any number ofcomplex shapes can be created in a category with pairwise start/stop calls.

110

Page 111: Eden Supp

2.Stru

cture

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 keepstrack of all such complex shapes. A default Stop Complex Shape is executed by the systemfollowing the element placed last inside a BEGIN category. Any number of complex shapes canbe 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

Page 112: Eden Supp

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 functiononly).

11 - 20 global orientation location (known to all main symbol and user functioncalls).

Example

In this example, the call saves the active orientation into local orientation buffer 8. Later, the active orientationcan be restored to its original value:

Call Store_Orientation (2, 8)...

Call Store_Orientation (1, 8)

112

Page 113: Eden Supp

2.Stru

cture

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 statementreads: Support_User_Function_Definition ’MODULE-NAME’ where ’module-name’ is a character string (1to 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 notethe 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 andcan be omitted from the right end. Values are passed via global variables INPUT_11through INPUT_19. These are loaded from the optional arguments. Unused variablesare 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. Theycan also be used to pass results.

The modules are delivered with the Eden Interface allowing you to build certain common shapesnot directly supported by any Eden primitive. These functions make use of the Draw ComplexSurface primitive to create solid shapes by placing arcs and line strings individually. You cancall these user functions much like any other Eden primitive by including arguments in theUser_Function statement. You can obtain the source file name for a particular user function byadding the extension .UF to the function name.

113

Page 114: Eden Supp

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 offsetfrom 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 projectionand 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: Don’t update active point and orientation upon exit (default).

1: Update active point and orientation to the opposite face upon exit.

114

Page 115: Eden Supp

2.Stru

cture

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 startingface. 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. (Fora torus rotated about an axis parallel to the flat sides, this is 90 degrees. Fora torus rotated about an axis parallel to the curved sides, this is 0 degrees.)

update_flg 0: Don’t update active point and orientation upon exit (default).

1: Update active point and orientation to the opposite face upon exit.

115

Page 116: Eden Supp

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 ofprojection of the first segment and is normal to the first face of the first segment. The active secondary axispoints to the center of rotation. Rotation occurs around the flat sides using the active normal as the axis ofrotation.

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 betweentwo 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: Don’t update active point or orientation upon exit (default).

1: Update active point and orientation to the last face upon exit.

116

Page 117: Eden Supp

2.Stru

cture

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 ofprojection of the first segment and is normal to the first face of the first segment. The active secondary points tothe 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 betweentwo 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: Don’t update active point or orientation upon exit (default).

1: Update active point and orientation to the last face upon exit.

117

Page 118: Eden Supp

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 ofprojection of the first segment and is normal to the first face of the first segment. The active secondary pointstowards the center of rotation, and the active normal defines the axis of rotation. Cylinders are used to representthe 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 betweentwo cross-sections).

num_seg Number of segments (at least 2).

radius Cross-sectional radius of any segment (this value must be well within thebend_radius).

update_flg 0: Don’t 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 thisuser function. User function ROUND_SEG_TOR2, however, works correctly with HLINE eventhough it is more expensive in terms of design file space.

118

Page 119: Eden Supp

2.Stru

cture

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 ofprojection of the first segment and is normal to the first face of the first segment. The active secondary pointstowards the center of rotation, and the active normal defines the axis of rotation. Projected shapes are used torepresent 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 betweentwo cross-sections).

num_seg Number of segments.

radius Cross-sectional radius of any segment. (This value is well within thebend_radius.)

update_flg 0: Don’t update active point or orientation upon exit (default).

1: Update active point and orientation to the last face upon exit.

119

Page 120: Eden Supp

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 ofprojection of the first segment, and the normal of the first face of the first segment. The active secondary axispoints 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: Don’t update active point and orientation upon exit (default).

1: Update active point and orientation to the last face upon exit.

120

Page 121: Eden Supp

2.Stru

cture

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 withfaces 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 ofprojection 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: Don’t update active point or orientation upon exit (default).

1: Update active point and orientation to the flat oval face upon exit.

121

Page 122: Eden Supp

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 facesparallel 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 ofprojection 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: Don’t update active point and orientation upon exit (default).

1: Update active point and orientation to the rectangular face upon exit.

122

Page 123: Eden Supp

3.Sym

bo

ls

Defining Symbols________________

3. Defining Symbols

The previous sections explained the tools that you need to completely define a pipe support symbol. Thissection 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 createit.

2. Determine what dimensional inputs should be required for placing a symbol based on availability. Asymbol cannot be efficiently placed if, in order to provide inputs for a symbol, you perform handcalculations 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

Page 124: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

124

Page 125: Eden Supp

4.New

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 moreprojects 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 directoriesfor all projects can be kept.

— If the customized libraries and components will be specific to one project the following alternativecan 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

Page 126: Eden Supp

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

Page 127: Eden Supp

4.New

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 directoriespreviously 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 usedthe 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 thenext few pages.

8. Access the Reference Database Management Data form, and define the node name and directory path tothe graphic data and table libraries. When testing new libraries in a live project, it is recommended toenter 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

Page 128: Eden Supp

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 areincorrect). The following specifications are used for a U.S. standards project:

Piping Job Spec Table us_pjstb.lShort Matl Description us_shbom.lLong Matl Description us_lgbom.lSpecialty Matl Description us_spbom.lStandard Note std_note.lLabel Description labels.lPiping Assembly assembly.lGraphic Commodity pip_gcom.lPipe Support Tutorial Definition Library ppsm_tlib.lPipe Support Section Table Library AISCPhysical 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 correctspecifications

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 thenext 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

Page 129: Eden Supp

4.New

Reference Database Management Data________________

Reference Database Management Data

The Reference Database Management Data form allows you to define the file names for Reference DatabaseFiles, graphic commodity data, dimension tables, and spec tables. You can define both approved orunapproved RDB data for each item. You can also define the default location for the source files used to loadthe 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 nodefault settings for these files; you must define the applicable file locations before you can continue.

Material/Specification ReferenceDatabase

Identifies the Material Reference Database for the project. Refer tothe Project Setup Manager in the Project Administrator(PD_Project) Reference Guide for more information on thisdatabase.

Piping Job Specification TableLibrary

Identifies the location of the Spec Table library.

129

Page 130: Eden Supp

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 BOMdescription addenda for taps.

Long Material Description Library Identifies the library that contains the long BOM description for allpiping commodity items. The long BOM description is only usedfor requisitions.

Specialty Material DescriptionLibrary

Identifies the library that contains the BOM description forengineered items, in-line instruments, and pipe supports. Thislibrary 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 librarycontains the symbol definitions for assemblies.

Graphic Commodity Library Identifies the library that contains the Eden modules used to placecomponents in the model.

Physical Data Library Identify the library files that contain the physical data tables for arange of geometric industry standards.

Commodity Synonym Library Identifies the user-defined library that contains the map fortranslating the piping commodity names displayed on Intergraphforms to names specified by the user.

Orthographic Drawing Borders Identifies the path to the drawing border files to be used whencreating drawings. A set of border files are delivered to thedirectory c:\win32app\ingr\pddraw\border\.

Pipe Support Section Table Library Identifies the location of the FrameWorks section library used tomodel the graphics of various standard sections.

Pipe Support Tutorial DefinitionLibrary

Identifies the location of the tutorial definition library for pipesupports.

Pipe Support Seed Files Identifies the location of the Imagineer seed files used to generatedrawing files for pipe supports.

Pipe Support Drawing BaseDirectory

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 DataManager (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 DataManager operations (such as revising entries in a library).

130

Page 131: Eden Supp

4.New

Reference Database Management Data________________ Refer to the Project Data Manager in the Project Administrator (PD_Project) Reference Guide forinformation 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 fileto the Not Approved fields. Select confirm to update the information.

Refer to the individual managers for information on posting the unapproved information to the approvedfiles.

5. You can select Default Project Control Data to define the default location for the RDB source filesused 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

Page 132: Eden Supp

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 neutralfiles, report files, and library files). You can also set or change these file locations during the operation of theapplicable 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 sourcefiles.

Piping Spec Path / Node The default location for the neutral files to be used to load theSpecification/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

Page 133: Eden Supp

4.New

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

Page 134: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

134

Page 135: Eden Supp

Glo

ssary

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 givenclass. 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 bereferred to by an index number or selected from a form. For example, thecode list set for the fluid code attribute allows you to select from a set ofstandard entries (such as P for process or MMA for methyl alcohol).

code list sets Files which define the values for all codelists having universal applicabilitywithin PDS.

code-listed attribute an attribute linked to a specific entry in a code list set. These attributevalues 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 fileor 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. Commentscan 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 theMaterial Data Tables of the Specification/Material Database.

commodity item a standard component found in a manufacturers catalog (off-the-shelfcomponent).

component a graphic symbol representing a commodity item, specialty item,instrument, or pipe support. Gate valves, elbows and expansion joints areexamples of piping components.

135

Page 136: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

database A collection of comprehensive informational files having predeterminedstructure and organization that can then be communicated, interpreted, orprocessed by a specific program.

database table The part of the database that is made of rows and columns and containsinformation about the project and design elements.

design database a database which contains the non-graphic design data for a project. Eachmodel 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 Whilestatement must equal a logical value (either true or false). The body of theDo While statement will be repeatedly executed as long as the logicalexpression remains true.

Eden a high-level parametric language (similar to FORTRAN) which usesinformation from the Piping Job Specification and Design Database toaccess 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 hasbeen processing.

entity An object (project, drawing, element, etc.) of interest about whichinformation 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 withthe DM/DBA product. Because many of the screen menus in theapplication software on CLIX workstations are built with I/FORMS, youmust have the FORMS_S product on your workstation. There is no suchrequirement for Windows NT.

format file a file that determines the contents and format of a report. It defines all theneeded criteria for creating the actual report, including which databaseattributes are reported.

full path name The name of the entire path or directory hierarchy to a file, including the filename. See also relative path name.

GCL Graphic Commodity Library

generic physical datamodule

Physical data module containing information common to more than onesymbol. Generic physical data modules are called by specific physical datamodules.

136

Page 137: Eden Supp

Glo

ssary

Glossary________________

Geometric industrystandard

a code-listed attribute which identifies the source of the data (industrystandard such as ANSI, ISO, or DIN, or company standard) from which thespecific geometry of a commodity item is deduced.

global variable System-defined names that can be referred to at any subroutine level.

Graphic CommodityLibrary

a data library which contains the parametric symbol definitions (Edenmodules) required to place piping and instrument components in a 3-Dmodel.

If - then - else statement Eden statement that allows a group of statements to be conditionallyexecuted.

Indexed Do statement Eden statement which allows loops that execute a specified number oftimes.

instrument an item used to perform a process measurement, process indication, orcontrol function. Instruments can be defined in the Piping Job Specificationor defined interactively while working in the model.

interference parametricshape definition

Eden code used to define the interference envelope for a component, to beused 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 asarguments in system-defined primitives (or subroutines).

Label Description Library a library which defines the types of labels and the label formats used in PDS3D.

local variable Variable that is declared in the symbol definition, and which can only bereferred to in the same Eden module as the variable itself.

logical operator Operator used to combine relational expressions into more complex logicalexpressions.

Long Material DescriptionLibrary

a library which contains the long bill-of-material descriptions for all pipingcommodities.

MC model code

model a 3-D design volume.

model code name used to reference the parametric definition of a component. Themodel code is also referred to as the new item name.

model parametric shapedefinition

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 orEquipment Modeling task.

137

Page 138: Eden Supp

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 toshare data and control. The term network can mean the devices that connectthe system, or it can mean the connected system.

neutral file an ASCII file which can be used to load data into a library, database, ordesign file.

NPD nominal piping diameter

object library a compiled library which contains reference data which can be accessed bythe 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 shapedefinition

Eden code used to describe the graphics symbol placed for a component inthe 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 andrelative path name.

PDS Plant Design System

piping specialty a user-defined component. Specialty items can be defined in the Piping JobSpecification 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 commodityitems.

physical data table a table which contains the physical data such as dimensions, weights, andsurface area required for component placement, interference checking,stress analysis, and MTO reporting. These tables can be stored in differentphysical 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 Languagesyntax.

138

Page 139: Eden Supp

Glo

ssary

Glossary________________

Piping Assembly Library a library which contains the piping assembly definitions which define theparameters necessary to place a piping assembly automatically in the model.

Piping Job Specification non-graphics data which provides selection criteria for piping commodityitems, engineered items, and instruments.

Piping Materials Class a classification of components by service or specification. For example, a150 pound carbon steel specification.

PJS Piping Job Specification

plant A group of facilities and equipment used to perform one or more materialprocessing functions within a given geographical area. One company mayhave many plants located in many different geographical locations.

PMC Piping Materials Class

primitive System-defined Eden routines that perform specific functions for symboldefinition.

project A term used for the convenient grouping of either all or part of the facilitiesand equipment that constitute a plant. At a given time, the items thatconstitute 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 projectincluding design area definitions, interference management data, andrevision management data.

RDB Reference Database

Reference Database A collection of reference data containing information relative to industrydesign codes, vendor’s catalog data, job specifications, commodity libraries,graphics symbology, label descriptions, report formats and otherinformation of a similar manner.

Relational DataBaseManagement SystemRDBMS

A database management system that uses SQL, the Structured QueryLanguage, to implement and query data in relational tables.

Relational InterfaceSystem

A generic relational database interface that isolates the differences inspecific vendors’ relational database management systems.

relational operator Operator used to form relational expressions that test the value of an Edenexpression or establish conditions under which a group of Eden statementscan be executed.

relative path name The sequence of directories leading from the current directory to a particularfile. See also path name and absolute path name.

139

Page 140: Eden Supp

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 fora table.

schema An RIS schema identifies a unique database/user combination existing in acommercial 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 DescriptionLibrary

a library which contains the short bill-of-material descriptions for all pipingcommodity items and the description addenda for taps.

site A grouping of three-dimensional world data corresponding to schematicdata from one or more units. The relation-ship of site with plant and projectis 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 filesare usually contained in text libraries. See also neutral file.

Spec Table Library a library which contains the Piping Job Specification tables and otherspecial tables which contain nonphysical data.

specialty item an piping specialty or instrument.

Specialty MaterialDescription Library

a library which contains the bill-of-material descriptions for engineereditems, instruments, and pipe supports.

specific physical datamodule

Physical data module that determines the dimensions and other physicalproperties for a specific component.

standard note a set of acceptable responses defined in the Standard Note Library. See alsocode-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 integerdata.

sub-symbol processor A set of code used to produce graphics for a subcomponent on a commodityitem.

symbol processor The controlling function or logic used to produce the graphics for acommodity item.

140

Page 141: Eden Supp

Glo

ssary

Glossary________________

task A specialized PDS function such as the Piping and InstrumentationDiagrams (P&ID) task or the Piping Designer task.

task database Working database in which the actual engineering or design effort isperformed. 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 enablesyou 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 amodel or drawing. Most of the customization data defined with the ProjectData Manager is stored in a type 63 element.

unit A grouping of those parts of the schematic and individual worlds of a plantthat together perform a given process function.

variable An expression whose value can change. Used as a placeholder forinformation in Eden code. Variables can be either global or local in Edencode.

141

Page 142: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

142

Page 143: Eden Supp

Ind

ex

Index________________

Index

Aabort 63arithmetic operators 38

Bbegin 25

EQP category 27beginning statements 24

Ccall

statement 41comments 37convert

NPD to subunits 50unit 64

Ddefault project control data 132define

activeorientation 51point 65

orientation by points 66point 67

description statement 36display

message 68tutorial 69

do while statement 41draw

arc 71complex surface 72con prism 75cone 53curve 76cylinder 54ecc

prism 77transitional element 79

eccentric cone 55ellipse 80line 81

string 82proj

hexagon 83

draw (continued)proj (continued)

octagon 85shape 87

projectedrectangle 56triangle 58

rectangular torus 88revolved shape 89semi ellipsoid 60shape 91sphere 61torus 62transitional element 92

draw section member 46

EEden

basics 13language structure 23

beginning statements 24comments 37ending statements 24expressions 40functions 43keywords 35operators 38replacement statements 40variables 29

ending statements 24expressions 40

call 41do while 41if - then - else 42indexed do 41replacement statements 40

F’flat_oval_prism’ 114’flat_oval_seg_tor1’ 116’flat_oval_seg_tor2’ 117’flat_oval_tor’ 115functions 43

143

Page 144: Eden Supp

PDS Eden for Pipe Supports - April 2002________________ Gget

arcpoints 93size 94

date 95line size 96point 97

global variables 31equipment and pipe support 32pipe support specific 32subscripted 34

Iif - then - else statement 42indexed do statement 41interacting terminated fields 69

Kkeywords

common 35

Lload

section data 49spec data 45

local variables 29logical operators 39

Mmove

alongarc 99axis 100line 101

by distance 102data 103

Ooperators 38

arithmetic 38logical 39relational 39

Pplace

COG 104place connect point 47position cursor 105primitives 44

convert NPD to subunits 50

primitives (continued)define active orientation 51draw

cone 53cylinder 54eccentric cone 55projected rectangle 56projected triangle 58semi ellipsoid 60sphere 61torus 62

equipment modelingabort 63begin 25begin EQP category 27convert unit 64define

active point 65orientation by points 66point 67

displaymessage 68tutorial 69

drawarc 71complex surface 72con prism 75curve 76ecc

prism 77transitional element 79

ellipse 80line 81

string 82proj

hexagon 83octagon 85shape 87

rectangular torus 88revolved shape 89shape 91transitional element 92

’flat_oval_prism’ 114’flat_oval_seg_tor1’ 116’flat_oval_seg_tor2’ 117’flat_oval_tor’ 115get

arcpoints 93size 94

date 95

144

Page 145: Eden Supp

Ind

ex

Index________________ primitives (continued)

equipment modeling (continued)get (continued)

linesize 96

point 97move

alongarc 99axis 100line 101

by distance 102data 103

place COG 104position cursor 105put field 106read table 107’rect_flat_oval’ 121’rect_seg_tor’ 120rotate orientation 109’round_rect’ 122’round_seg_tor1’ 118’round_seg_tor2’ 119start complex shape 110stop complex shape 111store

orientation 112user function 113

load spec data 45prompt for orientation 48put field 106

Rread table 107’rect_flat_oval’ 121’rect_seg_tor’ 120reference database management data 129

default project control data 132relational operators 39replacement statements 40rotate orientation 109’round_rect’ 122’round_seg_tor1’ 118’round_seg_tor2’ 119

Sspec data

loading 45start complex shape 110statements

beginning 24

statements (continued)call 41do while 41ending 24if - then - else 42indexed do 41replacement 40

stop complex shape 111store

orientation 112structure Eden 23subscripted global variables 34

Ttables

tutorial definition 17terminated fields

interacting 69tutorial

definitiontable 17

type statement 36typefaces 9

Uuser 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

Vvariables 29

global 31local 29

145

Page 146: Eden Supp

PDS Eden for Pipe Supports - April 2002________________

146

Page 147: Eden Supp

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.

Page 148: Eden Supp

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

Page 149: Eden Supp

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.

Page 150: Eden Supp

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.

Page 151: Eden Supp

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.

Page 152: Eden Supp

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:\win32app\ingr\pdshell\forms\PA001 forms\.

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 won’t 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.

Page 153: Eden Supp

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:\win32app\ingr\pdshell\forms\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.

Page 154: Eden Supp

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

Page 155: Eden Supp

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

Page 156: Eden Supp

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

Page 157: Eden Supp

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.

Page 158: Eden Supp

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

Page 159: Eden Supp

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

Page 160: Eden Supp

PDS Eden for Pipe Supports – March 2007

160