Sei sulla pagina 1di 146

PDS Eden Interface

Reference Guide - Volume 3:Pipe Supports

Document Number DPDS3-PB-200042A

Version PDS 7.3

Date October 2004

Pages 1-146

Copyright
Copyright 1984-2004 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 in subparagraph (c) of the Contractor Rights in Technical Data clause at DFARS 252.2277013, subparagraph (b) of the Rights in Computer Software or Computer Software Documentation clause at DFARS 252.227-7014, subparagraphs (b)(1) and (2) of the License clause at DFARS 252.227-7015, or subparagraphs (c) (1) and (2) of Commercial Computer Software---Restricted Rights at 48 CFR 52.227-19, as applicable. 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, SmartSketch, FrameWorks, SmartPlant, INtools, MARIAN, and PDS are registered trademarks of Intergraph Corporation. Microsoft and Windows are registered trademarks of Microsoft Corporation. MicroStation is a registered trademark of Bentley Systems, Inc. ISOGEN is a registered trademark of Alias Limited. Other brands and product names are trademarks of their respective owners.

_ _______________
If You Need Assistance
Intergraph Online
Our web site brings you fast, convenient, up-to-the-minute information about Intergraphs products, services, and direction. Our web address is: http://www.intergraph.com.

If You Need Assistance

Support
For the lasest Support Services information, use a World Wide Web browser to connect to http://www.intergraph.com/ppo/services/support.asp. If you are outside of the United States, please call your local Intergraph office. The most upto-date list of international offices and distributors is available on the web at http://www.intergraph.com.

Intergraph Directory
The following numbers are only valid in the United States unless otherwise indicated. If you are outside the United States, please call your local Intergraph office.

Intergraph General Information


All countries 1-256-730-2000

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

Mailing Address
Intergraph Process, Power & Offshore 300 Intergraph Way Madison, Alabama 35758 U.S.A. You can also reach us by electronic mail at info@intergraph.com.

_ _______________
Documentation Contacts
We are constantly working on updates and improvements to the documents and other educational media. If you have any suggestions on where we can improve the documentation or where you think more information is needed, let us know. You can reach us by: Mail Intergraph Process, Power & Offshore Documentation Manager 300 Intergraph Way Madison, AL 35758

_ _______________
Table of Contents
If You Need Assistance ........................................................................................................ Intergraph Directory ............................................................................................................. General Conventions .................................................................................................................... Keyboard Conventions ......................................................................................................... Terminology ......................................................................................................................... 1. The Eden Basics ........................................................................................................................... Pipe Support Symbol Processor ................................................................................................... Tutorial Definition Table ............................................................................................................. Forms Interface ............................................................................................................................ 2. Eden Language Structure ............................................................................................................. Beginning Statements .................................................................................................................. Ending Statements ....................................................................................................................... Begin ..................................................................................................................................... Begin EQP Category ............................................................................................................. Variables ...................................................................................................................................... Common Keywords ..................................................................................................................... Comments .................................................................................................................................... Operators ...................................................................................................................................... Expressions .................................................................................................................................. Functions ...................................................................................................................................... Primitives ..................................................................................................................................... Load Spec Data ..................................................................................................................... Draw Section Member .......................................................................................................... Place Connect Point .............................................................................................................. Prompt For Orientation ......................................................................................................... Load Section Data ................................................................................................................. Convert NPD to Subunits ..................................................................................................... Define Active Orientation ..................................................................................................... Draw Cone ............................................................................................................................ Draw Cylinder ...................................................................................................................... Draw Eccentric Cone ............................................................................................................ Draw Projected Rectangle .................................................................................................... Draw Projected Triangle ....................................................................................................... Draw Semi-Ellipsoid ............................................................................................................ Draw Sphere ......................................................................................................................... Draw Torus ...........................................................................................................................

Table of Contents

3 3 9 10 11 13 14 17 21 23 24 24 25 27 29 35 37 38 40 43 44 45 46 47 48 49 50 51 53 54 55 56 58 60 61 62

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

_ _______________
User Function RECT_FLAT_OVAL ............................................................................ User Function ROUND_RECT ..................................................................................... 3. 4. Defining Symbols ........................................................................................................................ Creating a New Pipe Support ....................................................................................................... Eden Setup ................................................................................................................................... Reference Database Management Data ................................................................................ Default Project Control Data ................................................................................................ Glossary ............................................................................................................................................... Index ....................................................................................................................................................

Table of Contents

121 122 123 125 125 129 132 135 143

_ _______________
PDS Eden for Pipe Supports - April 2002

_ _______________
General Conventions
This document contains many visual cues to help you understand the meaning of certain words or phrases. The use of different fonts for different types of information allows you to scan the document for key concepts or commands. Symbols help abbreviate and identify commonly used words, phrases, or groups of related information.

Table of Contents

Typefaces
Italic Indicates a system response, which is an explanation of what the software is doing. For example, The text is placed in the viewing plane. Bold Indicates a command name, parameter name, or dialog box title. Command paths are shown using an arrow between command names. For example, Choose File > Open to load a new file. Sans serif Indicates a system prompt or message, which requires an action be taken by the user. For example, Select first segment of alignment Bold Typewriter Indicates what you should literally type in. For example, Key in original.dat to load the ASCII file. Normal Typewriter Indicates an actual file or directory name. For example, The ASCII report is stored in the layout.rpt file.

_ _______________
PDS Eden for Pipe Supports - April 2002

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

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

Technical tip or information provides information on what the software is doing or how it processes information. Map or path shows you how to get to a specific command or form.

More information indicates there is additional or related information.

Need a hint used with activities and labs, provides a tip or hint for doing the exercises.

Keyboard Conventions
The following list outlines the abbreviations this document uses for keyboard keys and describes how to use them in combination. You can make some menu selections through the use of keyboard accelerators, which map menu selections to key combinations. ALT CTRL DEL ENTER ESC CTRL+z ESC,k Alternate key Control key Delete key Enter key Escape key To hold down the Control key and press Z. To press the Escape key, then K.

10

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

Table of Contents

Double-click

Type Key in

11

_ _______________
PDS Eden for Pipe Supports - April 2002

12

_ _______________
1. The Eden Basics
Eden is a high-level symbol definition language modeled on the FORTRAN programming language. It allows you to design your own symbols for equipment, piping, pipe supports, instrumentation, and specialty items. The Eden language syntax is not case sensitive. You can write code with whatever case conventions make it easiest for you to read. While you do not need a programming background to write Eden programs, any programming experience is highly recommended. Most of the symbol definition functions are built into Edens command structure. This high-level command structure makes it easier to share code among several different symbol definitions. Eden is flexible enough to allow you to design codes specific to your companys needs, yet offers predefined subroutines, called primitives, which carry out functions often repeated within symbol definitions. For example, the following primitive draws a cone with a length of X units, a diameter at the active point (first end) of Y units and a diameter at the opposite end of Z units: Call Draw_Cone (X, Y, Z) The output produced will look similar to the following graphic:

The Eden Basics

1.Basics

You can call up to five nested subroutines within a program.

13

_ _______________
PDS Eden for Pipe Supports - April 2002

Pipe Support Symbol Processor


The symbol processor is the Eden code that defines a pipe support. It calls all the subroutines or modules that activate forms, check input data, assign placement points, and place graphics. The first line of an Eden module defines the module name. The following statement is used in the Eden modules to indicate a symbol processor module: Support_Symbol_Processor MODULE NAME The module name should be entered using UPPER CASE characters. For example: Support_Symbol_Processor GUIDE The following example symbol processor defines a cantilever-braced support:

SUPPORT_SYMBOL_PROCESSOR CBA exit = 0 tutname = CBA Cstring [29] = Support_commodity_name Call Get_Date ( Cstring [38] ) angle = 45.0

! display date

call Convert_NPD_to_Subunits ( Nom_Pipe_D, dia ) If ( dia .LE. 14 ) then overhang = 9.0 else overhang = dia/2 + 2 endif If ( Support_commodity_name .EQ. CBB ) then len = Pipe_to_Steel_Distance + overhang + 6.0 else If ( Support_commodity_name .EQ. CBD ) then len = Pipe_to_Steel_Distance + overhang + 21.25 else len = Pipe_to_Steel_Distance + overhang endif endif Do while ( exit .EQ. 0 ) Call Display_Tutorial ( tutname ) If ( LAST_INP_TYPE .EQ. USER_KEYIN ) then If ( Support_commodity_name .EQ. CBC .OR. Support_commodity_name .EQ. CBD ) then Call Display_message ( Concrete Strength Should Be 3000 PSI, 48 ) endif If ( LAST_INP_NUM .EQ. 46 ) then ! user keyin Load Call Display_message ( , 48 ) ! Clear message field Call User_function ( CB_ITEM_TYPE ) ! User function to look up item type If ( Dimension[99] .EQ. 1 ) then len = Dimension[5] SUPPORT_SEQUENCE_NUMBER = 1 Call Put_field ( Support_Item_Key0, 25 ) Call Load_Spec_Data ( Support_commodity_name, NOM_PIPE_D, Support_Item_Key0,

14

_ _______________

Pipe Support Symbol Processor

, , SUPPORT_SEQUENCE_NUMBER, ret ) If ( ret .EQ. 1 ) then Call Display_message ( Accept to place support, 48 ) SUPPORT_MARK_NUMBER = Support_commodity_name ||-|| Support_Item_Key0 ||-|| Dimension[5] Call Put_field ( SUPPORT_MARK_NUMBER, 45 ) else Call Display_message ( Entry not in spec, 48 ) endif else Call Display_message ( Moment Criteria not satisfied, 48 ) Call Position_cursor ( 47 ) endif endif If ( LAST_INP_NUM .EQ. 26 ) then Call Put_field ( len, 46 ) endif endif If ( LAST_INP_TYPE .NE. application_cmd .AND. LAST_INP_TYPE .NE. user_keyin ) then If ( Dimension[99] .NE. 0 ) then exit = 1 endif endif Enddo ! Define PLACEMENT Call Place_connect_point ( CP1 ) Offset = 0.5 * PIPE_OD Call Prompt_for_orientation ( 1.0 ) Call Move_along_axis ( offset, SECONDARY ) Call Move_along_axis ( - overhang, PRIMARY ) Support_Material_Length = Dimension[5] ! Dimension L

1.Basics

Call Draw_section_member ( SECTION_TABLE_NAME, CARDINAL_BC, Support_Material_Length ) Call Place_connect_point ( CP0 ) ! Draw Brace Graphics SUPPORT_SEQUENCE_NUMBER = 2 Call Load_Spec_Data ( Support_commodity_name, NOM_PIPE_D, Support_Item_Key0, , , SUPPORT_SEQUENCE_NUMBER, ret ) Call Move_along_axis ( - Support_Material_Length, PRIMARY ) Call Move_along_axis ( 9.0, PRIMARY ) Call Rotate_orientation ( angle, NORMAL ) offset = ( Support_Material_Length - 9.0 ) / DCOSD ( angle ) Call Draw_section_member ( SECTION_TABLE_NAME, CARDINAL_BC, offset ) STOP END

15

_ _______________
PDS Eden for Pipe Supports - April 2002

16

_ _______________
Tutorial Definition Table
You can create or modify tutorial definition tables using an ASCII editor. The first line in a tutorial definition table defines the tutorial name. This entry must begin in column 1. Each input field in a tutorial must have a corresponding row in a tutorial definition table. Each row includes: field number, data type, global variable, input attribute, default string, and field name. 1. 2. field datatype the tutorial field number defining the form. the data type of the field. This entry is a number whose values include: 1 = linear dimension 2 = angular dimension 3 = integer (no units) 7 = support entity database attribute 9 = field to receive values for CSTRING_x variables 3. number a table data entry which the system interprets differently for each data type: For data types 1, 2, and 3, number is a value that can range from 1 to 100 defining the global variable DIMENSION_n, which holds the fields input. For example, if number is set to 10 in the table, then any input into the field is placed by the software into DIMENSION_10. The symbol can then refer to DIMENSION_10 and use it in any of its calculations. For data type 7, number defines the attribute number in the appropriate database entity to which the field inserts input. Use the following numbers for the respective attribute:
support_group 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 , , , , , , , , , , , , , , , , , , pipe_support_no model_code_phy model_code_log iso_support_type_a iso_support_type_b iso_support_type_c iso_support_type_d details_for_shop details_for_field fabrication_orient commodity_code MTO_requirements fabrication_cat weight construction_stat hold_status standard_note_no iso_dwg_index_no , , , , , , , , , , , , , , , , , , character(20) character(6) character(6) short short short short character(50) character(50) character(20) character(16) short short double short short short integer

Tutorial Definition Table

1.Basics

, , , ,

standard standard standard standard

note note note note

380 380 380 380

, , , , , ,

standard standard standard standard standard standard

note note note note note note

365 180 1028 (units) 130 50 499

17

_ _______________
PDS Eden for Pipe Supports - April 2002
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , isometric_sheet_no piece_mark_no color_code isometric_dim_a isometric_dim_b isometric_dim_c isometric_dim_d isometric_dim_e trans_rigidity_x trans_rigidity_y trans_rigidity_z rot_rigidity_x rot_rigidity_y rot_rigidity_z spring_gap_length spring_gap_direct number_of_springs last_placed_date inspection_key mark_number group_id gang_id material_grade weld_code material_index operating_load installed_load hydrostatic_load total_movement_1 total_movement_2 rod_diameter , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , character(2) character(10) character(8) double double double double double double double double double double double double short short integer short character(80) integer integer short short character(16) double double double double double double

, standard note 145

, in subunits - distance attribute , in subunits - distance attribute , in subunits

For example, if the data type is 7 and number is 2, then any input to this field is put in the support entity, attribute number 2 (or pipe support number) field of the record that is written to the database when the component is placed. For data type 9, number specifies the CSTRING variable to receive the value. 4. attributes an entry that describes the input field itself. The available values for this item include: 123user input is optional. user input is required. user input is optional but causes return to the symbol. This type of field has also been called a terminated key-in field. Refer to the DISPLAY_TUTORIAL primitive for more information on how to handle these fields from the symbol. user input is required but causes return to the symbol. This is also a terminated key-in field.

4-

18

