samedi 29 février 2020

BlockScad, intermède : Le sapin de Noël

Un joli sapin de Noël pour revoir quelques fonctions avant d’aborder la troisième dimension.


 Voici le sapin avec sa verdure, une guirlande et des boules de Noël.

Un feuillage de tores


Le feuillage se compose de tores empilés et d’un tronc cylindrique.


La spirale d’Archimède pour guirlande


La guirlande est constituée d’une spirale d’Archimède que nous avons déjà vue avec quelques modifications. En effet notre précédente guirlande était plate. Il faut donc que nous fassions varier la hauteur en même temps que la spirale tourne.


Nous avons repris les deux modules de la spirale, changé le nom en rajoutant 3D, et rajouté la variable HAUTEUR.



Regardez la formule de Z dans le block 3D SPIRALE… la variable (i) varie de 0 à « TOUR * 360 ». Quand (i) vaut 0 (c’est à dire au départ), Z doit être au plus haut, c’est dire valoir HAUTEUR.
Quand (i) vaut « TOUR * 360 » alors HAUTEUR doit valoir 0.


La formule est Z=HAUTEUR * (1- (i/ (TOUR*360))).
On vérifie bien que :

q si (i) =0, Z= HAUTEUR*1

q si (i) = TOUR*360, alors [i/ (TOUR*360)] vaut 1 et donc Z = HAUTEUR *(1-1) = 0



Les Boules de Noël réparties sur la guirlande

Maintenant, passons aux boules placées sur la guirlande.
Nous avons dupliqué les deux blocs qui permettent de dessiner la guirlande :

q le block 3D POINT BOULE est modifier pour dessiner une boule avec une sphère un peu plus grande que dans le block initial. Vous pouvez remarquer une fonction SCALE à l’intérieur de ce block pour supprimer l’effet du SCALE dans le block principal

q le block 3D SPIRALE BOULE est quant à lui à peine modifié. On supprime l’option HULL pour ne pas faire une courbe mais uniquement des points, on commence vers 280 (et non pas à zéro) et surtout on fait des sauts de 57 (ou de n’importe quel nombre assez grand) pour disséminer les boules de Noël.



En reprenant une copie des blocks de la guirlande, nous sommes sûrs que les boules seront bien positionnées sur la guirlande. Dans le block principal, nous avons utilisé la transformation SCALE pour faire coller la guirlande avec la sapin.

Il ne vous reste plus qu’à fabriquer les cadeaux.

BlockScad : Une coque de bateau avec la fonction SCALE

Nous allons réaliser une coque de bateau en utilisant un peu tout ce que nous avons déjà vu et surtout en allant plus loin avec la fonction SCALE.

Reprenons notre forme de courbe de Grandpierre en remplaçant le CIRCLE par une SPHERE.


La formule mathématique de l’accolade

Donnons une forme symétrique avec la transformation MIROR YZ : YZ car on doit s’imaginer que le miroir contient l’axe Y et l’axe Z.
Ensuite, utilisons SCALE pour grandir un peu notre forme qui est toute petite. SCALE permet d’étirer suivant un, deux ou les trois axes. Dans notre cas :

q 5 fois suivant X

q 6 fois suivant Y

q 10 fois suivant Z pour épaissir le bord



Au passage, remarquons que nous avons trouvé la formule mathématique de l’accolade 

Le Maître-Couple

Puis nous allons redresser notre couple (c’est le nom que l’on donne à cette forme pour un bateau) comme sur un chantier naval.


Le liston et la quille

Rappelons que nous voulons faire une coque de bateau. Dans un premier temps, nous allons dessiner les contours, c’est à dire le liston (sur le plan XY) et la quille (dans YZ). Pour cela nous allons reprendre la formule de l’ellipse utilisée plus haut.



En jaune et orange, l’avant du bateau et en bleu l’arrière.  A noter, la formule pour Y est la même dans chacun des blocks.

Les couples





Regardez bien le nouveau block de la page précédente, en comparaison de celui de la bordé. Nous réalisons :

q un couple (module COUPLE)

q puis nous le mettons à l’échelle suivant X et suivant Z avec les mêmes formules de X et Z des bordées, mais sans les paramètres « 26 »  ni « 20 » devant

