Vous ne pouvez pas modifier cette page, pour la raison suivante :
L’action que vous essayez de réaliser n’est permise qu’aux utilisateurs du groupe : Utilisateurs.
Statut du projet
(Un choix)
Concept Experimental Prototype Fonctionnel Inconnu Abandonné Obsolete
Statut de la publication
Aucune Brouillon Publié Finalisé
Image
Importer un fichier
Description
(petite description du projet, 80 caractères max)
Licence
Vous pouvez trouver plus d'informations sur les licences libres sur le site creativecommons.org.
Contributeur⋅ice⋅s
(personnes participant au projet, séparés par des virgules):
Inspiration
Matériaux
(liste des matériaux utilisés, séparés par des virgules)
Machines
(liste des machines spécifiques utilisées, séparés par des virgules)
Fichier(s) source
Url
Un problème ou une suggession à propos de ce formulaire ? Parlez en sur Discussion:DataFab
Texte libre:
== Concept == Au début des années 1970, Fisher Price met en vente son magnifique 'record player': tourne disque qui permet de lire des chansons au doux son mécanique des lames métalliques de la boite à musique embarquée dans le bras de lecture. [[File:recordPlayer.jpg|border|360px|le Record Player Fisher Price]] https://fr.wikipedia.org/wiki/Bo%C3%AEte_%C3%A0_musique Parmi les petites ritournelles présentes sur les disques, on trouve des tubes intemporels pour les nenfants: vive le vent, souris verte et autres hymnes enfantins. Pour '''''Rep Price''''' l'idée est de pouvoir produire de nouveaux disques sur lesquels serait imprimée les talents d'aujourd'hui: britney spears, justin bieber ou encore la fouine ! (À noter que fisher price réédite ses record player pour la Noél 2012 ! c'est dire la puissance intemporelle de ces petites machines : http://www.perpetualkid.com/fisher-price-record-player.aspx) Comme les idées sont dans l'air, et que les inventions ne sont pas issues de l'esprit de quelques génies romantiques mais de travaux collectifs et d'échanges entre 'bidouilleurs', catalysé aujourd'hui par Internet (l'Histoire cependant retiendra un nom pour la postérité c'est plus simple pour les manuels scolaires), le jour ou j'ai décidé de graver mon premier disque pour le ''Record Player'', un type à mis cette vidéo en ligne : http://hackaday.com/2012/05/24/fisher-price-record-player-plays-stairway-to-heaven/ Le travail était déjà fait... :-/ Tout de même ''fred27'' a partagé une documentation pour réaliser à son tour un magnifique disque, ici sur intstructables: http://www.instructables.com/id/Custom-records-for-a-70s-toy-record-player/?ALLSTEPS Merci à lui ! Mais heureusement pour nous, ''fred27'' a donné de quoi faire tout ça en utilisant un logiciel propriétaire fonctionnant sur vindoze !! Super, tout n'était donc pas perdu pour nous, il nous restait à faire une version ''libre'' pour les mellowmans amateurs de pingouins. == Expérimentations == J'ai tout d'abord tenté de réaliser un disque en utilisant la [[ReprapPrusa]] de PiNG ainsi qu'[[OpenScad]] pour créer la forme initiale. Voici ici le code utilisé pour imprimer mon premier modèle de disque: <code> //REP_PRICE v.0.1 //Copyright (C) 2012 ((Thomas Bernardi)) // //Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon //les termes de la Licence Publique Générale GNU publiée par la Free Software //Foundation //(version 2 ou bien toute autre version ultérieure choisie par vous). //Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, //ni explicite ni implicite, y compris les garanties de commercialisation ou //d'adaptation //dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails. //Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps que ce programme ; //si ce n'est pas le cas, écrivez à la Free Software //Foundation, Inc., 59 Temple Place, Suite 330, //Boston, MA 02111-1307, États-Unis. rayonDisque=60.5; paroi = 0.5; $fn = 75; // pour affiner les contours (nbr de facettes) dans tout le prog // méthode pour construire les 11 pistes module piste(rayon){ translate([0,0,3]){ difference(){ cylinder(r=rayon, h=2); cylinder(r=(rayon-paroi), h=2.1); } } // on tire des valeurs aléatoires entre 0 et 360 degré randomVal = rands(0, 360, 6, rayon); randomVal2 = rands(0, 360, 6, rayon+2); // je place des dents de façon aléatoire for( i = [0 : 5]){ dents(rayon, randomVal[i]); //dent d'un côté de la piste dents(rayon-1.4, randomVal2[i]); //dent de l'autre côté echo(randomVal[i]); } } // création d'un module pour les 'dents' module dents(xPos, angle){ color([255,0,0]){ rotate(a=[0,0,angle]){ translate([xPos, 0, 3]){ cube([1.4, 1, 2]); } } } //echo( "Random Vector: ",angle, "xPos: ", xPos); } //---------------------------------------------------------- // dessin de la forme principale difference(){ union(){ // le disque principal cylinder(r=rayonDisque,h=3); // l'anneau extérieur translate([0,0,3]){ difference(){ cylinder(r=rayonDisque, h=2); cylinder(r=(rayonDisque-2.4), h=2.1); } } // l'anneau intérieur translate([0,0,3]){ difference(){ cylinder(r=26.7, h=2); cylinder(r=(26.7-2.4), h=2.1); } } // on execute la méthode piste avec une boucle for (i = [58.1 : 2.9 : 29.59]) { piste(i); } } // les perçage du milieu union(){ cylinder(r=3.2, h=8, center=true); translate([21, 0, 0]){ cylinder(r=1.3, h=8, center=true); } translate([0, 21, 0]){ cylinder(r=1.3, h=8, center=true); } translate([-21, 0, 0]){ cylinder(r=1.3, h=8, center=true); } translate([0, -21, 0]){ cylinder(r=1.3, h=8, center=true); } } } </code> Pour l'instant le rendu d'impression avec la RepRap manque de précision, surement la qualité serait plus optimale avec la CNC... Une fois qu'elle sera réparée j'essaierai avec. ==== Vinyles numériques imprimés ==== Entre temps, une hackeuse (Amanda Ghassaei) a réussi à imprimer un vinyle avec une imprimante 3D: http://www.rue89.com/zapnet/2012/12/27/pixies-nirvana-daft-punk-des-vinyles-crees-par-une-imprimante-3d-238137 Le premier vinyle numérique (qualité audio très modeste), la plupart des vinyles étant analogiques et reproduisant fidèlement le son. La bonne nouvelle, c'est que le travail d'encodage a été réalisé avec Processing et la librairie modelbuilder : http://www.instructables.com/id/3D-Printed-Record/step7/Make-Your-Own-Records/ ==== Une version avec Processing ? ==== Une librairie développée par Marius Watz pour Processing permet d'exporter des fichiers .STL : http://workshop.evolutionzone.com/2011/04/06/code-modelbuilder-library-public-release/ Après moult tentatives pour utiliser la librairie modelBuilder dans Processing 2b3, Processing 2b6 et Processing 2b7, je suis confronté à des problèmes de compatibilité : <code>NoSuchMethodError: You may be using a library that's incompatible to this version of Processing</code> Le problème viendrait de la classe MouseNav3D.java qui utilise une classe Java plus usité dans la dernière version de Processing <tt> Event Handling has changed significantly in 2.0b7. Due to necessary changes in the OpenGL renderer, and to provide better compatibility with Android and JavaScript modes, we've added actual MouseEvent and KeyEvent classes to Processing. In previous releases, the MouseEvent and KeyEvent classes referred to the automatically imported "java.awt.MouseEvent" and "java.awt.KeyEvent". This is no longer the case, so your code will behave a little differently. The OpenGL renderer no longer uses AWT (and therefore doesn't use java.awt events), so it's a necessary change there. On Android, there's no such thing as java.awt. More details on this as I have time to write them up. This also has implications for libraries, and the library developer pages have more information. </tt> Je repasse donc avec succès sur Processing 1.5.1 Premier essai d'un export d'une forme simple en .STL <code> import unlekker.util.*; import unlekker.modelbuilder.*; MouseNav3D nav; UGeometry model; void setup () { size(600, 600, P3D); nav = new MouseNav3D(this); nav.trans.set(width/2, height/2, 0); model = Primitive.cylinder(121, 5, 100, true); } void draw() { background(100); lights(); // call MouseNav3D transforms nav.doTransforms(); fill(255); model.draw(this); } public void mouseDragged() { nav.mouseDragged(); } public void keyPressed() { nav.keyPressed(); if(key=='s') { model.writeSTL(this, "sphere.stl"); } } </code>
Résumé :
Modification mineure Suivre cette page
Annuler