1

Modéliser un objet de A à Z – #1 Prise en main de TinkerCAD et premiers pas

Pourquoi un tel article? Le sujet n’est pas nouveau…mais ayant perdu le fichier source d’un de mes objets 3D, je profite de cet article pour le refaire 🙂

Voici le dit objet, imaginé par ma compagne Lulu la Lucette :

Il s’agit d’un bougeoir, de quelques centimètres de haut, constitué d’un corps et d’une rondelle qui recueille la cire.

Note : il est ici beaucoup plus facile d’imprimer cela en deux pièces : en effet soit on devrait imprimer la partie rondelle en bas et donc avoir un cône renversé, avec le risque d’une qualité moindre, soit beaucoup de “support” (matière de remplissage) pour supporter la rondelle le temps de l’impression

Pour modéliser cet objet, j’utilise ici Tinkercad, un outil en ligne gratuit proposé par Autodesk, l’éditeur bien connu d’AutoCAD.

Très accessible, il permet tout de même beaucoup de choses, et possède des générateurs de formes qui permettent de créer des formes complexes très rapidement.

Inscrivez-vous sur le site et cliquez sur Créer une conception, vous devriez arriver sur cet écran:

On va d’abord commencer par personnaliser le nom du projet en haut à gauche :

Ce nom sera utile lors de la phase d’impression tout à la fin.

Prenez ensuite les mesures de votre objet à l’aide d’une règle, ou dans l’idéal, d’un pied à coulisse.

L’idée de base dans la modélisation est de “décomposer” un objet en formes plus simples et de les assembler ensuite.

Tinkercad possède principalement deux types de formes :

  • les formes simples (cylindres, sphères, cubes, dés, etc.)
  • les générateurs de formes (très variés, et dont on peut changer pas mal de réglages)

Pour le bougeoir, qui ressemble à un cylindre qui se réduit vers le haut, on peut partir de 2 formes simples différentes:

Un cylindre :
simple mais trop “droit”

Un dôme qu’on couperait :
pentu mais compliqué à mesurer

Heureusement, il existe un générateur “Cylindre à régularité définie”, qui a l’avantage de permettre d’avoir des tailles différentes pour les deux cercles qui constituent le corps du bougeoir.

Cherchez donc ce générateur via la barre de droite dans Tinkercad (page 6) et déposez-le sur le plateau:

On voit sur l’animation au dessus qu’un panneau apparaît quand on dépose la forme: il permet de facilement régler les dimensions du corps de notre bougeoir !

Les mesures de notre objet sont:

  • 44mm de diamètre pour le disque du bas
  • 33mm de diamètre pour le disque du haut
  • 66mm de haut (sans le plateau)