q puis nous translatons le tout sur l’axe Y qui est l’axe de la coque, en utilisant la formule donnée pour Y dans le module « bordée avant ». C’est pour cela qu’il était important que le module « bordée avant » ait la même formule pour Y.


La boucle permet de faire plusieurs couples. Nous commençons à 200 pour ce dessin car nous avons déjà le maître-couple en 180.


Le dessin suivant reprend le même concept mais pour les couples de l’arrière du bateau.



Nous avons indiqué par des flèches :

q flèches bleues, la formule en Y qui est reprise pour le TRANSLATE

q flèche verte, qui reprend la formule Z

q flèche rouge, qui reprend la formule pour X


La coque complète


Il suffit maintenant de mettre les couples les uns à coté des autres, en mettant « 1 » dans le BY de la boucle (LOOP) et nous auront une coque, peut-être un jour.
(Dis Madame  BlocksCAD, quand est ce que tu nous fait un programme qui va aussi vite qu’OpenSCAD ?)


L’image ci-dessous est la version OpenSCAD (15 secondes), car le RENDER sous BlocksCAD tourne encore.




BlockScad : encore une tangente ? combinaison de fonctions

Encore une tangente !


Pas tout à fait « une », mais LA tangente.  La tangente est une fonction mathématique qui se calcule à partir du SINUS et du COSINUS. Noté « tg » ou « TAN », sa formule est :

TAN (angle) = SIN (angle) / COS (angle)

Une simple division pour une fonction que l’on retrouve souvent dans des formules de courbes.

Combinons les fonctions


Nous avons vu de nombreuses fonctions : polynomiales (c’est à dire avec des combinaisons de X et de Y et de puissances), SINUS, COSINUS, EXPONENTIEL et plein d’autres.

Résumons les différentes façons de les associer entre elles :

q Nous pouvons faire les 4 opérations, les additionner, les diviser, les soustraire et les multiplier. Y=COS(t) / 2*t par exemple

q Nous pouvons les mettre à la puissance, c’est un peu la cinquième des opérations : ∧.
Y= (2*t)∧COS(t) qui s’écrit aussi Y = 2tcos(t)

q Enfin, nous pouvons les combiner c’est à dire utiliser le résultat d’une fonction comme variable (on dit comme argument en mathématique) de la suivante.
Exemple Y= COS ( e(t)).





Pour ce dernier exemple on note en mathématique Y = cos e (t) et cela se lit « rond ». Ne soyez pas étonné si vous voyez ce sigle dans différents sites ou forums sur les fonctions.


Comme vous pouvez le voir, « cos e » ne donne pas la même chose que « e cos », loin s’en faut. Donc, ne vous trompez pas en recopiant les formules !

BlockScad : Prenons la tangente ... d'une courbe

« La tangente est une droite ayant un point de contact avec une courbe et qui fait un angle nul avec elle en ce point. » nous dit Wikipédia.

Maintenant, essayons de voir ce que cela signifie :

q d’abord, il faut une courbe

q ensuite, il faut un point sur la courbe

q pour terminer, il faut une droite qui passe par le point de la courbe. Mais par n’importe quelle droite.


Commençons par le courbe. Une série de points dans une boucle (LOOP) avec une fonction un peu n’importe quoi : une exponentielle de sinus.  Pour l’exemple, cela n’a pas grande importance.



Maintenant, nous allons mettre un point sur cette courbe. Prenons la valeur de (i) = 230. Positionnons notre point en réalisant une copie de la formule de la courbe.


Nous avons donc une courbe et point, faisons passer une droite par ce point, avec la troisième partie du block.


On voit bien que l’angle entre la courbe et la droite verte (flèche bleue) n’est pas nul. Donc ce n’est pas la tangente.



Maintenant, vous pouvez faire vous même quelques essais et modifier l’angle de Z pour trouver celui qui correspond au dessin ci-dessous.


Je vous l’ai dit : c’est à vous à trouver tout seul (ou toute seule) la bonne valeur de Z. Maintenant nous avons la tangente de la courbe au point 230.

Les mathématiciens démontrent facilement qu’il n’y qu’une seule droite tangente pour ces courbes non brisées.

Allons plus loin. Faisons tourner notre programme en décalant la tangente. Simple en utilisant l’option NON CENTERED.


