Hi Martin - I tried a few more things based on your suggestions. The first thing I had to learn was how to get the Survey Structure and Map Structure boxes to populate. The secret is to run the therion compiler from inside xtherion. I have been running it straight from the command line. Since Big Cavern Ranch has no drawings, I did not see any reason to bother with xtherion.
The attached file "selection_002.jpg" shows the survey and map structure boxes. These both look reasonably sane to me. I have attached the thconfig and .th file that were used to generate this. I ran this also with a map defined in the .th file. The result was another item in Map Structure under "plan which was the name of the map I defined. In that map were all of the pieces that are also present the other levels under "plan". The thconfig file has a line "select AllieMainPlan". I changed that to "select AllieMainPlan@all" and recompiled. No difference. The resulting map has all four caves and no offsets. The map structure as reported by xtherion did not change. -- Bill Gee On Thursday, November 14, 2019 8:33:22 AM CST Martin Sluka via Therion wrote: > > > 14. 11. 2019 v 14:38, Bill Gee <b...@campercaver.net>: > > > > I am shooting blindly in the dark here. What is the hierarchy of > > namespaces? Do surveys contain maps, or do maps contain surveys? Can maps > > contain maps? Can surveys contain surveys? Can a map contain a survey > > which in turn contains a map? > > Any survey-endsurvey structure is a name space. > > Maps structure is independent from structure of surveys but it allways belong > to a name space of enclosing survey-endsurvey. > > So in your file AllieSpringCave.th <http://alliespringcave.th/> there is name > space AllieSpringCave, but map AllieMainPlan is outside it. After you input > the file AllieSpringCave.th <http://alliespringcave.th/> into your file > BigCavernRanch.th <http://bigcavernranch.th/> inside name space all, it > become part of "name space all". > > > > > If surveys can contain maps, and maps can contain surveys, then how do you > > know what the top of the namespace is? > > Name space is each structure survey-endsurvey. > > > Using Allie Spring Cave as an example, it looks to me like the top of the > > name space is a map called AllieMainPlan. > > This map AllieMainPlan is outside the name space "survey > AllieSpringCave-endsurvey". It is reason you should call all subsidiary maps > from name space AllieSpringCave by @AllieSpringCave. > > > This map contains seven subsidiary maps and is defined outside of a > > survey/endsurvey block. But all of those subsidiary maps are defined > > inside a survey/endsurvey block. So does AllieMainPlan contain the survey > > at the second level, and the survey contains the subsidiary maps at the > > third level? If true, then why does it not show up that way in xtherion? > > Any command input is only copy/paste piece of plaint text. So if you input > ../AllieSpringCaveSurvey/AllieSpringCave.th <http://alliespringcave.th/> into > name space "survey all-endsurvey“, map AllieMainPlan become object in this > name space and name space "survey AllieSpringCave-endsurvey“ become enclosed > name space. > > > Martin - In a different email you mentioned that MainPassages is not part > > of AllieSpringCave. I don't understand that. AllieSpringCave is the name > > of a survey/endsurvey block, and inside that block are seven map/endmap > > blocks. One of those map blocks is MainPassages. It seems to me that the > > survey/endsurvey block contains the map/endmap blocks and therefore the > > names they define should be part of the survey namespace. > > > I was probably totaly wrong. Map AllieMainPlan is not part of name space > "survey AllieSpringCave-endsurvey" > > What will Therion produce from your original files if you in thconfig select > only „select AllieMainPlan@all“? > > Or may you try to add that select command by doubleclick on map AllieMainPlan > in structure of maps in right side panel? > > May you publish screenshot of that rightside panel with structure of maps, > please? > > Martin > > > >
encoding utf-8 # Bring in subsidiary files survey TestSurvey -title "Big Cavern Ranch" # Name the input caves input ../AllieSpringCaveSurvey/AllieSpringCave.th input ../MillCreekCaveSurvey/MillCreekCave.th input ../ShiftyRockPit/ShiftyRockPit.th input ../CascadeCaverns/CascadeCaverns.th equate AA41a@ShiftyRockPit DR23@AllieSpringCave equate AA51@ShiftyRockPit CC7@AllieSpringCave endsurvey
encoding utf-8 source BigCavernRanch.th input ../TherionMasterFiles/CustomSymbolsCode.txt select AllieMainPlan # This layout is for the main 2D map, all on one page layout basics language en_US units imperial scale-bar 100 feet page-numbers on north true rotate 0 symbol-color group centerline [80 20 0] symbol-color area water [0 0 100] map-comment "The Caves of Big Cavern Ranch, Pulaski County, Missouri" statistics explo all legend on map-header 3 65 w symbol-set UIS # Section for PDF properties doc-author "Bill Gee" doc-title "The Caves of Big Cavern Ranch" doc-subject "The Caves of Big Cavern Ranch" # Section for map photos # Bring in the custom symbols copy CustomSymbols # Reassign names symbol-assign point gradient AMER symbol-assign point stalagmite AMER symbol-assign point stalactite AMER symbol-assign point pillar AMER symbol-assign point popcorn AMER # Set point height symbols to be enclosed in boxes code metapost p_label_mode_height:=6; endcode endlayout # #################################### # Main map layout, no special colorizing. layout mainmapnocolor copy basics symbol-show group centerline debug station-names scale 1 200 color map-fg [100 86 66] # Change the size of the legend code metapost tmpscale=1.8; def draw_legend_box = % Next line controls size of symbol in each symbol table box currentpicture := currentpicture scaled tmpscale; % Next line controls size of symbol table box background clip currentpicture to unitsquare inscale xscaled tmpscale yscaled tmpscale; drawoptions(); pickup PenB; % I think the next line controls the size of each symbol table box draw unitsquare inscale xscaled tmpscale yscaled tmpscale; enddef; %clear the background of the larger legend boxes def clean_legend_box = unfill unitsquare inscale xscaled tmpscale yscaled tmpscale; enddef; %change the value of inscale to fill the legend boxes def inscale = xscaled (legend_scale*tmpscale) yscaled (0.618*legend_scale*tmpscale) enddef; endcode code tex-map \def\maplayout{ \legendbox{3}{65}{W}{ \def\txtsize{40} % Define the default text size \legendwidth=50 cm \legendtextsectionsize={\size[\txtsize]} \legendtextsize={\size[\txtsize]} \legendtextheadersize={\size[80]} \hsize=\legendwidth \the\legendcontent={\size[\txtsize]} \the\legendtextsize\ Map generated at \the\time \the\currentdate\medskip \the\legendtextsize\ Therion version \the\thversion } } endcode #end of TeX code to change legend size endlayout # ############################ # Main map layout with coloring based on elevation layout mainmapwithcolor copy basics symbol-show group centerline debug station-names scale 1 200 color map-fg altitude endlayout # ############################## # Main map scaled for printing layout mainmapprint copy basics scale 1 800 debug off symbol-hide group centerline color map-fg [100 86 66] # Change the size of the legend code metapost tmpscale=1.3; def draw_legend_box = % Next line controls size of symbol in each symbol table box currentpicture := currentpicture scaled tmpscale; % Next line controls size of symbol table box background clip currentpicture to unitsquare inscale xscaled tmpscale yscaled tmpscale; drawoptions(); pickup PenB; % I think the next line controls the size of each symbol table box draw unitsquare inscale xscaled tmpscale yscaled tmpscale; enddef; %clear the background of the larger legend boxes def clean_legend_box = unfill unitsquare inscale xscaled tmpscale yscaled tmpscale; enddef; %change the value of inscale to fill the legend boxes def inscale = xscaled (legend_scale*tmpscale) yscaled (0.618*legend_scale*tmpscale) enddef; endcode code tex-map \def\maplayout{ \legendbox{3}{65}{W}{ \def\txtsize{16} % Define the default text size \legendwidth=20 cm \legendtextsectionsize={\size[\txtsize]} \legendtextsize={\size[\txtsize]} \legendtextheadersize={\size[40]} \hsize=\legendwidth \the\legendcontent={\size[\txtsize]} \the\legendtextsize\ Map generated at \the\time \the\currentdate\medskip \the\legendtextsize\ Therion version \the\thversion } } endcode #end of TeX code to change legend size endlayout # ## End of layouts # Change the legend callouts text en_US "point u:stalagmaflat_AMER" "stalagmaflat" text en_US "line u:dripline_AMER" "dripline" text en_US "point u:pendant" "pendant" text en_US "point u:stromatolite" "stromatolite" text en_US "point u:boxwork" "boxwork" text en_US "area u:pavement" "pavement" text en_US "area u:tiles" "tiled floor" # Now list all the map files to be created. # The main plan map export map -proj plan -layout mainmapnocolor -o BigCavernRanch.pdf # The main map for printing export map -proj plan -layout mainmapprint -o BigCavernRanchPrint.pdf # Main plan map with elevations colorized export map -proj plan -layout mainmapwithcolor -o BigCavernRanchColored.pdf # Create an atlas map export atlas -proj plan -layout mainmapnocolor -o BigCavernRanchAtlas.pdf # create a centerline map using XVI format export map -proj plan -fmt xvi -o BigCavernRanch.xvi # Create a 3d map for use with Loch export model -fmt loch -o BigCavernRanch.lox # Create a 3d map for use with Survex/Aven export model -fmt 3d -o BigCavernRanch.3d # Create a KML file for Google Earth export map -proj plan -fmt kml -output BigCavernRanch.kml # Create a PLT file for use in Compass export model -fmt compass -enable all -wall-source all -o BigCavernRanch.plt # Create a TXT file with basic statistics on each of the caves export cave-list -surveys on -location on -fmt txt -o BigCavernRanchCaves.txt
_______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion