Skip to content

cfinke/LEGO.scad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LEGO.scad

An OpenSCAD LEGO-compatible brick generator.

Example bricks generated by LEGO.scad

This parametric brick takes the popular work of http://www.thingiverse.com/thing:5699 a couple steps further, adding easy Customizer support and support for generating wings, smooth-topped tiles, DUPLO-style bricks, sloped bricks, Technic-style holes, and more.

Depending on the resolution of your printer, you may not be able to print pieces that fit exactly with standard LEGO bricks. If you do print any of these bricks, I'd be interested to know whether they fits together with other bricks, especially if you have an SLS or SLA printer.

These bricks are not strictly identical to LEGO bricks, but they should be compatible in most every way.

See http://www.chrisfinke.com/2015/01/27/3d-printed-lego-compatible-bricks/ for more details.

Usage

The library exposes one modules: block().

block() Parameters

Parameter Values Description
width int The width of the brick in studs.
length int The length of the brick in studs. The longest dimension between length and width is automatically re-mapped to length.
height $\left[\frac{1}{3}-\infty\right]$ The height of the brick in brick height units. A height of 1 is a standard LEGO brick height; a height of 1/3 is a standard LEGO plate height; 1/2 is a standard DUPLO plate.
type brick, tile, wing, slope, curve, baseplate, round, round-tile What type of brick this should be.
brand lego, duplo Whether the brick should be LEGO-compatible or Duplo-compatible.
stud_type solid, hollow, open What stud type do you want? Hollow studs allow rods to be pushed into the stud; open studs are hollow studs without a bottom.
block_bottom_type open, closed Open bricks are the standard; closed bottom bricks can be used for stacking composite shapes.
include_wall_splines yes, no Should the brick wall include splines? Valid only for an open brick bottom type.
wall_splines_rescale float Rescale factor to resize the splines length on the walls. A value of 0.9 will print the walls splines with 90% of the standard length.
horizontal_holes yes, no Should the brick include round horizontal holes like the Technics LEGO bricks have?
vertical_axle_holes yes, no Should the brick include vertical cross-shaped axle holes?
wing_type full, left, right What type of wing? Full is suitable for the front of a plane; left/right are for the left/right of a plane.
wing_end_width int The number of studs across the end of the wing. If width is odd, this needs to be odd, and the same for even.
wing_base_length int The length of the rectangular portion of the wing, in studs.
slope_stud_rows int How many rows of studs should be left before the slope?
slope_end_height int How much vertical height should be left at the end of the slope?
curve_stud_rows int How many rows of studs should be left before the curve?
curve_type concave, convex Should the curve be convex or concave?
curve_end_height int How much vertical height should be left at the end of the curve?
roadway_width int If you want a roadway, how wide should it be (in studs)?
roadway_length int How long should the roadway be?
roadway_x int Where should the roadway start (x-value)?
roadway_y int Where should the roadway start (y-value)?
roadway_invert true, false Should the road be inverted? Useful for minifigure display with one row of studs on the middle.
stud_matrix_string string A single string representing rows of stud positions. See comments in the source file for how this works.
stud_matrix_columns int How many columns per row in the stud matrix string? Not directly related to the size of the baseplate.
stud_matrix_invert true, false Should the stud matrix be inverted? Asterisk for studs to be removed.
stud_matrix_swapxy true, false Overall drawing has the larger dimension horizontal. Use this to quickly swap the X and Y understanding of the stud matrix.
stud_notches yes, no Should the bottom brick edges be notched to accept studs below? This only makes sense for non-rectangular bricks, like wings or round bricks.
round_radius int If the brick is type=round, what should the corner radius be, in studs? The default makes for a circular brick.
dual_sided yes, no Should the brick have studs on both the top and bottom?
dual_bottom yes, no Instead of both sides having studs, both sides can have no studs.
reinforcement yes, no Should extra reinforcement be included to make printing on an FDM printer easier? Ignored for tiles, since they can be printed upside-down and don't need the reinforcement. Recommended for brick heights less than 1 or for Duplo bricks.
stud_rescale float If your printer prints the bricks correctly except for the stud diameter, use this variable to resize just the studs for your printer. A value of 1.05 will print the studs 105% wider than standard.
stud_top_roundness float If you want stud tops to be rounded over, specify a value between 0 and 1, where 0 is a cylindrical stud and 1 is a hemispherical stud.
with_posts true, false Whether posts should be generated underneath bricks. true by default.
scale float When scaling bricks up, we want the tolerances to remain static values. This allows for scaling the brick sizes without affecting tolerances.

