{"id":904,"date":"2010-09-05T07:30:25","date_gmt":"2010-09-05T06:30:25","guid":{"rendered":"\/blog\/?p=904"},"modified":"2010-09-05T07:30:25","modified_gmt":"2010-09-05T06:30:25","slug":"transition-curves-and-superelevated-track-created-by-the-object-bender-tool-and-cross-city-south-v2-0-progress-update","status":"publish","type":"post","link":"https:\/\/railsimroutes.net\/blog\/openbve\/transition-curves-and-superelevated-track-created-by-the-object-bender-tool-and-cross-city-south-v2-0-progress-update\/","title":{"rendered":"Transition curves and superelevated track created using the Object Bender tool, and Cross-City South v2.0 progress update"},"content":{"rendered":"<p><img decoding=\"async\" style=\"padding-right: 4px; vertical-align: middle; float: left; margin-top: 0px; margin-bottom: 0px;\" src=\"\/interface\/themes\/clarity\/icons\/rsr_icon_30.png\" alt=\"Railsimroutes Logo\" \/>I&#8217;ve been doing some more work on Cross-City South v2.0 during the past couple of weeks or so, and I&#8217;ve been making good use of <a href=\"http:\/\/odakyufan.uuuq.com\/\">odakyufan&#8217;s<\/a> new <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/index.html\">Object Bender<\/a> tool, where incidentally, the code was so well written and the functionality comprehensive enough, that Object Bender has been made into an official openBVE tool. Please see the new Object Bender section on the official openBVE homepage for more information: <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/tool_objectbender.html\">Developing for openBVE: Object Bender<\/a>.<\/p>\n<p>The output from the tool is such, that I&#8217;ve decided to replace all the curved track objects used in the Cross-City South route with new objects generated by Object Bender (from a set of &#8220;template&#8221; objects which form the intial segment in each type of track &#8211; <a href=\"http:\/\/openbve.freeforums.org\/objectbender-a-tool-for-bending-objects-t1596.html\">please see here<\/a> for an example of what I mean), and later I&#8217;ll do the same with Watford Junction to Rugby, too. I had already manually created a full range of suitable UK style track objects incorporating cant, as well as objects to be used in transition curves, however these objects had one rail lowered and the other raised in height, to suit the cant model used in older versions of openBVE (therefore enabling the wheels to be visibly touching the rails at all times in earlier versions). openBVE v1.2.7.3 features an improved superelevation model however, where one rail is raised above the other (which remains at the same level), so the existing objects were no longer so suitable.<\/p>\n<p>I had started to make some progress in manually modifying my existing objects, however Object Bender has now saved me many days of work, possibly weeks, thereby preserving my sanity and enabling me to easily generate a much more comprehensive range of superelevated track and transition curve objects to create some very nice results, even better than what I&#8217;ve shown in Watford Junction to Rugby for a long time now. The slight downside is that the generated objects have a larger filesize compared to the objects I&#8217;d entirely hand-written, however Object Bender&#8217;s command line arguments also let me automate and recreate many hundreds of track objects, from a handful of source objects, with great ease via shell scripts. This benefit is simply too good to pass up &#8211; if I decide that I want to improve or alter my depiction of track in future, all I have to do is edit the handful of template objects and I can recreate the entire library of track objects with just a double-click. An example batch file for Windows users, based on the one which I&#8217;ve written for myself, can be found below, along with a sample shell script for Linux users too.<\/p>\n<p>Here&#8217;s a selection of screenshots to demonstrate what nice results can be gained quickly, thanks to Object Bender and a little object building skill:<\/p>\n<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">\n<a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_31.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and transition curves created via the Object Bender tool\" src=\"\/images\/thumbnails\/xcs_v2_openbve_31.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_32.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and transition curves created via the Object Bender tool\" src=\"\/images\/thumbnails\/xcs_v2_openbve_32.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_33.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and transition curves created via the Object Bender tool\" src=\"\/images\/thumbnails\/xcs_v2_openbve_33.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_34.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and transition curves created via the Object Bender tool\" src=\"\/images\/thumbnails\/xcs_v2_openbve_34.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_35.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and transition curves created via the Object Bender tool\" src=\"\/images\/thumbnails\/xcs_v2_openbve_35.jpg\" alt=\"Screenshot\" \/><\/a><br \/>\nBirmingham Cross-City South v2.0 with superelevated track and transition curves, created via<br \/>\nodakyufan&#8217;s <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/index.html\">Object Bender<\/a> tool. Also note the embankment (dike) with curved cable trough<br \/>\nin the last screenshot, with the vegetation handled via Object Bender&#8217;s <tt>\/a<\/tt> command-line<br \/>\nargument (please see the <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/tool_objectbender.html\">Object Bender documention<\/a> for a tutorial).\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>One problem I have encountered during the latest Cross-City South superlevated track upgrade so far, is how to accomodate pointwork (switches) on superelevated curves. There are examples of this at Longbridge, between Northfield and Kings Norton, and just after Kings Norton, too. On Watford Junction to Rugby, I took the easy option and handled such situations by transitioning back to uncanted track on either side of points (only with the visual representation of the track &#8211; the cant applied via the .Curve command remained constant throughout the points). With Cross-City South v2.0, I&#8217;ve decided to gradually alter the height of the other tracks leading towards and away from crossovers connecting superelevated tracks instead, while also rotating the point objects around the Z-axis. This way, the crossover itself is superelevated to the same degree as the tracks being crossed between, which looks better visually, and I presume it&#8217;s also more prototypically accurate. Here&#8217;s an example between Northfield and Kings Norton, with some new custom pointwork objects I&#8217;ve been working on for this location (amongst others):<\/p>\n<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">\n<a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_36.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and crossovers\" src=\"\/images\/thumbnails\/xcs_v2_openbve_36.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_37.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and crossovers\" src=\"\/images\/thumbnails\/xcs_v2_openbve_37.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/hi-res\/xcs_v2_openbve_38.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Birmingham Cross-City South v2.0 with superelevated track and crossovers\" src=\"\/images\/thumbnails\/xcs_v2_openbve_38.jpg\" alt=\"Screenshot\" \/><\/a><br \/>\nBirmingham Cross-City South v2.0 with superelevated track and custom-built crossovers.<br \/>\nNote the clamp-lock point machines, too.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"type-1\"><\/div>\n<div style=\"margin-left: 40px; margin-right: 20px\"><strong>Note:<\/strong> For those of you familiar with the real Cross-City South, please be aware that these screenshots depict the line prior to the recent track renewals on the real-life route. I&#8217;ll work on the renewed track (plus such changes as the upgraded 70mph \/ 112km\/h sections beteween Redditch and Northfield), once I&#8217;ve sorted out a few more remaining tasks along the route, such as realigning overhead wire objects due to altered curve radii, improving the stations, and finishing the remaining scenery objects which need to be updated with new textures, 3D trees and vegetation.<\/div>\n<p>Object Bender has most definitely made route building easier and more enjoyable for me, however one problem which needed to be solved, was that when a track object is superelevated, the terminating height of the ballast shoulders on either side of the sleepers is also altered. In a route, and depending upon the design of the track objects, this can lead to gaps appearing between tracks running side-by-side, and between the ballast portion of the track objects and dikes (i.e. the embankment beneath the track):<\/p>\n<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">\n<a class=\"imglink\" href=\"\/images\/objectviewer_1.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Superelevated track an dikes created via the Object Bender tool\" src=\"\/images\/thumbnails\/objectviewer_1.jpg\" alt=\"Screenshot\" \/><\/a><br \/>\nDepending on the design of track objects, gaps can appear<br \/>\nbetween the ballast shoulder and dike, or a parallel track,<br \/>\nwhen superelevation is applied via Object Bender.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>I&#8217;ve solved this problem, by expanding the ballast shoulder in the track object to include two faces at increasing angles, such that at the maximum level of visible cant I&#8217;ll ever apply in my routes (160mm in my case), no gaps appear and the cable trough isn&#8217;t obscured, while I can continue to use only one template object for creating the full range of curved track pieces, at differing degrees of superelevation, via Object Bender. The ballast portions of the dike objects are also extended. This solution does lead to more faces being rendered, but hopefully it&#8217;s not too much of an issue, performance wise. Here&#8217;s a screenshot:<\/p>\n<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">\n<a class=\"imglink\" href=\"\/images\/objectviewer_1a.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Superelevated track an dikes created via the Object Bender tool\" src=\"\/images\/thumbnails\/objectviewer_1a.jpg\" alt=\"Screenshot\" \/><\/a><br \/>\nExtended ballast shoulders in both the track and dike objects,<br \/>\nto remove visible gaps when cant is applied via Object Bender.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">\n<p><a class=\"imglink\" href=\"\/images\/objectviewer_2.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Superelevated track an dikes created via the Object Bender tool\" src=\"\/images\/thumbnails\/objectviewer_2.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/objectviewer_2a.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Superelevated track an dikes created via the Object Bender tool\" src=\"\/images\/thumbnails\/objectviewer_2a.jpg\" alt=\"Screenshot\" \/><\/a><br \/>\n<a class=\"imglink\" href=\"\/images\/objectviewer_3.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Superelevated track an dikes created via the Object Bender tool\" src=\"\/images\/thumbnails\/objectviewer_3.jpg\" alt=\"Screenshot\" \/><\/a> <a class=\"imglink\" href=\"\/images\/objectviewer_3a.jpg\"><img decoding=\"async\" style=\"padding: 0px;\" title=\"Superelevated track an dikes created via the Object Bender tool\" src=\"\/images\/thumbnails\/objectviewer_3a.jpg\" alt=\"Screenshot\" \/><\/a><br \/>\nOn the left, are the original objects, and on the right, the new versions. Note the <a href=\"\/blog\/?p=882\">custom vertex normals<\/a><br \/>\napplied to the ballast shoulders in the last screenshot, to help remove the angled appearance<br \/>\nwhich might otherwise be visible with certain lighting parameters.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Object Bender supports some markup which can be applied to template objects before they&#8217;re processed, for example, to determine the desired texture coordinate shifting in generated segments (please see the <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/tool_objectbender.html\">Object Bender documention<\/a> on the openBVE homepage for more information &#8211; I think the tutorial is clear enough that I don&#8217;t need to explain it further). I was originally going to suggest expanding the supported markup a little, so that Object Bender could be instructed to leave the X and\/or Y coordinates of any vertex as it is in the original template object, which would for example, solve the ballast shoulder issue above in an easier way for the object creator. However, I quite like the appearance of the solution I came up with, so I don&#8217;t think such a change to Object Bender is too important, but might be nice to have, nevertheless.<\/p>\n<div class=\"type-4\"><\/div>\n<p>Lastly, for more advanced users, or beginners feeling more adventurous, here&#8217;s a sample batch file for Windows users, and a bash script for Linux users, which you can adapt and expand if you want to automatically create a range of curved objects using Object Bender&#8217;s command line interface, rather than the GUI. There is a simple example of a suitable batch file included in the <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/tool_objectbender.html\">Object Bender documention<\/a>, however rather more can be done with batch files\/shell scripts. These following example scripts use variables to reduce the amount of duplicated text that you might otherwise need to type, and they also create a logfile which you can read, which is handy if you&#8217;re generating a large number of objects, to more easily check for any errors which might have occured during a lengthy object bending batch process.<\/p>\n<p>For the Windows batch file, you need to give it a <span style=\"color: rgb(50, 215, 150);\">.bat<\/span> extension. The text highlighted in red (including the less\/greater than characters), should be replaced by any paths or filenames which are appropriate for your purposes. Where <span style=\"color: rgb(255, 60, 60);\">&lt;Your_File_To_Append&gt;<\/span> is concerned, this object file could contain fishplates for example, or overhead wires, which are appended to the object generated in the previous line (please <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/tool_objectbender.html\">see here<\/a> for more information). You can see fishplates added to my curved wooden sleeper based track objects in the above Cross-City South v2.0 screenshots &#8211; this is how they were appended to the files generated via Object Bender.<\/p>\n<div class=\"codebox\" style=\"width: 99%; margin-left: 5px\">\n<strong><span style=\"text-decoration: underline\">Sample batch file using Object Bender to automate curved object creation (Windows users):<\/span><\/strong><\/p>\n<p>@echo off<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem Set variables (paths and extension for all files)<\/span><br \/>\nset objectbender_path=<span style=\"color: rgb(255, 60, 60);\">&lt;Path_To_Folder_Containing_ObjectBender&gt;<\/span>\\<br \/>\nset exe=ObjectBender.exe<br \/>\nset obj_source=<span style=\"color: rgb(255, 60, 60);\">&lt;Path_To_Your_Source_Object_Folder&gt;<\/span>\\<br \/>\nset obj_final=<span style=\"color: rgb(255, 60, 60);\">&lt;Path_To_Your_Route_Object_Folder&gt;<\/span>\\<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem Clear the screen and ask user for confirmation<\/span><br \/>\ncls<br \/>\necho Proceed with object creation? This will overwrite any existing files.<br \/>\necho Press Ctrl+C to cancel, or any other key to proceed . . .<br \/>\npause > nul<\/p>\n<p>echo.<br \/>\necho.<br \/>\necho Processing files and creating log. Please wait . . .<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem Create a new log file with time stamp<\/span><br \/>\necho ___________________________________ > %objectbender_path%objectbender_log.txt<br \/>\necho New log [%date% at %time%] >> %objectbender_path%objectbender_log.txt<br \/>\necho. >> %objectbender_path%objectbender_log.txt<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem Use Object Bender to create finished objects from templates<\/span><\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem 500m right curve<\/span><br \/>\n%objectbender_path%%exe% %obj_source%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_Source_File&gt;<\/span> %obj_final%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_500m_Right_Track_Object&gt;<\/span> \/n=5 \/s=5 \/b=25 \/r=500 \/g=1435 \/u=80 \/v=80 >> %objectbender_path%objectbender_log.txt<br \/>\n%objectbender_path%%exe% %obj_source%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_File_To_Append&gt;<\/span> %obj_final%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_500m_Right_Track_Object&gt;<\/span> \/a \/n=1 \/s=25 \/b=25 \/r=500 \/g=1435 \/u=80 \/v=80 >> %objectbender_path%objectbender_log.txt<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem 600m right curve<\/span><br \/>\n%objectbender_path%%exe% %obj_source%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_Source_File&gt;<\/span> %obj_final%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_600m_Right_Track_Object&gt;<\/span> \/n=5 \/s=5 \/b=25 \/r=600 \/g=1435 \/u=80 \/v=80 >> %objectbender_path%objectbender_log.txt<br \/>\n%objectbender_path%%exe% %obj_source%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_File_To_Append&gt;<\/span> %obj_final%<span style=\"color: rgb(255, 60, 60);\">&lt;Your_600m_Right_Track_Object&gt;<\/span> \/a \/n=1 \/s=25 \/b=25 \/r=600 \/g=1435 \/u=80 \/v=80 >> %objectbender_path%objectbender_log.txt<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\">rem 700m right curve, etc. . .<\/span><\/p>\n<\/div>\n<div class=\"type-4\"><\/div>\n<p>Linux users can adapt the following shell script to make use of Object Bender for automating the creation of multiple files. Your script should be given a <span style=\"color: rgb(50, 215, 150);\">.sh<\/span> file extension, and be made executable (for example: <tt>chmod +x myscript.sh<\/tt>). The script can be executed from the Terminal prompt by typing, for example: <tt>.\/myscript.sh<\/tt>). Don&#8217;t forget that Object Bender requires Mono to be installed, too.<\/p>\n<div class=\"icon-indent-container\">\n<div class=\"icon-indent\" style=\"text-align: left;\">\n<img decoding=\"async\" alt=\"Screenshot\" src=\"\/interface\/themes\/clarity\/icons\/exclamation.png\" \/>\n<\/div>\n<div class=\"icon-indent-content\">\n<strong>Important note:<\/strong> Object Bender determines whether a command line argument is a pathname, or another command line argument, based upon whether or not the argument string begins with a <span style=\"color: rgb(50, 215, 150);\">&#8216;\/&#8217;<\/span> character. In Unix based operating systems, this character is the directory separator character, so if you supply a path which begins with <span style=\"color: rgb(50, 215, 150);\">&#8216;\/&#8217;<\/span> (such as <tt>\/home\/username\/etc<\/tt>), it will be interpreted as a command line argument which is other than a pathname, and the tool won&#8217;t work as expected. You can get around this by supplying relative pathnames (i.e. <tt>..\/yourfolder\/etc<\/tt>), or by using the following modified version of the tool, in which I&#8217;ve altered the program to intepret the <span style=\"color: rgb(50, 215, 150);\">&#8216;-&#8216;<\/span> character as a non-path command line argument instead (the recompiled executable is <em>temporarily<\/em> <a href=\"\/miscellaneous\/objectbender_linux.7z\">available here<\/a>, with source code modifications <a href=\"\/miscellaneous\/objectbender_source_mod.7z\">here<\/a> as well (also requires the official Object Bender <a href=\"http:\/\/openbve.trainsimcentral.co.uk\/develop\/tool_objectbender.html\">source code<\/a> from the openBVE homepage). The following script assumes the modified executable is being used:\n<\/div>\n<\/div>\n<div class=\"type-1\"><\/div>\n<div class=\"codebox\" style=\"width: 99%; margin-left: 5px\">\n<strong><span style=\"text-decoration: underline\">Sample shell script using Object Bender to automate curved object creation (Linux users):<\/span><\/strong><\/p>\n<p>#!\/bin\/bash<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># Set variables (paths and extension for all files)<\/span><br \/>\nobjectbender_path=<span style=\"color: rgb(255, 60, 60);\">&lt;Path_To_Folder_Containing_ObjectBender&gt;<\/span>\/<br \/>\nexe=ObjectBender.exe<br \/>\nobj_source=<span style=\"color: rgb(255, 60, 60);\">&lt;Path_To_Your_Source_Object_Folder&gt;<\/span><br \/>\nobj_final=<span style=\"color: rgb(255, 60, 60);\">&lt;Path_To_Your_Route_Object_Folder&gt;<\/span><\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># Clear the screen and ask user for confirmation<\/span><br \/>\nclear<br \/>\necho &quot;Proceed with object creation? This will overwrite any existing files.&quot;<br \/>\nread -s -n 1 -p &quot;Press Ctrl+C to cancel, or any other key to continue . . .&quot;<br \/>\necho<br \/>\necho<br \/>\necho &quot;Processing files and creating log. Please wait . . .&quot;<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># Create a new log file with time stamp<\/span><br \/>\necho _____________________________________ > $objectbender_path\/objectbender_log<br \/>\necho New log [$(date)] >> $objectbender_path\/objectbender_log<br \/>\necho >> $objectbender_path\/objectbender_log<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># Use Object Bender to create finished objects from templates<\/span><\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># 500m right curve<\/span><br \/>\nmono $objectbender_path\/$exe $obj_source\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_Source_File&gt;<\/span> $obj_final\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_500m_Right_Track_Object&gt;<\/span> -n=5 -s=5 -b=25 -r=500 -g=1435 -u=80 -v=80 >> $objectbender_path\/objectbender_log<br \/>\nmono $objectbender_path\/$exe $obj_source\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_File_To_Append&gt;<\/span> $obj_final\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_500m_Right_Track_Object&gt;<\/span> -a -n=1 -s=25 -b=25 -r=500 -g=1435 -u=80 -v=80 >> $objectbender_path\/objectbender_log<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># 600m right curve<\/span><br \/>\nmono $objectbender_path\/$exe $obj_source\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_Source_File&gt;<\/span> $obj_final\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_600m_Right_Track_Object&gt;<\/span> -n=5 -s=5 -b=25 -r=600 -g=1435 -u=80 -v=80 >> $objectbender_path\/objectbender_log<br \/>\nmono $objectbender_path\/$exe $obj_source\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_File_To_Append&gt;<\/span> $obj_final\/<span style=\"color: rgb(255, 60, 60);\">&lt;Your_600m_Right_Track_Object&gt;<\/span> -a -n=1 -s=25 -b=25 -r=600 -g=1435 -u=80 -v=80 >> $objectbender_path\/objectbender_log<\/p>\n<p><span style=\"color: rgb(50, 215, 150);\"># 700m right curve, etc. . .<\/span><\/p>\n<p>exit 0<\/p>\n<\/div>\n<p>If you need any help with using Object Bender or writing scripts to automate curved object creation, please feel free to ask. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been doing some more work on Cross-City South v2.0 during the past couple of weeks or so, and I&#8217;ve been making good use of odakyufan&#8217;s new Object Bender tool, where incidentally, the code was so well written and the functionality comprehensive enough, that Object Bender has been made into an official openBVE tool. Please [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[8,11,13,14,15,17,18],"class_list":["post-904","post","type-post","status-publish","format-standard","hentry","category-openbve","tag-cross-city-south","tag-openbve","tag-openbve-community","tag-operating-systems","tag-screenshots","tag-software","tag-trackwork"],"_links":{"self":[{"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/posts\/904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/comments?post=904"}],"version-history":[{"count":0,"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/posts\/904\/revisions"}],"wp:attachment":[{"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/media?parent=904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/categories?post=904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/railsimroutes.net\/blog\/wp-json\/wp\/v2\/tags?post=904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}