开云体育

Adding "Custom" loads to OpsPro - Part Two

?

This is Part Two of my post on how to obtain improved car movement in OpsPro using "custom" loads for your cars. ?Part One (and the discussions thereof) can be found <Part One> or its Wiki Page <Wiki Pages archive>.

Since the movement of the cars themselves is based on the building of a train,? it might help to do a quick review of what happens when you click Build?for a train.

When you click on the "BUILD" button for any train, the program begins to examine the cars found in the locations along the train's Route. ?The order in which the cars are examined (for movement), follows the individual lines of the Route. ?In other words, for each location the train visits (starting with its origin location), the program will check all the cars found there and seek to assign a destination to each, up to the number of "Pick Ups" allowed for that location of the Route. ?Example...



As each location's cars are checked and successful assignments made, the program keeps track of length(s) available at the assigned locations and seeks to evenly distribute the cars along the train's route. ?The algorithm has a mathematical bias for the last location in the route, so as to prevent trains from arriving their final stop without any cars.

When the User introduces "custom" loads/MTYs to the scenario, the program then has to check for schedules and make assignments from those. ?And, since it now "routes" those assigned cars, it will check to ensure that the first track for interchange (through which the car must travel) has sufficient available length.
Once the successful assignment (based on requested moves) of cars for each location has occurred, the program "builds" the train and the resulting manifest instructs as to each car's distribution. ?The whole process can take milliseconds or a few full seconds!

While there is more going on behind the curtain of the Great and Powerful OZ than I've enumerated here, let's just say that the process for car movement will follow the structure created by the user at the outset of their data entry.? ? ? ? ? ?Most users probably begin by putting their Cars into the system and then move on to Locations, followed by tracks at each Location, then create a Train or two.

It stands to reason most of us took our model railroad and created the OpsPro "pieces" to reflect the actual tracks/locations. ?It is also probably safe to say, that we just left the resulting setup in its default state. ?This works, as it allows for the use of the default "E" and "L" for car loads/empties. ?But, it is through editing and reshaping these "pieces", that we can experience the more "directed", or prototypical car movement.



In Part One, I addressed how to get Custom loads/MTYs set up for the various car-types as they might be desired for service. ?If sucessful their endeavor, Users should now have some different choices of product(s) that can be used to load their cars. ?

Additionally, if a re-check by the User, of the name(s) used for the Custom empty has occurred (making sure the "Load Type" is NOT greyed-out), then those empties should now also be Custom empties (I use "MTY"). ?
It is okay to mix the two "Load Types" as both Default and Custom can work side by side, i.e. if the user is transitioning over from the former to the latter. ?However, I recommend that ultimately (for sanity's sake), the complete switch to using only Custom loads/MTYs be made, as it will make diagnosis of issues that much easier. (and don't fool yourselves, there WILL be issues!)

Now dear Readers, on to the good stuff...?

Once the cars are ready to make use of the new loads, we must return to our previously created tracks, be they Spurs or C/Is or Staging. ?Specifically, these tracks must be edited to achieve the goal of improved car movement.? And I believe it is the Schedule that affords us the best choice for doing just that...

Groundwork for establishing the Schedules still requires a few alterations of those Spurs, since they may still be set up for Defaults and have no schedules in place. ?Let's take a look at a possible scenario...
(For most of the following examples, I will use images that I have made just for tutorial purposes and may require the Reader to modify to fit their own situation.)

This is the "Edit" window for a basic Spur found in my Location of "Johnson City"...

<-- This Spur is served by any Train working "Johnson City" in either direction, and handles Boxcars and HopCoal cars.

Other items of note : the Length (at 250') allows approximately 5 cars at once,

...the "Load Options" allow only 3 specific Loads in those cars--->. ?

And, there is no schedule yet established for Pete's Plumbing Supply, so it handles only Defaults for now.

I have envisioned that this Spur is bringing in various loads of "stuff" in Boxcars, requesting empty Boxcars for shipping "stuff", as well as an occasional HopCoal load for powering the boiler of this factory. ?When I build a train to service "PP" Spur, the manifest currently shows me only the Boxcar+E or +L and the HopCoal+L.? ? ? ? And for those who have similar spur setups, this might suffice. ?
But what if I want to introduce some Custom loads for the sake of interest in car movements.
?
It is possible, as I mentioned earlier, to mix the Default and Custom load types, so for the benefit of those Users wishing to do this, we'll need to keep the two separate for now.

In this case, let's create a version of "PP" Spur that makes use of a couple of the new loads for the Flatcar and the Gondola. ?Since we'll want the work shown on the manifest to be seamless, we can create a virtual Spur with a name very similar to the original using the "-(" technique. ?This will allow the program to print the work at both Spurs as if it's just the one.



This Spur has many similarities to the original but is only going to handle the Custom loads. ?And, due to the Length (110'), will only allow 2 cars at a time, either 2 Flats or 2 Gondolas or one of each.?

Whereas we are concerned with Schedules, have a look at the "Edit" window of the simple one used by this Spur...



So, these two Spurs combine to give the User a single Spur on the paperwork. ?The program will handle the assignment of cars, based on what loads they carry when they arrive. ?The manifest for the train doing the delivery will display both the Default AND the Custom load/MTYs as if there is no difference between them. ?The difference, however, is that the program employed the correct algorithms for each "Load Type", to get them delivered.

"How's that again?", you might ask...

Well, we know the algorithm for Default car movement is to just move a car for moving's sake. ?So, for either the Boxcar or the HopCoal, those cars were sitting someplace else, were picked up by a train, and assigned to move to "Johnson City", specifically the original "PP" Spur (which accepted their load status). ?That same train also picked up (maybe from another someplace else) the Flat and/or Gondola, which, having Custom loads, were "routed" by the program using the Custom-load movement algorithm, meaning these two cars were spotted at the new "PP" Spur (which applied the schedule allowing them).

The best part is that this all occurs behind-the-scenes and is transparent to the User. ?It does require some forethought about product usage at the various industries, as well as some setup changes to the original Spurs, so a pen-to-paper approach is suggested.

Now, how about those who wish to convert all their Spurs over to using Custom loads and Schedules?
?
While it is possible to edit the original Spur for use with Custom loads, in order to save time, why not edit the newer Spur already allowing Customs? Add the Boxcar and HopCoal to the cars-serviced list,? edit the schedule, then go back and delete the old Spur, and if desired, change the name of the Custom-loads Spur back to the original (though this last step is not completely necessary).


Changes are needed as enumerated...

  1. A new Length (250') to accommodate the increase in car spot possibilities.
  2. Checking the boxes of the other two car types added for service to this Spur.
  3. Updating the Schedule (use the Edit button) with the addition of lines for the Boxcar and HopCoal.


And the updated Schedule for Pete's Plumbing should now look something akin to this...



All this should help the User to migrate their old "Default-only" spurs over to ones that can utilize the new Custom loads created for their cars. ?This should result in increased interesting car movements and, it is my hope, a higher return of play value for the work involved.



Whew! ?That is quite a bit of digital ink, and I haven't even got to the role of staging nor how schedules can be used to "push" loads to other Spurs (with their own schedules). ?
I guess I'll have to return with another PetePost, so look for Part 3 to follow...

And also be sure to check the Wiki section of this forum, as I will attempt to create a new page (under the "Pages" button) in order to archive this content.

Happy to help, hope it helps
<Pete Johnson>