Script d’insertion de trous pour l’électronique sous tinkercad

Voici un script que j’ai fait pour créer des points d’insertion de composants électroniques ( par défaut un pas 2.54mm )

la taille, quantité et le pas de masque est facilement modifiable par l’interface

params = [
    { « id »: « r1 », « displayName »: « R1 », « type »: « float », « rangeMin »: 0, « rangeMax »: 100, « default »: 0.4 },
    { « id »: « r2 », « displayName »: « R2 », « type »: « float », « rangeMin »: 0, « rangeMax »: 100, « default »: 0.4 },
    { « id »: « height », « displayName »: « Height », « type »: « float », « rangeMin »: 1.0, « rangeMax »: 100.0, « default »: 20.0 },
    { « id »: « pas », « displayName »: « pas », « type »: « float », « rangeMin »: 1.0, « rangeMax »: 100.0, « default »: 2.54 },
    { « id »: « qtt », « displayName »: « quantite », « type »: « int », « rangeMin »: 1.0, « rangeMax »: 100.0, « default »: 1 }
]function process(params) {
    var height = params[« height »];
    var r1 = params[« r1 »];
    var r2 = params[« r2 »];
    var cl = [0,0,0];
    var ch = [0,0,height];
    var pl = [r1,0,0];
    var ph = [r2,0,height];
    var ndivs = Tess.circleDivisions(Math.max(r1,r2));
    var qtt =  params[« qtt »];
    
    var mesh = new Mesh3D();
    for (var i = 0; i < ndivs; i++) {
        var a = (i+1)/ndivs * Math.PI*2;
        var s = Math.sin(a);
        var c = Math.cos(a);
        var nl = [r1*c, -r1*s, 0];
        var nh = [r2*c, -r2*s, height];
        mesh.triangle(pl, ph, nl);
        mesh.triangle(nl, ph, nh);
        mesh.triangle(cl, pl, nl);
        mesh.triangle(ch, nh, ph);
        pl = nl;
        ph = nh;
    }        var pas = params[« pas »];    
    for (var j = 0; j < qtt; j++) {

var cl = [0,pas*j,0];
var ch = [0,pas*j,height];
var pl = [r1,pas*j,0];
var ph = [r2,pas*j,height];
    
    for (var i = 0; i < ndivs; i++) {
        var a = (i+1)/ndivs * Math.PI*2;
        var s = Math.sin(a);
        var c = Math.cos(a);
        var nl = [r1*c, (pas*j)-r1*s, 0];
        var nh = [r2*c, (pas*j)-r2*s, height];
        mesh.triangle(pl, ph, nl);
        mesh.triangle(nl, ph, nh);
        mesh.triangle(cl, pl, nl);
        mesh.triangle(ch, nh, ph);
        pl = nl;
        ph = nh;
    } }

    
    var solid = Solid.make(mesh) ;
    
    return solid;
}

 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.