Wire gauge calc

This commit is contained in:
Daniel Dunn
2025-04-02 13:38:12 -06:00
parent 3264640a07
commit db2e1810a9
10 changed files with 198 additions and 109 deletions

View File

@@ -1,62 +0,0 @@
export default {
title: 'American Wire Gauge',
columns: [
{
diameter: {
title: 'Diameter',
type: 'number',
unit: 'mm'
}
}
],
data: {
'0000': { diameter: 11.684 },
'000': { diameter: 10.405 },
'00': { diameter: 9.266 },
'0': { diameter: 8.251 },
'(4/0)': { diameter: 11.684 },
'(3/0)': { diameter: 10.405 },
'(2/0)': { diameter: 9.266 },
'(1/0)': { diameter: 8.251 },
'1': { diameter: 7.348 },
'2': { diameter: 6.544 },
'3': { diameter: 5.827 },
'4': { diameter: 5.189 },
'5': { diameter: 4.621 },
'6': { diameter: 4.115 },
'7': { diameter: 3.665 },
'8': { diameter: 3.264 },
'9': { diameter: 2.906 },
'10': { diameter: 2.588 },
'11': { diameter: 2.305 },
'12': { diameter: 2.053 },
'13': { diameter: 1.828 },
'14': { diameter: 1.628 },
'15': { diameter: 1.45 },
'16': { diameter: 1.291 },
'17': { diameter: 1.15 },
'18': { diameter: 1.024 },
'19': { diameter: 0.912 },
'20': { diameter: 0.812 },
'21': { diameter: 0.723 },
'22': { diameter: 0.644 },
'23': { diameter: 0.573 },
'24': { diameter: 0.511 },
'25': { diameter: 0.455 },
'26': { diameter: 0.405 },
'27': { diameter: 0.361 },
'28': { diameter: 0.321 },
'29': { diameter: 0.286 },
'30': { diameter: 0.255 },
'31': { diameter: 0.227 },
'32': { diameter: 0.202 },
'33': { diameter: 0.18 },
'34': { diameter: 0.16 },
'35': { diameter: 0.143 },
'36': { diameter: 0.127 },
'37': { diameter: 0.113 },
'38': { diameter: 0.101 },
'39': { diameter: 0.0897 },
'40': { diameter: 0.0799 }
}
};

View File

@@ -1,3 +1,10 @@
export const allDataTables: { [key: string]: { [key: string]: any } } = {
'american-wire-gauge': {}
import type { DataTable } from '../types';
import wiregauge from './wire_gauge';
import material_electrical_properties from './material_electrical_properties';
const allDataTables: { [key: string]: DataTable } = {
'wire-gauge': wiregauge,
'material-electrical-properties': material_electrical_properties
};
export default allDataTables;

View File

@@ -10,11 +10,11 @@ export default {
}
],
data: {
copper: {
resistivity: 1.68e-8
Copper: {
resistivity_20c: 1.68e-8
},
aluminum: {
resistivity: 2.82e-8
Aluminum: {
resistivity_20c: 2.82e-8
}
}
};

View File

@@ -0,0 +1,75 @@
import type { DataTable } from '../types';
const data: DataTable = {
title: 'American Wire Gauge',
columns: [
{
diameter: {
title: 'Diameter',
type: 'number',
unit: 'mm'
},
area: {
title: 'Area',
type: 'number',
unit: 'mm^2'
}
}
],
data: {
'0000 AWG': { diameter: 11.684 },
'000 AWG': { diameter: 10.405 },
'00 AWG': { diameter: 9.266 },
'0 AWG': { diameter: 8.251 },
'(4/0) AWG': { diameter: 11.684 },
'(3/0) AWG': { diameter: 10.405 },
'(2/0) AWG': { diameter: 9.266 },
'(1/0) AWG': { diameter: 8.251 },
'1 AWG': { diameter: 7.348 },
'2 AWG': { diameter: 6.544 },
'3 AWG': { diameter: 5.827 },
'4 AWG': { diameter: 5.189 },
'5 AWG': { diameter: 4.621 },
'6 AWG': { diameter: 4.115 },
'7 AWG': { diameter: 3.665 },
'8 AWG': { diameter: 3.264 },
'9 AWG': { diameter: 2.906 },
'10 AWG': { diameter: 2.588 },
'11 AWG': { diameter: 2.305 },
'12 AWG': { diameter: 2.053 },
'13 AWG': { diameter: 1.828 },
'14 AWG': { diameter: 1.628 },
'15 AWG': { diameter: 1.45 },
'16 AWG': { diameter: 1.291 },
'17 AWG': { diameter: 1.15 },
'18 AWG': { diameter: 1.024 },
'19 AWG': { diameter: 0.912 },
'20 AWG': { diameter: 0.812 },
'21 AWG': { diameter: 0.723 },
'22 AWG': { diameter: 0.644 },
'23 AWG': { diameter: 0.573 },
'24 AWG': { diameter: 0.511 },
'25 AWG': { diameter: 0.455 },
'26 AWG': { diameter: 0.405 },
'27 AWG': { diameter: 0.361 },
'28 AWG': { diameter: 0.321 },
'29 AWG': { diameter: 0.286 },
'30 AWG': { diameter: 0.255 },
'31 AWG': { diameter: 0.227 },
'32 AWG': { diameter: 0.202 },
'33 AWG': { diameter: 0.18 },
'34 AWG': { diameter: 0.16 },
'35 AWG': { diameter: 0.143 },
'36 AWG': { diameter: 0.127 },
'37 AWG': { diameter: 0.113 },
'38 AWG': { diameter: 0.101 },
'39 AWG': { diameter: 0.0897 },
'40 AWG': { diameter: 0.0799 }
}
};
for (const key in data.data) {
data.data[key].area = Math.PI * data.data[key].diameter ** 2;
}
export default data;

View File

@@ -1,17 +1,18 @@
import type { DataTable } from './types.ts';
import { allDataTables } from './data/index';
export async function getDataTable(name: string): Promise<DataTable> {
const x = await import(`./${name}`);
return x.default;
const allDataTables = (await import('./data/index')).default;
return allDataTables[name];
}
export async function listDataTables(): Promise<{ name: string }[]> {
const x: { name: string }[] = [];
for (const key in allDataTables) {
x.push({ name: key });
}
return x;
/* Used in case later we want any kind of computed extra data */
export function dataTableLookup(table: DataTable, key: string): any {
return table.data[key];
}
export async function listDataTables(): Promise<{ [name: string]: DataTable }> {
const allDataTables = (await import('./data/index')).default;
return allDataTables;
}
export { DataTable };

View File

@@ -4,16 +4,14 @@ Used for calculator presets
*/
export interface DataTable {
[key: string]: {
title: string;
/* A JSON schema properties */
columns: {
title: string;
/* A JSON schema properties */
columns: {
[key: string]: any;
};
data: {
[key: string]: {
[key: string]: any;
};
data: {
[key: string]: {
[key: string]: any;
};
};
};
}