_ _______________
Example: A tutorial has a field for which the attribute entry in the tutorial definition table contains the number two. You are not allowed to select the ACCEPT field to exit from the tutorial until you have provided a valid input for the field. 5. default an entry allowing you to define a default for a particular tutorial input field. The entry can take on several forms. All of the expressions outlined below must be surrounded by single quotes in the tutorial definition table. The default types include: XXXA literal string used for defaulting character string input fields. The double quote must be included as a delimiter. Example: "101-C" Use the current value of tutorial field number xxx as the default for this field. Note that user-defined field numbers can range from 1 to 200. (System-defined fields range from 201 to 256 and may not appear in default expressions.) Example: F23 Use the contents of DIMENSION_xxx as the default for this field. There is no practical limit on the number of tutorials that a symbol can activate. Therefore, any calculations that were made before the symbol definition activated the current tutorial can provide defaults for that tutorial. Example: D23 Use the contents of CSTRING_xx as the default for this field. Decimal constant with or without a decimal point. All distances are assumed to be in English subunits (inches). If the default is a metric constant, then the constant should be given a suffix of M. Example: 125M Combine any of the above three default types to form a valid arithmetic expression. Valid operators are +, -, *, /, and . Use parentheses to alter order of evaluation. An expression is not evaluated until all fields are defined. Example: (F1+F2)/2+30. This expression is not computed until both fields 1 and 2 are defined.

Tutorial Definition Table

1.Basics

Fxxx-

Dxxx-

Cxxxx.x-

expr-

Default expressions are currently limited to 20 characters in length. Example: CB - default for a support item name field

19

_ _______________
PDS Eden for Pipe Supports - April 2002 Example: F1/2+10 - use the first input to field 1 divided by 2 plus 10 inches as the default. 6. name defines an alphanumeric name for the field which will be used in future software releases for reporting and alphanumeric placement of parametrics. The field name can be a maximum of 10 characters in length.

The gadget numbers 1-10 are identified as follows: 1 = 951 2 = 952 3 = 953 4 = 954 5 = 955 6 = 956 7 = 957 8 = 958 9 = 959 10 = 960 Gadget numbers 11, 12, 13 ... remain 11, 12, 13 ...

Example
The following example tutorial definition table displays a support with 2 dimensional inputs (rows 5 and 7), 1 integer input (row 8), 3 fields for CSTRING_x variables (rows 3, 4, and 9), and 3 fields for support entity database attributes (rows 1, 2, and 6).
CBA 1, 14, 15, 25, 26, 45, 46, 47, 48, 7, 7, 9, 9, 2, 7, 1, 3, 9, 2, 4, 38, 4, 11, 39, 5, 6, 3, 1, 1, 1, 4, 3, 4, 4, 4, 1, , "CB", C38, , 45 , , , , , TAG TUTNO DATE ITEM_TYPE ANGLE MARK_NO L Load Message

In the tutorial above, the default value for field 2 on the tutorial is CB. Since the second column is equal to 1 for field 7, it is a linear dimension input. Your input into this field is placed in variable DIMENSION_5. Field 1 collects your support ID (support entity, attribute number 2).

20

_ _______________
Forms Interface
Forms in pipe support modeling serve to collect input via key-in fields or command buttons. They also provide feedback information to the user through message fields. Input fields and application commands have unique identification numbers. These numbers are used with the tutorial definition table (TDF) to communicate to the software the use for each field or command. The data entered through the forms serves as the input that defines the values of the global variables used by the symbol processor. When a new support item is defined through Eden, a form has to be created to define the components parameters. DBAccess is used to build forms.

Forms Interface

1.Basics

21

_ _______________
PDS Eden for Pipe Supports - April 2002

22

_ _______________
2. Eden Language Structure
You do not need to know FORTRAN to use the Eden language. Eden is similar to the FORTRAN programming language. Therefore, the general rules for evaluating expressions in Eden are identical to those in FORTRAN.

Eden Language Structure

Eden definitions are usually simpler than FORTRAN programs. To use Eden, you must be able to visualize the symbol (in 3D) that you want to develop.

2.Structure

The Eden language structure incorporates: Statements Beginning Ending Variables Local Global Keywords Connect Point Geometry (piping only) Operators Arithmetic Relational Logical Expressions Functions Primitives (or Subroutines)

23

_ _______________
PDS Eden for Pipe Supports - April 2002

Beginning Statements
Beginning statements define the types of modules being entered. Names within the single quotes must be all upper case. SSP - Support_Symbol_Processor 6CHAR SUF - Support_User_Function_Definition 28CHAR

Examples
Support_Symbol_Processor A001 Support_User_Function_Definition A001_CHECK

Ending Statements
Ending statements mark the end of the module in which the system has been processing. Ending statements in the symbol and subsymbol processor include: Stop End Ending statements in the user functions include: Return End

24

_ _______________
Begin
The Begin primitive allows you to generate graphics for 2D shadow, envelopes, various light steel categories, and holes.

Begin

Syntax
Call Begin <category>

Options
category keyword specifying the graphics category you want to place. Allowable category keywords for each class of graphics include: Regular equipment graphics EQUIPMENT This is executed at the beginning of symbol execution. It is needed if you have placed some other category and want to resume equipment graphics.

2.Structure

Interference envelope graphics ENVELOPE_MAINTENANCE_HARD ENVELOPE_MAINTENANCE_SOFT ENVELOPE_ACCESS_HARD ENVELOPE_ACCESS_SOFT ENVELOPE_SAFETY_HARD ENVELOPE_SAFETY_SOFT ENVELOPE_CONSTRUCTION_HARD ENVELOPE_CONSTRUCTION_SOFT 2D footprint graphics SHADOW Light steel graphics LADDER PLATFORM HANDRAIL MISCELLANEOUS

25

_ _______________
PDS Eden for Pipe Supports - April 2002 Holes HOLE NOHOLE The keywords HOLE and NOHOLE are different from other keywords in that they do not represent a separate category of graphics. You can include Begin(HOLE) within another Begin category. A Begin(HOLE) remains in effect across other Begin calls until a Begin(NOHOLE) is reached. Hole graphics are given the level and symbology of holes.

Surface Type SOLID SURFACE The keywords SOLID and SURFACE set the active surface type of subsequent graphics. The default is SOLID. This results in capped surfaces. With the SURFACE keyword, you can place uncapped shapes such as open-ended cylinders.

Except for nozzles and placepoints, all graphics assume the level and symbology of the last executed Begin statement. Placepoints always belong to the equipment/parametric cell. If your symbol executes no EQUIPMENT category graphics, an otherwise empty parametric equipment cell is created for housing the placepoints. A Begin statement can repeat itself any number of times. After execution, it becomes the active category for subsequent element placement calls. A (non-EQUIPMENT) Begin statement must be followed by at least one call to generate graphic elements; otherwise that Begin statement will have no effect on symbol graphics.

26

_ _______________
Begin EQP Category
Syntax
Begin_EQP_Category (subcategory)

Begin EQP Category

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

Options
subcategory is a character string indicating the subcategory. There are presently 20 subcategories available. A valid subcategory must be one that has been defined via the Project Administrator Module. Alternatively, you can use one of the following: EQP_CATEGORY_1, EQP_CATEGORY_2, .. .. .. EQP_CATEGORY_20 The argument is checked only when you place the symbol and not during compilation.

2.Structure

Restrictions
You can use this call only within the Begin (EQUIPMENT) call. Also, you cannot make this call when Draw Complex Surface or Start Complex Shape is in progress. By default, the Begin (EQUIPMENT) and Begin EQP Category (EQP_CATEGORY_1) calls are active when a symbol executes.

Example
The following example is a valid code fragment:
Call Begin (ENVELOPE_MAINTENANCE_HARD) .. .. Call Begin (EQUIPMENT) Call Begin_EQP_Category (PUMPS) Call Draw_Complex_Surface (4, 0) .. .. Call Begin (HOLE) .. ! place envelope graphics ! to set category next ! PUMPS must be a valid ! category for project ! pump graphics ! HOLE is allowed anywhere

27

_ _______________
PDS Eden for Pipe Supports - April 2002
.. Call Draw_Complex_Surface (-99, 0) ! end pump

The following example is not a valid code fragment:


Call Begin (LADDER) Call Begin_EQP_Category (PUMPS) .. .. ! Begin (EQUIPMENT) not active

This example is not a valid code fragment.


Call Draw_Complex_Surface (4, 0) Call Begin_EQP_Category (PUMPS) ! cannot change within surface

28

_ _______________
Variables
Variables in Eden can be either local or global. They can contain either numeric or alphanumeric data. Internally, numeric data is stored as REAL*8 (double precision). If a different data type is required in the context of an expression, then the conversion is performed at the time the expression is evaluated. Variable names can be either upper or lower case. Symbols tend to be easier to read when you use all lower case for local symbols and all upper case for global symbols or vice versa.

Variables

Examples:
2.Structure
When converting a floating point number to an integer, the fractional part of the floating point number is truncated. A variable used in a logical expression evaluates to TRUE when the value of the variable is 1 and 0 when the logical value is FALSE. Variables that hold values representing distances are assumed to be in subunits. A variable containing the value 25 represents 25 inches in an English unit design file and 25 millimeters in a metric unit design file. Be careful when using hard coded numbers or when using the system_of_units keyword.

Local Variables
Local variables are user defined and declared in the symbol definition. You can refer to a local variable only when you are in the same module as the local variable. Local variable names are formed using alphanumeric (a-z), numeric (1-9), and special (_ and $) characters. They must begin with an alphanumeric character and must be less than or equal to 31 characters in length. The Eden compiler does not verify the spelling of local variables within call statements. It assumes a null value for the misspelled variable at component placement time. The Eden language refers to constants as local variables. Both character strings and numeric constants are valid; however, character string constants must be surrounded by single quotes. In most cases, character strings and constants are case sensitive. Thus, a and A are interpreted differently.

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

29

_ _______________
PDS Eden for Pipe Supports - April 2002 Only in Pipe Support and Equipment Modeling can you declare local variable types. The variable types default to either CHARACTER or REAL depending on the context. To override this default, you can use a local variable type declaration statement anywhere before the variable(s) is (are) actually referenced. Variable types INT2, R8, and LOCATION are recognized by the compiler.

Example:
In the following example, variables a, B, and C are declared as type short integers. They hold values ranging from -32767 to 32767. Int2 a Int2 B, C

Example:
In the example below, variable d is declared as a type REAL, capable of holding decimal fractional values. This is the usual default type for numeric variables. However, explicit typing to this category may be necessary to declare local arrays. R8 d As a recommendation, all declaration statements should be placed at the very beginning of the symbol code and not interspersed among statements to be executed during symbol placement. This improves program readability. Also in Pipe Support and Equipment Modeling, referencing a variable using subscripts is extremely useful when coding repetitive statements such as the body of a loop. Prior to use, variables must appear in a type declaration in which its subscript or index range is also specified.

Example:
In the example below, D is an array of 5 short integer variables stored contiguously. The individual elements are referenced as D[1], D[2], D[3], D[4], and D[5]. You can also use a variable or an arithmetic expression for indexing, such as D[i] where i is a value between 1 and 5, or D [i+1] where i is a value between 0 and 4. INT2typed variables are particularly useful in DO loops and array indexing where integral numbers are necessary and roundoffs must be avoided. They are also stored much more efficiently than REAL variables. Int2 D[5], EF[6]

Example:
Below, LENGTHS is an array of 10 REAL variables. They are referenced as LENGTHS [1] ... LENGTHS [10] R8 LENGTHS [10]

30

_ _______________
Example:
In the following example, PT is declared as a buffer with four locations. Location PT [12] where PT [1], PT [4], PT [7] PT [10] are x-coordinates PT [2], PT [5], PT [8] PT [11] are y-coordinates PT [3], PT [6], PT [9] PT [12] are z-coordinates

Variables

2.Structure

These variables provide alternate locations for the point values that you do not want to store in POINT_1 ... POINT_24... POINT [125]. You will also find them useful in accessing individual components of a location. (Refer to the REPLACEMENT STATEMENT section.) Location PT [12] An array-formatted variable may also be referenced without the index. In this case, the first element of the array is accessed. For example, PT and PT [1] are functionally the same in the above example. Currently, only single expression subscripts (that is; single dimensioned arrays) are possible.

Global Variables Common to Piping, Equipment, and Pipe Support Modeling


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

Input_n

(Input_1 through Input_20) An array with up to 20 variables used to define the input parameters for table lookups. (Input_11 through Input_20 are specifically designed for user function arguments in equipment and pipe support modeling.) (Output_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_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.) Variable containing the current item pressure rating value.

Output_n

Dimension_n

Pr_Rating_n

31

_ _______________
PDS Eden for Pipe Supports - April 2002 Nom_Pipe_D_n Variable containing the current item nominal pipe diameter. This variable contains the nominal diameter in coded units. A special primitive is provided to help you convert from coded units to subunits. Variable containing the current item end preparation generic type (BLT, MAL, FEM). This is a read-only variable. 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. Variable containing the current item standard type value. This is a read-only variable and is a function of TABLE_SUFFIX. Gen_Type_n

Term_Type_n

Standard_Type

Global Variables Common to Equipment and Pipe Support Modeling


The following list contains global variables common to Equipment and Pipe Support Modeling. For more information on global variables, refer to the System-defined Subroutines section and the Eden User Interface section. Point_n Point [n] (Point_1 - Point_24) Names representing points that have been defined or saved for later use in a symbol definition. The n in [n] can be between 0 and 125. Variable that contains an identifier for the active library of dimension tables. This is a read-only variable. (Cstring_1 through Cstring_40) Names representing global character variables. Each name can contain a maximum of 50 characters. Refer to the Dsplay_Tutorial primitive in the Eden Primitives section. Contains the nominal piping diameter system of units defined for the model file. You can test this variable against the keywords ENGLISH and METRIC. This is a read-only variable.

Act_Lib

Cstring_n

Last_Inp_Type Last_Inp_Num NPD_Unit_Type

Global Variables (Pipe Support Specific)


The following list contains global variables specific to Pipe Support Modeling. For more information on global variables, refer to the System-defined Subroutines section and the Eden User Interface section. Support_Symbol_Processor Support_User_Function Identifies the module as a symbol processor. Identifies the module as a user function.

32

_ _______________
Support_Sequence_Number Variable defining the value of attribute 3 in PDTABLE_243. This variable must be set before using the Load Spec Data function. This variable sets the value of the PDTABLE_80 attribute specified in attribute 5 of PDTABLE_243 (Dimension_Att_No). This variable is used in defining the length of the support. Variable containing the existing structural members flange width. Variable containing the value of attribute 3 from PDTABLE_241 (Commodity_Name). Defines the section library to be used for placing supports. The outer diameter of the selected pipe. The nominal piping diameter of the selected pipe. Must be set to match attribute 8 in PDTABLE_242 before using the Load_Spec_Data function. Must be set to match attribute 9 in PDTABLE_242 before using the Load_Spec_Data function. Must be set to match attribute 10 in PDTABLE_242 before using the Load_Spec_Data function. This variable sets the Mark Number attribute in PDTABLE_80. Places the value of the pipes material grade in attribute 42 in PDTABLE_80. The insulation thickness of the selected pipe. A point specified on the existing structural member. You can use this global variable to move to this point while drawing graphics. The schedule thickness of the selected pipe. The geometric industry standard used for the selected pipe. The perpendicular distance between the pipe and structural steel selected. Support_Material_Length

