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