Loading

Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Customizable OpenSCAD OpenLock Floor Tiles

by Sienna, published

Customizable OpenSCAD OpenLock Floor Tiles by Sienna Nov 28, 2016

Design Tools

OpenSCAD Photoshop

A part of these Groups

View All

Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

1466Views 1004Downloads Found in Playsets

Summary

Update 12/31/16:
All files have been replaced with 'var' (variant) files. You can add whatever variants you want to your print bed. These work much better in Slic3r than the pre-built arrays.

Currently supports the following OpenLock shapes in Customizer:
A, B, C, D, E, F, G, U, R, S, SA, SB, V

It currently has support for three textures (Cobblestone, Grass and Slate), as well as flat tiles. (These are floor only textures, and do not extend to the walls.) For any tile smaller than 4" on a side, it will psuedo randomize the texture each time you make a tile. This is an easy way to avoid a lot of the same tile in your dungeon.

All uploaded STLs are "Imperial" measurements (standard 1" OpenLock format), but you can customize through Customizer for "Metric" (25mm) tiles, such as used by other systems.

Note: The master repository for all the sources is now at Github: https://github.com/caitlynb/OpenSCAD-OpenLock

Print Settings

Rafts:

Doesn't Matter

Supports:

No

Resolution:

0.2mm

Infill:

15%


Notes:

The default STLs print with an embedded support in the OpenLock port. Just take a pair of pliers, and rotate it out once printed.

SPECIAL NOTE: If you are using the built in supports, please edit your slicer Layer Height settings so that the support is separated from the main piece. (There is only a 0.2mm gap in the default STLs, so it is easy for your slicer to miss it.) Usually, if you are printing at 0.2mm, then a first layer height of 0.25mm will accomplish this. (But its worth checking before you print many items.)

Inspiration

This thing is inspired by and compatible with the OpenLock system designed by PrintableScenery.
(However, this is a complete remake in SCAD. All the work here-in is original.)

Naming Convention

For all the files that are uploaded, they follow this naming convention:

  • OSOL: OpenSCAD OpenLock
  • E: The OpenLock Part ID
  • Imperial: Whether the part is 1" or 25mm based
  • 8: Height of the tile in mm
  • Cobble: Texture of the top surface
  • FF: See array explanation below.

For Arrays: Because these parts are randomized on generation, it is helpful to download the largest array your printer will accommodate. This way, you get the most variety in floor patterns. There are four 'array sizes':

  • None: No array, single part (and single pattern) only
  • Small: For ~4"x~4" printers
  • FF: For Makerbot clone printers
  • i3: For MK2 sized print beds.
    Note, some parts are so large that there might still only be one pattern in an array file.

More from Playsets

view more

File Name

Downloads

Size

All Apps

Customizer is the easiest way to take great 3D printable designs and make them your own. Make your OpenSCAD designs infinitely more valuable by empowering the community to customize them.

App Info Launch App
Customizer Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Very good! As an OpenSCAD programmer I have modified my copy - added part 'O', a column to allow the use of B,C,&D with OpenForge Tudor Walls, and cleaned up some of the code.
Added to bottom of basepiece:
for (x = [-unitwidthxmult/2,unitwidthxmult/2]){
translate([x, 0, 0])
rotate([90,0,0])
rotate([0,0,45])
cube([1,1,unitwidth5],center=true);
}
for (y = [-unitwidth
ymult/2,unitwidthymult/2]){
translate([0,y, 0])
rotate([0,90,0])
rotate([0,0,45])
cube([1,1,unitwidth
5],center=true);
}
and modified print_part:
module print_part(){
part_size=25;
if (Units == "Imperial") { part_size=25.4; }
if (part == "e") { part_e(part_size);
} else if (part == "a") { part_a(part_size);
} else if (part == "b") { part_b(part_size);
} else if (part == "c") { part_c(part_size);
} else if (part == "d") { part_d(part_size);
} else if (part == "f") { part_f(part_size);
} else if (part == "g") { part_g(part_size);
} else if (part == "o") { part_o(part_size);
} else if (part == "u") { part_u(part_size);
} else if (part == "r") { part_r(part_size);
} else if (part == "s") { part_s(part_size);
} else if (part == "sa") { part_sa(part_size);
} else if (part == "sb") { part_sb(part_size);
} else if (part == "v") { part_v(part_size);
} else { part_e(part_size);
}
}
added module for part o:
module part_o(unitwidth=24.4){
difference(){
union(){
difference(){
basepiece(unitwidth, 2, 2);
translate([unitwidth,unitwidth,0])
rotate([0,0,45]) cube([unitwidth2.828,unitwidth2.818,WallHeight2.1],center=true);
rotate([0,90,-45]) rotate([0,0,45])
cube([1,1,unitwidth
3],center=true);
rotate([0,0,45]) clipcut();
for (r = [90,180]){
rotate([0,0,r])
translate([0,unitwidth,0])
rotate([0,0,90])
clipcut();
}
translate([-unitwidth,-unitwidth,0])
rotate(45)
translate([unitwidth*2,0,0])
clipcut();
}

        if (Supports == "Yes"){
            for (r = [90,180]){
                rotate([0,0,r])
                    translate([0,unitwidth,0])
                    rotate([0,0,90])
                    clipsupport();
            }
            translate([-unitwidth,-unitwidth,0])
                rotate(45)
                translate([unitwidth*2,0,0])
                clipsupport();
        }
    }
    if (TileMarkers == "Yes"){
        for (x = [-1:1:1]){
            translate([x*unitwidth, 0, WallHeight])
            rotate([90,0,0])
            cylinder(h = unitwidth*3, r=0.75, $fn=8, center=true);
        }
        for (y = [-1:1:1]){
            translate([0, y*unitwidth, WallHeight])
            rotate([0,90,0])
            cylinder(h = unitwidth*3, r=0.75, $fn=8, center=true);
        }
    }
}   

}

Removed portion below TileMarkers for all parts as it is now generalized in basepiece.

Appreciate the edits, I will look over them more in detail on the weekend. Feel free to submit a pull request on Github or make a derivative design.