On va donc reporter ces dimensions sur notre forme (attention, on a mesuré les diamètres, mais il faut saisir les rayons donc la moitié 🙂

Maintenant qu’on a fait le corps du bougeoir, intéressons-nous au disque situé en haut 🙂

Ses dimensions sont:

  • 2mm d’épaisseur
  • 73mm de diamètre

On va donc refaire les mêmes étapes mais en choississant le cylindre “classique” comme forme de base:

Si vous glissez sur le plan de travail cette forme, vous voyez apparaître un cylindre avec des petits carrés blancs aux angles:

Ceux-ci vont nous permettre de modifier ses dimensions. Cliquez simplement dessus et saisissez les bonnes valeurs:

Vous pouvez ensuite déplacer l’objet pour le rapprocher du corps du bougeoir, et en cliquant sur le petit symbôle en forme de pyramide noire, le faire monter ou descendre, pour venir le positionner parfaitement au bon endroit:

Comme vous le remarquez, tout cela n’est pas bien aligné ! Mais on va y remédier.

Cliquez n’importe ou sur le plan de travail et sélectionnez les deux formes qui s’y trouvent, puis cliquez sur le symbole d’alignement en haut à droite

Aligner

Apparaissent alors des pastilles autour des objets sélectionnés:

  • si elles sont grisées, c’est qu’ils sont déja alignés (par leur milieu, ou par leur côté)
  • si elles sont noires, c’est que vous allez pouvoir les aligner

Notre bougeoir commence à ressembler à la version finale, mais…. on ne peut pas encore y glisser une bougie : on verra ça au prochain épisode 😉




Impression 3D : éviter un support dans un tube fin c’est possible

J’ai eu récemment à imprimer des pales de ventilateur, avec un axe central très fin (4.4m), fermé (il ne dépasse pas en façade), et dirigé vers le bas lors de l’impression (ainsi le devant des pales est + net).

Mais vu que l’on ne peut pas “imprimer dans le vide”, les logiciels de slicing comme Ultimaker Cura proposent automatiquement de générer du “support” à l’intérieur de ces tubes. Le support est à enlever ensuite lors du post-traitement de la pièce.

Mais enlever un tube de 3-4mm enchassé au fond d’un tube quasi aussi fin est relativement compliqué et le risque d’agrandir le trou central est grand (et donc de réduire à néant la pièce).

Une astuce très simple consiste à utiliser comme pièce “en négatif” un tube surmonté d’un cône. En effet, la pente du cône est gérable par l’imprimante (jusqu’à 40° par rapport à la verticale).

Ainsi les dernières couches à l’intérieur du tube décriront des cercles de plus en plus rapprochés jusqu’à se rejoindre tout au bout du tube.

Voici un aperçu avec et sans support dans le tube :




CURA refuse de découper votre forme et l’affiche rayée à l’écran ?

Il peut arriver que le logiciel CURA affiche votre forme “rayée” et une bordure grise sur le côté du plateau d’impression, ainsi qu’un message d’erreur lorsqu’on essaie de découper la forme :

On voit pourtant que cet objet rentre dans le plateau.

Le bord gris est du à l’option d’adhésion de CURA, même si celle-ci n’est pas cochée dans les réglages :

Il faut choisir la valeur None dans l’option Build Plate Adhesion Type (Type d’adhérence du plateau à Aucun )




Ma première imprimante 3D

10 ans après tout le monde, j’ai enfin décidé cette année de sauter le pas, et de m’acheter…une imprimante 3D !

Ces appareils, hors de prix il y a 10 ans, ont énormément évolué en terme de rapport performances/prix, et on en trouve désormais à moins de 200€.

En tombant sur cet article de Minimachines, j’ai jeté mon dévolu sur la Longer LK4 Pro (qu’on trouve autour de 160€ à la date de rédaction de cet article).

Petit rappel pour celles et ceux qui ne connaissent pas le fonctionnement de ces appareils : une tête mobile se déplace au dessus d’une surface et dépose couche par couche (de 0.2mm ici) un plastique (ou d’autres matières selon les modèles).

Le modèle que j’ai choisi est basique, mais est un bon choix pour expérimenter l’impression 3D. Son montage est simple : elle est livrée partiellement montée, il suffit juste de suivre la documentation (1h environ).

Je vais tâcher de rassembler ici quelques petits conseils par rapport aux quelques ajustements et problèmes que j’ai rencontré.

Rendu visuel

Le plus important : à quoi ça ressemble la pièce une fois imprimée ? (à gauche le rendu 3D, à droite la pièce finale avec une buse de 0.5mm).

La matière utilisée ici est du PLA, un plastique biosourcé fabriqué à partir d’amidon de maïs (donc sans produits pétroliers). On en trouve de toutes les couleurs, avec même des mélanges de bois (mais il existe aussi des modèles qui impriment de la céramique, du métal, du bois, du chocolat, du béton…).

Cette pièce est destinée à être un moule pour réaliser des demi-perles 🙂

Application pratique

J’ai récemment cassé sur ma serrure la “tirette” permettant de facilement ouvrir la porte :

1-Modéliser l’objet en 3D

Pour cela, pas besoin de logiciels onéreux, et d’un ordinateur très puissant.

En effet, il existe désormais des outils en ligne gratuits, comme TinkerCad (de l’éditeur Autodesk, qui édite notamment AutoCAD).

Il permet assez simplement de créer une forme 3D, et de l’exporter ensuite dans un format destiné à l’impression.

On peut même soustraire une forme à une autre, écrire à l’écran et obtenir le rendu de son écriture en 3D, etc. Par exemple la forme ci-dessus est en fait une addition/soustraction de plusieurs formes :

Une fois cette forme exportée en STL (un standard dans le domaine), il faut ensuite le passer dans le logiciel CURA, qui va calculer tous les déplacements nécessaires.

J’ai ici volontairement renversé la pièce pour vous montrer que cet outil rajoute aussi si nécessaire un support sous la partie fine : en effet, on ne peut pas imprimer dans le vide 🙂

Le fichier GCODE qu’exporte CURA est ensuite à mettre sur une carte SD (fournie); on peut aussi imprimer directement en USB.

2-Choisir son filament

La Longer LK4 Pro supporte plusieurs types de filaments : PLA, ABS, et les filaments plastique-bois.

Le plus accessible reste le PLA, qu’on trouve entre 15 et 20 euros le kilogramme chez Arianeplast (il existe une infinité de marques mais celle-ci est produite en France).

3-Petits achats optionnels mais bien pratiques 🙂

La liste de courses est courte et peu onéreuse mais elle vous rendra service (et vous évitera quelques crises de nerfs).

Des buses de remplacement (0.5€ pièce) + des aiguilles de nettoyage

⚠️Prenez bien la bonne taille (et pas un panachage de plusieurs dimensions, sauf si c’est voulu)

De la laque (15€)

Celle-ci va aider à l’adhérence de la pièce sur le plateau (que ca accroche sans trop accrocher).

J’ai ici choisi une marque spécialisée mais de la Vivel Dop extra-forte fera très bien l’affaire 😉

De l’alcool isopropylique

Il permettra de bien nettoyer la surface d’impression (elle ne doit absolument pas être grasse) et d’enlever la laque quand il faudra la renouveler.

4-Rendu final

Voici le résultat après une grosse heure d’impression (en PLA gris métallisé 1.75mm à 200 °C)

La matière est très résistante, et suffit largement aux usages courants.

Et voici le résultat une fois la pièce remontée :

Autre exemple de réalisation toujours sans post-traitement :

5-Conseils

  • bien serrer la courroie horizontale (cette vidéo de GueroLoco présente le montage complet de l’imprimante et quelques tests)
  • mettre le plateau de chauffe à l’endroit (oui, oui, je me demandais au début pourquoi ca accrochait mal…)
  • bien positionner le capteur de fin de course vertical (situé sur la gauche de l’imprimante)
  • vérifier le calibrage de l’extrudeur (dans mon cas il sortait 94mm pour 100mm demandés)
  • nettoyer la buse régulièrement (le trou fait un demi-millimètre et la buse est à 200 °C)
  • nettoyer le plateau régulièrement (il chauffe à 50 °C à chaque impression)
  • garder vos rebuts (on peut faire refondre le PLA avec le bon matériel et ca sert toujours pour vos essais, et surtout…ca évite que des petits bouts de fil trainent partout !)
  • faire de la place autour de l’imprimante : entre les outils, les consommables, etc. on a vite besoin de place 🙂
  • garder au sec les rouleaux de filament : en effet le PLA n’aime pas l’humidité
  • aérer la pièce où se situe l’imprimante (ca reste du plastique chauffé + la laque + l’alcool éventuel)
  • déposer une FINE couche de laque (la surface doit rester mate, et pas brillante comme un vernis)
  • la pièce se décolle mieux quand le plateau est froid, mais attendez la FIN de l’impression pour refroidir celui-ci
  • pour des pièces très fines et verticales (par exemple une pale de ventilateur, une aile), pensez à cocher “Adhésion” dans CURA sinon elle risque de tomber pendant l’impression

Si vous avez des questions n’hésitez pas 🙂




Isotope & Safari : images qui se superposent

A la date d’écriture de cet article, il semble que la bibliothèque Javascript Isotope (qui permet d’afficher des contenus sous forme de mosaïque dynamique) dysfonctionne sous Safari.

En effet, le calcul des hauteurs de chaque élement se fait trop tôt (avant le chargement complet des images) et on assiste donc à une superposition de celles-ci.

Le problème est cependant solvable en utilisant l’extension jQuery Images Loaded, qui va nous permettre de relancer le calcul des hauteurs respectives de chaque élément à la fin du chargement de toutes les images (source).

Il faudra cependant rajouter une ligne dans le HTML pour charger cette nouvelle extension :

<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>

(vous pouvez également héberger en local le même fichier Javascript)

Isotope s’appelle en général de la manière suivante :

$( function() {
  var $container = $('#my-container-id');
  $container.isotope({
    // options...
  })
});

On va modifier ce code pour forcer le recalcul évoqué plus haut :

$( function() {
  var $container = $('#my-container-id');
  $container.isotope({
    // options...
  }).imagesLoaded( function() {
    $container.isotope('layout');
  });
});

Le traitement supplémentaire effectué sera quasi imperceptible.




Détecter des MP3 “tronqués” via sox

Depuis le crash violent de mon disque externe Network (LaCie) en 2012 et une récupération de fichiers dans la douleur, je me retrouvais avec des MP3 “tronqués” : ils faisaient bien leur taille initiale en nombre d’octets, mais à la lecture ils s’arrêtaient brutalement.

Les trier était certes faisable manuellement, mais sur quelques milliers l’opération devient particulièrement..reloue.

Comme tout bon développeur, j’ai trouvé une solution pour que la machine le fasse à ma place 🙂

Via mes contacts, et plus particulièrement Legz, j’ai testé la bibliothèque sox, qui permet de manipuler des fichiers audio (lecture, analyse, etc).

Après 2h de travail (le bash et moi ne sommes pas copains du tout), j’ai pondu ça :

En résumé :
– à l’aide de sox, on coupe le fichier à 0 secondes de sa fin
– vu que sox essaie vraiment d’aller à la fin de ce qui est lisible, sur un MP3 abimé, on a donc un fichier plus court
– on récupère la durée de ce fichier “plus court” et du fichier original, qu’on arrondit
– si la différence est sensible (> 10 secondes), on renomme le dit fichier pour l’identifier par la suite

Essai : http://blog.lahaut.info/2014/12/erreur-proftpd-killed-signal-15-sous-ubuntu-14-04/




Erreur “ProFTPD killed (signal 15)” sous Ubuntu 14.04

Après avoir eu à de nombreuses reprises à relancer un serveur ProFTPD qui s’arrêtait sans raison sur une machine en Ubuntu 14.04, j’ai effectué quelques recherches et trouvé l’article suivant : https://oitibs.com/fix-proftpd-killed-signal-15/, qui donne la solution :

Dans le fichier /etc/init.d/proftpd, il faut changer la commande suivante (autour de la ligne 109, dans la fonction signal() :

[code]start-stop-daemon –stop –signal $SIGNAL –quiet –pidfile "$PIDFILE"[/code]

par

[code]start-stop-daemon –stop –signal $SIGNAL –retry 1 –quiet –pidfile "$PIDFILE"[/code]

Le problème est lié au fait que ProFTPD se ne se relance pas lors de la “rotation des ses logs” (quand il archive son log actuel pour en créer un nouveau)




Cours “les bases du HTML”

Dans le cadre de cours HTML/CSS que je donne à l’IDRAC, j’ai créé quelques slides reprenant les principales balises et la structure globale d’une page HTML.

cours_htmlC’est assez survolé, mais ca peut vous servir de base pour expliquer le concept.

Elle utilise la bibliothèque Javascript Reveal.js, qui permet, en plus des effets visuels sympas, d’avoir des slides dans les deux directions (donc par exemple de faire des “colonnes” sur un sujet particulier)

Cette présentation est également disponible sur son dépôt Github (sous une licence CC-BY-NC)




Comment bookmarker/mettre de côté des tweets, pour les lire plus tard ?

Il existe sur Twitter la possibilité de mettre un tweet dans les favoris (cette liste est d’ailleurs publique).

Cela correspond à plusieurs usages, et notamment :

  • indiquer à l’auteur du message son soutien, une marque d’attention, dans le même esprit que les “likes” de Facebook
  • mais surtout, “stocker” ces tweets, afin de par exemple les lire plus tard

Pour ce 2e usage, il existe plusieurs services comme Pocket, ou Readibility, mais, outre le fait qu’il faut s’abonner à un service supplémentaire, cela ne s’intègre pas au client que j’utilise sur ma machine principale (TweetDeck pour Chrome). (et à titre personnel je préfère réserver la fonction de favori à des tweets qui me paraissent “importants”.

J’avais vu passer il y a quelques semaines l’annonce faite par Twitter des Custom Timelines, sans réellement en comprendre le fonctionnement.

Il s’agit en fait d’un outil permettant de grouper ensemble plusieurs tweets (qui n’ont pas besoin d’être reliés par un même hashtag, ou de correspondre à la même recherche par mots-clés).

Points positifs

  • on peut y ranger n’importe quel tweet de n’importe quel utilisateur (tant qu’il est visible)
  • ces listes sont intégrables via le créateur de widgets de Twitter dans n’importe quelle page web/article

Points négatifs

  • la dépendance à TweetDeck pour créer les timelines
  • on ne peut donc les créer depuis le site (peut être depuis des clients tiers, je n’ai pas testé)
  • il n’est pas possible de ré-ordonner les tweets dans la liste, le dernier ajouté est affiché en premier

Mode opératoire pour créer une nouvelle “custom timeline”

  • utiliser TweetDeck (sur n’importe quel navigateur), avec vos identifiants Twitter habituels
  • cliquer sur le bouton “Custom timelines” en bas à gauche de l’application :
    tuto_timeline_1
  • cliquer sur “Create custom timeline” :
    tuto_timeline_2
  • saisir ensuite un nom (obligatoire) et une description (ça, par contre, c’est facultatif) :
    tuto_timeline_3
  • enfin, il ne vous reste qu’à y glisser des tweets via la petite icône en forme de croix en bas à droite de chaque message (par un simple glisser-déposer) :
    tuto_timeline_4
  • le menu d’options de chaque timeline vous permet (en plus des options habituelles de filtrage) d’obtenir l’URL publique de cette liste de tweets et le code d’intégration (“embed”) :
    tuto_timeline_5

La custom timeline créée pour cet article est par exemple accessible via l’URL suivante : https://twitter.com/SamyRabih/timelines/418461215505936384

Et si on utilise le code d’intégration fourni (avec les options par défaut), le résultat est le suivant :


Comment obtenir le code d’intégration des “custom timelines” (pour son blog, par exemple) ?

Attention : on ne peut intégrer créer un code d’intégration que pour les timelines créées depuis le compte avec lequel vous êtes connecté(e) (en clair, vous ne pouvez générer le code d'”embed” pour une liste personnalisée d’un autre utilisateur)

A noter : comme tous les widgets Twitter, si vous le supprimez de votre compte, il ne s’affichera plus dans les pages où il a été inséré




“Refresh Blocker” Firefox extension fork

One of my friends was talking me about the “auto meta refresh” of some websites like LeMonde.fr, and I was looking for a way to block it. The RefreshBlocker Firefox extension is the perfect tool for it.

But it displays an annoying notification in the header of the pages :

notification

So I made a fork of this extension, to remove the notification : RefreshBlocker 0.8 (“no notifications” version)

(the original add-on is located on its page on the Firefox plugins website)

Some similar plugin exists for Chrome : Stop AutoRefresh