Examples

Part 1126

use <LEGO.scad>;

block(
    width=1,
    length=2,
	type="round-tile",
	height=1/3
);

Part 1126

Part 1751

use <LEGO.scad>;

block(
    width=4,
    length=4,
    height=1/3,
    type="tile"
);

Part 1751

Part 2291

use <LEGO.scad>;

block(
    width=2,
    length=10,
	brand="duplo",
	stud_type="hollow"
);

Part 2291

Part 2300

use <LEGO.scad>;

block(
    width=2,
    length=6,
	brand="duplo",
	stud_type="hollow"
);

Part 2300

Part 2301

use <LEGO.scad>;

block(
    width=2,
    length=3,
	height=2,
	brand="duplo",
	type="curve",
	stud_type="hollow",
	curve_type="convex"
);

Part 2301

Part 2302

use <LEGO.scad>;

block(
    width=2,
    length=3,
	brand="duplo",
	type="curve",
	stud_type="hollow",
	curve_stud_rows=2
);

Part 2302

Part 2419

use <LEGO.scad>;

block(
    width=6,
    length=3,
    height=1/3,
    type="wing",
    wing_type="full",
    wing_end_width=1,
    stud_notches=true
);

Part 2419

Part 2431

use <LEGO.scad>;

block(
    width=1,
    length=4,
    height=1/3,
    type="tile"
);

Part 2431

Part 2445

use <LEGO.scad>;

block(
    width=2,
    length=12,
    height=1/3
);

Part 2445

Part 2450

use <LEGO.scad>;

block(
    width=3,
    length=3,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_end_width=1,
    stud_notches=true
);

Part 2450

Part 2453

use <LEGO.scad>;

block(
    width=1,
    length=1,
    height=5,
    stud_type="hollow"
);

Part 2453

Part 2454

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=5,
    stud_type="hollow"
);

Part 2454

Part 2456

use <LEGO.scad>;

block(
    width=2,
    length=6
);

Part 2456

Part 2465

use <LEGO.scad>;

block(
    width=1,
    length=16
);

Part 2465

Part 3001

use <LEGO.scad>;

block(
    width=2,
    length=4
);

Part 3001

Part 3002

use <LEGO.scad>;

block(
    width=2,
    length=3
);

Part 3002

Part 3003

use <LEGO.scad>;

block(
    width=2,
    length=2
);

Part 3003

Part 3004

use <LEGO.scad>;

block(
    width=1,
    length=2
);

Part 3004

Part 3005

use <LEGO.scad>;

block(
    width=1,
    length=1
);

Part 3005

Part 3006

use <LEGO.scad>;

block(
    width=2,
    length=10
);

Part 3006

Part 3007

use <LEGO.scad>;

block(
    width=2,
    length=8
);

Part 3007

Part 3008

use <LEGO.scad>;

block(
    width=1,
    length=8
);

Part 3008

Part 3009

use <LEGO.scad>;

block(
    width=1,
    length=6
);

Part 3009

Part 3010

use <LEGO.scad>;

block(
    width=1,
    length=4
);

Part 3010

Part 3011

use <LEGO.scad>;

block(
    width=2,
    length=4,
	brand="duplo",
	stud_type="hollow"
);

Part 3011

Part 3020

use <LEGO.scad>;

block(
    width=2,
    length=4,
    height=1/3
);

Part 3020

Part 3021

use <LEGO.scad>;

block(
    width=2,
    length=3,
    height=1/3
);

Part 3021

Part 3022

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=1/3
);

Part 3022

Part 3023

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=1/3
);

Part 3023

Part 3024

use <LEGO.scad>;

block(
    width=1,
    length=1,
    height=1/3
);

Part 3024

Part 3027

use <LEGO.scad>;

