tips

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
tips [2018/04/30 07:42] – [How to export correct extended elevation from zig-zag centerline] brucemuttontips [2022/04/02 00:29] (current) – [Joining scraps together] duplicate joined points will be ignored brucemutton
Line 45: Line 45:
   * Always check the "object setup area" on right side and "status line" on bottom of it. You may find there any necessary information with help to create object with correct parameters and in correct place.    * Always check the "object setup area" on right side and "status line" on bottom of it. You may find there any necessary information with help to create object with correct parameters and in correct place. 
   * If you press the "Escape" key you leave the "Insert Mode" and switch to "Select mode". The "Select mode" works in two steps - **select** - after first click you may check the parameters of object in "Status line" or "File commands" or "object setup area" and - **move** - after second click you may move with object.   * If you press the "Escape" key you leave the "Insert Mode" and switch to "Select mode". The "Select mode" works in two steps - **select** - after first click you may check the parameters of object in "Status line" or "File commands" or "object setup area" and - **move** - after second click you may move with object.
-  * If you add line object, you may start to insert new line simple by pressing of Ctrl+L keys, you don't need to escape from "Inserting mode" first. +  * To add line object, you may start to insert new line simple by pressing of Ctrl+L keys, you don't need to escape from "Inserting mode" first. 
   * Always check the small yellow tick on first point of line object. It shows the FREE space side of line. It means you should draw walls in counterclockwise direction, the blocks in clockwise direction, pit or chimney in counterclockwise direction, etc. If you made a mistake there is "reverse" option in "Line commands" section.   * Always check the small yellow tick on first point of line object. It shows the FREE space side of line. It means you should draw walls in counterclockwise direction, the blocks in clockwise direction, pit or chimney in counterclockwise direction, etc. If you made a mistake there is "reverse" option in "Line commands" section.
 +
 +===Finding Objects if you have large blank extents===
 +If you have inserted an xvi or drawing image with large extents, it may be difficult to find the drawing objects by panning or zooming around the drawing interface.\\
 +An easier way to locate any drawing objects is to open the Objects window on the top right-hand side of the XTherion interface, and click on one of the objects listed.
 +Except for scraps, and areas, most objects will be selected and the drawing area will be panned to show the object mid-screen.\\
 +For example, clicking on object 4 below, selects it and brigs it to the centre of the drawing area.
 +
 +{{tips:xtherion_extents_find__objects.png?300}}
 +
 +If you are repeatedly creating th2 files with large blank extents around the drawings and images, then it may be because of spurious drawing lines made accidentally when navigating during data collection with PocketTopo, TopoDroid, SexyTopo or the likes.  It may also be because of inappropriate parameters used (chosen by you or the application developer) to export data from these applications to Therion.\\
 +If drawings and export\imports are well posed, then your drawing area extents should not be much larger than your actual drawing.\\
 +You can manually or automatically tweak the drawing area that is viewable for a particular file if you scroll down to the Drawing Area window near the bottom of the right-hand side of XTherion, and make adjustments there.
  
  
