breakingextend

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
breakingextend [2019/12/03 20:59]
tarquinwj typo
breakingextend [2020/07/08 18:31] (current)
tarquinwj Breaking on last station images
Line 71: Line 71:
 {{ ::ignoretwo.png?nolink |}} {{ ::ignoretwo.png?nolink |}}
  
-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:+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. (And to confuse matters, splays cause the same problem as legs, so if a station has splays, you also cannot use "extend ignore somestation" syntax on that station.) So instead you need to tell it to ignore the leg from 10 to 2:
  
   extend start 1   extend start 1
Line 89: Line 89:
 {{ ::brokentwo.png?nolink |}} {{ ::brokentwo.png?nolink |}}
  
-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.+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. You can even supply "extend ignore 9 10" and "extend ignore 9 8" at the same time. Therion will only use one of them, but it means that you do not need to know whether Therion has chosen to extend forwards or backwards through that section. Therion will just respect whichever one of those is in the direction it is using. This is essentially the same as saying "extend ignore 9", but it can work even in cases where you have more than two legs or splays attached to that single station, as long as the station is not the junction at the end of the loop. Whether it is more understandable is up to your own discretion.
  
 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. 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.
 +
 +===Breaking at the last station of a loop===
 +
 +Breaking at the last station of the loop - the point where the two branches of the loop rejoin - is much harder. With a single statement, it is not currently possible (Therion 5.4.4) to make the extended elevation break at the end station of a loop's shorter branch (station 7 on the 2-10-9-8-7 branch). "Extend ignore" can only be used to add breaks when legs lead away from a station (in whichever order Therion is progressing around a loop). Therefore while "extend ignore 2 10" can cause a break at station 2, and "extend ignore 8 7" or "extend ignore 8" can cause a break at station 8, there is no equivalent way to make a break at station 7. "Extend ignore 7 6" and "extend ignore 7" will cause Therion to put a break at station 7 on the 1-2-3-4-5-6-7 branch instead:
 +
 +{{::extendignore7.png|}}
 +
 +"Extend ignore 7 11" will cause Therion to ignore the statement since a break is not needed for that leg, and then revert to its default break point within the loop.
 +
 +However, a quirk of the way that Therion processes "ignore" commands can be used to make it happen. By default, Therion progresses through the shorter side of the loop; 1-2-10-9-8-7-11, treating 7-6-5-4-3-2 as a separate branch.
 +
 +First, you tell it to "extend ignore 8" or "extend ignore 8 7". This causes it to break at station 8. It now proceeds through the longer branch of the loop instead; 1-2-3-4-5-6-7-11, treating 2-10-9-8 as one branch, and 7-8 as another branch:
 +
 +{{::extendignore8.png|}}
 +
 +Then you tell it to "extend ignore 7 8". This causes it to break at station 7 on the 7-8 branch, which is the place where you want the break to be. The 7-8 branch is now floating, not attached to anything. Therion helpfully connects it back onto the 2-10-9-8 branch at station 8. The end result is the desired rendering.
 +
 +  extend start 1
 +  extend ignore 8 # or extend ignore 8 7
 +  extend ignore 7 8
 +
 +{{::extendignorelast.png|}}
 +
 +Note that this is not tested in multiple different configurations, and it is possible that unexpected behaviours could appear. However, it does seem to work in this demonstration at least.
 ====Therion 5.4.4 and earlier==== ====Therion 5.4.4 and earlier====
  
  • breakingextend.1575403147.txt.gz
  • Last modified: 12 months ago
  • by tarquinwj