abracadabraPDF › Forums › PDF – Général › Calcul filetages › Répondre à : Calcul filetages

bonjour,
Voici un nouveau script ou les diamètres pour les filetages gaz sont indiqués dans une table.
Pour info, j’ai retiré de ta liste le modèle 1″3/8 qui n’existe pas et que je prenais en exemple… ce qui m’a perturbé un moment car bien entendu il n’était pas dans la table !
if (!event.willCommit) {
for (var i=0; i<event.target.numItems; i++) {
if (event.changeEx==event.target.getItemAt(i,true)) break;
}
var lesValeurs=event.target.getItemAt(i,false);
//
var vis="";
var pas="";
var filetageRegEx=/^M[ ]*(\d{1,2})[ ]*-[ ]*\w*[ ]*(\d{1,2}[.,]\d{1,3})$/;
if (filetageRegEx.test(lesValeurs)) {
var visPas=lesValeurs.replace(filetageRegEx,"$1-$2".replace(/,/g,"."));
var vis=visPas.split("-")[0];
var pas=visPas.split("-")[1];
} else {
var filetageRegEx=/^(W|(BSF)|(PG)|(NPT))[ ]*(\d?["]?[ ]*(\d[/]\d+)?)[ ]*-[ ]*\w*[ ]*(\d{1,2}[.,]\d{1,3})$/;
if (filetageRegEx.test(lesValeurs)) {
var visPas=lesValeurs.replace("\""," ").replace(/[ ]+/g," ").replace(filetageRegEx,"$5-$7".replace(/,/g,"."));
var laVis=visPas.split("-")[0].split(/[ ]/);
if (laVis.length==1) {
var vis=(Number(laVis[0].split("/")[0])/Number(laVis[0].split("/")[1]))*25.4;
} else {
if (laVis[1]) var vis=(Number(laVis[0])+(Number(laVis[1].split("/")[0])/Number(laVis[1].split("/")[1])))*25.4;
else var vis=Number(laVis[0])*25.4;
}
var pas=visPas.split("-")[1];
} else {
var filetageRegEx=/^UN(C|F)[ ]*(\d?["]?[ ]*(\d[/]\d+)?)[ ]*-[ ]*(\d{1,2})[ ]*-[ ]*\w*[ ]*(\d{1,2}[.,]\d{1,3})$/;
if (filetageRegEx.test(lesValeurs)) {
var visPas=lesValeurs.replace("\""," ").replace(/[ ]+/g," ").replace(filetageRegEx,"$2-$4-$5".replace(/,/g,"."));
var laVis=visPas.split("-")[0].split(/[ ]/);
if (Number(visPas.split("-")[1])>=28 && /[^"]/.test(lesValeurs) && Number(visPas.split("-")[0])<=12) {
var UN=[1.524,1.854,2.184,2.515,2.845,3.175,3.505,"-",4.166,"-",4.826,"-",5.486];
var vis=UN[Number(visPas.split("-")[0])];
} else if (laVis.length==1) {
var vis=(Number(laVis[0].split("/")[0])/Number(laVis[0].split("/")[1]))*25.4;
} else {
var vis=(Number(laVis[0])+(Number(laVis[1].split("/")[0])/Number(laVis[1].split("/")[1])))*25.4;
}
var pas=visPas.split("-")[2];
} else {
var filetageRegEx=/^G[ ]*(\d?["]?[ ]*(\d[/]\d+)?)[ ]*-[ ]*\w*[ ]*(\d{1,2}[.,]\d{1,3})$/;
if (filetageRegEx.test(lesValeurs)) {
var visPas=lesValeurs.replace("\""," ").replace(/[ ]+/g," ").replace(filetageRegEx,"$1-$3".replace(/,/g,"."));
var laVis=visPas.split("-")[0].split(/[ ]/);
var filetageGaz=[["1/16",7.723],["1/8",9.728],["1/4",13.157],["3/8",16.662],["1/2",20.955],["5/8",22.911],["3/4",26.441],["7/8",30.201],["1",33.249],["1 1/8",37.897],["1 1/4",41.91],["1 1/2",47.803],["1 3/4",53.746],["2",59.614],["2 1/4",65.71],["2 1/2",75.184],["2 3/4",81.534],["3",87.884],["3 1/2",100.33],["4",125.73],["4 1/2",125.73],["5",138.43],["5 1/2",151.13],["6",163.83]];
if (laVis.length>1 && laVis[1]) var filetage=laVis[0]+" "+laVis[1];
else var filetage=laVis[0];
for (var j=0; j<filetageGaz.length; j++) {
if (filetageGaz[j][0]==filetage) {
var vis=filetageGaz[j][1];
break;
}
}
if (j==filetageGaz.length) app.alert("Filetage incorrect",3);
else var pas=visPas.split("-")[1];
} else app.alert("Filetage incorrect",3);
}
}
}
try {
console.println("vis : "+vis);
console.println("pas : "+pas);
this.getField("Text5").value=vis;
this.getField("Text6").value=pas;
} catch(e) {
app.alert("Filetage incorrect",3);
}
}
Attention, le dernier élément de la table filetageGaz doit être [“6”,163.83] (avec un point).
@+
😎
-
Cette réponse a été modifiée le il y a 3 semaines et 5 jours par
bebarth.