Fixing "Odd" Length Spirals Created by GEOPAK Store Graphics

Problem:
When chains with spirals are stored using the GEOPAK Store Graphics procedure, the spirals often end up with odd lengths (e.g., 59.990 m or 60.020 m), this despite the fact that the user drew all the spirals with the GEOPAK Horizontal Alignment > Place Spiral tool with even lengths (e.g., 60.000 m). How can the user get the chain stored with even spiral lengths?

Solution:
When the GEOPAK Store Graphics procedure is used to store a chain, GEOPAK keeps an audit trail of the COGO commands used to store the chain in a text file in the project directory.  This file is named JxxxOyy.INP where xxx is the job number and yy is the operator code. The lengths of the spirals can be changed by editing this audit trail file and then using the edited file to re-store the chain as follows:

  1. Use a text editor (e.g., the GEOPAK editor) to edit the audit trail file (JxxxOyy.inp).  
  2. Find the group of COGO commands in the audit trail file that GEOPAK used to store your chain. The group of commands will begin with the last occurrence of the SET RED line in the file and will end with a line that looks something like:
    STORE CHAIN XXXX 800 SCS XXXX-1 SCS XXXX-2 SCS XXXX-3 SCS XXXX-4 etc.
    where XXXX is the name of your chain.
  3. If there are any commands above the SET RED line (and there probably will be), delete them out. At this point the only thing left in the audit trail file should be the COGO commands to store your chain.
  4. Immediately below the SET RED and (probably) STORE POINT lines will be a series of lines that look something like the following:
    STORE SCS XXXX-1 PI N 9199.9491473100 E 10210.522479970 DB 60.0021368861 LS1 59.990000 LS2 59.980000 RADIUS 200.000000 DA 79.9969987749
    These lines are the COGO commands to store the spiral-curve-spirals groups in the chain.  The lengths of the spirals in and out of the curve are the values following the LS1 and LS2 keywords respectively.
  5. To change the lengths of the spirals simply edit the LS1 and LS2 values. If you want the same spiral length ahead and back, then both  the LS1 and LS2 can be replaced with a single LS keyword and the spiral length.  For the example shown above if you wanted both spirals to be 60 m long, then LS1 59.990000 LS2 59.980000 would be replaced with LS 60. On the other hand, if you wanted different spiral lengths ahead and back, then leave the LS1 and LS2 keywords in place and just edit the spiral lengths. For the example, if you wanted to have a 50 m spiral back and a 70 m spiral ahead, you would simply change this to read LS1 50 LS2 70.
    (NOTE: The spiral lengths have to be changed for all the STORE SCS lines.)
  6. Once you have edited the audit trail input file, save it, get into COGO and type in the following two commands:
    RESTORE
    READ

    to re-store the chain with the corrected spiral lengths.

Additional Notes:
  • The underlying cause of the problem is the limited precision MicroStation uses to store graphical elements. There's nothing you can do while initially drawing the spiral elements or when using the Store Graphics procedure to get around it.
  • The procedure outlined above shouldn't be used to make significant increases in the lengths of spirals because it may result in overlapping spirals (which GEOPAK does not recognize as being a problem).