Projets Divers
Projets inclassables ou sans but particulier
Hugometre
Le Hugometre est votre nouveau partenaire de décision au sein du hackerspace.
Le Hugometre
Ce projet est terminé et est installé dans la pièce principale
Le Hugometre est votre nouveau partenaire de décision au sein du hackerspace. Soumettez votre idée ou projet, appuyez sur le bouton jaune et recevez une des meilleures punchline de notre Hugo.
Participants
Qui | Statut | Rôle |
Loïc (iooner) | Mainteneur |
Initiation du projet |
Hugo | Participant malgré lui |
Victime |
Documentation
Un servo, un esp et du carton.
LgHS OpenSCAD Module
! Attention cette librairie n'est compatible qu'avec les Nightly Builds de OpenScad ! Librairie pour OpenSCAD apportant :
-
Nouvelles fonctions
-
Nouveaux modificateurs
-
Nouveaux objets 2D
-
Nouveaux objets 3D
-
Nouveaux objets hybrides
Le but est également de rendre accessible toutes les primitives 2D originelles ou de cette librairie accessibles sous forme de fonction et non plus seulement d'objet.
Par exemple :
square([20,10],center=true);
équivaut avec cette librairie à :
polygon(square([20,10],center=true));
Dans le premier cas, nous faisons appel à un objet, dans le second à une fonction.
La différence principale vient de l'utilisation pouvant en être faite puisque l'appel à une fonction permet de lui appliquer des transformations directement sur les vecteurs composant la forme et non uniquement sur la forme en elle-même.
Présentation du projet
Date de début: 01/01/2019
Copyright: Marc Vanlindt © 2019 - marc at vanlindt dot com
Licence: GPL
Fonctions
Random
random(n,s,pos)
Cette fonction a pour but d'être plus simple à utiliser que la fonction présente nativement rands().
Variable | Signification | Type | Utilité |
---|---|---|---|
n | Nombre | Nombre | L'aléa ira de 0 à ce nombre. |
s | Seed | Nombre | Graine à utiliser pour créer l'aléa |
pos | Positif ? | Booléen | Si true ou non indiqué, l'aléa ira de 0 au nombre choisi. Si false, ira de -n à n |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(random(10,5)) | 6.833 | Nombre |
Code de la fonction
function random(n,s,pos) = rands(pos==undef?0:pos==true?0:-n,n,1,s==undef?n:s)[0];
Fibonacci
fibonacci(n)
Cette fonction a pour but de donner la valeur voulue de la suie de Fibonacci.
Variable | Signification | Type | Utilité |
---|---|---|---|
n | Nombre | Nombre | Indique la valeur de la nème valeur de la suite de Fibonnaci |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
for(i=[1:15]){ echo(fibonacci(i)); } |
ECHO: 1 ECHO: 2 ECHO: 3 ECHO: 5 ECHO: 8 ECHO: 13 ECHO: 21 ECHO: 34 ECHO: 55 ECHO: 89 ECHO: 144 ECHO: 233 ECHO: 377 ECHO: 610 ECHO: 987 |
Nombre |
Code de la fonction
function fibonacci(n,a=0,b=1,c=1) = c<n?fibonacci(a=b,b=a+b,c=c+1,n=n):a+b;
Hypo
hypo(a,b)
Fournit l'hypoténuse sur base de deux longueurs.
Variable | Signification | Type | Utilité |
---|---|---|---|
a & b | Nombre | Nombre | Indique les longueurs des deux côtés d'un triangle qui ne sont pas l'hypoténuse |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(hypo(3,4)); | ECHO: 5 | Nombre |
Code de la fonction
function hypo(a,b) = sqrt((a*a)+(b*b));
Pair
pair(a)
Cette fonction indique si le nombre donné est pair ou impair.
Variable | Signification | Type | Utilité |
---|---|---|---|
a & b | Nombre | Nombre | Indique les longueurs des deux côtés d'un triangle qui ne sont pas l'hypoténuse |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(pair(3)); echo(pair(4)); |
ECHO: false ECHO: true |
Booléen |
Code de la fonction
function pair(a) = a%2==0?true:false;
Sum
sum(a)
Cette fonction fournit la somme des valeurs contenues dans a.
Variable | Signification | Type | Utilité |
---|---|---|---|
a | Table | Table | Indique les valeurs devant être additionnées |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(sum([1,2,3,4])); | ECHO: 10 | Nombre |
Code de la fonction
function sum(a,b=0,c=0) = b<len(a)?sum(a=a,b=b+1,c=c+a[b]):c;
ToPct
topct(a)
Cette fonction transforme les valeurs d'une table en le pourcentage qu'elles représentent dans cette table.
Variable | Signification | Type | Utilité |
---|---|---|---|
a | Table | Table | Indique les valeurs devant être traitées |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(topct([1,2,3])); | ECHO: [0.1666667, 0.333333, 0.5] | Table |
Code de la fonction
function topct(a) = a/sum(a);
Middle
middle(a)
Cette fonction donne la moyenne des valeurs contenues dans une table.
Variable | Signification | Type | Utilité |
---|---|---|---|
a | Table | Table | Indique les valeurs devant être traitées |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(middle([1,2,3])); | ECHO: 2 | Nombre |
Code de la fonction
function middle(a,b=0,c=0) = b<len(a)?sum(a=a,b=b+1,c=c+a[b])/len(a):c;
Invert
invert(a)
Cette fonction inverse une table.
Variable | Signification | Type | Utilité |
---|---|---|---|
a | Table | Table | Indique les valeurs devant être inversées |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(invert([1,2,3])); | ECHO: [3,2,1] | Table |
Code de la fonction
function invert(a) = let(b=[for(i=[0:len(a)-1]) a[(len(a)-1)-i]])b;
Sort
sort(a,invert)
Cette fonction trie une table.
Variable | Signification | Type | Utilité |
---|---|---|---|
a | Table | Table | Indique les valeurs devant être triées |
invert | Inversion | Booléen | Inverse le sens du tri |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(sort([4,2,1,3])); echo(sort([4,2,1,3],invert=true)); |
ECHO: [1,2,3,4] ECHO: [4,3,2,1] |
Table |
Code de la fonction
function sort (a,invert=false) = len(a) == 0 ? [] : let ( b=floor(len(a)/2), c=[for(i=a) if (i<a[b]) i], d=[for(i=a) if (i>a[b]) i], e=[for(i=a) if (i==a[b]) i] ) invert==false?concat(sort(c),e,sort(d)):invert(concat(sort(c),e,sort(d)));
HypoVEC
hypovec(a,b)
Cette fonction donne l'hypoténuse sur base de deux coordonées.
Variable | Signification | Type | Utilité |
---|---|---|---|
a & b | Table | Table | Indique les coordonées |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(hypovec([0,0],[10,10])); | ECHO: 14.14214 | Nombre |
Code de la fonction
function hypovec(a,b) = sqrt(((b[0]-a[0])*(b[0]-a[0]))+((b[1]-a[1])*(b[1]-a[1])));
Divide
divide(a,b,c)
Cette fonction divise un vecteur basé sur deux coordonnées et un diviseur.
Variable | Signification | Type | Utilité |
---|---|---|---|
a & b | Table | Table | Indique les coordonées |
c | Nombre | Diviseur |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(divide([0,0],[10,10],1/3)); | ECHO: [3.33333,3.33333] | Table |
Code de la fonction
function divide(a,b,c) = [a[0]+(b[0]-a[0])*c, a[1]+(b[1]-a[1])*c];
MyAngle
myangle(a,b)
Cette fonction fournit l'angle existant entre deux coordonnées.
Variable | Signification | Type | Utilité |
---|---|---|---|
a & b | Table | Table | Indique les coordonnées |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(myangle([0,0],[10,10])); | ECHO: 45 | Nombre |
Code de la fonction
function myangle(a,b) = 90-atan2(b[0]-a[0],b[1]-a[1])*-1;
Join & Join2
join(a)
Dans une table composée d'autres tables : réunit tout en une seule table.
Join2 est beaucoup plus rapide mais ne fonctionne qu'avec les Nightly Builds de OpenSCAD.
Variable | Signification | Type | Utilité |
---|---|---|---|
a | Table | Table | Table devant voir ses données jointes |
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(join([[[0,0],[10,10],[20,20]],[[30,30],[40,40],[50,50]],[[60,60],[70,70],[80,80]]])); |
ECHO: [[0, 0], [10, 10], [20, 20], [30, 30], [40, 40], [50, 50], [60, 60], [70, 70], [80, 80]] |
Table |
Code de la fonction
function join(a,c=0,t=[]) = let (u=concat(t,a[c]))c==len(a)?t:join(a=a,c=c+1,t=u);
function join2(a) = [for(i=[0:len(a)-1] ) each a[i]];
Clean
clean(a)
Nettoie une table des doublons et valeurs indéfinies
Exemple
Usage | Sortie | Type de sortie |
---|---|---|
echo(clean([undef,[0,0],[10,10],[10,10],undef,[20,20]])); |
ECHO: [[0, 0], [10, 10], [20, 20]] |
Table |
Code de la fonction
function clean(a) = [for(i=[0:len(a)-1]) each (a[i]==a[i+1]?"":a[i][0]==undef?"":[a[i]])];
Streetshirt
Fork the Raubdruckerin: female pirate printer
Ce projet est encore en état d'incubation.
Présentation du projet
L'idée est de forker sur Liège le projet "Raubdruckerin: female pirate printer" http://raubdruckerin.de/en/project/.
Le concept est assez simple utiliser des plaques de téléphones, grille de ventilation, taques d'égouts, ... comme support de "sérigraphie".
Le projet original donne quelques lignes dans son manifeste et sur son site que voici :
- Une encre 100% à base d'eau,
- Pas de production de masse,
- Upcycling: utiliser d'anciens tshirts ou bien des tshirts fair trade,
- Toujours nettoyer après son passage.
Participants
Qui | Statut | Rôle |
iooner | Mainteneur |
Initiation du projet |
Documentation
Il est très important d'utiliser des encres uniquement à base d'eau et respectueuses de l'environnement.
Carte des spots
Une carte listant les spots intéressants.
Détails
45 Quai de la Dérivation, Liege
ToDo
- Préparer cadre en carton,
- Trouver matériel de nettoyage (avant après)
- Brosse,
- ...
- Trouver de l'encre eco/bio,
- Acheter rouleau compacte,
Illustrations
A venir.
Besoins
Matériel
BrailleRap-SP
Réparation bouton sonnette Byron Action
Projet terminé !
Le bouton de la sonnette ne fonctionne plus. Les pattes en plastique étaient très fines et ont fini par casser. Imprimons un nouveau bouton.
Code OpenSCAD
$fn=80;
cylinder(h=0.4,d=15,center=true);
translate([0,0,1]) cylinder(h=1.8,d=14,center=true);
translate([0,0,-0.35]) cylinder(h=4.5,d=3,center=true);
Impression 3D
Résultat