block(
    width=6,
    length=16,
    height=1/3
);

Part 3027

Part 3028

use <LEGO.scad>;

block(
    width=6,
    length=12,
    height=1/3
);

Part 3028

Part 3029

use <LEGO.scad>;

block(
    width=4,
    length=12,
    height=1/3
);

Part 3029

Part 3030

use <LEGO.scad>;

block(
    width=4,
    length=10,
    height=1/3
);

Part 3030

Part 3031

use <LEGO.scad>;

block(
    width=4,
    length=4,
    height=1/3
);

Part 3031

Part 3032

use <LEGO.scad>;

block(
    width=4,
    length=6,
    height=1/3
);

Part 3032

Part 3033

use <LEGO.scad>;

block(
    width=6,
    length=10,
    height=1/3
);

Part 3033

Part 3034

use <LEGO.scad>;

block(
    width=2,
    length=8,
    height=1/3
);

Part 3034

Part 3035

use <LEGO.scad>;

block(
    width=4,
    length=8,
    height=1/3
);

Part 3035

Part 3036

use <LEGO.scad>;

block(
    width=6,
    length=8,
    height=1/3
);

Part 3036

Part 3037

use <LEGO.scad>;

block(
    width=4,
    length=2,
    type="slope"
);

Part 3037

Part 3038

use <LEGO.scad>;

block(
    width=3,
    length=2,
    type="slope"
);

Part 3038

Part 3039

use <LEGO.scad>;

block(
    width=2,
    length=2,
    type="slope"
);

Part 3039

Part 3040

use <LEGO.scad>;

block(
    width=1,
    length=2,
    type="slope"
);

Part 3040

Part 3062

use <LEGO.scad>;

block(
    width=1,
    length=1,
	type="round",
	stud_type="hollow"
);

Part 3062

Part 3068

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=1/3,
    type="tile"
);

Part 3068

Part 3069

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=1/3,
    type="tile"
);

Part 3069

Part 3070

use <LEGO.scad>;

block(
    width=1,
    length=1,
    height=1/3,
    type="tile"
);

Part 3070

Part 3254

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=2
);

Part 3254

Part 3297

use <LEGO.scad>;

block(
    width=4,
    length=3,
    type="slope"
);

Part 3297

Part 3298

use <LEGO.scad>;

block(
    width=2,
    length=3,
    type="slope"
);

Part 3298

Part 3437

use <LEGO.scad>;

block(
    width=2,
    length=2,
	brand="duplo",
	stud_type="hollow"
);

Part 3437

Part 3456

use <LEGO.scad>;

block(
    width=6,
    length=14,
    height=1/3
);

Part 3456

Part 3460

use <LEGO.scad>;

block(
    width=1,
    length=8,
    height=1/3
);

Part 3460

Part 3544

use <LEGO.scad>;

block(
    width=3,
    length=8,
    height=1/3,
    type="wing",
    wing_type="left",
    stud_notches=true,
	wing_base_length=1,
	wing_end_width=1
);

Part 3544

Part 3545

use <LEGO.scad>;

block(
    width=3,
    length=8,
    height=1/3,
    type="wing",
    wing_type="right",
    stud_notches=true,
	wing_base_length=1,
	wing_end_width=1
);

Part 3545

Part 3622

use <LEGO.scad>;

block(
    width=1,
    length=3
);

Part 3622

Part 3623

use <LEGO.scad>;

block(
    width=1,
    length=3,
    height=1/3
);

Part 3623

Part 3666

use <LEGO.scad>;

block(
    width=1,
    length=6,
    height=1/3
);

Part 3666

Part 3678

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=2,
    type="slope"
);

Part 3678

Part 3710

use <LEGO.scad>;

block(
    width=1,
    length=4,
    height=1/3
);

Part 3710

Part 3766

use <LEGO.scad>;

block(
    width=4,
    length=6,
	type="round",
	height=1/3,
	stud_notches=true
);

Part 3766

Part 3795

use <LEGO.scad>;

block(
    width=2,
    length=6,
    height=1/3
);

Part 3795

Part 3811

use <LEGO.scad>;

block(
    width=32,
    length=32,
    type="baseplate"
);