Line 85: Line 97:
 ====Scrap Drawing Tips==== ====Scrap Drawing Tips====
 [[drawingchecklist#scrap_drawing|Some Scrap Drawing Tips]] [[drawingchecklist#scrap_drawing|Some Scrap Drawing Tips]]
 +
 +====Pitch Drawing Tips====
 +[[offsetpitches|Colouring pitches in simple and offset maps]]
 +
 +====Surface Drawing Tips====
 +[[surfacefeatures|Drawing surface features]]
 +
 +====Using map connections====
 +[[mapconnectors|Map Connections]]
 +
 +====Using elevations====
 +[[projectedelevations|Making projected elevations]]
 +
 +[[colouringelevations|Colouring elevations]]
  
 ====Drawing Order How to draw symbols over or under an area==== ====Drawing Order How to draw symbols over or under an area====
Line 105: Line 131:
 As described in the Therion Book, __How the map is put together__, the layers are 'default-bottom', 'default' and 'default-top' 'Default', as you might guess is in the middle. Areas go to the bottom, ceiling-step and chimney go to the top, everything else is somewhere in the middle. As described in the Therion Book, __How the map is put together__, the layers are 'default-bottom', 'default' and 'default-top' 'Default', as you might guess is in the middle. Areas go to the bottom, ceiling-step and chimney go to the top, everything else is somewhere in the middle.
  
-Now if you find that you have not drawn an entity in exactly the right order to get that special effect you were after, there is an over-ride.  There are two more 'layers', 'top', and 'bottom' and these are placed by Therion above 'default-top' and below 'default-bottom' respectively.  To put an entity in either of these layers, add the option -place top or -place bottom.  If using -place for an area it is probably a good idea to use -place for its defining border as well.+Now if you find that you have not drawn an entity in exactly the right order to get that special effect you were after, there is an over-ride.  There are two more 'layers', 'top', and 'bottom' and these are placed by Therion above 'default-top' and below 'default-bottom' respectively.  To put an entity in either of these layers, add the option -place top or -place bottom.  If using -place for an area it is probably a good idea to use -place for its defining border as well. There is then an upper layer on top of 'top', which is the layer containing any items that have '-clip off', since these are rendered after all items that take part in normal clipping. If you have an entity without '-clip off' that needs to be rendered on top of an entity that has '-clip off' (eg. a ceiling step that must appear on top of a boulder when the boulder-edge has '-clip off'), then you will need to give the first entity (the ceiling step in the example) '-clip off' as well. These non-clipped entities are then layered with respect to each other respecting the usual -place and stacking orders.
  
 Fifthly, transparency and opacity settings come into it, as well as the particular viewer or printer driver you are using, as indicated in the first paragraph above. Fifthly, transparency and opacity settings come into it, as well as the particular viewer or printer driver you are using, as indicated in the first paragraph above.
Line 122: Line 148:
  
 ==== Avoiding Invisible or Misshapen Scraps in Loch and Google Earth ==== ==== Avoiding Invisible or Misshapen Scraps in Loch and Google Earth ====
-Over time the pdf outputs have become resilient to many drawing misdemeanour's, and so you can break many of the rules described in the Therion Book, and still get a pretty good (or even perfect) output. But the Loch model and Google Earth map outputs are not yet so versatile (June 2011 version 5.3.8), and often result in missing or miss-drawn pieces of cave passage. \\+Over time the pdf outputs have become resilient to many drawing misdemeanour's, and so you can break many of the rules described in the Therion Book, and still get a pretty good (or even perfect) output. But the Loch model and Google Earth map outputs are not yet so versatile (2011 - 2021), and often result in missing or miss-drawn pieces of cave passage. \\
 Here are the usual culprits. Here are the usual culprits.
 ^ Misdemeanour ^ Symptom ^ ^ Misdemeanour ^ Symptom ^
 |* //line wall// with incorrect 'reverse' status (yellow tick should point inside passage void) | Invisible passage.  Loch walls appear and vanish as you rotate the model | |* //line wall// with incorrect 'reverse' status (yellow tick should point inside passage void) | Invisible passage.  Loch walls appear and vanish as you rotate the model |
-|* //line wall// with interior passage that does not have '-outline in' option set. | Interior of loop is rendered and passage is invisible |+|* //line wall// that is completely enclosed by a single scrap (such as for an oxbow passagethat does not have ''-outline in'' option set. | Interior of loop is rendered and passage may be invisible | 
 +|* //line wall// that is completely enclosed by a single scrap (such as for an oxbow passage) but is not continuous and closed.  Hint: Close intentionally open ends that are completely enclosed by a single scrap with a ''line wall -subtype invisible'' to solve this problem. | Interior of loop is rendered and passage may be invisible |
 |* An open passage end has one or more wall ends that curls back into the interior of the passage. | Invisible passage | |* An open passage end has one or more wall ends that curls back into the interior of the passage. | Invisible passage |
 |* A scrap has open space along it's length. ie openings left for side passages directly opposite each other break the scrap in half. | Only one of the parts of the scrap are rendered | |* A scrap has open space along it's length. ie openings left for side passages directly opposite each other break the scrap in half. | Only one of the parts of the scrap are rendered |
-|* Scrap is wider than it is long, or has long walls with '-subtype invisible', or \\ very complicated scraps | These are not necessarily misdemeanours, but I think it might cause the passage to be invisible. |+|* Scrap is wider than it is long, or has long walls with ''-subtype invisible'', or \\ very complicated scraps | These are not necessarily misdemeanours, but I think it might cause the passage to be invisible. |
 |* Passage wall has a loop in it, either because the bezier curve handles have been extended too far, or because the subsequent morphing when scraps join has encouraged a loop to form|probably invisible passage (not verified) Metapost gives a 'scrap outline intersects itself' warning| |* Passage wall has a loop in it, either because the bezier curve handles have been extended too far, or because the subsequent morphing when scraps join has encouraged a loop to form|probably invisible passage (not verified) Metapost gives a 'scrap outline intersects itself' warning|
-|* Therion cannot handle two consecutive //wall:invisible// lines joining each other (5.3.9 Nov 2011) Try making the two invisible lines into one long invisible line or make one of them //-visibility off// instead|Passages have gaps and strange artefacts emanating from them | +|* Therion cannot handle two consecutive ''wall:invisible'' lines joining each other (5.3.9 Nov 2011) Try making the two invisible lines into one long invisible line or make one of them ''-visibility off'' instead|Passages have gaps and strange artefacts emanating from them | 
-|* A line with //-outline out// is connected to a line with //-outline in// |Passages have gaps and strange artefacts emanating from them|+|* A line with ''-outline out'' is connected to a line with ''-outline in'' |Passages have gaps and strange artefacts emanating from them|
 |* Instead of abutting end to end, a pair of line wall overlap each other, the first segment of one line with the last segment of another | Loch model contains large spurious artefacts | |* Instead of abutting end to end, a pair of line wall overlap each other, the first segment of one line with the last segment of another | Loch model contains large spurious artefacts |
  
Line 158: Line 185:
  
 One of Therion's key features is that drawings are created in small pieces - scraps. A scrap is the smallest indivisible part of the drawing that can exported to create an output.\\ One of Therion's key features is that drawings are created in small pieces - scraps. A scrap is the smallest indivisible part of the drawing that can exported to create an output.\\
-Most maps contain many scraps, and if they don't happen to appear perfectly joined by coincidence, then you should "join" these individual scraps to get Therion to morph them together. There are three ways to do it; fully automatically in *.th2 file, semi-automatically scrap by scrap, and manually line by line (if you must specify exactly which lines and points join). The last two are described in Thbook;+Most maps contain many scraps, and if they don't happen to appear perfectly joined by coincidence, then you should "join" these individual scraps to get Therion to morph them together. \\ 
 + 
 +''**Important:** Only use the **join** command if it is necessary to do so. ie when there are open passage ends or drawing lines that should be joined in the final output, but are not. \\ 
 + 
 +**Do not use** the **join** command if your adjacent scraps do not have any lines that need to be joined.  An example of this would be a higher passage approaching the top of a pitch, and a lower passage that continues from the bottom of the pitch.  Both the upper scrap and the lower scrap might be drawn with closed ends around the top and bottom of the shaft respectively.  These overlapping scraps would not normally need to be joined, and using the semi-automatic approach described below will guarantee extreme distortion!''\\ 
 + 
 +**How to join scraps** 
 + 
 +There are three ways to join scraps, or components of scraps 
 +  * fully automatically in *.th2 file,  
 +  * semi-automatically scrap by scrap, and  
 +  * manually line or point by point (if you must specify exactly which lines and points join).  
 + 
 +For any particular pair of lines or points to be joined, you should only use one of these methods.  Multiple joins of the same set of objects is likely to give unpredictable results! The last two methods are described in Thbook and all three are described below.\\ 
 + 
 +Join commands can be put directly into a survey definition, but not usually inside scrap or map definitions.
  
 **Fully automatic in *.th2 file** **Fully automatic in *.th2 file**
  
-If you draw two or more scraps adjacent to each other in your drawing *.th2 file, and make sure the adjacent line wall ends snap to each other, then Therion will automatically morph them, if necessary, to create a perfect join.  A morph might be necessary, if for example survey closure or other drawing distortions might tend to separate the scraps you have drawn as touching.+If you draw two or more scraps adjacent to each other in your drawing *.th2 file, and make sure the adjacent line wall ends snap to each other, then Therion will automatically morph them, if necessary, to create a perfect join.  A morph might be necessary, if for example survey closure or other drawing distortions might tend to separate the scraps you have drawn as touching.\\ 
 +This is really just an automatic implementation of the 'Manual line or point by point' method described below.\\ 
 + 
 +In fact, any points or line points (not just open ends of passage walls) drawn coincident (snapped together) in a th2 file will be morphed in the output to also be coincident.
  
 **Semi-automatic scrap by scrap** **Semi-automatic scrap by scrap**
Line 168: Line 213:
     join scrap1 scrap2 [-count <number of passage (not line) joins for Therion to look for>]     join scrap1 scrap2 [-count <number of passage (not line) joins for Therion to look for>]
  
-**Manual line by line**+The method can only join two scraps at a time.  Note that it only works using passages defined by lines of "wall" type (even if their "-outline" is set to "none"). It does not join other types of line. It normally expects to find pairs of lines, one on each side of the passage opening. If there are multiple places where the two scraps join, you can normally use the "-count" option to say how many possible passage joins Therion should search for and join in the two scraps. 
 + 
 +**Manual line or point by point**
  
-From time to time the semi-automatic way does not work, or you want more refined control.  Then you should join each line to the other line (usually, but not only walls) or to point. Every point on a line has a mark according its sequence from beginning of line (yellow tick). The first one has mark 0, next one 1, etc., last one is mark "end". So the join command will be:\\+From time to time the semi-automatic way does not work, or you want more refined control.  Then you should join each line or point to the other line or point (usually, but not only walls). If you have several objects to join at one point, then unlike the scrap by scrap join above, you should use one join statement to join them all in one go (see bottom of this topic) Every point on a line has a mark according its sequence from beginning of line (yellow tick). The first one has mark 0, next one 1, etc., last one is mark "end". So the join command will be:\\
  
  
Line 195: Line 242:
  
 You may use join command to join line to line or line to point. So if the beginning of a particular passage is between two blocks you may join walls of passage to points of rock-borders. After the morphing the beginning of passage will be still connected to blocks. You may use join command to join line to line or line to point. So if the beginning of a particular passage is between two blocks you may join walls of passage to points of rock-borders. After the morphing the beginning of passage will be still connected to blocks.
 +
 +The lines (just like maps, scraps, points and stations) are referenced by their ID directly inside their survey - inside a subsurvey, this would be as id@subsurvey (or id@subsurvey.subsurvey for nested subsurveys) - so make sure you have assigned an ID to each line that needs to be joined using the join command.
  
 If you want to join three or more lines and or points, do all the coincident joins in a single command, eg If you want to join three or more lines and or points, do all the coincident joins in a single command, eg
Line 200: Line 249:
     join line1:john line2:jane line3:jack line4:jill     join line1:john line2:jane line3:jack line4:jill
  
-For more detail see [[tbe:wiki3#joining_scraps|Therion by Exampleschapter 3]] and [[faq#how_do_i_join_three_scraps_in_a_y-shape]]+If you refer to the same point in more than one join statementthen one of the joins will be ignored.
  
 +For more detail see [[tbe:wiki3#joining_scraps|Therion by Examples, chapter 3]] and [[faq#how_do_i_join_three_scraps_in_a_y-shape]]
 ====How to export correct extended elevation from zig-zag centerline==== ====How to export correct extended elevation from zig-zag centerline====
  
 Very common problem, when drawing extended elevation of steepy and large passage where centerline is from practical reasons zig-zag and automatic generation of centerline will increase real length of passage. Very common problem, when drawing extended elevation of steepy and large passage where centerline is from practical reasons zig-zag and automatic generation of centerline will increase real length of passage.
  
-In Survex and in Therion there could be label "nosurvey" in data structure definition command. +In Survex and in Therion there could be label ''no survey'' in data structure definition command. 
  
 Example: Example:
Line 231: Line 281:
  
 \\ \\
-Command //data nosurvey from to// means there will be created fake survey shot from station 18.2 to 18.5, but this survey shot will play in extended elevation generation.\\ +Command ''data nosurvey from to'' means there will be created fake survey shot from station 18.2 to 18.5, but this survey shot will play in extended elevation generation.\\ 
-To prevent interaction with survey shots from station 18.2 to 18.3, 18.3 to 18.4 and 18.4 to 18.5 there is another command //extend ignore// what mean those shots will be not included in extended elevation generation. \\+To prevent interaction with survey shots from station 18.2 to 18.3, 18.3 to 18.4 and 18.4 to 18.5 there is another command ''extend ignore'' what mean those shots will be not included in extended elevation generation. \\
 \\ \\
 Final result should be as on images:\\ Final result should be as on images:\\
 {{:tips:zig-zag_map.png?150|map}} {{:tips:zig-zag_extended.png?150|extended}}\\ {{:tips:zig-zag_map.png?150|map}} {{:tips:zig-zag_extended.png?150|extended}}\\
 See also [[extend|Extended Elevations]] page for comprehensive extended elevation guidance. See also [[extend|Extended Elevations]] page for comprehensive extended elevation guidance.
 +
 +====Showing centreline for parts of a cave, and passage walls for others====
 +
 +Sometimes you might have full survey data and drawings for some parts of a cave, while other parts might have only centreline data. It is possible to combine these in the same PDF output, using a map consisting of other maps, and other surveys:
 +
 +  map allcave
 +    subsection_map@subsection #the part with walls drawn
 +    othersubsection_survey    #the survey containing a part without wall drawings
 +  endmap
 +
 +Note that you now cannot use "symbol-hide group centreline" or any equivalents to hide the centreline in your scraps, since it will also hide these centrelines that do not have any wall drawings. Instead, you need to [[metapost#Centreline that is only visible when not in a scrap|hide it within the scraps using metapost]].
 +
 +====Making a subset of the cave take its altitude colours from a larger part of the cave====
 +
 +When rendering a map (map-endmap), with "color map-fg altitude" enabled, the default automatic altitude colour bands take their highest and lowest values from the highest and lowest survey stations for the parts of the survey that are used in the rendering. It takes all the survey stations within the "cave" (ie. not in a "flags surface" section), from whichever surveys and subsurveys have some of their parts included in the map, and finds the highest and lowest station. This happens even if the highest and lowest stations within those surveys are not even rendered because they are not included in a scrap.
 +
 +When you want to render a subset of that cave, such as a map showing only the entrance series of a cave, you might want to have the colours match the colours that were used in the overall map, so that the parts of the cave are recognisable. One way is to use an [[examples#colour_palette_scales_-_lookups|altitude lookup]].
 +
 +Another approach, which allows Therion to continue using automatic altitude colours, is to [[#Showing centreline for parts of a cave, and passage walls for others|include the highest and lowest surveys/subsurveys in your map]], and then use symbol-hide to hide those surveys. If you don't know which part of the cave will be the highest or lowest, just include all of them, to be on the safe side.
 +
 +  map foo
 +    subsection_map@subsection #the part you actually want to render
 +    othersubsection_survey    #the survey containing the highest part of the cave
 +    anothersubsection_survey  #the survey containing the lowest part of the cave
 +  endmap
 +
 +Your layout would then include this:
 +
 +  color map-fg altitude
 +  symbol-hide group centreline
 +
 +By hiding the centreline, you cause the unwanted surveys not to render at all, so the output acts like they were never included (it is cropped accordingly to show only the rendered part).
 +
 +===Including some centreline data===
 +
 +If you need to include a centreline-only section of the cave in your rendering, then you cannot use "symbol-hide group centreline". However, the same basic approach for getting the correct vertical range works, but it is a little more convoluted. Create a scrap in the highest and lowest parts of the cave. Those scraps should contain only a single station point. It doesn't have to be the highest or lowest station, since simply including any station causes all of them within that survey to be considered for the highest and lowest points. Give that station the "-visibility off" option:
 +
 +  scrap emptySP -projection plan -scale [1 10 1 10 0.0 0.0 10 10 m]
 +    point 1 1 station -name 2 -visibility off
 +  endscrap
 +
 +Include that scrap instead of including the survey itself. You will then also need to [[metapost#Centreline that is only visible when not in a scrap|use MetaPost to hide the tiny bit of centreline]] that Therion will try to show at that hidden station. Unfortunately, Therion will still leave the space for that centreline even though you asked it not to draw anything, so it will not crop the survey to the appropriate size. To solve this, you need to include the scrap within a map:
 +
 +  map othersubsection_one_station_map
 +    emptySP
 +  endmap
 +
 +Then include that map with an offset, pushing it into the normally visible area of the survey (the same position as the passages that you want to show). This seems convoluted and takes a little time to set up perfectly, but it works.
 +
 +  map foo
 +    subsection_map@subsection #the part you actually want to render
 +    centreline_only_survey #the survey that contains only centreline data without any passage drawings
 +    othersubsection_one_station_map@othersubsection [123 456 m] none #the survey containing the highest part of the cave
 +    anothersubsection_one_station_map@anothersubsection [-23 12 m] none #the survey containing the lowest part of the cave
 +  endmap
  
 =====Map Layout===== =====Map Layout=====
 +
 +====How to make map outputs match ISO paper size proportions====
 +from Chris Hayes
 +
 +ISO paper sizes have an edge length ratio, H:W, of √2:1, or vise versa. However when exporting maps to pdf, Therion makes the pdf exactly match the bounds of the cave, plus any images or legend elements that we might include with the layout.  This does not typically match an ISO paper size, or the proportions thereof.
 +
 +
 +If we want our exported map output to scale nicely to print to a standard paper size (e.g. A4, A3, A1) then we need to cunningly include a map-header and or a map-image element to nudge the size of the pdf 'paper'.
 +
 +
 +  * Compile a map with ''map-header 0 100 nw'' and ''map-header 100 0 se'' to get the dimensions, H and W of the pdf, then modify the map-header specification and compile again.
 +
 +  * For portrait outputs;  add / remove ''delta H = 50*[√(2)*W/H -1]'' to the y positions
 +  * For landscape outputs; add / remove ''delta W = 50*[√(2)*H/W -1]'' to the x positions
 +
 +
 +  # Example for a portrait output, with modified y positions
 +  map-header 0 109.79986718266315 nw               #place map header in top left corner
 +  map-image 100 -9.79986718266315 se Club_Logo.png #place an image such as club logo in bottom right corner
 +
 +The output will probably not match an ISO paper size that you have in your printer, but it will be of the correct proportion to be scaled to fit thatISO paper size.
  
 ====Map-image and custom legendbox==== ====Map-image and custom legendbox====
Line 303: Line 429:
  
 {{:multilingual_legend.png|}} {{:multilingual_legend.png|}}
 +
 +==== Hiding particular symbols from legend ====
 +Sometimes you might want to hide just one particular symbol from the legend. \\
 +This is as simple as setting the legend text for the symbol to an empty string, "" \\
 +This is done within the thconfig file.
 +eg
 +  text en "line border:visible" ""
 +  text en "line border:temporary" ""
 +  text en "line border:presumed" ""
 +  
 +With this example, none of these borders will appear in the legend, even if these lines are used in the drawing.
 +  
 +====Drawing a symbol on the legend which is not used on the map====
 +
 +Therion allows you to embed one PDF (eg. an elevation survey) in another PDF (eg. a plan survey), so that two views of the cave can be displayed together. When doing this, you normally only want one copy of the legend, so you would disable the legend on one of them. The survey being embedded may use symbols that are not used on the main survey, and those symbols would not be shown on the main legend.
 +
 +To fix this, use the same symbol somewhere on the main survey. Place it outside of the cave outline, so it is not within a passage. If it has "outline out" by default (such as a wall), set "-outline none". If it has "clip off" by default (most point symbols, some line symbols such as water-flow and label), set "-clip on".
 +
 +The symbol will not be visible on the main survey, but it will be in the main survey's legend. A nice and simple solution.
 +
 +Note that it is not possible to use this approach with symbols that display differently in plan and elevation view (eg. handrails), and there does not appear to be an easy solution to that. The only alternative would be to export a custom PDF survey that uses only that symbol, a box line around it, a text label to one side. Try to make it look like a legend item. Embed it into the main survey just below the legend. This is an ugly hack.
 +
 =====Atlas Layout Parameter Calculator===== =====Atlas Layout Parameter Calculator=====
  
  • tips.1525066953.txt.gz
  • Last modified: 6 years ago
  • by brucemutton