This is an old revision of the document!

Note; Therion 5.4.4 has a bug that causes “extend ignore somestation” to break at the wrong station. This is fixed in builds after 14 November 2019. If you are relying on this functionality, you should use versions after this date.

When a cave has multiple passages that connect to each other, such as a main route and an oxbow, it is not possible for an extended elevation to perfectly line up the two passages with each other, unless by chance they happen to be exactly the same length. Instead, it has to pick one of them to be the right (extended) length, while the other one gets broken at some station, with that station shown twice, one connected to the station before it, and the other connected to the station after it.

Take, for example, a main passage running for 7 metres, with a high level oxbow that connects after 1 metre and 6 metres along the main passage. The main passage runs in a curve, but the oxbow is shorter, cutting off the corner.

1   2 1    0   -10
2   3 1    0   -10
3   4 1    45  -10
4   5 1    45  -10
5   6 1    45  -10
6   7 1    90  -10
7   8 1.71 225  60
8   9 1    225  10
9  10 1    225  10
10  2 1.8  225 -32.2
7  11 1    90  -10

In this data, stations 1 to 7, and 7 to 11 mark the main route. From station 7, the survey proceeded back along the oxbow via stations 7 to 10, and then back to 2.

When preparing an extended elevation, we would normally want to draw the main passage correctly, and break somewhere along the oxbow, with a connector line between the two parts of the oxbow.


Therion, however, will normally use the shorter passage as the “main” passage, since it doesn't know which one is the main passage. It will draw the passage starting where you told it to start (extend start), continuing to the right (the default direction) until it reaches the oxbow. Then it will continue along the oxbow instead of the main passage. Once it reaches the main passage again, it now extends both directions along the main passage towards the right. The passage that should have been to the left is also to the right, and once it reaches where it branched off to follow the oxbow, it draws a connecting line back to the start of the oxbow. Frankly, it doesn't look great, and is not at all how we would want it to look.

So the answer is to tell Therion to “extend ignore” one of the stations or the legs along the oxbow. despite its name, “ignore” does not mean to ignore the station; it means “break at this station” or “add a weakness at this station so that the extended elevation can break here”. For this example, we will break it at station 9 (warning, this will not work correctly in Therion 5.4.4 or below; you would need to upgrade, or use the “extend ignore fromstation tostation” syntax).

extend start 1
extend ignore 9

So near, and yet so far. Therion will break on the correct station, but the oxbow will be rendered with both its halves pointing to the right - the default direction. So instead, we need to tell it to start extending 7 to 8 towards the left. We could tell it to “extend left 7”, but then this will also affect all legs from 7 onwards, including leg 7 to 11. So instead, we extend just leg 7 to 8:

extend start 1
extend ignore 9
extend left 7 8

Again, so near and yet so far. Now the first half of the oxbow is correct, and the start of the second half also starts correctly. But leg 8 to 9 points back in the default direction (right). So we can tell Therion to extend everything from 8 onwards to the left:

extend start 1
extend ignore 9
extend left 7 8
extend left 8

You might expect this to also affect the first half of the oxbow (stations 9 to 2) as well, but since there is an “extend ignore” taking place on station 9, the “extend left” has no effect from station 9 onwards, and the rendering ends up perfect.

This basic approach also allows us to break the oxbow on station 8 or 10 instead.

extend start 1
extend ignore 10
extend left 7 8
extend left 8

But not on station 2. If you use “extend ignore 2”, it has a disastrous effect. Station 2 has multiple legs attached to it. When you say to ignore it, Therion cannot work out which leg you wanted it to ignore. It extends correctly from station 1 to 2, but then it gets confused, starts again at station 11 (yes, 11) extending backwards through the oxbow and stations along both routes; 11-7-8-9-10-2 and 11-7-6-5-4-3-2. There are now three copies of station 2.

Definitely not the desired effect. To put it simply; you should never use “extend ignore somestation” syntax on a station that has more than two legs connecting to it. So instead you need to tell it to ignore the leg from 10 to 2:

extend start 1
extend ignore 10 2

But that doesn't work. Therion reverts to its original rendering and ignores the “ignore” statement. If you add back in the “extend left 7 8” and “extend left 8”, then it now tries to extend those legs in the direction you ask, while simultaneously ignoring the “ignore” command, causing everything to become an overlapping mess. It has now chosen a different point to insert a break, instead of where you asked for it.

What is going on? The data may be going 7-8-9-10-2 through the oxbow, but Therion extends it starting from 1, and then follows the oxbow in the opposite direction (since that is the direction where it connects first to the “extend start”); 2-10-9-8-7. (If it helps, you can add “log extend” in your .thconfig file, and that will log the extended elevation traversing sequence to therion.log, and you can use that to work out which order you need to specify the stations.) So your “extend ignore” must go in that same direction:

extend start 1
extend ignore 2 10
extend left 7 8
extend left 8

In this example, the equivalent to “extend ignore 9” would be “extend ignore 9 8”. Note that this syntax even works correctly in Therion 5.4.4.

Something important to note about this; it is perfectly legitimate and acceptable for you to use “extend ignore 8 7” followed immediately by “extend left 7 8”, which makes it look like you want it to simultaneously ignore and not ignore the same leg. You need to remember that “extend ignore 8 7” means “allow a break at the start of this leg” - it does not mean to ignore the leg. The subsequent “extend left” says which direction to extend the leg.

What happens if you try “extend ignore 9” in Therion 5.4.4, or earlier releases? It breaks at station 8 instead; it always tries to apply the break one station too early. If you try “extend ignore 10”, it breaks at station 9 and also at station 2. Leg 10-2 is extended in the opposite direction to leg 9-10, creating a very unexpected effect.

This bug is fixed in more recent builds, starting with developmental builds after 14 November 2019. Use a fixed version instead, or if you are stuck on an older release, do not use “extend ignore somestation”.

  • breakingextend.1575403147.txt.gz
  • Last modified: 8 months ago
  • by tarquinwj