PREFACE
AINA is a Hawaiian word which approximately means "land."
The AINA SURVEYOR is an awsome and unique set of programs for land surveying.
INTERESTED?
It is an unfortunate thing that a "DEMO" version is what is provided here instead of a traditional "shareware" version where you could get a full feel of the program, but with the advent of really good decompilers, even the novice could readily defeat most shareware encumberances. However, a demo version does provide a good taste of the layout, enough to decide "LIKE" or "NO LIKE" which is quite reasonable. If you are interested in purchasing the full version of this program, please drop me an email or send me a postcard.
Contact me at:
Jason Look
P.O. Box 25535
Honolulu, HI 96825
or
email: koolj96825@yahoo.com
CONTENTS
Inverse Azimuth
Traverse
Baseline Segment
Arc/Arc Intersect
Arc/Line Intersect
Line/Line Intersect
Coordinate Conversion
End Area
Triangle Solutions
Job Info
Curves
Curve Data
Fit a Curve
Utilities
File Transfer
Superelevation
Straight Line Grade
Vertical Curve
Leveling
EDM Leveling
EDM note reduction
Electronic Transit Works
LEGAL STUFF
COPYRIGHT AGREEMENT (DEMO)
This is shareware and you are free to distribute it as long as it is distributed unchanged and in its entirety. And hey, NO DISTRIBUTING THIS FOR PROFIT!!!!!!!!
Reverse engineering, decompiling, or hacking into these programs is also STRICTLY PROHIBITED. DON'T do it!!!
CUSTOMER SUPPORT
There is NO CUSTOMER SUPPORT. However, if you find bugs or need a little help, please contact me.
Contact me at:
WARRANTY
There is NO WARRANTY. These programs and manual are not guaranteed to be free from defects. Use them at you own risk. The author of these programs shall not be held responsible for any loss caused by these programs or their use, incidental or otherwise. Use of these programs constitutes your agreement to accept these terms.
INSTALLATION
There are two editions available in addtion to the Demo, BASICS and ETW.
BASICS should be able to run from any normal port. You can even load it to a HP-48GX without a RAM card and still have enough room for about 700 points.
ETW has everything BASICS has, but it includes the ETW which is a concise, easy to use, data-collector. ETW requires the full 128K, you must have a merged RAM card to load it. The ETW edition MUST run from an uncovered port, that is port 0 or port 1. So your RAM card must be in slot 1. Loading the library to a covered port will run the risk of a memory reset!!!! And, it'd be really slow. If installing this edition, don't forget to merge the RAM card first.
If you are upgrading or replacing an earlier version or perhaps the demo version of this, remove it first. See section on Removing Program.
Installation should now be complete, and your screen should look something like this:
azimuth orientation
You change the azimuth orientation with |AZIM|. Pressing it switches you between a North and South oriented azimuth. North-oriented means the azimuth 0-00-00 points north, and South-oriented means azimuth 0-00-00 points south.
station display format
You change the stationing format with |STA|. Pressing it switches you between the two stationing display formats.
coordinate entry/display
You can change the way horizontal coordinates are entered and displayed. With |DISP|, you can switch between entering and displaying coordinates in N E format or E N format. When set to E,N you enter the East component in level 2 and North component in level 1. When set to N,E you enter the North component in level 2 and East component in level 1. Displays will change accordingly. The (n,e) form is still the (n,e) form no matter which way it is set. When you see the coordinates in the parentheses on the stack, it's always (north, east).
Press |EXIT| when you are finished adjusting the settings to your situation, and you're all ready to go. Of course, if you loaded the ETW edition, I recommend you also set your date and time on the HP48 since the log file notes when you create it.
HOW TO USE
The concept is simple. You press [CST] to get to the main menu, then press one of the softkeys to change to the program's sub-menu, enter your variables, then solve for whatever it is you're solving for. To get back to the main menu, just press [CST] again.
Now, the softkeys are those labels above the top six keys of the keyboard. The labels correspond to the keys below them, and pressing the key will do what is indicated by the label.
When you press [CST], you access the main menu for the surveying programs. There are more than six programs available in the pack, but there are only six softkeys, thus there are several menu pages, and you press [NXT] to get to the NeXT page. When you run out of pages pressing [NXT], it returns to the first page, like a circle.
There are several strategic programs and functions assigned to the keyboard. The combination of softkeys and assigned keys makes things really easy to use.
Entering variables is normally done from the stack, but some programs will have screens or prompts for entering things. These occasions will be obvious and intuative. When entry is made from the stack, the variable or variables required are expected to be on the stack in the appropriate order when the action key is pressed. Now this may sound strange to not be prompted for data or to not have a fill in the blank type of screen, but when you are working a set of plans or maps, this scratch pad technique is very effective. Once you understand, you'll find it very easy.
Entering Coordinates
When a program expects a coordinate from the stack, there are several forms that are allowed. The first form is dependent on how your settings are set. If you have the display/entry set to N,E then you would enter a coordinate like this.
Now the next way that programs will take coordinates off the stack is in the form of a complex number. You know, that thing with the parenthesis. No matter what the settings are, in this form it's always (north,east). This form is usually the output from a program that solves for coordinates.
Now the third form is a recalled point. A recalled point includes information like an elevation and description. Most of the programs only use the north and east components. This form is also always the same reguardless of settings.
You are only given one style of entering bearings. A four quadrant bearing is repesented with a single number. The first digit represents the quadrant number and the rest of it represents the bearing angle. The quadrant numbers are as follows:
Since many times you might add or subtract to bearing angle, improper bearing angles are allowed.
Stationing is entered as a number. Enter it as the unit, not station + unit. For example, 1+00 would be entered as 100.
EXAMPLE ON HOW TO USE
These programs for the most part operate from the stack, in stack mode. I personally find this to be much easier for calculating most things. Some programs will take over the calculator so that it doesn't act like a calculator. Most times when this happens, you should be able to tell. It should be obvious, and the appearance of |EXIT| or |CANC| as one of the softkeys is a sure clue. The file selector is a prime example of this.
Before we begin, let's set the display to four places since any more than that is just too much to look at. I've assigned FIX to [EEX] since it's such a pain to get to. Press
Now, let's start our example. Press
Now let's solve for something. Let's solve for a triangle, so if |TRIAN| isn't one of the softkeys showing, keep pressing [NXT] until it is. Then press
Now let's solve for something that uses coordinates. Let's solve for the direction and distance between two coordinates. Press
Now, let's determine the direction and distance from the coordinate 200.01,450.3 to 209.8,99.99. Now this could be North/East or East/North depending on how you work and what the settings are. That's why I am leaving it ambiguous, the concept we are trying to learn is how to enter coordinates. You could enter and solve like
In this case the answer was left on the stack, so press
Now for an example of a program that returns a coordinate as a solution. Let's get a coordinate given a direction and distance. Press
Now, let's solve for a vertical curve. Press
Some of these programs generate information which could be useful in other places or with other programs or for additional calculations, thus some of the programs leave answers on the stack. This "scratch pad" approach is surprisingly useful. Press
I think that's enough to where you get the idea.
USER DEFINED KEYS (Key assignments)
The user defined keys are very important to know about. When the user keys are active, you'll see USER showing in the upper-right of the screen. Sometimes, you have to turn it off, or sometimes it gets turned off, like when you warm-start the 48. Anyway, with this in mind, you should know how to turn it on and off. You press [/->][alpha] to toggle it on or off. If flag -61 is clear, then you may need to key it an extra time.
The key assignments are:
KEYSTROKES BRIEF DESCRIPTION
========== =================
[MTH] STO ELevation, expects elev. in level 2 and pt.#
in level 1. IGNORES OVERWRITE PROTECT!!!
[/->] [MTH] PRINT mode, toggles IR print ON/OFF.
[PRG] RCL point, expects pt.# in level 1, recalls point
to stack.
[/->] [PRG] Filer, starts up coordinate file selector.
[CST] Main menu, brings up main menu.
[/->] [CST] your custom menu, brings up YOUR custom menu.
[STO] STO point, expects a coordinate, stores to
coordinate file.
[/->] [STO] NEXT point (to sto), prompts you for next point to
store at.
[EVAL] bear<>azim, brings up conversion menu.
[/->] [ENTER] DUP2, dups level 1 and 2.
[y^x] file EDITOR, starts up coordinate file editor.
[EEX] FIX, expects the number of fixed decimal places to set
the 48 to.
[/->] [1/x] INV 1st, toggles INV 1st(for stake notes) mode ON/OFF.
[/->] [/] DMS/
[/->] [x] DMSx
[/->] [-] DMS-
[/->] [+] DMS+
[/->] [0] ->DEC
[/->] [.] ->HMS
A keyboard template makes this easy, but HP stopped selling their write-on template kits, so I made some keyboard templates and they turned out as pictured above. They are not just useful for this set of programs, you can also pencil on them making them useful for your own programs as well. These templates are die cut from 0.010" thick vinyl and lettering is silk-screened with two colors. Contact me for pricing and availability.
Notes:
COORDINATE FILES AND THE FILE SELECTOR
Coordinate files are used to store and recall coordinates. They go by point numbers. Each point has a north component, east component, elevation, and description field. You can edit a coordinate file, or just review what's in the file. You can export it to computer and use it with other software or just print it out.
Most of the programs don't require you to have a coordinate file, but they do make using some programs easier.
The File Selector is used to graphically create, choose, delete files and directories. You start it up with [/->] [PRG] or you can start it up under the Utilities menu if you can't remember that. Files you select for use are only accessed when you are in that directory. This feature of local access allows you to create directories for individual projects.
You are allowed to use "control files" with this software. Control files as applies here are read-only coordinate files which are useful for putting recurring points in. It's well suited for storing traverse and baseline points. Here's how it works, when you try to access a stored point, like when you recall a point to the stack, the program will look to see if the number falls in the range of the active file. If the number requested falls below the lowest point number of the active file, it will check to see if falls in the range of the control file. If found, all's well. So you see, you want to have the lowest point number in your active file to be above the highest point number in the control file. Can do?
How do you create a control file? Well, it's just an ordinary coordinate file, all you have to do is select it as the control file. Under the Utilities menu, you can get access to a menu where you can select or deselect the control file. Also, if you are at the ETW START MENU, you can also go to the "Control, log file" screen and select or deselect one there. You may have noticed that the selector for the control file won't let you change directory or delete files. This is by design, it's not a bug.
EXAMPLE ON USING COORDINATE FILES
I guess the first thing you want to do if you are going to use a coordinate file is to create one. So start up the file selector, key in
[/->] [PRG]
and the file selector should start up
We want to create a file, so press
|NEW|
When it asks for file or directory, press
|FILE|
and a screen will come up where you fill in the name of the file you want to create. It will automatically put the .CR5 extension on for you since one of or goals is to exchange coordinates with other software. Please note that the program will allow you to enter a name longer than the normal eight characters. If you do plan to exchange coordinates with other software that is strict about this, you may need to hold yourself to eight characters. I tend to use the extra characters, which is why it's allowed here.
Once you've keyed in the name and pressed [ENTER], and a screen to enter the first point in the file will appear. Enter your information for the point. Just fill in the blanks and press |CREAT| when done. To enter the description field you need to activate the alpha-lock. You press the [alpha] key to do that. If you make a mistake, don't worry, you can just edit it later.
If you are using the ETW edition, you will also be asked if you want to start a log file. A log file is mostly for the ETW, but will also log things like storing points and setting changes.
Anyway, by this point you should be back at the file selector screen but now the name of the file you just created will be in curly braces at the top. This is showing that it is the active file in this directory. When you create the file, it also makes the assumption that the next point you want to store at is the point after the number you entered as your first point. Press
You are now ready to do stuff with your coordinate file. Let's recall that point you made the first point in your file. Just enter the number on to the stack and press [PRG] which has RCLPT3 assigned to it. Your point should be recalled to the stack and the display should show the details. So like if your want to recall point number 1, you'd key in
When you recall a point, it's left on the stack, if you press
Again, it's just an ordinary HP48 object and can be manipulated as such.
Now, if you wanted to do the opposite, and store a point, you just need to have a coordinate on the stack in one of the forms mentioned under How to use. If you still have the recalled point on the stack, you can just press [STO] and it should store the coordinate, description and all. If you wanted to store 345.444, 9988.01 as the next point, you'd key in
Want to scan or edit the file? Just press
If you set it to AUTO-STORE, when programs solve for coordinates, it will automatically store them as they are generated. Here too, settings will determine what you will be prompted for. I think that's enough. I know you don't like reading this stuff, and I don't like writing it.
THE PROGRAM DESCRIPTIONS
This program solves for the direction and distance from A to B. There are two menu pages for this.
One page, takes point numbers and so it requires that there be an active coordinate file. Control files apply here and because of this, coordinates are evaluated when you press |SOLVE| so changes to the coordinate file will be reflected. The picture below is what this looks like with a solution.
|PT A| expects a point number.
|PT B| expects a point number.
|DISPL| toggles between azimuth/bearing solution and display.
|PT-| decrements point B and solves.
|PT+| increments point B and solves.
|SOLVE| solves for direction and distance from point A to B.
The other menu page takes only coordinates. It is sweet and simple, and much to my surprise, it's preferred by the folks who give me feedback. Because I have no way of telling which one is more important to you, the last page you use will be the first page the next time you come back to this menu.
|CRD 1| expects a coordinate.
|CRD 2| expects a coordinate.
|DISPL| toggles between azimuth/bearing solution and display.
|SOLVE| solves for direction and distance from coordinate A to B.
You have a choice of bearings or azimuth for the solution, and you can toggle between the two with |DISPL|. Answers are left on the stack for possible use elsewhere.
Traverse
This program calculates coordinates given a direction and a distance. There are three modes of directions to choose from, Azimuth, Bearing, and Angle-right. Basically, you enter the coordinate you're at with |@POIN|. Then you enter your direction and distance with either |HD2TL| or |SIDE|. |HD2TL| "HeaD to TaiL" will calculate the resulting coordinate and make it the new "@POINT." |SIDE| will only calculate the resulting coordinate without moving you up.
|STA| is in all three modes, and what it does is toggle station display ON/OFF. When it's toggled on, your shot is related to the baseline as defined under the Baseline Segment program.
This program is 2-dimensional, but it's recognized that many times you're going to need to reduce down to two dimensions, so there is |Z&S->|. It takes a Zenith angle in level 2 and slope distance in level 1 and returns the HD and VD. It is straight trig and does NOT take into account things like curvature or refraction. Don't like my |Z&S->| function for reducing your zenith angle and slope distance? You can supply your own program for this. Just store your program with the variable name MYDIST, and if you are in a directory which will access it, your program will be launched by pressing |Z&S->|. It's a great place to implement your curvature and scaling. I suggest putting it in the HOME directory if you use the same one for all cases.
azimuth mode:
This mode works in azimuth. It's very useful. For computational purposes, it will take improper azimuths.
|>VIEW| view current settings.
|@POIN| expects a coordinate and makes it the point to calculate from.
|Z&S->| expects a z-angle in level 2 and a slope dist. in level 1, returns HD and VD.
|INV2| expects a coord. and returns the azimuth and dist. from @POINT to coordinate.
|HD2TL| expects azimuth in level 2 and distance in level 1. Moves result to @POINT.
|SIDE| expects azimuth in level 2 and distance in level 1.
|STA| toggles relating shot to baseline ON/OFF.
angle-right mode:
This mode is useful for times when you didn't set a correct backsight azimuth, or you just wanted to work with angles. What it needs to know, is what your backsight azimuth is and what you determine to be your plate angle at the backsight. If you move forward with |HD2TL|, then your forward azimuth is carried forward for you.
|>VIEW| view current settings.
|@POIN| expects a coordinate and makes it the point to calculate from.
|Z&S->| expects a zenith angle in level 2 and a slope distance in level 1 and returns HD and VD.
|INV2| expects a coordinate and returns the direction and distance from @POINT to coordinate.
|HD2TL| expects angle in level 2 and distance in level 1. Moves result to @POINT.
|SIDE| expects angle in level 2 and distance in level 1.
|STA| toggles relating shot to baseline ON/OFF.
|CRD->| expects a coord. then calculates and stores the BS azimuth.
|BSAZ| expects a backsight azimuth.
|BSPL| expects an angle, the actual plate angle to the backsight.
bearing mode:
This is useful for working plans and maps in four quadrant bearings. You enter bearings as described under HOW TO USE.
|>VIEW| view current settings.
|@POIN| expects a coordinate and makes it the point to calculate from.
|Z&S->| expects a zenith angle in level 2 and a slope distance in level 1 and returns HD and VD.
|INV2| expects a coordinate and returns the direction and distance from @POINT to coordinate.
|HD2TL| expects a bearing in level 2 and distance in level 1. Moves result to @POINT.
|SIDE| expects a bearing in level 2 and distance in level 1.
|STA| toggles relating shot to baseline ON/OFF.
Baseline Segment
This is not a "do all" program, so setup is fast and it's easy to check.
So what's it do? This program solves for various things relative to a baseline segment. Once you define it, you can solve for coordinates given a station and offset, or you can solve for a station/offset given a coordinate. You can even go one step further and get togther with the Traverse program and have it display the direction and distance as well as the coordinate to a station/offset (great for stakeout notes.) This feature is called "Inv-first," and it's one of the assigned keys, see USER defined keys. You can toggle it on and off with [/->] [1/x], or you can toggle it under "settings" of the Utilities menu.
At the Traverse menu you can press |STA| to toggle another feature, which for each |HD2TL| or |SIDE| you enter, the station/offset of the shot will be displayed. Pretty cool, huh.
Now wait, there's more. You can view statistics about the baseline you have defined. These are things like PC station, PT station, curve data, and so on. This is very very useful for checking or verifying values against plans and maps.
And well finally, it also solves for the coordinates of the key points like radius point, PT, ST, or whatever else may apply.
Defining the baseline segment is easy. And, where ever you change it or find a reference to it, it's the same one. So if you change it in one part of the program pack, you've changed it in any part of the program pack that uses the baseline segment, even in the ETW.
Now here's the concept of how to define the baseline. First let's look at the variables we use to do it.
We have the coordinate of the first key point, the station at that coordinate, the azimuth going in, the azimuth going out, the radius of the curve, and the length of the spirals. At first you may wonder how to use this, but when we draw a picture, it makes perfect sense. Let me mention here that your screen might show the North and East components in the reverse positions depending on how you have the display set. This is why the coordinate fields in the examples are left ambiguous. No matter, the concepts are the same.
The coordinate is of the first break point or in the case of a baseline segment which is just a straight line, it's a point on the line where you know the station. For a tangent-curve-tangent situation, the point would be the PC. For a situation where there are spirals, it would be the TS. When your segment is two straight lines, then the point would be the angle-point.
"Station@" is of course, the station at that first key point. I don't know what more there is to say about that except to say that you enter it as the unit and not station + unit. For example, 1+00 would be entered just as 100.
The "azimuth in" is the azimuth of the tangent going into the baseline, and the "azimuth out" is the azimuth of the tangent going out. If it is a baseline where it is just a straight line, you may have the in and out tangents the same azimuth. Having the in-going tangent and the out-going tangent 180 degrees from each other is not a valid definition and you'll get an error when you try to use it.
A new feature with 1.08 is the option of entering two point numbers in the azimuth in and out fields which will then evaluate them to an azimuth if possible. When not possible, it just reverts back to the previous entry. To use, instead of entering an azimuth, enter the first point number then * (the multiply key) then the second point number. So for example, if you wanted the direction to be from point 25 to point 100, you'd enter it as 25*100. Thank Adam Wellington for thinking up such a fine feature.
The radius should be self-explanitory. If there is no curve, and there are no spirals, then set the radius to 0. The program will just see it as a tangent-tangent situation. If you are defining a spiral scenario, a radius is required as part of the spiral calculation. You need it to define your spiral. Sometimes a spiral will be defined with a spiral angle instead of a radius, or the radius is given in terms of degree of curve or degree of arc. In these cases, you'll just have to go to the Curves menu and solve for the radius first.
The spiral length is the length of each spiral, and in conjunction with the radius, determines the characteristics of the spiral. If there are no spirals, just set the length to 0.
Let's look at this first example. The segment is just a straight line, so the coordinate is just a point on the line where you know the station. In this case, you should make the in-going and out-going tangents the same azimuth. There is no curve or spirals, so we set the radius and spiral length to 0.
Now if your baseline segment is two tangents going different directions, then the key point would be the "PI" or "kink" or "angle-point." I realize people have different terms for the same thing, so please forgive me if I'm not speaking your dialect. But that's where the pictures come in handy.
If your baseline segment is a tangent-curve-tangent, then the first key point is the PC. This is perhaps the most useful scenario as well as the easiest to program. If you press |STATS| after you define this baseline segment, you can compare the stationing as well as the curve data.
If the baseline is a tangent-spiral-curve-spiral-tangent or a tangent-spiral-spriral-tangent, then the first key point would be the TS. You enter both scenarios the same way, but you need to enter the radius really precisely if you want it to show up as Spiral-Spiral, and not Spiral-Curve-Spiral with a really tiny curve. As with the tangent-curve-tangent scenario, |STATS| will display statistics for you to compare with the plans.
Notice you will also be shown aspects of the spiral. The notation used is taken from Thomas Hickerson's book on route surveying. Delta is the overall delta. Delta C is the delta of the simple curve. Theta S is what he calls the "spiral angle." Ts is the "tangent of the spiral" which is the distance from the TS to the overall PI. Es is the external. p and k are the shifts from an unspiraled curve which are only interesting to the designers, but useful as a check.
The biggest weakness to defining the baseline segment like this is the lack of defining the ingoing spiral and outgoing spiral with different lengths. It is rare that it would happen. Not only would it be rare, but the additional code to solve for it would be substantial, so I left it off.
Got it? Well, one final detail I should mention. Since this is a rather general way of defining a baseline segment, one naturally should realize that if you switch azimuth modes after defining your segment, that everthing changes since azimuth was used to define it. This should not be a problem unless you plan to change back and forth. What the program does about this situation is to mark the definition as unevaluated, and then it evaluates it the next time it refers to the baseline. Any doubts, you can just start the definition program up and it will reevaluate it when you exit it.
IMPORTANT!!: When you press |DEFIN| to define your baseline segment, it checks to see if there is a coordinate on the stack in any of the normal forms and if it finds one, it enters it as the coordinate in the definition. This is useful for recalling coordinates from a file that you want to enter into the definition. So be careful if you happen to have important numbers sitting on the stack when you decide you want to define a segment.
|INCR| expects an increment to change station by.
|STA-| retards by increment and solves.
|STA+| advances by increment and solves.
|O/S| expects an offset, the offset to be solved for, use a negative value for left.
|STA| expects a station, the station to be solved for.
|SOLVE| solves for coordinate.
|VIEW| view baseline parameters.
|DEFIN| initiates a program to define baseline segment. If a coordinate is found on the stack, it will store it as the first break point. When you exit the program, the various aspects of the baseline are calculated and stored.
|BRKS| toggles ON/OFF including key stations when using STA+ and STA-.
|STATS| displays useful statistics about baseline. Very useful for verifying with the plans.
|KEY| solves for the key points like radius point and PT.
|O/S?| expects a coordinate, solves for the station and offset of the coordinate.
Arc/Arc Intersect
This program solves for the intersection points of two arcs. Once you've entered your variables, press |SOLVE| and a screen will appear to verify what you've entered and allow you to choose which solution you want. |LEFT| will give you the intersection on the left of the line from radius point 1 to radius point 2. |RIGHT| will give you the intersection to the left. And |BOTH| will give you both.
|R.PT1| expects the coordinate of the radius point of the first arc.
|RAD 1| expects the radius of the first arc.
|R.PT2| expects the coordinate of the radius point of the second arc.
|RAD 2| expects the radius of the second arc.
|INTER| returns you to the intersection menu.
|SOLVE| solves for intersection.
Arc/Line Intersect
This program solves for the intersection points of a line and a curve. Once you've entered your variables, press |SOLVE| and a screen will appear to verify what you've entered and allow you to choose which solution you want. |NEAR| will give you the solution nearest the P O L, |FAR| will give you the farthest from the P O L, and |BOTH| will give you both solutions.
|RD PT| expects the coordinate of the radius point.
|RADIU| expects the radius.
|P O L| expects the coordinate of the Point On Line.
|>AZI| expects the azimuth of the line.
|INTER| returns you to the intersection menu.
|SOLVE| solves for intersection.
Use the [/->] |>AZI| to switch it to bearings and [/->] |>BR| to switch it back.
Line/Line Intersect
This program solves for the intersection point of two lines. Each line is defined by the direction of the line and a coordinate on that line. Once you've entered your variables, press |SOLVE| and a screen will appear to verify what you've entered. If all's well, just press |MORE| to continue with the answer. The coordinate is left on the stack.
|POL 1| expects the coordinate for the point on line 1.
|>AZ 1| expects the azimuth of line 1.
|POL 2| expects the coordinate for the point on line 2
|AZ 2| expects the azimuth of line 2.
|INTER| returns you to the intersection menu.
|SOLVE| solves for intersection.
Use the [/->] |>AZ 1| to switch it to bearings and [/->] |>BR 1| to switch it back.
Coordinate Conversion
When working with rectangular coordinate systems, I think they're called cartesian, this program converts coordinates in one system to coordinates in others. About 1993 or so, I was told we were going to be changing over to metric, so I wrote this program. We haven't started yet. I don't think it's going to happen, but I keep the program just in case. Sometimes I use it to do a poor man's resection.
What you do is enter the coordinates for the same two points in both systems. If you have a scaling factor, you can enter it. If not, the program will figure one out for you, just enter 0(zero) as your scaling factor. Then you can convert coordinates either direction. Converting a block of points in a coordinate can be done using |BLOC|. |BLOC| will prompt you. It only converts OLD to NEW, and it doesn't convert unused points in the block.
Now on the scaling factor. If the unit in the old system were the foot and the unit in the new system were a yard then the scaling factor would be 3. Setting the scaling factor to 0 will let the program figure out the scale itself. When automatically figuring the scale, the program NO longer forces a scale close to 1 to be 1. So, if you have a scale, better put it in.
|VIEW| views settings.
|BLOC| converts a block of coordinates (OLD to NEW), prompts you for Pt.#s.
|N->O| expects a coordinate from NEW system and converts to OLD.
|O->N| expects a coordinate from OLD system and converts to NEW.
|VIEW| views settings.
|OLD1| expects coordinate of point 1 in OLD system.
|NEW1| expects coordinate of point 1 in NEW system.
|OLD2| expects coordinate of point 2 in OLD system.
|NEW2| expects coordinate of point 2 in NEW system.
|SCALE| expects scaling factor, use 0 if unknown.
End Area
This program calculates an area from coordinates using the coordinate method. What you do is enter the starting coordinate, be it North/East or Offset/Elevation, with |START|. Then you enter each subsequent point as you work your way around the perimeter with |NEXT|. When you enter the same coordinate you started with, the area is revealed. If you've stored them to a coordinate file in sequence, you can have |BLOC| recall and enter them for you. You will be prompted for point numbers. |BLOC| is mindless and just recalls the point number and runs them through, then after reaching the last one, it recalls the first point to close out the perimeter. Useful for end areas. Although I can't see how this would be useful, control files will work with this too.
|START| expects the coordinate of your starting point.
|NEXT| expects a coordinate and is used to enter each subsequent point along the perimeter.
|BLOC| will prompt you for point numbers.
|ST#| expects a point number.
|CHNK| "CHUNK" expects "from" point number in level 2, "to" point number in level 1.
|NXT#| expects a point number.
Now for example, to figure the area of the figure shown above, you'd key in something like
Don't forget, you can use a coordinate file to make this easier. Sometimes, it's easier to store the data in a coordinate file and fix your mistakes there than to flawlessly key it in.
Okay, now say you have stored your coordinates or offset/elevation as coordinates in a coordinate file, and you stored them in order as you go around the perimeter. Well, if you set yourself up like this, as you might very well do with an end-area, you can use |BLOC|. Say you stored them as points 3 thru 13, you'd key in
It has come to my attention that it would be very useful to work this program using point numbers for stored coordinates as well as using coordinates on the stack. What these new softkeys do is take a point number and recall that point and then enter the coordinate to the End Area program. You use |ST#| and |NXT#| just as you would |START| and |NEXT|, except you use point numbers instead of coordinates. It is an entry aid. Actually, all it does is eliminate the need to press [PRG] in the process. So, you could mix using the keys that expect a coordinate and the ones that expect a point number. |CHNK| "CHUNK" takes two numbers from the stack, a "from" point number and a "to" point number and is another entry aid that will recall and enter a sequence of points as "next" points.
Now, say you had stored your coordinates, but they aren't entirely in order. Say your sequence is 2,13,12,11,10,9,8,3,2. You could key in
Triangle Solutions
This program solves for those five popular triangle programs. Choose the scenario that suits your needs. Enter the three knowns and press |SOLVE|. The answers are displayed. If you need the values, pressing |->STK| will push them on the stack. |TRIAN| gets you back to the Triangle Solution menu.
Job Info
Essentially, all this does is display useful information. Is the display intuitive enough?
|thetaS&L| takes a spiral angle and length of spiral and calculates the radius.
|DC->| takes a degree of curve (100' arc) and returns the radius in feet.
|DCC->| takes a degree of curve (100' chord) and returns the radius in feet.
|FIT| brings you to Fit a Curve menu.
|DATA| brings you to Curve Data menu.
Curve Data
This program solves for various aspects of a curve given the delta of the curve and the radius. Just enter the delta with and the radius with |RADIU|, then press one or more of the |SOLVE| buttons. You may have noticed that there are three |SOLVE| buttons. This is because each solves for different aspects of the curve. Not every aspect is of interest, so you can just solve for the solutions you want.
Fit a Curve
Designing a curve, or reverse engineering a curve, this program lets you figure out what a curve might be. Once at the Fit a Curve menu, you are presented with a choice of three variables you might want to hold constant while you play with a second one. The first three variables are |CHORD|, |RADIU|, and . What you do is enter one of the three variables. Then your menu will change to one with choices for your second variable. You can try out one or more second variables, over and over until you've discovered your curve. |NEW| on the second variable menu brings you back to the first variable menu.
What would you use this for? Perhaps figuring the tangents for the baseline program. Maybe for replacing a spiral with a compound curve. Some maps are crowded and maybe you want to determine if you have the correct curve data for the curve of interest. Lots of things....
Utilities
This has those little utility programs in it. You can change the system settings, do a file transfer, print out points, or do a little filing.
|FILE| starts coordinate file selector.
|EDIT| starts up coordinate file editor.
|CTRL| gets you to control file menu.
|SETT| brings you to Change Settings screen.
|PRINT| brings you to Print Point screen for IR print.
|TFR| brings you to File Transfer screen.
|ABOUT| displays credits.
Change Settings
This is where you change your settings for most things. For things specific to the ETW, you have to change them in there. There are three screens to this, and you page through them with |MORE|.
File Transfer
The purpose of these programs is to exchange data files between the 48 and a computer or another 48. In an attempt to make these programs simpler to use and thus more idiot proof, I've done away with the binary option of sending and receiving files. The files are still ordinary HP48 objects and can be manipulated as such, so if you need the highest speed and don't mind the binary format, you can still send and receive them with the file transfer commands built into the 48.
To use, set both sides (HP & whatever you're sending to) to the same port, baud and type. When the settings are correct, press |MORE| to continue to the next screen. Then on the receiving side press |RECV|, and on the sending side press |SEND|. When you press |SEND| the file selector will start up and once you highlight the file you wish to send, press |USE| or [ENTER] to send the file.
NOTE: When using IR, set BAUD to 1200 for best results.
|EXIT| exits file transfer.
A major design goal of this program was to allow sending to and receiving from devices that would normally connect to a TDS 48 program. Most noteably, I wanted to be able to hook up directly with Survey Link. For some reason, Survey Link takes over the com port and doesn't let other programs have it, so it was a pain to transfer my facimile of a RW5 file using another program like hyperteminal.
Note that when importing a coordinate file if a coordinate file of the same name as you are trying to import already exists, then you will be prompted as to whether or not to write to that file. What will happen if you write to it, is all the points received will be placed in the existing file over whatever coordinates may already be there. It is not replacing the entire file with a new one.
IMPORTANT: Unlike the LOW-BUDGET predecessor, the N&E display/entry format does NOT change how the import/export interprets the transmission.
If this notation is too mysterious for you, you could create a coordinate file and export it using something like Hyperterminal(included with Windows,) then look at it with something like Notepad(also included with Windows.) It should then make sense.
If you are receiving a file that doesn't already exist, the first point needs to be the lowest number point, as this will be used as the lowest point in the coordinate file.
These conditions will cause receiving a file to end:
To use the File Transfer feature, communication settings must be set to:
And while it probably will work anyway, you should also set the flow control to NONE.
Trivia: I have successfully used this program to send coordinate files to a Ranger data collector and a TDS Recon using the wire. It sure beats punching it in by hand, especially with the Recon which doesn't have a keyboard. I have beamed with IR to HP-48s using TDS COGO and TDS SURVEY PRO, but you need to set it to 1200 BAUD and use DOS filenames. I have successfully sent to several PC based surveying programs which accept files from TDS 48 platforms.
Superelevation
Used for figuring along segments of a superelevation diagram. They usually can be broken down into sections of zero slope, vertical curve, slope, vertical curve, zero slope. You enter the PI stations, the elevations of the zero slopes and the lengths of the vertical curves. Note that STA 1 doesn't have to be lower than STA 2.
|VIEW| views variables.
|INCR| expects an increment to change station by.
|STA-| retards by increment and solves.
|STA+| advances by increment and solves.
|STA->| expects a station and solve for elevation.
|STA 1| expects a station.
|ELV 1| expects an "elevation" actually the %superelevation.
|LEN 1| expects the length of vertical curve 1. 0 is allowed (linear transition.)
|STA 2| expects a station.
|ELV 2| expect an "elevation" actually the %superelevation.
|LEN 2| expects the length of vertical curve 2. 0 is allowed (linear transition.)
Straight Line Grade
This program solves for elevations along a straight line grade. You define the line with two stations and the elevations at both stations. Note that station 1 does not need to be lower than station 2. The solution elevation is left on the stack with the station tagged to it to help you remember. Treat it as an ordinary number.
|VIEW| views variables.
|INCR| expects an increment to change station by.
|STA-| retards by increment and solves.
|STA+| advances by increment and solves.
|STA->| expects a station and solves for elevation.
|VIEW| views variables.
|STA 1| expects a station.
|EL 1| expects the elevation at station 1.
|STA 2| expects a station.
|EL 2| expects the elevation at station 2.
|STA->| expects a station and solves for elevation.
Vertical Curve
This program solves for elevations along a vertical curve as well as the "turning point." For stations outside of the curve, the elevation is calculated as though on the tangent section. The solution elevation is left on the stack with the station tagged to it to help you remember. Treat it as an ordinary number.
|VIEW| views variables.
|SAG| calculates sag or crest point and grade-in, grade-out, and length.
|INCR| expects an increment to change station by.
|STA-| retards by increment and solves.
|STA+| advances by increment and solves.
|STA->| expects a station and solve for elevation.
|BVCST| expects BVC station.
|BVCEL| expects BVC elevation.
|PI ST| expects PI station.
|PI EL| expects PI elevation.
|EVCST| expects EVC station.
|EVCEL| expects EVC elevation.
Leveling
Leveling is just meant as an aid in reducing your level notes. You can pick up at whatever point you want to. You can enter an elevation and then a backsight rod reading to give you a new HI or you can just enter a HI. |FS| (foresight) will subtract the value entered from the HI and store it as the new value for elevation. That's all there is to it.
Like with the other functions that expect an elevation, if you recall a point from file, the functions here that expect an elevation will also take the elevation from that point sitting on the stack. This is useful for picking up elevations off of your traverse points.
There are two sets of options that go along with this routine and you switch between them with [/->] |>VIEW|.
Option 1
The first option has the softkeys |3WBS| and |3WFS| stand for "3-Wire BackSight" and "3-Wire ForeSight." You use these keys just like you would |BS| and |FS|, except you use readings from the two stadia lines as well as the center instead of just the center. It takes three values from the stack and does a three wire comparison if the value exceeds the tolerance specified, then it is flagged out with a beep and a star. In level 3 should be the upper wire reading, in level 2 should be the center wire reading, and the lower wire reading should be in level 1 before pressing these softkeys. Works with inverted rod.
Keys:
|3WBS| expects Upper in level 3, Center in level 2, Lower in level 1.
|BS| expects a BackSight rod reading and calculates HI from current elevation.
|HI| expects a Height of Instrument.
|FS| expects a ForeSight rod reading and calculates a new elevation from current HI.
|3WFS| expects Upper in level 3, Center in level 2, Lower in level 1.
|ELEV| expects an Elevation.
|>VIEW| view settings. [/->] |>VIEW| switches options.
|+/-| enters the tolerance to be flagged if exceeded.(something like 0.01)
|RND| decimal points to round to (for 3-wire and c/f.)
Option 2
The second option has the softkey |GRAD|. This is useful if you have your control points stored with elevations. |GRAD| is used for entering a target elevation (GRADE.) With this option, when you enter a rod reading with |FS|, it calculates the cut or fill to the target elevation, which is useful for writing your C/F in your field book. |RND| on the second menu page will round the target elevation and the rod elevation to whatever decimal places you specified. This rounding takes place before the cut and fill is figured out. Please note, that the display is still going to display at whatever decimal places the calculator was set for.
Keys:
|BS| expects a Back Sight rod reading and calculates HI from current elevation.
|HI| expects a Height of instrument.
|FS| expects a Fore Sight rod reading and calculates a new elevation from current HI and C/F.
|GRAD| expects an elevation to calculate a cut or fill value to.
|ELEV| expects an Elevation.
|>VIEW| view settings. [/->] |>VIEW| switches options.
|RND| decimal points to round to (for 3-wire and c/f.)
Example:
Say you had level notes like these
You could use this program to reduce the notes. First, set your display to the appropriate decimal places since this program displays using what your calculator is set to. In this case, 2 decimal places would be appropriate.
EDM Leveling |TLEVL|
EDM Leveling is a rather unusual program. It is based on a procedure that my boss taught me. He swears by it. I have had some success with it, and when it works, it works very very well. In some cases, it out performs differential leveling. The problem is that it has a practical limit of about 500 feet. Beyond that, the target gets to be too difficult to read. Because of this practical limit, no corrections for earth's curvature are included in this program. If you are running traverse for a job site, you probably should keep your traverses about 400-500 feet apart anyway.
The theory is that traditional carrying of elevation with the edm is typically flawed by three major mechanical errors. First, measuring of the reflector height is often sloppy or even with fixed height rods, the dimples they sit in on the point will cause errors in establishing the rod height. Second, measuring of the HI is not always as good as it could be. This process doesn't cure this, but if you shoot the elevation back, you can recheck the HI if there is an appreciable difference. Third is the target itself. Depending on what reflector set you have, the precision with which you can reliably put the reticle on the typical reflector target is not as precise as something like the with a level rod.
There are two aspects to the process. One is if you are setup on a point of known elevation and shooting to a point to determine its elevation. The other aspect is if you are setup at the point you are trying to determine the elevation of by shooting to a known elevation. Using both aspects, you can shoot forward and get an elevation, then move up and shoot back and get an elevation, if there is no major difference you can just average the two and get a reasonable elevation. You can then take that average, hold it as the elevation on the point then carry it and do the same thing with the next point. Now if you shoot back and there is a substantial error, you should immediately recheck the HI. The HI is going to be the most frequently encountered source of error in this process.
So here's how it goes. The EDM is setup over the point of known elevation. Measure your Height of Instrument and record it. Then you get your rodman to put the level rod on the point as if you were running level. Now you sight the level rod at a convienant height, perhaps an even foot mark. The lower on the rod, the better. Record the zenith angle and rod height. Next, reverse the scope then read the same place on the rod and record it. Now, change to the prism and measure the Horizontal Distance to the point and record that.
Okay, now let's say you've finished with whatever else you were to do from this setup and you've moved forward. You would make the same measurements looking back at the point you were just setup on. Press to get to the second screen and enter the information.
Simple enough? You don't have to start on the point with the known elevation. You can just shoot back and ignore the Avg. You can also just shoot forward like a side shot. It is best to shoot from both ends if you are carrying the elevation along several legs.
Well, now that the process has been explained, perhaps it should be stated that when starting off, if you have another point with known elevation, it'd be a good idea to check into that one before moving on so as to make sure the HI is good.
EDM note reduction
What this program does is reduce EDM notes 3-dimensionally. Again there is no correction for curvature or refraction. It's straight trig.
While one could use this for reducing topo notes, commercial software does this much better. A data-collector is better yet. I use it for checking raw file processing.
If you change the settings to AUTO-Store, it will automatically store 3-dimensionally to file. If not, the results are left on the stack with the point in level 2 and elevation in level 1. So, you could just press [STO] and it will still store it 3-dimensionally.
What you do is enter the variables you need to change and press |SOLVE|. You have four modes to choose from and you move through them with [/->] |>VIEW|.
If when entering the setup point, if you are using a recalled point, [ 1 2 3 4 5 6 ], then not only will it enter the horizontal coordinate, but the elevation as well.
Electronic Transit Works
This program is unlike the rest of the package. It is meant for working with a total-station, either with a cable or manually punching things in. If you are lucky enough to have a Geodimeter w/servos like a 600 series, or a Wild TC1010, then you can get a cable and the program can read directly from the total-station. Pretty cool stuff. I am not in the data-collector business and so those are the only two interfaces I currently have.
Why did I write the ETW? I guess there were just a few things I wish could be different. I generally like the data-collector software my workplace provides me, but true to the TeDiouS running joke, some features are just so tedious to get to, that I just plain don't use them. This is not meant to replace commercial software, just to supplement it. There are small jobs I would just prefer to use this software on.
For example, I can setup and check my baseline segment in just a minute or two. Using a point list and checking it against the coordinates in the coordinate file and stationing is not as fast and easy. If I am just out to cross-section a small slope (like for a wall) before they cut it, my program is probably easier. If I were going to shoot the top of pipes in probing holes, I'd probably shoot the top of the trench, top of pipe, top of the trench on the other side at each probe hole. My description sequencing would certainly make this easier. If I am traversing and can see a trig station, I can do a checksight to easily see if I have a bust.
And there's more to it than that. There's subtleties. Since this software doesn't pack everything into it, it doesn't need lots of menu choices and thus can use the softkeys instead of looking for letters on the keyboard. This means your eyes only need to scan the bottom of the screen which makes for quick changes without lots of instrument time. Then there's things like on the sideshot screens. Notice the active field when you are in manual mode starts up as the horizontal angle, but if the instrument is enabled, it starts in the description field. And then there's the layout. A simple easy to understand layout which emulates the way one actually works with a total-station.
Well, let's get started. Before you can start up the ETW, you must have an active coordinate file. And, you must exit the ETW if you want to change your active files too. Sounds a bit cumbersome, but honestly, once you setup on the total-station, why would you keep changing files? The same goes for calculating things. Once you hook up to the total-station, how often would you need to do all kinds of calculations?
Let's do a brief walk through. Use the file selector to create a file. It's [/->] [PRG] to start the file selector. Just keep the default values for the first point so you can follow along with the example. After you enter it, it will ask you if you want to start a log file, you may as well choose YES. The log file is for your benefit. It is not for Big Brother or the surveyor police. It is to help you out when something goes wrong. It is doing note keeping for you. Sure if you try hard enough you can fool it or outright fudge it, but just remember, it's only for your benefit.
Once you have a coordinate file ready to go, press
Let's enter a valid setup, press
You can also set your backsight going through the Multi-Obs Traverse sequence, but it uses the same Azim or point # screens to do it.
Before I go further, let me stop and discuss nomenclature (haha, Jason talking about nomenclature, sounds like a joke.) It has become appearant to me that many surveyors have a big problem understanding the difference between an azimuth and a what I call a "plate angle." I choose the term "plate angle" because I like it, and I learned on a transit which had actual plates with a scale etched on it for measuring angles. Most times one will set the backsight plate angle to the same as the azimuth of the backsight which leads to the confusion between the two. The two need not be the same. The plate angle as I use it, is the angle or reading on the actual instrument. An azimuth is an absolute direction usually based on poles of the earth. Your backsight azimuth is the azimuth from your setup point to your backsight.
Okay, now let's fill in the instrument setup. Since we only have one point in our file, the only choice that applies is "B. Azimuth." So go ahead and press
Anyway, once you've entered the setup, press
The Height of Instrument, the description of the point, the backsight azimuth, the backsight plate angle, and the active filename are displayed. And now the softkeys for checking, staking, or sideshots are showing. Had we used a point number to determine the backsight direction, that backsight point number would also be showing.
As you can see in my case, the filename is F.CR5, of course whatever you named your file will be displayed there instead.
Hint: Perhaps you set up and backsight the same stuff frequently, the setup may remain valid thoughout. It may be a good idea to visit the appropriate setup screen anyway whenever you start a new file so that it makes those entries in your log file. Also, if for some strange reason you decide to edit the setup point coordinate or overwrite it, after you did the setup screen, it won't take affect at the instrument until you go back and redo your setup.
There are essentially three procedures that are available for you once you've entered your setup, checksights, stakeouts, sideshots. There are a variety of options to each, but it is those three basic tasks you can do with ETW.
What's the next thing you do after you set your backsight? Well, you do a checksight of course. Well, you should anyway. So press
Well, that's the general operation of the ETW. You can do similar for staking and sideshots, but I will discuss them seperately.
Now to get out of the program, all you have to do is just have to keep exiting until it asks if you want to quit, then answer YES. Simple! From this screen, that's just one EXIT.
HOUSEKEEPING
Housekeeping is all those little things that let you taylor how the ETW operates. Edit Coordinates is also found here for those who can't work with the dedicated keys. I think iit is correct to place it here.
Control & log file
This screen should be self-explanitory as far as how to use it. What is left to explain here is what these things do. The control file can be selected for use or deselected if no longer desired.
The Log file is a text file that contains entries which log the readings taken with the ETW. It also logs things like storing points and setting changes. It is useful for field work, especially if an error was made somewhere and you want to recreate the work. There is no turning it on or off. Simply, if one is found, then log entries are made, if none is found, then log entries aren't made. So your options are to have or create a log file, or to delete an existing one. When you delete a coordinate file with the file selector, it's companion log file is deleted as well. But if you are sharp and realize, what if there is a log file without a corresponding coordinate file, how are you going to delete that? Well, you could just go and delete it the way you'd delete any other variable, or you can go to the Tranfer files menu under Utilities and set the type to LOG and press |SEND| to start up the file selector, and then use that to delete your log files.
Coordinate file editor
This is the same coordinate file editor found in other parts of the program. It is just such a useful program that it appears in various places.
Change modes
There are three screens to this. At these screens you can change various setting which affect the program. Some things you change here are universal, and some things only pertain to the ETW.
Distance is the unit you use to measure distance, either feet or meters. This mainly affects the way corrections are added to the reductions.
Curvature is a toggle whether or not to apply the correction for earth's curvature to reductions.
Station format toggles how you like to see your stationing displayed.
OVRW prot toggles OVERWRITE PROTECTION of points on or off.
Prompt des toggles whether you want to be prompted for descriptions or not.
Prompt rod toggles whether you want to prompted for the rod height or not.
Stake toggles whether or not to send stakeout information to the total-station when you enter the STAKE SHOT screen. If the total-station doesn't support this feature, it doesn't do much.
Meas. Dist. toggles Coarse or Fine mode for measuring distances if available. Also can be toggled from the keyboard with [+/-] when in Transit Work.
Store Beep is a optional beep when storing points. You can toggle this feature on and off.
Change parameters
Change parameters has three screens to it. The first one lets you change values that are used in the program. The second and third one are for changing instruments and the setting for it.
Servo Tolerance is the slop you are willing to accept for turning to. The unit is CC or gon. Before you get silly and set to zero, my experience has been that the machine takes it to mean there is no tolerance.
Scale factor is multiplied by your Horizontal Distance after it is reduced from you slope distances.
Earth's Radius is the value you use for earth's radius in meters.
Refraction Constant is a value used for correcting for refraction and is applied to the reduction to HD and VD.
The corrections for curvature and refraction are:
Once your instrument of choice is showing, press |CONT| to continue on to the next screen.
INSTRUMENT SETUP
The ETW is organized like this, when you start it up, you are pretending like you are at the total-station. In real life, the first thing you do is setup your total-station. So, the first thing you do is enter your setup. Once you do a setup, you don't need to change that stuff until you change your setup. So just like real life, now that you've entered your setup, there are several tasks that you can perform.
Once your instrument is setup, there are three basic types of tasks that you can do. You can do check sights, you can stake out stuff, you can locate stuff (side shots.) Of those three tasks, there are several variations. There is sort of an exception. The Multi-Observation Traverse is sort of a cross between a task and a setup, so it's on the setup screen. It works best that way.
All setup entails is letting the program know what point you are setup on, what the backsight azimuth is, what the backsight plate angle is, what the Height of Instrument is. You know, the basic stuff. Generally, one will set the backsight plate angle to the same as the backsight azimuth, but you aren't required to.
You are given three ways to do your setup
Let me explain how my process works since I could not find any standard method to this. That way, you can decide for yourself the strengths and weakness' and apply judgement to its use. What it does is give the occupied point an assumed value, then based on that and the observations of the two points, it does a rotation, translation holding the values of the first point you observe. It doesn't use a scaling factor. It holds the measured values to establish the occupied point. It assumes the azimuth from the stored coordinates is true. After you take the measurements, the amount of horizontal and vertical error is disclosed. It is better to shoot the point with the better advantage first since it will hold that end to rotate around.
At the first screen,
After you successfully do that, the second screen comes up for you to take a shot on your second control point.
Since it is assumed you are doing this to quickly establish a control point for some work at hand, it also makes this the current setup with a backsight azimuth calculated for the first point you observed. You're all ready to take shots. Okay, I know some of you are saying, "but I'd like to set the azimuth as the plate angle." Nothing stopping you from doing that. Just go back and backsight using a stored point now that you have a coordinate for the occupied point.
When you first start up the Multi-Obs Traverse program, you get this TRAVERSE SETUP screen.
Once you properly setup for the observatons, press |CONT| to continue on to the next screen.
OR
At this next screen, you enter information like your HI and backsight point or direction. You also enter your backsight plate angle which is mostly used for when you pop out of the traverse program and want to do something else. Please note that this is a simple program, and it only checks for direct and reverse variations and angle difference from backsight to foresight, so if you change your backsight plate angle with each set, you can. It's just that when you pop out of the traverse program, the ETW won't know what your actual plate angle is, so you'd need to reset it before doing something else like take a sideshot. This could be useful if you like to reset the backsight in each set for each quadrant.
Anyway, back on course. Next, you start each set. As with the setup shown you will be prompted for your backsight.
Now, the screen for the foresight comes out. In our case, the foresight is HA:89-04-31 ZA:89-57-03 SD:719.03.
Now whether you like to shoot the backsight, foresight flip then shoot the backsight, foresight or prefer to shoot the backsight, foresight flip then shoot the foresight, backsight is up to you. You can do either. It's one of the options. In our case it is order BS,FS|FS,BS and distance F1 so next we are prompted for the foresight HA. In our case it's HA: 269-04-27.
The last observation for this set in our case is to the backsight. The observation is HA: 180-00-03.
If you had more sets entered in the setup screen, you'd continue taking readings, but since in our case, it was set to 1, we are done with the sets. Now, since in our case the observations didn't go beyond the tolerances declared in the setup screen, we continue on to be prompted for the rod height. This should be appreciated since forgetting to measure the rod is a common mistake, even amongst seasoned surveyors. In this case, it is being set to 5.10.
If you have it set to 2-ENDS, like in this case, you are going see this screen come up while it waits for you to move the EDM to the foresight point so that you can shoot back.
Once you've moved up and setup on the point, press [/->] [NXT] to continue on. Then you'll get a screen like this for entering your setup on the foresight and shooting back.
After you finish your sets (and shoot back if applicable,) you are presented with this screen which shows you the azimuth forward, the horizontal distance, the North, East, and elevation of the point forward. Some of this information should be very useful for you to write in your fieldbook.
CHECK SIGHT
Being able to check to a stored coordinate gives the surveyor a good idea in the field of how "good" his traverse is when he moves up and shoots to other control points or trig stations that are visible.
There are four types of check sights available. You can check the backsight angle, you can check the backsight with angle and distance, which would yield the horizontal and vertical error. You can check an angle to a stored point. You can check an angle and distance to a stored point which gives the horizontal and vertical error.
If available with your instrument and it is enabled, you can press |+| and it will turn approximately to the line of your sight. It is not exact. You must put it on the point yourself. |CHEC| will calculate the differences. If you have the instrument enabled, it will read directly from the instrument before calculating the differences.
STAKEOUT
Here you can choose to stake relative to a baseline, by point number, by angle and distance, or just to look for points in the field.
Here's how it goes, if you are lucky enough to find the corner and you can take a shot on it, you can use that point to help you find others provided you have thier calculated coordinates already stored. What you do is enter the point number of your "record" coordinate for the corner you found. And you enter the point number of object you located in the field which you feel is the marker for that corner. And you enter the point number of the "record" coordinate of the point you now wish to look for. Then you press |SOLVE| and the angle and distance fields get filled in with the angle and distance you'd expect to find other boundary markers holding the marker you already found. At this point you can press |STAK| and perform a staking operation to look for the point.
In our screen shot, the point number of the record coordinate of the corner found is 2. The point number of the corner found is 20. The point number of the record coordinate we want to look for is 3.
Now here's a cool thing. Maybe sometimes you just want to do a staking type of operation without storing a point first. You know, sometimes the party chief pulls out his calculator and says, turn to such and such, at such and such. Well, that's what this is good for. Just fill in the fields with the angle and distances you want before pressing |STAK| and you can use the staking screen to set out that angle and distance.
What you do is enter the station and offset you want to stakeout. Enter your offset as a negative if it left of baseline and then press |SOLVE| to have it calculate a direction and distance. You can also use the STA+ and STA- features to save on punching in the station if you stake at regular intervals. Including Break stations will have the program come up with things like the PC, PT, SC stations when you use the STA+ and STA- features.
So anyway, once you've solved for the direction and distance to the station/offset, you can press |STAK| and it will optionally send the horizontal angle to the instrument before taking you to the STAKE SHOT screen. At this screen you can take a shot and it'll figure the elevation at the prism as well as the COME or GO. And if you are satisfied with the readings, you can press |STORE| and it will store the shot and make an entry in the log file.
SIDESHOT
This screen is for taking the traditional "SIDE SHOT" of which you have a couple of twists. First, there is a feature for description sequencing. Since the software I use for plotting utilizes feature codes, having description sequences helps simplify taking certain types of shots. The second twist is the locate feature. Many times you want to just know quickly the elevation or the station/offset. The locate feature does this at the touch of a button. You can even store the shot if you want.
This combination of features is excellent for cross-sectioning. In fact, that was one of the main driving forces of building the ETW. If you ever do government work or work for the government, you'll find that many payments for earthwork are based on quantities. These quantities are often based on cross-sections. And, while on a broad scope, a true topo may be better, I've found that many surveyors prefer or only know how to do cross-sections. I am not criticizing their methods, just stating an observation. For partial payment quantities, it is better than topo anyway.
Let's look at the tools I have put together for this. We have a 2-point resection so we can just setup the instrument where we can see the whole line as well as the control points. We have several check sight programs, so we can verify the integrity of our setup by running the rodman to a third control point. Then we have our simplified baseline segment program which can represent many scenarios in a QUICK AND EASY manner. With the SEQuence feature you can define the sequence of descriptions for taking shots, so repetative shots like TOP1 TOE1 CL TOE2 TOP2 could be done very fast. With the locate function, you can take the shot, verify that you haven't drifted too far off line, and since the elevation, station and offset are displayed, you could also write the results in your field book as you go. And you have the option of storing the shot if you want.
Wait, there's more. Since the log file follows the TDS RW5 format. Well, at least it tries to. You can use it with your favorite software with little or no modification.
And don't forget, the coordinate file exports using my rendition of Kermit protocol to a generic ASCII coordinate file. It can even be sent directly to some surveying software. Trying to keep with standards is a pain, but it allows seemless integration!
So here's how it works. When you do a side shot and the exact description used appears in the list, the next description in the list gets placed in the description buffer ready for the next shot. If it was the last in the list, then it goes back to the beginning and uses the first. Now if you use a description that was not found in the list, then it takes no action. This means you can stray and take shots of things not in the list and then resume when appropriate.
Now it's a sure bet you aren't going to want to use the default sequences, so you must be wondering how to change them. Well first off, you have to exit the ETW to do it. This is something you do from stack mode. All you have to do is create a list of your descriptions. A list is that thing with the curly braces. Your descriptions must be strings, you know between quotes. You don't realize it yet, but this means getting a quotation mark into the string will be kind of hard. Anyway, a sample list might be like { "desc1" "desc2" "desc3" }. Once you've created your list, choose which sequence number you want it to be. Your choices are one thru five. Enter that number onto the stack. Say you want it to be number 2. The stack should look something like
I think they are straight forward except for the perp-dist screen. The offset on this one is the perpendicular to the prism line and instrumentman's left or right distance. Left is signified by entering a negative value. Might want to play with that one a little before using it for real. A good way to test it might be to take an off-center shot then get to the "stake point" screen and stake that point, seeing where the angle lands relative to the reflector.
The forth and newest off-center sideshot is used for taking elevations on things that aren't readily accessable like power lines. What you do is take a shot on the reflector either above or below the object to get the distance, and take a shot on the object itself to get the line and new Z-angle, a Z "prime" so to speak. The elevation will be calculated for the object.
THINGS TO KNOW
Special Thanks
I have to give a special thanks to William Webber Jr., creator of Vertex48. For months, we've shared both ideas and stories. I think I actually get the better end of the deal. I had no ambition to create a program that interfaces with a total-station until I started trading emails with Bill. After exchanging lots of emails I decided I'd try and make a route pack, a simple route pack that didn't do everything. If it weren't for him, I would not have done the ETW portion. Thanks Bill!!!
Looking for a SERIOUS HP-48 DATA-COLLECTOR? How about one that you can try out first? Give Vertex48 a try. It is the best quality shareware data-collector or surveyor program for HP-48GX that I've ever found. Where as my software is meant to be de-evolved to a lesser simpler package, Vertex48 is a full-fledged data-collection package that stands on its own. Please check out the shareware version at http://www.hpcalc.org, the software speaks for itself.
Special Thanks
I have to give special thanks to Adam Wellington, Test Pilot for the Aina Surveyor. Adam runs the Wild (Leica) interface. Where as I mainly use the Geodimeter interface, Adam uses Aina with the Wild and gives me great feedback on the program itself. Many major and minor features were tuned based on feedback from Adam.
FREQUENTLY ASKED QUESTIONS
Q. I don't understand what you are talking about "port" in the installation instructions. What is this about ports and RAM cards?
A. These programs are designed to be able to run out of different ports available to users. This is so that you can utilize your memory as you see fit. HP divides your memory into two categories, user memory (working RAM), and port memory. You can plug a 32K or 128K RAM card into slot 1 and merge it to increase your user memory.
You can write to port memory and programs can be run from it, but you can't (well us normal folks can't) alter objects you place there, so it's not a good idea to put variables you want to change in port memory. Port 0 is taken from your user memory. If you store things there, it takes that much away from your user memory. Port 1 is the unmerged RAM card you have in slot 1.
You can put any available size RAM card into slot 2. Slot 2 can only be used for port memory. The HP-48GX will only access ports in "banks" of up to 128K, so with RAM cards larger than 128K in slot 2, you will have more than one port available. Port numbering in slot 2 begins at port 2. So say you had a 256K card in slot 2, you'd then have ports 2 and 3 available.
In theory, the maximum port available should be 32, but I read somewhere that a software glitch doesn't allow use of port 32. Quien sabe?!?
These programs seem to run fastest from port 0 and port 1. From port 2 and higher, there is a noticable speed difference.
Q. How do you stake-out [off a baseline] with this program?
A. This program was not intended to be used for staking at the instrument, so it's relatively clumbsy compared to a program designed for it. The Inv First feature was designed for writing
stake-out notes. Just toggle it on and when you solve for a station with the baseline segment program, the direction and distance is given from the setup point under the traverse menu.
Q. Is there a version or a way to work in gradients?
A. Not yet. I have no experience working in this unit, so I am not sure I will create something. Unlike bearings, the conversion is troublesome.
You can read the history of changes in the file CHANGES.TXT.
The AINA SURVEYOR is written mostly in system RPL. Perhaps 99.9% of it is system RPL. A handful of routines makes calls to user RPL functions, these are mostly in the key assignments. There are also several routines with assembler imbedded in them. I use assembler sparingly since it is not well documented, but it was necessary to achieve acceptable speed and in some cases do things not reasonably accomplished in system rpl.
All the "files" created and used by this program pack are regular HP48 user objects, real arrays and lists. Nothing extraordinary about them. According to programming literature, making them inaccessable to user manipulation would not be too difficult. A little assembler, and the objects could be turned into a library object very quickly. This would deter tampering. This is a potential benefit, but after some deep thought and soul searching, I've come to this decision: I won't do the conversion to library form for two basic reasons 1) my code is far from bullet-proof, while reliable, I have not perfected it, nor do I strive for absolute perfection, so if for some reason my coding should fail while the object was not in library form, you would stand to loose it in its entirety. This is not a risk worthy of the benefit. 2) I am not attempting to create an entirely proprietary format which is unbreakable or unmanipulateable to end users. If you are able to create code which can manipulate my file formats, I am okay with that, more power to you. On the other hand, giving out too many details would discourage people from purchasing the non-shareware version, so I am limiting coding information to those who do patronize.
The ETW will shut down when it goes below about 5000 free bytes. Well, it's supposed to anyway.
Set aside these ROMIDs 1018, 1019, 1020, 1021 for use by these programs. One of the features of this software is sharing space with other software in a civilized way. However, you cannot be using the same library numbers or "ROMIDs" as I use. This is one of the few restrictions. Please note that these numbers may be of use when looking to remove the program libraries.
This program may put some variables in the hidden directory. You or your software may not use them or fiddle with them. If you don't know what the hidden directory is, there's probably no problem. Here are the names to not use in the hidden directory:
This program will put variables in directories you run it in. Some names are reserved for these special variables. Don't use these names for directories or variables. Using them as directories may even cause the program to crash. These names are:
There are numerous user accessable functions/programs available with this program library. Most of them are the assigned keys. You are free to include them in your own user RPL programs, run them, or just reassign them as you see fit. Here is a listing of their names and their function:
Adding your own total-station
Well, as stated elsewhere in this manual, I have no plans to add interfaces for any other instruments, but someone has shared some source code for his total-stations, so someday I MIGHT make an add-on library. But until then, I have left provisions for you to write your own total-station interface. It requires a bit of knowledge on programming the 48 as well as a bit of knowledge about your particular total-station.
First you need to get the information on how to program the serial interface for your instrument. You can't build anything without it. Once you get the information, you'll need to build a library for your 48. It probably should be done in system rpl so it will be less vulnerable to pressing the [ON] button. You should use PUTSERIAL and GETSERIAL instead of words like DOSRECV for the same reason.
The library you need to build must be ROMID 1019 (3FBh) and its function 0 must behave like this:
Note that your function is required to have features 1-4,6,7 and 13. If your total-station doesn't have a coarse/fine mode(6&7), just use the same code for both. For any feature your instrument does not have, it should return FALSE. Your HXS only need elaborate on the bits shown in the above table.
For the routines that ask the edm to measure a distance, a screen display is probably a good idea to let the operator know that the edm is taking a distance. I use the ABUFF for building displays, but HBUFF is probably what you should use for this part.
Is this mysterious to you? If it is, then I recommend not undertaking the challenge to build the interface until it makes sense.
Your program must let the ETW handle the comm settings. It should assume the comm settings are already correct. Your program should have something displayed when it reads a distance and a provision for users to cancel is recommended during this operation.
The functions other than 0 in your library are up to you. If you are creative enough, you should be able to structure your library to harbor several interfaces you can switch to. If you compile directly from source into library form, then getting the desired function to be function 0 should be easy. If you use the USERLIB.EXE to create your library from a directory, you may need to sequence your variables in a certain order. I recommend using DEBUG4X to create your library since it is so easy with it. It sure beats trying to write a make file!
Once you've successfully created your library, just load it to a port in your 48, reboot your 48, and when you run ETW, it should recognize it and instead of "ADD ON" when you go to select your instrument, it will display what string is returned by your function call with a %1 as input.
Simple?
Known problems, kludges, bugs...
Since my attempt to send the Knob mode command to it didn't work, my suggestion is to just turn AUTOLOCK off before you tell it to turn to an angle, and perhaps turn it back on after the Geodimeter turns if you still want to use it. Basically, the only places where the instrument is given the commands to turn is during stakeout and check sights. I think you should turn it off to check sights anyway, and for staking, it depends on your situation, but turning it on and off is so easy, it should not be a problem.
REMOVING PROGRAM
There may come a time when you need to remove the AINA SURVEYOR. Explaining how to remove the libraries is perhaps frustrating, but reading my instructions on how to remove a library is probably even more frustrating. To help with the task of removing this or any of the AINA SURVEYOR programs, a program named UNAINA is provided with this set.
This is what UNAINA will do:
So, if you have a library you don't want to remove with one of these ROMIDs or if you don't want some of those key assignments deleted, then you should either modify the program before use, or manually remove the libraries.
Removing AINA SURVEYOR-
The program may not be able to remove the library file for some reason. Maybe the RAM card is write-protected or something like that. If so, correct the problem and perform steps 4 thru 6 again.