Software Customisation Reference Manual
Software Customisation Reference Manual
Reference Manual
AVEVA Solutions Ltd
Disclaimer
Information of a technical nature, and particulars of the product and its use, is given by AVEVA
Solutions Ltd and its subsidiaries without warranty. AVEVA Solutions Ltd and its subsidiaries disclaim
any and all warranties and conditions, expressed or implied, to the fullest extent permitted by law.
Neither the author nor AVEVA Solutions Ltd, or any of its subsidiaries, shall be liable to any person or
entity for any actions, claims, loss or damage arising from the use or possession of any information,
particulars, or errors in this publication, or any incorrect use of the product, whatsoever.
Copyright
Copyright and all other intellectual property rights in this manual and the associated software, and every
part of it (including source code, object code, any data contained in it, the manual and any other
documentation supplied with it) belongs to AVEVA Solutions Ltd or its subsidiaries.
All other rights are reserved to AVEVA Solutions Ltd and its subsidiaries. The information contained in
this document is commercially sensitive, and shall not be copied, reproduced, stored in a retrieval
system, or transmitted without the prior written permission of AVEVA Solutions Ltd. Where such
permission is granted, it expressly requires that this Disclaimer and Copyright notice is prominently
displayed at the beginning of every copy that is made.
The manual and associated documentation may not be adapted, reproduced, or copied, in any material
or electronic form, without the prior written permission of AVEVA Solutions Ltd. The user may also not
reverse engineer, decompile, copy, or adapt the associated software. Neither the whole, nor part of the
product described in this publication may be incorporated into any third-party software, product,
machine, or system without the prior written permission of AVEVA Solutions Ltd, save as permitted by
law. Any such unauthorised action is strictly prohibited, and may give rise to civil liabilities and criminal
prosecution.
The AVEVA products described in this guide are to be installed and operated strictly in accordance with
the terms and conditions of the respective license agreements, and in accordance with the relevant
User Documentation. Unauthorised or unlicensed use of the product is strictly prohibited.
AVEVA Solutions Ltd, High Cross, Madingley Road, Cambridge, CB3 0HB, United Kingdom
Trademarks
AVEVA and Tribon are registered trademarks of AVEVA Solutions Ltd or its subsidiaries. Unauthorised
use of the AVEVA or Tribon trademarks is strictly forbidden.
AVEVA product names are trademarks or registered trademarks of AVEVA Solutions Ltd or its
subsidiaries, registered in the UK, Europe and other countries (worldwide).
The copyright, trade mark rights, or other intellectual property rights in any other product, its name or
logo belongs to its respective owner.
Software Customisation Reference Manual
Contents Page
Reference Manual
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:1
Summary of Objects, Members and Methods . . . . . . . . . . . . . . . . . 2:1
Object Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:1
Methods Available to All Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:3
Forms and Menus Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:4
Members Contained by All Gadgets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:4
Summary of Gadget-Specific Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:5
Gadget Syntax Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:6
Rules for Presenting and Using Syntax graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:6
Setting Up Gadget Anchoring: <fganch> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:7
Setting Up Gadget Docking: <fgdock> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:7
Setting-Up the Gadget’s Position: <fgpos> and <fgprl> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:8
Setting Up the Gadget’s Width and Height: <vshap>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:9
Setting Up the Gadget’s Tagwidth (TEXT, TOGGLE and OPTION): <fgtagw> . . . . . . . . . 2:10
Setting Up the Gadget’s 2D Screen Position: <xypos> . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:10
Object Type Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:11
ALERT Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:11
ARC Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:12
ARRAY Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:20
BANNER Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:24
BAR Gadget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:25
BLOCK Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:27
BOOLEAN Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2:27
i 12.0
Software Customisation Reference Manual
ii 12.0
Software Customisation Reference Manual
iii 12.0
Software Customisation Reference Manual
iv 12.0
Software Customisation Reference Manual
v 12.0
Software Customisation Reference Manual
vi 12.0
Software Customisation Reference Manual
Introduction
1 Introduction
This manual is the Reference Manual for the AVEVA Programming Language, PML.
It is intended for users who are already familiar with PML. Users who are starting to use
PML should refer to the Software Customisation Guide, which should be used together with
this manual.
There are two versions of PML, the older one, known as PML 1, and the newer one, known
as PML 2. PML 2 has been written specifically for creating and customising the AVEVA GUI,
and this manual is mainly concerned with PML 2.
However, PML 2 has not completely replaced PML 1, and there are some tasks which are
carried out more efficiently using PML 1 facilities. In particular, this manual describes the
PML 1 expressions package, which is used within PDMS; for example, for writing rules and
defining report templates. You should also refer to the Database Management Reference
Manual.
This manual contains:
• A list of PML 2 Objects, Members and Methods. For the Forms and Menus objects, the
command syntax relating to the objects is included.
Note: Many properties of Forms and Gadgets that were previously set using commands
should now be set using the Form or Gadget methods. In general, the only
commands described are those which have not been replaced by methods. If you
are maintaining old code, you may need to refer to the edition of the AVEVA Software
Customisation Guide dated October 1995, which describes the old syntax in detail.
1:1 12.0
Software Customisation Reference Manual
Introduction
1:2 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:1 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:2 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:3 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:4 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:5 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Bar
Button
List
Option
Para
Slider
Text
Text-pane
Toggle /Rtoggle
View Alpha
View 2D
View 3D
Numeric Input
Container
Combobox
Frame
Line
Selector
View:Plot
SetFieldProperty X
SetFocus X X X X X X X X X X X
SetHeadings X
SetLine X
SetPopup X X X X X X X X X X X X X X X
SetRange X
SetRows X
SetSize X X X X
SetTooltip X X X X X X X X X
SetValue X
ShowPopup X
Shown X X X X X X X X X X X X X X X X X X X
Subtype X X X X X X X X X X X X X X X X X X X
Type X X X X X X X X X X X X X X X X X X X
ValidateCall X
2:6 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
4. Continuous vertical and horizontal lines without a “ + “ symbol represent flow lines of
the graph.
1. The presence of a “*“ symbol in a vertical line indicates that the allowed direction of
traverse is upwards.
2. The presence of a “<“ symbol on a horizontal indicates that the allowed direction of
traverse is backwards.
3. The symbols “.“, “/“, “ ‘ “ are just cosmetic to help the graph to look better.
.---<-------------.
/ |
>-- <fganch> -----------+-- ANCHOR --+--+- Left ----. |
| +- Right ---| |
| +- Top -----| |
| ‘- Bottom --+---+---*
| |
+---- None ----|
‘---- All------’-->
2:7 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
The subgraph <fgprl>, shown below, sets the gadget position relative to another gadget or
the form’s extent. For example, you can use it to position a gadget halfway across the width
of a form.
2:8 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:9 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
The <fgtagw> graph supports both the simple ‘tagtext’ setting and/or the specification of the
maximum width of any tag.
If the tag width is not explicitly given then it is assumed to be the number of characters in the
‘tagtext’ string multiplied by the horizontal grid size (the notional character width for the font).
You can specify the tag width without specifying any tagtext at definition time; this can be
added at run time
2:10 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:11 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:12 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:13 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
EndPosition(POSITION)
Through(POSITION)
Complement()
Cord(REAL)
CordHeight(REAL)
StartPosition(POSITION)
AnglePosition(REAL)
2:14 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
AngleDirection(REAL)
EndTangent()
AngleTangent(REAL)
StartTangent()
2:15 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
XYOffset(POSITION)
Near(POSITION)
Proportion(REAL)
2:16 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Chord()
Length()
ChordHeight()
2:17 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Intersections(LINE) Intersections(PLANE)
Intersections(ARC)
2:18 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Tangents(POSITION)
Tangents(ARC)
2:19 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
On(POSITION) 8
On(POSITION) 9
Methods
2:20 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:21 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:22 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:23 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Command
2:24 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:25 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The BAR command creates a bar menu within a form definition.
The recommended way to create menu fields on the bar is to use the bar's Add() method.
bar
!this.bar.add ( 'Choose', 'Menu1')
!this.bar.add ( ' window', 'Window' )
!this.bar.add ( 'help', 'Help' )
Note: The use of the two special menu names ’Help’, which adds a system help menu that
calls the online help; and ‘Window’, which adds a system Window menu that lists all
the displayed windows.
2:26 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
Methods
None of these methods modifies the original object.
2:27 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Member
Methods
None of these methods modifies the original object.
2:28 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:29 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:30 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The BUTTON command defines a button, and specifies its position, tag or pixmap, callback
text and control attribute.
You can define the BUTTON to be either PML-controlled, or core-code controlled using the
gadget qualifier attribute control type, with values ‘PML” or “CORE”.
The files defining any pixmaps should be specified in the form's default constructor method
using the gadget's AddPixmap() method.
A Button type Linklabel provides a purely textual button presentation, often used to indicate
a link to some application item, e.g. a hyperlink to a file, a link to an associated form. An
Example of the Linklabel gadget is shown on the example form in Fold up Gadget Link
Example Form with Fold-up panels, NumericInput and Linklabel gadgets.
The tag text is shown in a different colour to all other gadget's tag text. The link label gadget
highlights by underlining when the mouse cursor passes over it. Pressing it causes a
SELECT event to be raised and runs any associated call back.
Note:
2:31 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
.--------<-------.
/ |
>-BUTTON gname -+- LINKLabel -+-- tagtext -------|
| +-- <fgpos> -------|
| +-- CALLback text -|
| +-- TOOLTIP text --|
| +-- <fganch> ------|
| +-- <fgdock> ------|
| +-- CORE ---------* Core managed gadget
| | .------<-----.
| |/ |
| +- FORM fname -|
| +- <vshap> ----*
| |
| +- TOOLTIP text -.
| '----------------'-->
|
| .--------<----------.
+-- TOGGLE -./ |
'-----------+- tagtext -----------|
+- <fgpos> -----------|
+- CALLback text -----|
+- TOOLTIP text ------|
+- <fganch> ----------|
+- <fgdock> ----------|
+- CORE --------------| Core managed gadget
+- BACKGround <colno>-|
+- PIXMAP <vshap> ----*
| .------<-----.
|/ |
+- FORM fname -|
+- <vshap> ----*
|
+- OK -----.
+- APPLY --|
+- CANCEL -|
+- RESET --|
+- HELP ---|
'----------+- TOOLTIP text -.
'----------------'-->
Note: It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
The Pixmaps associated with Button gadgets can be changed after the gadgets have been
displayed on a form.
Method syntax is:
AddPixmap( !pixmap1 is STRING )
AddPixmap( !pixmap1 is STRING, !pixmap2 is STRING )
2:32 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Where: !pixmap is a string holding the file pathname of the required .png file, e.g.
%pmllib%\png\camera.png
!pixmap1 shows the Un-selected state of the gadget, and pixmap2 shows the Selected
state.
Notes:
1. It is recommended that when you define the gadget you set its size to encompass the
largest pixmap which you will later add. Failure to do this may give rise to unexpected
behaviour.
2. Historically you could add a third pixmap which was used when the gadget was de-
activated. This practice is no longer necessary as the gadget pixmapped is
automatically greyed-out on de-activation.
Methods
2:33 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:34 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2.5.12 COLUMNFORMAT
The column object defines the way in which a column of a table object is populated.
The formatting of a column should be separate from the column definition itself and be held
within the report object used to extract data from a table object. This will allow the same
table to have many different reports produced from it, without the need to regenerate the
table.
2:35 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:36 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:37 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:38 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
.-------<-------.
/ |
>-- COMBObox gname -+- <fgtagw> ------|
+- <fgpos> -------|
+- <fganch> ------|
+- <fgdock> ------|
+- CALLback text -|
+- TOOLTIP text --|
+- NORESELect ----|
+- ZEROSELection -|
+- CORE ----------* Core managed gadget
| .-------<-------.
|/ |
+- SCRoll int ----|
+- <vwid> --------*
|
+- TOOLTIP text -.
'----------------'-->
When the ComboBox is editable, with the drop-down list closed, the user can search for a
required option by typing the first few letters into the display field and clicking the down-
arrow. The list will open with the first matching option highlighted. This is useful for large
lists.
2:39 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Behaviour
The COMBOBOX command is a combination of an option list and an editable text display
field similar to a windows combobox. It shares most of the properties and methods of the
Option gadget.
Combo gadget has editable display text field (default) and so supports scroll width.
Combobox does not support display of pixmaps.
Note: It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
Unselected Events
Option gadgets support UNSELECT events. Typically when a field in the dropdown list is
selected, an UNSELECT event is raised for the previously selected field (if any) and then a
SELECT event is raised for the new field.
Notes:
1. UNSELECT events are not notified to PML unless an open callback has been specified
(so that SELECT and UNSELECT events can be differentiated).
2. Typically the UNSELECT action allows Appware to manage consequences of
deselection for any dependent gadgets or forms.
3. We recommend that you do not change the option gadget's selection programmatically
in an UNSELECT event.
Members
2:40 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
GetPickedPopup( ) MENU Returns the last picked popup menu for the
gadget.
Command
The Container gadget allows the hosting of an external Control, e.g. a PMLNet, control
inside a PML defined form. It allows the user to add an external .Net control, which may
raise events that can be handled by PML. In order to customise the context menus of the
.Net control, the Container may have a PML popup menu assigned to it. This is shown when
the .Net control raises a 'popup' event.
.--<-----.
/ |
>---- CONTAINER gname -+- NOBOX ---|
+- INDENT --*
|
'- PMLNET/CONTROL -+- handle -.
'----------|
.----<------------------------*
|
| .----<-----------------.
|/ |
+-- tagtext -------------|
+-- <fgpos> -------------|
+-- <fganch> ------------|
+-- <fgdock> ------------*
|
+-- <vshape> -.
'-------------'-->
Notes:
1. By default the Container will be enclosed in a box, but you can select NOBOX or
INDENT.
2. Only PMLNet controls are supported.
3. 'handle' is the integer token identifying the control.
4. Positioning must be specified before size (<vshape>).
5. Dock and Anchor are supported to allow intelligent resize behaviour. The enclosed
control must support resizing and is usually set as Dock fill, so that it follows size
changes of the Container.
2:41 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:42 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:43 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:44 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2.5.17 DB Object
Members
2:45 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
These methods may be used in the following ways (in all cases !!CE is assumed to be a DB
DATABASE element and !!CE.Name is a STRING object containing the element’s name).
Examples:
!D = OBJECT DB(!!CE)
!D = OBJECT DB(!!CE.Name)
!D = !!CE.DB()
!D = !!CE.Name.DB()
Command
2:46 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:47 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Members
Methods
None of these methods modifies the original object.
2:48 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:49 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:50 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:51 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:52 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
None of these methods modifies the original object.
2:53 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:54 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:55 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:56 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:57 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:58 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Commands
SETUP FORM
A form definition is introduced by the SETUP FORM command and terminated by a
corresponding EXIT command. Once in Form Setup mode you can call any commands for
defining the form’s properties, creating a menu bar (see BAR object), main and popup
menus (see MENU object) and any gadgets which it is to own.
Once-only form attributes are entered as part of the SETUP FORM command line;
modifiable attributes are entered as contents of the form.
You can define the FORM to be either PML-controlled, or core-code controlled using the
qualifier attribute control type, with values ‘PML” or “CORE”.
NOALIGN
The gadgets BUTTON, TOGGLE, TEXT, OPTION, single line PARGRAPH fit within 1
vertical grid unit and are by default drawn with their Y-coordinate adjusted so that they would
approximately centre-align with an adjacent BUTTON. This pseudo-alignment introduces
small errors in all but a few circumstances and prevents accurate controlled layout.
NOALIGN prevents this (historical) gadget auto-alignment.
Use NOALIGN in conjunction with PATH RIGHT (the default path) and HALIGN CENTRE,
as it gives a better layout, with fewer surprises.
Note: It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
The commands to set modifiable attributes are described after the syntax graph.
2:59 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
.---------------<---------------------------.
/ |
>--SETUP FORM fname --+-- MAIN -----+-------------------------------|
+-- DOCUMENT -+- FLOAT -----------------------|
| ‘-------------------------------|
+-- DIALOG ---+- DOCKing -+-------------------|
| |- Left ---. |
| | |- Right --| |
| | |- Top ----| |
| | ‘- Bottom -‘--------|
| |- RESIzeable ------------------|
| ‘-------------------------------|
+-- BLOCKingdialog -+- RESIzeable ------------|
| ‘-------------------------|
+-- AT <xypos> -------------------------------|
+-- SIZE val val -----------------------------|
+-- NOQUIT -----------------------------------|
+-- NOALIGN ----------------------------------|
+-- CORE -------------------------------------*
| .---<------.
|/ |
+-- <form> --* form contents
‘—EXIT -->
CANCELCALL
This command defines the callback string which is executed whenever the form is
dismissed from the screen via the CANCEL button or the QUIT/CLOSE control on the
window title bar.
Note: This command overrides the callback string on the CANCEL button.
CURSORTYPE
When a screen cursor enters a view, the view gadget determines what cursor type should
be displayed initially, and what type will be displayed during different types of graphical
interaction. You can specify the initial setting for the cursor type using this command.
Note: You cannot specify an initial cursor type for VOLUME views.
2:60 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Note: There are other cursor types that are for AVEVA’s use only.
HALIGN
Works in conjunction with PATH and HDISTANCE. Defines how a newly added gadget
should be aligned horizontally with the preceding gadget.
HDISTANCE
Works in conjunction with PATH and HALIGN. Defines how a newly added gadget should be
spaced horizontally with respect to the preceding gadget.
ICONTITLE
Defines the title for the icon when the form is minimised.
INITCALL
Defines the callback string that is executed each time the form is displayed. This callback is
usually run to check the validity of showing the form and to initialise gadget values.
OKCALL
Defines the OK callback string for a form. It is executed whenever the form is dismissed
from the screen via its OK button or that of an ancestor.
2:61 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
PATH
Defines the direction in which a sequence of new gadgets is to be added to a form. The path
setting remains until you give another PATH command. Used with HALIGN, HDISTANCE,
VALIGN, VDISTANCE.
TITLE
Defines the form title.
VALIGN
Use in conjunction with PATH and VDISTANCE. Defines how a newly added gadget should
be aligned vertically with the preceding gadget.
VDISTANCE
Works in conjunction with PATH and VALIGN. Defines how a newly added gadget should be
spaced vertically with respect to the preceding gadget.
Define the form, its gadgets, methods and layout are specified (usually in a
'.pmlfrm' file)
Load the form definition is read by PML and the form's constructor method is
run
Show the form's INITialisation event is raised, and the display process is begun
Activate the form and its contents is created by the window management system
and is activated (actually displayed) and the FIRSTSHOWN event is
raised
2:62 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Kill the form's KILLING event is raised and then the form is destroyed. It is no
longer known to PML
Notes:
1. Load, Activate and Kill only happen once in the life of a form
2. Show and Hide may happen repeatedly
3. The form's Constructor is run once only
4. The FirstShown event only happens once
5. INIT is raised for every Show
The PML user can define callbacks to service any or all of the above events. These will
typically be open callbacks supported by form methods. They can be assigned within the
form's Constructor method (recommended), or within the form's Setup Form . . . Exit block.
FIRSTSHOWN callback
Typically assigned in the Constructor by
!this.FirstShownCall = '!this.<form_method>'
The purpose is to allow the user to carry out any form actions which can only be completed
when the form is actually displayed. There are a variety of circumstances where this arises
and it is often difficult to find a reliable solution. A couple of examples are given below.
Commands which manipulate form, menu or gadget visual properties, executed from a PML
macro, function or callback may not happen until control is returned to the window
manager's event loop. For example, in the application's start-up macro the command
sequence show !!myForm … hide !!myform will result in the form not being displayed, but
also not becoming known at all to the window manager. Attempts to communicate with this
form via the External callback mechanism (possibly from another process) will not work.
This can be rectified by doing the '!this.hide()' within the FIRSTSHOWN callback, because
the form will be guaranteed to be actually displayed (and hence known to the window
manager), before it is hidden.
It is sometimes difficult to achieve the correct gadget background colour setting the first time
the form is displayed. This can be resolved by setting the required colour in the
FIRSTSHOWN callback.
KILLING callback
Typically assigned in the Constructor by
!this.KillingCall = '!this.<form_method>'
The purpose is to notify the form that it is being destroyed and allow the assigned callback
method to destroy any associated resources, e.g. global PML objects which would
otherwise not be destroyed. This may be necessary because PML global objects will survive
an application module switch, but may not be valid in the new module.
Notes:
1. The callback method MUST NOT carry out any modifications to the Gadgets belonging
to the form or to the Form itself (e.g. don't show or hide the form). Attempts to edit the
form or its gadgets may cause unwanted side effects or possible system errors.
2:63 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2. Form callbacks designed for other Form events (e.g. CANCEL, INIT) are rarely suitable
as killing callbacks.
3. Restrict form and gadget operations to querying.
Members
2:64 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:65 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
Command
The FRAME command defines a frame gadget.
A frame is a container which owns and manages any gadgets defined within its scope,
including other frames.
2:66 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
The frame gadget properties visible and active will automatically apply to all of its children,
but will not overwrite their corresponding property values.
There are five types of FRAME: NORMAL, TABSET, TOOLBAR, PANEL and FOLDUP
PANEL.
• A NORMAL frame can contain any type of gadget, including other frames. It also
behaves as a radio group, with radio buttons defined by the set of RTOGGLE gadgets
that it directly contains. See the entry RTOGGLE Object for more about the RTOGGLE
gadget.
• A TABSET frame can contain only tabbed page FRAMEs; you cannot nest them and
they are not named.
• A TOOLBAR frame can contain only a subset of gadget types: BUTTON, TOGGLE,
OPTION, and TEXT. It must have a name and can appear only on main forms.
.---<-------.
/ |
>--FRAME gname -+- TOOLBAR -+- tagtext -+- <toolbar> -* toolbar contents
| ‘—- EXIT -->
| .---<--------.
| / |
+- TABSET -+-- <fgpos> ---|
| +-- <fganch> --|
| +-- <fgdock> --|
| +-- <vshap> ---*
| | .---<--------.
| |/ |
| +-- <tabset> --| tabbed frame contents
| +-- NL --------*
| ‘-- EXIT -->
+- PANEL --+----------.
| ‘--INDENT--|
+- FOLDUPpanel -------| .---<--------.
|/ |
+-- tagtext ---|
+-- <fgpos> ---|
+-- <fganch> --|
+-- <fgdock> --|
+-- <vshap> ---*
| .---<--------.
|/ |
+-- <formc> ---* form contents
‘-- EXIT -->
where the sub-graphs <toolbar>, <tabset> and <formc> define the allowable gadgets
and layout commands available within the specific container type.
Note: The graph <formc> defines the normal content of a form, all gadget types (except
BAR) are allowed. There are restrictions on frame gadget types as defined below.
2:67 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Note: Frame gadgets defined anywhere within the TABSET frame can only be of type
NORMAL, not TOOLBAR or TABSET frames.
NORMAL frames defined directly within the TABSET frame, will appear as tabbed
pages within it.
Notes:
1. After choosing frame type Panel, the contents is defined in the usual manner.
2. Tagtext can be specified, but it is never displayed.
3. The panel has no visible enclosing box, unless the INDENT option is specified when it
will have a 3D indented appearance.
4. Panel supports all the attributes of a Normal Frame including the notion of a radio
button group.
Notes:
1. After choosing frame type FoldUpPanel, the contents is defined in the usual manner.
The panel can contain the usual PML gadgets except another FoldUpPanel.
2. Separate events are raised after expanding or collapsing the panel.
2:68 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
For frames which are FoldUpPanels, 'HIDDEN' and 'SHOWN' events are raised whenever
the user interactively folds or unfolds the panel. These events are only fired if a PML open
callback is defined.
This ensures that the SELECT event, used to signal selection of a radio button within a fold-
up panel can still be handled by simple (non-Open) callbacks.
To manage FoldUpPanels which are also radio groups, then you must supply an open
callback so that you can differentiate the panel's SELECT, HIDDEN and SHOWN events.
2:69 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Set-up Methods
Name Purpose
.selection() Creates an empty selection object .
2:70 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:71 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Query Methods
2.5.28 IDList
The IDList object provides features for the accessing and manipulation of elements in an
IDLIST database element.
Elements in the IDlist object must be significant elements, in the following sense. The
database element reference supplied to the constructor is examined to see if it either:
• Owns a valid design drawlist element; in which case the supplied element is added to
the idlist object.
• Is owned by a drawlist element, in which case the significant owner is added to the
idlist.
Elements below the level of the design drawlist element cannot be manipulated via this
object.
2:72 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Set-up Methods
Name Purpose
.idlist(DBREF) Creates an PML IDlist object from the given DBREF of an
IDLIST. Searches up the ownership hierarchy until a
significant element is found, and adds this to the Idlist.
Before adding an ADDE, the object will check whether there is an 'active' ADDE in the list -
this is an ADDE for the identical element, without an intervening REME for the same object.
If so, it will not add it again. Similarly for REMEs.
When removing ADDEs or REMEs, the system will start from the bottom of the list and work
backwards removing the requested entry.
Access Methods
2:73 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The Line gadget gives the ability to display horizontal or vertical lines to separate groups of
gadgets on a form, for increased clarity of intent. The line's presentation reflects the colour
of the current Windows scheme.
.-------<---------------.
/ |
>--- LINE gname -+- tagtext ---------------|
+- <fgpos> ---------------|
+- <fganch> --------------|
+- <fgdock> --------------*
|
+- VERTical ---.
| |
'- HORIZontal -'- <vshap> -->
Example: The form 'Nested Frames' above shows a vertical LINE and a horizontal LINE.
The code snippet below shows the construction of the innermost frame f3.
frame .f3 'f3'
vdist 0.2
hdist 0.5
toggle .t1 'Toggle 1' at x 2
line .horiz 'H-Line' Horiz wid.f3 hei.t1
toggle .t2 'Toggle 2'
line .vert at xmin.f3 ymin.f3+0.5 Vert wid 2 hei.f3
exit
2:74 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Notes:
1. The tag text is never displayed.
2. Line does not apply to toolbars.
3. The graph <vshap> allows the line's width and height to be set either specifically or in
terms of other gadgets on the form.
4. Setting the height for a Horizontal separator or the width for a Vertical separator causes
the line to be drawn across the middle of the implied area. This allows for equal spacing
on each side of the separator line. Otherwise a default width or height is assumed.
5. The Dock and Anchor attributes allow the Lines to be dynamic and respond to
interactive changes in form size.
6. The gadget is not interactive and has no associated value.
Members
Definition Methods
None of these methods modifies the original object.
2:75 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
EndPosition
Direction(DIRECTION)
StartPosition
OnProjected(POSITION) 9
On (POSITION) 9
2:76 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Proportion(REAL)
Intersection(LINE)
Near(POSITION)
2:77 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Figure 2:24. Table -48: LINE Object Methods that Return REALs
Length()
Distance(POSITION)
Distance(LINE)
2:78 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:79 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
ExtendEnd(REAL)
To(POSITION)
SetLengthStart(REAL)
ExtendStart(REAL)
Towards(POSITION)
From(POSITION) SetLengthEnd(REAL)
2:80 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Parallel(POSITION)
Offset(DIRECTION, REAL)
Projected(PLANE)
Union(Line)
Overlap(Line)
2:81 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Definition Methods
These methods do not modify the original object.
Orientation
YSpacing
Z Y
Position
XSpacing
2:82 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:83 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Snap(POSITION)
Snap(LINE)
GridPoint(REAL, REAL)
Within(POSITION)
Plane()
Within(POSITION)
2:84 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
XYOffset(POSITION)
2:85 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:86 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:87 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:88 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Column Headings
The number of columns is deduced from the List's data. If the user specifies a set of (1 or
more) column headings before the list is populated, then this will determine the number of
columns. If no headings are pre-specified then the number of columns is deduced from the
display text (Dtext) of the List's first data field. This provides upwards compatibility for
existing Appware using single column lists.
A List gadget's headings can be replaced after the list has been populated. If the new
headings specify the same number of columns then the headings are replaced but the List's
data fields and selection remain unchanged. If the number of columns is different, then the
list is replaced by an empty list with the new headings.
Invoking the Clear() method will clear the list's data fields and rebuild the current headings.
There are two methods for defining a List's column headings:
2:89 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
The data fields can be set using the List's DTEXT member or its Add methods, where a
row's Dtext string can be a set of TAB separated column sub-strings for populating multiple
columns. Alternatively you can use the SetRows or SetColumns methods.
Unselect Events
Single choice List gadgets support UNSELECT events. Typically when a field is selected, an
UNSELECT event is raised for the previously selected field (if any) and then a SELECT
event is raised for the new field. An UNSELECT event is raised whenever a selected field is
interactively deselected.
Notes:
1. UNSELECT events are not notified to PML unless an open callback has been specified
(so that SELECT and UNSELECT events can be differentiated).
2. Typically the UNSELECT action allows Appware to manage consequences of
deselection for any dependent gadgets or forms.
3. We recommend that you do not change the List's selection programmatically in an
UNSELECT event.
Command
The LIST command defines a single-choice or multiple-choice list gadget, and specifies its
position, tag, number of columns and callback text. Also defines the area (width and height)
in which the displayed part of the list will appear.
The arrays defining the display texts and replacement texts for the list options are usually
set in the form's default constructor method.
2:90 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
.-------<--------.
/ |
>- <flist> - LIST gname -+- <fgtagw> ------|
+- <fgpos> -------|
+- <fganch> ------|
+- <fgdock> ------|
+- CALLback text -|
+- TOOLTIP text --|
+- CORE ----------* Core managed gadget
|
+- MULTiple --------.
| .-------<-------. |
|/ | |
+- NORESELect ----| |
+- ZEROSELection -* |
‘-------------------‘- <vshap> +- TOOLTIP text -.
‘----------------‘->
Note: The TOOLTIP keyword can be given at two different places in the syntax.
Members
2:91 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
Note: The Sessions() method provides information required for remote expunging. This
method will cause daemon activity for locations other than the current location.
2:92 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Member
Command
Member
2:93 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
None of these methods modifies the original object.
!D = OBJECT MDB(!!CE)
!D = OBJECT MDB(!!CE Name
!D = !!CE.MDB()
!D = !!CE.Name.MDB()
Command
2:94 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:95 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:96 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:97 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:98 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:99 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:100 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Note: Setting the Active and Visible properties of a SEPARATOR field will affect the
implied group of fields comprising the SEPARATOR field and all subsequent fields up
to but not including the next SEPARATOR field.
For each of the Add() methods above, you can use a special field-type to indicate
that the field is managed by core-code i.e. CORESEPARATOR, CORECALLBACK,
COREFORM, COREMENU, and CORETOGGLE.
You do not need to specify callback functions for core-managed fields.
Command
MENU objects are owned by FORM objects, and can be created within form setup mode. It
is also possible to add a new menu to an existing form - usually for context sensitive popup
menus.
The recommended way to create a menu and its fields, typically within form setup mode, is:
!menu = !this.newmenu( ‘Menu1’, ‘MAIN’ )
!menu.add( ‘CALLBACK’, ‘save’, ‘<callback>’, ‘field1’ )
!menu.add( ‘FORM’, ‘save asº’, ‘saveForm’, ‘field2’ )
Note:
• Each menu is either part of the Main menu system or part of the Popup menu system,
but cannot belong to both.
• If you specify neither POPUP nor MAIN at setup time, then the menu’s usage is initially
unknown. The system will attempt to deduce the usage type from the first action that
references the menu.
• Menus in the Main system can only appear once. That is, a main system menu cannot
be a sub-menu of several menus.
• Menus in the Popup system may appear only once in a given popup tree, but may be
used in any number of popup trees.
• A menu cannot reference itself, either directly as a pullright of one of its own fields or be
a pullright of another menu in its own menu tree.
2:101 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
• You can add menu fields with an optional field-name. If you do not specify a field-
name, then you will not be able to refer to it later.
• You can use a special field-type to indicate that the field is managed by core-code i.e.
CORESEPARATOR, CORECALLBACK, COREFORM, COREMENU, and
CORETOGGLE.
You do not need to specify callback functions for core-managed fields.
An alternative is to use the MENU command, followed by the menu’s ADD commands and
terminated by the EXIT command. The full syntax is shown below:
.-----<-----.
/ |
fmenu>-+- ADD -+- fieldname -|
+- CORE ------*
+- SEParator -------------------------------.
‘- dtext -+- rtext -------------------------|
+- MENU -- gname -----------------|
+- FORM -- fname -----------------|
+- CALLback -+- rtext ------------|
| ‘--------------------|
‘- TOGgle -+- rtext -. |
‘---------+- SELected -|
‘------------‘-->
mdrRoutePoint
2:102 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Radius Real Set the fillet radius Valid only if this isn't an
of route point external geometry type
route point. If there is
DB element owned then
sets the filet radius,
otherwise sets the
radius inside the object
2:103 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
mdrRoute
2:104 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:105 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
mdrBaseManager
mdrConnectionManager
2:106 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
mdrConnectionGraph
mdrConnectionPoint
Members
2:107 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
Command
The NumericInput gadget allows numeric input within a specified range, with given
granularity.
The Up/Down arrows control incrementing and decrementing the displayed value by the
specified increment, within the range. Additionally it is possible to type in the required value.
The number of decimal places can also be specified.
.-------<-------------------.
/ |
-- NUMERICinput gname -+- <fgtagw> ------------------|
+- <fgpos> -------------------|
+- <fganch> ------------------|
+- <fgdock> ------------------|
+- CALLback text -------------|
+- TOOLTIP text --------------|
+- CORE ----------------------* Core managed gadget
| .-------<-------------------.
|/ |
+- RANGE val val -------------|
+- STEP val ------------------|
+- NDP int -------------------*
|
+- VALUE val -.
'-------------'- <vwid> -+- TOOLTIP text -.
'--------------'-->
Notes:
1. The tag text is displayed.
2. Default initial value is the minimum value of the range.
3. The range maximum is adjusted to be an integral number of steps.
4. NDP is the number of decimal places. If NDP is zero then all values will be integer.
5. Typed in values will be adjusted to the nearest valid value in the range.
2:108 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
6. The graph <vwid> allows the gadget width to be set specifically or in terms of other
gadgets on the form.
7. It is not possible to provide user formatting of the values displayed by the gadget.
2.5.39 OBJECT
Method
Members
2:109 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:110 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The OPTION command defines an option gadget and specifies the position, tag or pixmap,
and callback text of the option (or list button) gadget. Also sets the width allowed for
displaying the list options when the gadget is selected.
The arrays defining the display texts and replacement texts for the gadget should be set in
the form's default constructor method.
Notes:
1. Option gadget's display text field is non editable, so doesn't need scroll width (syntax is
in fact in place for backwards compatibility).
2:111 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
.-------<-------.
/ |
>------ OPTion gname -+- <fgtagw> ------|
+- <fgpos> -------|
+- <fganch> ------|
+- <fgdock> ------|
+- CALLback text -|
+- TOOLTIP text --|
+- NORESELect ----|
+- ZEROSELection -|
+- CORE ----------* Core managed gadget
|
+- PIXmap <vshap> -.
'- <vwid> ---------+- TOOLTIP text -.
'----------------'-->
ZeroSelection Property
Option gadgets have a ZeroSelection keyword (similar to that of single choice lists), which
allows it to support the notion of no current selection (previously a selection was
mandatory).
The syntax has been extended with the optional 'ZEROSELection' keyword, e.g.
option .choose tagWid 3 |Cars| . . . zeroSel noResel width 25 length 10
Behaviour
Note: It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
Unselected Events
Option gadgets support UNSELECT events. Typically when a field in the dropdown list is
selected, an UNSELECT event is raised for the previously selected field (if any) and then a
SELECT event is raised for the new field.
Notes:
1. UNSELECT events are not notified to PML unless an open callback has been specified
(so that SELECT and UNSELECT events can be differentiated).
2. Typically the UNSELECT action allows Appware to manage consequences of
deselection for any dependent gadgets or forms.
3. We recommend that you do not change the option gadget's selection programmatically
in an UNSELECT event.
2:112 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
None of these methods modifies the original object.
2:113 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:114 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The PARAGRAPH command defines a paragraph and specifies its position, dimensions (in
units of character widths and line heights), and, optionally tag text or a pixmap. Note that a
paragraph gadget is passive so it ’s callback is never used. A paragraph gadget can have a
tag, but it is not displayed.
You can define the PARAGRAPH to be either PML-controlled, or core-code controlled using
the gadget qualifier attribute control type, with values ‘PML” or “CORE”.
.--------------------<------------.
/ |
>-- PARAgraph gname -+-- <fgpos> ------------------------|
+-- BACKGround <colno> -------------|
+-- <fganch> -----------------------|
+-- <fgdock> -----------------------|
+-- CORE ---------------------------
* Core managed gadget
+- PIXMAP -+- filename -.
| ‘------------‘-<vshap>-->
‘- TEXT text -+-<vshap>-.
‘---------‘-->
Note:
• If a paragraph is to contain text, then its shape will be specified in grid units. The height
is the number of lines of text and the width is typically thought of as the number
characters required. This may be less that the actual string length, because the grid
width is the size of the font notional character width, which is typically smaller than the
largest characters in the font. You may need to specify a few extra grid units to
guarantee to fit variable strings.
• If a paragraph contains text, and no dimensions are specified, the result is a single line
of width (in grid units) equal to the number of text characters. This may not be long
enough to guarantee to fit the specific string, so you may nee to pad out with extra
spaces to avoid truncation.
2:115 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
• If your paragraph is to contain more than one line of text, you must specify a suitable
shape. The text, which can contain newline characters, will be justified in the area
given.
• If a pixmap is specified, the shape of the gadget must be defined and will be in pixels.
Remember to define the pixmap using the paragraph's AddPixmap() method or its
.Val member.
• If the paragraph is to have its contents modified then the text or pixmap file would
normally be specified in the form's default constructor method, rather than in the
gadget definition.
It is bad practice to place one gadget on top of another. This may lead to gadgets being
obscured.
Members
Definition Methods
None of these methods modifies the original object.
2:116 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Towards(POSITION)
Orientation
Direction(DIRECTION)
Z
Y
Position
X
2:117 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Near(POSITION)
ThreeDPosition(XYPOSITION)
2:118 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Intersection(PLANE)
XYOffset(POSITION)
2:119 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
None of these methods modifies the original object.
2:120 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Orientation Y Ysize()
Position Z
YSpacing
XSpacing Xsize()
X
2.5.45 PLATFORMGRID
PLATFORMGRID object is used for filling PLTFRM element with certain grid pattern.
2:121 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:122 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:123 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2.5.46 PMLSECURELOGIN
PMLSECURELOGIN object is used to control the encrypted command script generation
functionality.
Methods
2:124 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2.5.47 PMLUSERLOGIN
PMLUSERLOGIN object allows generation of a project entry script only for the currently
logged-in user which means that it does not require entry of username and password.
Methods
Members
Definition Methods
2:125 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Direction
Position
Offset(REAL)
Through(POSITION)
Towards(POSITION)
2:126 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Intersection(PLANE)
Miscellaneous Methods
2:127 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:128 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
POSITION A
POSITION X
RADIUS
POSITION B
2:129 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
POSITION X
POSITION B
MAJOR = FALSE
RADIUS
POSITION A
POSITION X
POSITION A
POSITION B
2:130 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
POSITION A
POSITION X
RADIUS
POSITION B
2:131 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:132 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
This refers to all undoables, whether created by a MARKDB command, an undoable object
or within core functionality.
Similarly, the method postUndo will be called after an UNDO has occurred, and so on.
Each method will be passed a STRING object containing the name of the mark with which
the mark, undo, or redo is associated.
Methods
Members
2:133 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:134 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Commands
Members
Methods
2:135 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:136 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:137 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:138 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:139 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:140 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Table 2: 100. PROFILE Object Methods that Query Profile to Profile Relationships
2:141 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:142 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:143 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:144 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Orientation
Position
Z
Y
Angles
X
Radii
RadialPosition(REAL, REAL)
Snap(POSITION)
Angle[1]
Snap(LINE)
Radius[1]
Radius[2] GridPoint(REAL, REAL)
Radius[3]
2:145 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:146 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:147 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:148 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:149 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:150 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:151 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
Command
The RTOGGLE gadget (which is very similar to the TOGGLE gadget) is allowed only within
FRAMES. You can added them to a FRAME with the usual positioning and layout
commands. The RTOGGLE gadgets are implicitly numbered 1,2,3… as they are added.
The FRAME gadget can have an assigned callback, which is executed when the radio
group selection is changed, i.e. whenever the user selects an unselected radio-toggle. As
there is only a SELECT action supported, it can be either a simple callback or an open
callback.
2:152 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
.-------<------------.
/ |
>- RTOGgle gname -+- tagtext ------------|
+- CALLback text —-----|
+- <fgpos> ------------|
+- <fganch> -----------|
+- <fgdock> -----------|
+- TOOLTIP text -------|
+- CORE ---------------* Core managed gadget
|
+- STATES offval onval --
.
‘------------------------+- TOOLTIP text -.
‘----------------‘--->
Note: offval and onval are string values associated with the radio button states unselected
or selected.
Default values are onval = ‘ON’, offval = ‘OFF’.
In order to simplify the task of replacing the use of the (now removed) RADIO gadget by the
radio group Frame gadget, the RTOGGLE gadget’s UNSELECT events are raised only if a
PML open callback has been defined. This allows the simple replacement of TOGGLE
gadgets by RTOGGLE gadgets without the need to modify their callbacks.
Set-up Methods
2:153 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Display Methods
Query Methods
2:154 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Set-up Methods
Display Methods
2:155 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:156 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Query Methods
Create Methods
2:157 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:158 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:159 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The SELECTOR command defines a database element selector gadget and specifies its
position, tag, and callback text. Also specifies whether the selector allows a single choice
only or multiple choices and defines the area (width and height) in which the displayed part
of the list will appear. It also allows you to specify which parts of the hierarchy are shown
and whether or not these are updated automatically during database navigation.
.-------<---------.
/ |
>- SELector gname -+-- <fgpos> --------|
+-- tagtext --------|
+-- <fganch> -------|
+-- <fgdock> -------|
+-- TOOLTIP text ---|
+-- CALLback text --*
+-- SINGle -.
+-----------‘- <vshap> DATAbase -+- MEMbers -.
| +- OWNers --|
| ‘-----------+-AUTO-.
| ‘------|
‘- MULTiple <vshap> DATAbase ---+- MEMbers ---------|
|- OWNers ----------|
‘-------------------|
|
.-------<-----------*
|
+-- TOOLTIP text --.
‘------------------‘->
2:160 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:161 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Note:
• The LocationName member and Location() method imply the location to which the
Session applies. This is normally the current location, except when Sessions at remote
locations have been requested. In a non-Global project, these members and methods
may be unavailable or unset.
• Some ADMIN Sessions in a Global project may apply to another location's system
database. This will be returned as part of the string returned by the Module() method,
if relevant. Other ADMIN Sessions may actually be Global Daemon Sessions. This is
returned as part of the string for the name member.
• Some SESSION object methods have only restricted availability:
• The Modified() method only applies to the current Session at the current
location.
• The Current(), Deferred(), Mode() and Status() methods will not be
implemented for remote Sessions and will return an error.
• The Location(), MDB(), User() and Module() methods are valid for remote
Sessions.
The last three methods will cause Daemon activity for Sessions at remote locations.
• It should be should be observed in using the MDB and USER objects returned by the
MDB() and User() methods for a remote Session. Methods on these objects will
access the currently open system database. Thus the appropriate location's system
database should be opened (using the ADMINISTER SYSTEM command) before
invoking methods on these remotely generated MDB and USER objects.
2:162 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
Members
Note:
• The Val member represents the current value of the slider as a PML REAL (in fact
always an integer).
• The Range member allows the slider range and optionally the step value to be set or
queried. The granularity of the slider movement is determined by the specified step
increment, i.e. a move event is generated at each step increment within the slider’s
range. The range limits must each be an integral multiple of the step size (else an error
is flagged
The RESET action of a form (from reset, CANCEL or QUIT actions) will only reset the
2:163 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
slider current value not other slider properties. So if you redefine the range while a form
is displayed, and press the RESET button, the range will not revert to the previous
settings. You will have to do this from reset button’s callback and/or the form’s
CANCELCALL callback.
• Tick marks, if present, occur at every step value in the range.
Methods
2:164 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
.-------<-------------------.
/ |
>-- SLIDER gname -+- tagtext -------------------|
+- <fgpos> -------------------|
+- CORE ----------------------| Core managed gadget
+- <fganch> ------------------|
+- <fgdock> ------------------|
+- BACKGround <colno> --------|
+- CALLback text -------------|
+- TOOLTIP text --------------|
+- VERTical ------------------|
+- HORIZontal ----------------*
|
| .-------<-------------------.
|/ |
+- RANGE int int -------------|
+- STEP int ------------------|
+- VALue int -----------------*
|
‘- <vshap> -+- TOOLTIP text -.
‘----------------‘-->
Note: The user can specify the range as start, end and optional step and value integer
values.
The <vshap> graph allows the specification of the WIDTH and/or HEIGHT for sliders,
in grid units. The width must be specified for a horizontal slider, and the height must
be specified for a vertical slider. If the other dimension is not specified then a default
size will be assumed.
The tag text is not displayed for a slider gadget.
Methods
2:165 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:166 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:167 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:168 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:169 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2.5.63 STATE
The STATE object provides an interface for interrogating and modifying the status of modify
mode. It is only available to Design running in graphical mode.
2:170 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Sorting of the table is by the order of the columns and the sort criteria on the relevant
column. The formatting of the table data is via a REPORT object, which will allow the same
data to be represented in many different ways.
Methods
2:171 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
None of these methods modifies the original object.
2:172 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
!D = OBJECT TEAM(!!CE)
!D = OBJECT TEAM(!!CE.Name)
!D = !!CE.TEAM()
!D = !!CE.Name.TEAM()
Command
2:173 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:174 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:175 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The TEXT command defines a text field gadget which supports data values of a given type.
The following can also be specified; Gadget position, tag, size, callback, dock, anchor and
tooltip; maximum length of the string that may be scrolled in the gadget; the name of a
format object which says how a value is to appear as text or be interpreted; that text entered
is not echoed as typed, but appears as asterisks (for entering passwords, for example); that
the field contents can be seen but not edited.
You can define the TEXT object to be either PML-controlled, or core-code controlled using
the gadget qualifier attribute control type, with values ‘PML” or “CORE”.
.--------<-------------.
/ |
>-- TEXT gname --+-- <fgpos> -------------|
+-- CORE ----------------| Core managed gadget
+-- <fgtagw> ------------|
+-- <fganch> ------------|
+-- <fgdock> ------------|
+-- TOOLTIP text --------|
+-- CALLback text -------*
| .---------<---------.
| / |
‘--*-- WIDth integer ----|
+-- SCRoll integer ---|
+---NOEcho------------*
|
‘-- IS --+-- STRING --.
+-- REAL ----|
+-- BOOLEAN -|
‘-- word ----+- FORMAT gvarnm -.
‘-----------------+- TOOLTIP text -.
‘----------------‘-->
The IS word syntax allows for any user defined data type to be used, but this will only work
satisfactorily if a suitable FORMAT object is supplied.
Note: The maximum string length (SCROLL integer) is 256 characters, and the default if
you do not specify a length is 132.
It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
Members
2:176 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:177 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The TEXTPANE command defines a text pane gadget and specifies its position and tag.
This is a multi-line text input field, allowing the user to enter a number of lines of text (either
directly or using cut and paste). Note that no callback string is allowed with this gadget, as
there is no way of knowing when a user has finished entering text.
The value of a TEXTPANE is its contents, held as an array of strings, where each line is an
element of the array.
You can define the BUTTON to be either PML-controlled, or core-code controlled using the
gadget qualifier attribute control type, with values ‘PML” or “CORE”.
.--------<--------.
/ |
>-- TEXTPane gname --+-- tagtext---------|
+-- <fganch> -------|
+-- <fgdock> -------|
+-- <fgpos> --------|
+-- CORE -----------* Core managed gadget
‘-- <vshap> --->
Note: It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
Member
2:178 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:179 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The TOGGLE command defines a toggle gadget, and specifies its position, tag, and
callback text. Also allows you to specify different text strings for the default ON and OFF
states.
You can define the TOGGLE to be either PML-controlled, or core-code controlled using the
gadget qualifier attribute control type, with values ‘PML” or “CORE”.
.-------<------------.
/ |
>- TOGGLE gname -+- <fgtagw> -----------|
+- PIXMAP <vshap> -----|
+- CALLback text —-----|
+- <fgpos> ------------|
+- <fganch> -----------|
+- <fgdock> -----------|
+- TOOLTIP text -------|
+- CORE ---------------* Core managed gadget
+- STATES text1 text2 -.
‘----------------------+- TOOLTIP text -.
‘----------------‘--->
where text1 corresponds to the OFF setting and text2 corresponds to the ON setting.
Note: It is bad practice to place one gadget on top of another. This may lead to gadgets
being obscured.
Default: Default text strings for the two toggle settings are ‘OFF’ and ‘ON’.
Default state when a toggle is first defined is ‘OFF’; i.e. button
raised.
Pixmaps associated with Toggle gadgets can be changed after the gadgets have been
displayed on a form.
Method syntax:
AddPixmap( !pixmap1 is STRING )
AddPixmap( !pixmap1 is STRING, !pixmap2 is STRING )
Where: !pixmap is a string holding the file pathname of the required .png file, e.g.
%pmllib%\png\camera.png
!pixmap1 shows the Un-selected state of the gadget, and pixmap2 shows the Selected
state.
Notes:
1. It is recommended that when you define the gadget you set its size to encompass the
largest pixmap which you will later add. Failure to do this may give rise to unexpected
behaviour.
2:180 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2. Historically you could add a third pixmap which was used when the gadget was de-
activated. This practice is no longer necessary as the gadget pixmapped is
automatically greyed-out on de-activation.
Methods
Command
To use this object, first create an undoable object, and define the undoAction(),
redoAction() and clearAction() methods to define the execution strings.
Call the method add() to mark the database and add the undoable object to the undo
stack.
Make the set of changes that you may wish to undo, then call the method endundoable()
to mark the end of the changes.
2:181 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Member
Method
!D = OBJECT USER(!!CE)
!D = OBJECT USER(!!CE.Name)
!D = !!CE.USER()
!D = !!CE.Name.USER()
2:182 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
2.5.71 VERIFY
VERIFY object is used directly to verify that the executing user is on a list of approved users
and is running on an approved host computer, and is running within a given time period. If
the condition is not met the command script terminates immediately with a "Verification
error".
Methods
2.5.72 ViewFinder
The ViewFinder object is to allow the Draft PML user to create a frame in the 3d view which
represents the view frame in the 2d view. Once drawn, the frame can be moved, rotated,
change its representation (but not its size). By manipulating the frame in the 3d view, the
user can modify the view parameters in the current drawing.
2:183 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Set-up Methods
Name Purpose
.viewFinder(DBREF) Creates a viewfinder object based on the parameters of the
Draft View. The input argument must be the dbref of a valid
View .
.view(DBREF) Sets the associated View object using the DBREF which
must be a valid view
Methods
Query Methods
2:184 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:185 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The VIEW ... ALPHA command puts you into View Setup mode. You remain in View Setup
mode until you use the EXIT command.
.-------------------------<-------------------------.
/ |
(ALPha)--+- <vshap> -----------------------------------. |
+- CHANNEL -+- COMMANDS -----------------------| |
| ‘- REQUESTS -----------------------‘- NL -*
‘-- EXIT -->
Members
2:186 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
Command
The VIEW ... AREA command puts you into View Setup mode. You remain in View Setup
mode until you use the EXIT command.
.-------------------------<------------------------.
/ |
(AREa) --+- <vshap> -----------------------------------. |
+- PUT - <sgid> ------------------------------| |
+- LIMits <uval> <uval> - TO - <uval> <uval> -| |
+- SETColour - <colno> -----------------------| |
+- SETHighlight - <colno> --------------------‘- NL -|
+- <cursor> -----------------------------------------|
+- <border> -----------------------------------------|
+-- <pml> -------------------------------------------*
‘-- EXIT -->
DRAFT where <sgid> is either CE (current element) or the name of a 2D graphical element
(e.g., a DRAFT SHEET, VIEW, LIBRARY, etc.) and <colno> is any valid DRAFT colour
definition.
2:187 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
And <cursor> is the syntax for selecting the cursor type, as follows:
>-- CURSortype ---+-- POINTER ----.
+-- NOCURSOR ---|
+-- PICK -------|
+-- PICKPLUS ---|
‘-- CROSSHAIR --‘-->
Members
2:188 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
Command
The VIEW ... PLOT command puts you into View Setup mode. You remain in View Setup
mode until you use the EXIT command.
.-------------------------<------------------------.
/ |
(PLOT) --+- <vshap> -----------------------------------. |
+- ADD - plot_filename -----------------------| |
+- CLear -------------------------------------| |
+- SETColour - <colno> -----------------------| |
+- SETHighlight - <colno> --------------------‘- NL -|
+- <cursor> -----------------------------------------|
+- <border> -----------------------------------------|
+-- <pml> -------------------------------------------*
‘-- EXIT -->
where:
<colno> is any valid PDMS colour definition.
<cursor> is the syntax for selecting the cursor type, as in 2-19
<border> allows control of zooming and panning as in 2-20
2:189 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
2:190 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Methods
2:191 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Command
The VIEW ... VOLUME command puts you into View Setup mode. You remain in View Setup
mode until you use the EXIT command.
Where:
<colno> is any valid DESIGN colour definition; either a colour description or a colour
number
<cursor> is the syntax for selecting the cursor type, as in 2-19
<border> allows control of zooming and panning as in 2-20
2:192 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
Members
Methods
2:193 12.0
Software Customisation Reference Manual
Summary of Objects, Members and Methods
2:194 12.0
Software Customisation Reference Manual
Communicating with Review
This chapter describes the sample application provided with Review, and should be read in
conjunction with the Review User Guide, where the commands available from the command
line for controlling Review are explained. It also explains the responses to these commands
that may be returned from Review.
The Review commands available constitute a subset of the full Review functionality,
together with some special commands for sending commands in batches.
Note: Where primary element is referred to in this Appendix, this means an element that
can be claimed.
Review
A:1 12.0
Software Customisation Reference Manual
Communicating with Review
compared with batch mode operation (where the display is refreshed only once for the
whole command sequence).
A:2 12.0
Software Customisation Reference Manual
Communicating with Review
The first stage of the sample application is concerned with progress monitoring, covering
both the design and construction phases. It uses the sample model to give a clear
presentation of the current status of the project, which is particularly useful during
concurrent design and construction.
The second stage focuses on extracting a range of engineering data available from the
model, including the display of P&IDs, vendor drawings and scanned images, data sheets,
and reports.
The third part of the application focuses on the operating life of the plant, such that items
requiring maintenance can be interrogated by reference to a timebase.
Maintenance history can be studied for past problems and recommendations; maintenance
procedures can be displayed to show the scope of the work involved. Cost-benefits can be
seen by obtaining the isolation group associated with a given element; for example, the
Main Separator Tower may be highlighted together with an adjacent control valve which is to
be maintained at the same time.
A set of fully documented forms and macros are supplied to support these engineering
applications, based around the Stabiliser model. These applications are summarised in
more detail in the following sections.
A:3 12.0
Software Customisation Reference Manual
Communicating with Review
Fabricated Blue
Erected Purple
Tested Brown
A:4 12.0
Software Customisation Reference Manual
Communicating with Review
When applied for a selected Element Type and Due On, all available data will be displayed
to show which elements require maintenance and when. These elements can then be
selected for further maintenance enquiries by selecting one or more the following options:
• Maintenance schedule
• Maintenance history
• Parts inventory
• Isolation list
You will then see a Data Server Login form, which you should cancel for this flat file
demonstration.
Note: The file run_demo is located under the demo directory where the software was
installed. Read the rvq_docs/README file for hints on how (if you’re an
experienced Query Toolkit user) you can customise the application for use with an
external database.
Use the two option gadgets on this form to set the required combination of design Discipline
(e.g. Piping) and corresponding completion Status (e.g. Erected).
Click the Apply button to highlight items meeting the selection criteria within the Review
model. Different colours will be used for the various Status options.
A:5 12.0
Software Customisation Reference Manual
Communicating with Review
Click the Make Display Translucent button to reset all materials in the Review display to
translucent to enable different Discipline and Status combinations to be selected and
viewed.
Combination Result
* To get the best display, Select Look > ISO > One from the Review bar menu.
A:6 12.0
Software Customisation Reference Manual
Communicating with Review
Click the Apply button to display data for the specified vessel against the headings
Purchase Order and Description.
A list of associated documents will be shown under the Document and Description
headings. To display such a document, first select the line for that document in the scrollable
list and then click the View Document button. The resulting document display may be:
• a text file, using the system editor;
• a plotfile representation of orthogonal views of a drawing;
• a scanned image of a drawing.
Note: Any external application may be used to display documents. Any number of
documents may be selected simultaneously for viewing.
Document Examples
Names can be selected graphically or by entering an explicit name.
Name: /C1101
Name: /P1501A
Name: /V-70
A.7.3 Maintenance
Select Applications > Maintenance.
A form will be displayed, as shown in Figure A:3.: General Maintenance Form, to enable you
to access data relating to those items which require maintenance within specific time
periods.
A:7 12.0
Software Customisation Reference Manual
Communicating with Review
Use the two option gadgets on this form to set the required combination of item Type (e.g.
Vessels) and time when next maintenance operation is due, shown as Due When (e.g. Due
in next week).
Click the Apply button to highlight items meeting the selection criteria within the Review
model.
To make it easier to see the selected item in the Review display, click the Setup camera
view button. This sets up Camera One such that the through point is at the item of interest,
with a field of view of 60°.
The Name, Description and Inspection Date for each relevant item will be listed on the
form under the corresponding headers. To obtain detailed maintenance data for any item,
select the item in the scrollable list and then click the appropriate button under the heading
Further data for selected item. The data available come under the following headings:
• Maintenance Schedule
• Maintenance History
• Parts Inventory
• Isolation List
Maintenance Schedule
The Maintenance Schedule form, as illustrated in Figure A:4.: The Maintenance Schedule
Form, allows you to view the maintenance procedures that have been generated for a
named model item.
A:8 12.0
Software Customisation Reference Manual
Communicating with Review
To display any of the maintenance procedures listed for the current item, select the
procedure in the scrollable list and then click the View Procedure button. The selected
report will be displayed (in read-only mode) to show details of the maintenance procedures.
To list the available maintenance procedures for a different model item without returning to
the General Maintenance form, enter the new item name and click the Apply button.
Maintenance History
The Maintenance History form, as illustrated in Figure A:5.: Maintenance History Form,
allows you to view the maintenance history reports that have been generated for a named
model item.
To display any of the maintenance reports listed for the current item, select the report in the
scrollable list and then click the View Report button. The selected report will be displayed
(in read-only mode) to show details of the maintenance history.
To list the available maintenance reports for a different model item without returning to the
General Maintenance form, enter the new item name and click the Apply button.
A:9 12.0
Software Customisation Reference Manual
Communicating with Review
Parts Inventory
The Parts Inventory form, illustrated in Figure A:6.: Parts Inventory Form, allows you to view
supplier details that have been generated for a named model item.
To display details of any part listed for the current item, select the part in the scrollable list
and then click the Supplier Details button. Supplier information for the selected part will be
displayed (in read-only mode).
To list the available supplier details for a different model item without returning to the
General Maintenance form, enter the new item name and click the Apply button.
A:10 12.0
Software Customisation Reference Manual
Communicating with Review
Isolation List
The Isolation List form, illustrated in Figure A:7.: Isolation List Form, allows you to view
details of maintenance isolation lines that have been generated for a named model item.
The scrollable list shows all associated items which make up the isolation line related to the
current item. The complete isolation line will be highlighted in the Review display.
To list the isolation line details for a different model item without returning to the General
Maintenance form, enter the new item name and click the Apply button.
A:11 12.0
Software Customisation Reference Manual
Communicating with Review
A.8.3 Maintenance
Vessels
Exchangers
Schedule no no no no
History no no no no
Parts inventory no no no no
Isolation list no no no no
A:12 12.0
Software Customisation Reference Manual
Communicating with Review
Mechanical
Schedule no no no no
History no no no no
Parts inventory no no no no
Isolation list no no no no
Instruments
Schedule no no no no
History no no no no
Parts inventory no no no no
Isolation list no no no no
All
A:13 12.0
Software Customisation Reference Manual
Communicating with Review
Most of the data extracted from the data source (flat file or database tables) is based on the
following elements:
There are instances where data extracted is not consistent with that of the model. In such
cases the following message will be displayed:
data ignored not in Review model
The names of many of the files begin with a prefix which indicates the file’s function, thus:
All other filenames denote general files which are not specifically used in creating forms.
A:14 12.0
Software Customisation Reference Manual
Communicating with Review
File Purpose
CONFIG User-specified configuration; e.g. database server node
FORACLE Form definition macro for RDBMS connection
FSYSTEM Form definition macro for main system menu
FVERSION Form definition macro for versions
IORACLE Initialisation macro for RDBMS connection
IVERSION Initialisation macro for versions
MORACLE Result macro for RDBMS connection
MVERSION Result macro for versions
RPODESC Utility macro to set purchase order number and description
START Query start-up macro
UCAMERA Utility macro to set up camera 1
UORACLE Utility macro to invoke RDBMS connection form
UQUIT Utility macro to quit Query
URESET Utility macro to reset observer materials
UVIEWDOC Utility macro to view documents (plotfiles and other
formats)
VAR2ENV Utility macro to convert %Variable% to environmental
variable
File Purpose
FENGDATA Form definition macro for engineering data.
FPLOTVIEW Form definition macro for plotfile viewer.
IENGDATA Initialisation macro for engineering data.
MENGDATA Result macro for engineering data.
UNEXTPLOT Utility macro to view next plot.
UPREVPLOT Utility macro to view previous plot.
A:15 12.0
Software Customisation Reference Manual
Communicating with Review
File Purpose
FPROGRESS Form definition macro for progress monitoring.
IPROGRESS Initialisation macro for progress monitoring.
MPROGRESS Result macro for progress monitoring.
UDISCIP Utility macro to set status list for selected discipline.
UTRANSLU Utility macro to make display translucent.
File Purpose
FHISTORY Form definition macro for maintenance history.
FINVENT Form definition macro for parts inventory.
FISOLATE Form definition macro for isolation list.
FMAINTAIN Form definition macro for maintenance requirements.
FSCHEDULE Form definition macro for maintenance schedule.
FSUPPLY Form definition macro for supplier details.
IHISTORY Initialisation macro for maintenance history.
IINVENT Initialisation macro for parts inventory.
IISOLATE Initialisation macro for isolation list.
IMAINTAIN Initialisation macro for maintenance requirements.
ISCHEDULE Initialisation macro for maintenance schedule.
ISUPPLY Initialisation macro for supplier details.
MHISTORY Result macro for maintenance history.
MINVENT Result macro for parts inventory.
MISOLATE Result macro for isolation list.
MMAINTAIN Result macro for maintenance requirements.
MSCHEDULE Result macro for maintenance schedule.
UMSHOW Utility macro to show and apply one of the maintenance
forms.
A:16 12.0
Software Customisation Reference Manual
Communicating with Review
File Purpose
DOCDATA Document data for engineering application
NAMEDATA Element names against description data
SUPPLIERDATA Supplier data containing names, addresses and telephone
No.
ISOLATEDATA Isolation elements against primary element data
PARTSINVDATA Parts inventory and supplier names against element data
MAINHDATA Maintenance history data and reports against element data
MAINSDATA Maintenance service data and reports against element data
MAINTDATA Maintenance schedules and due dates against element
data
PROGRESSDATA Progress monitoring data type against completion state
oracle_data An ORACLE data file in the form of tables for loading into
ORACLE. Table contents and names are consistent with
those of the above flat files.
sybase_data.ksh A Shell script for loading demo tables into Sybase RDBMS.
Table contents and names are consistent with those of the
above flat files.
C1101.plot Plotfile of 2D drawing of the Stabiliser
C1101020592.asc Maintenance report
C1101091092.asc Maintenance report
C1101111091.asc Maintenance report
C1101121089.asc Maintenance report
C1101141090.asc Maintenance report
EI3245.plot Electrical drawing plotfile
EI3246.plot Electrical drawing plotfile
V-70.spec Valve specification
P1501A.bom Pump bill of materials
P1501A.plot Plotfile of 2D drawing of Pump
cablelist..rep Electrical cable list report (PEGS-generated)
panel.rep Electrical panel report (PEGS-generated)
pfd.plot Process flow diagram plotfile
pid1.plot P&ID sheet 1
pid2.plot P&ID sheet 2
A:17 12.0
Software Customisation Reference Manual
Communicating with Review
File Purpose
pid3.plot P&ID sheet 3
v-70.tif Scanned image of a valve (sectioned drawing)
xtiff Utility to display scanned images
A:18 12.0
Software Customisation Reference Manual
PML 1 Expressions
B PML 1 Expressions
This appendix explains the PML 1 expressions package. These facilities are needed within
AVEVA products, for example, to define report templates in PDMS.
Expressions have types. For example, you can have numeric expressions, text expressions
and logical expressions. All the elements in an expression must be of the correct type. For
example, if you have a two numbers, x and y, and two text strings text1 and text2, the
following expression is meaningless:
x + text1 $
Expression
Logical Expressions
Logical Array Expressions
Numeric (Real) Expressions
Real Arrays
Text Expressions
‘This is text’
B:1 12.0
Software Customisation Reference Manual
PML 1 Expressions
There must be a space between each operator and operand. For example:
x + y
Use round brackets to control the order of evaluation of expressions and to enclose the
argument of a function. For example:
SIN(30)
In general, you do not need spaces before or after brackets, except when a name is
followed by a bracket. If there is no space, the bracket will be read as part of the name. For
example:
(NAME EQ /VESS1 )
Operator Comments
BRACKETS Brackets can be used to control the order in which
operators are evaluated, in the same way as in
normal arithmetic
FUNCTIONS
*/
+-
EQ, NEQ, LT, LE, GE, GT
NOT
AND
OR
( (SIN(!angleA) * 2) / SIN(!angleB) )
B:2 12.0
Software Customisation Reference Manual
PML 1 Expressions
• Logical operators.
• Logical functions.
Operator Comments
AND
EQ, NE The operators EQ and NE may be applied to any pair
of values of the same type.
GT, GE, LE, LT The operators GE, LE, GT and LT may only be used
with numbers and positions. For more information,
see Section C.5, Using Positions, Directions and
Orientations in Expressions.
NOT
OR
Note: The operators EQ, NE, LT, GT, LE and GE are sometimes referred to as comparator
or relational operators; NOT, AND and OR are sometimes referred to as Boolean
operators. See also Section C.11, Precisions of Comparisons for tolerances in
comparing numbers.
AND
Description Perform the logical AND between two logical values. Treats
unset values as FALSE.
Side Effects If one of the values is undefined and the other one is FALSE,
the result is FALSE.
B:3 12.0
Software Customisation Reference Manual
PML 1 Expressions
EQ and NE
B:4 12.0
Software Customisation Reference Manual
PML 1 Expressions
NOT
B:5 12.0
Software Customisation Reference Manual
PML 1 Expressions
OR
Side Effects If one of the values is undefined and the other one is TRUE,
the result is TRUE.
Function Comments
BADREF
DEFINED,UNDEFINED
CREATED
DELETED
EMPTY
MATCHWILD
MODIFIED
UNSET
VLOGICAL
BADREF
B:6 12.0
Software Customisation Reference Manual
PML 1 Expressions
CREATED
B:7 12.0
Software Customisation Reference Manual
PML 1 Expressions
DELETED
EMPTY
MATCHWILD
B:8 12.0
Software Customisation Reference Manual
PML 1 Expressions
MODIFIED
Synopsis
.-----------------------------------.
/ |
>- MODIFIED-(-+- attname -------*- DESCENDANTS --+-+-comma +-attname -’
| | | |
|- DESCENDANTS -. |- SIGNIFICANT --| |
| | | | |
|- SIGNIFICANT--| |- PRIMARY ----- | |
| | | | |
|- PRIMARY -----| |- OFFSPRING-----| |
| | | | |
|- OFFSPRING ---| ‘----------------’ |
| | |
| | |
| | |
‘---------------+--------------------+--+-- ) - OF - id
|
‘-
B:9 12.0
Software Customisation Reference Manual
PML 1 Expressions
The MODIFIED, DELETED and CREATED functions are not implemented within PML2
expressions.
UNSET
B:10 12.0
Software Customisation Reference Manual
PML 1 Expressions
VLOGICAL
VLOGICAL is used for the late evaluation of variables.
Side Effects If the scalar variable, the array variable, or the array variable
element does not exist, the result is undefined.
B:11 12.0
Software Customisation Reference Manual
PML 1 Expressions
• Logical constants. The constants available are: TRUE, ON, YES for true; and FALSE,
OFF, NO for false.
• Logical operators. See Logical Operators.
• Logical functions. See Logical Functions.
Operator Comments
+ Addition.
- Subtraction.
* Multiplication.
/ Division.
B:12 12.0
Software Customisation Reference Manual
PML 1 Expressions
Function Comments
ABS ( number1 ) Gives the absolute value of a number
ACOS ( number1 ) Gives the arc cosine of a number, in degrees.
ASIN ( number1 ) Gives the arc sine of a number, in degrees.
ATAN ( number1 ) Gives the arc tangent of a number, in degrees.
ATANT ( number1, number2 ) Gives the arc tangent of number1/number2, in
degrees, with the appropriate sign.
ALOG ( number1 ) Gives the exponential function (natural anti-log)
of a number.
B:13 12.0
Software Customisation Reference Manual
PML 1 Expressions
Function Comments
ARRAY(pos or dir or ori) Converts a position, direction or orientation
value or attribute into three numbers.
ARRAYSIZE ( variable-name Gives the size of an array variable.
)
ARRAYWIDTH( variable-name Gives the largest display width of any string in
) array variable-name.
COMPONENT dir OF pos2 Gives the magnitude of a vector drawn from E0
N0 U0 to pos2, projected in the direction dir1.
INT ( number1 ) Gives the truncated integer value of a number.
SIN ( number1 ) Gives the sine, cosine or tangent value of a
number (considered to be in degrees).
COS ( number1 ) Gives the sine, cosine or tangent value of a
number (considered to be in degrees).
TAN ( number1 ) Gives the sine, cosine or tangent value of a
number (considered to be in degrees).
LENGTH ( text1 ) Gives the length of text1.
DLENGTH ( text1 ) Gives the length of text1. DLENGTH is used
with characters which have a displayed width
that is different from standard characters, such
as Japanese.
LOG ( number1 ) Gives the natural logarithm of a number.
MATCH ( text1, text2 ) Gives the position of the beginning of the
leftmost occurrence of text2 in text1. If text2
does not occur in text1, 0 is returned.
DMATCH ( text1, text2 ) Gives the position of the beginning of the
leftmost occurrence of text2 in text1. If text2
does not occur in text1, 0 is returned.
DMATCH is used with characters which have a
displayed width that is different from standard
characters, such as Japanese.
MAX ( number1, number2[ , Gives the maximum value of the arguments.
number3 [. . .]]) )
MIN ( number1, number2[ , Gives the minimum value of the arguments.
number3 [. . .]]) )
NEGATE Multiply a number by -1.0.
NINT ( number1 ) Gives the nearest integer to a real. NINT(N+0.5)
is equal to N+1 if N is positive or equal to zero,
to N if N is negative.
OCCUR ( text1, text2 ) Gives the number of times string text2 occurs in
string text1.
REAL ( text1 ) Try to read a number at the beginning of text1.
B:14 12.0
Software Customisation Reference Manual
PML 1 Expressions
Function Comments
POWER ( number1, number2 ) Gives the value of number1 raised to the power
number2.
SQRT ( number1 ) Gives the square root of a number.
VVALUE ( variable-name ) Used for late evaluation of variables. Gives a
real value.
ABS
B:15 12.0
Software Customisation Reference Manual
PML 1 Expressions
ALOG
ARRAY
ARRAYSIZE
Side Effects If the array variable does not exist, the result is undefined.
ARRAYWIDTH
B:16 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:17 12.0
Software Customisation Reference Manual
PML 1 Expressions
INT
ALOG
B:18 12.0
Software Customisation Reference Manual
PML 1 Expressions
NEGATE
B:19 12.0
Software Customisation Reference Manual
PML 1 Expressions
NINT
OCCUR
Description Counts the number of times string text2 occurs in string text1
REAL
B:20 12.0
Software Customisation Reference Manual
PML 1 Expressions
POWER
SQRT
VVALUE
VVALUE is used for the late evaluation of variables.
Side Effects If the scalar variable, the array variable or the array variable
element does not exist, the result is undefined.
B:21 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:22 12.0
Software Customisation Reference Manual
PML 1 Expressions
• An error will occur if there is no implied tube for the element concerned.
ID arrays can also be used in expressions. For example, CRFA.
Note: Some of the ID syntax clashes with other types. To allow for this, an id expression
may always be preceded with the keyword ID. For example, ID 3 will mean the third
member of the current list rather than a number of value 3.
B:23 12.0
Software Customisation Reference Manual
PML 1 Expressions
If we require the result in some other axis system then the WRT keyword is used. For
example:
The default is that Cartesian coordinates are in the owning element’s axis system. This
absolute position can be expressed in different coordinate systems: the default is again the
owner’s axis system.
Note: The CONSTRUCT syntax uses the world as the default axis
Example
Item Comments
A SITE at (0,0,0) With default (World) orientation
A ZONE at (100,0,0) With default (World) orientation
An EQUIPMENT at (100,0,0) With orientation ’N IS E
A BOX at (-100,0,0) With default (World) orientation
B:24 12.0
Software Customisation Reference Manual
PML 1 Expressions
The result of Q (N 100 WRT /BOX1), shown as ⊗ in , will depend on the current element.
Location Result
World (300,100,0), in World coordinates.
Site (300,100,0) in World coordinates because the World
is the owner of the current element.
Zone (300,100,0) in World coordinates, because the Site is
the owner of the current element, and the Site
coordinates are the same as the World coordinates.
Equipment (200,100,0), which is the position relative to its
owner, the Zone.
Box (100,100,0) which is the position relative to its owner,
the Equipment.
B.5.3 FROM
In some cases we require an offset from a fixed point, other than the position of an item. For
example, a point or attribute.
The FROM syntax is used for this. We may still use WRT in combination with FROM, but in
this case the WRT is only used to determine the axis direction and not the offset, since the
offset is specified by the FROM part.
Consider the following:
Item Comments
A SITE at (0,0,0) With default (World) orientation
A ZONE at (100,0,0) With default (World) orientation
An EQUIPMENT at (100,0,0) With orientation ’N IS E
A BOX at (-100,0,0) With default (World) orientation
B:25 12.0
Software Customisation Reference Manual
PML 1 Expressions
The result of Q (N 100 WRT /* FROM /BOX1), shown as ⊗ in , will depend on the
current element.
Location Result
World, Site, and Zone (200,200,0) since the offset of N100 is applied in
world axis rather than /BOX1 axis.
Equipment (100,200,0).
Location Result
Site and Zone (100,0,0)
Equipment (0,0,0)
Box (0, -100, 0), because the axis for the result is the
Equipment.
B:26 12.0
Software Customisation Reference Manual
PML 1 Expressions
For this we cannot mark an absolute point on the diagram since the default WRT will vary
with the current element. In fact for the SITE, ZONE, EQUI the point ⊗ is marked in , and for
the BOX the point coincides with the ZONE.
Location Result
Site and Zone (0,100,0)
Equipment (-100,100,0), because the default result axis is the
Zone.
Box (0, -100, 0), because the axis for the result is the
Equipment.
For the EQ operator, all the pairs of defined coordinates should be equal. For NE, only one
pair of defined coordinates need be different. For GT (LT,GE,LE), all the defined coordinates
of the first position should be greater than (less than, greater than or equal to, less than or
equal to) the defined coordinates of the second position. This means that GE is not the
opposite of LT and LE is not the opposite of GT.
B:27 12.0
Software Customisation Reference Manual
PML 1 Expressions
If no coordinate of the two positions are defined for a common axis (e.g. ’N10’ and ’W4D7’),
the result of the comparison is undefined.
Examples
B.5.5 POLAR
The POLAR keyword allows positions to be defined in terms of a distance in a particular
direction from a point.
The syntax is:
B:28 12.0
Software Customisation Reference Manual
PML 1 Expressions
B.5.6 Direction
The basic ways of defining a direction are:
• Direction attribute plus optional WRT. For example,
HDIR OF /PIPE1 WRT /*
• Cartesian direction. For example,
N 45 W
• Cartesian direction WRT to an element.
• All Cartesian directions are returned in the axis of the owner of the current element. For
example:
(U WRT CE )
• will return the Z axis of the current element relative to its owner.
Q ( Z WRT /SCTN )
• will return the Z axis direction of /SCTN relative to the owner of the current element. For
example, if the result is required in world coordinates the current element must be the
World or a Site.
• FROM pos2 TO pos2. For example
FROM N 50 WRT CE TO N 100
• Keyword AXES followed by a p-point or pline.
• The CLOSEST keyword, which will find the closest element in a particular direction.
The syntax is:
B:29 12.0
Software Customisation Reference Manual
PML 1 Expressions
B.5.7 Orientations
The basic ways of defining an orientation are:
• Orientation attribute plus optional WRT. For example:
ORI OF /BOX1 WRT /*
• Cartesian orientation. For example:
dir IS dir AND dir IS dir
• For example to set an orientation of an element to that of a section, rotated by 90
degrees use:
(E IS U WRT /SCTN1 AND N IS E WRT /SCTN1)
• The AXES keyword, which will allow you to use P-points to specify orientations.
• The syntax is:
----<---------.
/ |
>-- AXES --*--- PArrive ---|
| |
|--- PLeave ----|
| |
|--- PTail -----|
| |
|--- HHead -----|
| |
|--- HTail -----|
| |
‘--- PPOINT n --+-- OF - <gid> ---->
• An example is:
( AXES PLEAVE IS AXES PLEAVE OF PREV AND AXES P3 IS UP )
• This will orient a branch component, such as a valve, so that it is aligned with the
previous component and its P3 is up.
See also Comparing Positions.
B:30 12.0
Software Customisation Reference Manual
PML 1 Expressions
Function Comments
AFTER
BEFORE
DISTANCE
LOWCASE, UPCASE
PART
REPLACE
STRING
SUBS, DSUBS
TRIM
VTEXT
AFTER
B:31 12.0
Software Customisation Reference Manual
PML 1 Expressions
BEFORE
DISTANCE
B:32 12.0
Software Customisation Reference Manual
PML 1 Expressions
PDMS
For both US and PDMS formats the following rules are
observed:
• If distance is negative, the first symbol is a minus sign.
• If feet is true and the distance is at least a foot, then the
number of feet is output next, followed by a single quote
(’). Only if zeros is true will the number of feet be output
as 0 for distances less than a foot. Otherwise the feet will
be omitted.
• If feet have been output, the inches will be at least two
characters wide. Numbers less than ten will be preceded
by a space if US format is being used or a zero if PDMS
format is used. A zero will be output if there are no whole
inches.
• If no feet have been output and the distance is at least an
inch, then the number of inches is displayed but without
any preceding spaces. Only if zeros is true will a 0 be
output for distances of less than an inch.
• If inches have been output and fraction is true, these will
be followed by a decimal point (.).
• If fraction is TRUE and the number has a fractional
component, then the numerator and the denominator are
shown separated by a slash (/). This is then blank padded
up to the width that the largest numerator and
denominator would take.
• If fraction is FALSE and the number of decimal places is
greater than zero, then the decimal point (.) is displayed
followed by the remainder up to the appropriate number
of decimal places. If the number of decimal places is 0
then the decimal point is not shown either.
• If US format has been selected then the following
additional rules are observed on output:
• The (’) after the number of feet is followed by a dash
(-).
• The decimal point separating the inches from the fraction
is replaced by a space.
• The inches and fraction of inches are followed by a
double quote(”).
Side Effects None.
B:33 12.0
Software Customisation Reference Manual
PML 1 Expressions
Distance Feet & Inch Feet & Inch Inches Inches Feet & Inch
US US US US PDMS
Fraction Fraction Decimal Fraction Fraction
Denom 100 Denom 32 DP 1 Denom 2
Zeros No Zeros Zeros Denom 4 Zeros
No Zeros
B:34 12.0
Software Customisation Reference Manual
PML 1 Expressions
PART
REPLACE
B:35 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:36 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:37 12.0
Software Customisation Reference Manual
PML 1 Expressions
STRING
Errors
B:38 12.0
Software Customisation Reference Manual
PML 1 Expressions
TRIM
B:39 12.0
Software Customisation Reference Manual
PML 1 Expressions
VTEXT
VTEXT is used for the late evaluation of variables.
Side Effects If the scalar variable, the array variable or the array variable
element does not exist, the result is undefined.
B:40 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:41 12.0
Software Customisation Reference Manual
PML 1 Expressions
Setting Comments
NONE No units. e.g. attribute OBS.
UNKN Unknown units. e.g. 10.
MM Dist/bore attribute if units are MM, or literal e.g. 10 mm.
INCH Dist/bore attribute if units are INCH/FINCH, or literal e.g. 10’.
SQIN Multiply two INCH values together, or literal e.g. 10 sq in.
CUIN Multiply SQIN by INCH, or literal e.g. 10 cu in.
On comparison, addition or subtraction of two values the following assumptions are made. If
one of the units is unknown and the other is anything other than UNKN, then the unknown
value is assumed to have the same units as the known units. A suitable conversion is then
done if the known units is INCH or SQIN or CUIN.
For example:
(XLEN GT 10).
If we are working in distance units of inches, it is known that XLEN is a distance value.
Internally the value is held in mm, but the units are held as INCH. The units for ’10’ are held
as unknown. On doing the comparison, the ’10’ is assumed to be inches and thus multiplied
by 25.4 to ensure that the comparison works as expected.
Special action is also taken to preserve the correct units across multiplication, division,
POWER and SQRT, in particular the maintenance of SQIN and CUIN. In these situations,
units of %UNKN are treated as none. For example, (10 * XLEN) is assumed to result in
INCH rather than SQIN. An exception is made when a reciprocal would result from division.
For example: for (10 / XLEN) we assume that the 10 is in inches rather than none.
Object Tolerance
Number Tolerance factor of 0.000001.
In other words, if the difference between two reals is not
greater than 0.000001* (maximum of the two values) then
the values are considered to be equal. e.g.
• (1.000001 GT 1) is FALSE as it considers 1.000001;
and 1 to be equal;
• (1.000002 GT 1) is TRUE.
Position Considered to be equal if within 0.5 mm of one another.
Direction or Orientation Considered to be equal if values are within 0.005.
B:42 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:43 12.0
Software Customisation Reference Manual
PML 1 Expressions
B:44 12.0
Software Customisation Reference Manual
Index
A D
ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:15 DEFINED . . . . . . . . . . . . . . . . . . . . . . . . B:7
ACOS . . . . . . . . . . . . . . . . . . . . . . . . . . B:15 DELETED . . . . . . . . . . . . . . . . . . . . . . . . B:8
ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . B:12 DISTANCE . . . . . . . . . . . . . . . . . . . . . . B:32
AFTER . . . . . . . . . . . . . . . . . . . . . . . . . B:31 format . . . . . . . . . . . . . . . . . . B:32, B:33
ALOG . . . . . . . . . . . . . . . . . . . . . B:16, B:18 US format . . . . . . . . . . . . . . . B:32, B:33
AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:3 DIVIDE . . . . . . . . . . . . . . . . . . . . . . . . . B:13
AREA command ( Design and ) . . . . . 2:187 DLENGTH . . . . . . . . . . . . . . . . . . . . . . B:18
Area view gadget . . . . . . . . . . . . . . . . 2:187 DMATCH . . . . . . . . . . . . . . . . . . . . . . . B:19
Area view setup mode . . . . . . . . . . . . 2:187 DSUBSTRING
ARRAY . . . . . . . . . . . . . . . . . . . . . . . . . B:16 Japanese characters . . . . . . . . . . . B:39
ARRAYSIZE . . . . . . . . . . . . . . . . . . . . . B:16
ARRAYWIDTH . . . . . . . . . . . . . . . . . . . B:16 E
ASIN . . . . . . . . . . . . . . . . . . . . . . . . . . . B:15
ATAN . . . . . . . . . . . . . . . . . . . . . . . . . . B:15 EMPTY . . . . . . . . . . . . . . . . . . . . . . . . . . B:8
ATANT . . . . . . . . . . . . . . . . . . . . . . . . . B:15 EQUAL . . . . . . . . . . . . . . . . . . . . . . . . . . B:4
attributes Expressions
in expressions . . . . . . . . . . . . . . . . B:41 directions in . . . . . . . . .B:28, B:29, B:30
AUTOSEND command . . . . . . . . . . . . . . A:2 format . . . . . . . . . . . . . . . . . . . . B:1, B:2
IDS in . . . . . . . . . . . . . . . . . . . . . . . B:22
B logical . . . . . . . . . . . . . . . . . . . . . . . . B:2
logical array . . . . . . . . . . . . . . . . . . B:11
BADREF . . . . . . . . . . . . . . . . . . . . . . . . . B:6 nesting . . . . . . . . . . . . . . . . . . . . . . . B:2
BEFORE . . . . . . . . . . . . . . . . . . . . . . . . B:32 numeric . . . . . . . . . . . . . . . . . . . . . B:12
Boolean operators . . . . . . . . . . . . . . . . . . B:3 positions in . . . . . . . . . . . . . . . . . . . B:23
precision of comparisons . . . . . . . . B:42
C real . . . . . . . . . . . . . . . . . . . . . . . . . B:12
real array . . . . . . . . . . . . . . . . . . . . B:22
COMP . . . OF . . . . . . . . . . . . . . . . . . . . B:17 types . . . . . . . . . . . . . . . . . . . . . . . . B:1
Comparator operators . . . . . . . . . . . . . . . B:3
Comparison precision F
in expressions . . . . . . . . . . . . . . . . B:42
COSINE . . . . . . . . . . . . . . . . . . . . . . . . B:17 format distances . . . . . . . . . . . . . . . . . . B:33
CREATED . . . . . . . . . . . . . . . . . . . . . . . . B:7 FROM . . . . . . . . . . . . . . . . . . . . . . . . . . B:25
Functions P
logical . . . . . . . . . . . . . . . . . . . . . . . . B:6
numeric . . . . . . . . . . . . . . . . . . . . . . B:13 PART . . . . . . . . . . . . . . . . . . . . . . . . . . B:35
real . . . . . . . . . . . . . . . . . . . . . . . . . B:13 Positions
comparing . . . . . . . . . . . . . . . . . . . B:27
POWER . . . . . . . . . . . . . . . . . . . . . . . . B:21
G
GE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:5 Q
GT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:5
Querying
variables and expressions . . . . . . . B:41
I
IDs in expressions . . . . . . . . . . . . . . . . . B:22 R
INT . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:18
REAL . . . . . . . . . . . . . . . . . . . . . . . . . . B:20
Real arrays in expressions . . . . . . . . . . B:22
L Real expressions . . . . . . . . . . . . . . . . . B:12
Late evaluation of expressions . . B:21, B:41 Relational operators . . . . . . . . . . . . . . . . B:3
LE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:5 REPLACE . . . . . . . . . . . . . . . . . . . . . . B:35
LENGTH . . . . . . . . . . . . . . . . . . . . . . . . B:18 REVIEW command . . . . . . . . . . . . . . . . A:1
Logical functions . . . . . . . . . . . . . . . . . . . B:6
LOWCASE . . . . . . . . . . . . . . . . . . . . . . B:34 S
LT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:5
SEND command . . . . . . . . . . . . . . . . . . A:2
SINE . . . . . . . . . . . . . . . . . . . . . . . . . . . B:17
M SQRT . . . . . . . . . . . . . . . . . . . . . . . . . . B:21
MATCH . . . . . . . . . . . . . . . . . . . . . . . . . B:19 STRING . . . . . . . . . . . . . . . . . . . . . . . . B:38
MATCHWILD . . . . . . . . . . . . . . . . . . . . . B:8 SUBSTRING . . . . . . . . . . . . . . . . . . . . B:39
MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . B:19 SUBTRACT . . . . . . . . . . . . . . . . . . . . . B:12
MIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:19
MODIFIED . . . . . . . . . . . . . . . . . . . . . . . B:9 T
MULTIPLY . . . . . . . . . . . . . . . . . . . . . . B:13
TANGENT . . . . . . . . . . . . . . . . . . . . . . B:17
Text functions . . . . . . . . . . . . . . . . . . . . B:31
N Text operator . . . . . . . . . . . . . . . . . . . . B:31
NEGATE . . . . . . . . . . . . . . . . . . . . . . . . B:19 TRIM . . . . . . . . . . . . . . . . . . . . . . . . . . B:39
NEQUAL . . . . . . . . . . . . . . . . . . . . . . . . . B:4
NINT . . . . . . . . . . . . . . . . . . . . . . . . . . . B:20 U
NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:5
NUMBER (REAL) . . . . . . . . . . . . . . . . . B:20 UNDEFINED . . . . . . . . . . . . . . . . . . . . . B:7
Numeric expressions . . . . . . . . . . . . . . B:12 Undefined values
Numeric operators . . . . . . . . . . . . . . . . B:12 in expressions . . . . . . . . . . . . . . . . B:43
Units
in expressions . . . . . . . . . . . . . . . . B:41
O UNSET . . . . . . . . . . . . . . . . . . . . . . . . . B:10
OCCUR . . . . . . . . . . . . . . . . . . . . . . . . . B:20 Unset values
Operators in expressions . . . . . . . . . . . . . . . . B:43
logical . . . . . . . . . . . . . . . . . . . . . . . . B:3 US format distances . . . . . . . . . . . . . . . B:33
numeric . . . . . . . . . . . . . . . . . . . . . . B:12
text . . . . . . . . . . . . . . . . . . . . . . . . . B:31 V
OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B:6
VLOGICAL . . . . . . . . . . . . . . . . . . . . . . B:11
VTEXT . . . . . . . . . . . . . . . . . . . . . . . . . B:40
VVALUE . . . . . . . . . . . . . . . . . . . . . . . . B:21
W
WRT . . . . . . . . . . . . . . . . . . . . . . . . . . . B:23