Part 3811

Part 3832

use <LEGO.scad>;

block(
    width=2,
    length=10,
    height=1/3
);

Part 3832

Part 3857

use <LEGO.scad>;

block(
    width=16,
    length=32,
    type="baseplate"
);

Part 3857

Part 3958

use <LEGO.scad>;

block(
    width=6,
    length=6,
    height=1/3
);

Part 3958

Part 4032

use <LEGO.scad>;

block(
    width=2,
    length=2,
	type="round",
	height=1/3,
	vertical_axle_holes=true,
	stud_notches=true
);

Part 4032

Part 4161

use <LEGO.scad>;

block(
    width=3,
    length=3,
    type="slope"
);

Part 4161

Part 4162

use <LEGO.scad>;

block(
    width=1,
    length=8,
    height=1/3,
    type="tile"
);

Part 4162

Part 4186

use <LEGO.scad>;

block(
    width=48,
    length=48,
    type="baseplate"
);

Part 4186

Part 4196

use <LEGO.scad>;

block(
    width=6,
    length=12,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 4196

Part 4199

use <LEGO.scad>;

block(
    width=2,
    length=8,
	brand="duplo",
	stud_type="hollow"
);

Part 4199

Part 4268

use <LEGO.scad>;

block(
    width=24,
    length=24,
	brand="duplo",
	height=1/3
);

Part 4268

Part 4282

use <LEGO.scad>;

block(
    width=2,
    length=16,
    height=1/3
);

Part 4282

Part 4286

use <LEGO.scad>;

block(
    width=1,
    length=3,
    type="slope"
);

Part 4286

Part 4445

use <LEGO.scad>;

block(
    width=8,
    length=2,
    type="slope"
);

Part 4445

Part 4460

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=3,
    type="slope",
    stud_type="hollow"
);

Part 4460

Part 4477

use <LEGO.scad>;

block(
    width=1,
    length=10,
    height=1/3
);

Part 4477

Part 4672

use <LEGO.scad>;

block(
    width=4,
    length=8,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 4672

Part 6106

use <LEGO.scad>;

block(
    width=6,
    length=6,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_end_width=2,
    wing_base_length=3,
    stud_notches=true
);

Part 6106

Part 6111

use <LEGO.scad>;

block(
    width=1,
    length=10
);

Part 6111

Part 6112

use <LEGO.scad>;

block(
    width=1,
    length=12
);

Part 6112

Part 6141

use <LEGO.scad>;

block(
    width=1,
    length=1,
	type="round",
	height=1/3
);

Part 6141

Part 6178

use <LEGO.scad>;

block(
    width=6,
    length=12,
    height=1/3,
    stud_matrix_string="************
*__________*
*__________*
*__________*
*__________*
*__________*
",
    stud_matrix_columns=12
);

Part 6178

Part 6179

use <LEGO.scad>;

block(
    width=4,
    length=4,
    height=1/3,
    stud_matrix_string="****
____
____
____",
    stud_matrix_columns=4
);

Part 6179

Part 6180

use <LEGO.scad>;

block(
    width=4,
    length=6,
    height=1/3,
    stud_matrix_string="******
*____*
*____*
*____*",
    stud_matrix_columns=6
);

Part 6180

Part 6205

use <LEGO.scad>;

block(
    width=6,
    length=16,
    height=1/3,
    stud_matrix_string="****************
*______________*
*______________*
*______________*
*______________*
*______________*
",
    stud_matrix_columns=16
);

Part 6205

Part 6474

use <LEGO.scad>;

block(
    width=2,
    length=2,
	height=1.5,
	brand="duplo",
	type="slope"
);

Part 6474

Part 6490

use <LEGO.scad>;

block(
    width=8,
    length=16,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 6490

Part 6636

use <LEGO.scad>;

block(
    width=1,
    length=6,
    height=1/3,
    type="tile"
);

Part 6636

Part 10202

use <LEGO.scad>;

block(
    width=6,
    length=6,
    height=1/3,
    type="tile"
);

Part 10202

Part 11169

use <LEGO.scad>;

block(
    width=2,
    length=2,
	height=1.5,
	brand="duplo",
	type="curve",
	stud_type="hollow",
	curve_stud_rows=2,
	curve_type="convex"
);

Part 11169

Part 11170

use <LEGO.scad>;

block(
    width=2,
    length=2,
	height=1.5,
	brand="duplo",
	type="curve",
	stud_type="hollow"
);

Part 11170

Part 11212

use <LEGO.scad>;

block(
    width=3,
    length=3,
    height=1/3
);

Part 11212

Part 11344

use <LEGO.scad>;

block(
    width=2,
    length=3,
	height=2,
	brand="duplo",
	type="curve",
	stud_type="hollow",
	curve_stud_rows=2
);

Part 11344

Part 14181

use <LEGO.scad>;

block(
    width=4,
    length=9,
    height=1/3,
    type="wing",
    wing_type="full",
    wing_base_length=4,
    wing_end_width=1,
    stud_notches=true
);

Part 14181

Part 14716

use <LEGO.scad>;

block(
    width=1,
    length=1,
    height=3
);

Part 14716

Part 14721

use <LEGO.scad>;

block(
    width=4,
    length=4,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 14721

Part 14769

use <LEGO.scad>;

block(
    width=2,
    length=2,
	type="round-tile",
	height=1/3,
	stud_notches=true
);

Part 14769

Part 22886

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=3
);

Part 22886

Part 23949

use <LEGO.scad>;

block(
    width=6,
    length=2,
    type="slope"
);

Part 23949

Part 24299

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=1/3,
    type="wing",
    wing_type="left",
    stud_notches=true
);

Part 24299

Part 24307

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=1/3,
    type="wing",
    wing_type="right",
    stud_notches=true
);

