101 size_d =
defined_e_or(size, 1, (mode == 0) ? size_w*6 : size_w);
102 size_h =
defined_e_or(size, 2, (mode == 0) ? size_w*7 : size_w);
105 width = (mode == 0) ? size_w : size_w;
106 depth = (mode == 0) ? size_d/6 : size_d;
107 height = (mode == 0) ? size_h/7 : size_h;
114 curvex = standy*4/25;
122 wall = (standx + standy)/12;
134 x6 = seatx + wall + space,
139 y3 = standy + offset,
147 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x6, y3], [x6, y2], [x7, y2], [x7, y1]],
148 [r/10, 0, r/5, r/5, 0, r/10, r*2/5, r*2/5],
149 [1, 0, 1, 1, 0, 1, 1, 1]
152 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x3, y3], [x4, y4], [x5, y5], [x5, y1]],
153 [r/10, 0, r/5, r*3/5, r*4/5, r, r/5, r*2/5],
154 [1, 0, 1, 1, 1, 1, 1, 1]
157 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x3, y3], [x4, y4], [x5, y5], [x5, y1]],
158 [r/10, 0, r/5, r*3/5, r, r, r/5, r*2/5],
159 [1, 0, 1, 1, 5, 1, 1, 1]
162 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x3, y3], [x3, y5], [x5, y5], [x5, y1]],
163 [r/10, 0, r/5, r*3/5, r, r, r/5, r*2/5],
164 [1, 0, 1, 1, 1, 1, 1, 1]
167 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x3, y3], [x3, y5], [x5, y5], [x5, y1]],
168 [r/10, 0, r/5, r*3/5, r, r, r/5, r*2/5],
169 [1, 0, 1, 1, 5, 1, 1, 1]
172 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x3, y3], [x3, y5], [x5, y5], [x5, y1]],
173 [r/10, 0, r/5, r*3/5, r*2, r, r/5, r*2/5],
174 [1, 0, 1, 1, 5, 1, 1, 1]
177 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x3, y3], [x5, y5], [x5, y1]],
178 [r/10, 0, r/5, r*3/5, r, r/5, r*2/5],
179 [1, 0, 1, 1, 1, 1, 1]
182 [[x1, y1], [x1, y2], [x2, y2], [x2, y3], [x6, y3], [x6, y2], [x7, y2], [x7, y1],
183 [x6, y1], [x6, y2-y3], [x2, y2-y3], [x2, y1]],
184 [r/5, 0, r/5, r/5, 0, r/5, r/5, 0, r/5,
186 [1, 0, 1, 1, 0, 1, 1, 0,
195 [ pg_fs0[1], pg_fs0[0] ],
196 [ pg_fs0[2], pg_fs0[0] ],
197 [ pg_fs0[3], pg_fs0[0] ],
198 [ pg_fs0[4], pg_fs0[0] ],
199 [ pg_fs0[5], pg_fs0[0] ],
200 [ pg_fs0[6], pg_fs0[0] ],
201 [ pg_fs0[0], pg_fs0[0] ],
202 [ pg_fs0[7], pg_fs0[7] ]
206 pg_fe =
first( pg_f );
217 linear_extrude(depth)
220 span = width + wall + space;
221 oset = seatx + wall/2 + space/2;
224 for (x = [0:
count-2])
225 translate([ span*x - span*(
count-2)/2 - oset, 0])
230 translate([ span*x - span*(
count-1)/2, (seaty+offset)/2])
231 square([width, (seaty+offset)*brace], center=true);
236 translate([ span*
count/2 - oset, 0])
function defined_e_or(v, i, d)
Returns an element from an iterable if it exists, or a default value if not.
function third(v)
Return the third element of an iterable value.
function count(mv, v, s=true, i)
Count all occurrences of a match value in an iterable value.
function second(v)
Return the second element of an iterable value.
function first(v)
Return the first element of an iterable value.
function select_ci(v, i, l=true)
Select specified element from list or return a default.
function polygon_round_eve_all_p(c, vr=0, vrm=1, vfn, w=true, cw=true)
Compute coordinates that round all of the vertices between each adjacent edges in 2D.
module enclosure_stand_rectangle(size, offset=0, brace=1/2, count=1, space=0, form=0, mode=0)
A stand maker for rectangular project boxes, housings, and enclosures.