Оставьте нам сообщение
Privacy statement: Your privacy is very important to Us. Our company promises not to disclose your personal information to any external company with out your explicit permission.
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="Входная спецификация резьбы: 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 Max — максимальная длина точки</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 = [ { 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» }, {спец: «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, L1max: 0,146, L1min: 0,083, L90: "5/16", LCounter: "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" }, { 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" }, { спец: "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: "Основной диаметр", fieldKey: "D", subLabel: "Max" }, { label: "dp", fullName: "Point Diameter", fieldKey: "dp", subLabel: "Max" }, { label: "d1", fullName: «Диаметр описанной окружности резьбы», fieldKey: «d1», subLabel: «Max» }, { label: «d2», fullName: «Диаметр описанной точки», fieldKey: «d2», subLabel: «Max» }, { label: «L1»,fullName: «Длина точки», fieldKey: «L1max», subLabel: «Max» }, { label: «L1», fullName: "Длина точки", fieldKey: "L1min", subLabel: "Min" }, { label: "L", fullName: "Минимальная номинальная длина", fieldKey: "L90", subLabel: "Головка 90°" }, { label: "L", fullName: "Минимальная номинальная длина", fieldKey: "LCounter", subLabel: "Потайная головка" }<!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 => { htmlStr += `<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)», LCounter: «Мин. номинальная длина — потайная головка (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>
Privacy statement: Your privacy is very important to Us. Our company promises not to disclose your personal information to any external company with out your explicit permission.
Fill in more information so that we can get in touch with you faster
Privacy statement: Your privacy is very important to Us. Our company promises not to disclose your personal information to any external company with out your explicit permission.