Please Leave Us A Message
Заява аб прыватнасці: Ваша прыватнасць для нас вельмі важная. Наша кампанія абяцае не раскрываць вашу асабістую інфармацыю любой экспазіцыі з вашымі відавочнымі дазволамі.
Select Language
English




<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Self-Tapping Screw Thread Specification Reference Table</title> <style> *{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;} body{margin:24px auto;max-width:99%;padding:0 12px;} h2{text-align:center;color:#1a1a1a;margin-bottom:20px;} table{border-collapse:collapse;width:100%;font-size:14px;} th,td{border:1px solid #555;padding:9px 6px;text-align:center;vertical-align:middle;} th{background:#b3d9ff;font-weight:bold;} .left-align{text-align:left;} .query-box{margin:20px 0;padding:14px;border:1px solid #ccc;border-radius:6px;} .query-box input, .query-box select, .query-box button{padding:8px 11px;font-size:15px;margin:0 7px;} #query-result{margin-top:13px;font-size:16px;font-weight:600;} .error-text{color:#c22121;} .success-text{color:#00692c;} </style> </head> <body> <h2>Self-Tapping Screw Thread Specification Table (Unit: Inch)</h2> <!-- Query Operation Panel --> <div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Threads per inch</option> <option value="D">D - Max Major Diameter</option> <option value="dp">dp - Max Point Diameter</option> <option value="d1">d1 - Max Thread Circumscribed Circle Diameter</option> <option value="d2">d2 - Max Point Circumscribed Circle Diameter</option> <option value="L1max">L1 Max - Point Length Max</option> <option value="L1min">L1 Min - Point Length Min</option> <option value="L90">L Min Length (90° Head)</option> <option value="LCounter">L Min Length (Countersunk Head)</option> </select> <button onclick="searchSpecData()">Search Parameter Value</button> <div id="query-result"></div> </div> <!-- Table Render Container --> <div id="table-wrapper"></div> <script> // Raw full dataset extracted from the table image const specDataset = [ { spec: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, { spec: "3#", PP: 48, D: 0.099, dp: "/", d1: 0.101, d2: 0.081, L1max: 0.073, L1min: 0.042, L90: "3/16", LCounter: "7/32" }, { spec: "4#", PP: 40, D: 0.112, dp: 0.086, d1: 0.115, d2: 0.090, L1max: 0.088, L1min: 0.050, L90: "3/16", LCounter: "1/4" }, { spec: "5#", PP: 40, D: 0.125, dp: 0.099, d1: 0.128, d2: 0.103, L1max: 0.088, L1min: 0.050, L90: "7/32", LCounter: "1/4" }, { spec: "6#", PP: 32, D: 0.138, dp: 0.106, d1: 0.141, d2: 0.111, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "5/16" }, { spec: "8#", PP: 32, D: 0.164, dp: 0.132, d1: 0.167, d2: 0.137, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "11/32" }, { spec: "10#", PP: 24, D: 0.190, dp: 0.147, d1: 0.194, d2: 0.153, L1max: 0.146, L1min: 0.083, L90: "5/16", LCounter: "13/32" }, { spec: "1/4", PP: 20, D: 0.250, dp: 0.198, d1: 0.255, d2: 0.206, L1max: 0.175, L1min: 0.100, L90: "13/32", LCounter: "1/2" }, { spec: "5/16", PP: 18, D: 0.313, dp: 0.255, d1: 0.318, d2: 0.264, L1max: 0.194, L1min: 0.111, L90: "15/32", LCounter: "5/8" }, { spec: "3/8", PP: 16, D: 0.375, dp: 0.310, d1: 0.381, d2: 0.320, L1max: 0.219, L1min: 0.125, L90: "9/16", LCounter: "23/32" }, { spec: "7/16", PP: 14, D: 0.438, dp: 0.361, d1: 0.445, d2: 0.375, L1max: 0.250, L1min: 0.143, L90: "21/32", LCounter: "13/16" }, { spec: "1/2", PP: 13, D: 0.500, dp: 0.416, d1: 0.508, d2: 0.433, L1max: 0.269, L1min: 0.154, L90: "23/32", LCounter: "7/9" } ]; // Column definition for table rendering const tableHeaderCols = [ "Thread Specification", "2#", "3#", "4#", "5#", "6#", "8#", "10#", "1/4", "5/16", "3/8", "7/16", "1/2" ]; const rowParamConfig = [ { label: "PP", fullName: "Threads per inch", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Thread Circumscribed Circle Diameter", fieldKey: "d1", subLabel: "Max" }, { label: "d2", fullName: "Point Circumscribed Circle Diameter", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "LCounter", subLabel: "Countersunk Head" } ]; /** * Render complete specification table to page */ function renderFullSpecTable() { let htmlStr = `<table>`; // Table header row htmlStr += `<tr>`; tableHeaderCols.forEach(colName => { htmlStr += `<th class="left-align">${colName}</th>`; }); htmlStr += `</tr>`; // Generate each parameter data row rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // First column: parameter label + full name + sub label htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel ? `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Fill each thread spec cell value specDataset.forEach(specItem => { htmlStr += `<td>${specItem[rowCfg.fieldKey]}</td>`; }); htmlStr += `</tr>`; }); htmlStr += `</table>`; document.getElementById("table-wrapper").innerHTML = htmlStr; } /** * Search spec parameter value by user input */ function searchSpecData() { const inputSpec = document.getElementById("thread-input").value.trim(); const targetParamKey = document.getElementById("param-select").value; const resultDom = document.getElementById("query-result"); let matchedSpec = null; // Match input thread specification for(let i=0; i<specDataset.length; i++) { if(specDataset[i].spec === inputSpec) { matchedSpec = specDataset[i]; break; } } if(!matchedSpec) { resultDom.className = "error-text"; resultDom.textContent = "Error: Invalid thread specification, please check input (example: 8# / 1/4)"; return; } // Map select text to readable full name const paramNameMap = { PP: "Threads per inch (PP)", D: "Max Major Diameter (D)", dp: "Max Point Diameter (dp)", d1: "Max Thread Circumscribed Circle Diameter (d1)", d2: "Max Point Circumscribed Circle Diameter (d2)", L1max: "Point Length Max (L1)", L1min: "Point Length Min (L1)", L90: "Min Nominal Length - 90° Head (L)", LCounter: "Min Nominal Length - Countersunk Head (L)" }; const value = matchedSpec[targetParamKey]; resultDom.className = "success-text"; resultDom.textContent = `Query Result | Thread Spec: ${inputSpec}, Parameter: ${paramNameMap[targetParamKey]}, Value = ${value}`; } // Auto render table after page loaded window.onload = renderFullSpecTable; </script> </body> </html><div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Ніткі на цалю</option> <option value="D">D - максімальны асноўны дыяметр</option> <option value="dp">dp - максімальны дыяметр кропкі</option> <option value="d1">d1 - максімальны дыяметр апісанай акружнасці ніткі</option> <option value="d2">d2 - максімальны дыяметр апісанай акружнасці ў кропцы</option> <option value="L1max">L1 Макс - кропка Макс. даўжыня</option> <option value="L1min">Мінімальная даўжыня L1 - мінімальная даўжыня кропкі</option> <option value="L90">Мінімальная даўжыня L (напор 90°)</option> <option value="LCounter">Мінімальная даўжыня L (патаемная галоўка)</option> </select> <button onclick="searchSpecData()">Параметр пошуку Значэнне</button> <div id="query-result"></div><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Self-Tapping Screw Thread Specification Reference Table</title> <style> *{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;} body{margin:24px auto;max-width:99%;padding:0 12px;} h2{text-align:center;color:#1a1a1a;margin-bottom:20px;} table{border-collapse:collapse;width:100%;font-size:14px;} th,td{border:1px solid #555;padding:9px 6px;text-align:center;vertical-align:middle;} th{background:#b3d9ff;font-weight:bold;} .left-align{text-align:left;} .query-box{margin:20px 0;padding:14px;border:1px solid #ccc;border-radius:6px;} .query-box input, .query-box select, .query-box button{padding:8px 11px;font-size:15px;margin:0 7px;} #query-result{margin-top:13px;font-size:16px;font-weight:600;} .error-text{color:#c22121;} .success-text{color:#00692c;} </style> </head> <body> <h2>Self-Tapping Screw Thread Specification Table (Unit: Inch)</h2> <!-- Query Operation Panel --> <div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Threads per inch</option> <option value="D">D - Max Major Diameter</option> <option value="dp">dp - Max Point Diameter</option> <option value="d1">d1 - Max Thread Circumscribed Circle Diameter</option> <option value="d2">d2 - Max Point Circumscribed Circle Diameter</option> <option value="L1max">L1 Max - Point Length Max</option> <option value="L1min">L1 Min - Point Length Min</option> <option value="L90">L Min Length (90° Head)</option> <option value="LCounter">L Min Length (Countersunk Head)</option> </select> <button onclick="searchSpecData()">Search Parameter Value</button> <div id="query-result"></div> </div> <!-- Table Render Container --> <div id="table-wrapper"></div> <script> // Raw full dataset extracted from the table image const specDataset = [ { spec: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, { spec: "3#", PP: 48, D: 0.099, dp: "/", d1: 0.101, d2: 0.081, L1max: 0.073, L1min: 0.042, L90: "3/16", LCounter: "7/32" }, { spec: "4#", PP: 40, D: 0.112, dp: 0.086, d1: 0.115, d2: 0.090, L1max: 0.088, L1min: 0.050, L90: "3/16", LCounter: "1/4" }, { spec: "5#", PP: 40, D: 0.125, dp: 0.099, d1: 0.128, d2: 0.103, L1max: 0.088, L1min: 0.050, L90: "7/32", LCounter: "1/4" }, { spec: "6#", PP: 32, D: 0.138, dp: 0.106, d1: 0.141, d2: 0.111, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "5/16" }, { spec: "8#", PP: 32, D: 0.164, dp: 0.132, d1: 0.167, d2: 0.137, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "11/32" }, { spec: "10#", PP: 24, D: 0.190, dp: 0.147, d1: 0.194, d2: 0.153, L1max: 0.146, L1min: 0.083, L90: "5/16", LCounter: "13/32" }, { spec: "1/4", PP: 20, D: 0.250, dp: 0.198, d1: 0.255, d2: 0.206, L1max: 0.175, L1min: 0.100, L90: "13/32", LCounter: "1/2" }, { spec: "5/16", PP: 18, D: 0.313, dp: 0.255, d1: 0.318, d2: 0.264, L1max: 0.194, L1min: 0.111, L90: "15/32", LCounter: "5/8" }, { spec: "3/8", PP: 16, D: 0.375, dp: 0.310, d1: 0.381, d2: 0.320, L1max: 0.219, L1min: 0.125, L90: "9/16", LCounter: "23/32" }, { spec: "7/16", PP: 14, D: 0.438, dp: 0.361, d1: 0.445, d2: 0.375, L1max: 0.250, L1min: 0.143, L90: "21/32", LCounter: "13/16" }, { spec: "1/2", PP: 13, D: 0.500, dp: 0.416, d1: 0.508, d2: 0.433, L1max: 0.269, L1min: 0.154, L90: "23/32", LCounter: "7/9" } ]; // Column definition for table rendering const tableHeaderCols = [ "Thread Specification", "2#", "3#", "4#", "5#", "6#", "8#", "10#", "1/4", "5/16", "3/8", "7/16", "1/2" ]; const rowParamConfig = [ { label: "PP", fullName: "Threads per inch", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Thread Circumscribed Circle Diameter", fieldKey: "d1", subLabel: "Max" }, { label: "d2", fullName: "Point Circumscribed Circle Diameter", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "LCounter", subLabel: "Countersunk Head" } ]; /** * Render complete specification table to page */ function renderFullSpecTable() { let htmlStr = `<table>`; // Table header row htmlStr += `<tr>`; tableHeaderCols.forEach(colName => { htmlStr += `<th class="left-align">${colName}</th>`; }); htmlStr += `</tr>`; // Generate each parameter data row rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // First column: parameter label + full name + sub label htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel ? `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Fill each thread spec cell value specDataset.forEach(specItem => { htmlStr += `<td>${specItem[rowCfg.fieldKey]}</td>`; }); htmlStr += `</tr>`; }); htmlStr += `</table>`; document.getElementById("table-wrapper").innerHTML = htmlStr; } /** * Search spec parameter value by user input */ function searchSpecData() { const inputSpec = document.getElementById("thread-input").value.trim(); const targetParamKey = document.getElementById("param-select").value; const resultDom = document.getElementById("query-result"); let matchedSpec = null; // Match input thread specification for(let i=0; i<specDataset.length; i++) { if(specDataset[i].spec === inputSpec) { matchedSpec = specDataset[i]; break; } } if(!matchedSpec) { resultDom.className = "error-text"; resultDom.textContent = "Error: Invalid thread specification, please check input (example: 8# / 1/4)"; return; } // Map select text to readable full name const paramNameMap = { PP: "Threads per inch (PP)", D: "Max Major Diameter (D)", dp: "Max Point Diameter (dp)", d1: "Max Thread Circumscribed Circle Diameter (d1)", d2: "Max Point Circumscribed Circle Diameter (d2)", L1max: "Point Length Max (L1)", L1min: "Point Length Min (L1)", L90: "Min Nominal Length - 90° Head (L)", LCounter: "Min Nominal Length - Countersunk Head (L)" }; const value = matchedSpec[targetParamKey]; resultDom.className = "success-text"; resultDom.textContent = `Query Result | Thread Spec: ${inputSpec}, Parameter: ${paramNameMap[targetParamKey]}, Value = ${value}`; } // Auto render table after page loaded window.onload = renderFullSpecTable; </script> </body> </html>const specDataset = [ {спецыфікацыя: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, {спецыфікацыя: "3#", PP: 48, D: 0,099, dp: "/", d1: 0,101, d2: 0,081, L1max: 0,073, L1min: 0,042, L90: "3/16", LCounter: "7/32" }, {спецыфікацыя: "4#", PP: 40, D: 0,112, dp: 0,086, d1: 0,115, d2: 0,090, L1max: 0,088, L1min: 0,050, L90: "3/16", LCounter: "1/4" }, {спецыфікацыя: "5#", PP: 40, D: 0,125, dp: 0,099, d1: 0,128, d2: 0,103, L1max: 0,088, L1min: 0,050, L90: "7/32", LCounter: "1/4" }, {спецыфікацыя: "6#", PP: 32, D: 0,138, dp: 0,106, d1: 0,141, d2: 0,111, L1max: 0,109, L1min: 0,062, L90: "1/4", LCounter: "5/16" }, {спецыфікацыя: "8#", PP: 32, D: 0,164, dp: 0,132, d1: 0,167, d2: 0,137, L1max: 0,109, L1min: 0,062, L90: "1/4", LCounter: "11/32" }, {спецыфікацыя: "10#", PP: 24, D: 0,190, dp: 0,147, d1: 0,194, d2: 0,153, L1макс: 0,146, L1мін: 0,083, L90: "5/16", LЛічыльнік: "13/32" }, {спецыфікацыя: "1/4", PP: 20, D: 0,250, dp: 0,198, d1: 0,255, d2: 0,206, L1max: 0,175, L1min: 0,100, L90: "13/32", LCounter: "1/2" }, {спецыфікацыя: "5/16", PP: 18, D: 0,313, dp: 0,255, d1: 0,318, d2: 0,264, L1max: 0,194, L1min: 0,111, L90: "15/32", LCounter: "5/8" }, {спецыфікацыя: "3/8", PP: 16, D: 0,375, dp: 0,310, d1: 0,381, d2: 0,320, L1max: 0,219, L1min: 0,125, L90: "9/16", LCounter: "23/32" }, {спецыфікацыя: "7/16", PP: 14, D: 0,438, dp: 0,361, d1: 0,445, d2: 0,375, L1max: 0,250, L1min: 0,143, L90: "21/32", LCounter: "13/16" }, {спецыфікацыя: "1/2", PP: 13, D: 0,500, dp: 0,416, d1: 0,508, d2: 0,433, L1max: 0,269, L1min: 0,154, L90: "23/32", LCounter: "7/9"}<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Self-Tapping Screw Thread Specification Reference Table</title> <style> *{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;} body{margin:24px auto;max-width:99%;padding:0 12px;} h2{text-align:center;color:#1a1a1a;margin-bottom:20px;} table{border-collapse:collapse;width:100%;font-size:14px;} th,td{border:1px solid #555;padding:9px 6px;text-align:center;vertical-align:middle;} th{background:#b3d9ff;font-weight:bold;} .left-align{text-align:left;} .query-box{margin:20px 0;padding:14px;border:1px solid #ccc;border-radius:6px;} .query-box input, .query-box select, .query-box button{padding:8px 11px;font-size:15px;margin:0 7px;} #query-result{margin-top:13px;font-size:16px;font-weight:600;} .error-text{color:#c22121;} .success-text{color:#00692c;} </style> </head> <body> <h2>Self-Tapping Screw Thread Specification Table (Unit: Inch)</h2> <!-- Query Operation Panel --> <div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Threads per inch</option> <option value="D">D - Max Major Diameter</option> <option value="dp">dp - Max Point Diameter</option> <option value="d1">d1 - Max Thread Circumscribed Circle Diameter</option> <option value="d2">d2 - Max Point Circumscribed Circle Diameter</option> <option value="L1max">L1 Max - Point Length Max</option> <option value="L1min">L1 Min - Point Length Min</option> <option value="L90">L Min Length (90° Head)</option> <option value="LCounter">L Min Length (Countersunk Head)</option> </select> <button onclick="searchSpecData()">Search Parameter Value</button> <div id="query-result"></div> </div> <!-- Table Render Container --> <div id="table-wrapper"></div> <script> // Raw full dataset extracted from the table image const specDataset = [ { spec: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, { spec: "3#", PP: 48, D: 0.099, dp: "/", d1: 0.101, d2: 0.081, L1max: 0.073, L1min: 0.042, L90: "3/16", LCounter: "7/32" }, { spec: "4#", PP: 40, D: 0.112, dp: 0.086, d1: 0.115, d2: 0.090, L1max: 0.088, L1min: 0.050, L90: "3/16", LCounter: "1/4" }, { spec: "5#", PP: 40, D: 0.125, dp: 0.099, d1: 0.128, d2: 0.103, L1max: 0.088, L1min: 0.050, L90: "7/32", LCounter: "1/4" }, { spec: "6#", PP: 32, D: 0.138, dp: 0.106, d1: 0.141, d2: 0.111, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "5/16" }, { spec: "8#", PP: 32, D: 0.164, dp: 0.132, d1: 0.167, d2: 0.137, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "11/32" }, { spec: "10#", PP: 24, D: 0.190, dp: 0.147, d1: 0.194, d2: 0.153, L1max: 0.146, L1min: 0.083, L90: "5/16", LCounter: "13/32" }, { spec: "1/4", PP: 20, D: 0.250, dp: 0.198, d1: 0.255, d2: 0.206, L1max: 0.175, L1min: 0.100, L90: "13/32", LCounter: "1/2" }, { spec: "5/16", PP: 18, D: 0.313, dp: 0.255, d1: 0.318, d2: 0.264, L1max: 0.194, L1min: 0.111, L90: "15/32", LCounter: "5/8" }, { spec: "3/8", PP: 16, D: 0.375, dp: 0.310, d1: 0.381, d2: 0.320, L1max: 0.219, L1min: 0.125, L90: "9/16", LCounter: "23/32" }, { spec: "7/16", PP: 14, D: 0.438, dp: 0.361, d1: 0.445, d2: 0.375, L1max: 0.250, L1min: 0.143, L90: "21/32", LCounter: "13/16" }, { spec: "1/2", PP: 13, D: 0.500, dp: 0.416, d1: 0.508, d2: 0.433, L1max: 0.269, L1min: 0.154, L90: "23/32", LCounter: "7/9" } ]; // Column definition for table rendering const tableHeaderCols = [ "Thread Specification", "2#", "3#", "4#", "5#", "6#", "8#", "10#", "1/4", "5/16", "3/8", "7/16", "1/2" ]; const rowParamConfig = [ { label: "PP", fullName: "Threads per inch", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Thread Circumscribed Circle Diameter", fieldKey: "d1", subLabel: "Max" }, { label: "d2", fullName: "Point Circumscribed Circle Diameter", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "LCounter", subLabel: "Countersunk Head" } ]; /** * Render complete specification table to page */ function renderFullSpecTable() { let htmlStr = `<table>`; // Table header row htmlStr += `<tr>`; tableHeaderCols.forEach(colName => { htmlStr += `<th class="left-align">${colName}</th>`; }); htmlStr += `</tr>`; // Generate each parameter data row rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // First column: parameter label + full name + sub label htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel ? `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Fill each thread spec cell value specDataset.forEach(specItem => { htmlStr += `<td>${specItem[rowCfg.fieldKey]}</td>`; }); htmlStr += `</tr>`; }); htmlStr += `</table>`; document.getElementById("table-wrapper").innerHTML = htmlStr; } /** * Search spec parameter value by user input */ function searchSpecData() { const inputSpec = document.getElementById("thread-input").value.trim(); const targetParamKey = document.getElementById("param-select").value; const resultDom = document.getElementById("query-result"); let matchedSpec = null; // Match input thread specification for(let i=0; i<specDataset.length; i++) { if(specDataset[i].spec === inputSpec) { matchedSpec = specDataset[i]; break; } } if(!matchedSpec) { resultDom.className = "error-text"; resultDom.textContent = "Error: Invalid thread specification, please check input (example: 8# / 1/4)"; return; } // Map select text to readable full name const paramNameMap = { PP: "Threads per inch (PP)", D: "Max Major Diameter (D)", dp: "Max Point Diameter (dp)", d1: "Max Thread Circumscribed Circle Diameter (d1)", d2: "Max Point Circumscribed Circle Diameter (d2)", L1max: "Point Length Max (L1)", L1min: "Point Length Min (L1)", L90: "Min Nominal Length - 90° Head (L)", LCounter: "Min Nominal Length - Countersunk Head (L)" }; const value = matchedSpec[targetParamKey]; resultDom.className = "success-text"; resultDom.textContent = `Query Result | Thread Spec: ${inputSpec}, Parameter: ${paramNameMap[targetParamKey]}, Value = ${value}`; } // Auto render table after page loaded window.onload = renderFullSpecTable; </script> </body> </html>const rowParamConfig = [ { label: "PP", fullName: "Ніткі на цалю", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Дыяметр апісанай акружнасці ніткі", fieldKey: "d1", subLabel: "Макс" }, { label: "d2", fullName: "Дыяметр акружнасці ў кропцы", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Даўжыня кропкі", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Мінімальная намінальная даўжыня", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Naminal" Length", fieldKey: "LCounter", subLabel: "Countersunk Head" }<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Self-Tapping Screw Thread Specification Reference Table</title> <style> *{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;} body{margin:24px auto;max-width:99%;padding:0 12px;} h2{text-align:center;color:#1a1a1a;margin-bottom:20px;} table{border-collapse:collapse;width:100%;font-size:14px;} th,td{border:1px solid #555;padding:9px 6px;text-align:center;vertical-align:middle;} th{background:#b3d9ff;font-weight:bold;} .left-align{text-align:left;} .query-box{margin:20px 0;padding:14px;border:1px solid #ccc;border-radius:6px;} .query-box input, .query-box select, .query-box button{padding:8px 11px;font-size:15px;margin:0 7px;} #query-result{margin-top:13px;font-size:16px;font-weight:600;} .error-text{color:#c22121;} .success-text{color:#00692c;} </style> </head> <body> <h2>Self-Tapping Screw Thread Specification Table (Unit: Inch)</h2> <!-- Query Operation Panel --> <div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Threads per inch</option> <option value="D">D - Max Major Diameter</option> <option value="dp">dp - Max Point Diameter</option> <option value="d1">d1 - Max Thread Circumscribed Circle Diameter</option> <option value="d2">d2 - Max Point Circumscribed Circle Diameter</option> <option value="L1max">L1 Max - Point Length Max</option> <option value="L1min">L1 Min - Point Length Min</option> <option value="L90">L Min Length (90° Head)</option> <option value="LCounter">L Min Length (Countersunk Head)</option> </select> <button onclick="searchSpecData()">Search Parameter Value</button> <div id="query-result"></div> </div> <!-- Table Render Container --> <div id="table-wrapper"></div> <script> // Raw full dataset extracted from the table image const specDataset = [ { spec: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, { spec: "3#", PP: 48, D: 0.099, dp: "/", d1: 0.101, d2: 0.081, L1max: 0.073, L1min: 0.042, L90: "3/16", LCounter: "7/32" }, { spec: "4#", PP: 40, D: 0.112, dp: 0.086, d1: 0.115, d2: 0.090, L1max: 0.088, L1min: 0.050, L90: "3/16", LCounter: "1/4" }, { spec: "5#", PP: 40, D: 0.125, dp: 0.099, d1: 0.128, d2: 0.103, L1max: 0.088, L1min: 0.050, L90: "7/32", LCounter: "1/4" }, { spec: "6#", PP: 32, D: 0.138, dp: 0.106, d1: 0.141, d2: 0.111, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "5/16" }, { spec: "8#", PP: 32, D: 0.164, dp: 0.132, d1: 0.167, d2: 0.137, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "11/32" }, { spec: "10#", PP: 24, D: 0.190, dp: 0.147, d1: 0.194, d2: 0.153, L1max: 0.146, L1min: 0.083, L90: "5/16", LCounter: "13/32" }, { spec: "1/4", PP: 20, D: 0.250, dp: 0.198, d1: 0.255, d2: 0.206, L1max: 0.175, L1min: 0.100, L90: "13/32", LCounter: "1/2" }, { spec: "5/16", PP: 18, D: 0.313, dp: 0.255, d1: 0.318, d2: 0.264, L1max: 0.194, L1min: 0.111, L90: "15/32", LCounter: "5/8" }, { spec: "3/8", PP: 16, D: 0.375, dp: 0.310, d1: 0.381, d2: 0.320, L1max: 0.219, L1min: 0.125, L90: "9/16", LCounter: "23/32" }, { spec: "7/16", PP: 14, D: 0.438, dp: 0.361, d1: 0.445, d2: 0.375, L1max: 0.250, L1min: 0.143, L90: "21/32", LCounter: "13/16" }, { spec: "1/2", PP: 13, D: 0.500, dp: 0.416, d1: 0.508, d2: 0.433, L1max: 0.269, L1min: 0.154, L90: "23/32", LCounter: "7/9" } ]; // Column definition for table rendering const tableHeaderCols = [ "Thread Specification", "2#", "3#", "4#", "5#", "6#", "8#", "10#", "1/4", "5/16", "3/8", "7/16", "1/2" ]; const rowParamConfig = [ { label: "PP", fullName: "Threads per inch", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Thread Circumscribed Circle Diameter", fieldKey: "d1", subLabel: "Max" }, { label: "d2", fullName: "Point Circumscribed Circle Diameter", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "LCounter", subLabel: "Countersunk Head" } ]; /** * Render complete specification table to page */ function renderFullSpecTable() { let htmlStr = `<table>`; // Table header row htmlStr += `<tr>`; tableHeaderCols.forEach(colName => { htmlStr += `<th class="left-align">${colName}</th>`; }); htmlStr += `</tr>`; // Generate each parameter data row rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // First column: parameter label + full name + sub label htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel ? `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Fill each thread spec cell value specDataset.forEach(specItem => { htmlStr += `<td>${specItem[rowCfg.fieldKey]}</td>`; }); htmlStr += `</tr>`; }); htmlStr += `</table>`; document.getElementById("table-wrapper").innerHTML = htmlStr; } /** * Search spec parameter value by user input */ function searchSpecData() { const inputSpec = document.getElementById("thread-input").value.trim(); const targetParamKey = document.getElementById("param-select").value; const resultDom = document.getElementById("query-result"); let matchedSpec = null; // Match input thread specification for(let i=0; i<specDataset.length; i++) { if(specDataset[i].spec === inputSpec) { matchedSpec = specDataset[i]; break; } } if(!matchedSpec) { resultDom.className = "error-text"; resultDom.textContent = "Error: Invalid thread specification, please check input (example: 8# / 1/4)"; return; } // Map select text to readable full name const paramNameMap = { PP: "Threads per inch (PP)", D: "Max Major Diameter (D)", dp: "Max Point Diameter (dp)", d1: "Max Thread Circumscribed Circle Diameter (d1)", d2: "Max Point Circumscribed Circle Diameter (d2)", L1max: "Point Length Max (L1)", L1min: "Point Length Min (L1)", L90: "Min Nominal Length - 90° Head (L)", LCounter: "Min Nominal Length - Countersunk Head (L)" }; const value = matchedSpec[targetParamKey]; resultDom.className = "success-text"; resultDom.textContent = `Query Result | Thread Spec: ${inputSpec}, Parameter: ${paramNameMap[targetParamKey]}, Value = ${value}`; } // Auto render table after page loaded window.onload = renderFullSpecTable; </script> </body> </html>// Стварэнне кожнага радка даных параметраў rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // Першы слупок: метка параметра + поўнае імя + падметка htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Запоўніце значэнне спецыфікацыі патоку specDataset.forEach(specItem => `<td>${specItem[rowCfg.fieldKey]}</td>`); htmlStr += `</tr>`);<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Self-Tapping Screw Thread Specification Reference Table</title> <style> *{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;} body{margin:24px auto;max-width:99%;padding:0 12px;} h2{text-align:center;color:#1a1a1a;margin-bottom:20px;} table{border-collapse:collapse;width:100%;font-size:14px;} th,td{border:1px solid #555;padding:9px 6px;text-align:center;vertical-align:middle;} th{background:#b3d9ff;font-weight:bold;} .left-align{text-align:left;} .query-box{margin:20px 0;padding:14px;border:1px solid #ccc;border-radius:6px;} .query-box input, .query-box select, .query-box button{padding:8px 11px;font-size:15px;margin:0 7px;} #query-result{margin-top:13px;font-size:16px;font-weight:600;} .error-text{color:#c22121;} .success-text{color:#00692c;} </style> </head> <body> <h2>Self-Tapping Screw Thread Specification Table (Unit: Inch)</h2> <!-- Query Operation Panel --> <div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Threads per inch</option> <option value="D">D - Max Major Diameter</option> <option value="dp">dp - Max Point Diameter</option> <option value="d1">d1 - Max Thread Circumscribed Circle Diameter</option> <option value="d2">d2 - Max Point Circumscribed Circle Diameter</option> <option value="L1max">L1 Max - Point Length Max</option> <option value="L1min">L1 Min - Point Length Min</option> <option value="L90">L Min Length (90° Head)</option> <option value="LCounter">L Min Length (Countersunk Head)</option> </select> <button onclick="searchSpecData()">Search Parameter Value</button> <div id="query-result"></div> </div> <!-- Table Render Container --> <div id="table-wrapper"></div> <script> // Raw full dataset extracted from the table image const specDataset = [ { spec: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, { spec: "3#", PP: 48, D: 0.099, dp: "/", d1: 0.101, d2: 0.081, L1max: 0.073, L1min: 0.042, L90: "3/16", LCounter: "7/32" }, { spec: "4#", PP: 40, D: 0.112, dp: 0.086, d1: 0.115, d2: 0.090, L1max: 0.088, L1min: 0.050, L90: "3/16", LCounter: "1/4" }, { spec: "5#", PP: 40, D: 0.125, dp: 0.099, d1: 0.128, d2: 0.103, L1max: 0.088, L1min: 0.050, L90: "7/32", LCounter: "1/4" }, { spec: "6#", PP: 32, D: 0.138, dp: 0.106, d1: 0.141, d2: 0.111, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "5/16" }, { spec: "8#", PP: 32, D: 0.164, dp: 0.132, d1: 0.167, d2: 0.137, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "11/32" }, { spec: "10#", PP: 24, D: 0.190, dp: 0.147, d1: 0.194, d2: 0.153, L1max: 0.146, L1min: 0.083, L90: "5/16", LCounter: "13/32" }, { spec: "1/4", PP: 20, D: 0.250, dp: 0.198, d1: 0.255, d2: 0.206, L1max: 0.175, L1min: 0.100, L90: "13/32", LCounter: "1/2" }, { spec: "5/16", PP: 18, D: 0.313, dp: 0.255, d1: 0.318, d2: 0.264, L1max: 0.194, L1min: 0.111, L90: "15/32", LCounter: "5/8" }, { spec: "3/8", PP: 16, D: 0.375, dp: 0.310, d1: 0.381, d2: 0.320, L1max: 0.219, L1min: 0.125, L90: "9/16", LCounter: "23/32" }, { spec: "7/16", PP: 14, D: 0.438, dp: 0.361, d1: 0.445, d2: 0.375, L1max: 0.250, L1min: 0.143, L90: "21/32", LCounter: "13/16" }, { spec: "1/2", PP: 13, D: 0.500, dp: 0.416, d1: 0.508, d2: 0.433, L1max: 0.269, L1min: 0.154, L90: "23/32", LCounter: "7/9" } ]; // Column definition for table rendering const tableHeaderCols = [ "Thread Specification", "2#", "3#", "4#", "5#", "6#", "8#", "10#", "1/4", "5/16", "3/8", "7/16", "1/2" ]; const rowParamConfig = [ { label: "PP", fullName: "Threads per inch", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Thread Circumscribed Circle Diameter", fieldKey: "d1", subLabel: "Max" }, { label: "d2", fullName: "Point Circumscribed Circle Diameter", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "LCounter", subLabel: "Countersunk Head" } ]; /** * Render complete specification table to page */ function renderFullSpecTable() { let htmlStr = `<table>`; // Table header row htmlStr += `<tr>`; tableHeaderCols.forEach(colName => { htmlStr += `<th class="left-align">${colName}</th>`; }); htmlStr += `</tr>`; // Generate each parameter data row rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // First column: parameter label + full name + sub label htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel ? `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Fill each thread spec cell value specDataset.forEach(specItem => { htmlStr += `<td>${specItem[rowCfg.fieldKey]}</td>`; }); htmlStr += `</tr>`; }); htmlStr += `</table>`; document.getElementById("table-wrapper").innerHTML = htmlStr; } /** * Search spec parameter value by user input */ function searchSpecData() { const inputSpec = document.getElementById("thread-input").value.trim(); const targetParamKey = document.getElementById("param-select").value; const resultDom = document.getElementById("query-result"); let matchedSpec = null; // Match input thread specification for(let i=0; i<specDataset.length; i++) { if(specDataset[i].spec === inputSpec) { matchedSpec = specDataset[i]; break; } } if(!matchedSpec) { resultDom.className = "error-text"; resultDom.textContent = "Error: Invalid thread specification, please check input (example: 8# / 1/4)"; return; } // Map select text to readable full name const paramNameMap = { PP: "Threads per inch (PP)", D: "Max Major Diameter (D)", dp: "Max Point Diameter (dp)", d1: "Max Thread Circumscribed Circle Diameter (d1)", d2: "Max Point Circumscribed Circle Diameter (d2)", L1max: "Point Length Max (L1)", L1min: "Point Length Min (L1)", L90: "Min Nominal Length - 90° Head (L)", LCounter: "Min Nominal Length - Countersunk Head (L)" }; const value = matchedSpec[targetParamKey]; resultDom.className = "success-text"; resultDom.textContent = `Query Result | Thread Spec: ${inputSpec}, Parameter: ${paramNameMap[targetParamKey]}, Value = ${value}`; } // Auto render table after page loaded window.onload = renderFullSpecTable; </script> </body> </html>} // Адлюстраванне выбранага тэксту ў чытальнае поўнае імя const paramNameMap = { PP: "Ніткі на цалю (PP)", D: "Максімальны асноўны дыяметр (D)", dp: "Максімальны дыяметр кропкі (dp)", d1: "Максімальны дыяметр акружнасці акружнасці ніткі (d1)", d2: "Максімальны дыяметр акружнасці акружнасці (d2)", L1max: "Даўжыня кропкі Макс (L1)", L1min: "Мінімальная даўжыня кропкі (L1)", L90: "Мінімальная намінальная даўжыня - напор 90° (L)", LЛічыльнік: "Мінімальная намінальная даўжыня - патаемны напор (L)" };<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Self-Tapping Screw Thread Specification Reference Table</title> <style> *{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;} body{margin:24px auto;max-width:99%;padding:0 12px;} h2{text-align:center;color:#1a1a1a;margin-bottom:20px;} table{border-collapse:collapse;width:100%;font-size:14px;} th,td{border:1px solid #555;padding:9px 6px;text-align:center;vertical-align:middle;} th{background:#b3d9ff;font-weight:bold;} .left-align{text-align:left;} .query-box{margin:20px 0;padding:14px;border:1px solid #ccc;border-radius:6px;} .query-box input, .query-box select, .query-box button{padding:8px 11px;font-size:15px;margin:0 7px;} #query-result{margin-top:13px;font-size:16px;font-weight:600;} .error-text{color:#c22121;} .success-text{color:#00692c;} </style> </head> <body> <h2>Self-Tapping Screw Thread Specification Table (Unit: Inch)</h2> <!-- Query Operation Panel --> <div class="query-box"> <input id="thread-input" placeholder="Input Thread Spec: 2# / 3# / 4# / 5# / 6# / 8# / 10# / 1/4 / 5/16 / 3/8 / 7/16 / 1/2"> <select id="param-select"> <option value="PP">PP - Threads per inch</option> <option value="D">D - Max Major Diameter</option> <option value="dp">dp - Max Point Diameter</option> <option value="d1">d1 - Max Thread Circumscribed Circle Diameter</option> <option value="d2">d2 - Max Point Circumscribed Circle Diameter</option> <option value="L1max">L1 Max - Point Length Max</option> <option value="L1min">L1 Min - Point Length Min</option> <option value="L90">L Min Length (90° Head)</option> <option value="LCounter">L Min Length (Countersunk Head)</option> </select> <button onclick="searchSpecData()">Search Parameter Value</button> <div id="query-result"></div> </div> <!-- Table Render Container --> <div id="table-wrapper"></div> <script> // Raw full dataset extracted from the table image const specDataset = [ { spec: "2#", PP: 56, D: 0.086, dp: "/", d1: 0.088, d2: 0.070, L1max: 0.062, L1min: 0.036, L90: "5/32", LCounter: "3/16" }, { spec: "3#", PP: 48, D: 0.099, dp: "/", d1: 0.101, d2: 0.081, L1max: 0.073, L1min: 0.042, L90: "3/16", LCounter: "7/32" }, { spec: "4#", PP: 40, D: 0.112, dp: 0.086, d1: 0.115, d2: 0.090, L1max: 0.088, L1min: 0.050, L90: "3/16", LCounter: "1/4" }, { spec: "5#", PP: 40, D: 0.125, dp: 0.099, d1: 0.128, d2: 0.103, L1max: 0.088, L1min: 0.050, L90: "7/32", LCounter: "1/4" }, { spec: "6#", PP: 32, D: 0.138, dp: 0.106, d1: 0.141, d2: 0.111, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "5/16" }, { spec: "8#", PP: 32, D: 0.164, dp: 0.132, d1: 0.167, d2: 0.137, L1max: 0.109, L1min: 0.062, L90: "1/4", LCounter: "11/32" }, { spec: "10#", PP: 24, D: 0.190, dp: 0.147, d1: 0.194, d2: 0.153, L1max: 0.146, L1min: 0.083, L90: "5/16", LCounter: "13/32" }, { spec: "1/4", PP: 20, D: 0.250, dp: 0.198, d1: 0.255, d2: 0.206, L1max: 0.175, L1min: 0.100, L90: "13/32", LCounter: "1/2" }, { spec: "5/16", PP: 18, D: 0.313, dp: 0.255, d1: 0.318, d2: 0.264, L1max: 0.194, L1min: 0.111, L90: "15/32", LCounter: "5/8" }, { spec: "3/8", PP: 16, D: 0.375, dp: 0.310, d1: 0.381, d2: 0.320, L1max: 0.219, L1min: 0.125, L90: "9/16", LCounter: "23/32" }, { spec: "7/16", PP: 14, D: 0.438, dp: 0.361, d1: 0.445, d2: 0.375, L1max: 0.250, L1min: 0.143, L90: "21/32", LCounter: "13/16" }, { spec: "1/2", PP: 13, D: 0.500, dp: 0.416, d1: 0.508, d2: 0.433, L1max: 0.269, L1min: 0.154, L90: "23/32", LCounter: "7/9" } ]; // Column definition for table rendering const tableHeaderCols = [ "Thread Specification", "2#", "3#", "4#", "5#", "6#", "8#", "10#", "1/4", "5/16", "3/8", "7/16", "1/2" ]; const rowParamConfig = [ { label: "PP", fullName: "Threads per inch", fieldKey: "PP", subLabel: "" }, { label: "D", fullName: "Major Diameter", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: "Thread Circumscribed Circle Diameter", fieldKey: "d1", subLabel: "Max" }, { label: "d2", fullName: "Point Circumscribed Circle Diameter", fieldKey: "d2", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1max", subLabel: "Max" }, { label: "L1", fullName: "Point Length", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "L90", subLabel: "90° Head" }, { label: "L", fullName: "Minimum Nominal Length", fieldKey: "LCounter", subLabel: "Countersunk Head" } ]; /** * Render complete specification table to page */ function renderFullSpecTable() { let htmlStr = `<table>`; // Table header row htmlStr += `<tr>`; tableHeaderCols.forEach(colName => { htmlStr += `<th class="left-align">${colName}</th>`; }); htmlStr += `</tr>`; // Generate each parameter data row rowParamConfig.forEach(rowCfg => { htmlStr += `<tr>`; // First column: parameter label + full name + sub label htmlStr += `<th class="left-align"> <div>${rowCfg.label}</div> <div>${rowCfg.fullName}</div> ${rowCfg.subLabel ? `<div>${rowCfg.subLabel}</div>` : ""} </th>`; // Fill each thread spec cell value specDataset.forEach(specItem => { htmlStr += `<td>${specItem[rowCfg.fieldKey]}</td>`; }); htmlStr += `</tr>`; }); htmlStr += `</table>`; document.getElementById("table-wrapper").innerHTML = htmlStr; } /** * Search spec parameter value by user input */ function searchSpecData() { const inputSpec = document.getElementById("thread-input").value.trim(); const targetParamKey = document.getElementById("param-select").value; const resultDom = document.getElementById("query-result"); let matchedSpec = null; // Match input thread specification for(let i=0; i<specDataset.length; i++) { if(specDataset[i].spec === inputSpec) { matchedSpec = specDataset[i]; break; } } if(!matchedSpec) { resultDom.className = "error-text"; resultDom.textContent = "Error: Invalid thread specification, please check input (example: 8# / 1/4)"; return; } // Map select text to readable full name const paramNameMap = { PP: "Threads per inch (PP)", D: "Max Major Diameter (D)", dp: "Max Point Diameter (dp)", d1: "Max Thread Circumscribed Circle Diameter (d1)", d2: "Max Point Circumscribed Circle Diameter (d2)", L1max: "Point Length Max (L1)", L1min: "Point Length Min (L1)", L90: "Min Nominal Length - 90° Head (L)", LCounter: "Min Nominal Length - Countersunk Head (L)" }; const value = matchedSpec[targetParamKey]; resultDom.className = "success-text"; resultDom.textContent = `Query Result | Thread Spec: ${inputSpec}, Parameter: ${paramNameMap[targetParamKey]}, Value = ${value}`; } // Auto render table after page loaded window.onload = renderFullSpecTable; </script> </body> </html>
Заява аб прыватнасці: Ваша прыватнасць для нас вельмі важная. Наша кампанія абяцае не раскрываць вашу асабістую інфармацыю любой экспазіцыі з вашымі відавочнымі дазволамі.
Запоўніце дадатковую інфармацыю, каб хутчэй звязацца з вамі
Заява аб прыватнасці: Ваша прыватнасць для нас вельмі важная. Наша кампанія абяцае не раскрываць вашу асабістую інфармацыю любой экспазіцыі з вашымі відавочнымі дазволамі.