BPSs.gif (1525 bytes)BPSCAD

User guide

Brief introduction of BPSCAD is in abstract from ITI '94.

Contents

1. Installation
2. Data structure
3. Template editor
4. Screen display
5. Commands
6. Useful procedures
7. Quick reference card
8. Troubleshooting and FAQ

1. Installation

Installation is very easy: You need only to put file anywhere under path (or in current directory). Under Windows 95 you can add shortcut to this program on your desktop (as I use). In properties you change screen->full window. Also it is useful to setup working directory from where user should search a database to open or files to save.


Minimum requirements:

In order to run BPSCAD computer must have:


To start BPSCAD on computer with standard VGA you don't need to type any command line option

To start BPSCAD on computer with standard MCGA you'll start with 11 in command line:

C:> bpscad 11<Enter>

To start BPSCAD on computer with standard CGA you'll start with 2 in command line:

C:> bpscad 2<Enter>

To start BPSCAD on computer with Hercules adaptor, it is neccesary to activate TSR module MSHERC.COM before invoking BPSCAD with 3 in command line:

C:> msherc<Enter>

C:> bpscad 3<Enter>

To start BPSCAD on computer with EGA you'll start program with 9 in command line:

C:> bpscad 9<Enter>

If you have old ISA VGA adaptor TRIDENT-D you can start BPSCAD in 1024*768/16colors mode with following:

C:> bpscad &H5F<Enter>

