Joint adapter library for wooden train tracks
by Simone Rossetto · via Printables
| Format | STL |
| Category | Mechanical |
| License | CC BY-NC |
| Triangles | 19.4k |
| Uploaded | Apr 14, 2024 |
⬇ 168 downloads
❤ 27 likes
👁 987 views
Description
First of all I'd like to thanks Michal Fanta for his huge work creating the Extended Set of Wooden Train Track . As many others before me highlighed in comments to Michal's set, the male joints are too loose and the female joints are too tight to easily fit Lidl/Brio/Ikea original sets. So I created this OpenSCAD library to adapt Michal's pieces. The library The library train_track_joint_adapter.scad contains two modules: change_male_joint to add a wider cylinder change_female_joint to cut a small slice before the chamfered edge I coded a default radius of 5.8 mm for male joint and a default cut of 0.8 mm for female joint but the modules have dedicated parameters to change these values. In addition you have to provide, to both modules, the x/y coordinates of the cylinder center and the axis angle of the joint (positive clockwise from north, see examples below). From version 2.1 of the library there is also the parameter bz (set by default to 0) which is the distance along z-axis of the base of the joint, it can be used for example to adapt bridges. Note 1: the added cylinder in the male part is not concentric to the original cylinder but is tangent to the outer side, this way the joint arm is reduced a bit; remember to set $fn variable to a value higher than 64 for final smooth rendering of added cylinder. Note 2: during preview step in OpenSCAD, the female joint is not actually reduced but the part that will be removed is highlighted in red; the wider male cylinder is instead highlighted in green. Note 3: I have tested this library only on Michal's set but it could work for other versions as well. Usage: see code comments inside the library file. Remixed pieces (examples) Here after the code to adapt the tracks i remixed for myself. U - mini straight track : the single male joint is 12mm towards north, so direction is 0 change_male_joint(cx=0, cy=12, direction=0) import("u_mini_straight_track.stl"); S - buffer stop : the single female joint is oriented towards north but it is 12 mm below x-axis (so cy=-12 and direction=0 ) change_female_joint(cx=0, cy=-12, direction=0) import("s_buffer_stop.stl"); L1 - curved switching track (part 1) : the female joint is oriented toward south so direction is 180 degrees while the topmost male joint is going exactly to north-east so direction is 45 degrees, the other male joint is straight to north at 159 mm from x-axis change_male_joint(67.64, 151.34, 45) change_male_joint(0, 159, 0) change_female_joint(0, 12, 180) import("l1_curved_switching_track_part1.stl"); L1 - curved switching track (part 2) : I have added a wider pivot in order to have grip on the track preventing the train to move it while passing, invalidating the switch union() { import("l1_curved_switching_track_part2.stl"); translate([0, 30, -4]) cylinder(h=8, r=(5.6/2)); } M1 - curved switching track (part 1) : starting from L1 piece from above I compute the position of the topmost female cylinder change_female_joint(67.64-12*sqrt(2), 151.34-12*sqrt(2), 45) change_female_joint(0, 159-24, 0) change_male_joint(0, -12, 180) import("m1_curved_switching_track_part1.stl"); C2 - mini straight track: two female joint aligned on the y-axis change_female_joint(0, -43, 180) change_female_joint(0, -12, 0) import("c2_mini_straight_track.stl"); T - T switch change_male_joint(98+12*2, 110, 90) change_female_joint(-98, 110, -90) change_female_joint(0, 12, 180) import("t_switch.stl"); F2 - three-way parallel switches change_female_joint(0, -135, 180) change_male_joint(40, 12, 0) change_male_joint(-40, 12, 0) change_male_joint(0, 12, 0) import("f2_three_way_parallel_switches.stl"); J - curved switching track change_female_joint(-51, 134, -45) change_female_joint(51, 134, 45) change_female_joint(0, 135, 0) change_male_joint(0, -12, 180) import("j_curved_switching_track.stl"); B2 - mini straight track change_male_joint(0, -67, 180) change_male_joint(0, 12, 0) import("b2_mini_straight_track.stl"); B2 - micro straight track for(i=[0,180]) rotate(i) translate([0,6,0]) difference() { change_male_joint(0, -67, 180) change_male_joint(0, 12, 0) import("b2_mini_straight_track.stl"); translate([-25, -80-10, -10]) cube([50,80,20]); } W2 - descending track: a bridge piece that require setting the bz value change_male_joint(0, -231.4, 0, bz=52) change_female_joint(0, -12, 0) import("w2_descending_track.stl"); I will add here other examples as soon as I need to print other pieces. If you remixed other pieces using this library, please, send the code to me and I'll add it here. Changelog 2023-02-06: first release 2023-03-10: added T, F2 and J pieces 2023-03-14: simplified J track (thanks to BMO_the_Console ) 2023-09-24: added B2 piece 2023-12-22: added B2-micro variant 2024-04-14: updated library to v2.1 (new parameter bz , many thanks to @sigerik_1851573 for having suggested the change) and added code for W2 piece License The library is licensed under GNU General Public License v3.0 The remixed track pieces follow the original Michal's license, so they are under Creative Commons BY-NC v4.0
AI Analysis: This is a mechanical part designed for wooden train tracks, specifically a joint adapter that connects two sections of track. It features a curved shape with notches and slots for proper alignment and stability. The part is made of a solid material, likely plastic or wood, and includes green mounting points for secure attachment.
Originally published on Printables