Part 24307

Part 25549

use <LEGO.scad>;

block(
    width=4,
    length=6,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 25549

Part 26603

use <LEGO.scad>;

block(
    width=2,
    length=3,
    height=1/3,
    type="tile"
);

Part 26603

Part 30145

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=3
);

Part 30145

Part 30249

use <LEGO.scad>;

block(
    width=1,
    length=6,
    height=5,
    type="slope",
    slope_stud_rows=2,
    stud_type="hollow"
);

Part 30249

Part 30355

use <LEGO.scad>;

block(
    width=6,
    length=12,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=4,
    wing_end_width=3,
    stud_notches=true
);

Part 30355

Part 30356

use <LEGO.scad>;

block(
    width=6,
    length=12,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=4,
    wing_end_width=3,
    stud_notches=true
);

Part 30356

Part 30363

use <LEGO.scad>;

block(
    width=2,
    length=4,
    type="slope"
);

Part 30363

Part 30503

use <LEGO.scad>;

block(
    width=4,
    length=4,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_end_width=1,
    stud_notches=true
);

Part 30503

Part 30504

use <LEGO.scad>;

block(
    width=8,
    length=8,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_end_width=1,
    stud_notches=true
);

Part 30504

Part 31110

use <LEGO.scad>;

block(
    width=2,
    length=2,
	brand="duplo",
	stud_type="hollow",
	height=2
);

Part 31110

Part 33243

use <LEGO.scad>;

block(
    width=1,
    length=3,
	type="curve",
	height=2,
	stud_type="hollow"
);

Part 33243

Part 33909

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=1/3,
    stud_matrix_string="**",
    stud_matrix_columns=2
);

Part 33909

Part 35114

use <LEGO.scad>;

block(
    width=2,
    length=3,
	brand="duplo",
	type="slope"
);

Part 35114

Part 35480

use <LEGO.scad>;

block(
    width=1,
    length=2,
	type="round",
	height=1/3,
	stud_type="hollow"
);

Part 35480

Part 40666

use <LEGO.scad>;

