Projets Divers

Projets inclassables ou sans but particulier

Hugometre

Le Hugometre est votre nouveau partenaire de décision au sein du hackerspace.

Le Hugometre

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));
Code Résultat
color([0.5,1,0.5,1]) square([10,15],center=true);

translate([15,0]) polygon( square([10,15],center=true) );

translate([30,0]) polygon(fractalize(square([10,15],center=true),maxit=3,force=0.5,seed=123 ));

translate([0,-20])  polygon(chaincurve(square([10,15],center=true),detail=3 ));

translate([15,-20]) polygon(chaincurve(koch(square([10,15],center=true),maxit=1),detail=2));
pu.png

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.

Date de début: 01/01/2019
Copyright: Marc Vanlindt © 2019 - marc at vanlindt dot com
Licence: GPL

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

a-covering-for-drainage-with-white-paint-3306357.jpg

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 : 

 

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.

Voir en plein écran

Détails

45 Quai de la Dérivation, Liege

45derivation.jpeg

ToDo

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.

IMG_20211223_123417.jpg

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);

capture scad.png

Impression 3D

capture prusa.png

Résultat

IMG_20211223_123427.jpgIMG_20211223_123429.jpg