Et pour finir, nous allons :

q Arrêter la courbe au point 230, en modifiant LOOP

q Supprimer le point rouge devenu inutile

q Changer la couleur de notre tangente.



Et voici à quoi sert la tangente en un point : à aller tout droit à partir d’une courbe sans que l’on voit un angle. Et voilà d’où vient l’expression « prendre la tangente ».

On peut aussi calculer directement la droite tangente en connaissant la formule de la courbe : plus simple que chercher à tâtons l'angle. Mais cela sera à voir dans un autre chapitre.

BlockScad : Les fonctions mathématiques, Logarithme et exponentielle

Ce chapitre va passer en revue les différentes fonctions et possibilités offertes par BlocksCAD.

BlocksCAD nous propose une série de fonctions mathématiques :

q SQUARE ROOT

q ABSOLUTE

q (le signe moins) -

q LN (logarithme népérien)

q Log10 (logarithme décimal)

q e∧  (exponentielle)

q 10∧. (exponentielle de base 10)


Racines carrées et valeur absolue

Square Root, nous l’avons déjà vu est la racine carrée d’un nombre. Appelons le X. 
Square Root (X 2) = X

Cette fonction est souvent dessinée sous la forme suivante √x. Elle est utilisée dans de nombreuses formules.


La valeur absolue d’un nombre est : ce nombre s’il est positif, l’opposé s’il est négatif, ou dit autrement s’il y a un plus devant le nombre on le laisse, s’il y a un moins on le remplace par un plus.

C’est très utile en informatique car on ne sait pas toujours si le résultat d’une formule va être positif et donc dans le doute on prend la valeur absolue, surtout si on utilise SQUARE ROOT. En effet, SQUARE ROOT donne une erreur sur un nombre négatif.

Exponentiel

La fonction exponentielle qui se note « e» ou en BlocksCAD « e ∧ » est une fonction mathématique très utilisée et donc présente dans tous les programmes d’ordinateurs.
A quoi elle sert en maths ? Vous verrez cela avec votre professeur de maths. Ce qui nous intéresse, c’est quelle existe et que de nombreuses courbes l’utilisent.
Sur le dessin suivant nous avons indiqué la fonction exponentielle seule et une autre assez classique.


Occupons-nous de la courbe jaune : c’est celle de l’exponentielle. Nous n’avons pas mis l’option HULL pour que l’on voit bien les différents points. Ceux de gauche sont très serrés et plus nous avançons vers la droite plus ils sont écartés. Cette fonction est une fonction de croissance et dont la croissance accélère de plus en plus.
C’est pour cette raison que dans la vie courante, on dit d’une chose qui grandit de plus en plus vite qu’elle grandit de façon exponentielle.

La courbe rouge est une des nombreuses courbes déduites de la courbe de base mais elle est intéressante pour faire …. voyons  … voyons ? un toboggan ? ou un moule à Kouglof ? à vous de voir.

Mais surtout n’ayez pas peur de l’exponentiel, elle est très pratique et en plus c’est BlocksCAD qui fait tous les calculs.

Exponentiel décroissante


L’exponentiel peut aussi être utilisé en tant que courbe décroissante en utilisant le signe – dans l’exposant. Voici un petit exemple ci-dessous.



Une courbe d’amortissement


Voici, la précédente courbe multipliée par une courbe sinusoïdale.


Logarithme et exponentielle


La fonction Logarithme (LN) est la fonction inverse d’Exponentielle, c’est à dire que :

LN (ex) = eLN(x)=X

Regardez le dessin ci-dessous. Il montre bien que LN « annule » Exponentiel. La formule de Y = 5*eLN (i) est la même chose que Y=5*i


Logarithme

Passons maintenant à la courbe de la fonction Logarithme. Elle est indiquée ci-dessous. C’est aussi une fonction croissante mais qui croît de plus en plus lentement au fur et à mesure que l’on va vers la droite : elle se fatigue vite 


Un peu comme la fonction exponentielle, Logarithme est utilisé dans de nombreuses autres fonctions donc autant savoir qu’il existe.

Pour l’anecdote, la fonction logarithme possède une propriété très surprenante dont voici un exemple : LN(3) + LN(5) = LN (15), c’est à dire que la somme de 2 logarithmes est égale au logarithme du produit de ces eux nombres.