This software is compiled with BPSLIB and supports also ET-3000 and ET-4000 cards. Before using SVGA video modes, you'll need to check user guide for ET-3000/ET-4000 to find BIOS mode number for 1024*768/16colors. Do not try any 256 colors mode. Sorry, I don't remember exact numbers.:(

On ET-4000 it is possible to achieve 1280*1024/16colors mode. Again: you'll need to find out its BIOS number.

So, BPSCAD in command line accepts video mode as parameter. Hexadecimal number can be entered with &H prefix (as in Qbasic). Modes up to 13 (&HD) are same modes as for screen statement under Qbasic.

Commercial version of BPSCAD will have ability of use VESA SVGA modes. This version is under construction.

2. Data structure

In order to use this software, the user is adviced to read complete document, also, it is adviced to read abstract from ITI '94. This software is not user friendly (Murphy: when you make software which even fool can use - only fool should use it), this software is a workstation. There doesn't exist pull-down menus, pop-up messages or online help. BPSCAD is small and compact. The user must learn commands in order to achieve speed and productivity. BPSCAD can handle large amount of spatial data (I've seen databases with more than 500 000 particular points) without loosing the speed.

Note about coordinate system. BPSCAD uses geodetic coordinate system:

To start with this software, user must learn something about data structure and also about commands. Here is described data structure.

To use this software, it is important to know how spatial data are organised. Here is brief description:

In BPSCAD exists following data types:

  1. Point
  2. Origin
  3. Polyline
  4. Label

In order to understand data depencies, here is shown data structure as tree:

Origin
Point -> Origin
Polyline -> Points
Label

So, point can be defined only on previously defined origin. The polyline can be defined only as list of previously defined points.


Point is simplest spatial data element. In this software every point is belong to some origin, where origin is used to save extra information about particular point. In point as data element is saved following data:

When BPSCAD returns info about particular point, the point ID has two numbers: number of point in database and number of its origin. See command < I>.

In BPSCAD points are only elements which are plotted automatically after refresh screen. Every other type can be displayed by invoking command. This is made on this way because BPSCAD is used mainly for manipulating mass points in surveying.


The Origin is virtually useless data element. But you can not define any point if you don't have origin well defined. The origin is used to group points in space. When user requests to display detail on screen (i.e. zoom, see < Tab>), BPSCAD searches at first origins to see if particular origin can have any point in requested area. In order to make software to be simple, origins are not created automatically. The user must create origin (see command < Ctrl>< O>).

Under origin is saved following data:

User can put some tekst (up to 32 characters) in order to save additional info about corresponding points, e.g. method of measurement, date of creation, etc.

The coverage of origin (maximum distance of particular point from origin's centre) is defined by resolution.

Important: Maximum distance from origin centre is defined as +/-32767*resolution, e.g if Z resolution is set to 0.01m and origin centre is at seaa level (Zg=0), maximuum height of point in that origin can be 327.67m (32767*0.01).

Useful Note: It is useful to set resolution to be half or measuring accuracy even when coverage of origin is small. For example, measured points from digitiser with 0.1m accuracy should be put into origin with 0.05m resolution. This is useful because info (command < I>) on point should automatically show point's accuracy.


Polylines are defined by points. That means that polyline can be defined only on previously defined points. Also, there doesn't exist any interpolation, smoothing, etc.

The polyline is defined as list of connected points. The connection is always linear (i.e. no arcs).

The polyline as data element holds following data:

In BPSCAD exists special polyline named polyline buffer, which is used for manipulating polylines.


Labels are undependend elements, i.e. every label in database is self defined, i.e. the user can define label without any other base element.

The label holds following data:

To explain how is origin defined, take look at numeric keypad:

  1. is at lower left corner, so, lower left corner of text is used as base point;
  2. is at lower middle;
  3. is lower right corner;
  4. is left middle;
  5. middle;
  6. right middle;
  7. upper left corner;
  8. upper middle;
  9. upper right corner.

So, given coordinates should be used as it is stated above.

Orientation angle is not used in BPSCAD, it is used mainly for export database into DXF format. When BPSCAD is invoked to show labels (command < Z>), coverage of text is presented in blue color.

3. Template editor

In this chapter is described template editor which is used for inputting data. The template editor is unique through whole software. In other words, it works on same way on all screens (graphic or text mode).

When available, BPSCAD always offers default or current data (see command <Ctrl><R> as example). The input field can be deleted with <Esc> key.

Here is list of keys:

< Esc> - If input field is not empty, this key should erase it. If user presses this again, old data should be redisplayed.

< Left> - Moves cursor left one character.

< Right> - Moves cursor right one character.

< Ctrl>< Left> - Moves cursor to end of previous word (if any).

< Ctrl>< Right> - Moves cursor at beginning of next word (if any).

< Enter> - Accept input and return to program. If input field is empty, default data are returned to program (abort data input).

< Ins> - Togle insert mode: In insert mode cursor is visible as blinking box, in overwrite mode is visible as blinking underline.

< Backspace> - Erases character left from cursor.

< Del> - Erases character at the cursor.

Mouse movement - moves cursor left/right.

4. Screen display

Figure 1. Screen display of BPSCAD

On picture above is shown typical screen. On top of screen is data displayed by last < I> command, in upper right corner is clock.

On bottom three lines are displayed following data:

Yg, Xg, Zg, dx, dy, dz
Dxy, Axy

Dxyz, Az

Where is:

Yg, Xg, Zg - absolute coordinates of main cursor.
dx,dy,dz - relative coordinates of main cursor.
Dxy - Horizontal distance from second cursor, i.e. Dxy=(dx2+dy2)0.5
Axy - Local azimuth (see command < Ctrl>< A>)
Dxyz - Total distance from second cursor, i.e. Dxy=(dx2+dy2+dz2)0.5
Az - Elevation (measured from second cursor)

4. Commands

The BPSCAD uses two cursors, most of CAD software use only one cursor. Why this? The answer is very simple: user needs both cursors in order to make all constructions fast and in simple way.

At start of BPSCAD, file open menu is displayed. All directories are displayed in green color and files in brown. In bottom of screen is displayed function key usage:

< F2> - More - if screen is filled out with filenames, with this key user can request to show next page.

< F4> - Create - this key is used when user wants to start new database. BPSCAD requests new filename through template editor. If this menu is used for select input file, this function is disabled.

< F10> - Cancel - with this key user exits from BPSCAD to OS. By invoking this key from graphics interface database is closed and program is returned to file open menu.

This menu is also used for create or open any file from BPSCAD.


Cursors

The main cursor is presented as bigger cross with small circle, the second one is presented as smaller cross without circle. If BPSCAD is used with color monitor, both cursors are in cyan color. Of course, that is not for anaglyphical version of BPSCAD where green and red are only allowed colors.

The main cursor can be moved by mouse or track-ball (preferred) directly. Also, mouse/track-ball buttons are not used in this software.


Here are described all commands. This is divided into following sections:

2.1 Cursor movement

2.2 Display

2.3 Origin

2.4 Point

2.5 Polyline

2.6 Label

2.7 Data export (DXF or ASCII)

2.8 Database manipulation (join, extract)

2.9 Exit from program and other special keys

2.1 Cursor movement

As mentioned above, the main cursor can be moved by mouse (or track-ball). Track-ball is preferred because it is easier to use it with BPSCAD. Also, in order to move main cursor by other way, it is important to have pointing device in idle state (mouse/track-ball), to achieve this, user need to leave mouse on stable surface to ensure that no movement should be generated by it.

Note: Both cursors are displayed on screen even they can be out of displayed area. Also, main cursor cannot be moved out of displayed area by pointing device.


Following commands can be used in order to move main cursor:

< Ctrl>< R> - Rectangular coordinate set. After invoking this command, user should enter three numbers where he want to move the main cursor. Current coordinates are offered by template editor. Thus empty field means reuse of current coordinate (no movement).


< Ctrl>< E> - Relative rectangular coordinate set. User should enter three coordinates in local coordinate system. By default, centre of local coordinate system is defined with position of second cursor. This system can be rotated by command < Ctrl>< A>.


< Ctrl>< D> - Relative polar coordinate set. User should enter distance, azimuth and elevation angle. Distance can be entered as negative number. Angles are entered in degrees, minutes and seconds format. Do not delete degree symbols in input field. If these simbols are deleted, BPSCAD should accept same number for degrees, minutes and seconds. Any of these numbers can be negative.

Examples:

0.00'0" = 0

30.50'0" = 3030' (decimal degrees)

3020.5'0" = 3020'30" (decimal minutes)

60-30'0" = 59.5 (negative minutes)

-9030'0" = -89.5 (negative degrees)

30 = 3030'30.0" (erased symbols!)

30'20.2" = 030'20.2" (missed nuber is understood as zero)

30'30" = 3000'30.0" (missed minutes, but symbol is present)

20rrqw'5aa" = 2000'5.0" (illegal characters terminate text to number conversion in subfield)


< I> - Get Info about point (inside the circle of cursor) and put cursor exactly to found point. Info about found point is shown on top of screen.


< F> - Put cursor on point (Find point). The point number is entered via template editor.


< Ctrl>< A> - This command doesn't move main cursor, but it is explained here because this command defines rotation angle of local coordinate system. The local coordinate system is defined as mathematical rather than geodetic. See figure 2.

Rotation of local coordinate system is defined in that way that direction from the second cursor to main cursor presents direction of mathematical X axis.

Note: In order to show current orientation angle, it is enough to press < Enter> in normal mode and current orientation will be shown at bottom of the screen (Axy), see screen display.


Following commands should move second cursor:

< Enter> - If program is not in zoom mode (see command < Tab>), the second cursor should be moved to position of main cursor. If program is in zoom mode, screen will be cleared and the area which is showed as cyan rectangle would be zoomed. Only points would be displayed automatically, user needs to use command < P> to show polylines and < Z> in order to show labels.


Following commands should move both cursors:

< Ctrl>< Enter> - Exchange position between main cursor and second cursor.


< Ctrl>< Backspace> - Diagonal exchange of cursors. Useful in order to find intersections. Cursors present diagonal rectangular box in local coordinate system; by this command user can change to other diagonal. Example: there are measured only three corners of house and it is neccessary to construct the fourth corner. Task is very simple to complete: put main cursor to one corner, use < Enter> to move second cursor, move main cursor to other corner at same side and invoke < Ctrl>< A> to set orientation of local coordinate system, move cursor to third corner (in diagonal with second cursor) and invoke < Ctrl>< Backspace> to findout fourth corner, after that one of cursors would be at fourth corner - if main cursor is not at desired position user should just press < Ctrl>< Enter> in order to exchange position of cursors.

Note: Rotation of local coordinate system is implemented only in zoom mode, see command < Tab>.


< End> - If polyline buffer has enough data, this command should move main cursor to centre of polyline (average of coords) and second cursor to intersection between lines which are defined in following way: first line is defined bay first two points in polyline buffer, and second is defined bay second pair of points (i.e. by third and fourth point). Also, on the top is displayed area of polyline buffer (if it is properly closed) and length. User can enter text in free format in order to save area and length in ASCII file (named by name of database with extension.art), i.e. file filename.art is appended (or created if doesn't exist) in same directory where main database exists. This file is ASCII formatted and every line holds text entered, area, length and number of points used. If user returns blank field, this file shouldn't be appended nor created.

Note: Rotation of local coordinate system is implemented only in zoom mode, see command < Tab>.

2.2 Display

User can change view area any time. Furthermore, aspect ratio is not preserved as in other CAD programs. It seems as disadvantage only at first sight.


< Tab> - This command doesn't change screen view, but is important. On screen are visible two cursors as explained before, by this command, software is in zoom mode (or back in normal mode if <Tab> is pressed again). If local coordinate system is rotated by the command < Ctrl>< A>, this local coordinate system would be displayed as white rectangle.

BPSCAD - Cursors in ZOOM mode

Figure 2. Screen display of BPSCAD in zoom mode


< Enter> - If program is not in zoom mode (see command < Tab>), the second cursor should be moved to position of main cursor. If program is in zoom mode, screen would be cleared and the area which is showed as cyan rectangle would be zoomed. Only points would be displayed automatically, user needs to use command < P> to show polylines and < Z> in order to show labels.


< Home> - Viewport will be moved to main cursor. So, main cursor will not change its position and display will be regenerated keeping main cursor in middle.


< Backspace> - In normal mode this command is use for panning, i.e. viewport will be moved by distance from second cursor to main cursor. In zoom mode (see picture above) this command will activate default viewport: coverage of database during fileopen increased by 10%.


< R> - this command will restore display from last zoom action. In other words: by this command it is possible cancel action and return to previous viewport. This has affect only to < Enter> and < Backspace> commands.


< PgUp> - Zoom in 2x


< PgUp> - Zoom out 2x


Following commands are used for display additional data:

< I> - Get info about point (inside the circle of cursor) and put cursor exactly to found point. Info about found point is shown on top of screen.


< F> - Put cursor on point (Find point). The point number is entered via template editor.


< B> - Plot Buffer. Use this command to plot polyline buffer on the screen.


< P> - Plot polyline(s). In template editor user enters additional data. Sintax is:

startpolyline[,endpolyline[:color]]

Square brackets show optional data. If color is not entered, each polyline will be plotted in its own color (see structure of polyline)

Examples:

-1 - Polyline with greatest number, i.e. last record in polyline database

5,100 - Polylines with numbers 5-100

99,-1 - Polylines from 99 to end of database

66:12 - Polyline 66 in bright red colour

55,-1:3 - Polylines from 55 to end of database in cyan colour

Colours are defined as in VGA BIOS:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Grey
9 - Bright Blue
10 - Bright Green
11 - Bright Cyan
12 - Bright Red
13 - Bright Magenta
14 - Yellow
15 - Bright White


< M> - Plot Margins - with this command current margins (area of coverage of origins) of all origins are displayed on screen in blue color.


< O> - Plot Origin(s) - With this command user can replot particular origin(s). Collor of plotted origin is highlighted (if possible) and area of coverage is also plotted (blue collor) as for command < M>. In template editor user enters additional data. Sintax is:

startorigin[,endorigin[:color]]

Square brackets show optional data.

Examples:

-1 - All origins

5,100 - Origins with numbers 5-100

99,-1 - Origins from 99 to end of database

Note: If user enters only one number, it is assumed that that origin is selected for data input.


< L> - Plot points' Labels. With this command points are replotted with theirs labels.


< Z> - Plot Labels. By this command labels are plotted on display. User need to enter label number(s) as for command < O>.

Label is printed on display using system font and coverage of the label's text is displayed as blue rectangle.


< End> - If polyline buffer has enough data, this command should move main cursor to centre of polyline (average of coords) and second cursor to intersection between lines which are defined in following way: first line is defined bay first two points in polyline buffer, and second is defined bay second pair of points (i.e. by third and fourth point). Also, on the top is displayed area of polyline buffer (if it is properly closed) and length. User can enter text in free format in order to save area and length in ASCII file (named by name of database with extension.art), i.e. file filename.art is appended (or created if doesn't exist) in same directory where main database exists. This file is ASCII formatted and every line holds text entered, area, length and number of points used. If user returns blank field, this file shouldn't be appended nor created.

2.3 Origin

< O> - Plot Origin(s) - With this command user can replot particular origin(s). Collor of plotted origin is highlighted (if possible) and area of coverage is also plotted (blue collor). In template editor user enters additional data. Check sintax in Display->< O>.


< Ctrl>< O> - Define origin - This command is used for creating new origin with it's centre at the position of main cursor (check Zg before creating origin!). User needs to enter following data:


< M> - Plot Margins - with this command current margins (area of coverage of origins) of all origins are displayed on screen in blue color.

2.4 Point

< I> - Get info about point (inside the circle of cursor) and put cursor exactly to found point. Info about found point is shown on top of screen.


< L> - Plot points' Labels. With this command points are replotted with theirs labels.


< F> - Put cursor on point (Find point). The point number is entered via template editor.


< Ins> - Define (Insert) point at main cursor position. In order to succesfull use of this command, user must first select origin by command < O>. Also, the main cursor must not be too far from origin's centre.

Note: Command for delete the point doesn't exist. If there is need for compact data and for remove surplus point, only way is to extract database.

2.5 Polyline

All manipulation (i.e. modifications) are made by using special polyline named polyline buffer.

< P> - Plot polyline(s). In template editor user enters additional data. Aditional info about this command is here.


< K> - Kill polyline buffer. This command destroys polyline buffer, i.e. after this command the buffer is empty.


< B> - Plot Buffer. Use this command to plot buffer on the screen.


< A> - Add point to polyline buffer. Actual point which will be added to polyline buffer is the point at position of main cursor, i.e. the point which will be found by command < I>.


< -> (minus) - Add series off points to buffer. This command adds "loop" of points into polyline buffer. First point of loop is determined by last point in buffer (note: do not use this command on empty buffer - it can make unpredictable results!!). The last point of loop is determined by main cursor position as for command < A>.

The loop is explained by examples.

Incrementing loop: Let us assume that point No 5 is the last point in buffer and this command finds point No 10. Following points will be added by just one comand (this): 6, 7, 8, 9 and 10.

Decrementing loop: Let us assume that point No 10 is the last point in buffer and this command finds point No 5. Following points will be added by just one comand (this): 9, 8, 7, 6 and 5.


< +> - Add entire polyline to buffer. By pressing the plus key user is asked to enter the polyline number.


< S> - Save buffer to polyline. This command is used in order to save polyline. User is requested to enter polyline number into which will be saved polylline buffer.

2.6 Label

< Q> - Create label at main cursor. User needs to enter following data through template editor:


< Z> - Plot Labels. By this command labels are plotted on display. User need to enter label number(s) as for command < O>.

Label is printed on display using system font and coverage of the label's text is displayed as blue rectangle.

2.7 Data export (DXF or ASCII)

< Alt>< X> - Export data to DXF - this command is used in order to create the DXF file from current database. Screen switches to text mode and file selection menu is invoked. If user select file which already exist, that file will be overwrited.

User is then asked in loop:


< Ctrl>< K> - export stacking data to ASCII file. Screen switches to text mode and file selection menu is invoked. If user select file which already exist, that file will be appended. Format of output file is ASCII, extension is .ELK.

2.8 Database manipulation (join, extract)

< J> - Join database. In the file menu user selects another database to join to currently opened. Selected database is added to end of current database.


< E> - Extract database. In the file menu user selects database to create. If user selects existing database - that database is erased.

2.9 Exit from program and other special keys

User can regulary exit from program any time without loosing any data.

< F10> - Exit from program. Also, user can use < Ctrl>< Break> in order to force exit from BPSCAD without any danger. All data in BPSCAD are always saved immediately. If any database is open, it is closed and user is returned to file open menu.

6. Useful procedures

- Under construction

7. Quick reference card

- Under construction

8. Troubleshooting and FAQ

- Under construction

BPSs.gif (1525 bytes)