يرجى تركنا رسالة
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 الحد الأقصى - طول النقطة الأقصى</option> <option value="L1min">الحد الأدنى لطول النقطة - الحد الأدنى لطول النقطة</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"، LCcounter: "3/16" }، { المواصفات: "3#"، PP: 48، D: 0.099، dp: "/"، d1: 0.101، d2: 0.081، L1max: 0.073، L1min: 0.042، L90: "3/16"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، LCcounter: "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"، العداد: "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>constrowParamConfig = [{ label: "PP"، fullName: "مؤشرات الترابط في البوصة"، fieldKey: "PP"، subLabel: "" }، { label: "D"، الاسم الكامل: "القطر الرئيسي"، fieldKey: "D"، تسمية فرعية: "Max" }، { label: "dp"، fullName: "Point Diameter"، fieldKey: "dp"، تسمية فرعية: "Max" }، { label: "d1"، الاسم الكامل: "قطر الدائرة المحيطة بالخيط"، مفتاح الحقل: "d1"، التسمية الفرعية: "الحد الأقصى" }، { التسمية: "d2"، الاسم الكامل: "قطر الدائرة المحيطة بالنقطة"، مفتاح الحقل: "d2"، التسمية الفرعية: "الحد الأقصى" }، { التسمية: "L1"، الاسم الكامل: "طول النقطة"، مفتاح الحقل: "L1max"، العلامة الفرعية: "الحد الأقصى" }، { التسمية: "L1"، الاسم الكامل: "طول النقطة"، مفتاح الحقل: "L1min"، التسمية الفرعية: "Min" }، { label: "L"، الاسم الكامل: "الحد الأدنى للطول الاسمي"، مفتاح الحقل: "L90"، التسمية الفرعية: "90° Head" }، { label: "L"، الاسم الكامل: "الحد الأدنى للطول الاسمي"، مفتاح الحقل: "LCcounter"، التسمية الفرعية: "الرأس الغاطس" }<!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>`; });<!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)"، LCcounter: "الطول الاسمي الأدنى - الرأس الغاطس (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.