Cette propriété a été utilisée aux temps préhistoriques pour fabriquer des règles (en bois !) à calcul. C’était avant le temps des calculatrices, donc voyez avec votre grand-père ou votre arrière grand-père pour une éventuelle explication. Sachez néanmoins que la première question pour rentrer aux Laboratoires Eiffel était : savez-vous vous servir d'une règle à calcul.



Une dernière chose : on voit aussi écrit LOG à la place de LN et dans BlocksCAD il y a aussi LOG10. LN est pour Logarithme népérien qui est le plus utilisé. Mais la famille des logarithmes ne s’arrête pas là et LOG10 en est une autre variante qui correspond aux puissances de 10 (10∧).

Pour la suite voyez aussi vos professeurs de Mathématiques.

BlockScad : le module ROSACE

Nous allons généraliser le précédent programme pour facilement dessiner une Rosace en indiquant seulement son rayon et le nombre de pétales. Dans le dessin précédent, il y avait 6 pétales.


Le programme est une boucle composée d’arc de cercle. Le centre de chaque arc de cercle (Ox, Oy) est disposé sur un cercle externe de la rosace. On retrouve la formule avec le cosinus et le sinus que nous avons déjà vue.
NOMBRE est utilisé pour les pétales : Comme un cercle fait 360°, il suffit de régler le PAS (by de la formule LOOP) sur 360/nombre.

Pour finir, une rosace multiple constituée de plusieurs rosaces, réalisée en OPENSCAD car le temps de calcul est vraiment plus court.


Quasimodo n’a qu’à bien se tenir !


BlockScad : le module COMPAS

Le module COMPAS doit nous permettre : 

a) de donner le centre, là ou il faut mettre la pointe du compas
b) de donner le rayon
c) de donner le début du cercle et la fin du cercle à tracer




Le module comprend donc comme variables :
  1. Ox, la coordonnée X du centre,
  2. Oy, la coordonnée Y du centre,
  3. le rayon, 
  4. l’angle de début et l’angle de fin,
  5. un code pour visualiser le centre (s’il est à 1, le centre est imprimé)
  6. l’épaisseur du trait.


Pour le module, nous nous sommes inspirés :

q du module réalisant un arc de cercle (le haut du block)

q un petit IF (test) pour voir si CENTRE était égal à 1 et, si oui, un petit cylindre pour dessiner le centre

q le tout TRANSLATE de Ox et de Oy

Une première rosace

Maintenant que nous avons un compas, nous allons essayer de dessiner une rosace.



Quelques traits de compas et nous obtenons facilement une première rosace.

Une deuxième, un peu plus achevée en utilisant une LOOP.


BlockScad : Le module REGLE GRADUEE avec le théorème de Pythagore

Maintenant, il serait bien que notre règle puisse mesurer la taille du segment. Pour cela nous allons utiliser le théorème de Pythagore. Reprenons un trait en violet fait avec notre REGLE.



 

Nous avons indiqué dessus les points :

q P0, avec P0x et P0y

q P1, avec P1x et P1y


En plus nous avons dessiné :

q Une flèche orange dont la longueur est (P1x-P0x) c’est à dire 30 dans notre exemple

q Une flèche bleue, dont la longueur est (P1y-P0y), c’est à dire 40 dans notre exemple


Et votre œil de lynx, désormais attentif, vient de reconnaître un triangle rectangle avec ces deux flèches et notre trait violet ?  Parfait, vous êtes trop fort !

Que nous dit ce fameux théorème de Pythagore (allez voir sur Wikipédia pour l’histoire de ce théorème). Il nous dit que :

Le carré de la distance bleue plus le carré de la distance orange égale le carré de la distance violette
C’est à dire :
(Distance violette) 2 = (P1x-P0x) 2   +   (P1y-P0y) 2

Reprenons notre exemple : 30*30 + 40*40 = 900+1600 = 2500 = 50*50, donc la distance du trait violet est de 50. 50 est aussi appelé racine carré de 2500.

Racine carré ou Square Root