Variables

Existing_Steel_Flange_Width

Support_Commodity_Name

2.Structure

Section_Table_Name Pipe_OD Nom_Pipe_D Support_Item_Key0

Support_Item_Key1

Support_Item_Key2

Support_Mark_Number

Support_Materials_Grade

Insulation_Thickness Existing_Steel_Point

Pipe_Wall_Thickness Geo_Ind_Std Pipe_To_Steel_Distance

33

_ _______________
PDS Eden for Pipe Supports - April 2002 Support_Section_Breadth The breadth of the current support section. This variable can only be used after a call to the Load_Section_Data function. The depth of the current support section. This variable can only be used after a call to the Load_Section_Data function. Support_Section_Depth In addition to these variables, any PDTABLE_80 database attribute can be set using the convention T80Cn where n is the column number of the attribute the value is assigned to.

Subscripted Global Variables


In Equipment and Pipe Support Modeling, a global variable can contain an index value as part of the variable name even though the index value is not a variable. This is known as subscripted global variables. For example, Dimension_10 and Point_3 are global variables whose index values are 10 and 3, respectively. You can reference the same location using subscripted global variables, which contain an index either as a variable or as an expression. For example, Dimension [10] and Point [3] are subscripted global variables whose index values are 10 and 3, respectively. They are equivalent to Dimension_10 and Point_3. Subscripted global variables are useful when using loops. Below is a list comparing the two methods of accessing global variables with indexes: Subscripted Global Variable (variable index) cstring [1] ... cstring [40] dimension [1] ... dimension [100] inputs [1] ... inputs [20] outputs [1] ... outputs [20] point [0] ... point [125] (point [0] ... point [24] Global Variable with non-variable index cstring_1 ... cstring_40 dimension_1 ...dimension_100 input_1 ... input_20 output_1 ... output_20

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

_ _______________
Common Keywords
Eden uses keywords for labeling specific values or groups of values. All keywords except TRUE and FALSE can appear as arguments in system-defined primitives (or subroutines). Keywords can be upper or lower case. For consistency, this reference guide displays keywords in upper case. TRUE FALSE MALE FEMALE BOLTED PRIMARY SECONDARY NORMAL ENGLISH METRIC ACTIVE_POINT POINT_0 EAST WEST NORTH SOUTH UP DOWN SUPPORT_SYMBOL_PROCESSOR Logical true. Used in logical expressions. Logical false. Used in logical expressions. Keywords for generic end preparation.

Common Keywords

2.Structure

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

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

Name representing the location of the active point in the local coordinate system defined by the symbol. These names can be used interchangeably. Keywords used to define directions in the local coordinate system defined by the symbol definition.

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

ENG_COMM_LIB EQP_TABLES RETURN STOP END

Names representing the different libraries that can be made active in a symbol definition. Terminates module execution normally. If it encounters either a RETURN or STOP in a user function, the system returns control to the calling module. Must be the last line in the symbol source code. If execution reaches the END statement, an implicit STOP is executed.

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

35

_ _______________
PDS Eden for Pipe Supports - April 2002

TYPE Statement
TYPE statements allow you to assign up to 150 labels or types to a symbol. The syntax for the TYPE statement is:
#TYPE = Type 1, Type 2, Type 3, ... , Type n

where Type 1 ... Type n Labels representing types under which the symbol will be classified.

Using each type, you can later inquire on the symbol. A type label can be up to 28 characters long. The compiler automatically left justifies each type and converts it to upper case. You can enter any number of complete type labels that fit in a line. Multiple TYPE statements are allowed. A TYPE statement can appear anywhere in the source code; however, the # character must appear in column 1.

Example:
The following TYPE statement appears in the code for a multi-diameter vertical vessel supported on skirt. #TYPE = tower, vertical vessel, drum, reactor

DESCRIPTION Statement
The DESCRIPTION statement assigns a descriptive phrase of up to 40 characters to the symbol. The syntax for the DESCRIPTION statement is:
#DESC = This is a description

A DESCRIPTION statement can appear anywhere in the symbol code. The description string is placed left justified by the compiler. When more than one DESCRIPTION statement appears, only the last statement is used. The # character must appear in column one.

36

_ _______________
Comments
Example:
Call define_placepoint (PP1, POINT_1) ! POINT_1 is used to ! define place point 1

Comments

When you place an exclamation point (!) anywhere in an Equipment Modeling source line, the remainder of that line is treated as a comment.

When you place an exclamation point (!) anywhere in an Pipe Support Modeling source line, the remainder of that line is treated as a comment.

2.Structure

Example:
Call place_connect_point (CP1) ! Places Connect point 1

37

_ _______________
PDS Eden for Pipe Supports - April 2002

Operators
Operators are used in conjunction with variables to form expressions. As in FORTRAN, operators can be anyone of three types: 1. 2. 3. Arithmetic Relational Logical

Arithmetic Operators
Arithmetic operators are used to form arithmetic expressions. These operators follow the mathematical conventions. Valid arithmetic operators include: + * / ** // || addition subtraction multiplication division exponentiation concatenation using _ concatenation without using _

The first five operators (+, -, *, /, **) can only be used with numeric local and global variables. The concatenation operators (// , || ) can be used with both numeric and string variables. The concatenation operator // is used primarily to form table names. It joins two variables together with an underbar (_) character. The result is a text string.

Example:
ABC // DEF

produces
ABC_DEF

When using the concatenation operation, real numbers are converted to integers (that is, truncated), then converted to character strings and finally joined together with the underbar character. The concatenation operation is generally used to form messages and character field outputs.

38

_ _______________
Relational Operators
.EQ. .NE. .GE. .GT. .LE. .LT. equal to not equal to greater than or equal to greater than less than or equal to less than

Operators

Relational operators are used to form relational expressions that test the value of an Eden expression or establish conditions under which a group of Eden statements can be executed. Valid relational operators include:

2.Structure

Periods must appear before and after the expression.

Relational operators can be used on both numeric and character string variables. However, mixing the two types of operands for a given operation produces computing errors. In character relational expressions, less than means precedes in the ASCII collating sequence, and greater than means follows in the ASCII collating sequence.
ABCD .LT. ACCD

If two strings in a relational expression are not the same length, the shorter one is padded on the right with spaces until the lengths are equal.
PQRSTU .EQ. PQR

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

Periods must appear before and after the expression.

39

_ _______________
PDS Eden for Pipe Supports - April 2002

Expressions
Expressions are variables, constants, and operators combined to make statements. The format of most Eden expressions is the same as in FORTRAN. Valid expressions include: Replacement Call Do while Indexed Do If - then - else simple arithmetic replacement executes primitives or subroutines execute loop execute loop conditional execution

For every IF statement, there must be an ENDIF statement to end the expression. You can nest up to five If-then-else expressions within an Eden module. For the Replacement, Do while, and If-then-else expressions, you can use parentheses to alter the precedence of calculation.

Replacement Statements
Replacement statements are used to set variables or perform calculations. The following list illustrates the various Replacement statements: thickness = 25. vessel_od = DIMENSION_1 test = test + 1 tutor_name = EXCH1 table_name = BLT // GEN_TYPE // PR_RATING // 5 dim_a = (dim_b + dim_c) * 2. + dim_d In Equipment and Pipe Support Modeling, all three components of a point (or location variable) can be replaced by another point value with one assignment statement.

Example:
In the following example, PT is declared as a buffer of three points. The second statement saves pt [4], pt [5], pt [6] into global location Point_5. In the third statement, the location value stored in point [2] is saved in a PT buffer, the x-coordinate being assigned to pt [7], y to pt [8], and so forth. Likewise, in the last statement, the POINT_3 components are replaced by those of Point_4 in one aggregate operation. Location pt [9] . . point [5] = pt [4] . . pt [7] = point_2 . . point_3 = point [4]

40

_ _______________
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, ...)

Expressions

Example:
Call Place_Cylinder_With_Capped_Ends (diameter, length) Call Define_Placepoint (PP1) Call Place_Connect_Point (CP1)

2.Structure

Do While Statement
The Do While statement is used to form indefinite loops. The condition of a Do While statement must equal a logical value (either true or false). The body of the Do While statement will be repeatedly executed as long as the logical expression remains true.

Example:
The following Do While loop places four cylinders end to end. The pretested loop condition fails on the fifth try (if i equals 4), and control transfers to the message display routine. i=0 do while (i .LT. 4) i=i+1 Call Draw_Cylinder_With_Capped_Ends (diam, leng) enddo Call Display_Message (Out of loop now)

Indexed Do Statement
The Indexed Do statement allows you to form loops that execute a specified number of times. This number is determined by an initial, a terminal, and an incremental parameter of a control variable. The syntax for the Indexed Do statement is:
do V = v1, v2, v3 . . . enddo

where

41

_ _______________
PDS Eden for Pipe Supports - April 2002 V v1 v2 v3 is a control variable (non-string type) are constants or variables that evaluate to the initial, terminal, and incremental parameters respectively. v3 is optional. If v3 is omitted, the system assumes that the incremental parameter is one. V3 cannot be negative.

Example:
In this example, I is set to 1. The body of the loop is then executed. I increments by 2 each time the cycle is complete, and the value 3 is checked against the terminator 20. The iteration continues as long as I is less than or equal to 20. When the iteration is greater than 20, the loop ends.
do I = 1, 20, 2 . . . enddo

If - then - else Statement


If - then - else statements are used when a group of statements is to be conditionally executed. The Eden syntax is the same as FORTRAN syntax.
if (condition) then . . . else . . . endif

Example:
if (DIMENSION_1 .gt. 24.) then thk = thk + .125 else thk = thk + .250 endif

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

42

_ _______________
Functions
Eden provides several functions for performing common mathematical operations. These functions can be used within replacement statements. The following functions must contain the parentheses.

Functions

DSQRT () square root DABS () absolute value DSINR () sine of an angle in radians DCOSR () cosine of an angle in radians DTANR () tangent of angle in radians DSIND () sine of an angle in degrees DCOSD () cosine of an angle in degrees DTAND () tangent of an angle in degrees DASINR () arcsine returned in radians DACOSR () arccosine returned in radians DATANR () arctangent returned in radians DASIND () arcsine returned in degrees DACOSD () arccosine returned in degrees DATAND () arctangent returned in degrees

2.Structure

Example:
The following list illustrates a few possible Eden functions: length = hypot * DSIND (30.) side = DTANR (pi/2) + 32. hypot = DSQRT (a**2 + b**2) angle = DATAND (side1/side2)

43

_ _______________
PDS Eden for Pipe Supports - April 2002

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

44

_ _______________
Load Spec Data
The Load Spec Data primitive gathers information from the database tables in order to place pipe supports.

Load Spec Data

Syntax
Call Load_Spec_Data ( Support_Commodity_Name, Nom_Pipe_D, Support_Item_Key0, Support_Item_Key1, Support_Item_Key2, Support_Sequence_Number, Return_Value )

Options
Support_Commodity_Name Nom_Pipe_D Support_Item_Key0 Value from reference database table 241, column 3. The selected pipes nominal piping diameter in subunits. Value to be matched with item_key0 (column 7) in reference database table 242. Value to be matched with item_key1 (column 8) in reference database table 242. Value to be matched with item_key2 (column 9) in reference database table 242. Value to be matched with column 3 in reference database table 243 along with the material_index variable from reference database table 242. 1 = Spec entry was found for the specified criteria and loaded from the spec database. 0 = Spec entry was not found for the specified criteria.

2.Structure

Support_Item_Key1

Support_Item_Key2

Support_Sequence_Number

Return_Value

45

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Section Member


The Draw Section Member primitive draws a steel member.

Syntax
Call Draw_Section_Member ( Section_Table_Name, Cardinal_xx, Support_Material_Length )

Options
Section_Table_Name Cardinal_xx Section table name loaded by a prior call to load_spec_data.

One of the CARDINAL_xx variables to specify which steel cardinal point to use in placing the steel. The project length of the steel member. This option must be set by the Eden module.

Support_Material_Length

46

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

Place Connect Point

When you call Place Connect Point, the location of the active point is assigned to the connect point. You must place all of the connect points assigned in the symbol processor module.

Syntax
Call Place_Connect_Point (CPn)

2.Structure

Options
CPn Variable defining the connect point (n = 0,1,2,3,4,5).

47

_ _______________
PDS Eden for Pipe Supports - April 2002

Prompt For Orientation


The Prompt For Orientation primitive prompts the user to change the active orientation.

Syntax
Call Prompt_For_Orientation ( 1 )

Options
1 1 is a dummy argument. This call can only be made after Connect Point 1 has been placed.

48

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

Load Section Data

Syntax
Call Load_Section_Data ( Section_Table_Name )

Options
2.Structure
Section_Table_Name This keyword is loaded by a prior call to the Load_Spec_Data primitive.

49

_ _______________
PDS Eden for Pipe Supports - April 2002

Convert NPD to Subunits


The Convert NPD to Subunits primitive converts the coded input value and returns its Real*8 equivalent. This primitive is often used for converting the nominal piping diameter that is stored in the database. Metric files base the diameter in millimeters. Imperial files store the nominal piping diameter as NPD 1/32 + 5000. Thus, 1 inch NPD is 5000 + 32 * 1 = 5032 20 inch NPD is 5000 + 32 * 20 = 5640 For Eden symbols in Piping that use imperial and metric files, hard coding the dimensions is not recommended. A dimension entered as 5 inches and placed in an Imperial file is interpreted as 5 inches. However, the same value placed in a Metric file is interpreted as 5 millimeters. Instead of hard coding, load the dimensions in a table to allow the piping software to convert the dimensions to the correct values. This primitive does not perform unit conversions. If American standard pipe sizes are being used in a Metric file, this primitive will return the NPD in inches.

Syntax
Call Convert_NPD_To_Subunits (coded_input, npd)

Options
coded_input The nominal pipe diameter in internal or coded units. This variable must be the keyword Nom_Pipe_D_n. The nominal piping diameter in subunits.

npd

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

All NPDs used internally in the software are in encoded form. Most table lookups based on NPDs require the input to be in encoded form.

50

_ _______________
Define Active Orientation
The Define Active Orientation primitive allows you to define the active orientation by specifying the directions of the primary and secondary axes. The orientation is defined in the local coordinate system by the symbol. This definition has no bearing on the design file coordinate system. In Piping, this primitive defines the current flow centerline and a direction that is normal to the flow centerline in terms of the connect point orientation (defined by the symbols connect point geometry) in order to place graphic shapes.

Define Active Orientation

2.Structure

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

Syntax
Call Define_Active_Orientation (primary, secondary)

Options
primary secondary Variable that defines the flow centerline or primary direction. Variable that defines the line perpendicular to the flow centerline or secondary direction.

Valid keywords for the primary and secondary variables include: EAST WEST NORTH SOUTH UP DOWN PRIMARY SECONDARY NORMAL

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

51

_ _______________
PDS Eden for Pipe Supports - April 2002

Example:
In the following example, the primary orientation is set to point west, the secondary orientation is set to point down, and the normal points out of the screen:
Call Define_Active_Orientation (WEST,DOWN)

52

_ _______________
Draw Cone

Draw Cone

The Draw Cone primitive places a cone where the first end is at the current active point and the second end is at a location computed by the system given the input length along the primary axis. You must define the diameters of each end of the cone with separate variables.

2.Structure

Syntax
Call Draw_Cone (length, diameter_1, diameter_2)

Options
length diameter_1 diameter_2 The length of the cone (A) which can be positive or negative. The diameter of the cone (B) at the active point. 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 B = DIMENSION_2 C = DIMENSION_3 Call Draw_Cone (A, B, C) stop end

! length of cone ! diameter at active pt ! diameter at opposite end

53

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Cylinder
The Draw Cylinder primitive places a cylinder where the first end is at the current active point and the second end is at a location computed by the system along the primary axis. You must specify the diameter and the length of the cylinder. The active point will be moved to the opposite end.

Syntax
Call Draw_Cylinder (length, diameter)

Options
length diameter The length (A) of the cylinder. The diameter (B) of the cylinder.

Examples
SUPPORT_SYMBOL_PROCESSOR CYLIND tutnam = CYLIND Call Display_Tutorial (tutnam) A = DIMENSION_1 B = DIMENSION_2 Call Draw_Cylinder (A, B) stop end

! length ! diameter

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

54

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

Draw Eccentric Cone

2.Structure

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

Options
length eccentric_offset Cone length (A). Eccentric cone offset. This is the center-to-center distance between cone endpoints as measured positive going against the secondary. Diameter (B) at active point. Diameter (C) at the opposite end.

diameter_1 diameter_2

Examples
SUPPORT_SYMBOL_PROCESSOR ECONE tutnam = ECONE Call Display_Tutorial (tutnam) A = DIMENSION_1 B = DIMENSION_2 C = DIMENSION_3 offset = (C - B) * 0.5 Call Draw_Eccentric_Cone (A, offset, B, C) stop end

! ! ! !

length diameter at active pt diameter at opposite end offset

55

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Projected Rectangle


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

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

Syntax
Call Draw_Proj_Rectangle (length1, length2, projection)

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

length2

projection

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 B = DIMENSION_2 C = DIMENSION_3

! length of projection ! length of side parallel to normal ! length of side parallel to secondary

56

_ _______________
Call Draw_Proj_Rectangle (C, B, A) stop end

Draw Projected Rectangle

2.Structure

57

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Projected Triangle


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

Syntax
Call Draw_Proj_Triangle (project_side_length, project_base_length, project_length)

Options
project_side_length project_base_length project_length Length of the side (A) of the triangle. Length of the base (B) of the triangle. 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 B = DIMENSION_2 C = DIMENSION_3

! length a side ! length of base ! length of projection

58

_ _______________
angle = DIMENSION_4 if (B .GT. 0) then DIMENSION_4 = 0 endif if (angle .GT. 0 .AND. B .EQ. 0) then angle = angle * 0.5 B = 2.0 * (A * DSIND(angle)) endif Call Draw_Proj_Triangle (A, B, C) stop end

Draw Projected Triangle

2.Structure

59

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Semi-Ellipsoid
The Draw Semi-Ellipsoid primitive allows you to place a semi-ellipsoid, where the center is at the current active point. You must specify the diameter of the major axis and the radius of the minor axis. The system does not update to a new active orientation after placement of the semi ellipsoid.

Syntax
Call Draw_Semi_Ellipsoid (major_axis_diameter, minor_axis_radius)

Options
major_axis_diameter minor_axis_radius Variable defining the major axis diameter (A). Variable defining the minor axis radius (B).

Examples
SUPPORT_SYMBOL_PROCESSOR SELLIP tutnam = SELLIP Call Display_Tutorial (tutnam) A = DIMENSION_1 B = DIMENSION_2 Call Draw_Semi_Ellipsoid (A, B) stop end

! major axis diameter ! minor axis radius

60

_ _______________
Draw Sphere
The Draw Sphere primitive allows you to place a sphere where the center of the sphere is at the current active point. You must specify the radius, and the radius must be greater than or equal to () 1/64 inches. The refresh tee and orientation will not change after placement.

Draw Sphere

2.Structure

Syntax
Call Draw_Sphere (radius)

Options
radius Variable (A) defining the sphere radius.

Examples
A = F_to_C_Dim_1*0.5 Call Draw_Sphere (A) ! defining sphere radius

61

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Torus
The Draw Torus primitive allows you to place a torus from the current flow centerline to the current direction of the secondary axis using the bend radius, bend angle, and diameter you specify. This call changes the active orientation.

The torus diameter must be greater than or equal to () 1/32 inches, and the bend radius diameter must be greater than or equal to () 1/32 inches and greater than (>) 1/2 the torus diameter.

Syntax
Call Draw_Torus (radius, angle, diameter)

Options
radius The bend radius of the torus (B) as measured from the origin of the torus to its centerline. The bend angle of the torus (C). The diameter of the torus (A).

angle diameter

Examples
SUPPORT_SYMBOL_PROCESSOR CTORUS tutnam = CTORUS Call Display_Tutorial (tutnam) A = DIMENSION_1 B = DIMENSION_2 if (DIMENSION_3 .eq. 0) then DIMENSION_3 = 90 endif C = DIMENSION_3 Call Draw_Torus (B, C, A) stop end

! torus diameter ! torus bend radius

! bend angle

62

_ _______________
Abort

Abort

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

Syntax
Call Abort (0)

2.Structure

63

_ _______________
PDS Eden for Pipe Supports - April 2002

Convert Unit
The Convert Unit primitive is used to convert distance in a given system of units to the design file system of units. Both lengths are expressed in subunits.

Syntax
Call Convert_Unit (length1, unit type, outlength)

Options
length1 unit type Is the input length in subunits. Is the input as ENGLISH (for inches) or METRIC (for mm) to indicate the units in which length1 is expressed. Is the output after converting length1 to design file system of units.

outlength

Example
In the following example, a length of 10 inches is input. length2 receives the value 10 if the unit type is set to English or 254 if the unit type is set to Metric.
Call Convert_Unit (10, ENGLISH, length2)

64

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

Define Active Point

Syntax
Call Define_Active_Point (point)

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

2.Structure

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

Example
Call Define_Active_Point (POINT_3) Call Define_Active_Point (PP_LOCATION_1)

65

_ _______________
PDS Eden for Pipe Supports - April 2002

Define Orientation By Points


The Define Orientation By Points primitive allows you to redefine the active orientation using three known points.

Syntax
Call Define_Orientation_By_Points (PT1, PT2, PT3)

Options
pt1 The active primary direction is computed using pt1 as the start point. Global or local point. The active primary direction is computed using pt2 as the end point. Global or local point. The active secondary direction is computed using pt3 as the end point. The start point is the intersection between the primary vector from pt1 and its perpendicular from pt3. Global or local point.

pt2

pt3

In case one or more of these points are coincident, the active orientation is unchanged.

Example
In the following example, the call orients the active primary along the line from POINT_1 to POINT_2, and the active secondary towards POINT_3 along a perpendicular of the primary:
Call Define_Orientation_By_Points (point [1], point [2], point [3])

66

_ _______________
Define Point
Syntax
Call Define_Point (point, ref_point, delta_x, delta_y, delta_z, flag)

Define Point

The Define Point primitive allows you to save a point or to calculate a new point based on a reference point and a delta x, y, and z.

Options
point A keyword specifying the saved or calculated point storage location. Local or global point variables are valid values. A keyword specifying the point to be saved or the point from which the new point is to be calculated. Valid values for ref_point include: local point variable global point variable delta_x The delta in the x or east direction of the symbol coordinate system from the reference point. The delta in the y or north direction of the symbol coordinate system from the reference point. The delta in the z or up direction of the symbol coordinate system from the reference point. [optional] If supplied, the deltas are interpreted as offsets along the active primary, secondary, and normal respectively.

2.Structure

ref_point

delta_y

delta_z

flag

Examples
In this example, the current active point is saved in POINT_1. You can make POINT_1 the active point again simply by calling Define Active Point.
Call Define_Point (POINT_1, ACTIVE_POINT, 0, 0, 0)

In this example, a new point is calculated from POINT_1. The result is saved in POINT_2.
delx dely delz Call = 24. = 24. = 24. define_point (POINT_2, POINT_1, delx, dely, delz)

67

_ _______________
PDS Eden for Pipe Supports - April 2002

Display Message
The Display Message primitive allows you to display a message in a tutorial field or MicroStation ER field.

Syntax
Call Display_Message (message, fldno)

Options
message A variable or expression. If necessary, the message can be converted to displayable characters for output. You can specify a message up to 50 characters in length; however, only the first 40 characters will be displayed. A field number on the active tutorial. Possible values are 0 - 255. If 0, the message is displayed in the MicroStation ER field. [optional] This argument defaults to 0 if omitted. Tutorial fields defined (via TDF) to contain data for symbol generation should not receive input through this call.

fldno

Example
dia = -10.0 . . . Call Display_Message (Cone dia is negative: || dia, 0 )

The actual message displayed in the ER field will read:

Cone dia is negative: -10.0

68

_ _______________
Display Tutorial
The Display Tutorial primitive allows you to activate a tutorial and specify an optional tutorial definition file name.

Display Tutorial

Syntax
Call Display_Tutorial (tutnam, tdfnam)

Options
tutnam tdfnam Name of the form (1 - 6 characters) to be activated. [optional] The tutorial file name (1 - 6 characters). If omitted, the TDF name defaults to the tutorial name itself. This argument allows you to activate the same tutorial with different TDF names and hence different global variables for each activation. The same TDF name can be used with different tutorials.

2.Structure

Example
This call activates a tutorial named TEST.
Call Display_Tutorial (TEST)

There is a limit of 10 forms that can be activate. It is also possible to activate the same form several times per symbol execution. However, if a TDF name is used with several forms in the modify mode, only the first such form will display existing data.

Interacting with Tutorials


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

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

69

_ _______________
PDS Eden for Pipe Supports - April 2002

Example
Three possible operator actions can result in control returning to the symbol code for the example below. The first test is against a terminated application field selection. If positive, the data in DIMENSION [LAST_INP_NUM] is accessed and output to field 90. The second test is for the selection of a terminated key-in field. The contents of CSTRING [LAST_INP_NUM] is output to field 100. The receiving variable for the keyed-in text is stored as per TDF. The symbol waits for further operator input by calling Display Tutorial. The tutorial does not redisplay since it is already active. If both tests fail, you must select ACCEPT (the control variable will be set to TRUE), forcing exit from the loop.
ACCEPTED = FALSE do while (.not. ACCEPTED) Call Display_Tutorial (TEST) if (LAST_INP_TYPE .eq. APPLICATION_CMD) then Call Put_Field (dimension [LAST_INP_NUM], 90) else if (LAST_INP_TYPE .eq. USER_KEYIN) then Call Put_Field (cstring [LAST_INP_NUM],100) else ACCEPTED = TRUE endif endif enddo

! application cmd ! ... field

! get out of loop

70

_ _______________
Draw Arc
The Draw Arc primitive allows you to place an arc. An arc may be considered a continuous segment of an ellipse whose axes are known.

Draw Arc

Syntax
Call Draw_Arc (semimajor, semiminor, start_angle, sweep_angle)

Options
semimajor Supplies the length of the semimajor axis and is oriented by the local primary. Supplies the length of the semiminor axis and is oriented by the local secondary. Specifies the start point of the arc segment. The value range is -360.0 to 360.0. Larger or smaller values are reduced to this range, remaindering by 360.0. Positive angles are measured by rotating the primary into the secondary counterclockwise in a right-handed system. specifies the span of the arc segment. The value range is -360.0 to 360.0. Larger or smaller values are reduced to this range, remaindering by 360.0. Rotational sense is counterclockwise, righthanded, from start_angle. The parent ellipse is completely known given the active primary, secondary and the axis lengths. The two angles merely fix the arcs angular position and not the distance of any of its points from the foci.

2.Structure

semiminor

start_angle

sweep_angle

Example
This call places an elliptical arc with major and minor axes of 40 and 20 units respectively. The primary axis is rotated from a 90 degree position through a right angle to produce the arc.
Call Draw_Arc (20, 10, 90, 90)

If you are placing a non-circular arc with start or sweep angles that are NOT a multiple of 90 degrees, MicroStation computes these angles differently. To convert your angle to the input argument, use the following formula: tan(microstation_angle) = (semimajor/semiminor) tan(your_angle)

71

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Complex Surface


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

Syntax
Call Draw_Complex_Surface (argument_1, argument_2)

The call can be made in three modes: 1. 2. 3. Start surface Change class or symbology of elements being placed 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 surface_type The number of elements per face. The MicroStation surface type to build. Typical surface types include: 0 - surface of projection 8 - surface of revolution

Change Class/Symbology
Used to change the class/symbology of elements being placed within the surface. A negative symbol must be placed in front of the first argument. Syntax
Call Draw_Complex_Surface (_element_class, symbology)

72

_ _______________
Options element_class The class of elements to be placed. Typical classes include: primary elements (class = 0, the default) rule elements (class = 4) symbology The symbology of elements to be placed. This is an INTEGER (I*4 or 4 bytes) word. The upper word (2 bytes) is set to: 0 - allows defaults to apply 1 - apply line code only 2 - apply line weight only 4 - apply color only Sum the above values to send in combinations. For example, (3) code and weight to apply is the result of adding (1) apply line code only and (2) apply line weight only. Using this process, you can enter numbers 0-7 (default to all of the above). The lower word supplies the symbology (line code, line weight, color) as per MicroStation format.

Draw Complex Surface

2.Structure

Complete Surface
Used to complete the surface. Syntax
Call Draw_Complex_Surface (-99, 0)

Example
This example shows the creation of a flat-oval projected shape. The opening Draw Complex Surface specifies that each face is composed of 4 elements and that this is a surface of projection.

73

_ _______________
PDS Eden for Pipe Supports - April 2002

The code for placing a flat-oval face is shown (2 arcs and 2 lines). The second call to Draw Complex Surface specifies that rule lines (class=4) will be placed. The minus sign before the class argument is needed by the system to identify ongoing calls. The final call terminates surface construction.
Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Draw_Complex_Surface (4, 0) Draw_Arc (radius, radius, -90, 180) Draw_Line (point_1, point_2) Draw_Arc (radius, radius, 90, 180) Draw_Line (point_3, point_4) Draw_Complex_Surface (4, 0) Draw_Arc (radius, radius, -90, 180) Draw_Line (point_5, point_6) Draw_Arc (radius, radius, 90, 180) Draw_Line (point_7, point_8) Draw_Complex_Surface (-4, 0) Draw_Line (point_1, point_5) Draw_Line (point_2, point_6) Draw_Line (point_3, point_7) Draw_Line (point_4, point_8) Draw_Complex_Surface (-99, 0) ! start projected;

! surface 2

! ! ! ! ! !

start rule lines place a rule line place a rule line place a rule line place a rule line wrap it up

74

_ _______________
Draw Con Prism
The Draw Con Prism primitive places a concentric prism by a point in the center of either rectangular end. The active orientation primary axis is used to orient the direction of projection. The secondary axis orients a side of each end. Whenever possible, use the Draw Proj Shape primitive for pipe supports rather than the Draw Con Prism primitive. Draw Con Prism does not draw the true shape when an envelope file is created for the design file. It is protruded incorrectly at the projected end.

Draw Con Prism

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

2.Structure

Options
length_sec length_norm length_proj length2_sec length2_nor The length of rectangular base along secondary. The length of rectangular base along normal. The length of projection. The length of rectangular top along secondary. The length of rectangular top along normal.

Example
SUPPORT_SYMBOL_PROCESSOR RPRISM tutnam = RPRISM Call Display_Tutorial (tutnam) A = DIMENSION_1 B = DIMENSION_2 C = DIMENSION_3 D = DIMENSION_4 proj = DIMENSION_5 Call Draw_Con_Prism (A, B, proj, C, D) stop end

! ! ! ! !

length length length length length

of of of of of

A B C D E

75

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Curve
The Draw Curve primitive allows you to place a curve string.

Syntax
Call Draw_Curve (no_vertex, point_buffer)

Options
no_vertex point_buffer The number of vertices from 1 - 90. The location of the 1st vertex. The other vertices are sequentially stored in the buffer. Use global or local point buffers.

Example
In this example, the call places a stream curve of 20 points in POINT [24] .. POINT [43].
Call Draw_Curve (20, point_24)

This primitive is not supported by the equipment task but is available in the HVAC task.

76

_ _______________
Draw Ecc Prism

Draw Ecc Prism

The Draw Ecc Prism primitive places an eccentric prism by a point in the center of either rectangular end. The active orientation primary axis orients the direction of projection. The secondary axis orients a side of each end as well as the offset direction. Whenever possible, use the Draw Proj Shape primitive for pipe supports rather than the Draw Ecc Prism primitive. Draw Ecc Prism does not draw the true shape when an envelope file is created for the design file. It is protruded incorrectly at the projected end.

2.Structure

Syntax
Call Draw_Ecc_Prism (length_sec, length_norm, length_proj, length2_sec, length2_norm, offset)

Options
length_sec length_norm length_proj length2_sec length2_norm offset The length of rectangular base along secondary. The length of rectangular base along normal. The length of projection. The length of rectangular top along secondary. The length of rectangular top along normal. 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 B = DIMENSION_2 C = DIMENSION_4 D = DIMENSION_5 E = DIMENSION_3

! ! ! ! !

length length length length length

of of of of of

A B C D E

77

_ _______________
PDS Eden for Pipe Supports - April 2002
offset = (A - C) / 2.0 Call Draw_Ecc_Prism (A, B, E, C, D, offset) stop end ! offset

78

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

Draw Ecc Transitional Element

2.Structure

Syntax
Call Draw_Ecc_Transitional_Element (length_sec, length_norm, length_proj, length_radius, offset)

Options
length_sec length_norm length_proj length_radius offset The length of rectangular base along secondary. The length of rectangular base along normal. The length of projection. The radius of circular face. The center-to-center distance between the rectangular end and the circular end as measured positive going against the active secondary.

Example
SUPPORT_SYMBOL_PROCESSOR ETRANS tutnam = ETRANS Call Display_tutorial (tutnam) A = DIMENSION_1 ! length B = DIMENSION_2 ! length C = DIMENSION_3 ! length D = DIMENSION_4 / 2.0 ! length offset = (A - D) / 2.0 ! offset Call Draw_Ecc_Transitional_Element (A, B, C, D, offset) stop end

of of of of

A B C D

79

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Ellipse
The Draw Ellipse primitive allows you to place an ellipse. The major and minor axes are oriented by the local primary and secondary axes respectively.

Syntax
Call Draw_Ellipse (semimajor_len, semiminor_len)

Options
semimajor_len semiminor_len Half the length of the major axis. 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

_ _______________
Draw Line
The Draw Line primitive allows you to place a line.

Draw Line

Syntax
2.Structure
Call Draw_Line (start_pt, end_pt)

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

Example
In this example, the call places a line from POINT_10 to POINT_20.
Call Draw_Line (point_10, point 20)

81

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Line String


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

Syntax
Call Draw_Line_String (no_vertex, point_buffer)

Syntax
no_vertex point_buffer Supplies the number of vertices from 1 - 90. The location of the first vertex. The other vertices are sequentially stored in the buffer. Use global or local point buffers.

Example
In this example, the call places a line string of 20 vertices, which are found in POINT[24] ... POINT [43].
Call Draw_Line_String (20, point [24] )

82

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

Draw Proj Hexagon

2.Structure

Syntax
Call Draw_Proj_Hexagon (side_length, proj)

Options
side_length proj Side B is the side length. Side A is the length of the projection.

Example
SUPPORT_SYMBOL_PROCESSOR HEXAGON tutnam = HEXAGON Call Display_Tutorial (tutnam) A = DIMENSION_1 D_in = DIMENSION_2 D_out = DIMENSION_3 D_side = DIMENSION_4 if (D_side .GT. 0) then DIMENSION_2 = 0 DIMENSION_3 = 0 endif if (D_side .LE. 0) then if (D_in .GT. 0) then DIMENSION_3 = 0 D_side = D_in * DTAND(30.0) endif endif if (D_side .LE. 0) then

! length of A ! ! !

83

_ _______________
PDS Eden for Pipe Supports - April 2002
if (D_out .GT. 0) then D_side = D_out / 2 DIMENSION_2 = 0 endif endif Call Draw_Proj_Hexagon (D_side, A) stop end

84

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

Draw Proj Octagon

2.Structure

Syntax
Call Draw_Proj_Octagon (side_length, proj)

Options
side_length proj Side B is the side length. Side A is the length of the projection.

Example
SUPPORT_SYMBOL_PROCESSOR OCTGON tutnam = OCTGON Call Display_Tutorial (tutnam) A = DIMENSION_1 D_in = DIMENSION_2 D_out = DIMENSION_3 D_side = DIMENSION_4 if (D_side .GT. 0) then DIMENSION_2 = 0 DIMENSION_3 = 0 endif if (D_side .LE. 0) then if (D_in .GT. 0) then DIMENSION_3 = 0 D_side = D_in * DTAND(22.5) endif endif if (D_side .LE. 0) then

! length of A ! ! !

85

_ _______________
PDS Eden for Pipe Supports - April 2002
if (D_out .GT. 0) then D_side = D_out * DSIND (22.5) DIMENSION_2 = 0 endif endif Call Draw_Proj_Octagon (D_side, A) stop end Call Draw_Proj_Octagon (12, 12)

86

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

Draw Proj Shape

2.Structure

Syntax
Call Draw_Proj_Shape (no_pnt, proj_len, pnt_buffer)

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

Examples
The length of the shape to be placed is 10.0 units. The 5 vertices are in POINT [101] ... POINT [105].
Call Draw_Proj_Shape ( 5, 10.0, point [101])

The projected shapes vertices are found in POINT_1 ... POINT_5. After placement, the active point is updated from the face by which it was placed to the opposite face.
Call Draw_Proj_Shape ( 5, 10.0 )

87

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Rectangular Torus


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

Syntax
Call Draw_Rectangular_Torus (bend_radius, sweep_angle, length_sec, length_norm)

Options
bend_radius sweep_angle The length from torus origin to center of either end. The angle formed between two radii joining the center of each end to the origin. The length of rectangular end along secondary. The length of rectangular end along normal.

length_sec length_norm

Example
SUPPORT_SYMBOL_PROCESSOR RTORUS tutnam = RTORUS Call Display_Tutorial (tutnam) A = DIMENSION_1 B = DIMENSION_2 C = DIMENSION_3 D = DIMENSION_4 Call Draw_Rectangular_Torus (C, D, A, B) stop end

! ! ! !

length of A length of B length of C Sweep angle of D

88

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

Draw Revolved Shape

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

2.Structure

Options
generator_type A keyword specifying the element type being revolved. Keywords include: EL_LINESTR EL_SHAPE EL_ARC total_stroke_angle no_of_steps for line string for planar shape for arc

Specifies the overall angle of revolution in degrees from -360 to +360. Specifies the number of sections to create for the revolved shape. For example, if you specify a value of 2, there will be one intermediate instance of the generator element which will split the revolved shape into two sections. Must be at least 1. An array of points used to define the rotating element. If you are rotating a shape or line string, this array supplies the vertices of the element. If you are rotating an arc, this array must contain three points to define the arc. The first point is the arc origin. The second point defines the length and direction of the primary axis as measured from the arc origin. The third point defines the arc secondary, also relative to the arc origin.

point_buffer

argument_5

For line string or shape: the number of points in point_buffer. For arc: start angle of the arc (angle made between primary axis and the start of the arc segment).

argument_6

For line string or shape: a flag to indicate how edge lines should be placed. Specify a 1 if edge lines are to appear from all vertices. Specify a 0 if edge lines are placed from the two end vertices only. for arc: is the sweep angle of the arc segment. (For arcs, only two edge lines are placed, one from each end point of the arc).

89

_ _______________
PDS Eden for Pipe Supports - April 2002

Example
In this example, a 2:1 semi-elliptical head is placed. The straight section is 24 inches, and the vessel diameter is 120 inches. Only two instances of the arc will appear one at 0 degrees, and another at 180 degrees (intermediate).
straight_flange = 24 dia = 120 dish_depth = dia/4 Call Draw_Cylinder (straight_flange, dia) point_1 = point_0 Call Move_Along_Axis (dia/2, SECONDARY) point_2 = point_0 point_0 = point_1 Call Move_Along_Axis (dish_depth, PRIMARY) point_3 = point_0 total_sweep = 360 arc_sweep = 90 ! save arc center ! point for arc primary ! for next move_along ! define arc secondary ! quadrant arc rotating

Call Draw_Revolved_Shape (EL_ARC, total_sweep, 2, POINT_1, 0, arc_sweep)

If you are rotating an arc, refer to the Draw Arc section for proper specifications of start and sweep angles.

90

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

Draw Shape

2.Structure

Syntax
Call Draw_Shape (no_vertex, point_buffer)

Options
no_vertex point_buffer Supplies the number of vertices from 1 - 90. The location of the first vertex. The other vertices are found in succeeding locations. The system adds the last vertex to coincide with the first vertex and close the shape. Use global or local point buffers.

Example
In this example, the call places a shape of 20 vertices in POINT [24] ... POINT [43].
Call Draw_Shape (20, point [24])

91

_ _______________
PDS Eden for Pipe Supports - April 2002

Draw Transitional Element


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

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

Options
length_sec length_norm length_proj length_radius The length of rectangular base along secondary. The length of rectangular base along normal. The length of projection. The radius of circular face.

Example
In this example, a transitional element with a base measuring 24 x 16 and a height of 30 subunits is placed along the active primary axis. The circular top is drawn with a radius of 6 subunits. After placement, the active point is updated from the face by which the shape was placed to the opposite end.
Call Draw_Transitional_Element (24, 16, 30, 6)

92

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

Get Arc Points

Syntax
Call Get_Arc_Points (arc_definition)

2.Structure

Options
arc_definition An output buffer of 4 points (global or local point buffer). The 4 points returned are (in order): center, one end point, an intermediate point, and the other end point of the arc. They allow the system to reconstruct the circular arc on arc-related calls where this definition must be input. The call will work properly as long as the identified arc is circular. The points are converted to the symbol (local) coordinate system before return.

93

_ _______________
PDS Eden for Pipe Supports - April 2002

Get Arc Size


The Get Arc Size primitive returns the circumferential distance between two points on an arc.

Syntax
Call Get_Arc_Size (arc_definition, from_pt, to_pt, length)

Options
arc_definition An input buffer of four points identifying a circular arc in local coordinates. The subroutine uses this argument to find the angular position or sweep of the arc segment about the center (first point). The center of the arc is then used with the FROM_PT argument to find trace radius. An input identifying the starting point of measurement. It is also used to compute the radius of the circular arc. Global or local point. An input identifying the end point of measurement. This point only establishes an ANGULAR position on the arc determined from the first two arguments. Thus, it may or may not be on the arc itself. Global or local point. The output variable containing the peripheral separation between FROM_PT and TO_PT. The result is accurate as long as both FROM_PT and TO_PT are within the sweep angle of the arc in ARC_DEFINITION. However, if a point is off the curve, the system will route the connection so as to include the arcs end nearer the off-point.

from_pt

to_pt

length

Example
In this example, the Get Point call forces a snap only to an arc. On return, the arc data is obtained with the second call. The length of the arc is then computed by sending the third call (the start point (point [3]), the end point (point [5]), and the arc itself).
int2 . . Call Call Call ret_pt_type, ret_ele_type

Get_Point (PT_SNAP, point [1], ret_pt_type, ret_ele_type, EL_ARC) Get_Arc_Points (point [2]) Get_Arc_Size (point [2], point [3], point [5], length)

94

_ _______________
Get Date
The Get Date primitive allows you to retrieve the current system date into a character variable.

Get Date

Syntax
Call Get_Date (date_string)

Options
2.Structure
date_string The character variable receiving system date in the form: dd-mmm-yyyy

Example
Call Get_Date (cstring_1)

After this call, cstring_1 appears as:

"22-JAN-1989"

95

_ _______________
PDS Eden for Pipe Supports - April 2002

Get Line Size


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

Syntax
Call Get_Line_Size (from_pt, to_pt, size)

Options
from_pt to_pt size The start point of measurement. Use global or local point. The endpoint of measurement. Use global or local point. The output variable containing the distance. This argument is always positive.

Example
In the following example, the code fragment computes the distance between point_1 and point_2 through the previous Get Point calls:
. . Call Get_Point (pt_snap, point [1]) Call Get_Point (pt_snap, point [2]) Call Get_Line_Size (point [1], point [2], distance) . .

96

_ _______________
Get Point
The Get Point primitive allows you to get a point from the operator in addition to an identified element.

Get Point

Syntax
Call Get_Point (pnt_types, ret_pnt, ret_pnt_type, ret_ele_type, ele_types)

Options
2.Structure
pnt_types An INT2 variable mask dictating the types of input you can select. You can combine the following keywords to yield the INT2 result: PT_RESET PT_BORE PT_SNAP PT_PREC PT_EQPID Return by selecting RESET (no point returned). Boresight location point. Snap point. Key-in precision point. Allows you to key-in the equipment name. The system returns its first datum point location, if it exists. Otherwise, it returns the place point of the first item placed for that equipment in the design file. Allows you to key in a NOZZLE ID. The system returns the location of its first connect point. A 2-view data button. Contains the result obtained by adding all the above point types. Any point type can be removed from this mask by subtraction. When forming the mask, remember to use a keyword only once whether adding or subtracting. ret_pnt A global or local point variable containing (on return) the operator-selected point. The design file coordinate system (global) point is transformed to the local coordinate system by using the point and axes of alignment between the two systems. Therefore, the orientation and location of the symbol placepoint must be established prior to this call. Also, the alignment parameters (placepoint location, orientation, global active point, global active orientation) must not be changed between Get Point calls. This can result in returned points not maintaining proper relativity. Use global or local point buffer. An INT2 output variable that contains the type of the returned point. This variable can be tested against the above keywords. It is optional only if subsequent arguments are omitted.

PT_NOZID

PT_3DB PT_ALL

ret_pnt_type

97

_ _______________
PDS Eden for Pipe Supports - April 2002 ret_ele_type An INT2 output variable that contains the coded TYPE of the MicroStation element identified by a SNAP (see the PDS Equipment Modeling (PD_EQP) Reference Guide). It is optional only if subsequent arguments are omitted. It can be tested against these keywords to identify the type code: EL_LINE EL_LINESTR EL_SHAPE EL_ELLIPSE EL_ARC EL_PTSTR EL_CONE ele_types line element line string shape ellipse arc point string cone

An INT2 mask obtained by combining (adding) a number of element type codes just listed. It dictates the types the operator can possibly identify. This variable is optional. If left off, all element types are allowed. EL_ALL contains the combination of all the above type codes. One or more types can be removed from the mask by subtraction. When forming the mask, remember to use a keyword only once whether adding or subtracting.

Example
The following code segment enables the symbol to obtain an arc or a line from the operator using snap or precision key-in:
int2 retpttype, reteletype . . Call Display_Message (Identify arc or Call Get_Point (pt_snap+pt_prec, point reteletype, el_arc+el_line) if (retpttype .eq. pt_snap) then if (reteletype .eq. EL_ARC) then . . else ! . . endif else ! . . endif

line) [101], retpttype, ! is it a snap point? ! an arc was snapped to

it must be EL_LINE

it must be precision

98

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

Move Along Arc

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

Options
arc_definition An input buffer of four points identifying a circular arc in local coordinates. The subroutine uses it to find the angular position or sweep of the arc segment about the center (first point). The center of the arc and the from_pt are used to find the trace radius. An input to identify the measuring start point. It is also used to compute the radius of the circular arc. Global or local point. An input to identify the measuring end point. This point only establishes an angular position on the arc determined from the first two arguments. Therefore, it may or may not be on the arc itself. Global or local point. An input to specify the peripheral traversal distance from from_pt to to_pt. An output location containing the destination point. The direction of travel if either from_pt or to_pt is off. The curve is given by the connecting segment from from_pt to to_pt through the arcs end nearer the off-point.

2.Structure

from_pt

to_pt

travel_dist out_pt

Example
In the following example, the Get Point call forces the operator to snap only to an arc. On return, the arc definition is obtained in point_2 ... point_5. The length of the arc is then computed by sending the third call the center (point [2]), start (point [3]), the end (point [5]), and the arc itself. Finally, the middle point (point [10]) on the arc is calculated by moving along the arc from start (point [3]) toward the end (point [5]). The distance traveled is one-half the arcs size.
int2 ret_pt_type, ret_ele_type . . Call Get_Point (pt_snap, point [1], ret_pt_type, ret_ele_type, el_arc) Call Get_Arc_Point (point [2]) Call Get_Arc_Size (point [2], point [3], point [5], length) Call Move_Along_Arc (point [2 ], point [3], point [5], length/2, point [10]) ! find the middle

99

_ _______________
PDS Eden for Pipe Supports - April 2002

Move Along Axis


The Move Along Axis primitive is similar to the Move By Distance primitive except that Move Along Axis allows you to move the active point a specified distance along any specified axis of the active orientation.

Syntax
Call Move_Along_Axis (distance, axis)

Options
distance axis Variable or constant that defines the distance by which the active point should be moved. Keyword defining the axis along which the active point should be moved. Valid values for axis include: PRIMARY SECONDARY NORMAL EAST WEST NORTH SOUTH UP DOWN

Example
In this example, the active point is moved 24 subunits in the secondary direction.
Call Move_Along_Axis (24., SECONDARY)

100

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

Move Along Line

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

Options
from_line_end to_line_end The starting input point for computing the direction of travel. Global or local point. The ending input point for computing direction of travel. Global or local point. FROM_LINE_END and TO_LINE_END merely determine the direction and not the actual path of travel.

2.Structure

from_pt distance to_pt

The input point from which the travel begins. Global or local point buffer. The input variable containing the distance of travel. The output location variable containing the destination point. Use global or local point buffer.

Example
In the following example, the code fragment finds the midpoint of the line segment obtained with two Get Point calls.
. . Call Get_Point (pt_snap, point Call Get_Point (pt_snap, point Call Get_Line_Size (point [1], distance = distance/2 Call Move_Along_Line (point_1, . .

[1]) [2]) point [2], distance) point [2], point [1], distance, point[3])

101

_ _______________
PDS Eden for Pipe Supports - April 2002

Move By Distance
The Move By Distance primitive allows you to move the active point along the primary axis of the active orientation.

Syntax
Call Move_By_Distance (distance)

Options
distance Variable or constant that dictates how far along the primary the active point should be moved. Negative values can be used.

Example
In the following example, the active point is moved 24 subunits in the primary direction:
Call Move_By_Distance (24.)

In this example, the active point is moved by the distance defined by the variable dimension_a.
Call Move_By_Distance (dimension_a)

102

_ _______________
Move Data
The Move Data primitive writes contents of a variable or expression into another variable.

Move Data

Syntax
Call Move_Data (source_item, destination_item)

Options
2.Structure
source_item destination_item A variable or expression from which data will be moved without conversion. Variable into which data will be moved. Length of data moved is length of the shorter item. If destination_item is a character variable, each source_item byte must be ASCII (32 or more) before it is transferred. Otherwise, characters up to but excluding the first non-ASCII byte make up the destination_item.

This routine is mainly useful for the Read Table primitive where INPUT/OUTPUT contains CHARACTER fields. The following code segment shows how to access such data:
input_1 = 20 Call Move_Data (col3_key, INPUT_2) Call Read_Table (TABLE_SO_AND_SO, INPUT, OUTPUT Call Move_Data (OUTPUT_4, CSTRING_1) ! ! ! ! ! ! INPUT_2 is ASCII field Read table output_4 from table is ... ASCII. Move it into ... global ASCII ... variable CSTRING_1

103

_ _______________
PDS Eden for Pipe Supports - April 2002

Place COG
The Place COG primitive allows you to place the center of gravity (COG) for a piece of equipment. There can be at most two centers of gravity per piece of equipment, each designated by a different keyword. The call is ignored if no datum points are being placed for the piece of equipment since the location of the COG is relative to the first datum point. Define Datum Point for dp1 must be executed before or after this call. Graphics are not created for COGs. Only numeric offsets are stored with the datum point to indicate the location.

Syntax
Call Place_Cog (cog_type, offset_x, offset_y, offset_z)

Option
cog_type Keyword specifying the type of center of gravity you want to place. If a cog type already exists, it is replaced with the new definition. The following keywords are accepted: DRY OPERATING_1 OPERATING_2 offset_x offset_y Distance specifying the easting of the COG in the local coordinate system of the first datum point. Distance specifying the northing of the COG in the local coordinate system of the first datum point. Distance specifying the elevation of the COG in the local coordinate system of the first datum point.

offset_z

104

_ _______________
Position Cursor
The Position Cursor primitive allows you to position the cursor at an input field on the active symbol tutorial.

Position Cursor

Syntax
Call Position_Cursor (fieldno)

Options
2.Structure
fieldno A key-in field number on the active tutorial.

105

_ _______________
PDS Eden for Pipe Supports - April 2002

Put Field
The Put Field primitive allows you to display a value in a tutorial field. It works similarly to default expressions. After the value is evaluated, it must correspond to the numeric/character data type defined for the field.

Syntax
Call Put_Field (value, fldno, ret_code)

Options
value A variable or expression that evaluates to the value to be input to the field. Character fields must receive character data, and numeric fields must receive numeric data. No data conversion between the two types is performed, and such type mismatch causes errors. A field number on the active tutorial. Possible values are 1 - 200 (since only these fields are defined via TDF). Default computations are also performed if necessary as a result of fldno being defined. [optional] A numeric variable to receive completion status of the call. If successful, a 0 is returned. Expect negative values if the call completes unsuccessfully. Such abnormal return may be possible due to: Nonexistent field numbers. Incompatible type conversion. No tutorial being active. Errors in computing defaults will be acknowledged only through system messages in the ER field. By omitting it, you can ensure that the symbol execution is aborted if the call fails to successfully complete. In the case of computing defaults, the call successfully returns.

fldno

ret_code

Example
In the following example, the call puts out 10 in field #2 of the active tutorial. If DIMENSION_2 corresponds to field #2, it also receives a value of 10.0.
Call Put_Field (10, 2)

106

_ _______________
Read Table
The Read Table primitive allows you to read values from a table for use in your symbol definition. This process is called a table lookup. Refer to Reference Data Manager (PD_DATA) Reference Guide for information on the valid naming formats for tables and the valid units that can be used in tables.

Read Table

Syntax
Call Read_Table (table_name, INPUT, OUTPUT, return_code)

2.Structure

Options
table_name INPUT Name of the table to be read. This argument can be a string variable or constant. The global variable name INPUT. Table input parameters must be defined prior to calling Read Table. The number and type of values needed in INPUT_1...INPUT_10 array depends on the number and type of input columns defined for the table. An INPUT_X parameter may be a number or a character string up to eight characters. Assigning numerical data to INPUT elements is not a problem. Character data, however, must be treated differently since INPUT is a REAL array. Characters cannot be assigned to its variables. You must use the Move Data primitive. Refer to the Move_Data primitive for sample usage. Global variable name OUTPUT. The table values read are stored in OUTPUT. You must know the table structure in order to know where each output from the table is stored. An OUTPUT_X field can be numeric or alphanumeric (up to eight characters) depending on the table structure. Refer to the Move Data primitive for accessing character data once it is retreived in an OUTPUT_X variable. [optional] The output argument allowing symbol execution to continue if the call fails to read a table. If supplied, the values returned include: 0 - table read successfully 3 - table not in table library / library not attached 6 - invalid inputs for table look-up.

OUTPUT

return_code

Example
In this example, a table is read obtaining a flange diameter and thickness. The table name is derived from character constants, the flange generic end prep, and the flange pressure rating. The table input is the flange nominal pipe size. The flange diameter is taken from global variable OUTPUT_1, while the flange thickness is taken from global variable OUTPUT_2.
INPUT_1 = Nom_Pipe_D table = BLT // GEN_TYPE // PR_RATING // 5 Call Read_Table (table, INPUT, OUTPUT) flange_diam = OUTPUT_1 flange_thk = OUTPUT_2

107

_ _______________
PDS Eden for Pipe Supports - April 2002 In this example, a table is read obtaining the outside diameter of a pipe given the nominal pipe diameter.
INPUT_1 = Nom_Pipe_D Call Read_Table (MAL_300_5, INPUT, OUTPUT) pipe_od = OUTPUT_3

108

_ _______________
Rotate Orientation
The Rotate Orientation primitive allows you to rotate the active local orientation relative to itself. The coordinate system is rotated about the designated axial direction through the specified angle according to the right-hand rule. When you call this primitive, you change the local symbol orientation without affecting the design file coordinate system.

Rotate Orientation

Syntax
Call Rotate_Orientation (angle, axis)

2.Structure

Options
angle axis Variable or constant that dictates the amount of rotation. Keyword that defines the local axial direction about which to rotate. Valid keywords include: PRIMARY SECONDARY NORMAL EAST WEST NORTH SOUTH UP DOWN

Example
After the last statement is executed, the new primary is oriented down.
Call Define_Active_Orientation (EAST, NORTH) . . . . Call Rotate_Orientation (90, SECONDARY)

109

_ _______________
PDS Eden for Pipe Supports - April 2002

Start Complex Shape


The Start Complex Shape primitive informs the system that linear elements (line, linestring, arc) to be placed subsequently are to be accumulated by the system and grouped as a complex shape. The elements must maintain a continuous flowline when they are sequentially traced through their vertices or end points. (This is a requirement for MicroStation complex shape elements.) The 0 only supplies a nonempty argument list.

Syntax
Call Start_Complex_Shape (0)

Example
call START_COMPLEX_SHAPE (0) Call Define_Active_Orientation (NORTH,EAST) call draw_line (point [1], point [2]) call rotate_orientation (end_angle, normal) call draw_line (point [2], point [3]) Call Move_To_Placepoint (PP1) Call Define_Active_Orientation (NORTH,EAST) call draw_line (point [3], point [4]) call rotate_orientation (start_angle, normal) call draw_arc (inner_dia, inner_dia, 0.0, angle_sweep)! call STOP_COMPLEX_SHAPE (0)

Call Stop_Complex_Shape must be called to notify the system that the last element in the complex shape has been defined. One complex shape can remain in effect for each BEGIN call category, and the system keeps track of all such complex shapes. A default Stop Complex Shape is executed by the system following the element placed last inside a BEGIN category. Any number of complex shapes can be created in a category with pairwise start/stop calls.

110

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

Stop Complex Shape

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

Syntax
2.Structure
Call Stop_Complex_Shape (0)

Example
call START_COMPLEX_SHAPE (0) Call Move_To_Placepoint (PP1) Call Define_Active_Orientation (NORTH,EAST) call draw_line (point [1], point [2]) call rotate_orientation (end_angle, normal) call draw_line (point [2], point [3]) Call Move_To_Placepoint (PP1) Call Define_Active_Orientation (NORTH,EAST) call draw_line (point [3], point [4]) call rotate_orientation (start_angle, normal) call draw_arc (inner_dia, inner_dia, 0.0, angle_sweep)! call STOP_COMPLEX_SHAPE (0)

111

_ _______________
PDS Eden for Pipe Supports - April 2002

Store Orientation
The Store Orientation primitive allows you to store and recall orientations.

Syntax
Call Store_Orientation (save_retrieve_flag, orientation_no)

Options
save_retrieve_flag The value indicating whether active orientation is: being stored (=2) recalled (=1) orientation_no The orientation location number. Valid values include: 1 - 10 local orientation location (known to the current symbol or user function only). global orientation location (known to all main symbol and user function calls).

11 - 20

Example
In this example, the call saves the active orientation into local orientation buffer 8. Later, the active orientation can be restored to its original value:
Call Store_Orientation (2, 8) . . . Call Store_Orientation (1, 8)

112

_ _______________
Support User Function
The Support User Function primitive allows you to call another Eden module compiled as a user function.

Support User Function

The Support User Function module is similar to a SYMBOL_PROCESSOR module, except the first statement reads: Support_User_Function_Definition MODULE-NAME where module-name is a character string (1 to 20 characters) identifying the module being compiled. The User_Function call causes the system to retrieve and execute the module from the Eden library. Please note the following conventions: 1. The set of local variables in the calling module is completely separate from that in the called module. Variables named the same between two modules do not share data or conflict with one another. Data sharing can be done through the global variables as they are used in common. Calls can be nested to any depth with a user function calling itself or other user functions.

2.Structure

2. 3.

Syntax
Call User_Function (module-name, argument1, argument2,....argument9)

Options
module_name arguement1 . arguement9 . The name of user function to execute. The numeric values to pass to the called user function. These are optional arguments and can be omitted from the right end. Values are passed via global variables INPUT_11 through INPUT_19. These are loaded from the optional arguments. Unused variables are zeroed out. INPUT_20 contains the number of optional arguments supplied. OUTPUT_11 through OUTPUT_20 are zeroed out when a user function is called. They can also be used to pass results. The modules are delivered with the Eden Interface allowing you to build certain common shapes not directly supported by any Eden primitive. These functions make use of the Draw Complex Surface primitive to create solid shapes by placing arcs and line strings individually. You can call these user functions much like any other Eden primitive by including arguments in the User_Function statement. You can obtain the source file name for a particular user function by adding the extension .UF to the function name.

113

_ _______________
PDS Eden for Pipe Supports - April 2002

User Function FLAT_OVAL_PRISM


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

It is placed by a point in the middle of the first face. The active primary axis orients the direction of projection and the normal of both faces. The active secondary axis orients the flat sides of the faces.

Syntax
Call User_Function (FLAT_OVAL_PRISM, projlen, length1, depth1, length2, depth2, offset1, offset2, update_flg)

Options
projlen length1 depth1 length2 depth2 offset1 offset2 update_flg Length of projection. Flat segment length of first face. Depth of first face. Flat side length of second face. Depth of second face. Offset of second face from the first face along the secondary axis. Offset of second face from the first face along the normal axis. 0: 1: Dont update active point and orientation upon exit (default). Update active point and orientation to the opposite face upon exit.

114

_ _______________
User Function FLAT_OVAL_TOR
The user function FLAT_OVAL_TOR allows you to place a flat oval torus.

User Function FLAT_OVAL_TOR

2.Structure

It is placed by a point in the middle of the starting face. The active primary axis is the normal of the starting face. The active secondary axis points to the center of rotation, and the active normal axis is the axis of rotation.

Syntax
Call User_Function (FLAT_OVAL_TOR, bend_radius, sweep_angle, length, depth, face_angle, update_flg)

Options
bend_radius sweep_angle length depth face_angle Distance from center of starting face to the center of rotation. Revolved angle. Flat segment length of face. Depth of face. Angle between the flat side of the starting face and the secondary axis. (For a torus rotated about an axis parallel to the flat sides, this is 90 degrees. For a torus rotated about an axis parallel to the curved sides, this is 0 degrees.) 0: 1: Dont update active point and orientation upon exit (default). Update active point and orientation to the opposite face upon exit.

update_flg

115

_ _______________
PDS Eden for Pipe Supports - April 2002

User Function FLAT_OVAL_SEG_TOR1


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

It is placed by a point in the middle of the starting face. The active primary axis orients the direction of projection of the first segment and is normal to the first face of the first segment. The active secondary axis points to the center of rotation. Rotation occurs around the flat sides using the active normal as the axis of rotation.

Syntax
Call User_Function (FLAT_OVAL_SEG_TOR1, bend_radius, seg_angle, num_seg, length, depth, update_flg)

Options
bend_radius seg_angle Length from center of rotation to middle of starting face (>0). Angle between segments (between 0 and 180 degrees as measured between two cross-sections). Number of segments (between 2 and 30 inclusive). Flat segment length of face. Depth of face (half of this depth must be well within the bend_radius). 0: 1: Dont update active point or orientation upon exit (default). Update active point and orientation to the last face upon exit.

num_seg length depth update_flg

116

_ _______________
User Function FLAT_OVAL_SEG_TOR2
The FLAT_OVAL_SEG_TOR2 user function allows you to place a segmented flat oval torus.

User Function FLAT_OVAL_SEG_TOR2

2.Structure

It is placed by a point in the middle of the starting face. The active primary axis orients the direction of projection of the first segment and is normal to the first face of the first segment. The active secondary points to the center of rotation. Rotation occurs around the curved sides using the active normal as the axis of rotation.

Syntax
Call User_Function (FLAT_OVAL_SEG_TOR1, bend_radius, seg_angle, num_seg, length, depth, update_flg)

Options
bend_radius seg_angle Length from center of rotation to middle of starting face (>0). Angle between segments (between 0 and 180 degrees as measured between two cross-sections). Number of segments (between 2 and 30 inclusive). Flat segment length of face. Depth of face (half of this depth must be well within the bend_radius). 0: 1: Dont update active point or orientation upon exit (default). Update active point and orientation to the last face upon exit.

num_seg length depth update_flg

117

_ _______________
PDS Eden for Pipe Supports - April 2002

User Function ROUND_SEG_TOR1


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

It is placed by a point in the middle of the starting face. The active primary axis orients the direction of projection of the first segment and is normal to the first face of the first segment. The active secondary points towards the center of rotation, and the active normal defines the axis of rotation. Cylinders are used to represent the segments.

Syntax
Call User_Function (ROUND_SEG_TOR1, bend_radius, seg_angle, num_seg, radius, update_flg)

Options
bend_radius seg_angle Length between center of rotation and center of starting face (>0). Angle between segments (between 0 and 180 degrees as measured between two cross-sections). Number of segments (at least 2). Cross-sectional radius of any segment (this value must be well within the bend_radius). 0: 1: Dont update active point or orientation upon exit (default). Update active point and orientation to the last face upon exit.

num_seg radius

update_flg

HLINE in certain views may not work cleanly around the junction of segments placed with this user function. User function ROUND_SEG_TOR2, however, works correctly with HLINE even though it is more expensive in terms of design file space.

118

_ _______________
User Function ROUND_SEG_TOR2
The user function ROUND_SEG_TOR2 allows you to place a segmented round torus.

User Function ROUND_SEG_TOR2

2.Structure

It is placed by a point in the middle of the starting face. The active primary axis orients the direction of projection of the first segment and is normal to the first face of the first segment. The active secondary points towards the center of rotation, and the active normal defines the axis of rotation. Projected shapes are used to represent the segments.

Syntax
Call User_Function (ROUND_SEG_TOR2, bend_radius, seg_angle, num_seg, radius, update_flg)

Options
bend_radius seg_angle Length between the center of rotation and the center of starting face (>0). Angle between segments (between 0 and 180 degrees as measured between two cross-sections). Number of segments. Cross-sectional radius of any segment. (This value is well within the bend_radius.) 0: 1: Dont update active point or orientation upon exit (default). Update active point and orientation to the last face upon exit.

num_seg radius

update_flg

119

_ _______________
PDS Eden for Pipe Supports - April 2002

User Function RECT_SEG_TOR


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

It is placed by a point in the middle of the starting face. The active primary axis orients the direction of projection of the first segment, and the normal of the first face of the first segment. The active secondary axis points to the center of rotation. The active normal defines the axis of rotation.

Syntax
Call User_Function (RECT_SEG_TOR, bend_radius, seg_angle, num_seg, length1, length2, update_flg)

Options
bend_radius seg_angle Distance between center of rotation and center of first face (>0). Angle between segments (between 0 and 180 as measured between crosssections). Number of segments (at least 2; at most 30). Length of face along the secondary axis. Length of face along the normal axis. 0: 1: Dont update active point and orientation upon exit (default). Update active point and orientation to the last face upon exit.

num_seg length1 length2 update_flg

120

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

User Function RECT_FLAT_OVAL

2.Structure

It is placed by a point in the middle of the rectangular face. The active primary axis orients the direction of projection and the normal of each face. The active secondary orients the flat sides of the flat oval shape.

Syntax
Call User_Function (RECT_FLAT_OVAL, projlen, length1, depth1, length2, depth2, offset1, offset2, update_flg)

Options
projlen length1 depth1 length2 depth2 offset1 offset2 update_flg Length of projection. Length of rectangular face along the secondary axis. Depth of rectangular face along the normal axis. Flat segment length of flat oval face along the secondary axis. Depth of flat oval face along the normal axis. Offset of flat oval face from rectangular face along the secondary axis. Offset of flat oval face from rectangular face along the normal axis. 0: 1: Dont update active point or orientation upon exit (default). Update active point and orientation to the flat oval face upon exit.

121

_ _______________
PDS Eden for Pipe Supports - April 2002

User Function ROUND_RECT


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

It is placed by a point in the middle of the round face. The active primary axis orients the direction of projection and the normal of each face. The active secondary axis orients a flat side of the rectangular face.

Syntax
Call User_Function (ROUND_RECT, projlen, radius, width, depth, offset1, offset2, update_flg)

Options
projlen radius width depth offset1 offset2 update_flg Length of projection. Radius of round face. Width of rectangular face along the secondary axis. Depth of rectangular face along the normal axis. Offset of rectangular face from round face along the secondary axis. Offset of rectangular face from round face along the normal axis. 0: 1: Dont update active point and orientation upon exit (default). Update active point and orientation to the rectangular face upon exit.

122

_ _______________
3. Defining Symbols
The previous sections explained the tools that you need to completely define a pipe support symbol. This section outlines the basic steps you need to follow using these tools to prepare a complete symbol definition. Basic Steps: 1. Determine what the support will look like and what primitive graphics elements you want to use to create it. Determine what dimensional inputs should be required for placing a symbol based on availability. A symbol cannot be efficiently placed if, in order to provide inputs for a symbol, you perform hand calculations based on numbers from drawings. Determine where connect points are needed for the symbol. Assign global variables to the input. This step allows design of the tutorial for the symbol. Develop the symbol code.

Defining Symbols

2.

3. 4. 5. 6. 7. 8. 9.

3.Symbols

Compile the symbol. Create the form. Create the tutorial definition table. Insert the tutorial definition table into the tutorial definition library.

123

_ _______________
PDS Eden for Pipe Supports - April 2002

124

_ _______________
4. Creating a New Pipe Support
Eden Setup
Before a new pipe support can be defined through Eden, follow these steps: 1. Create a directory path for symbol definition files Login to the server where the PDS project resides Create pipe support symbols directory. If the new components will be shared by two or more projects the new directory could look like this: c:\users\default\projects\custom\suppsym where custom is an optional directory where customized libraries and symbol definition directories for all projects can be kept. If the customized libraries and components will be specific to one project the following alternative can be used: c:\users\default\projects\proj1\suppsym where proj1 is the directory of an existing project. 2. Create a directory path for dimension and spec tables. Login to the server where the PDS project resides. Create the dimension and spec tables directory. c:\users\default\projects\custom\tbls OR c:\users\default\projects\proj1\tbls 3. Create a directory path for for tutorial definition neutral files. Login to the server where the PDS project resides. Create the tutorial definition neutral file directory. c:\users\default\projects\custom\tdf OR c:\users\default\projects\proj1\tdf

Creating a New Pipe Support

4.New

125

_ _______________
PDS Eden for Pipe Supports - April 2002 4. Create a directory path for storing pipe support fabrication drawings. Login to the server where the PDS project resides. Create the fabrication drawing directory. c:\users\default\projects\custom\drawing OR c:\users\default\projects\proj1\drawing 5. Create a directory path for storing pipe support drawing seed files, and copy them to this directory. Login to the server where the PDS project resides. Create the pipe support seed files directory. c:\users\default\projects\custom\psmsymbols OR c:\users\default\projects\proj1\psmsymbols Copy standard delivered seed files into the pipe support seed files directory.
copy c:\win32app\ingr\pdshell\psmsymbols\*.* c:\users\default\projects\custom\psmsymbols\

OR

copy c:\win32app\ingr\pdshell\psmsymbols\*.*

c:\users\default\projects\proj1\psmsymbols\

6.

Create a directory path for graphic data and table libraries, and copy them into this directory. Login to the server where the PDS project resides Create library directory. c:\users\default\projects\custom\libs OR c:\users\default\projects\proj1\libs Copy standard delivered libraries into library directory.
copy copy copy copy c:\win32app\ingr\rdusrdb\*.l* c:\users\default\projects\custom\libs\ c:\win32app\ingr\pdshell\lib\*.l* c:\users\default\projects\custom\libs\ c:\win32app\ingr\fwplus\ESL\AISC.dat c:\users\default\projects\custom\libs\ c:\win32app\ingr\fwplus\ESL\AISC.idx c:\users\default\projects\custom\libs\

126

_ _______________
OR
copy copy copy copy

Creating a New Pipe Support

c:\win32app\ingr\rdusrdb\*.l* c:\users\default\projects\proj1\libs\ c:\win32app\ingr\pdshell\lib\*.l* c:\users\default\projects\proj1\libs\ c:\win32app\ingr\fwplus\ESL\AISC.dat c:\users\default\projects\proj1\libs\ c:\win32app\ingr\fwplus\ESL\AISC.idx c:\users\default\projects\proj1\libs\

If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used. 7. Access the Reference Database Defaults form and enter the node name and path to the directories previously defined. Access the pdshell form. Select a project from the form. Select the Reference Data Manager option. Select the Default Project Control Data option. Enter the path and node name to the directories previously created.
Piping Eden Path: c:\users\default\projects\custom\pipesym\ Piping Eden node: <server name> Dim/Spec Table Path: c:\users\default\projects\custom\tbls\ Dim/Spec Table node: <server name> Support TDF Path: c:\users\default\projects\custom\tdf\ Support TDF node: <server name>

Make sure that the Piping Spec definitions are specified. If a U.S. standards project is being used the following data should appear:

4.New

Piping Spec Path: c:\win32app\ingr\rdusrdb\spec_data\ Piping Spec node: <server name>

If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used. A detailed description of the Default Project Control Data option is provided in the next few pages. 8. Access the Reference Database Management Data form, and define the node name and directory path to the graphic data and table libraries. When testing new libraries in a live project, it is recommended to enter them as "Not Approved." Select Cancel on the Defaults form. Select the Reference Database Management Data option. Select the Default All Library Locations, and enter the library directory previously created.

127

_ _______________
PDS Eden for Pipe Supports - April 2002
Network Address: <server name> Directory: c:\users\default\projects\custom\libs

Make sure that the specifications are correct for each library (some of the default values are incorrect). The following specifications are used for a U.S. standards project: Piping Job Spec Table Short Matl Description Long Matl Description Specialty Matl Description Standard Note Label Description Piping Assembly Graphic Commodity Pipe Support Tutorial Definition Library Pipe Support Section Table Library Physical Data - U.S. Practice us_pjstb.l us_shbom.l us_lgbom.l us_spbom.l std_note.l labels.l assembly.l pip_gcom.l ppsm_tlib.l AISC us_pcdim.l

If working in a non-U.S. standards project, see the rdb directory being used to find the correct specifications To revise an entry, follow these steps: Identify the library to be checked. Place the cursor at the beginning of the "Specification" field. Delete to the right of the cursor. Enter the correct value and press the return key. Accept the form. A detailed description of the Reference Database Management option is provided in the next few pages Change the location of pipe support seed files.
Network Address: <server name> Directory: c:\users\default\projects\custom\psmsymbols

Change the pipe support drawings base directory.


Network Address: <server name> Directory: c:\users\default\projects\proj1\drawings\

128

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

Reference Database Management Data

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

4.New

2.

Select RDB File Type Select the RDB file from the list of files. You can use the scroll arrows to review the listed files. The system identifies the file for the selected field in the fields at the bottom of the form. There are no default settings for these files; you must define the applicable file locations before you can continue. Material/Specification Reference Database Identifies the Material Reference Database for the project. Refer to the Project Setup Manager in the Project Administrator (PD_Project) Reference Guide for more information on this database. Identifies the location of the Spec Table library.

Piping Job Specification Table Library

129

_ _______________
PDS Eden for Pipe Supports - April 2002 Short Material Description Library Identifies the library that contains the short bill-of-material description for all piping commodity items and the BOM description addenda for taps. Identifies the library that contains the long BOM description for all piping commodity items. The long BOM description is only used for requisitions. Identifies the library that contains the BOM description for engineered items, in-line instruments, and pipe supports. This library tends to be customer-specific. Identifies the location of the standard note library. Identifies the location of the label description library. Identifies the location of the Piping Assembly library. This library contains the symbol definitions for assemblies. Identifies the library that contains the Eden modules used to place components in the model. Identify the library files that contain the physical data tables for a range of geometric industry standards. Identifies the user-defined library that contains the map for translating the piping commodity names displayed on Intergraph forms to names specified by the user. Identifies the path to the drawing border files to be used when creating drawings. A set of border files are delivered to the directory c:\win32app\ingr\pddraw\border\. Identifies the location of the FrameWorks section library used to model the graphics of various standard sections. Identifies the location of the tutorial definition library for pipe supports. Identifies the location of the Imagineer seed files used to generate drawing files for pipe supports. Location to store the fabrication drawings for pipe supports. Long Material Description Library

Specialty Material Description Library

Standard Note Library Label Description Library Piping Assembly Library

Graphic Commodity Library

Physical Data Library

Commodity Synonym Library

Orthographic Drawing Borders

Pipe Support Section Table Library

Pipe Support Tutorial Definition Library Pipe Support Seed Files

Pipe Support Drawing Base Directory 3.

Key in any changes to the selected RDB files. Refer to Delivered Reference Data in the Reference Data Manager (PD_DATA) Reference Guide for a listing of the delivered reference data files. If you specify an unapproved file, the system will use the unapproved file for all Reference Data Manager operations (such as revising entries in a library).

130

_ _______________
Refer to the Project Data Manager in the Project Administrator (PD_Project) Reference Guide for information on setting the choice of data for a model file or drawing. 4. You can select Approved > Not Approved to copy the approved definition of the selected RDB file to the Not Approved fields. Select confirm to update the information.

Reference Database Management Data

Refer to the individual managers for information on posting the unapproved information to the approved files. 5. You can select Default Project Control Data to define the default location for the RDB source files used during the operation of the Reference Data Manager. Select Confirm following each change to the reference to data to accept the specified file location. THEN Select Cancel to exit the form.

6.

4.New

131

_ _______________
PDS Eden for Pipe Supports - April 2002

Default Project Control Data


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

Operating Sequence
1. Select the field to be defined, and key in the location of the source files and the associated node name. Piping Eden Path / Node Eden Table Path / Node the default location for the Eden source files. The default location of the Dimension Table and Spec Table source files. The default location for the neutral files to be used to load the Specification/Material Reference Database. The default location for the Piping Assembly Language source files. The default location for the Standard Note (code list) source files. The default location for the Equipment Eden source files. The default location for the Equipment tutorial definition files. The default location for the model builder language source files.

Piping Spec Path / Node

Assembly Path / Node Standard Note Library Equipment Eden Path / Node TDF Table Path / Node Model Builder Path / Node

132

_ _______________
Support TDF Path / Node 2. Select the Confirm ( ) button to accept any changes to the Project Control Data.

Default Project Control Data

The default location for the pipe support tutorial definition neutral files.

4.New

133

_ _______________
PDS Eden for Pipe Supports - April 2002

134

_ _______________
Glossary
AA code AABB code AABBCC code An alphanumeric code used to identify a group of elements. An alphanumeric code which defines the class of an item. an alphanumeric code which represents a specific item type within a given class. This value is also referred to as the Item Name. Operator used to form arithmetic expressions.

Glossary

arithmetic operator assembly attribute beginning statements BOM call statement code list

Glossary

see piping assembly A property or characteristic of an entity. A column in an entity table. Eden statements that define the types of modules being entered. bill of materials Eden statement used to execute system primitives (or subroutines). A set of acceptable values for a particular attribute (column) which can be referred to by an index number or selected from a form. For example, the code list set for the fluid code attribute allows you to select from a set of standard entries (such as P for process or MMA for methyl alcohol). Files which define the values for all codelists having universal applicability within PDS. an attribute linked to a specific entry in a code list set. These attribute values can be referenced by entering the associated code list number. A file which contains the standard color settings to be used for a design file or set of design files. An attribute of a table. A group of columns defines a table. Text inserted into Eden code which is ignored by the system. Comments can be used to describe the code and to provide instructions to the user. a user-defined code that provides an index to the material descriptions in the Material Data Tables of the Specification/Material Database. a standard component found in a manufacturers catalog (off-the-shelf component). a graphic symbol representing a commodity item, specialty item, instrument, or pipe support. Gate valves, elbows and expansion joints are examples of piping components.

code list sets

code-listed attribute

color table

column comment

commodity code

commodity item

component

135

_ _______________
PDS Eden for Pipe Supports - April 2002 database A collection of comprehensive informational files having predetermined structure and organization that can then be communicated, interpreted, or processed by a specific program. The part of the database that is made of rows and columns and contains information about the project and design elements. a database which contains the non-graphic design data for a project. Each model represents a partition of the database. see physical data table Eden statement used to form indefinite loops. The condition of a Do While statement must equal a logical value (either true or false). The body of the Do While statement will be repeatedly executed as long as the logical expression remains true. a high-level parametric language (similar to FORTRAN) which uses information from the Piping Job Specification and Design Database to access parametric and dimensional data, and place parametric symbols. the source code used to define and place parametric symbols in the model. Eden modules are contained in the Graphic Commodity Library. Eden statements that mark the end of the module in which the system has been processing. An object (project, drawing, element, etc.) of interest about which information is stored; a relational database table. Variables, constants, and operators combined to form statements. An area of a table used to display information or receive input. An interface or screen menu designed with the I/FORMS product or with the DM/DBA product. Because many of the screen menus in the application software on CLIX workstations are built with I/FORMS, you must have the FORMS_S product on your workstation. There is no such requirement for Windows NT. a file that determines the contents and format of a report. It defines all the needed criteria for creating the actual report, including which database attributes are reported. The name of the entire path or directory hierarchy to a file, including the file name. See also relative path name. Graphic Commodity Library Physical data module containing information common to more than one symbol. Generic physical data modules are called by specific physical data modules. database table

design database

dimension table Do While statement

Eden

Eden module

ending statements

entity

expression field form

format file

full path name

GCL generic physical data module

136

_ _______________
Geometric industry standard a code-listed attribute which identifies the source of the data (industry standard such as ANSI, ISO, or DIN, or company standard) from which the specific geometry of a commodity item is deduced. System-defined names that can be referred to at any subroutine level. a data library which contains the parametric symbol definitions (Eden modules) required to place piping and instrument components in a 3-D model. Eden statement that allows a group of statements to be conditionally executed. global variable Graphic Commodity Library

Glossary

If - then - else statement

Glossary

Indexed Do statement

Eden statement which allows loops that execute a specified number of times. an item used to perform a process measurement, process indication, or control function. Instruments can be defined in the Piping Job Specification or defined interactively while working in the model. Eden code used to define the interference envelope for a component, to be used in interference detection to show clashes in the model. name used to access the Piping Job Specification. Refer to AABBCC code. Eden label for specific values or groups of values. Keywords can appear as arguments in system-defined primitives (or subroutines). a library which defines the types of labels and the label formats used in PDS 3D. Variable that is declared in the symbol definition, and which can only be referred to in the same Eden module as the variable itself. Operator used to combine relational expressions into more complex logical expressions. a library which contains the long bill-of-material descriptions for all piping commodities. model code a 3-D design volume. name used to reference the parametric definition of a component. The model code is also referred to as the new item name. Eden code used to define the symbol graphics to be placed in the model.

instrument

interference parametric shape definition item name keyword

Label Description Library

local variable

logical operator

Long Material Description Library MC model model code

model parametric shape definition module

a specialized application within PDS such as the Piping Designer or Equipment Modeling task.

137

_ _______________
PDS Eden for Pipe Supports - April 2002 monument MTO network the origin point for a coordinate system or design volume. material take-off An interconnection of host computers and workstations that enables them to share data and control. The term network can mean the devices that connect the system, or it can mean the connected system. an ASCII file which can be used to load data into a library, database, or design file. nominal piping diameter a compiled library which contains reference data which can be accessed by the task. For example, the Material Description Library. operator code Symbol or string used in conjunction with variables to form expressions. operator type Piping Assembly Language Eden code used to describe the graphics symbol placed for a component in the model. Parametric shape definitions are divided into two basic types: model parametric shapes and interference envelopes. a subset of the database. Each model represents a partition of the database. Piping and Instrumentation Diagram The sequence of directories leading to a file. See also full path name and relative path name. Plant Design System a user-defined component. Specialty items can be defined in the Piping Job Specification database or defined interactively while working in a model. A set of code which gathers data to use in placing graphics for commodity items. a table which contains the physical data such as dimensions, weights, and surface area required for component placement, interference checking, stress analysis, and MTO reporting. These tables can be stored in different physical data libraries segregated by geometric industry standard (practice). a group of associated components that can be placed as a logical group (such as a valve with mating flanges) using Piping Assembly Language syntax.

neutral file

NPD object library

OC operator OT PAL parametric shape definition

partition P&ID path name

PDS piping specialty

physical data definition

physical data table

piping assembly

138

_ _______________
Piping Assembly Library Piping Job Specification non-graphics data which provides selection criteria for piping commodity items, engineered items, and instruments. a classification of components by service or specification. For example, a 150 pound carbon steel specification. Piping Job Specification A group of facilities and equipment used to perform one or more material processing functions within a given geographical area. One company may have many plants located in many different geographical locations. Piping Materials Class System-defined Eden routines that perform specific functions for symbol definition. A term used for the convenient grouping of either all or part of the facilities and equipment that constitute a plant. At a given time, the items that constitute the plant can be included in one or more projects. An alphanumeric code used to refer to a specific project. a database used to define all the information related to managing a project including design area definitions, interference management data, and revision management data. Reference Database Piping Materials Class

Glossary

a library which contains the piping assembly definitions which define the parameters necessary to place a piping assembly automatically in the model.

PJS plant

Glossary

PMC primitive

project

project number project control database

RDB Reference Database

A collection of reference data containing information relative to industry design codes, vendors catalog data, job specifications, commodity libraries, graphics symbology, label descriptions, report formats and other information of a similar manner. A database management system that uses SQL, the Structured Query Language, to implement and query data in relational tables.

Relational DataBase Management System RDBMS Relational Interface System relational operator

A generic relational database interface that isolates the differences in specific vendors relational database management systems. Operator used to form relational expressions that test the value of an Eden expression or establish conditions under which a group of Eden statements can be executed. The sequence of directories leading from the current directory to a particular file. See also path name and absolute path name.

relative path name

139

_ _______________
PDS Eden for Pipe Supports - April 2002 replacement statement report format file RIS row Eden statements used to set variables or perform calculations. see format file Relational Interface System. A unit of related information in a table. One collection of column values for a table. An RIS schema identifies a unique database/user combination existing in a commercial database system. a set of values used to scan a database or object library. default data used in the creation of new projects/models/drawings. a library which contains the short bill-of-material descriptions for all piping commodity items and the description addenda for taps. A grouping of three-dimensional world data corresponding to schematic data from one or more units. The relation-ship of site with plant and project is identical to that between unit with plant and project. symbol name the uncompiled version of a language file or other data table. Source files are usually contained in text libraries. See also neutral file. a library which contains the Piping Job Specification tables and other special tables which contain nonphysical data. an piping specialty or instrument. a library which contains the bill-of-material descriptions for engineered items, instruments, and pipe supports. Physical data module that determines the dimensions and other physical properties for a specific component. a set of acceptable responses defined in the Standard Note Library. See also code-list. library which contains the text for code-listed attributes and standard notes. All attributes identified as code-listed are stored in the database as integer data. A set of code used to produce graphics for a subcomponent on a commodity item. The controlling function or logic used to produce the graphics for a commodity item.

schema

search criteria seed data Short Material Description Library site

SN source file

Spec Table Library

specialty item Specialty Material Description Library specific physical data module standard note

Standard Note Library

sub-symbol processor

symbol processor

140

_ _______________
task A specialized PDS function such as the Piping and Instrumentation Diagrams (P&ID) task or the Piping Designer task. Working database in which the actual engineering or design effort is performed. A separate task database exists for each PDS task. Task Database task database TDB text library

Glossary

a library which contains a set of ASCII files. The PDS 3D software enables you to extract source files from a text library. To switch; to change between two alternatives.

toggle tutorial definition table type 63 element

Glossary

Text table containing data used in placing graphics for equipment. an element used to store active parameters and customization data in a model or drawing. Most of the customization data defined with the Project Data Manager is stored in a type 63 element. A grouping of those parts of the schematic and individual worlds of a plant that together perform a given process function. An expression whose value can change. Used as a placeholder for information in Eden code. Variables can be either global or local in Eden code.

unit

variable

141

_ _______________
PDS Eden for Pipe Supports - April 2002

142

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

Index

Index

143

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

144

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

Index

Index

145

_ _______________
PDS Eden for Pipe Supports - April 2002

146

Potrebbero piacerti anche