That LISP appears to reset stationing at every 2000', but I'm not quite clear the intentions of it in regards to this.
Below is an image from a recent project, that shows our matchlines and project running line. As seen, our route twists and turns, crosses streets, etc. Viewports are set up at different angles on each page.
As much as I like the idea behind having everything in one LISP, there are just too many variables, I think. Such as, a set footage amount falling in the middle of a street and the viewport then set up crossing down the middle of the road, which we don't do.
If blocks were inserted, the user could then adjust them, and preferably viewports would then be set up with the same outline shape as the block. From this block the LISP should be able to pull angle information from the block to set the viewport page to, and the page name, based off of the attribute value. Attached is that block.
The insert chainage works fine for me I set the spacing to be equal to the size of my mview in the layout tab I found a spot to put the make new layout tabs within this code, if you run it and change the block "station" to be say a rectang then you should be able to see how its going to work. I found the pt_list contains all the points along the pline so thats step 1, step 2 is to add the ang of the title block at this point.
If you want shaped dwg areas then forget the way above you need a totally different approach it would actually be a bit easier as you have already worked out the size at scale. Just pick the pline outline and new layout created it would use a control pt which should be on the pline. You just need to work out the scale factor for a new pline mview in a layout tab.
I am still going to do the sq shape as we have a need for it.