JSFiddle - React, Tailwind, and code Playground
by tedbeer
JavaScript
// OpenJSCad.org question
// https://plus.google.com/u/0/102032393240187661295/posts/bvBW5hhk8rR
// Wikimask
// Copyright 2013 - Fabrique d'Objets Libres
// Created by Stéphane Mor <[email protected]>
// Les objets créés avec cette application sont sous Licence Creative Commons (CC-BY-SA).
// Boucle principale du programme
function main(params)
{
return([
clip(params.diametre_interieur, params.diametre_exterieur, params.hauteur_interstice, params.ecart, 2, 1 ).translate([0,-30,0]),
//adaptateur_tuyau(10,22).translate([30,20,0]),
nez(params.largeur_nez,params.hauteur_nez,params.profondeur_nez,params.diametre_tuyau_nez,0.4),
appui_frontal(params.largeur_nez + 10, params.hauteur_nez).translate([-60,-30,0]),
attache_nez(params.largeur_nez, params.hauteur_nez, params.diametre_tuyau_nez, 0.8).translate([60,0,0]),
raccord_tuyau(params.diametre_tuyau_nez,params.hauteur_nez + 5).translate([30,-30,0])
]);
}
// Paramètres modifiables par l'utilisateur
function getParameterDefinitions() {
return [
{ name: 'diametre_interieur', caption: 'Diamètre intérieur:', type: 'float', default: 8 },
{ name: 'diametre_exterieur', caption: 'Diametre extérieur:', type: 'float', default: 10 },
{ name: 'hauteur_interstice', caption: 'Hauteur de l\'interstice:', type: 'float', default: 4 },
{ name: 'ecart', caption: 'Écart:', type: 'float', default: 1 },
{ name: 'largeur_nez', caption: 'Largeur nez:', type: 'float', default: 39 },
{ name: 'hauteur_nez', caption: 'Hauteur nez:', type: 'float', default: 23 },
{ name: 'profondeur_nez', caption: 'Profondeur nez:', type: 'float', default: 14 },
{ name: 'diametre_tuyau_nez', caption: 'Diamètre du tuyau d\'arrivée d\'air:', type: 'float', default: 10 },
];
}
// Partie nasale du masque; le masque proprement dit.
function nez(largeur, hauteur,profondeur,diametre,epaisseur){
var rayon = largeur / 5;
var g_cercle = circle({r: rayon + 2, center: true});
var cercle = circle({r:...