Merge remote-tracking branch 'origin/examples-cleanup'
1
.gitignore
vendored
|
|
@ -2,6 +2,7 @@
|
|||
*~
|
||||
*.tar*
|
||||
*.new
|
||||
out.*
|
||||
Makefile
|
||||
objects
|
||||
.gdbinit
|
||||
|
|
|
|||
36
examples/Advanced/GEB.scad
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
font = "Bank Gothic";
|
||||
|
||||
module G() offset(0.3) text("G", size=10, halign="center", valign="center", font = font);
|
||||
module E() offset(0.3) text("E", size=10, halign="center", valign="center", font = font);
|
||||
module B() offset(0.5) text("B", size=10, halign="center", valign="center", font = font);
|
||||
|
||||
$fn=64;
|
||||
|
||||
module GEB() {
|
||||
intersection() {
|
||||
linear_extrude(height = 20, convexity = 3, center=true) B();
|
||||
|
||||
rotate([90, 0, 0])
|
||||
linear_extrude(height = 20, convexity = 3, center=true) E();
|
||||
|
||||
rotate([90, 0, 90])
|
||||
linear_extrude(height = 20, convexity = 3, center=true) G();
|
||||
}
|
||||
}
|
||||
|
||||
color("Ivory") GEB();
|
||||
|
||||
color("MediumOrchid") translate([0,0,-20]) render()
|
||||
linear_extrude(1) difference() {
|
||||
square(40, center=true);
|
||||
projection() GEB();
|
||||
}
|
||||
#color("DarkMagenta") rotate([90,0,0]) translate([0,0,-20]) render() linear_extrude(1) difference() {
|
||||
translate([0,0.5]) square([40,39], center=true);
|
||||
projection() rotate([-90,0,0]) GEB();
|
||||
}
|
||||
color("MediumSlateBlue") rotate([90,0,90]) translate([0,0,-20]) render() linear_extrude(1) difference() {
|
||||
translate([-0.5,0.5]) square([39,39], center=true);
|
||||
projection() rotate([0,-90,-90]) GEB();
|
||||
}
|
||||
|
||||
89
examples/Advanced/animation.scad
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
// animation.scad - Demo of animation usage
|
||||
|
||||
// The animation funtionality is based simply on a variable $t
|
||||
// that is changed automatically by OpenSCAD while repeatedly
|
||||
// showing the model.
|
||||
// To activate animation, select "View->Animation" from the
|
||||
// menu and enter values into the appearing FPS and Steps input
|
||||
// fields (e.g. 5 FPS and 200 Steps for this animation).
|
||||
// This is not intended to directly produce real-time animations
|
||||
// but the image sequence can be exported to generate videos of
|
||||
// the animation.
|
||||
|
||||
// Length of the 2 arm segments, change to see the effects on
|
||||
// the arm movements.
|
||||
arm1_length = 70;
|
||||
arm2_length = 50;
|
||||
|
||||
r = 2;
|
||||
$fn = 30;
|
||||
|
||||
plate();
|
||||
pos = position($t);
|
||||
arm(pos[0], pos[1], arm1_length, arm2_length);
|
||||
|
||||
// Function describing the X/Y position that should be traced
|
||||
// by the arm over time.
|
||||
// The $t variable will be used as parameter for this function
|
||||
// so the range for t is [0..1].
|
||||
function position(t) = t < 0.5
|
||||
? [ 200 * t - 50, 30 * sin(5 * 360 * t) + 60 ]
|
||||
: [ 50 * cos(360 * (t - 0.5)), 100 * -sin(360 * (t- 0.5)) + 60 ];
|
||||
|
||||
// Inverse kinematics functions for a scara style arm
|
||||
// See http://forums.reprap.org/read.php?185,283327
|
||||
function sq(x, y) = x * x + y * y;
|
||||
function angB(x, y, l1, l2) = 180 - acos((l2 * l2 + l1 * l1 - sq(x, y)) / (2 * l1 * l2));
|
||||
function ang2(x, y, l1, l2) = 90 - acos((l2 * l2 - l1 * l1 + sq(x, y)) / (2 * l2 * sqrt(sq(x, y)))) - atan2(x, y);
|
||||
function ang1(x, y, l1, l2) = ang2(x, y, l1, l2) + angB(x, y, l1, l2);
|
||||
|
||||
// Draw an arm segment with the given color and length.
|
||||
module segment(col, l) {
|
||||
color(col) {
|
||||
hull() {
|
||||
sphere(r);
|
||||
translate([l, 0, 0]) sphere(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Draw the whole 2 segmented arm trying to reach position x/y.
|
||||
// Parameters l1 and l2 are the length of the two arm segments.
|
||||
module arm(x, y, l1, l2) {
|
||||
a1 = ang1(x, y, l1, l2);
|
||||
a2 = ang2(x, y, l1, l2);
|
||||
sphere(r = 2 * r);
|
||||
cylinder(r = 2, h = 6 * r, center = true);
|
||||
rotate([0, 0, a1]) segment("red", l1);
|
||||
translate(l1 * [cos(a1), sin(a1), 0]) {
|
||||
sphere(r = 2 * r);
|
||||
rotate([0, 0, a2]) segment("green", l2);
|
||||
}
|
||||
translate([x, y, -r/2])
|
||||
cylinder(r1 = 0, r2 = r, h = 4 * r, center = true);
|
||||
}
|
||||
|
||||
module curve() polygon([for (a = [ 0 : 0.004 : 1]) position(a)]);
|
||||
|
||||
// Draws the plate and the traced function using small black cubes.
|
||||
module plate() {
|
||||
%translate([0, 0, -3*r]) {
|
||||
translate([0,25,0]) cube([150, 150, 0.1], center = true);
|
||||
color("Black") linear_extrude(0.1) difference() {
|
||||
curve();
|
||||
offset(-1) curve();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
54
examples/Advanced/children.scad
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
// children.scad - Usage of children()
|
||||
|
||||
// The use of children() allows to write generic modules that
|
||||
// modify child modules regardless of how the child geometry
|
||||
// is created.
|
||||
|
||||
color("red")
|
||||
make_ring_of(radius = 15, count = 6)
|
||||
cube(8, center = true);
|
||||
|
||||
color("green")
|
||||
make_ring_of(radius = 30, count = 12)
|
||||
difference() {
|
||||
sphere(5);
|
||||
cylinder(r = 2, h = 12, center = true);
|
||||
}
|
||||
|
||||
color("cyan")
|
||||
make_ring_of(radius = 50, count = 4)
|
||||
something();
|
||||
|
||||
module make_ring_of(radius, count)
|
||||
{
|
||||
for (a = [0 : count - 1]) {
|
||||
angle = a * 360 / count;
|
||||
translate(radius * [sin(angle), -cos(angle), 0])
|
||||
rotate([0, 0, angle])
|
||||
children();
|
||||
}
|
||||
}
|
||||
|
||||
module something()
|
||||
{
|
||||
cube(10, center = true);
|
||||
cylinder(r = 2, h = 12, $fn = 40);
|
||||
translate([0, 0, 12])
|
||||
rotate([90, 0, 0])
|
||||
linear_extrude(height = 2, center = true)
|
||||
text("SCAD", 8, halign = "center");
|
||||
translate([0, 0, 12])
|
||||
cube([22, 1.6, 0.4], center = true);
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
62
examples/Advanced/children_indexed.scad
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
// children_indexed.scad - Usage of indexed children()
|
||||
|
||||
// children() with a parameter allows access to a specific child
|
||||
// object with children(0) being the first one. In addition the
|
||||
// $children variable is automatically set to the number of child
|
||||
// objects.
|
||||
|
||||
color("red")
|
||||
translate([-100, -20, 0])
|
||||
align_in_grid_and_add_text();
|
||||
|
||||
color("yellow")
|
||||
translate([-50, -20, 0])
|
||||
align_in_grid_and_add_text() {
|
||||
cube(5, center = true);
|
||||
}
|
||||
|
||||
color("cyan")
|
||||
translate([0, -20, 0])
|
||||
align_in_grid_and_add_text() {
|
||||
cube(5, center = true);
|
||||
sphere(4);
|
||||
}
|
||||
|
||||
color("green")
|
||||
translate([50, -20, 0])
|
||||
align_in_grid_and_add_text() {
|
||||
cube(5, center = true);
|
||||
sphere(4);
|
||||
cylinder(r = 4, h = 5);
|
||||
}
|
||||
|
||||
|
||||
module align_in_grid_and_add_text()
|
||||
{
|
||||
if ($children == 0) {
|
||||
linear_extrude(height = 1, center = true)
|
||||
text("Nothing...", 6, halign = "center");
|
||||
} else {
|
||||
t = $children == 1 ? "one object" : str($children, " objects ");
|
||||
linear_extrude(height = 1, center = true)
|
||||
text(t, 6, halign = "center");
|
||||
|
||||
for (y = [0 : $children - 1])
|
||||
for (x = [0 : $children - 1])
|
||||
translate([15 * (x - ($children - 1) / 2), 20 * y + 40, 0])
|
||||
scale(1 + x / $children)
|
||||
children(y);
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
echo(version=version());
|
||||
|
||||
module screw(type = 2, r1 = 15, r2 = 20, n = 7, h = 100, t = 8)
|
||||
{
|
||||
linear_extrude(height = h, twist = 360*t/n, convexity = t)
|
||||
difference() {
|
||||
circle(r2);
|
||||
for (i = [0:n-1]) {
|
||||
if (type == 1) rotate(i*360/n) polygon([
|
||||
[ 2*r2, 0 ],
|
||||
[ r2, 0 ],
|
||||
[ r1*cos(180/n), r1*sin(180/n) ],
|
||||
[ r2*cos(360/n), r2*sin(360/n) ],
|
||||
[ 2*r2*cos(360/n), 2*r2*sin(360/n) ],
|
||||
]);
|
||||
if (type == 2) rotate(i*360/n) polygon([
|
||||
[ 2*r2, 0 ],
|
||||
[ r2, 0 ],
|
||||
[ r1*cos(90/n), r1*sin(90/n) ],
|
||||
[ r1*cos(180/n), r1*sin(180/n) ],
|
||||
[ r2*cos(270/n), r2*sin(270/n) ],
|
||||
[ 2*r2*cos(270/n), 2*r2*sin(270/n) ],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module nut(type = 2, r1 = 16, r2 = 21, r3 = 30, s = 6, n = 7, h = 100/5, t = 8/5)
|
||||
{
|
||||
difference() {
|
||||
cylinder($fn = s, r = r3, h = h);
|
||||
translate([ 0, 0, -h/2 ]) screw(type, r1, r2, n, h*2, t*2);
|
||||
}
|
||||
}
|
||||
|
||||
module spring(r1 = 100, r2 = 10, h = 100, hr = 12)
|
||||
{
|
||||
stepsize = 1/16;
|
||||
module segment(i1, i2) {
|
||||
alpha1 = i1 * 360*r2/hr;
|
||||
alpha2 = i2 * 360*r2/hr;
|
||||
len1 = sin(acos(i1*2-1))*r2;
|
||||
len2 = sin(acos(i2*2-1))*r2;
|
||||
if (len1 < 0.01)
|
||||
polygon([
|
||||
[ cos(alpha1)*r1, sin(alpha1)*r1 ],
|
||||
[ cos(alpha2)*(r1-len2), sin(alpha2)*(r1-len2) ],
|
||||
[ cos(alpha2)*(r1+len2), sin(alpha2)*(r1+len2) ]
|
||||
]);
|
||||
if (len2 < 0.01)
|
||||
polygon([
|
||||
[ cos(alpha1)*(r1+len1), sin(alpha1)*(r1+len1) ],
|
||||
[ cos(alpha1)*(r1-len1), sin(alpha1)*(r1-len1) ],
|
||||
[ cos(alpha2)*r1, sin(alpha2)*r1 ],
|
||||
]);
|
||||
if (len1 >= 0.01 && len2 >= 0.01)
|
||||
polygon([
|
||||
[ cos(alpha1)*(r1+len1), sin(alpha1)*(r1+len1) ],
|
||||
[ cos(alpha1)*(r1-len1), sin(alpha1)*(r1-len1) ],
|
||||
[ cos(alpha2)*(r1-len2), sin(alpha2)*(r1-len2) ],
|
||||
[ cos(alpha2)*(r1+len2), sin(alpha2)*(r1+len2) ]
|
||||
]);
|
||||
}
|
||||
linear_extrude(height = 100, twist = 180*h/hr,
|
||||
$fn = (hr/r2)/stepsize, convexity = 5) {
|
||||
for (i = [ stepsize : stepsize : 1+stepsize/2 ])
|
||||
segment(i-stepsize, min(i, 1));
|
||||
}
|
||||
}
|
||||
|
||||
translate([ -30, 0, 0 ])
|
||||
screw();
|
||||
|
||||
translate([ 30, 0, 0 ])
|
||||
nut();
|
||||
|
||||
spring();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
echo(version=version());
|
||||
|
||||
module example006()
|
||||
{
|
||||
module edgeprofile()
|
||||
{
|
||||
render(convexity = 2) difference() {
|
||||
cube([20, 20, 150], center = true);
|
||||
translate([-10, -10, 0])
|
||||
cylinder(h = 80, r = 10, center = true);
|
||||
translate([-10, -10, +40])
|
||||
sphere(r = 10);
|
||||
translate([-10, -10, -40])
|
||||
sphere(r = 10);
|
||||
}
|
||||
}
|
||||
|
||||
difference()
|
||||
{
|
||||
cube(100, center = true);
|
||||
for (rot = [ [0, 0, 0], [1, 0, 0], [0, 1, 0] ]) {
|
||||
rotate(90, rot)
|
||||
for (p = [[+1, +1, 0], [-1, +1, 90], [-1, -1, 180], [+1, -1, 270]]) {
|
||||
translate([ p[0]*50, p[1]*50, 0 ])
|
||||
rotate(p[2], [0, 0, 1])
|
||||
edgeprofile();
|
||||
}
|
||||
}
|
||||
for (i = [
|
||||
[ 0, 0, [ [0, 0] ] ],
|
||||
[ 90, 0, [ [-20, -20], [+20, +20] ] ],
|
||||
[ 180, 0, [ [-20, -25], [-20, 0], [-20, +25], [+20, -25], [+20, 0], [+20, +25] ] ],
|
||||
[ 270, 0, [ [0, 0], [-25, -25], [+25, -25], [-25, +25], [+25, +25] ] ],
|
||||
[ 0, 90, [ [-25, -25], [0, 0], [+25, +25] ] ],
|
||||
[ 0, -90, [ [-25, -25], [+25, -25], [-25, +25], [+25, +25] ] ]
|
||||
]) {
|
||||
rotate(i[0], [0, 0, 1]) rotate(i[1], [1, 0, 0]) translate([0, -50, 0])
|
||||
for (j = i[2])
|
||||
translate([j[0], 0, j[1]]) sphere(10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
example006();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
51
examples/Advanced/module_recursion.scad
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
// Recursive calls of modules can generate complex geometry, especially
|
||||
// fractal style objects.
|
||||
// The example uses a recursive module to generate a random tree as
|
||||
// described in http://natureofcode.com/book/chapter-8-fractals/
|
||||
|
||||
levels = 10; // number of levels for the recursion
|
||||
|
||||
len = 100; // length of the first segment
|
||||
thickness = 5; // thickness of the first segment
|
||||
|
||||
// the identity matrix
|
||||
identity = [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
|
||||
|
||||
// random generator, to generate always the same output for the example,
|
||||
// this uses a seed for rands() and stores the array of random values in
|
||||
// the random variable. To generate different output, remove the seed or
|
||||
// replace the function rnd() to just call rands(s, e, 1)[0].
|
||||
rcnt = 1000;
|
||||
random = rands(0, 1, rcnt, 18);
|
||||
function rnd(s, e, r) = random[r % rcnt] * (e - s) + s;
|
||||
|
||||
// generate 4x4 translation matrix
|
||||
function mt(x, y) = [ [ 1, 0, 0, x ], [ 0, 1, 0, y ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
|
||||
|
||||
// generate 4x4 rotation matrix around Z axis
|
||||
function mr(a) = [ [ cos(a), -sin(a), 0, 0 ], [ sin(a), cos(a), 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
|
||||
|
||||
module tree(length, thickness, count, m = identity, r = 1) {
|
||||
color([0, 1 - (0.8 / levels * count), 0])
|
||||
multmatrix(m)
|
||||
square([thickness, length]);
|
||||
|
||||
if (count > 0) {
|
||||
tree(rnd(0.6, 0.8, r) * length, 0.8 * thickness, count - 1, m * mt(0, length) * mr(rnd(20, 35, r + 1)), 8 * r);
|
||||
tree(rnd(0.6, 0.8, r + 1) * length, 0.8 * thickness, count - 1, m * mt(0, length) * mr(-rnd(20, 35, r + 3)), 8 * r + 4);
|
||||
}
|
||||
}
|
||||
|
||||
tree(len, thickness, levels);
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -7,10 +7,10 @@ foot_height = 20;
|
|||
echo(version=version());
|
||||
|
||||
module outline(wall = 1) {
|
||||
difference() {
|
||||
offset(wall / 2) children();
|
||||
offset(-wall / 2) children();
|
||||
}
|
||||
difference() {
|
||||
offset(wall / 2) children();
|
||||
offset(-wall / 2) children();
|
||||
}
|
||||
}
|
||||
|
||||
// offsetting with a positive value allows to create rounded corners easily
|
||||
|
|
@ -21,9 +21,9 @@ linear_extrude(height = foot_height, scale = 0.5) {
|
|||
}
|
||||
|
||||
translate([0, 0, foot_height]) {
|
||||
linear_extrude(height = 20) {
|
||||
outline(wall = 2) circle(15);
|
||||
}
|
||||
linear_extrude(height = 20) {
|
||||
outline(wall = 2) circle(15);
|
||||
}
|
||||
}
|
||||
|
||||
%cylinder(r = 14, h = 100);
|
||||
|
|
|
|||
BIN
examples/Advanced/surface_image.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
26
examples/Advanced/surface_image.scad
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
echo(version=version());
|
||||
|
||||
// surface() can import images, the pixel values are converted
|
||||
// to grayscale and converted to values between 0 and 100.
|
||||
// The example takes 3 cuts from the height map and displays
|
||||
// those as 3 stacked layers.
|
||||
|
||||
for (a = [1, 2, 3])
|
||||
color([a/6 + 0.5, 0, 0])
|
||||
linear_extrude(height = 2 * a, convexity = 10)
|
||||
projection(cut = true)
|
||||
translate([0, 0, -30 * a])
|
||||
surface("surface_image.png", center = true);
|
||||
|
||||
|
||||
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
94
examples/Basics/CSG-modules.scad
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
// CSG-modules.scad - Basic usage of modules, if, color, $fs/$fa
|
||||
|
||||
// Change this to false to remove the helper geometry
|
||||
debug = true;
|
||||
|
||||
// Global resolution
|
||||
$fs = 0.1; // Don't generate smaller facets than 0.1 mm
|
||||
$fa = 5; // Don't generate larger angles than 5 degrees
|
||||
|
||||
// Main geometry
|
||||
difference() {
|
||||
intersection() {
|
||||
body();
|
||||
intersector();
|
||||
}
|
||||
holes();
|
||||
}
|
||||
|
||||
// Helpers
|
||||
if (debug) helpers();
|
||||
|
||||
// Core geometric primitives.
|
||||
// These can be modified to create variations of the final object
|
||||
|
||||
module body() {
|
||||
color("Blue") sphere(10);
|
||||
}
|
||||
|
||||
module intersector() {
|
||||
color("Red") cube(15, center=true);
|
||||
}
|
||||
|
||||
module holeObject() {
|
||||
color("Lime") cylinder(h=20, r=5, center=true);
|
||||
}
|
||||
|
||||
// Various modules for visualizing intermediate components
|
||||
|
||||
module intersected() {
|
||||
intersection() {
|
||||
body();
|
||||
intersector();
|
||||
}
|
||||
}
|
||||
|
||||
module holeA() rotate([0,90,0]) holeObject();
|
||||
module holeB() rotate([90,0,0]) holeObject();
|
||||
module holeC() holeObject();
|
||||
|
||||
module holes() {
|
||||
union() {
|
||||
holeA();
|
||||
holeB();
|
||||
holeC();
|
||||
}
|
||||
}
|
||||
|
||||
module helpers() {
|
||||
// Inner module since it's only needed inside helpers
|
||||
module line() color("Black") cylinder(r=1, h=10, center=true);
|
||||
|
||||
scale(0.5) {
|
||||
translate([-30,0,-40]) {
|
||||
intersected();
|
||||
translate([-15,0,-35]) body();
|
||||
translate([15,0,-35]) intersector();
|
||||
translate([-7.5,0,-17.5]) rotate([0,30,0]) line();
|
||||
translate([7.5,0,-17.5]) rotate([0,-30,0]) line();
|
||||
}
|
||||
translate([30,0,-40]) {
|
||||
holes();
|
||||
translate([-10,0,-35]) holeA();
|
||||
translate([10,0,-35]) holeB();
|
||||
translate([30,0,-35]) holeC();
|
||||
translate([5,0,-17.5]) rotate([0,-20,0]) line();
|
||||
translate([-5,0,-17.5]) rotate([0,30,0]) line();
|
||||
translate([15,0,-17.5]) rotate([0,-45,0]) line();
|
||||
}
|
||||
translate([-20,0,-22.5]) rotate([0,45,0]) line();
|
||||
translate([20,0,-22.5]) rotate([0,-45,0]) line();
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
// Written by Marius Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
32
examples/Basics/CSG.scad
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// CSG.scad - Basic example of CSG usage
|
||||
|
||||
translate([-24,0,0]) {
|
||||
union() {
|
||||
cube(15, center=true);
|
||||
sphere(10);
|
||||
}
|
||||
}
|
||||
|
||||
intersection() {
|
||||
cube(15, center=true);
|
||||
sphere(10);
|
||||
}
|
||||
|
||||
translate([24,0,0]) {
|
||||
difference() {
|
||||
cube(15, center=true);
|
||||
sphere(10);
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
// Written by Marius Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,21 +1,27 @@
|
|||
echo(version=version());
|
||||
// LetterBlock.scad - Basic usage of text() and linear_extrude()
|
||||
|
||||
// Module instantiation
|
||||
LetterBlock("M");
|
||||
|
||||
// Module definition.
|
||||
// size=30 defines an optional parameter with a default value.
|
||||
module LetterBlock(letter, size=30) {
|
||||
difference() {
|
||||
translate([0,0,size/4])
|
||||
cube([size,size,size/2], center=true);
|
||||
translate([0,0,size/6])
|
||||
linear_extrude(height=size, convexity=3)
|
||||
translate([0,0,size/4]) cube([size,size,size/2], center=true);
|
||||
translate([0,0,size/6]) {
|
||||
// convexity is needed for correct preview
|
||||
// since characters can be highly concave
|
||||
linear_extrude(height=size, convexity=4)
|
||||
text(letter,
|
||||
size=size*22/30,
|
||||
font="Tahoma",
|
||||
halign="center",
|
||||
valign="center");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LetterBlock("M");
|
||||
|
||||
echo(version=version());
|
||||
// Written by Marius Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
// difference_sphere.scad - Example for difference() usage in OpenSCAD
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module difference_sphere()
|
||||
{
|
||||
function r_from_dia(d) = d / 2;
|
||||
|
||||
module rotcy(rot, r, h) {
|
||||
rotate(90, rot)
|
||||
cylinder(r = r, h = h, center = true);
|
||||
}
|
||||
|
||||
difference() {
|
||||
sphere(r = r_from_dia(size));
|
||||
rotcy([0, 0, 0], cy_r, cy_h);
|
||||
rotcy([1, 0, 0], cy_r, cy_h);
|
||||
rotcy([0, 1, 0], cy_r, cy_h);
|
||||
}
|
||||
|
||||
size = 50;
|
||||
hole = 25;
|
||||
|
||||
cy_r = r_from_dia(hole);
|
||||
cy_h = r_from_dia(size * 2.5);
|
||||
}
|
||||
|
||||
difference_sphere();
|
||||
|
||||
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
// intersection.scad - Example for intersection() usage in OpenSCAD
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module example_intersection()
|
||||
{
|
||||
intersection() {
|
||||
difference() {
|
||||
union() {
|
||||
cube([30, 30, 30], center = true);
|
||||
translate([0, 0, -25])
|
||||
cube([15, 15, 50], center = true);
|
||||
}
|
||||
union() {
|
||||
cube([50, 10, 10], center = true);
|
||||
cube([10, 50, 10], center = true);
|
||||
cube([10, 10, 50], center = true);
|
||||
}
|
||||
}
|
||||
translate([0, 0, 5])
|
||||
cylinder(h = 50, r1 = 20, r2 = 5, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
example_intersection();
|
||||
|
||||
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
36
examples/Basics/linear_extrude.scad
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
echo(version=version());
|
||||
|
||||
// simple 2D -> 3D extrusion of a rectangle
|
||||
color("red")
|
||||
translate([0, -30, 0])
|
||||
linear_extrude(height = 20)
|
||||
square([20, 10], center = true);
|
||||
|
||||
// using the scale parameter a frustum can be constructed
|
||||
color("green")
|
||||
translate([-30, 0, 0])
|
||||
linear_extrude(height = 20, scale = 0.2)
|
||||
square([20, 10], center = true);
|
||||
|
||||
// with twist the extruded shape will rotate around the Z axis
|
||||
color("cyan")
|
||||
translate([30, 0, 0])
|
||||
linear_extrude(height = 20, twist = 90)
|
||||
square([20, 10], center = true);
|
||||
|
||||
// combining both relatively complex shapes can be created
|
||||
color("gray")
|
||||
translate([0, 30, 0])
|
||||
linear_extrude(height = 40, twist = -360, scale = 0, center = true, slices = 200)
|
||||
square([20, 10], center = true);
|
||||
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
35
examples/Basics/logo.scad
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
// logo.scad - Basic example of module, top-level variable and $fn usage
|
||||
|
||||
Logo(50);
|
||||
|
||||
// The $fn parameter will influence all objects inside this module
|
||||
// It can, optionally, be overridden when instantiating the module
|
||||
module Logo(size=50, $fn=100) {
|
||||
// Temporary variables
|
||||
hole = size/2;
|
||||
cylinderHeight = size * 1.25;
|
||||
|
||||
// One positive object (sphere) and three negative objects (cylinders)
|
||||
difference() {
|
||||
sphere(d=size);
|
||||
|
||||
cylinder(d=hole, h=cylinderHeight, center=true);
|
||||
// The '#' operator highlights the object
|
||||
#rotate([90, 0, 0]) cylinder(d=hole, h=cylinderHeight, center=true);
|
||||
rotate([0, 90, 0]) cylinder(d=hole, h=cylinderHeight, center=true);
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
|
|
@ -1,51 +1,35 @@
|
|||
// logo_and_text.scad - Example for text() usage in OpenSCAD
|
||||
// logo_and_text.scad - Example for use<> and text()
|
||||
|
||||
echo(version=version());
|
||||
use <logo.scad> // Imports the Logo() module from logo.scad into this namespace
|
||||
|
||||
// Set the initial viewport parameters
|
||||
$vpr = [90, 0, 0];
|
||||
$vpt = [250, 0, 80];
|
||||
$vpd = 500;
|
||||
|
||||
r = 60;
|
||||
hole = 30;
|
||||
logosize = 120;
|
||||
|
||||
module t(t, s = 18, style = "") {
|
||||
rotate([90, 0, 0])
|
||||
linear_extrude(height = 1)
|
||||
text(t, size = s, font = str("Liberation Serif", style), $fn = 16);
|
||||
}
|
||||
|
||||
module cut() {
|
||||
cylinder(r = hole, h = 2.5 * r, center = true, $fn = 60);
|
||||
}
|
||||
|
||||
module logo() {
|
||||
difference() {
|
||||
sphere(r = r, $fn = 120);
|
||||
cut();
|
||||
rotate([0, 90, 0]) cut();
|
||||
#rotate([90, 0, 0]) cut();
|
||||
}
|
||||
}
|
||||
|
||||
module green() {
|
||||
color([81/255, 142/255, 4/255]) children();
|
||||
}
|
||||
|
||||
module black() {
|
||||
color([0, 0, 0]) children();
|
||||
}
|
||||
|
||||
translate([110, 0, 80]) {
|
||||
translate([0, 0, 30]) rotate([25, 25, -40]) logo();
|
||||
translate([100, 0, 40]) green() t("Open", 42, ":style=Bold");
|
||||
translate([242, 0, 40]) black() t("SCAD", 42, ":style=Bold");
|
||||
translate([100, 0, -10]) black() t("The Programmers");
|
||||
translate([160, 0, -40]) black() t("Solid 3D CAD Modeller");
|
||||
translate([0, 0, 30]) rotate([25, 25, -40]) Logo(logosize);
|
||||
translate([100, 0, 40]) green() t("Open", 42, ":style=Bold");
|
||||
translate([247, 0, 40]) black() t("SCAD", 42, ":style=Bold");
|
||||
translate([100, 0, 0]) black() t("The Programmers");
|
||||
translate([160, 0, -30]) black() t("Solid 3D CAD Modeller");
|
||||
}
|
||||
|
||||
// Helper to create 3D text with correct font and orientation
|
||||
module t(t, s = 18, style = "") {
|
||||
rotate([90, 0, 0])
|
||||
linear_extrude(height = 1)
|
||||
text(t, size = s, font = str("Liberation Sans", style), $fn = 16);
|
||||
}
|
||||
|
||||
// Color helpers
|
||||
module green() color([81/255, 142/255, 4/255]) children();
|
||||
module black() color([0, 0, 0]) children();
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2014 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
|
|
|
|||
64
examples/Basics/projection.scad
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
echo(version=version());
|
||||
|
||||
%import("projection.stl");
|
||||
|
||||
// projection() without the cut = true parameter will project
|
||||
// the outline of the object onto the X/Y plane. The result is
|
||||
// a 2D shape.
|
||||
|
||||
color("red")
|
||||
translate([0, 0, -20])
|
||||
linear_extrude(height = 2, center = true)
|
||||
difference() {
|
||||
square(30, center = true);
|
||||
projection()
|
||||
import("projection.stl");
|
||||
}
|
||||
|
||||
color("green")
|
||||
rotate([0, 90, 0])
|
||||
translate([0, 0, -20])
|
||||
linear_extrude(height = 2, center = true)
|
||||
difference() {
|
||||
square(30, center = true);
|
||||
projection()
|
||||
rotate([0, 90, 0])
|
||||
import("projection.stl");
|
||||
}
|
||||
|
||||
color("cyan")
|
||||
rotate([-90, 0, 0])
|
||||
translate([0, 0, 20])
|
||||
linear_extrude(height = 2, center = true)
|
||||
difference() {
|
||||
square(30, center = true);
|
||||
projection()
|
||||
rotate([90, 0, 0])
|
||||
import("projection.stl");
|
||||
}
|
||||
|
||||
// Including the cut = true uses the outline of the cut at
|
||||
// the X/Y plane.at Z = 0. This can make internal features
|
||||
// of the model visible.
|
||||
|
||||
color("yellow", 0.5)
|
||||
translate([0, 0, 20])
|
||||
linear_extrude(height = 2, center = true)
|
||||
difference() {
|
||||
square(30, center = true);
|
||||
projection(cut = true)
|
||||
import("projection.stl");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
29122
examples/Basics/projection.stl
Normal file
35
examples/Basics/rotate_extrude.scad
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
echo(version=version());
|
||||
|
||||
// rotate_extrude() always rotates the 2D shape 360 degrees
|
||||
// around the Z axis. Note that the 2D shape must be either
|
||||
// completely on the positive or negative side of the X axis.
|
||||
color("red")
|
||||
rotate_extrude()
|
||||
translate([10, 0])
|
||||
square(5);
|
||||
|
||||
// rotate_extrude() uses the global $fn/$fa/$fs settings, but
|
||||
// it's possible to give a different value as parameter.
|
||||
color("cyan")
|
||||
translate([40, 0, 0])
|
||||
rotate_extrude($fn = 80)
|
||||
text(" J");
|
||||
|
||||
// Using a shape that touches the X axis is allowed and produces
|
||||
// 3D objects that don't have a hole in the center.
|
||||
color("green")
|
||||
translate([0, 30, 0])
|
||||
rotate_extrude($fn = 80)
|
||||
polygon( points=[[0,0],[8,4],[4,8],[4,12],[12,16],[0,20]] );
|
||||
|
||||
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -11,30 +11,30 @@ letter_height = 5;
|
|||
o = cube_size / 2 - letter_height / 2;
|
||||
|
||||
module letter(l) {
|
||||
// Use linear_extrude() to make the letters 3D objects as they
|
||||
// are only 2D shapes when only using text()
|
||||
linear_extrude(height = letter_height) {
|
||||
text(l, size = letter_size, font = font, halign = "center", valign = "center", $fn = 16);
|
||||
}
|
||||
// Use linear_extrude() to make the letters 3D objects as they
|
||||
// are only 2D shapes when only using text()
|
||||
linear_extrude(height = letter_height) {
|
||||
text(l, size = letter_size, font = font, halign = "center", valign = "center", $fn = 16);
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
color("gray") cube(cube_size, center = true);
|
||||
translate([0, -o, 0]) rotate([90, 0, 0]) letter("C");
|
||||
translate([o, 0, 0]) rotate([90, 0, 90]) letter("U");
|
||||
translate([0, o, 0]) rotate([90, 0, 180]) letter("B");
|
||||
translate([-o, 0, 0]) rotate([90, 0, -90]) letter("E");
|
||||
}
|
||||
union() {
|
||||
color("gray") cube(cube_size, center = true);
|
||||
translate([0, -o, 0]) rotate([90, 0, 0]) letter("C");
|
||||
translate([o, 0, 0]) rotate([90, 0, 90]) letter("U");
|
||||
translate([0, o, 0]) rotate([90, 0, 180]) letter("B");
|
||||
translate([-o, 0, 0]) rotate([90, 0, -90]) letter("E");
|
||||
}
|
||||
|
||||
// Put some symbols on top and bottom using symbols from the
|
||||
// Unicode symbols table.
|
||||
// (see https://en.wikipedia.org/wiki/Miscellaneous_Symbols)
|
||||
//
|
||||
// Note that depending on the font used, not all the symbols
|
||||
// are actually available.
|
||||
translate([0, 0, o]) letter("\u263A");
|
||||
translate([0, 0, -o - letter_height]) letter("\u263C");
|
||||
// Put some symbols on top and bottom using symbols from the
|
||||
// Unicode symbols table.
|
||||
// (see https://en.wikipedia.org/wiki/Miscellaneous_Symbols)
|
||||
//
|
||||
// Note that depending on the font used, not all the symbols
|
||||
// are actually available.
|
||||
translate([0, 0, o]) letter("\u263A");
|
||||
translate([0, 0, -o - letter_height]) letter("\u263C");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
// translate.scad - Example for translate() usage in OpenSCAD
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module example_translate()
|
||||
{
|
||||
translate([0, 0, -120]) {
|
||||
difference() {
|
||||
cylinder(h = 50, r = 100);
|
||||
translate([0, 0, 10]) cylinder(h = 50, r = 80);
|
||||
translate([100, 0, 35]) cube(50, center = true);
|
||||
}
|
||||
for (i = [0:5]) {
|
||||
echo(360*i/6, sin(360*i/6)*80, cos(360*i/6)*80);
|
||||
translate([sin(360*i/6)*80, cos(360*i/6)*80, 0 ])
|
||||
cylinder(h = 200, r=10);
|
||||
}
|
||||
translate([0, 0, 200])
|
||||
cylinder(h = 80, r1 = 120, r2 = 0);
|
||||
}
|
||||
}
|
||||
|
||||
example_translate();
|
||||
|
||||
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
echo(version=version());
|
||||
|
||||
module cutout()
|
||||
{
|
||||
intersection()
|
||||
{
|
||||
rotate(90, [1, 0, 0])
|
||||
translate([0, 0, -50])
|
||||
linear_extrude(height = 100, convexity = 1)
|
||||
import(file = "cut_view.dxf", layer = "cutout1");
|
||||
|
||||
rotate(90, [0, 0, 1])
|
||||
rotate(90, [1, 0, 0])
|
||||
translate([0, 0, -50])
|
||||
linear_extrude(height = 100, convexity = 2)
|
||||
import(file = "cut_view.dxf", layer = "cutout2");
|
||||
}
|
||||
}
|
||||
|
||||
module clip()
|
||||
{
|
||||
difference() {
|
||||
// NB! We have to use the deprecated module here since the "dorn"
|
||||
// layer contains an open polyline, which is not yet supported
|
||||
// by the import() module.
|
||||
rotate_extrude(convexity = 3)
|
||||
import(file = "cut_view.dxf", layer="dorn");
|
||||
for (r = [0, 90])
|
||||
rotate(r, [0, 0, 1])
|
||||
cutout();
|
||||
}
|
||||
}
|
||||
|
||||
module cutview()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
translate([0, 0, -10])
|
||||
clip();
|
||||
|
||||
rotate(20, [0, 0, 1])
|
||||
rotate(-20, [0, 1, 0])
|
||||
translate([18, 0, 0])
|
||||
cube(30, center = true);
|
||||
}
|
||||
|
||||
# render(convexity = 5) intersection()
|
||||
{
|
||||
translate([0, 0, -10])
|
||||
clip();
|
||||
|
||||
rotate(20, [0, 0, 1])
|
||||
rotate(-20, [0, 1, 0])
|
||||
translate([18, 0, 0])
|
||||
cube(30, center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
translate([0, 0, -10])
|
||||
clip();
|
||||
|
||||
// cutview();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
echo(version=version());
|
||||
|
||||
bodywidth = dxf_dim(file = "fan_view.dxf", name = "bodywidth");
|
||||
fanwidth = dxf_dim(file = "fan_view.dxf", name = "fanwidth");
|
||||
platewidth = dxf_dim(file = "fan_view.dxf", name = "platewidth");
|
||||
fan_side_center = dxf_cross(file = "fan_view.dxf", layer = "fan_side_center");
|
||||
fanrot = dxf_dim(file = "fan_view.dxf", name = "fanrot");
|
||||
|
||||
% linear_extrude(height = bodywidth, center = true, convexity = 10)
|
||||
import(file = "fan_view.dxf", layer = "body");
|
||||
|
||||
% for (z = [+(bodywidth/2 + platewidth/2),
|
||||
-(bodywidth/2 + platewidth/2)])
|
||||
{
|
||||
translate([0, 0, z])
|
||||
linear_extrude(height = platewidth, center = true, convexity = 10)
|
||||
import(file = "fan_view.dxf", layer = "plate");
|
||||
}
|
||||
|
||||
intersection()
|
||||
{
|
||||
linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot)
|
||||
import(file = "fan_view.dxf", layer = "fan_top");
|
||||
|
||||
// NB! We have to use the deprecated module here since the "fan_side"
|
||||
// layer contains an open polyline, which is not yet supported
|
||||
// by the import() module.
|
||||
rotate_extrude(convexity = 10)
|
||||
import(file = "fan_view.dxf", layer = "fan_side", origin = fan_side_center);
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
echo(version=version());
|
||||
|
||||
difference()
|
||||
{
|
||||
intersection()
|
||||
{
|
||||
translate([ -25, -25, -25])
|
||||
linear_extrude(height = 50, convexity = 3)
|
||||
import(file = "text.dxf", layer = "G");
|
||||
|
||||
rotate(90, [1, 0, 0])
|
||||
translate([ -25, -125, -25])
|
||||
linear_extrude(height = 50, convexity = 3)
|
||||
import(file = "text.dxf", layer = "E");
|
||||
|
||||
rotate(90, [0, 1, 0])
|
||||
translate([ -125, -125, -25])
|
||||
linear_extrude(height = 50, convexity = 3)
|
||||
import(file = "text.dxf", layer = "B");
|
||||
}
|
||||
|
||||
intersection()
|
||||
{
|
||||
translate([ -125, -25, -26])
|
||||
linear_extrude(height = 52, convexity = 1)
|
||||
import(file = "text.dxf", layer = "X");
|
||||
|
||||
rotate(90, [0, 1, 0])
|
||||
translate([ -125, -25, -26])
|
||||
linear_extrude(height = 52, convexity = 1)
|
||||
import(file = "text.dxf", layer = "X");
|
||||
}
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
35
examples/Functions/functions.scad
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
echo(version=version());
|
||||
|
||||
// Functions can be defined to simplify code using lots of
|
||||
// calculations.
|
||||
|
||||
// Simple example with a single function argument (which should
|
||||
// be a number) and returning a number calculated based on that.
|
||||
function f(x) = 0.5 * x + 1;
|
||||
|
||||
color("red")
|
||||
for (a = [ -100 : 5 : 100 ])
|
||||
translate([a, f(a), 0]) cube(2, center = true);
|
||||
|
||||
// Functions can call other functions and return complex values
|
||||
// too. In this case a 3 element vector is returned which can
|
||||
// be used as point in 3D space or as vector (in the mathematical
|
||||
// meaning) for translations and other transformations.
|
||||
function g(x) = [ 5 * x + 20, f(x) * f(x) - 50, 0 ];
|
||||
|
||||
color("green")
|
||||
for (a = [ -200 : 10 : 200 ])
|
||||
translate(g(a / 8)) sphere(1);
|
||||
|
||||
|
||||
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
47
examples/Functions/list_comprehensions.scad
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
// list_comprehensions.scad - Examples of list comprehension usage
|
||||
|
||||
// Basic list comprehension:
|
||||
// Returns a 2D vertex per iteration of the for loop
|
||||
// Note: subsequent assignments inside the for loop is allowed
|
||||
module ngon(num, r) {
|
||||
polygon([for (i=[0:num-1], a=i*360/num) [ r*cos(a), r*sin(a) ]]);
|
||||
}
|
||||
|
||||
ngon(3, 10);
|
||||
translate([20,0]) ngon(6, 8);
|
||||
translate([36,0]) ngon(10, 6);
|
||||
|
||||
// More complex list comprehension:
|
||||
// Similar to ngon(), but uses an inner function to calculate
|
||||
// the vertices. the let() keyword allows assignment of temporary variables.
|
||||
module rounded_ngon(num, r, rounding = 0) {
|
||||
function v(a) = let (d = 360/num, v = floor((a+d/2)/d)*d) (r-rounding) * [cos(v), sin(v)];
|
||||
polygon([for (a=[0:360-1]) v(a) + rounding*[cos(a),sin(a)]]);
|
||||
}
|
||||
|
||||
translate([0,22]) rounded_ngon(3, 10, 5);
|
||||
translate([20,22]) rounded_ngon(6, 8, 4);
|
||||
translate([36,22]) rounded_ngon(10, 6, 3);
|
||||
|
||||
// Gear/star generator
|
||||
// Uses a list comprehension taking a list of radii to generate a star shape
|
||||
module star(num, radii) {
|
||||
function r(a) = (floor(a / 10) % 2) ? 10 : 8;
|
||||
polygon([for (i=[0:num-1], a=i*360/num, r=radii[i%len(radii)]) [ r*cos(a), r*sin(a) ]]);
|
||||
}
|
||||
|
||||
translate([0,44]) star(20, [6,10]);
|
||||
translate([20,44]) star(40, [6,8,8,6]);
|
||||
translate([36,44]) star(30, [3,4,5,6,5,4]);
|
||||
|
||||
echo(version=version());
|
||||
// Written by Marius Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
50
examples/Functions/polygon_areas.scad
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
// polygon_areas.scad: Another recursion example
|
||||
|
||||
// Draw all geometry
|
||||
translate([0,20]) color("Red") text("Areas:", size=8, halign="center");
|
||||
translate([-44,0]) shapeWithArea(3, 10);
|
||||
translate([-22,0]) shapeWithArea(4, 10);
|
||||
translate([0,0]) shapeWithArea(6, 10);
|
||||
translate([22,0]) shapeWithArea(10, 10);
|
||||
translate([44,0]) shapeWithArea(360, 10);
|
||||
|
||||
// One shape with corresponding text
|
||||
module shapeWithArea(num, r) {
|
||||
polygon(ngon(num, r));
|
||||
translate([0,-20])
|
||||
color("Cyan")
|
||||
text(str(round(area(ngon(num, r)))), halign="center", size=8);
|
||||
}
|
||||
|
||||
// Simple list comprehension for creating N-gon vertices
|
||||
function ngon(num, r) =
|
||||
[for (i=[0:num-1], a=i*360/num) [ r*cos(a), r*sin(a) ]];
|
||||
|
||||
// Area of a triangle with the 3rd vertex in the origin
|
||||
function triarea(v0, v1) = cross(v0, v1) / 2;
|
||||
|
||||
// Area of a polygon using the Shoelace formula
|
||||
function area(vertices) =
|
||||
let (areas = [let (num=len(vertices))
|
||||
for (i=[0:num-1])
|
||||
triarea(vertices[i], vertices[(i+1)%num])
|
||||
])
|
||||
sum(areas);
|
||||
|
||||
// Recursive helper function: Sums all values in a list.
|
||||
// In this case, sum all partial areas into the final area.
|
||||
function sum(values,s=0) =
|
||||
s == len(values) - 1 ? values[s] : values[s] + sum(values,s+1);
|
||||
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2015 by Marius Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
25
examples/Functions/recursion.scad
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// recursionscad: Basic recursion example
|
||||
|
||||
// Recursive functions are very powerful for calculating values.
|
||||
// A good number of algorithms make use of recursive definitions,
|
||||
// e.g the caluclation of the factorial of a number.
|
||||
// The ternary operator " ? : " is the easiest way to define the
|
||||
// termination condition.
|
||||
// Note how the following simple implementation will never terminate
|
||||
// when called with a negative value. This will produce an error after
|
||||
// some time when OpenSCAD detects the endless recursive call.
|
||||
function factorial(n) = n == 0 ? 1 : factorial(n - 1) * n;
|
||||
|
||||
color("cyan") text(str("6! = ", factorial(6)), halign = "center");
|
||||
|
||||
echo(version=version());
|
||||
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,27 +1,29 @@
|
|||
// union.scad - Example for union() usage in OpenSCAD
|
||||
module example001()
|
||||
{
|
||||
function r_from_dia(d) = d / 2;
|
||||
|
||||
module rotcy(rot, r, h) {
|
||||
rotate(90, rot)
|
||||
cylinder(r = r, h = h, center = true);
|
||||
}
|
||||
|
||||
difference() {
|
||||
sphere(r = r_from_dia(size));
|
||||
rotcy([0, 0, 0], cy_r, cy_h);
|
||||
rotcy([1, 0, 0], cy_r, cy_h);
|
||||
rotcy([0, 1, 0], cy_r, cy_h);
|
||||
}
|
||||
|
||||
size = 50;
|
||||
hole = 25;
|
||||
|
||||
cy_r = r_from_dia(hole);
|
||||
cy_h = r_from_dia(size * 2.5);
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module example_union()
|
||||
{
|
||||
difference() {
|
||||
union() {
|
||||
cube([30, 30, 30], center = true);
|
||||
cube([40, 15, 15], center = true);
|
||||
cube([15, 40, 15], center = true);
|
||||
cube([15, 15, 40], center = true);
|
||||
}
|
||||
union() {
|
||||
cube([50, 10, 10], center = true);
|
||||
cube([10, 50, 10], center = true);
|
||||
cube([10, 10, 50], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
example_union();
|
||||
|
||||
|
||||
example001();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
36
examples/Old/example002.scad
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
module example002()
|
||||
{
|
||||
intersection() {
|
||||
difference() {
|
||||
union() {
|
||||
cube([30, 30, 30], center = true);
|
||||
translate([0, 0, -25])
|
||||
cube([15, 15, 50], center = true);
|
||||
}
|
||||
union() {
|
||||
cube([50, 10, 10], center = true);
|
||||
cube([10, 50, 10], center = true);
|
||||
cube([10, 10, 50], center = true);
|
||||
}
|
||||
}
|
||||
translate([0, 0, 5])
|
||||
cylinder(h = 50, r1 = 20, r2 = 5, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
example002();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,16 +1,24 @@
|
|||
|
||||
module example003()
|
||||
{
|
||||
difference() {
|
||||
union() {
|
||||
cube([30, 30, 30], center = true);
|
||||
cube([40, 15, 15], center = true);
|
||||
cube([15, 40, 15], center = true);
|
||||
cube([15, 15, 40], center = true);
|
||||
}
|
||||
union() {
|
||||
cube([50, 10, 10], center = true);
|
||||
cube([10, 50, 10], center = true);
|
||||
cube([10, 10, 50], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
intersection()
|
||||
{
|
||||
linear_extrude(height = 100, center = true, convexity= 3)
|
||||
import(file = "advance_intersection.dxf");
|
||||
rotate([0, 90, 0])
|
||||
linear_extrude(height = 100, center = true, convexity= 3)
|
||||
import(file = "advance_intersection.dxf");
|
||||
rotate([90, 0, 0])
|
||||
linear_extrude(height = 100, center = true, convexity= 3)
|
||||
import(file = "advance_intersection.dxf");
|
||||
}
|
||||
example003();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
|
|
@ -1,14 +1,15 @@
|
|||
// M.stl is generated from Basics/LetterBlock.scad
|
||||
|
||||
module example004()
|
||||
{
|
||||
difference() {
|
||||
cube(30, center = true);
|
||||
sphere(20);
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
difference()
|
||||
{
|
||||
sphere(20);
|
||||
|
||||
translate([ 0, 0.5, +20 ]) rotate([180, 0, 180])
|
||||
import("M.stl", convexity = 5);
|
||||
}
|
||||
example004();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
34
examples/Old/example005.scad
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
module example005()
|
||||
{
|
||||
translate([0, 0, -120]) {
|
||||
difference() {
|
||||
cylinder(h = 50, r = 100);
|
||||
translate([0, 0, 10]) cylinder(h = 50, r = 80);
|
||||
translate([100, 0, 35]) cube(50, center = true);
|
||||
}
|
||||
for (i = [0:5]) {
|
||||
echo(360*i/6, sin(360*i/6)*80, cos(360*i/6)*80);
|
||||
translate([sin(360*i/6)*80, cos(360*i/6)*80, 0 ])
|
||||
cylinder(h = 200, r=10);
|
||||
}
|
||||
translate([0, 0, 200])
|
||||
cylinder(h = 80, r1 = 120, r2 = 0);
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
example005();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
59
examples/Old/example006.scad
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
module example006()
|
||||
{
|
||||
module edgeprofile()
|
||||
{
|
||||
render(convexity = 2) difference() {
|
||||
cube([20, 20, 150], center = true);
|
||||
translate([-10, -10, 0])
|
||||
cylinder(h = 80, r = 10, center = true);
|
||||
translate([-10, -10, +40])
|
||||
sphere(r = 10);
|
||||
translate([-10, -10, -40])
|
||||
sphere(r = 10);
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
cube(100, center = true);
|
||||
for (rot = [ [0, 0, 0], [1, 0, 0], [0, 1, 0] ]) {
|
||||
rotate(90, rot)
|
||||
for (p = [[+1, +1, 0], [-1, +1, 90], [-1, -1, 180], [+1, -1, 270]]) {
|
||||
translate([ p[0]*50, p[1]*50, 0 ])
|
||||
rotate(p[2], [0, 0, 1])
|
||||
edgeprofile();
|
||||
}
|
||||
}
|
||||
for (i = [
|
||||
[ 0, 0, [ [0, 0] ] ],
|
||||
[ 90, 0, [ [-20, -20], [+20, +20] ] ],
|
||||
[ 180, 0, [ [-20, -25], [-20, 0], [-20, +25], [+20, -25], [+20, 0], [+20, +25] ] ],
|
||||
[ 270, 0, [ [0, 0], [-25, -25], [+25, -25], [-25, +25], [+25, +25] ] ],
|
||||
[ 0, 90, [ [-25, -25], [0, 0], [+25, +25] ] ],
|
||||
[ 0, -90, [ [-25, -25], [+25, -25], [-25, +25], [+25, +25] ] ]
|
||||
]) {
|
||||
rotate(i[0], [0, 0, 1])
|
||||
rotate(i[1], [1, 0, 0])
|
||||
translate([0, -50, 0])
|
||||
for (j = i[2]) {
|
||||
translate([j[0], 0, j[1]]) sphere(10);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
example006();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
72
examples/Old/example007.scad
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
|
||||
module cutout()
|
||||
{
|
||||
intersection() {
|
||||
rotate(90, [1, 0, 0])
|
||||
translate([0, 0, -50])
|
||||
linear_extrude(height = 100, convexity = 1)
|
||||
import(file = "example007.dxf", layer = "cutout1");
|
||||
|
||||
rotate(90, [0, 0, 1])
|
||||
rotate(90, [1, 0, 0])
|
||||
translate([0, 0, -50])
|
||||
linear_extrude(height = 100, convexity = 2)
|
||||
import(file = "example007.dxf", layer = "cutout2");
|
||||
}
|
||||
}
|
||||
|
||||
module clip()
|
||||
{
|
||||
difference() {
|
||||
// NB! We have to use the deprecated module here since the "dorn"
|
||||
// layer contains an open polyline, which is not yet supported
|
||||
// by the import() module.
|
||||
rotate_extrude(file = "example007.dxf",
|
||||
layer="dorn", convexity = 3);
|
||||
for (r = [0, 90])
|
||||
rotate(r, [0, 0, 1])
|
||||
cutout();
|
||||
}
|
||||
}
|
||||
|
||||
module cutview()
|
||||
{
|
||||
difference() {
|
||||
difference() {
|
||||
translate([0, 0, -10]) clip();
|
||||
|
||||
rotate(20, [0, 0, 1])
|
||||
rotate(-20, [0, 1, 0])
|
||||
translate([18, 0, 0])
|
||||
cube(30, center = true);
|
||||
}
|
||||
|
||||
# render(convexity = 5) intersection() {
|
||||
translate([0, 0, -10])
|
||||
clip();
|
||||
|
||||
rotate(20, [0, 0, 1])
|
||||
rotate(-20, [0, 1, 0])
|
||||
translate([18, 0, 0])
|
||||
cube(30, center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
translate([0, 0, -10]) clip();
|
||||
|
||||
// cutview();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
42
examples/Old/example008.scad
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
echo(version=version());
|
||||
|
||||
difference() {
|
||||
intersection() {
|
||||
translate([ -25, -25, -25])
|
||||
linear_extrude(height = 50, convexity = 3)
|
||||
import(file = "example008.dxf", layer = "G");
|
||||
|
||||
rotate(90, [1, 0, 0])
|
||||
translate([ -25, -125, -25])
|
||||
linear_extrude(height = 50, convexity = 3)
|
||||
import(file = "example008.dxf", layer = "E");
|
||||
|
||||
rotate(90, [0, 1, 0])
|
||||
translate([ -125, -125, -25])
|
||||
linear_extrude(height = 50, convexity = 3)
|
||||
import(file = "example008.dxf", layer = "B");
|
||||
}
|
||||
|
||||
intersection() {
|
||||
translate([ -125, -25, -26])
|
||||
linear_extrude(height = 52, convexity = 1)
|
||||
import(file = "example008.dxf", layer = "X");
|
||||
|
||||
rotate(90, [0, 1, 0])
|
||||
translate([ -125, -25, -26])
|
||||
linear_extrude(height = 52, convexity = 1)
|
||||
import(file = "example008.dxf", layer = "X");
|
||||
}
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
40
examples/Old/example009.scad
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
echo(version=version());
|
||||
|
||||
bodywidth = dxf_dim(file = "example009.dxf", name = "bodywidth");
|
||||
fanwidth = dxf_dim(file = "example009.dxf", name = "fanwidth");
|
||||
platewidth = dxf_dim(file = "example009.dxf", name = "platewidth");
|
||||
fan_side_center = dxf_cross(file = "example009.dxf", layer = "fan_side_center");
|
||||
fanrot = dxf_dim(file = "example009.dxf", name = "fanrot");
|
||||
|
||||
% linear_extrude(height = bodywidth, center = true, convexity = 10)
|
||||
import(file = "example009.dxf", layer = "body");
|
||||
|
||||
% for (z = [+(bodywidth/2 + platewidth/2),
|
||||
-(bodywidth/2 + platewidth/2)]) {
|
||||
translate([0, 0, z])
|
||||
linear_extrude(height = platewidth, center = true, convexity = 10)
|
||||
import(file = "example009.dxf", layer = "plate");
|
||||
}
|
||||
|
||||
intersection() {
|
||||
linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot)
|
||||
import(file = "example009.dxf", layer = "fan_top");
|
||||
|
||||
// NB! We have to use the deprecated module here since the "fan_side"
|
||||
// layer contains an open polyline, which is not yet supported
|
||||
// by the import() module.
|
||||
rotate_extrude(file = "example009.dxf", layer = "fan_side",
|
||||
origin = fan_side_center, convexity = 10);
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,23 +1,17 @@
|
|||
// surface.scad - Example for surface() usage in OpenSCAD
|
||||
//
|
||||
// surface.dat generated using octave:
|
||||
|
||||
// example010.dat generated using octave:
|
||||
// d = (sin(1:0.2:10)' * cos(1:0.2:10)) * 10;
|
||||
// save("surface.dat", "d");
|
||||
// save("example010.dat", "d");
|
||||
|
||||
echo(version=version());
|
||||
|
||||
intersection()
|
||||
{
|
||||
surface(file = "surface.dat",
|
||||
center = true, convexity = 5);
|
||||
intersection() {
|
||||
surface(file = "example010.dat", center = true, convexity = 5);
|
||||
|
||||
rotate(45, [0, 0, 1])
|
||||
surface(file = "surface.dat",
|
||||
center = true, convexity = 5);
|
||||
rotate(45, [0, 0, 1])
|
||||
surface(file = "example010.dat", center = true, convexity = 5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
echo(version=version());
|
||||
|
||||
polyhedron(
|
||||
points = [
|
||||
[10, 0, 0],
|
||||
[0, 10, 0],
|
||||
[-10, 0, 0],
|
||||
[0, -10, 0],
|
||||
[0, 0, 10]
|
||||
],
|
||||
faces = [
|
||||
[0, 1, 2, 3],
|
||||
[4, 1, 0],
|
||||
[4, 2, 1],
|
||||
[4, 3, 2],
|
||||
[4, 0, 3]
|
||||
]
|
||||
points = [
|
||||
[10, 0, 0],
|
||||
[0, 10, 0],
|
||||
[-10, 0, 0],
|
||||
[0, -10, 0],
|
||||
[0, 0, 10]
|
||||
],
|
||||
triangles = [
|
||||
[0, 1, 2, 3],
|
||||
[4, 1, 0],
|
||||
[4, 2, 1],
|
||||
[4, 3, 2],
|
||||
[4, 0, 3]
|
||||
]
|
||||
);
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
|
|
@ -1,19 +1,15 @@
|
|||
// difference_cube.scad - Example for difference() usage in OpenSCAD
|
||||
// example012.stl is generated from Basics/LetterBlock.scad
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module difference_cube()
|
||||
{
|
||||
difference() {
|
||||
cube(30, center = true);
|
||||
sphere(20);
|
||||
}
|
||||
difference() {
|
||||
sphere(20);
|
||||
|
||||
translate([ -2.92, 0.5, +20 ])
|
||||
rotate([180, 0, 180])
|
||||
import("example012.stl", convexity = 5);
|
||||
}
|
||||
|
||||
difference_cube();
|
||||
|
||||
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
24
examples/Old/example013.scad
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
echo(version=version());
|
||||
|
||||
intersection() {
|
||||
linear_extrude(height = 100, center = true, convexity= 3)
|
||||
import(file = "example013.dxf");
|
||||
rotate([0, 90, 0])
|
||||
linear_extrude(height = 100, center = true, convexity= 3)
|
||||
import(file = "example013.dxf");
|
||||
rotate([90, 0, 0])
|
||||
linear_extrude(height = 100, center = true, convexity= 3)
|
||||
import(file = "example013.dxf");
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
echo(version=version());
|
||||
|
||||
intersection_for(i = [
|
||||
[0, 0, 0],
|
||||
[10, 20, 300],
|
||||
[200, 40, 57],
|
||||
[20, 88, 57]
|
||||
])
|
||||
rotate(i) cube([100, 20, 20], center = true);
|
||||
[0, 0, 0],
|
||||
[10, 20, 300],
|
||||
[200, 40, 57],
|
||||
[20, 88, 57]
|
||||
])
|
||||
rotate(i) cube([100, 20, 20], center = true);
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
|
|
@ -1,29 +1,26 @@
|
|||
echo(version=version());
|
||||
|
||||
module shape()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
translate([ -35, -35 ]) intersection()
|
||||
{
|
||||
union() {
|
||||
difference() {
|
||||
square(100, true);
|
||||
square(50, true);
|
||||
}
|
||||
translate([ 50, 50 ])
|
||||
square(15, true);
|
||||
}
|
||||
rotate(45) translate([ 0, -15 ]) square([ 100, 30 ]);
|
||||
}
|
||||
difference() {
|
||||
translate([ -35, -35 ]) intersection() {
|
||||
union() {
|
||||
difference() {
|
||||
square(100, true);
|
||||
square(50, true);
|
||||
}
|
||||
translate([ 50, 50 ]) square(15, true);
|
||||
}
|
||||
rotate(45) translate([ 0, -15 ]) square([ 100, 30 ]);
|
||||
}
|
||||
|
||||
rotate(-45) scale([ 0.7, 1.3 ]) circle(5);
|
||||
}
|
||||
rotate(-45) scale([ 0.7, 1.3 ]) circle(5);
|
||||
}
|
||||
|
||||
import(file = "flat_body.dxf", layer = "body",
|
||||
convexity = 6, scale=2);
|
||||
import(file = "example009.dxf", layer = "body", convexity = 6, scale=2);
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
// linear_extrude(convexity = 10, center = true)
|
||||
shape();
|
||||
|
||||
|
|
@ -1,34 +1,34 @@
|
|||
// chopped_blocks.stl is derived from Basics/LetterBlock.scad
|
||||
// The exported STL was converted to binary using MeshLab
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module blk1() {
|
||||
cube([ 65, 28, 28 ], center = true);
|
||||
cube([ 65, 28, 28 ], center = true);
|
||||
}
|
||||
|
||||
module blk2() {
|
||||
difference() {
|
||||
translate([ 0, 0, 7.5 ])
|
||||
cube([ 60, 28, 14 ], center = true);
|
||||
cube([ 8, 32, 32 ], center = true);
|
||||
}
|
||||
difference() {
|
||||
translate([ 0, 0, 7.5 ]) cube([ 60, 28, 14 ], center = true);
|
||||
cube([ 8, 32, 32 ], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module chop() {
|
||||
translate([ -18, 0, 0 ])
|
||||
import(file = "chopped_blocks.stl", convexity = 12);
|
||||
translate([ -18, 0, 0 ])
|
||||
import(file = "example016.stl", convexity = 12);
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
difference() {
|
||||
blk1();
|
||||
for (alpha = [0, 90, 180, 270]) {
|
||||
rotate(alpha, [ 1, 0, 0]) render(convexity = 12)
|
||||
difference() {
|
||||
blk2();
|
||||
chop();
|
||||
}
|
||||
}
|
||||
blk1();
|
||||
for (alpha = [0, 90, 180, 270]) {
|
||||
rotate(alpha, [ 1, 0, 0])
|
||||
render(convexity = 12)
|
||||
difference() {
|
||||
blk2();
|
||||
chop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
174
examples/Old/example017.scad
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
|
||||
// To render the DXF file from the command line:
|
||||
// openscad -o example017.dxf -D'mode="parts"' example017.scad
|
||||
|
||||
// mode = "parts";
|
||||
// mode = "exploded";
|
||||
mode = "assembled";
|
||||
|
||||
thickness = 6;
|
||||
locklen1 = 15;
|
||||
locklen2 = 10;
|
||||
boltlen = 15;
|
||||
midhole = 10;
|
||||
inner1_to_inner2 = 50;
|
||||
total_height = 80;
|
||||
|
||||
module shape_tripod()
|
||||
{
|
||||
x1 = 0;
|
||||
x2 = x1 + thickness;
|
||||
x3 = x2 + locklen1;
|
||||
x4 = x3 + thickness;
|
||||
x5 = x4 + inner1_to_inner2;
|
||||
x6 = x5 - thickness;
|
||||
x7 = x6 - locklen2;
|
||||
x8 = x7 - thickness;
|
||||
x9 = x8 - thickness;
|
||||
x10 = x9 - thickness;
|
||||
|
||||
y1 = 0;
|
||||
y2 = y1 + thickness;
|
||||
y3 = y2 + thickness;
|
||||
y4 = y3 + thickness;
|
||||
y5 = y3 + total_height - 3*thickness;
|
||||
y6 = y5 + thickness;
|
||||
|
||||
union() {
|
||||
difference() {
|
||||
polygon([
|
||||
[ x1, y2 ], [ x2, y2 ],
|
||||
[ x2, y1 ], [ x3, y1 ], [ x3, y2 ],
|
||||
[ x4, y2 ], [ x4, y1 ], [ x5, y1 ],
|
||||
[ x5 + thickness, y3 ], [ x5, y4 ],
|
||||
[ x5, y5 ],
|
||||
[ x6, y5 ], [ x6, y6 ], [ x7, y6 ], [ x7, y5 ], [ x8, y5 ],
|
||||
[ x8, y6 ], [ x9, y5 ],
|
||||
[ x9, y4 ], [ x10, y3 ],
|
||||
[ x2, y3 ]
|
||||
]);
|
||||
translate([ x10, y4 ]) circle(thickness);
|
||||
translate([ x5 + thickness, y4 ]) circle(thickness);
|
||||
}
|
||||
|
||||
translate([ x5, y1 ]) square([ boltlen - thickness, thickness*2 ]);
|
||||
|
||||
translate([ x5 + boltlen - thickness, y2 ]) circle(thickness);
|
||||
|
||||
translate([ x2, y2 ]) intersection() {
|
||||
circle(thickness);
|
||||
translate([ -thickness*2, 0 ]) square(thickness*2);
|
||||
}
|
||||
|
||||
translate([ x8, y5 ]) intersection() {
|
||||
circle(thickness);
|
||||
translate([ -thickness*2, 0 ]) square(thickness*2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module shape_inner_disc()
|
||||
{
|
||||
difference() {
|
||||
circle(midhole + boltlen + 2*thickness + locklen2);
|
||||
for (alpha = [ 0, 120, 240 ]) {
|
||||
rotate(alpha) translate([ 0, midhole + boltlen + thickness + locklen2/2 ]) square([ thickness, locklen2 ], true);
|
||||
}
|
||||
circle(midhole + boltlen);
|
||||
}
|
||||
}
|
||||
|
||||
module shape_outer_disc()
|
||||
{
|
||||
difference() {
|
||||
circle(midhole + boltlen + inner1_to_inner2 + 2*thickness + locklen1);
|
||||
for (alpha = [ 0, 120, 240 ]) {
|
||||
rotate(alpha) translate([ 0, midhole + boltlen + inner1_to_inner2 + thickness + locklen1/2 ]) square([ thickness, locklen1 ], true);
|
||||
}
|
||||
circle(midhole + boltlen + inner1_to_inner2);
|
||||
}
|
||||
}
|
||||
|
||||
module parts()
|
||||
{
|
||||
tripod_x_off = locklen1 - locklen2 + inner1_to_inner2;
|
||||
tripod_y_off = max(midhole + boltlen + inner1_to_inner2 + 4*thickness + locklen1, total_height);
|
||||
|
||||
shape_inner_disc();
|
||||
shape_outer_disc();
|
||||
|
||||
for (s = [ [1,1], [-1,1], [1,-1] ]) {
|
||||
scale(s) translate([ tripod_x_off, -tripod_y_off ]) shape_tripod();
|
||||
}
|
||||
}
|
||||
|
||||
module exploded()
|
||||
{
|
||||
translate([ 0, 0, total_height + 2*thickness ]) linear_extrude(height = thickness, convexity = 4) shape_inner_disc();
|
||||
linear_extrude(height = thickness, convexity = 4) shape_outer_disc();
|
||||
|
||||
color([ 0.7, 0.7, 1 ]) for (alpha = [ 0, 120, 240 ]) {
|
||||
rotate(alpha)
|
||||
translate([ 0, thickness*2 + locklen1 + inner1_to_inner2 + boltlen + midhole, 1.5*thickness ])
|
||||
rotate([ 90, 0, -90 ])
|
||||
linear_extrude(height = thickness, convexity = 10, center = true) shape_tripod();
|
||||
}
|
||||
}
|
||||
|
||||
module bottle()
|
||||
{
|
||||
r = boltlen + midhole;
|
||||
h = total_height - thickness*2;
|
||||
|
||||
rotate_extrude(convexity = 2) {
|
||||
square([ r, h ]);
|
||||
|
||||
translate([ 0, h ]) {
|
||||
intersection() {
|
||||
square([ r, r ]);
|
||||
scale([ 1, 0.7 ]) circle(r);
|
||||
}
|
||||
}
|
||||
translate([ 0, h+r ]) {
|
||||
intersection() {
|
||||
translate([ 0, -r/2 ]) square([ r/2, r ]);
|
||||
circle(r/2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module assembled()
|
||||
{
|
||||
translate([ 0, 0, total_height - thickness ]) linear_extrude(height = thickness, convexity = 4) shape_inner_disc();
|
||||
linear_extrude(height = thickness, convexity = 4) shape_outer_disc();
|
||||
|
||||
color([ 0.7, 0.7, 1 ]) for (alpha = [ 0, 120, 240 ]) {
|
||||
rotate(alpha)
|
||||
translate([ 0, thickness*2 + locklen1 + inner1_to_inner2 + boltlen + midhole, 0 ])
|
||||
rotate([ 90, 0, -90 ])
|
||||
linear_extrude(height = thickness, convexity = 10, center = true) shape_tripod();
|
||||
}
|
||||
|
||||
% translate([ 0, 0, thickness*2]) bottle();
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
|
||||
if (mode == "parts") parts();
|
||||
|
||||
if (mode == "exploded") exploded();
|
||||
|
||||
if (mode == "assembled") assembled();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
echo(version=version());
|
||||
|
||||
module step(len, mod)
|
||||
{
|
||||
for (i = [0:$children-1])
|
||||
translate([ len*(i - ($children-1)/2), 0, 0 ]) children((i+mod) % $children);
|
||||
for (i = [0:$children-1]) {
|
||||
translate([ len*(i - ($children-1)/2), 0, 0 ]) children((i+mod) % $children);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = [1:4])
|
||||
{
|
||||
translate([0, -250+i*100, 0]) step(100, i)
|
||||
{
|
||||
sphere(30);
|
||||
cube(60, true);
|
||||
cylinder(r = 30, h = 50, center = true);
|
||||
echo(version=version());
|
||||
|
||||
union() {
|
||||
cube(45, true);
|
||||
rotate([45, 0, 0]) cube(50, true);
|
||||
rotate([0, 45, 0]) cube(50, true);
|
||||
rotate([0, 0, 45]) cube(50, true);
|
||||
}
|
||||
}
|
||||
for (i = [1:4]) {
|
||||
translate([0, -250+i*100, 0]) step(100, i) {
|
||||
sphere(30);
|
||||
cube(60, true);
|
||||
cylinder(r = 30, h = 50, center = true);
|
||||
|
||||
union() {
|
||||
cube(45, true);
|
||||
rotate([45, 0, 0]) cube(50, true);
|
||||
rotate([0, 45, 0]) cube(50, true);
|
||||
rotate([0, 0, 45]) cube(50, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
|
|
@ -1,16 +1,15 @@
|
|||
echo(version=version());
|
||||
|
||||
function get_cylinder_h(p) = lookup(p, [
|
||||
[ -200, 5 ],
|
||||
[ -50, 20 ],
|
||||
[ -20, 18 ],
|
||||
[ +80, 25 ],
|
||||
[ +150, 2 ]
|
||||
]);
|
||||
[ -200, 5 ],
|
||||
[ -50, 20 ],
|
||||
[ -20, 18 ],
|
||||
[ +80, 25 ],
|
||||
[ +150, 2 ]
|
||||
]);
|
||||
|
||||
echo(version=version());
|
||||
for (i = [-100:5:+100]) {
|
||||
// echo(i, get_cylinder_h(i));
|
||||
translate([ i, 0, -30 ]) cylinder(r1 = 6, r2 = 2, h = get_cylinder_h(i)*3);
|
||||
translate([ i, 0, -30 ]) cylinder(r1 = 6, r2 = 2, h = get_cylinder_h(i)*3);
|
||||
}
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
90
examples/Old/example020.scad
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
|
||||
module screw(type = 2, r1 = 15, r2 = 20, n = 7, h = 100, t = 8)
|
||||
{
|
||||
linear_extrude(height = h, twist = 360*t/n, convexity = t)
|
||||
difference() {
|
||||
circle(r2);
|
||||
for (i = [0:n-1]) {
|
||||
if (type == 1) rotate(i*360/n) polygon([
|
||||
[ 2*r2, 0 ],
|
||||
[ r2, 0 ],
|
||||
[ r1*cos(180/n), r1*sin(180/n) ],
|
||||
[ r2*cos(360/n), r2*sin(360/n) ],
|
||||
[ 2*r2*cos(360/n), 2*r2*sin(360/n) ],
|
||||
]);
|
||||
if (type == 2) rotate(i*360/n) polygon([
|
||||
[ 2*r2, 0 ],
|
||||
[ r2, 0 ],
|
||||
[ r1*cos(90/n), r1*sin(90/n) ],
|
||||
[ r1*cos(180/n), r1*sin(180/n) ],
|
||||
[ r2*cos(270/n), r2*sin(270/n) ],
|
||||
[ 2*r2*cos(270/n), 2*r2*sin(270/n) ],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module nut(type = 2, r1 = 16, r2 = 21, r3 = 30, s = 6, n = 7, h = 100/5, t = 8/5)
|
||||
{
|
||||
difference() {
|
||||
cylinder($fn = s, r = r3, h = h);
|
||||
translate([ 0, 0, -h/2 ]) screw(type, r1, r2, n, h*2, t*2);
|
||||
}
|
||||
}
|
||||
|
||||
module spring(r1 = 100, r2 = 10, h = 100, hr = 12)
|
||||
{
|
||||
stepsize = 1/16;
|
||||
module segment(i1, i2) {
|
||||
alpha1 = i1 * 360*r2/hr;
|
||||
alpha2 = i2 * 360*r2/hr;
|
||||
len1 = sin(acos(i1*2-1))*r2;
|
||||
len2 = sin(acos(i2*2-1))*r2;
|
||||
if (len1 < 0.01) {
|
||||
polygon([
|
||||
[ cos(alpha1)*r1, sin(alpha1)*r1 ],
|
||||
[ cos(alpha2)*(r1-len2), sin(alpha2)*(r1-len2) ],
|
||||
[ cos(alpha2)*(r1+len2), sin(alpha2)*(r1+len2) ]
|
||||
]);
|
||||
}
|
||||
if (len2 < 0.01) {
|
||||
polygon([
|
||||
[ cos(alpha1)*(r1+len1), sin(alpha1)*(r1+len1) ],
|
||||
[ cos(alpha1)*(r1-len1), sin(alpha1)*(r1-len1) ],
|
||||
[ cos(alpha2)*r1, sin(alpha2)*r1 ],
|
||||
]);
|
||||
}
|
||||
if (len1 >= 0.01 && len2 >= 0.01) {
|
||||
polygon([
|
||||
[ cos(alpha1)*(r1+len1), sin(alpha1)*(r1+len1) ],
|
||||
[ cos(alpha1)*(r1-len1), sin(alpha1)*(r1-len1) ],
|
||||
[ cos(alpha2)*(r1-len2), sin(alpha2)*(r1-len2) ],
|
||||
[ cos(alpha2)*(r1+len2), sin(alpha2)*(r1+len2) ]
|
||||
]);
|
||||
}
|
||||
}
|
||||
linear_extrude(height = 100, twist = 180*h/hr,
|
||||
$fn = (hr/r2)/stepsize, convexity = 5) {
|
||||
for (i = [ stepsize : stepsize : 1+stepsize/2 ])
|
||||
segment(i-stepsize, min(i, 1));
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
translate([ -30, 0, 0 ]) screw();
|
||||
|
||||
translate([ 30, 0, 0 ]) nut();
|
||||
|
||||
spring();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,34 +1,34 @@
|
|||
echo(version=version());
|
||||
|
||||
module thing()
|
||||
{
|
||||
$fa = 30;
|
||||
difference() {
|
||||
sphere(r = 25);
|
||||
cylinder(h = 62.5, r1 = 12.5, r2 = 6.25, center = true);
|
||||
rotate(90, [ 1, 0, 0 ]) cylinder(h = 62.5,
|
||||
r1 = 12.5, r2 = 6.25, center = true);
|
||||
rotate(90, [ 0, 1, 0 ]) cylinder(h = 62.5,
|
||||
r1 = 12.5, r2 = 6.25, center = true);
|
||||
}
|
||||
$fa = 30;
|
||||
difference() {
|
||||
sphere(r = 25);
|
||||
cylinder(h = 62.5, r1 = 12.5, r2 = 6.25, center = true);
|
||||
rotate(90, [ 1, 0, 0 ]) cylinder(h = 62.5,
|
||||
r1 = 12.5, r2 = 6.25, center = true);
|
||||
rotate(90, [ 0, 1, 0 ]) cylinder(h = 62.5,
|
||||
r1 = 12.5, r2 = 6.25, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module demo_proj()
|
||||
{
|
||||
linear_extrude(center = true, height = 0.5) projection(cut = false) thing();
|
||||
% thing();
|
||||
linear_extrude(center = true, height = 0.5) projection(cut = false) thing();
|
||||
% thing();
|
||||
}
|
||||
|
||||
module demo_cut()
|
||||
{
|
||||
for (i=[-20:5:+20]) {
|
||||
rotate(-30, [ 1, 1, 0 ]) translate([ 0, 0, -i ])
|
||||
linear_extrude(center = true, height = 0.5) projection(cut = true)
|
||||
translate([ 0, 0, i ]) rotate(+30, [ 1, 1, 0 ]) thing();
|
||||
}
|
||||
% thing();
|
||||
for (i=[-20:5:+20]) {
|
||||
rotate(-30, [ 1, 1, 0 ]) translate([ 0, 0, -i ])
|
||||
linear_extrude(center = true, height = 0.5) projection(cut = true)
|
||||
translate([ 0, 0, i ]) rotate(+30, [ 1, 1, 0 ]) thing();
|
||||
}
|
||||
% thing();
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
translate([ -30, 0, 0 ]) demo_proj();
|
||||
translate([ +30, 0, 0 ]) demo_cut();
|
||||
|
||||
48
examples/Old/example022.scad
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
// size is a vector [w, h, d]
|
||||
module roundedBox(size, radius, sidesonly)
|
||||
{
|
||||
rot = [ [0,0,0], [90,0,90], [90,90,0] ];
|
||||
if (sidesonly) {
|
||||
cube(size - [2*radius,0,0], true);
|
||||
cube(size - [0,2*radius,0], true);
|
||||
for (x = [radius-size[0]/2, -radius+size[0]/2],
|
||||
y = [radius-size[1]/2, -radius+size[1]/2]) {
|
||||
translate([x,y,0]) cylinder(r=radius, h=size[2], center=true);
|
||||
}
|
||||
}
|
||||
else {
|
||||
cube([size[0], size[1]-radius*2, size[2]-radius*2], center=true);
|
||||
cube([size[0]-radius*2, size[1], size[2]-radius*2], center=true);
|
||||
cube([size[0]-radius*2, size[1]-radius*2, size[2]], center=true);
|
||||
|
||||
for (axis = [0:2]) {
|
||||
for (x = [radius-size[axis]/2, -radius+size[axis]/2],
|
||||
y = [radius-size[(axis+1)%3]/2, -radius+size[(axis+1)%3]/2]) {
|
||||
rotate(rot[axis])
|
||||
translate([x,y,0])
|
||||
cylinder(h=size[(axis+2)%3]-2*radius, r=radius, center=true);
|
||||
}
|
||||
}
|
||||
for (x = [radius-size[0]/2, -radius+size[0]/2],
|
||||
y = [radius-size[1]/2, -radius+size[1]/2],
|
||||
z = [radius-size[2]/2, -radius+size[2]/2]) {
|
||||
translate([x,y,z]) sphere(radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo(version=version());
|
||||
translate([-15,0,0])roundedBox([20,30,40], 5, true);
|
||||
translate([15,0,0]) roundedBox([20,30,40], 5, false);
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -21,8 +21,7 @@ module clock_hour_words(word_offset=20.0,word_height=2.0) {
|
|||
|
||||
clock_hour_words(word_offset=16.0,word_height=5.0);
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
// Written by Andrew Plumb
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
|
|
@ -1,450 +0,0 @@
|
|||
solid OpenSCAD_Model
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex -15 15 0
|
||||
vertex -15 -15 0
|
||||
vertex -15 -15 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 -0 -0
|
||||
outer loop
|
||||
vertex -15 15 15
|
||||
vertex -15 15 0
|
||||
vertex -15 -15 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 6.88264 -10.8438 15
|
||||
vertex -6.49335 -10.8438 15
|
||||
vertex 15 -15 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -9.24535 11.3642 15
|
||||
vertex -15 15 15
|
||||
vertex -9.24535 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 5.72964 11.3642 15
|
||||
vertex -5.22034 11.3642 15
|
||||
vertex 0.351639 -0.977737 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -15 15 15
|
||||
vertex -15 -15 15
|
||||
vertex -9.24535 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -5.22034 11.3642 15
|
||||
vertex -15 15 15
|
||||
vertex -9.24535 11.3642 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 15 15 15
|
||||
vertex -15 15 15
|
||||
vertex -5.22034 11.3642 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -0 1
|
||||
outer loop
|
||||
vertex 9.82664 11.3642 15
|
||||
vertex 15 15 15
|
||||
vertex 5.72964 11.3642 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 15 15 15
|
||||
vertex -5.22034 11.3642 15
|
||||
vertex 5.72964 11.3642 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 9.82664 -10.8438 15
|
||||
vertex 15 15 15
|
||||
vertex 9.82664 11.3642 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 15 -15 15
|
||||
vertex 9.82664 -10.8438 15
|
||||
vertex 6.88264 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -0 1
|
||||
outer loop
|
||||
vertex 15 -15 15
|
||||
vertex 15 15 15
|
||||
vertex 9.82664 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -15 -15 15
|
||||
vertex 15 -15 15
|
||||
vertex -6.49335 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -6.49335 -10.8438 15
|
||||
vertex 1.07065 -4.69974 15
|
||||
vertex -0.726349 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -0 1
|
||||
outer loop
|
||||
vertex 6.88264 -10.8438 15
|
||||
vertex 6.88264 8.29724 15
|
||||
vertex 1.07065 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -15 -15 15
|
||||
vertex -6.49335 -10.8438 15
|
||||
vertex -9.24535 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 6.88264 -10.8438 15
|
||||
vertex 1.07065 -4.69974 15
|
||||
vertex -6.49335 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -6.49335 8.29724 15
|
||||
vertex -6.49335 -10.8438 15
|
||||
vertex -0.726349 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 15 -15 15
|
||||
vertex 15 -15 0
|
||||
vertex 15 15 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 15 15 15
|
||||
vertex 15 -15 15
|
||||
vertex 15 15 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 15 15 0
|
||||
vertex -15 15 0
|
||||
vertex -15 15 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 15 15 15
|
||||
vertex 15 15 0
|
||||
vertex -15 15 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex 15 -15 0
|
||||
vertex -15 -15 0
|
||||
vertex -15 15 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0 -0 -1
|
||||
outer loop
|
||||
vertex 15 15 0
|
||||
vertex 15 -15 0
|
||||
vertex -15 15 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex -15 -15 15
|
||||
vertex -15 -15 0
|
||||
vertex 15 -15 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0 -1 -0
|
||||
outer loop
|
||||
vertex 15 -15 15
|
||||
vertex -15 -15 15
|
||||
vertex 15 -15 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -6.49335 8.29724 5
|
||||
vertex -9.24535 -10.8438 5
|
||||
vertex -6.49335 -10.8438 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -6.49335 8.29724 5
|
||||
vertex -9.24535 11.3642 5
|
||||
vertex -9.24535 -10.8438 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 1.07065 -4.69974 5
|
||||
vertex 0.351639 -0.977737 5
|
||||
vertex -0.726349 -4.69974 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 0.351639 -0.977737 5
|
||||
vertex -6.49335 8.29724 5
|
||||
vertex -0.726349 -4.69974 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -5.22034 11.3642 5
|
||||
vertex -9.24535 11.3642 5
|
||||
vertex -6.49335 8.29724 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 9.82664 -10.8438 5
|
||||
vertex 6.88264 8.29724 5
|
||||
vertex 6.88264 -10.8438 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 9.82664 11.3642 5
|
||||
vertex 6.88264 8.29724 5
|
||||
vertex 9.82664 -10.8438 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 9.82664 11.3642 5
|
||||
vertex 5.72964 11.3642 5
|
||||
vertex 6.88264 8.29724 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 6.88264 8.29724 5
|
||||
vertex 0.351639 -0.977737 5
|
||||
vertex 1.07065 -4.69974 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 5.72964 11.3642 5
|
||||
vertex 0.351639 -0.977737 5
|
||||
vertex 6.88264 8.29724 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 0.351639 -0.977737 5
|
||||
vertex -5.22034 11.3642 5
|
||||
vertex -6.49335 8.29724 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.914058 0.405584 0
|
||||
outer loop
|
||||
vertex -0.726349 -4.69974 5
|
||||
vertex -6.49335 8.29724 5
|
||||
vertex -6.49335 8.29724 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.914058 0.405584 0
|
||||
outer loop
|
||||
vertex -0.726349 -4.69974 15
|
||||
vertex -0.726349 -4.69974 5
|
||||
vertex -6.49335 8.29724 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 1.07065 -4.69974 5
|
||||
vertex -0.726349 -4.69974 5
|
||||
vertex -0.726349 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 1.07065 -4.69974 15
|
||||
vertex 1.07065 -4.69974 5
|
||||
vertex -0.726349 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.912882 0.408223 0
|
||||
outer loop
|
||||
vertex 6.88264 8.29724 5
|
||||
vertex 1.07065 -4.69974 5
|
||||
vertex 1.07065 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.912882 0.408223 0
|
||||
outer loop
|
||||
vertex 6.88264 8.29724 15
|
||||
vertex 6.88264 8.29724 5
|
||||
vertex 1.07065 -4.69974 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 6.88264 -10.8438 15
|
||||
vertex 6.88264 -10.8438 5
|
||||
vertex 6.88264 8.29724 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 6.88264 8.29724 15
|
||||
vertex 6.88264 -10.8438 15
|
||||
vertex 6.88264 8.29724 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 9.82664 -10.8438 5
|
||||
vertex 6.88264 -10.8438 5
|
||||
vertex 6.88264 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 9.82664 -10.8438 15
|
||||
vertex 9.82664 -10.8438 5
|
||||
vertex 6.88264 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex 9.82664 11.3642 5
|
||||
vertex 9.82664 -10.8438 5
|
||||
vertex 9.82664 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 -0 -0
|
||||
outer loop
|
||||
vertex 9.82664 11.3642 15
|
||||
vertex 9.82664 11.3642 5
|
||||
vertex 9.82664 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex 5.72964 11.3642 15
|
||||
vertex 5.72964 11.3642 5
|
||||
vertex 9.82664 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0 -1 -0
|
||||
outer loop
|
||||
vertex 9.82664 11.3642 15
|
||||
vertex 5.72964 11.3642 15
|
||||
vertex 9.82664 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.916746 -0.399471 0
|
||||
outer loop
|
||||
vertex 0.351639 -0.977737 15
|
||||
vertex 0.351639 -0.977737 5
|
||||
vertex 5.72964 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.916746 -0.399471 0
|
||||
outer loop
|
||||
vertex 5.72964 11.3642 15
|
||||
vertex 0.351639 -0.977737 15
|
||||
vertex 5.72964 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.911421 -0.411475 -0
|
||||
outer loop
|
||||
vertex -5.22034 11.3642 15
|
||||
vertex -5.22034 11.3642 5
|
||||
vertex 0.351639 -0.977737 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.911421 -0.411475 -0
|
||||
outer loop
|
||||
vertex 0.351639 -0.977737 15
|
||||
vertex -5.22034 11.3642 15
|
||||
vertex 0.351639 -0.977737 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex -9.24535 11.3642 15
|
||||
vertex -9.24535 11.3642 5
|
||||
vertex -5.22034 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0 -1 -0
|
||||
outer loop
|
||||
vertex -5.22034 11.3642 15
|
||||
vertex -9.24535 11.3642 15
|
||||
vertex -5.22034 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex -9.24535 -10.8438 15
|
||||
vertex -9.24535 -10.8438 5
|
||||
vertex -9.24535 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex -9.24535 11.3642 15
|
||||
vertex -9.24535 -10.8438 15
|
||||
vertex -9.24535 11.3642 5
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex -6.49335 -10.8438 5
|
||||
vertex -9.24535 -10.8438 5
|
||||
vertex -9.24535 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex -6.49335 -10.8438 15
|
||||
vertex -6.49335 -10.8438 5
|
||||
vertex -9.24535 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex -6.49335 8.29724 5
|
||||
vertex -6.49335 -10.8438 5
|
||||
vertex -6.49335 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 -0 -0
|
||||
outer loop
|
||||
vertex -6.49335 8.29724 15
|
||||
vertex -6.49335 8.29724 5
|
||||
vertex -6.49335 -10.8438 15
|
||||
endloop
|
||||
endfacet
|
||||
endsolid OpenSCAD_Model
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
echo(version=version());
|
||||
|
||||
// size is a vector [w, h, d]
|
||||
module roundedBox(size, radius, sidesonly)
|
||||
{
|
||||
rot = [ [0,0,0], [90,0,90], [90,90,0] ];
|
||||
if (sidesonly) {
|
||||
cube(size - [2*radius,0,0], true);
|
||||
cube(size - [0,2*radius,0], true);
|
||||
for (x = [radius-size[0]/2, -radius+size[0]/2],
|
||||
y = [radius-size[1]/2, -radius+size[1]/2]) {
|
||||
translate([x,y,0]) cylinder(r=radius, h=size[2], center=true);
|
||||
}
|
||||
}
|
||||
else {
|
||||
cube([size[0], size[1]-radius*2, size[2]-radius*2], center=true);
|
||||
cube([size[0]-radius*2, size[1], size[2]-radius*2], center=true);
|
||||
cube([size[0]-radius*2, size[1]-radius*2, size[2]], center=true);
|
||||
|
||||
for (axis = [0:2]) {
|
||||
for (x = [radius-size[axis]/2, -radius+size[axis]/2],
|
||||
y = [radius-size[(axis+1)%3]/2, -radius+size[(axis+1)%3]/2]) {
|
||||
rotate(rot[axis])
|
||||
translate([x,y,0])
|
||||
cylinder(h=size[(axis+2)%3]-2*radius, r=radius, center=true);
|
||||
}
|
||||
}
|
||||
for (x = [radius-size[0]/2, -radius+size[0]/2],
|
||||
y = [radius-size[1]/2, -radius+size[1]/2],
|
||||
z = [radius-size[2]/2, -radius+size[2]/2]) {
|
||||
translate([x,y,z]) sphere(radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
translate([-15,0,0])roundedBox([20,30,40], 5, true);
|
||||
translate([15,0,0]) roundedBox([20,30,40], 5, false);
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
// To render the DXF file from the command line:
|
||||
// openscad -o tripod.dxf -D'mode="parts"' example017.scad
|
||||
|
||||
// mode = "parts";
|
||||
// mode = "exploded";
|
||||
mode = "assembled";
|
||||
|
||||
thickness = 6;
|
||||
locklen1 = 15;
|
||||
locklen2 = 10;
|
||||
boltlen = 15;
|
||||
midhole = 10;
|
||||
inner1_to_inner2 = 50;
|
||||
total_height = 80;
|
||||
|
||||
echo(version=version());
|
||||
|
||||
module shape_tripod()
|
||||
{
|
||||
x1 = 0;
|
||||
x2 = x1 + thickness;
|
||||
x3 = x2 + locklen1;
|
||||
x4 = x3 + thickness;
|
||||
x5 = x4 + inner1_to_inner2;
|
||||
x6 = x5 - thickness;
|
||||
x7 = x6 - locklen2;
|
||||
x8 = x7 - thickness;
|
||||
x9 = x8 - thickness;
|
||||
x10 = x9 - thickness;
|
||||
|
||||
y1 = 0;
|
||||
y2 = y1 + thickness;
|
||||
y3 = y2 + thickness;
|
||||
y4 = y3 + thickness;
|
||||
y5 = y3 + total_height - 3*thickness;
|
||||
y6 = y5 + thickness;
|
||||
|
||||
union()
|
||||
{
|
||||
difference() {
|
||||
polygon([
|
||||
[ x1, y2 ], [ x2, y2 ],
|
||||
[ x2, y1 ], [ x3, y1 ], [ x3, y2 ],
|
||||
[ x4, y2 ], [ x4, y1 ], [ x5, y1 ],
|
||||
[ x5 + thickness, y3 ], [ x5, y4 ],
|
||||
[ x5, y5 ],
|
||||
[ x6, y5 ], [ x6, y6 ], [ x7, y6 ], [ x7, y5 ], [ x8, y5 ],
|
||||
[ x8, y6 ], [ x9, y5 ],
|
||||
[ x9, y4 ], [ x10, y3 ],
|
||||
[ x2, y3 ]
|
||||
]);
|
||||
translate([ x10, y4 ]) circle(thickness);
|
||||
translate([ x5 + thickness, y4 ]) circle(thickness);
|
||||
}
|
||||
|
||||
translate([ x5, y1 ])
|
||||
square([ boltlen - thickness, thickness*2 ]);
|
||||
|
||||
translate([ x5 + boltlen - thickness, y2 ]) circle(thickness);
|
||||
|
||||
translate([ x2, y2 ]) intersection() {
|
||||
circle(thickness);
|
||||
translate([ -thickness*2, 0 ]) square(thickness*2);
|
||||
}
|
||||
|
||||
translate([ x8, y5 ]) intersection() {
|
||||
circle(thickness);
|
||||
translate([ -thickness*2, 0 ]) square(thickness*2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module shape_inner_disc()
|
||||
{
|
||||
difference() {
|
||||
circle(midhole + boltlen + 2*thickness + locklen2);
|
||||
for (alpha = [ 0, 120, 240 ])
|
||||
rotate(alpha) translate([ 0, midhole + boltlen + thickness + locklen2/2 ]) square([ thickness, locklen2 ], true);
|
||||
circle(midhole + boltlen);
|
||||
}
|
||||
}
|
||||
|
||||
module shape_outer_disc()
|
||||
{
|
||||
difference() {
|
||||
circle(midhole + boltlen + inner1_to_inner2 + 2*thickness + locklen1);
|
||||
for (alpha = [ 0, 120, 240 ])
|
||||
rotate(alpha) translate([ 0, midhole + boltlen + inner1_to_inner2 + thickness + locklen1/2 ]) square([ thickness, locklen1 ], true);
|
||||
circle(midhole + boltlen + inner1_to_inner2);
|
||||
}
|
||||
}
|
||||
|
||||
module parts()
|
||||
{
|
||||
tripod_x_off = locklen1 - locklen2 + inner1_to_inner2;
|
||||
tripod_y_off = max(midhole + boltlen + inner1_to_inner2 + 4*thickness + locklen1, total_height);
|
||||
|
||||
shape_inner_disc();
|
||||
shape_outer_disc();
|
||||
|
||||
for (s = [ [1,1], [-1,1], [1,-1] ])
|
||||
scale(s) translate([ tripod_x_off, -tripod_y_off ]) shape_tripod();
|
||||
}
|
||||
|
||||
module exploded()
|
||||
{
|
||||
translate([ 0, 0, total_height + 2*thickness ]) linear_extrude(height = thickness, convexity = 4) shape_inner_disc();
|
||||
linear_extrude(height = thickness, convexity = 4) shape_outer_disc();
|
||||
|
||||
color([ 0.7, 0.7, 1 ]) for (alpha = [ 0, 120, 240 ])
|
||||
rotate(alpha) translate([ 0, thickness*2 + locklen1 + inner1_to_inner2 + boltlen + midhole, 1.5*thickness ])
|
||||
rotate([ 90, 0, -90 ]) linear_extrude(height = thickness, convexity = 10, center = true) shape_tripod();
|
||||
}
|
||||
|
||||
module bottle()
|
||||
{
|
||||
r = boltlen + midhole;
|
||||
h = total_height - thickness*2;
|
||||
|
||||
rotate_extrude(convexity = 2)
|
||||
{
|
||||
square([ r, h ]);
|
||||
|
||||
translate([ 0, h ])
|
||||
intersection() {
|
||||
square([ r, r ]);
|
||||
scale([ 1, 0.7 ]) circle(r);
|
||||
}
|
||||
|
||||
translate([ 0, h+r ])
|
||||
intersection() {
|
||||
translate([ 0, -r/2 ]) square([ r/2, r ]);
|
||||
circle(r/2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module assembled()
|
||||
{
|
||||
translate([ 0, 0, total_height - thickness ]) linear_extrude(height = thickness, convexity = 4) shape_inner_disc();
|
||||
linear_extrude(height = thickness, convexity = 4) shape_outer_disc();
|
||||
|
||||
color([ 0.7, 0.7, 1 ]) for (alpha = [ 0, 120, 240 ])
|
||||
rotate(alpha) translate([ 0, thickness*2 + locklen1 + inner1_to_inner2 + boltlen + midhole, 0 ])
|
||||
rotate([ 90, 0, -90 ]) linear_extrude(height = thickness, convexity = 10, center = true) shape_tripod();
|
||||
|
||||
% translate([ 0, 0, thickness*2]) bottle();
|
||||
}
|
||||
|
||||
if (mode == "parts")
|
||||
parts();
|
||||
|
||||
if (mode == "exploded")
|
||||
exploded();
|
||||
|
||||
if (mode == "assembled")
|
||||
assembled();
|
||||
|
||||
// Written by Clifford Wolf <clifford@clifford.at> and Marius
|
||||
// Kintel <marius@kintel.net>
|
||||
//
|
||||
// To the extent possible under law, the author(s) have dedicated all
|
||||
// copyright and related and neighboring rights to this software to the
|
||||
// public domain worldwide. This software is distributed without any
|
||||
// warranty.
|
||||
//
|
||||
// You should have received a copy of the CC0 Public Domain
|
||||
// Dedication along with this software.
|
||||
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
58
examples/examples.json
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
"Basics": [
|
||||
"CSG.scad",
|
||||
"CSG-modules.scad",
|
||||
"logo.scad",
|
||||
"LetterBlock.scad",
|
||||
"logo_and_text.scad",
|
||||
"linear_extrude.scad",
|
||||
"rotate_extrude.scad",
|
||||
"text_on_cube.scad",
|
||||
"projection.scad"
|
||||
],
|
||||
"Functions": [
|
||||
"functions.scad",
|
||||
"list_comprehensions.scad",
|
||||
"recursion.scad",
|
||||
"polygon_areas.scad"
|
||||
],
|
||||
"Shapes": [
|
||||
],
|
||||
"Extrusion": [
|
||||
],
|
||||
"Advanced": [
|
||||
"offset.scad",
|
||||
"surface_image.scad",
|
||||
"children.scad",
|
||||
"children_indexed.scad",
|
||||
"GEB.scad",
|
||||
"animation.scad",
|
||||
"module_recursion.scad"
|
||||
],
|
||||
"Old": [
|
||||
"example001.scad",
|
||||
"example002.scad",
|
||||
"example003.scad",
|
||||
"example004.scad",
|
||||
"example005.scad",
|
||||
"example006.scad",
|
||||
"example007.scad",
|
||||
"example008.scad",
|
||||
"example009.scad",
|
||||
"example010.scad",
|
||||
"example011.scad",
|
||||
"example012.scad",
|
||||
"example013.scad",
|
||||
"example014.scad",
|
||||
"example015.scad",
|
||||
"example016.scad",
|
||||
"example017.scad",
|
||||
"example018.scad",
|
||||
"example019.scad",
|
||||
"example020.scad",
|
||||
"example021.scad",
|
||||
"example022.scad",
|
||||
"example023.scad",
|
||||
"example024.scad"
|
||||
]
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 5ff8ce964c71f59db463a8adf81bb22a2a48dee3
|
||||
Subproject commit 85794e4b4f2294a1b445a4d928866bedd5cc64ec
|
||||
322
locale/cs.po
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: OpenSCAD 2013.02.24\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-02-01 18:03+0100\n"
|
||||
"POT-Creation-Date: 2015-03-05 14:54-0500\n"
|
||||
"PO-Revision-Date: 2015-02-01 20:54+0100\n"
|
||||
"Last-Translator: Miro Hrončok <miro@hroncok.cz>\n"
|
||||
"Language-Team: Czech <miro@hroncok.cz>\n"
|
||||
|
|
@ -79,46 +79,6 @@ msgstr ""
|
|||
"family:'Courier New,courier';\"> text(t = "OpenSCAD", font = "
|
||||
""Liberation Sans:style=Italic");</span></pre></body></html>"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Vítá vás OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Nový"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Otevřít"
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Nápověda"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Nedávné"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Otevřít nedávný soubor"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Příklady"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "Otevřít příklad"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Příště nezobrazovat"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Verze"
|
||||
|
||||
#: objects/ui_LibraryInfoDialog.h:75
|
||||
msgid "Lib & Build Info"
|
||||
msgstr "Info o knihovnách a sestavení"
|
||||
|
|
@ -729,11 +689,11 @@ msgstr "Předvolby"
|
|||
msgid "3D View"
|
||||
msgstr "3D zobrazení"
|
||||
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:86
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:109
|
||||
msgid "Advanced"
|
||||
msgstr "Pokročilé"
|
||||
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2418
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2422
|
||||
msgid "Editor"
|
||||
msgstr "Editor"
|
||||
|
||||
|
|
@ -999,6 +959,46 @@ msgstr "Povolit lokalizaci rozhraní OpenSCADu (vyžaduje restart aplikace)"
|
|||
msgid "%v / %m"
|
||||
msgstr "%v / %m"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Vítá vás OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Nový"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Otevřít"
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Nápověda"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Nedávné"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Otevřít nedávný soubor"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Příklady"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "Otevřít příklad"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Příště nezobrazovat"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Verze"
|
||||
|
||||
#: src/Camera.cc:126
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
@ -1008,113 +1008,6 @@ msgstr ""
|
|||
"Pohled: posun = [ %.2f %.2f %.2f ], rotace = [ %.2f %.2f %.2f ], vzdálenost "
|
||||
"= %.2f"
|
||||
|
||||
#: src/mainwin.cc:778 src/mainwin.cc:1354
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Bezejmenný.scad"
|
||||
|
||||
#: src/mainwin.cc:971
|
||||
msgid "Compile error."
|
||||
msgstr "Chyba kompilace."
|
||||
|
||||
#: src/mainwin.cc:974
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Chyba při kompilaci '%1'."
|
||||
|
||||
#: src/mainwin.cc:978
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] "Kompilace vyvolala %1 varování."
|
||||
msgstr[1] "Kompilace vyvolala %1 varování."
|
||||
msgstr[2] "Kompilace vyvolala %1 varování."
|
||||
|
||||
#: src/mainwin.cc:988
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr "Pro podrobnosti nahlédněte do <a href=\"#console\">konzole</a>."
|
||||
|
||||
#: src/mainwin.cc:1353
|
||||
msgid "Save File"
|
||||
msgstr "Uložit soubor"
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "OpenSCAD designy(*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1365
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 již existuje.\n"
|
||||
"Chcete jej nahradit?"
|
||||
|
||||
#: src/mainwin.cc:1684
|
||||
msgid "Application"
|
||||
msgstr "Aplikace"
|
||||
|
||||
#: src/mainwin.cc:1685
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Dokument byl pozměněn.\n"
|
||||
"Opravdu jej chcete znovu načíst?"
|
||||
|
||||
#: src/mainwin.cc:2038 src/mainwin.cc:2094
|
||||
msgid "Export %1 File"
|
||||
msgstr "Exportovat %s soubor(ů)"
|
||||
|
||||
#: src/mainwin.cc:2039 src/mainwin.cc:2098
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Soubor(ů) (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2040
|
||||
msgid "Untitled"
|
||||
msgstr "Bezejmenný"
|
||||
|
||||
#: src/mainwin.cc:2096
|
||||
msgid "Untitled%1"
|
||||
msgstr "Bezejmenný%1"
|
||||
|
||||
#: src/mainwin.cc:2147
|
||||
msgid "Export CSG File"
|
||||
msgstr "Exportovat CSG soubor"
|
||||
|
||||
#: src/mainwin.cc:2148
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Bezejmenný.csg"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "CSG soubory (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "Export Image"
|
||||
msgstr "Exportovat obrázek"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "PNG Soubory (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2423
|
||||
msgid "Console"
|
||||
msgstr "Konzole"
|
||||
|
||||
#: src/mainwin.cc:2560
|
||||
msgid "The document has been modified."
|
||||
msgstr "Dokument byl pozměněn."
|
||||
|
||||
#: src/mainwin.cc:2561
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Chcete uložit změny?"
|
||||
|
||||
#: src/openscad.cc:604
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig potřebuje aktualizovat cache.\n"
|
||||
"To může trvat až několik minut."
|
||||
|
||||
#: src/QGLView.cc:129
|
||||
msgid ""
|
||||
"Warning: You may experience OpenCSG rendering errors.\n"
|
||||
|
|
@ -1152,22 +1045,137 @@ msgstr ""
|
|||
"%s (%s)\n"
|
||||
"OpenGL verze %s\n"
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "za odsazením"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Basics"
|
||||
msgstr "Základy"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Shapes"
|
||||
msgstr "Tvary"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Extrusion"
|
||||
msgstr "Vytažení"
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Old"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:779 src/mainwin.cc:1356
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Bezejmenný.scad"
|
||||
|
||||
#: src/mainwin.cc:973
|
||||
msgid "Compile error."
|
||||
msgstr "Chyba kompilace."
|
||||
|
||||
#: src/mainwin.cc:976
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Chyba při kompilaci '%1'."
|
||||
|
||||
#: src/mainwin.cc:980
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] "Kompilace vyvolala %1 varování."
|
||||
msgstr[1] "Kompilace vyvolala %1 varování."
|
||||
msgstr[2] "Kompilace vyvolala %1 varování."
|
||||
|
||||
#: src/mainwin.cc:990
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr "Pro podrobnosti nahlédněte do <a href=\"#console\">konzole</a>."
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "Save File"
|
||||
msgstr "Uložit soubor"
|
||||
|
||||
#: src/mainwin.cc:1357
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "OpenSCAD designy(*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1367
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 již existuje.\n"
|
||||
"Chcete jej nahradit?"
|
||||
|
||||
#: src/mainwin.cc:1686
|
||||
msgid "Application"
|
||||
msgstr "Aplikace"
|
||||
|
||||
#: src/mainwin.cc:1687
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Dokument byl pozměněn.\n"
|
||||
"Opravdu jej chcete znovu načíst?"
|
||||
|
||||
#: src/mainwin.cc:2040 src/mainwin.cc:2096
|
||||
msgid "Export %1 File"
|
||||
msgstr "Exportovat %s soubor(ů)"
|
||||
|
||||
#: src/mainwin.cc:2041 src/mainwin.cc:2100
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Soubor(ů) (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2042
|
||||
msgid "Untitled"
|
||||
msgstr "Bezejmenný"
|
||||
|
||||
#: src/mainwin.cc:2098
|
||||
msgid "Untitled%1"
|
||||
msgstr "Bezejmenný%1"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "Export CSG File"
|
||||
msgstr "Exportovat CSG soubor"
|
||||
|
||||
#: src/mainwin.cc:2150
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Bezejmenný.csg"
|
||||
|
||||
#: src/mainwin.cc:2151
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "CSG soubory (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "Export Image"
|
||||
msgstr "Exportovat obrázek"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "PNG Soubory (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2427
|
||||
msgid "Console"
|
||||
msgstr "Konzole"
|
||||
|
||||
#: src/mainwin.cc:2564
|
||||
msgid "The document has been modified."
|
||||
msgstr "Dokument byl pozměněn."
|
||||
|
||||
#: src/mainwin.cc:2565
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Chcete uložit změny?"
|
||||
|
||||
#: src/mainwin.cc:2697
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig potřebuje aktualizovat cache.\n"
|
||||
"To může trvat až několik minut."
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "za odsazením"
|
||||
|
||||
#~ msgid "Top"
|
||||
#~ msgstr "Shora"
|
||||
|
||||
|
|
|
|||
320
locale/de.po
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: OpenSCAD 2014.01.05\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-02-01 18:03+0100\n"
|
||||
"POT-Creation-Date: 2015-03-05 14:54-0500\n"
|
||||
"PO-Revision-Date: 2015-02-01 19:39+0100\n"
|
||||
"Last-Translator: Torsten Paul <Torsten.Paul@gmx.de>\n"
|
||||
"Language-Team: German\n"
|
||||
|
|
@ -89,46 +89,6 @@ msgstr ""
|
|||
"family:'Courier New,courier';\"> text(t = "OpenSCAD", font = "
|
||||
""Liberation Sans:style=Italic");</span></pre></body></html>"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Willkommen zu OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Neu"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Zuletzt benutze Dateien"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Datei öffnen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Beispiele"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "Beispiel öffnen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Dialog nicht wieder anzeigen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Version"
|
||||
|
||||
#: objects/ui_LibraryInfoDialog.h:75
|
||||
msgid "Lib & Build Info"
|
||||
msgstr "Versionsinformationen"
|
||||
|
|
@ -749,11 +709,11 @@ msgstr "Einstellungen"
|
|||
msgid "3D View"
|
||||
msgstr "3D Ansicht"
|
||||
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:86
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:109
|
||||
msgid "Advanced"
|
||||
msgstr "Erweitert"
|
||||
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2418
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2422
|
||||
msgid "Editor"
|
||||
msgstr "Editor"
|
||||
|
||||
|
|
@ -1019,6 +979,46 @@ msgstr "Lokalisierung der GUI einschalten (benötigt Neustart von OpenSCAD)"
|
|||
msgid "%v / %m"
|
||||
msgstr "%v / %m"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Willkommen zu OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Neu"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Zuletzt benutze Dateien"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Datei öffnen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Beispiele"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "Beispiel öffnen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Dialog nicht wieder anzeigen"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Version"
|
||||
|
||||
#: src/Camera.cc:126
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
@ -1028,112 +1028,6 @@ msgstr ""
|
|||
"Ansicht: Verschiebung = [ %.2f %.2f %.2f ], Rotation = [ %.2f %.2f %.2f ], "
|
||||
"Abstand = %.2f"
|
||||
|
||||
#: src/mainwin.cc:778 src/mainwin.cc:1354
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Unbenannt.scad"
|
||||
|
||||
#: src/mainwin.cc:971
|
||||
msgid "Compile error."
|
||||
msgstr "Fehler"
|
||||
|
||||
#: src/mainwin.cc:974
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Fehler beim Kompilieren von '%1'."
|
||||
|
||||
#: src/mainwin.cc:978
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] "%1 Warnung beim kompilieren."
|
||||
msgstr[1] "%1 Warnungen beim kompilieren."
|
||||
|
||||
#: src/mainwin.cc:988
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr " Für Details das <a href=\"#console\">Konsole Fenster</a> öffnen."
|
||||
|
||||
#: src/mainwin.cc:1353
|
||||
msgid "Save File"
|
||||
msgstr "Datei speichern"
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "OpenSCAD Designs (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1365
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 existiert bereits.\n"
|
||||
"Mochten Sie die Datei ersetzen?"
|
||||
|
||||
#: src/mainwin.cc:1684
|
||||
msgid "Application"
|
||||
msgstr "Application"
|
||||
|
||||
#: src/mainwin.cc:1685
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Das Dokument ist verändert.\n"
|
||||
"Möchten Sie die Datei wirklich neu laden?"
|
||||
|
||||
#: src/mainwin.cc:2038 src/mainwin.cc:2094
|
||||
msgid "Export %1 File"
|
||||
msgstr "%1 Datei exportieren"
|
||||
|
||||
#: src/mainwin.cc:2039 src/mainwin.cc:2098
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Dateien (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2040
|
||||
msgid "Untitled"
|
||||
msgstr "Unbenannt"
|
||||
|
||||
#: src/mainwin.cc:2096
|
||||
msgid "Untitled%1"
|
||||
msgstr "Unbenannt%1"
|
||||
|
||||
#: src/mainwin.cc:2147
|
||||
msgid "Export CSG File"
|
||||
msgstr "Export CSG File"
|
||||
|
||||
#: src/mainwin.cc:2148
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Unbenannt.csg"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "CSG Dateien (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "Export Image"
|
||||
msgstr "Image exportieren"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "PNG Dateien (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2423
|
||||
msgid "Console"
|
||||
msgstr "Konsole"
|
||||
|
||||
#: src/mainwin.cc:2560
|
||||
msgid "The document has been modified."
|
||||
msgstr "Das Dokument ist verändert."
|
||||
|
||||
#: src/mainwin.cc:2561
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Möchten Sie die Änderungen speichern?"
|
||||
|
||||
#: src/openscad.cc:604
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig muss den Font-Cache aktualisieren.\n"
|
||||
"Dies kann einige Minuten dauern."
|
||||
|
||||
#: src/QGLView.cc:129
|
||||
msgid ""
|
||||
"Warning: You may experience OpenCSG rendering errors.\n"
|
||||
|
|
@ -1173,22 +1067,136 @@ msgstr ""
|
|||
"%s (%s)\n"
|
||||
"OpenGL version %s\n"
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "nach Einrückung"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Basics"
|
||||
msgstr "Grundlagen"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Shapes"
|
||||
msgstr "Formen"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Extrusion"
|
||||
msgstr "Extrusion"
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Old"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:779 src/mainwin.cc:1356
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Unbenannt.scad"
|
||||
|
||||
#: src/mainwin.cc:973
|
||||
msgid "Compile error."
|
||||
msgstr "Fehler"
|
||||
|
||||
#: src/mainwin.cc:976
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Fehler beim Kompilieren von '%1'."
|
||||
|
||||
#: src/mainwin.cc:980
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] "%1 Warnung beim kompilieren."
|
||||
msgstr[1] "%1 Warnungen beim kompilieren."
|
||||
|
||||
#: src/mainwin.cc:990
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr " Für Details das <a href=\"#console\">Konsole Fenster</a> öffnen."
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "Save File"
|
||||
msgstr "Datei speichern"
|
||||
|
||||
#: src/mainwin.cc:1357
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "OpenSCAD Designs (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1367
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 existiert bereits.\n"
|
||||
"Mochten Sie die Datei ersetzen?"
|
||||
|
||||
#: src/mainwin.cc:1686
|
||||
msgid "Application"
|
||||
msgstr "Application"
|
||||
|
||||
#: src/mainwin.cc:1687
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Das Dokument ist verändert.\n"
|
||||
"Möchten Sie die Datei wirklich neu laden?"
|
||||
|
||||
#: src/mainwin.cc:2040 src/mainwin.cc:2096
|
||||
msgid "Export %1 File"
|
||||
msgstr "%1 Datei exportieren"
|
||||
|
||||
#: src/mainwin.cc:2041 src/mainwin.cc:2100
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Dateien (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2042
|
||||
msgid "Untitled"
|
||||
msgstr "Unbenannt"
|
||||
|
||||
#: src/mainwin.cc:2098
|
||||
msgid "Untitled%1"
|
||||
msgstr "Unbenannt%1"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "Export CSG File"
|
||||
msgstr "Export CSG File"
|
||||
|
||||
#: src/mainwin.cc:2150
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Unbenannt.csg"
|
||||
|
||||
#: src/mainwin.cc:2151
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "CSG Dateien (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "Export Image"
|
||||
msgstr "Image exportieren"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "PNG Dateien (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2427
|
||||
msgid "Console"
|
||||
msgstr "Konsole"
|
||||
|
||||
#: src/mainwin.cc:2564
|
||||
msgid "The document has been modified."
|
||||
msgstr "Das Dokument ist verändert."
|
||||
|
||||
#: src/mainwin.cc:2565
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Möchten Sie die Änderungen speichern?"
|
||||
|
||||
#: src/mainwin.cc:2697
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig muss den Font-Cache aktualisieren.\n"
|
||||
"Dies kann einige Minuten dauern."
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "nach Einrückung"
|
||||
|
||||
#~ msgid "Top"
|
||||
#~ msgstr "Oben"
|
||||
|
||||
|
|
|
|||
318
locale/es.po
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: OpenSCAD 2015.01.21\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-02-01 18:03+0100\n"
|
||||
"POT-Creation-Date: 2015-03-05 14:54-0500\n"
|
||||
"PO-Revision-Date: 2015-01-21 22:36-0300\n"
|
||||
"Last-Translator: Ernesto Bazzano <bazza@riseup.net>\n"
|
||||
"Language-Team: Español\n"
|
||||
|
|
@ -90,47 +90,6 @@ msgstr ""
|
|||
"family:'Courier New,courier';\"> text(t = "OpenSCAD", font = "
|
||||
""Liberation Sans:style=Italic");</span></pre></body></html>"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Bienvenido a OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Recientes"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Abrir recientes"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Ejemplos"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "Abrir ejemplos"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "No mostrar de nuevo"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
#, fuzzy
|
||||
msgid "Version"
|
||||
msgstr "Extrusión"
|
||||
|
||||
#: objects/ui_LibraryInfoDialog.h:75
|
||||
msgid "Lib & Build Info"
|
||||
msgstr "Informacion de las librerias y compilación"
|
||||
|
|
@ -792,11 +751,11 @@ msgstr "Preferencias"
|
|||
msgid "3D View"
|
||||
msgstr "Vista 3D"
|
||||
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:86
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:109
|
||||
msgid "Advanced"
|
||||
msgstr "Advertencia"
|
||||
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2418
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2422
|
||||
msgid "Editor"
|
||||
msgstr "Editar"
|
||||
|
||||
|
|
@ -1076,6 +1035,47 @@ msgstr ""
|
|||
msgid "%v / %m"
|
||||
msgstr "%v / %m"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Bienvenido a OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Recientes"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Abrir recientes"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Ejemplos"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "Abrir ejemplos"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "No mostrar de nuevo"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
#, fuzzy
|
||||
msgid "Version"
|
||||
msgstr "Extrusión"
|
||||
|
||||
#: src/Camera.cc:126
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
@ -1085,110 +1085,6 @@ msgstr ""
|
|||
"Marco: posición = [ %.2f %.2f %.2f ], rotación = [ %.2f %.2f %.2f ], "
|
||||
"distancia = %.2f"
|
||||
|
||||
#: src/mainwin.cc:778 src/mainwin.cc:1354
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Sintitulo.scad"
|
||||
|
||||
#: src/mainwin.cc:971
|
||||
msgid "Compile error."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:974
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:978
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mainwin.cc:988
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1353
|
||||
msgid "Save File"
|
||||
msgstr "Salver archivo"
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "Diseño OpenSCAD (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1365
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 existe.\n"
|
||||
"Deseas reemplazarlo?"
|
||||
|
||||
#: src/mainwin.cc:1684
|
||||
msgid "Application"
|
||||
msgstr "Aplicación"
|
||||
|
||||
#: src/mainwin.cc:1685
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"El documento ha sido modificado.\n"
|
||||
"¿Realmente desea volver a cargar el archivo ?"
|
||||
|
||||
#: src/mainwin.cc:2038 src/mainwin.cc:2094
|
||||
msgid "Export %1 File"
|
||||
msgstr "Exportar %1 Archivo"
|
||||
|
||||
#: src/mainwin.cc:2039 src/mainwin.cc:2098
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Archivo (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2040
|
||||
msgid "Untitled"
|
||||
msgstr "Sin titulo"
|
||||
|
||||
#: src/mainwin.cc:2096
|
||||
msgid "Untitled%1"
|
||||
msgstr "Sintitulo%1"
|
||||
|
||||
#: src/mainwin.cc:2147
|
||||
msgid "Export CSG File"
|
||||
msgstr "Exportar archivo CSG"
|
||||
|
||||
#: src/mainwin.cc:2148
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Sintitulo.csg"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "Archivo CSG (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "Export Image"
|
||||
msgstr "Exportar una imagen"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "Archivo PNG (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2423
|
||||
msgid "Console"
|
||||
msgstr "Consola"
|
||||
|
||||
#: src/mainwin.cc:2560
|
||||
msgid "The document has been modified."
|
||||
msgstr "El documento ha sido modificado."
|
||||
|
||||
#: src/mainwin.cc:2561
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "¿Quieres guardar los cambios ?"
|
||||
|
||||
#: src/openscad.cc:604
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
|
||||
#: src/QGLView.cc:129
|
||||
msgid ""
|
||||
"Warning: You may experience OpenCSG rendering errors.\n"
|
||||
|
|
@ -1228,22 +1124,134 @@ msgstr ""
|
|||
"%s (%s)\n"
|
||||
"Versión OpenGL %s\n"
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Basics"
|
||||
msgstr "Básico"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Shapes"
|
||||
msgstr "Formas"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Extrusion"
|
||||
msgstr "Extrusión"
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Old"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:779 src/mainwin.cc:1356
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Sintitulo.scad"
|
||||
|
||||
#: src/mainwin.cc:973
|
||||
msgid "Compile error."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:976
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:980
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mainwin.cc:990
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "Save File"
|
||||
msgstr "Salver archivo"
|
||||
|
||||
#: src/mainwin.cc:1357
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "Diseño OpenSCAD (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1367
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 existe.\n"
|
||||
"Deseas reemplazarlo?"
|
||||
|
||||
#: src/mainwin.cc:1686
|
||||
msgid "Application"
|
||||
msgstr "Aplicación"
|
||||
|
||||
#: src/mainwin.cc:1687
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"El documento ha sido modificado.\n"
|
||||
"¿Realmente desea volver a cargar el archivo ?"
|
||||
|
||||
#: src/mainwin.cc:2040 src/mainwin.cc:2096
|
||||
msgid "Export %1 File"
|
||||
msgstr "Exportar %1 Archivo"
|
||||
|
||||
#: src/mainwin.cc:2041 src/mainwin.cc:2100
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Archivo (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2042
|
||||
msgid "Untitled"
|
||||
msgstr "Sin titulo"
|
||||
|
||||
#: src/mainwin.cc:2098
|
||||
msgid "Untitled%1"
|
||||
msgstr "Sintitulo%1"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "Export CSG File"
|
||||
msgstr "Exportar archivo CSG"
|
||||
|
||||
#: src/mainwin.cc:2150
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Sintitulo.csg"
|
||||
|
||||
#: src/mainwin.cc:2151
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "Archivo CSG (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "Export Image"
|
||||
msgstr "Exportar una imagen"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "Archivo PNG (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2427
|
||||
msgid "Console"
|
||||
msgstr "Consola"
|
||||
|
||||
#: src/mainwin.cc:2564
|
||||
msgid "The document has been modified."
|
||||
msgstr "El documento ha sido modificado."
|
||||
|
||||
#: src/mainwin.cc:2565
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "¿Quieres guardar los cambios ?"
|
||||
|
||||
#: src/mainwin.cc:2697
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Top"
|
||||
#~ msgstr "Arriba"
|
||||
|
||||
|
|
|
|||
320
locale/fr.po
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: OpenSCAD 2013.02.07\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-02-01 18:03+0100\n"
|
||||
"POT-Creation-Date: 2015-03-05 14:54-0500\n"
|
||||
"PO-Revision-Date: 2015-01-27 18:47-0500\n"
|
||||
"Last-Translator: Keven Villeneuve <keven.villeneuve@gmail.com>\n"
|
||||
"Language-Team: French\n"
|
||||
|
|
@ -89,46 +89,6 @@ msgstr ""
|
|||
"family:'Courier New,courier';\"> text(t = "OpenSCAD", font = "
|
||||
""Liberation Sans:style=Italic");</span></pre></body></html>"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Bienvenue dans OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Nouveau"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Ouvrir..."
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Aide"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Récents"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Ouvrir un fichier récent"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "&Ouvrir un example"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Ne plus afficher"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Version"
|
||||
|
||||
#: objects/ui_LibraryInfoDialog.h:75
|
||||
msgid "Lib & Build Info"
|
||||
msgstr "Bibliothèques et Infos de la version"
|
||||
|
|
@ -792,11 +752,11 @@ msgstr "Préférences"
|
|||
msgid "3D View"
|
||||
msgstr "&Vue 3D"
|
||||
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:86
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:109
|
||||
msgid "Advanced"
|
||||
msgstr "Avancé"
|
||||
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2418
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2422
|
||||
msgid "Editor"
|
||||
msgstr "Éditeur"
|
||||
|
||||
|
|
@ -1065,6 +1025,46 @@ msgstr ""
|
|||
msgid "%v / %m"
|
||||
msgstr "%v / %m"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Bienvenue dans OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr "Nouveau"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr "Ouvrir..."
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr "Aide"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr "Récents"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Ouvrir un fichier récent"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Exemples"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr "&Ouvrir un example"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Ne plus afficher"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Version"
|
||||
|
||||
#: src/Camera.cc:126
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
@ -1074,112 +1074,6 @@ msgstr ""
|
|||
"Fenêtre de rendu: translation = [ %.2f %.2f %.2f ], rotation = [ %.2f %.2f "
|
||||
"%.2f ], distance = %.2f"
|
||||
|
||||
#: src/mainwin.cc:778 src/mainwin.cc:1354
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Untitled.scad"
|
||||
|
||||
#: src/mainwin.cc:971
|
||||
msgid "Compile error."
|
||||
msgstr "Erreur de Compilation."
|
||||
|
||||
#: src/mainwin.cc:974
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Erreur lors de la compilation de '%1'."
|
||||
|
||||
#: src/mainwin.cc:978
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] "La compilation a généré %1 avertissement"
|
||||
msgstr[1] "La compilation a généré %1 avertissements"
|
||||
|
||||
#: src/mainwin.cc:988
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr " Pour détails voir <a href=\"#console\">Fenêtre de la Console</a>."
|
||||
|
||||
#: src/mainwin.cc:1353
|
||||
msgid "Save File"
|
||||
msgstr "Enregistrer le Fichier"
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "OpenSCAD Designs (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1365
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 existe déjà.\n"
|
||||
"Voulez-vous le remplacer?"
|
||||
|
||||
#: src/mainwin.cc:1684
|
||||
msgid "Application"
|
||||
msgstr "Application"
|
||||
|
||||
#: src/mainwin.cc:1685
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Ce document a été modifié.\n"
|
||||
"Voulez-vous vraiment recharger le fichier?"
|
||||
|
||||
#: src/mainwin.cc:2038 src/mainwin.cc:2094
|
||||
msgid "Export %1 File"
|
||||
msgstr "Exporter %1 Fichier"
|
||||
|
||||
#: src/mainwin.cc:2039 src/mainwin.cc:2098
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Fichiers (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2040
|
||||
msgid "Untitled"
|
||||
msgstr "Sans Titre"
|
||||
|
||||
#: src/mainwin.cc:2096
|
||||
msgid "Untitled%1"
|
||||
msgstr "Sans Titre%1"
|
||||
|
||||
#: src/mainwin.cc:2147
|
||||
msgid "Export CSG File"
|
||||
msgstr "Exporter un fichier CSG"
|
||||
|
||||
#: src/mainwin.cc:2148
|
||||
msgid "Untitled.csg"
|
||||
msgstr "SansTitre.csg"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "Fichiers CSG (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "Export Image"
|
||||
msgstr "Exporter une Image"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "Fichiers PNG (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2423
|
||||
msgid "Console"
|
||||
msgstr "Console"
|
||||
|
||||
#: src/mainwin.cc:2560
|
||||
msgid "The document has been modified."
|
||||
msgstr "Ce document a été modifié"
|
||||
|
||||
#: src/mainwin.cc:2561
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Voulez-vous enregistrer vos changements?"
|
||||
|
||||
#: src/openscad.cc:604
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig a besoin de mettre à jour son cache de polices.\n"
|
||||
"Celà peut prendre quelques minutes."
|
||||
|
||||
#: src/QGLView.cc:129
|
||||
msgid ""
|
||||
"Warning: You may experience OpenCSG rendering errors.\n"
|
||||
|
|
@ -1219,22 +1113,136 @@ msgstr ""
|
|||
"%s (%s)\n"
|
||||
"Version OpenGL %s\n"
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "Après indentation"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Basics"
|
||||
msgstr "Bases"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Shapes"
|
||||
msgstr "Formes"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Extrusion"
|
||||
msgstr "Extrusion"
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Old"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:779 src/mainwin.cc:1356
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Untitled.scad"
|
||||
|
||||
#: src/mainwin.cc:973
|
||||
msgid "Compile error."
|
||||
msgstr "Erreur de Compilation."
|
||||
|
||||
#: src/mainwin.cc:976
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Erreur lors de la compilation de '%1'."
|
||||
|
||||
#: src/mainwin.cc:980
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] "La compilation a généré %1 avertissement"
|
||||
msgstr[1] "La compilation a généré %1 avertissements"
|
||||
|
||||
#: src/mainwin.cc:990
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr " Pour détails voir <a href=\"#console\">Fenêtre de la Console</a>."
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "Save File"
|
||||
msgstr "Enregistrer le Fichier"
|
||||
|
||||
#: src/mainwin.cc:1357
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "OpenSCAD Designs (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1367
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 existe déjà.\n"
|
||||
"Voulez-vous le remplacer?"
|
||||
|
||||
#: src/mainwin.cc:1686
|
||||
msgid "Application"
|
||||
msgstr "Application"
|
||||
|
||||
#: src/mainwin.cc:1687
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Ce document a été modifié.\n"
|
||||
"Voulez-vous vraiment recharger le fichier?"
|
||||
|
||||
#: src/mainwin.cc:2040 src/mainwin.cc:2096
|
||||
msgid "Export %1 File"
|
||||
msgstr "Exporter %1 Fichier"
|
||||
|
||||
#: src/mainwin.cc:2041 src/mainwin.cc:2100
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Fichiers (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2042
|
||||
msgid "Untitled"
|
||||
msgstr "Sans Titre"
|
||||
|
||||
#: src/mainwin.cc:2098
|
||||
msgid "Untitled%1"
|
||||
msgstr "Sans Titre%1"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "Export CSG File"
|
||||
msgstr "Exporter un fichier CSG"
|
||||
|
||||
#: src/mainwin.cc:2150
|
||||
msgid "Untitled.csg"
|
||||
msgstr "SansTitre.csg"
|
||||
|
||||
#: src/mainwin.cc:2151
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "Fichiers CSG (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "Export Image"
|
||||
msgstr "Exporter une Image"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "Fichiers PNG (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2427
|
||||
msgid "Console"
|
||||
msgstr "Console"
|
||||
|
||||
#: src/mainwin.cc:2564
|
||||
msgid "The document has been modified."
|
||||
msgstr "Ce document a été modifié"
|
||||
|
||||
#: src/mainwin.cc:2565
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Voulez-vous enregistrer vos changements?"
|
||||
|
||||
#: src/mainwin.cc:2697
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig a besoin de mettre à jour son cache de polices.\n"
|
||||
"Celà peut prendre quelques minutes."
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "Après indentation"
|
||||
|
||||
#~ msgid "Top"
|
||||
#~ msgstr "Dessus"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenSCAD 2015.02.01\n"
|
||||
"Project-Id-Version: OpenSCAD 2015.03.05\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-02-01 19:40+0100\n"
|
||||
"POT-Creation-Date: 2015-03-05 16:09-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
@ -69,46 +69,6 @@ msgid ""
|
|||
""Liberation Sans:style=Italic");</span></pre></body></html>"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_LibraryInfoDialog.h:75
|
||||
msgid "Lib & Build Info"
|
||||
msgstr ""
|
||||
|
|
@ -719,11 +679,11 @@ msgstr ""
|
|||
msgid "3D View"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:86
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:109
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2418
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2422
|
||||
msgid "Editor"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -989,6 +949,46 @@ msgstr ""
|
|||
msgid "%v / %m"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
msgid "Recents"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
msgid "Open Example"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: src/Camera.cc:126
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
@ -996,106 +996,6 @@ msgid ""
|
|||
"distance = %.2f"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:778 src/mainwin.cc:1354
|
||||
msgid "Untitled.scad"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:971
|
||||
msgid "Compile error."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:974
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:978
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mainwin.cc:988
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1353
|
||||
msgid "Save File"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1365
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1684
|
||||
msgid "Application"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1685
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2038 src/mainwin.cc:2094
|
||||
msgid "Export %1 File"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2039 src/mainwin.cc:2098
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2040
|
||||
msgid "Untitled"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2096
|
||||
msgid "Untitled%1"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2147
|
||||
msgid "Export CSG File"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2148
|
||||
msgid "Untitled.csg"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "Export Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2423
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2560
|
||||
msgid "The document has been modified."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2561
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr ""
|
||||
|
||||
#: src/openscad.cc:604
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
|
||||
#: src/QGLView.cc:129
|
||||
msgid ""
|
||||
"Warning: You may experience OpenCSG rendering errors.\n"
|
||||
|
|
@ -1124,18 +1024,126 @@ msgid ""
|
|||
"OpenGL version %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Basics"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Shapes"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Extrusion"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Old"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:779 src/mainwin.cc:1356
|
||||
msgid "Untitled.scad"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:973
|
||||
msgid "Compile error."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:976
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:980
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/mainwin.cc:990
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "Save File"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1357
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1367
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1686
|
||||
msgid "Application"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:1687
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2040 src/mainwin.cc:2096
|
||||
msgid "Export %1 File"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2041 src/mainwin.cc:2100
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2042
|
||||
msgid "Untitled"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2098
|
||||
msgid "Untitled%1"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "Export CSG File"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2150
|
||||
msgid "Untitled.csg"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2151
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "Export Image"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2427
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2564
|
||||
msgid "The document has been modified."
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2565
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:2697
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr ""
|
||||
|
|
|
|||
350
locale/ru.po
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: OpenSCAD 2014.01.05\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-02-01 18:03+0100\n"
|
||||
"POT-Creation-Date: 2015-03-05 16:09-0500\n"
|
||||
"PO-Revision-Date: 2013-02-24 17:50+0100\n"
|
||||
"Last-Translator: <soniczerops@gmail.com>\n"
|
||||
"Language-Team: Russian\n"
|
||||
|
|
@ -70,52 +70,6 @@ msgid ""
|
|||
""Liberation Sans:style=Italic");</span></pre></body></html>"
|
||||
msgstr ""
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
#, fuzzy
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Добро пожаловать в OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
#, fuzzy
|
||||
msgid "New"
|
||||
msgstr "&Создать"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
#, fuzzy
|
||||
msgid "Open"
|
||||
msgstr "&Открыть..."
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "&Справка"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
#, fuzzy
|
||||
msgid "Recents"
|
||||
msgstr "Открыть файл"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Открыть недавние"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Примеры"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
#, fuzzy
|
||||
msgid "Open Example"
|
||||
msgstr "Открыть пример"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Не показывать снова"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Версия"
|
||||
|
||||
#: objects/ui_LibraryInfoDialog.h:75
|
||||
msgid "Lib & Build Info"
|
||||
msgstr "Информация о сборке"
|
||||
|
|
@ -777,11 +731,11 @@ msgstr "Свойства"
|
|||
msgid "3D View"
|
||||
msgstr "3D Вид"
|
||||
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:86
|
||||
#: objects/ui_Preferences.h:1063 src/UIUtils.cc:109
|
||||
msgid "Advanced"
|
||||
msgstr "Дополнительные"
|
||||
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2418
|
||||
#: objects/ui_Preferences.h:1064 src/mainwin.cc:2422
|
||||
msgid "Editor"
|
||||
msgstr "Редактор"
|
||||
|
||||
|
|
@ -1061,127 +1015,60 @@ msgstr "Включить локализацию интерфейса (необх
|
|||
msgid "%v / %m"
|
||||
msgstr "%v / %m"
|
||||
|
||||
#: objects/ui_launchingscreen.h:294
|
||||
#, fuzzy
|
||||
msgid "Welcome to OpenSCAD"
|
||||
msgstr "Добро пожаловать в OpenSCAD"
|
||||
|
||||
#: objects/ui_launchingscreen.h:295
|
||||
#, fuzzy
|
||||
msgid "New"
|
||||
msgstr "&Создать"
|
||||
|
||||
#: objects/ui_launchingscreen.h:296
|
||||
#, fuzzy
|
||||
msgid "Open"
|
||||
msgstr "&Открыть..."
|
||||
|
||||
#: objects/ui_launchingscreen.h:297
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "&Справка"
|
||||
|
||||
#: objects/ui_launchingscreen.h:298
|
||||
#, fuzzy
|
||||
msgid "Recents"
|
||||
msgstr "Открыть файл"
|
||||
|
||||
#: objects/ui_launchingscreen.h:299
|
||||
msgid "Open Recent"
|
||||
msgstr "Открыть недавние"
|
||||
|
||||
#: objects/ui_launchingscreen.h:300 objects/ui_launchingscreen.h:302
|
||||
msgid "Examples"
|
||||
msgstr "Примеры"
|
||||
|
||||
#: objects/ui_launchingscreen.h:303
|
||||
#, fuzzy
|
||||
msgid "Open Example"
|
||||
msgstr "Открыть пример"
|
||||
|
||||
#: objects/ui_launchingscreen.h:312
|
||||
msgid "Don't show again"
|
||||
msgstr "Не показывать снова"
|
||||
|
||||
#: objects/ui_launchingscreen.h:313
|
||||
msgid "Version"
|
||||
msgstr "Версия"
|
||||
|
||||
#: src/Camera.cc:126
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Viewport: translate = [ %.2f %.2f %.2f ], rotate = [ %.2f %.2f %.2f ], "
|
||||
"distance = %.2f"
|
||||
msgstr ""
|
||||
"Обзор: translate = [ %.2f %.2f %.2f ], rotate = [ %.2f %.2f %.2f ], "
|
||||
"distance = %.2f"
|
||||
|
||||
#: src/mainwin.cc:778 src/mainwin.cc:1354
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Безымянный.scad"
|
||||
|
||||
#: src/mainwin.cc:971
|
||||
#, fuzzy
|
||||
msgid "Compile error."
|
||||
msgstr "&Компилировать"
|
||||
|
||||
#: src/mainwin.cc:974
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Ошибка во время компиляции '%1'."
|
||||
|
||||
#: src/mainwin.cc:978
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/mainwin.cc:988
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr "Для подробностей смотреть <a href=\"#console\">окно консоли</a>."
|
||||
|
||||
#: src/mainwin.cc:1353
|
||||
msgid "Save File"
|
||||
msgstr "Сохранить файл"
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "Модели OpenSCAD (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1365
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 уже существует.\n"
|
||||
"Перезаписать?"
|
||||
|
||||
#: src/mainwin.cc:1684
|
||||
msgid "Application"
|
||||
msgstr "Приложение"
|
||||
|
||||
#: src/mainwin.cc:1685
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Документ был изменен.\n"
|
||||
"Хотите перезагрузить документ?"
|
||||
|
||||
#: src/mainwin.cc:2038 src/mainwin.cc:2094
|
||||
#, fuzzy
|
||||
msgid "Export %1 File"
|
||||
msgstr "Экспортировать в DXF..."
|
||||
|
||||
#: src/mainwin.cc:2039 src/mainwin.cc:2098
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Файлов (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2040
|
||||
#, fuzzy
|
||||
msgid "Untitled"
|
||||
msgstr "Безымянный.scad"
|
||||
|
||||
#: src/mainwin.cc:2096
|
||||
#, fuzzy
|
||||
msgid "Untitled%1"
|
||||
msgstr "Безымянный.scad"
|
||||
|
||||
#: src/mainwin.cc:2147
|
||||
msgid "Export CSG File"
|
||||
msgstr "Экспортировать файл CSG"
|
||||
|
||||
#: src/mainwin.cc:2148
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Безимянный.csg"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "Файлы CSG (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "Export Image"
|
||||
msgstr "Экспортировать изображение"
|
||||
|
||||
#: src/mainwin.cc:2175
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "Файлы PNG (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2423
|
||||
msgid "Console"
|
||||
msgstr "Консоль"
|
||||
|
||||
#: src/mainwin.cc:2560
|
||||
#, fuzzy
|
||||
msgid "The document has been modified."
|
||||
msgstr "Документ был изменен."
|
||||
|
||||
#: src/mainwin.cc:2561
|
||||
#, fuzzy
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Сохранить изменения?"
|
||||
|
||||
#: src/openscad.cc:604
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig требуется обновить кеш шрифтов.\n"
|
||||
"Это может занять пару минут."
|
||||
"Обзор: translate = [ %.2f %.2f %.2f ], rotate = [ %.2f %.2f %.2f ], distance "
|
||||
"= %.2f"
|
||||
|
||||
#: src/QGLView.cc:129
|
||||
msgid ""
|
||||
|
|
@ -1222,22 +1109,143 @@ msgstr ""
|
|||
"%s (%s)\n"
|
||||
"Версия OpenGL %s\n"
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "После отступа"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Basics"
|
||||
msgstr "Примитивы"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Shapes"
|
||||
msgstr "Формы"
|
||||
|
||||
#: src/UIUtils.cc:86
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Extrusion"
|
||||
msgstr "Выдавливание"
|
||||
|
||||
#: src/UIUtils.cc:109
|
||||
msgid "Old"
|
||||
msgstr ""
|
||||
|
||||
#: src/mainwin.cc:779 src/mainwin.cc:1356
|
||||
msgid "Untitled.scad"
|
||||
msgstr "Безымянный.scad"
|
||||
|
||||
#: src/mainwin.cc:973
|
||||
#, fuzzy
|
||||
msgid "Compile error."
|
||||
msgstr "&Компилировать"
|
||||
|
||||
#: src/mainwin.cc:976
|
||||
msgid "Error while compiling '%1'."
|
||||
msgstr "Ошибка во время компиляции '%1'."
|
||||
|
||||
#: src/mainwin.cc:980
|
||||
msgid "Compilation generated %1 warning."
|
||||
msgid_plural "Compilation generated %1 warnings."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
|
||||
#: src/mainwin.cc:990
|
||||
msgid " For details see <a href=\"#console\">console window</a>."
|
||||
msgstr "Для подробностей смотреть <a href=\"#console\">окно консоли</a>."
|
||||
|
||||
#: src/mainwin.cc:1355
|
||||
msgid "Save File"
|
||||
msgstr "Сохранить файл"
|
||||
|
||||
#: src/mainwin.cc:1357
|
||||
msgid "OpenSCAD Designs (*.scad)"
|
||||
msgstr "Модели OpenSCAD (*.scad)"
|
||||
|
||||
#: src/mainwin.cc:1367
|
||||
msgid ""
|
||||
"%1 already exists.\n"
|
||||
"Do you want to replace it?"
|
||||
msgstr ""
|
||||
"%1 уже существует.\n"
|
||||
"Перезаписать?"
|
||||
|
||||
#: src/mainwin.cc:1686
|
||||
msgid "Application"
|
||||
msgstr "Приложение"
|
||||
|
||||
#: src/mainwin.cc:1687
|
||||
msgid ""
|
||||
"The document has been modified.\n"
|
||||
"Do you really want to reload the file?"
|
||||
msgstr ""
|
||||
"Документ был изменен.\n"
|
||||
"Хотите перезагрузить документ?"
|
||||
|
||||
#: src/mainwin.cc:2040 src/mainwin.cc:2096
|
||||
#, fuzzy
|
||||
msgid "Export %1 File"
|
||||
msgstr "Экспортировать в DXF..."
|
||||
|
||||
#: src/mainwin.cc:2041 src/mainwin.cc:2100
|
||||
msgid "%1 Files (*%2)"
|
||||
msgstr "%1 Файлов (*%2)"
|
||||
|
||||
#: src/mainwin.cc:2042
|
||||
#, fuzzy
|
||||
msgid "Untitled"
|
||||
msgstr "Безымянный.scad"
|
||||
|
||||
#: src/mainwin.cc:2098
|
||||
#, fuzzy
|
||||
msgid "Untitled%1"
|
||||
msgstr "Безымянный.scad"
|
||||
|
||||
#: src/mainwin.cc:2149
|
||||
msgid "Export CSG File"
|
||||
msgstr "Экспортировать файл CSG"
|
||||
|
||||
#: src/mainwin.cc:2150
|
||||
msgid "Untitled.csg"
|
||||
msgstr "Безимянный.csg"
|
||||
|
||||
#: src/mainwin.cc:2151
|
||||
msgid "CSG Files (*.csg)"
|
||||
msgstr "Файлы CSG (*.csg)"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "Export Image"
|
||||
msgstr "Экспортировать изображение"
|
||||
|
||||
#: src/mainwin.cc:2177
|
||||
msgid "PNG Files (*.png)"
|
||||
msgstr "Файлы PNG (*.png)"
|
||||
|
||||
#: src/mainwin.cc:2427
|
||||
msgid "Console"
|
||||
msgstr "Консоль"
|
||||
|
||||
#: src/mainwin.cc:2564
|
||||
#, fuzzy
|
||||
msgid "The document has been modified."
|
||||
msgstr "Документ был изменен."
|
||||
|
||||
#: src/mainwin.cc:2565
|
||||
#, fuzzy
|
||||
msgid "Do you want to save your changes?"
|
||||
msgstr "Сохранить изменения?"
|
||||
|
||||
#: src/mainwin.cc:2697
|
||||
msgid ""
|
||||
"Fontconfig needs to update its font cache.\n"
|
||||
"This can take up to a couple of minutes."
|
||||
msgstr ""
|
||||
"Fontconfig требуется обновить кеш шрифтов.\n"
|
||||
"Это может занять пару минут."
|
||||
|
||||
#: src/settings.cc:132
|
||||
msgid "After indentation"
|
||||
msgstr "После отступа"
|
||||
|
||||
#~ msgid "Top"
|
||||
#~ msgstr "Сверху"
|
||||
|
||||
|
|
|
|||
1
scripts/examples-html/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/html
|
||||
48
scripts/examples-html/Makefile
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
EXAMPLES := ../../examples
|
||||
SRC=$(wildcard $(EXAMPLES)/*/*.scad)
|
||||
PNG=$(patsubst $(EXAMPLES)/%.scad,html/%.png,$(SRC))
|
||||
HTML=$(patsubst $(EXAMPLES)/%.scad,html/%.html,$(SRC))
|
||||
|
||||
OPENSCAD := ../../OpenSCAD.app/Contents/MacOS/OpenSCAD
|
||||
#OPENSCAD := openscad
|
||||
ARGS := --imgsize=1200,900 --camera=0,0,0,55,0,25,180 --viewall --autocenter
|
||||
|
||||
all : $(PNG) $(HTML) example-data.js assets
|
||||
|
||||
.PHONY: clean
|
||||
clean :
|
||||
rm -rf html
|
||||
|
||||
.PHONY: assets
|
||||
assets :
|
||||
cp -a assets html/
|
||||
|
||||
.PHONY: example-data.js
|
||||
example-data.js :
|
||||
( \
|
||||
echo "openscad_examples = ["; \
|
||||
for a in Basics Functions Shapes Extrusion Advanced; \
|
||||
do \
|
||||
echo " {"; \
|
||||
echo " name : \"$$a\","; \
|
||||
echo " files : ["; \
|
||||
for f in "$(EXAMPLES)/$$a/"*.scad ; \
|
||||
do \
|
||||
echo " \"`basename -s .scad $$f`\","; \
|
||||
done; \
|
||||
echo " ]"; \
|
||||
echo " },"; \
|
||||
done; \
|
||||
echo "];" \
|
||||
) > html/example-data.js
|
||||
|
||||
html/%.png : $(EXAMPLES)/%.scad
|
||||
mkdir -p `dirname $@`
|
||||
$(OPENSCAD) $(ARGS) -o $@ $< > out.log 2>&1
|
||||
|
||||
html/%.html : $(EXAMPLES)/%.scad template-pre.html template-post.html
|
||||
#echo $(notdir $(patsubst %.scad,%.png,$<))
|
||||
mkdir -p `dirname $@`
|
||||
sed -e 's/@@IMAGE@@/$(notdir $(patsubst %.scad,%.png,$<))/g' template-pre.html > $@
|
||||
sed -e 's/</\</; s/>/\>/;' $< >> $@
|
||||
cat template-post.html >> $@
|
||||
58
scripts/examples-html/assets/css/main.css
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
.green {
|
||||
color:#518e04;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width:100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#content {
|
||||
position: absolute;
|
||||
top: 65px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
border-width: 1px;
|
||||
border-style: groove;
|
||||
overflow: auto;
|
||||
background: #fdf6e3;
|
||||
}
|
||||
|
||||
#logo {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
}
|
||||
|
||||
#logo h1 {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 80px;
|
||||
width: 20em;
|
||||
margin: 0px;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
#logo img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
#image {
|
||||
position: absolute;
|
||||
z-index: 50;
|
||||
top: 80px;
|
||||
right: 30px;
|
||||
}
|
||||
|
||||
#image img {
|
||||
width: 200px;
|
||||
height: 150px;
|
||||
border-width: 1px;
|
||||
border-style: groove;
|
||||
}
|
||||
129
scripts/examples-html/assets/css/menu.css
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
// http://www.olivergast.de/2012/04/18/css3-dropdown-menu/
|
||||
|
||||
#menu {
|
||||
width: 800px;
|
||||
margin: 50px auto;
|
||||
}
|
||||
|
||||
#menu h3 {
|
||||
font-size: 12px;
|
||||
color: #fff;
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
background: #000;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
#menu ul {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
margin: 0 auto;
|
||||
margin-left: 20px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#menu ul li {
|
||||
float: left;
|
||||
margin: 0 0 0 14px;
|
||||
font-size: 14px;
|
||||
font-family: 'Arial', sans-serif;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
#menu ul li a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
-webkit-transition: all .5s ease-in-out;
|
||||
-moz-transition: all .5s ease-in-out;
|
||||
-o-transition: all .5s ease-in-out;
|
||||
-ms-transition: all .5s ease-in-out;
|
||||
transition: all .5s ease-in-out;
|
||||
}
|
||||
|
||||
#menu ul li a:hover {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
#menu ul li div {
|
||||
float: left;
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
margin: 10px 5px;
|
||||
padding: 4px;
|
||||
background: #999;
|
||||
-webkit-border-radius: 12px;
|
||||
-moz-border-radius: 12px;
|
||||
border-radius: 12px;
|
||||
-webkit-transition: all .5s ease-in-out;
|
||||
-moz-transition: all .5s ease-in-out;
|
||||
-o-transition: all .5s ease-in-out;
|
||||
-ms-transition: all .5s ease-in-out;
|
||||
transition: all .5s ease-in-out;
|
||||
}
|
||||
|
||||
#menu ul li:hover div {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
#menu ul ul {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
top: -9999px;
|
||||
background: #fff;
|
||||
padding: 0;
|
||||
margin: 0 0 0 -5px;
|
||||
-webkit-box-shadow: 0 10px 20px #888;
|
||||
-moz-box-shadow: 0 10px 20px #888;
|
||||
box-shadow: 0 10px 20px #888;
|
||||
}
|
||||
|
||||
#menu ul ul:before {
|
||||
position: absolute;
|
||||
content:"";
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
top: -5px;
|
||||
left: 11px;
|
||||
background: #000;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
#menu ul li:hover ul {
|
||||
top: 30px;
|
||||
}
|
||||
|
||||
#menu ul ul li {
|
||||
float: none;
|
||||
font-size: 12px;
|
||||
padding: 5px 10px;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #ddd;
|
||||
line-height: 20px;
|
||||
-webkit-transition: all .5s ease-in-out;
|
||||
-moz-transition: all .5s ease-in-out;
|
||||
-o-transition: all .5s ease-in-out;
|
||||
-ms-transition: all .5s ease-in-out;
|
||||
transition: all .5s ease-in-out;
|
||||
}
|
||||
|
||||
#menu ul ul a {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#menu ul ul li.all {
|
||||
font-size: 12px;
|
||||
border-bottom: none;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
#menu ul ul li:hover {
|
||||
background: #333;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
85
scripts/examples-html/assets/css/solarized-light.css
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
/**
|
||||
* Solarized Light theme
|
||||
*
|
||||
* Adaptation of Solarized Light from ethanschoonover.com/solarized
|
||||
*
|
||||
* @author Ethan Schoonover
|
||||
* @author David Litmark
|
||||
* @version 1.0.0
|
||||
*/
|
||||
pre {
|
||||
background: #fdf6e3; /* base3 */
|
||||
word-wrap: break-word;
|
||||
margin: 0px;
|
||||
padding: 6px;
|
||||
color: #657b83; /* base00 */
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
font-family: 'Monaco', courier, monospace;
|
||||
}
|
||||
|
||||
pre .comment {
|
||||
color: #93a1a1; /* base1 */
|
||||
}
|
||||
|
||||
pre .constant {
|
||||
color: #657b83; /* base00 */
|
||||
}
|
||||
|
||||
pre .constant.language {
|
||||
color: #268bd2; /* blue */
|
||||
}
|
||||
|
||||
pre .constant.regexp {
|
||||
color: #2aa198; /* cyan */
|
||||
}
|
||||
|
||||
pre .storage {
|
||||
color: #268bd2; /* blue */
|
||||
}
|
||||
|
||||
pre .string, pre .comment.docstring {
|
||||
color: #2aa198; /* cyan */
|
||||
}
|
||||
|
||||
pre .support.tag.script, pre .support.tag.style {
|
||||
color: #2aa198; /* cyan */
|
||||
}
|
||||
|
||||
pre .string.regexp {
|
||||
color: #2aa198; /* cyan */
|
||||
}
|
||||
|
||||
pre .string.regexp.open, pre .string.regexp.close {
|
||||
color: #2aa198; /* cyan */
|
||||
}
|
||||
|
||||
pre .keyword, pre .selector {
|
||||
color: #859900; /* green */
|
||||
}
|
||||
|
||||
pre .inherited-class {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre .entity {
|
||||
color: #b58900; /* yellow */
|
||||
}
|
||||
|
||||
pre .support, *[data-language="c"] .function.call {
|
||||
color: #859900; /* green */
|
||||
}
|
||||
|
||||
pre .support.method {
|
||||
color: #657b83; /* base00 */
|
||||
}
|
||||
|
||||
pre .support.property {
|
||||
color: #657b83; /* base00 */
|
||||
}
|
||||
|
||||
pre .variable.global, pre .variable.class, pre .variable.instance {
|
||||
color: #657b83; /* base00 */
|
||||
}
|
||||
BIN
scripts/examples-html/assets/images/openscad.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
65
scripts/examples-html/assets/js/language/generic.js
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
/**
|
||||
* Generic language patterns
|
||||
*
|
||||
* @author Craig Campbell
|
||||
* @version 1.0.11
|
||||
*/
|
||||
Rainbow.extend([
|
||||
{
|
||||
'matches': {
|
||||
1: [
|
||||
{
|
||||
'name': 'keyword.operator',
|
||||
'pattern': /\=|\+/g
|
||||
},
|
||||
{
|
||||
'name': 'keyword.dot',
|
||||
'pattern': /\./g
|
||||
}
|
||||
],
|
||||
2: {
|
||||
'name': 'string',
|
||||
'matches': {
|
||||
'name': 'constant.character.escape',
|
||||
'pattern': /\\('|"){1}/g
|
||||
}
|
||||
}
|
||||
},
|
||||
'pattern': /(\(|\s|\[|\=|:|\+|\.)(('|")([^\\\1]|\\.)*?(\3))/gm
|
||||
},
|
||||
{
|
||||
'name': 'comment',
|
||||
'pattern': /\/\*[\s\S]*?\*\/|(\/\/|\#)[\s\S]*?$/gm
|
||||
},
|
||||
{
|
||||
'name': 'constant.numeric',
|
||||
'pattern': /\b(\d+(\.\d+)?(e(\+|\-)?\d+)?(f|d)?|0x[\da-f]+)\b/gi
|
||||
},
|
||||
{
|
||||
'matches': {
|
||||
1: 'keyword'
|
||||
},
|
||||
'pattern': /\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\(|\b)/gi
|
||||
},
|
||||
{
|
||||
'name': 'constant.language',
|
||||
'pattern': /true|false|null/g
|
||||
},
|
||||
{
|
||||
'name': 'keyword.operator',
|
||||
'pattern': /\+|\!|\-|&(gt|lt|amp);|\||\*|\=/g
|
||||
},
|
||||
{
|
||||
'matches': {
|
||||
1: 'function.call'
|
||||
},
|
||||
'pattern': /(\w+?)(?=\()/g
|
||||
},
|
||||
{
|
||||
'matches': {
|
||||
1: 'storage.function',
|
||||
2: 'entity.name.function'
|
||||
},
|
||||
'pattern': /(function)\s(.*?)(?=\()/g
|
||||
}
|
||||
]);
|
||||
93
scripts/examples-html/assets/js/language/javascript.js
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
/**
|
||||
* Javascript patterns
|
||||
*
|
||||
* @author Craig Campbell
|
||||
* @version 1.0.9
|
||||
*/
|
||||
Rainbow.extend('javascript', [
|
||||
|
||||
/**
|
||||
* matches $. or $(
|
||||
*/
|
||||
{
|
||||
'name': 'selector',
|
||||
'pattern': /(\s|^)\$(?=\.|\()/g
|
||||
},
|
||||
{
|
||||
'name': 'support',
|
||||
'pattern': /\b(window|document)\b/g
|
||||
},
|
||||
{
|
||||
'matches': {
|
||||
1: 'support.property'
|
||||
},
|
||||
'pattern': /\.(length|node(Name|Value))\b/g
|
||||
},
|
||||
{
|
||||
'matches': {
|
||||
1: 'support.function'
|
||||
},
|
||||
'pattern': /(setTimeout|setInterval)(?=\()/g
|
||||
|
||||
},
|
||||
{
|
||||
'matches': {
|
||||
1: 'support.method'
|
||||
},
|
||||
'pattern': /\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\()/g
|
||||
},
|
||||
|
||||
/**
|
||||
* matches any escaped characters inside of a js regex pattern
|
||||
*
|
||||
* @see https://github.com/ccampbell/rainbow/issues/22
|
||||
*
|
||||
* this was causing single line comments to fail so it now makes sure
|
||||
* the opening / is not directly followed by a *
|
||||
*
|
||||
* @todo check that there is valid regex in match group 1
|
||||
*/
|
||||
{
|
||||
'name': 'string.regexp',
|
||||
'matches': {
|
||||
1: 'string.regexp.open',
|
||||
2: {
|
||||
'name': 'constant.regexp.escape',
|
||||
'pattern': /\\(.){1}/g
|
||||
},
|
||||
3: 'string.regexp.close',
|
||||
4: 'string.regexp.modifier'
|
||||
},
|
||||
'pattern': /(\/)(?!\*)(.+)(\/)([igm]{0,3})/g
|
||||
},
|
||||
|
||||
/**
|
||||
* matches runtime function declarations
|
||||
*/
|
||||
{
|
||||
'matches': {
|
||||
1: 'storage',
|
||||
3: 'entity.function'
|
||||
},
|
||||
'pattern': /(var)?(\s|^)(\S*)(?=\s?=\s?function\()/g
|
||||
},
|
||||
|
||||
/**
|
||||
* matches constructor call
|
||||
*/
|
||||
{
|
||||
'matches': {
|
||||
1: 'keyword',
|
||||
2: 'entity.function'
|
||||
},
|
||||
'pattern': /(new)\s+(.*)(?=\()/g
|
||||
},
|
||||
|
||||
/**
|
||||
* matches any function call in the style functionName: function()
|
||||
*/
|
||||
{
|
||||
'name': 'entity.function',
|
||||
'pattern': /(\w+)(?=:\s{0,}function)/g
|
||||
}
|
||||
]);
|
||||
38
scripts/examples-html/assets/js/menu.js
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
function addSubmenu(menu, name, files) {
|
||||
var ul = document.createElement('ul');
|
||||
ul.appendChild(document.createElement('h3'));
|
||||
for (var a = 0; a < files.length; a++) {
|
||||
var menulink = document.createElement('a');
|
||||
menulink.href = "../" + name + "/" + files[a] + ".html";
|
||||
ul.appendChild(menulink);
|
||||
var li = document.createElement('li');
|
||||
li.appendChild(document.createTextNode(files[a]));
|
||||
menulink.appendChild(li);
|
||||
}
|
||||
|
||||
menu.appendChild(ul);
|
||||
}
|
||||
|
||||
function addMenu() {
|
||||
var menudiv = document.getElementById("menu");
|
||||
var menu = document.createElement('ul');
|
||||
menudiv.appendChild(menu);
|
||||
|
||||
for (var a = 0; a < openscad_examples.length; a++) {
|
||||
var entry = document.createElement('li');
|
||||
var menulink = document.createElement('a');
|
||||
menulink.href = "#";
|
||||
entry.appendChild(menulink);
|
||||
var entrydiv = document.createElement('div');
|
||||
menulink.appendChild(entrydiv);
|
||||
menulink.appendChild(document.createTextNode(openscad_examples[a].name));
|
||||
|
||||
addSubmenu(entry, openscad_examples[a].name, openscad_examples[a].files);
|
||||
|
||||
menu.appendChild(entry);
|
||||
}
|
||||
}
|
||||
|
||||
function load() {
|
||||
addMenu();
|
||||
}
|
||||
8
scripts/examples-html/assets/js/rainbow.min.js
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
/* Rainbow v1.1.9 rainbowco.de */
|
||||
window.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute("data-language")||0;if(!c){a=a.attributes;for(b=0;b<a.length;++b)if("data-language"===a[b].nodeName)return a[b].nodeValue}return c}function B(a){var b=q(a)||q(a.parentNode);if(!b){var c=/\blang(?:uage)?-(\w+)/;(a=a.className.match(c)||a.parentNode.className.match(c))&&(b=a[1])}return b}function C(a,b){for(var c in e[d]){c=parseInt(c,10);if(a==c&&b==e[d][c]?0:a<=c&&b>=e[d][c])delete e[d][c],delete j[d][c];if(a>=c&&a<e[d][c]||
|
||||
b>c&&b<e[d][c])return!0}return!1}function r(a,b){return'<span class="'+a.replace(/\./g," ")+(l?" "+l:"")+'">'+b+"</span>"}function s(a,b,c,h){var f=a.exec(c);if(f){++t;!b.name&&"string"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=f[0],i=f.index,u=f[0].length+i,g=function(){function f(){s(a,b,c,h)}t%100>0?f():setTimeout(f,0)};if(C(i,u))g();else{var m=v(b.matches),l=function(a,c,h){if(a>=c.length)h(k);else{var d=f[c[a]];if(d){var e=b.matches[c[a]],i=e.language,g=e.name&&e.matches?
|
||||
e.matches:e,j=function(b,d,e){var i;i=0;var g;for(g=1;g<c[a];++g)f[g]&&(i=i+f[g].length);d=e?r(e,d):d;k=k.substr(0,i)+k.substr(i).replace(b,d);l(++a,c,h)};i?n(d,i,function(a){j(d,a)}):typeof e==="string"?j(d,d,e):w(d,g.length?g:[g],function(a){j(d,a,e.matches?e.name:0)})}else l(++a,c,h)}};l(0,m,function(a){b.name&&(a=r(b.name,a));if(!j[d]){j[d]={};e[d]={}}j[d][i]={replace:f[0],"with":a};e[d][i]=u;g()})}}else h()}function v(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push(c);return b.sort(function(a,
|
||||
b){return b-a})}function w(a,b,c){function h(b,k){k<b.length?s(b[k].pattern,b[k],a,function(){h(b,++k)}):D(a,function(a){delete j[d];delete e[d];--d;c(a)})}++d;h(b,0)}function D(a,b){function c(a,b,h,e){if(h<b.length){++x;var g=b[h],l=j[d][g],a=a.substr(0,g)+a.substr(g).replace(l.replace,l["with"]),g=function(){c(a,b,++h,e)};0<x%250?g():setTimeout(g,0)}else e(a)}var h=v(j[d]);c(a,h,0,b)}function n(a,b,c){var d=m[b]||[],f=m[y]||[],b=z[b]?d:d.concat(f);w(a.replace(/</g,"<").replace(/>/g,">").replace(/&(?![\w\#]+;)/g,
|
||||
"&"),b,c)}function o(a,b,c){if(b<a.length){var d=a[b],f=B(d);return!(-1<(" "+d.className+" ").indexOf(" rainbow "))&&f?(f=f.toLowerCase(),d.className+=d.className?" rainbow":"rainbow",n(d.innerHTML,f,function(k){d.innerHTML=k;j={};e={};p&&p(d,f);setTimeout(function(){o(a,++b,c)},0)})):o(a,++b,c)}c&&c()}function A(a,b){var a=a&&"function"==typeof a.getElementsByTagName?a:document,c=a.getElementsByTagName("pre"),d=a.getElementsByTagName("code"),f,e=[];for(f=0;f<d.length;++f)e.push(d[f]);for(f=0;f<
|
||||
c.length;++f)c[f].getElementsByTagName("code").length||e.push(c[f]);o(e,0,b)}var j={},e={},m={},z={},d=0,y=0,t=0,x=0,l,p;return{extend:function(a,b,c){1==arguments.length&&(b=a,a=y);z[a]=c;m[a]=b.concat(m[a]||[])},b:function(a){p=a},a:function(a){l=a},color:function(a,b,c){if("string"==typeof a)return n(a,b,c);if("function"==typeof a)return A(0,a);A(a,b)}}}();document.addEventListener?document.addEventListener("DOMContentLoaded",Rainbow.color,!1):window.attachEvent("onload",Rainbow.color);
|
||||
Rainbow.onHighlight=Rainbow.b;Rainbow.addClass=Rainbow.a;
|
||||
6
scripts/examples-html/template-post.html
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
28
scripts/examples-html/template-pre.html
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<link rel="stylesheet" href="../assets/css/main.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../assets/css/menu.css" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="../assets/css/solarized-light.css" type="text/css"/>
|
||||
|
||||
<script src="../example-data.js" type="text/javascript"></script>
|
||||
<script src="../assets/js/menu.js" type="text/javascript"></script>
|
||||
<script src="../assets/js/rainbow.min.js" type="text/javascript"></script>
|
||||
<script src="../assets/js/language/generic.js" type="text/javascript"></script>
|
||||
<script src="../assets/js/language/javascript.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body onload="load()">
|
||||
<div class="wrapper">
|
||||
<div id="menu"></div>
|
||||
|
||||
<div id="logo">
|
||||
<a href="http://openscad.org/"><img src="../assets/images/openscad.png"></a>
|
||||
<h1><span class="green">Open</span>SCAD - Examples</h1>
|
||||
</div>
|
||||
<div id="image">
|
||||
<a href="@@IMAGE@@"><img src="@@IMAGE@@"></a>
|
||||
</div>
|
||||
<div id="content">
|
||||
<pre><code data-language="javascript">
|
||||
|
|
@ -16,7 +16,7 @@ do
|
|||
done
|
||||
done
|
||||
|
||||
for src in src/*.h src/*.cc
|
||||
for src in src/*.h src/*.cc src/*.cpp src/*.mm
|
||||
do
|
||||
echo $src
|
||||
done
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include "printutils.h"
|
||||
|
||||
Camera::Camera(enum CameraType camtype) :
|
||||
type(camtype), projection(Camera::PERSPECTIVE), fov(45), viewall(false), height(60)
|
||||
type(camtype), projection(Camera::PERSPECTIVE), fov(22.5), viewall(false), height(60)
|
||||
{
|
||||
PRINTD("Camera()");
|
||||
if (this->type == Camera::GIMBAL) {
|
||||
|
|
@ -48,10 +48,8 @@ void Camera::gimbalDefaultTranslate()
|
|||
|
||||
/*!
|
||||
Moves camera so that the given bbox is fully visible.
|
||||
FIXME: The scalefactor is a temporary hack to be compatible with
|
||||
earlier ways of showing the whole scene.
|
||||
*/
|
||||
void Camera::viewAll(const BoundingBox &bbox, float scalefactor)
|
||||
void Camera::viewAll(const BoundingBox &bbox)
|
||||
{
|
||||
if (this->type == Camera::NONE) {
|
||||
this->type = Camera::VECTOR;
|
||||
|
|
@ -76,14 +74,16 @@ void Camera::viewAll(const BoundingBox &bbox, float scalefactor)
|
|||
this->height = this->viewer_distance = bbox.diagonal().norm();
|
||||
break;
|
||||
case Camera::PERSPECTIVE: {
|
||||
double radius = bbox.diagonal().norm()/2;
|
||||
double bboxRadius = bbox.diagonal().norm()/2;
|
||||
double radius = (bbox.center()-this->center).norm() + bboxRadius;
|
||||
double distance = radius / sin(this->fov*M_PI/360);
|
||||
switch (this->type) {
|
||||
case Camera::GIMBAL:
|
||||
this->height = this->viewer_distance = radius / tan(this->fov*M_PI/360);
|
||||
this->height = this->viewer_distance = distance;
|
||||
break;
|
||||
case Camera::VECTOR: {
|
||||
Vector3d cameradir = (this->center - this->eye).normalized();
|
||||
this->eye = this->center - radius*scalefactor*cameradir;
|
||||
this->eye = this->center - distance*cameradir;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@ public:
|
|||
void gimbalDefaultTranslate();
|
||||
void setProjection(ProjectionType type);
|
||||
void zoom(int delta);
|
||||
double zoomValue();
|
||||
void resetView();
|
||||
void viewAll(const BoundingBox &bbox, float scalefactor = 1.0f);
|
||||
std::string statusText();
|
||||
double zoomValue();
|
||||
void resetView();
|
||||
void viewAll(const BoundingBox &bbox);
|
||||
std::string statusText();
|
||||
|
||||
// Vectorcam
|
||||
Eigen::Vector3d eye;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,10 @@
|
|||
#include "PlatformUtils.h"
|
||||
#include "openscad.h"
|
||||
|
||||
#include <boost/property_tree/ptree.hpp>
|
||||
#include <boost/property_tree/json_parser.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
QFileInfo UIUtils::openFile(QWidget *parent)
|
||||
{
|
||||
QSettings settings;
|
||||
|
|
@ -79,24 +83,45 @@ QStringList UIUtils::recentFiles()
|
|||
return files;
|
||||
}
|
||||
|
||||
using namespace boost::property_tree;
|
||||
|
||||
static ptree *examples_tree = NULL;
|
||||
static ptree *examplesTree()
|
||||
{
|
||||
if (!examples_tree) {
|
||||
std::string path = (PlatformUtils::resourcePath("examples") / "examples.json").string();
|
||||
try {
|
||||
examples_tree = new ptree;
|
||||
read_json(path, *examples_tree);
|
||||
} catch (const std::exception & e) {
|
||||
PRINTB("Error reading examples.json: %s", e.what());
|
||||
delete examples_tree;
|
||||
examples_tree = NULL;
|
||||
}
|
||||
}
|
||||
return examples_tree;
|
||||
}
|
||||
|
||||
QStringList UIUtils::exampleCategories()
|
||||
{
|
||||
QStringList categories;
|
||||
//categories in File menu item - Examples
|
||||
categories << N_("Basics") << N_("Shapes") << N_("Extrusion") << N_("Advanced");
|
||||
// categories in File menu item - Examples
|
||||
QStringList categories;
|
||||
categories << N_("Basics") << N_("Functions") << N_("Shapes") << N_("Extrusion") << N_("Advanced") << N_("Old");
|
||||
|
||||
return categories;
|
||||
return categories;
|
||||
}
|
||||
|
||||
QFileInfoList UIUtils::exampleFiles(const QString &category)
|
||||
{
|
||||
QDir dir(QString::fromStdString(PlatformUtils::resourcePath("examples").string()));
|
||||
if (!dir.cd(category)) {
|
||||
return QFileInfoList();
|
||||
}
|
||||
|
||||
QFileInfoList examples = dir.entryInfoList(QStringList("*.scad"), QDir::Files | QDir::Readable, QDir::Name);
|
||||
return examples;
|
||||
QFileInfoList examples;
|
||||
ptree *pt = examplesTree();
|
||||
if (pt) {
|
||||
fs::path examplesPath = PlatformUtils::resourcePath("examples") / category.toStdString();
|
||||
BOOST_FOREACH(const ptree::value_type &v, pt->get_child(category.toStdString())) {
|
||||
examples << QFileInfo(QString::fromStdString((examplesPath / v.second.data()).string()));
|
||||
}
|
||||
}
|
||||
return examples;
|
||||
}
|
||||
|
||||
void UIUtils::openHomepageURL()
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@
|
|||
#include "cgalutils.h"
|
||||
#include "CGAL_Nef_polyhedron.h"
|
||||
|
||||
static void setupCamera(Camera &cam, const BoundingBox &bbox, float scalefactor)
|
||||
static void setupCamera(Camera &cam, const BoundingBox &bbox)
|
||||
{
|
||||
PRINTDB("setupCamera() %i",cam.type);
|
||||
if (cam.type == Camera::NONE) cam.viewall = true;
|
||||
if (cam.viewall) cam.viewAll(bbox, scalefactor);
|
||||
if (cam.viewall) cam.viewAll(bbox);
|
||||
}
|
||||
|
||||
void export_png(shared_ptr<const Geometry> root_geom, Camera &cam, std::ostream &output)
|
||||
|
|
@ -32,7 +32,7 @@ void export_png(shared_ptr<const Geometry> root_geom, Camera &cam, std::ostream
|
|||
CGALRenderer cgalRenderer(root_geom);
|
||||
|
||||
BoundingBox bbox = cgalRenderer.getBoundingBox();
|
||||
setupCamera(cam, bbox, 3);
|
||||
setupCamera(cam, bbox);
|
||||
|
||||
glview->setCamera(cam);
|
||||
glview->setRenderer(&cgalRenderer);
|
||||
|
|
@ -75,7 +75,7 @@ void export_png_preview_common(Tree &tree, Camera &cam, std::ostream &output, Pr
|
|||
csgInfo.glview->setRenderer(&thrownTogetherRenderer);
|
||||
#ifdef ENABLE_OPENCSG
|
||||
BoundingBox bbox = csgInfo.glview->getRenderer()->getBoundingBox();
|
||||
setupCamera(cam, bbox, 2.7);
|
||||
setupCamera(cam, bbox);
|
||||
|
||||
csgInfo.glview->setCamera(cam);
|
||||
OpenCSG::setContext(0);
|
||||
|
|
|
|||
|
|
@ -960,6 +960,10 @@ ValuePtr builtin_cross(const Context *, const EvalContext *evalctx)
|
|||
|
||||
Value::VectorType v0 = arg0->toVector();
|
||||
Value::VectorType v1 = arg1->toVector();
|
||||
if ((v0.size() == 2) && (v1.size() == 2)) {
|
||||
return ValuePtr(Value(v0[0].toDouble() * v1[1].toDouble() - v0[1].toDouble() * v1[0].toDouble()));
|
||||
}
|
||||
|
||||
if ((v0.size() != 3) || (v1.size() != 3)) {
|
||||
PRINT("WARNING: Invalid vector size of parameter for cross()");
|
||||
return ValuePtr::undefined;
|
||||
|
|
|
|||
3
testdata/scad/functions/cross-tests.scad
vendored
|
|
@ -15,3 +15,6 @@ echo(cross([1, 2, 3], [1, 2]));
|
|||
echo(cross([1, 2, 3], [1, 2, "a"]));
|
||||
echo(cross([1, 2, 3], [1, 2, [0]]));
|
||||
echo(cross([1, 2, 3], [1, 2, [1:2]]));
|
||||
|
||||
// 2D cross
|
||||
echo(cross([2, 3], [5, 6]));
|
||||
|
|
|
|||
|
|
@ -1049,8 +1049,19 @@ file(GLOB SCAD_DXF_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/dxf/*.scad)
|
|||
file(GLOB FUNCTION_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/functions/*.scad)
|
||||
file(GLOB_RECURSE EXAMPLE_3D_FILES ${CMAKE_SOURCE_DIR}/../examples/*.scad)
|
||||
|
||||
list(REMOVE_ITEM EXAMPLE_3D_FILES ${CMAKE_SOURCE_DIR}/../examples/Shapes/flat_body.scad)
|
||||
list(APPEND EXAMPLE_2D_FILES ${CMAKE_SOURCE_DIR}/../examples/Shapes/flat_body.scad)
|
||||
list(REMOVE_ITEM EXAMPLE_3D_FILES
|
||||
${CMAKE_SOURCE_DIR}/../examples/Old/example015.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Advanced/module_recursion.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Functions/list_comprehensions.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Functions/polygon_areas.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Functions/recursion.scad)
|
||||
|
||||
list(APPEND EXAMPLE_2D_FILES
|
||||
${CMAKE_SOURCE_DIR}/../examples/Old/example015.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Advanced/module_recursion.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Functions/list_comprehensions.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Functions/polygon_areas.scad
|
||||
${CMAKE_SOURCE_DIR}/../examples/Functions/recursion.scad)
|
||||
|
||||
list(APPEND EXAMPLE_FILES ${EXAMPLE_3D_FILES} ${EXAMPLE_2D_FILES})
|
||||
|
||||
|
|
@ -1135,7 +1146,6 @@ set_test_config(Bugs dxfpngtest_text-font-direction-tests
|
|||
csgpngtest_text-font-direction-tests
|
||||
throwntogethertest_text-font-direction-tests)
|
||||
|
||||
list(APPEND EXPORT3D_CGALCGAL_TEST_FILES ${EXAMPLE_3D_FILES})
|
||||
list(APPEND EXPORT3D_CGALCGAL_TEST_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/polyhedron-nonplanar-tests.scad
|
||||
${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/rotate_extrude-tests.scad
|
||||
${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/union-coincident-test.scad
|
||||
|
|
@ -1342,6 +1352,10 @@ foreach(FILE ${EXAMPLE_FILES})
|
|||
get_test_fullname(offcgalpngtest ${FILE} TEST_FULLNAME)
|
||||
set_test_config(Examples ${TEST_FULLNAME})
|
||||
endforeach()
|
||||
foreach(FILE ${EXAMPLE_2D_FILES})
|
||||
get_test_fullname(dxfpngtest ${FILE} TEST_FULLNAME)
|
||||
set_test_config(Examples ${TEST_FULLNAME})
|
||||
endforeach()
|
||||
|
||||
# Workaround Gallium bugs
|
||||
if ( ${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
|
||||
|
|
@ -1490,22 +1504,22 @@ add_cmdline_test(openscad-imgstretch2 EXE ${OPENSCAD_BINPATH}
|
|||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective gimbal cam
|
||||
add_cmdline_test(openscad-camdist EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --imgsize=500,500 --camera=0,0,0,90,0,90,100 -o
|
||||
ARGS --imgsize=500,500 --camera=0,0,0,90,0,90,200 -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective gimbal cam
|
||||
add_cmdline_test(openscad-camrot EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --imgsize=500,500 --camera=0,0,0,440,337.5,315,100 -o
|
||||
ARGS --imgsize=500,500 --camera=0,0,0,440,337.5,315,200 -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective gimbal cam
|
||||
add_cmdline_test(openscad-camtrans EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --imgsize=500,500 --camera=100,-20,-10,90,0,90,100 -o
|
||||
ARGS --imgsize=500,500 --camera=100,-20,-10,90,0,90,200 -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective gimbal cam, viewall
|
||||
add_cmdline_test(openscad-camtrans-viewall EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --imgsize=500,500 --camera=100,-20,-10,90,0,90,3000 --viewall -o
|
||||
ARGS --imgsize=500,500 --camera=100,-20,-10,90,0,90,6000 --viewall -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Orthographic gimbal cam
|
||||
|
|
@ -1520,7 +1534,7 @@ add_cmdline_test(openscad-camortho-viewall EXE ${OPENSCAD_BINPATH}
|
|||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective vector cam
|
||||
add_cmdline_test(openscad-cameye EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --imgsize=500,500 --camera=60,40,30,0,0,0 -o
|
||||
ARGS --imgsize=500,500 --camera=120,80,60,0,0,0 -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective vector cam
|
||||
|
|
@ -1530,7 +1544,7 @@ add_cmdline_test(openscad-cameye2 EXE ${OPENSCAD_BINPATH}
|
|||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective vector cam
|
||||
add_cmdline_test(openscad-camcenter EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --imgsize=500,500 --camera=60,40,30,20,10,30 -o
|
||||
ARGS --imgsize=500,500 --camera=100,60,30,20,10,30 -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/3D/features/camera-tests.scad)
|
||||
# Perspective vector cam viewall
|
||||
|
|
@ -1553,27 +1567,27 @@ add_cmdline_test(openscad-cameyeortho-viewall EXE ${OPENSCAD_BINPATH}
|
|||
add_cmdline_test(openscad-colorscheme-cornfield EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Cornfield -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/difference_cube.scad)
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/logo.scad)
|
||||
add_cmdline_test(openscad-colorscheme-metallic EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Metallic -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/difference_cube.scad)
|
||||
add_cmdline_test(openscad-colorscheme-metallic-render EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Metallic --render -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/difference_cube.scad)
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/logo.scad)
|
||||
add_cmdline_test(openscad-colorscheme-sunset EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Sunset -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/difference_cube.scad)
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/logo.scad)
|
||||
add_cmdline_test(openscad-colorscheme-starnight EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Starnight -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/difference_cube.scad)
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/logo.scad)
|
||||
add_cmdline_test(openscad-colorscheme-monotone EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Monotone -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/difference_cube.scad)
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/logo.scad)
|
||||
add_cmdline_test(openscad-colorscheme-metallic-render EXE ${OPENSCAD_BINPATH}
|
||||
ARGS --colorscheme=Metallic --render -o
|
||||
SUFFIX png
|
||||
FILES ${CMAKE_SOURCE_DIR}/../examples/Basics/CSG.scad)
|
||||
|
||||
#message("Available test configurations: ${TEST_CONFIGS}")
|
||||
#foreach(CONF ${TEST_CONFIGS})
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 7.2 KiB |
BIN
tests/regression/cgalpngtest/CSG-expected.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
tests/regression/cgalpngtest/CSG-modules-expected.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
tests/regression/cgalpngtest/GEB-expected.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.6 KiB |
BIN
tests/regression/cgalpngtest/animation-expected.png
Normal file
|
After Width: | Height: | Size: 11 KiB |