Une partie de la solution se trouve dans la documentation… (chercher “Use of children”), mais le résultat est tout de même décevant.
module linear_extrud0 (hauteur=5, centre=false, convexite=10) {
/// ******************************************************************************************
echo("linear_extrud0: hauteur=",hauteur," centre=",centre, " convexite",convexite," ");
// now : linear_extrude( height = 5, before : height,
// v = [0, 0, 1],
// center = true, center,
// convexity = 10, convexity,
// twist = -fanrot, twist,
// slices = 20, slices
// scale = 1.0,
// $fn = 16) {...} {...}
linear_extrude(height=hauteur, center=centre, convexity=convexite);
children();
}
/// ******************************************************************************************
echo("_____________________________________________________________________________________");
color ("green", 1) translate([0, 0, (100/2)-0]) cube([.3, .3, 100], true); // Utile au dev.
rootPath="/home/pserru/Developpements/Horloge_à_balancier/Pendule_0·5Hz/OpenScad/";
linear_extrude(10) circle(d=5);
translate([10,0,0]) linear_extrud0(8) circle(d=5);
translate([20,0,0]) linear_extrud0(6, false) circle(d=5);
translate([30,0,0]) linear_extrud0(4, false, 10) circle(d=5);
translate([40,0,0]) linear_extrud0(hauteur=2, centre=false, convexite=10) circle(d=5);
translate([-10,0,0]) linear_extrud0(8) {circle(d=5);};
translate([-20,0,0]) linear_extrud0(6, false) {circle(d=5);};
translate([-30,0,0]) linear_extrud0(4, false, 10) {circle(d=5);};
translate([-40,0,0]) linear_extrud0(hauteur=2, centre=false, convexite=10) {circle(d=5);};
Une autre page de la documentation dit :
linear_extrude(height = 5, v = [0, 0, 1], center = true, convexity = 10, twist = -fanrot, slices = 20, scale = 1.0, $fn = 16) {...}
Du coup, je ne comprends pas la figure correspondante à la ligne /*1*/ (usage "normal") puisque l'argument center aurait du avoir été assigné à la valeur true valeur par défaut, et ce n'est pas ce qui est dessiné... image ci-dessous
NB Cet éditeur (de message / post) est très inconfortable !
Correction du code inséré :
module linear_extrud0 (hauteur=5, centre=false, convexite=10) {
/// ******************************************************************************************
echo("linear_extrud0: hauteur=",hauteur," centre=",centre, " convexite",convexite," ");
// now : linear_extrude( height = 5, before : height,
// v = [0, 0, 1],
// center = true, center,
// convexity = 10, convexity,
// twist = -fanrot, twist,
// slices = 20, slices
// scale = 1.0,
// $fn = 16) {...} {...}
linear_extrude(height=hauteur, center=centre, convexity=convexite);
children();
}
/// ******************************************************************************************
echo("_____________________________________________________________________________________");
color ("green", 1) translate([0, 0, (100/2)-0]) cube([.3, .3, 100], true); // Utile au dev.
rootPath="/home/pserru/Developpements/Horloge_à_balancier/Pendule_0·5Hz/OpenScad/";
/*1*/linear_extrude(10) circle(d=5);
/*2*/translate([10,0,0]) linear_extrud0(8) circle(r=2.5);
/*3*/translate([20,0,0]) linear_extrud0(6, false) circle(r=2.5);
/*4*/translate([30,0,0]) linear_extrud0(4, false, 10) circle(r=2.5);
/*5*/translate([40,0,0]) linear_extrud0(hauteur=2, centre=false, convexite=10) circle(r=2.5);
/*6*/translate([-10,0,0]) linear_extrud0(8) {circle(r=2.5);};
/*7*/translate([-20,0,0]) linear_extrud0(6, false) {circle(r=2.5);};
/*8*/translate([-30,0,0]) linear_extrud0(4, false, 10) {circle(r=2.5);};
/*9*/translate([-40,0,0]) linear_extrud0(hauteur=2, centre=false, convexite=10) {circle(r=2.5);};