Autant il est assez facile de trouver la racine carré de 64 (c’est 8 car 8*8 = 64), de 49 (c’est 7 car 7*7=49), de 16, 9, 81 et quelques autres car nous connaissons parfaitement nos tables de multiplications, autant pour 27, 32, 48, … et les plupart des autres nombres c’est plus compliqué.

BlocksCAD est gentil avec nous, il donne une fonction mathématique Square Root (pour Racine Carré en français) qui trouve le nombre quand on connaît son carré. Voyez ce que cela donne en formule BlocksCAD.

et voici le block avec la formule.

Il y a encore un petit point à améliorer, car il y a beaucoup de chiffres après la virgule.

2 chiffres après la virgule

Pour finaliser notre block, nous voulons écrire uniquement 2 chiffres après la virgule.
1.     Prenons un nombre : 44, 55784325
2.     Multiplions le par 100 : 4455, 784325
3.     Supprimons tous les chiffres après la virgule : 4455 ; dans BlocksCAD c’est la fonction ROUND
4.     Divisions le par 100 : 44, 55

Si nous voulons 3 chiffres après la virgule, on multiplie par 1000 … puis on divisera par 1000 et ainsi de suite.


Et voilà la fin de notre block pour tracer des traits simplement et connaître leur longueur … ou pas.

BlockScad : un peu de géométrie

Dans ce chapitre, nous allons réaliser les dessins de géométrie de CM1 et CM2 qu’il faut faire avec une règle et un compas. Pour cela, il nous faut réaliser un module COMPAS et un module REGLE.

Le module REGLE

Pour le module REGLE, il nous faut le point de départ P1 et le point d’arrivée P2. Bien sûr P0 et P1 ont chacun la coordonnée X et la coordonnée Y. Maintenant, il nous faut avoir la formule pour un segment de droite.


Coordonnée suivant Xx= P0x + (P1x – P0x)*t     (t) est la variable pour tracer la courbe et qui bouge entre 0 et 1.
Nous voyons que x= P0X lorsque la variable (t) vaut 0, et x vaut P1X lorsque la variable (t) égal 1.


Coordonnée suivant Y, c’est la même chose que pour X mais en prenant les valeurs suivants Y.  y= P0y + (P1y – P0y)*t




Notre module REGLE est une boucle avec la variable (t) de 0 à 1 en reprenant nos deux formules de x et y.


BlockScad, intermède : Un sulky pour Duchesse des Myrtilles

Avant d’aller plus loin dans la géométrie et les mathématiques, faisons une pose avec un magnifique sulky.



Voici le sulky complet. Il est fait à l’échelle pour une jument (à vous d’en deviner le nom) et aussi une figurine de cavalier un peu spéciale qui a obligé à faire des pédales adaptées.

Chaque block a été fait sous la forme d’un module ce qui permet de s’y retrouver facilement.

Le siège du sulky


Le siège du Sulky est assez simple, une plaque horizontale, une plaque inclinée et deux cylindres comme accoudoirs.

Les accoudoirs se font dans une boucle qui passe de -1 à 1 : sans souci.

Les roues

Les deux sont faites ensembles avec la fameuse boucle (-1,1). Chaque roue est composée :

q D’un disque avec un trou en son centre réalisé avec la fonction DIFFERENCE

q D’un axe, bien entendu plus petit que le trou du disque

q De deux cylindres, un bleu et un rouge, pour bloquer l’axe.



Essieux

C’est le nom donné au block mais ce ne sont pas vraiment des essieux mais plutôt des barres de soutènement des axes de roues.
Sans difficulté, deux cylindres bien orientés avec des TRANSLATE et des ROTATE.


Les pédales




Les barres de harnais

Elles sont réalisées à partir d’un simple cercle et d’un LINEAR EXTRUDE avec un TWIST. Il a fallu bien sur quelques réglages pour arriver aux bonnes dimensions.


Harnais et boucles

Et pour terminer, le harnais qui sera posé sur le dos du cheval avec 4 boucles, deux pour passer les rênes et deux pour attacher le cheval.



Nous ne montrons pas les 2 boucles en violet, mais à ce stade de la lecture, aucun souci pour les réaliser soi-même.

Enfin voici le résultat complet après impression 3D par Sculpteo, un peu de peinture et un bout de ficelle.  Vous reconnaissez la jument ?