block(
    width=2,
    length=4,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 40666

Part 41539

use <LEGO.scad>;

block(
    width=8,
    length=8,
    height=1/3
);

Part 41539

Part 41740

use <LEGO.scad>;

block(
    width=1,
    length=4,
    height=1/3,
    stud_matrix_string="*__*",
    stud_matrix_columns=4
);

Part 41740

Part 41769

use <LEGO.scad>;

block(
    width=2,
    length=4,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=1,
    wing_end_width=2,
    stud_notches=true
);

Part 41769

Part 41770

use <LEGO.scad>;

block(
    width=2,
    length=4,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=1,
    wing_end_width=2,
    stud_notches=true
);

Part 41770

Part 42022

use <LEGO.scad>;

block(
    width=1,
    length=6,
	type="curve",
	height=2,
	curve_stud_rows=2
);

Part 42022

Part 43722

use <LEGO.scad>;

block(
    width=2,
    length=3,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 43722

Part 43723

use <LEGO.scad>;

block(
    width=2,
    length=3,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 43723

Part 44126

use <LEGO.scad>;

block(
    width=2,
    length=6,
	type="curve",
	height=2,
	curve_stud_rows=2
);

Part 44126

Part 44524

use <LEGO.scad>;

block(
    width=2,
    length=8,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 44524

Part 47397

use <LEGO.scad>;

block(
    width=3,
    length=12,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=1,
    wing_end_width=1,
    stud_notches=true
);

Part 47397

Part 47398

use <LEGO.scad>;

block(
    width=3,
    length=12,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=1,
    wing_end_width=1,
    stud_notches=true
);

Part 47398

Part 48205

use <LEGO.scad>;

block(
    width=4,
    length=6,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 48205

Part 48208

use <LEGO.scad>;

block(
    width=4,
    length=6,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 48208

Part 49311

use <LEGO.scad>;

block(
    width=1,
    length=4,
    height=3
);

Part 49311

Part 49570

use <LEGO.scad>;

block(
    width=2,
    length=4,
	height=3,
	brand="duplo",
	type="slope"
);

Part 49570

Part 49618

use <LEGO.scad>;

block(
    width=1,
    length=8,
    height=3,
    type="slope"
);

Part 49618

Part 50303

use <LEGO.scad>;

block(
    width=6,
    length=7,
    height=1/3,
    type="wing",
    wing_type="full",
    wing_base_length=3,
    wing_end_width=2,
    stud_notches=true
);

Part 50303

Part 50304

use <LEGO.scad>;

block(
    width=3,
    length=8,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=3,
    wing_end_width=1,
    stud_notches=true
);

Part 50304

Part 50305

use <LEGO.scad>;

block(
    width=3,
    length=8,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=3,
    wing_end_width=1,
    stud_notches=true
);

Part 50305

Part 51262

use <LEGO.scad>;

block(
    width=8,
    length=8,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 51262

Part 51739

use <LEGO.scad>;

block(
    width=4,
    length=2,
    height=1/3,
    type="wing",
    wing_type="full",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 51739

Part 54200

use <LEGO.scad>;

block(
    width=1,
    length=1,
    height=2/3,
    type="slope"
);

Part 54200

Part 54383

use <LEGO.scad>;

block(
    width=3,
    length=6,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 54383

Part 54384

use <LEGO.scad>;

block(
    width=3,
    length=6,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=0,
    wing_end_width=1,
    stud_notches=true
);

Part 54384

Part 60477

use <LEGO.scad>;

block(
    width=1,
    length=4,
    type="slope"
);

Part 60477

Part 60479

use <LEGO.scad>;

block(
    width=1,
    length=12,
    height=1/3
);

Part 60479

Part 60481

use <LEGO.scad>;

block(
    width=1,
    length=2,
    height=2,
    type="slope"
);

Part 60481

Part 63864

use <LEGO.scad>;

block(
    width=1,
    length=3,
    height=1/3,
    type="tile"
);

Part 63864

Part 63871

use <LEGO.scad>;

block(
    width=2,
    length=3,
	height=2,
	brand="duplo",
	type="slope"
);

Part 63871

Part 65140

use <LEGO.scad>;

block(
    width=8,
    length=8,
	type="round",
	height=1/3,
	stud_notches=true,
	round_radius=2
);

Part 65140

Part 65474

use <LEGO.scad>;

block(
    width=6,
    length=8,
	type="round-tile",
	height=1/3,
	stud_notches=true
);

Part 65474

Part 65734

use <LEGO.scad>;

block(
    width=1,
    length=4,
	type="curve",
	height=2+(2/3)
);

Part 65734

Part 66857

use <LEGO.scad>;

block(
    width=2,
    length=4,
	type="round-tile",
	height=1/3,
	stud_notches=true
);

Part 66857

Part 67095

use <LEGO.scad>;

block(
    width=3,
    length=3,
	type="round-tile",
	height=1/3,
	stud_notches=true
);

Part 67095

Part 68869

use <LEGO.scad>;

block(
    width=4,
    length=4,
	type="round-tile",
	height=2/3,
	stud_notches=true,
	round_radius=1
);

Part 68869

Part 69729

use <LEGO.scad>;

block(
    width=2,
    length=6,
    height=1/3,
    type="tile"
);

Part 69729

Part 70676

use <LEGO.scad>;

block(
    width=2,
    length=2,
	height=2,
	brand="duplo",
	type="slope"
);

Part 70676

Part 76371

use <LEGO.scad>;

block(
    width=2,
    length=1,
	brand="duplo",
	stud_type="hollow",
	height=2
);

Part 76371

Part 77850

use <LEGO.scad>;

block(
    width=1,
    length=3,
	type="round",
	height=1/3,
	stud_type="hollow"
);

Part 77850

Part 78329

use <LEGO.scad>;

block(
    width=1,
    length=5,
    height=1/3
);

Part 78329

Part 78443

use <LEGO.scad>;

block(
    width=2,
    length=6,
    height=1/3,
    type="wing",
    wing_type="left",
    wing_base_length=1,
    wing_end_width=2,
    stud_notches=true
);

Part 78443

Part 78444

use <LEGO.scad>;

block(
    width=2,
    length=6,
    height=1/3,
    type="wing",
    wing_type="right",
    wing_base_length=1,
    wing_end_width=2,
    stud_notches=true
);

Part 78444

Part 85861

use <LEGO.scad>;

block(
    width=1,
    length=1,
	type="round",
	height=1/3,
	stud_type="hollow"
);

Part 85861

Part 85984

use <LEGO.scad>;

block(
    width=2,
    length=1,
    height=2/3,
    type="slope"
);

Part 85984

Part 86996

use <LEGO.scad>;

block(
    width=1,
    length=1,
    height=2/3,
    stud_type="hollow"
);

Part 86996

Part 87074

use <LEGO.scad>;

block(
    width=2,
    length=3,
	brand="duplo",
	stud_type="hollow"
);

Part 87074

Part 87079

use <LEGO.scad>;

block(
    width=2,
    length=4,
    height=1/3,
    type="tile"
);

Part 87079

Part 88646

use <LEGO.scad>;

block(
    width=3,
    length=4,
    height=1/3,
    stud_matrix_string="____****____",
    stud_matrix_columns=4
);

Part 88646

Part 90498

use <LEGO.scad>;

block(
    width=8,
    length=16,
    height=1/3,
    type="tile"
);

Part 90498

Part 91405

use <LEGO.scad>;

block(
    width=16,
    length=16,
    height=1/3
);

Part 91405

Part 91988

use <LEGO.scad>;

block(
    width=2,
    length=14,
    height=1/3
);

Part 91988

Part 92438

use <LEGO.scad>;

block(
    width=8,
    length=16,
    height=1/3
);

Part 92438

Part 98138

use <LEGO.scad>;

block(
    width=1,
    length=1,
	type="round-tile",
	height=1/3
);

Part 98138

Part 98222

use <LEGO.scad>;

block(
    width=4,
    length=4,
	brand="duplo",
	type="round",
	height=1/2,
	stud_notches=true,
	stud_type="hollow"
);

Part 98222

Part 98225

use <LEGO.scad>;

block(
    width=2,
    length=2,
	brand="duplo",
	type="round",
	height=2,
	stud_notches=true,
	stud_type="hollow"
);

Part 98225

Part 98233

use <LEGO.scad>;

block(
    width=2,
    length=6,
	brand="duplo",
	stud_type="hollow",
	height=1/2
);

Part 98233

Part 98560

use <LEGO.scad>;

block(
    width=2,
    length=2,
    height=3,
    type="slope"
);

Part 98560

About

An OpenSCAD LEGO-compatible brick generator.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published