formulab 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +144 -0
- package/LICENSE +21 -0
- package/README.md +403 -0
- package/dist/automotive/batteryRuntime.d.ts +14 -0
- package/dist/automotive/batteryRuntime.d.ts.map +1 -0
- package/dist/automotive/batteryRuntime.js +38 -0
- package/dist/automotive/batteryRuntime.js.map +1 -0
- package/dist/automotive/evCharging.d.ts +14 -0
- package/dist/automotive/evCharging.d.ts.map +1 -0
- package/dist/automotive/evCharging.js +48 -0
- package/dist/automotive/evCharging.js.map +1 -0
- package/dist/automotive/fuelEconomy.d.ts +15 -0
- package/dist/automotive/fuelEconomy.d.ts.map +1 -0
- package/dist/automotive/fuelEconomy.js +61 -0
- package/dist/automotive/fuelEconomy.js.map +1 -0
- package/dist/automotive/gearRatio.d.ts +15 -0
- package/dist/automotive/gearRatio.d.ts.map +1 -0
- package/dist/automotive/gearRatio.js +39 -0
- package/dist/automotive/gearRatio.js.map +1 -0
- package/dist/automotive/index.d.ts +9 -0
- package/dist/automotive/index.d.ts.map +1 -0
- package/dist/automotive/index.js +9 -0
- package/dist/automotive/index.js.map +1 -0
- package/dist/automotive/power.d.ts +14 -0
- package/dist/automotive/power.d.ts.map +1 -0
- package/dist/automotive/power.js +52 -0
- package/dist/automotive/power.js.map +1 -0
- package/dist/automotive/tireCompare.d.ts +9 -0
- package/dist/automotive/tireCompare.d.ts.map +1 -0
- package/dist/automotive/tireCompare.js +54 -0
- package/dist/automotive/tireCompare.js.map +1 -0
- package/dist/automotive/torque.d.ts +14 -0
- package/dist/automotive/torque.d.ts.map +1 -0
- package/dist/automotive/torque.js +52 -0
- package/dist/automotive/torque.js.map +1 -0
- package/dist/automotive/types.d.ts +114 -0
- package/dist/automotive/types.d.ts.map +1 -0
- package/dist/automotive/types.js +2 -0
- package/dist/automotive/types.js.map +1 -0
- package/dist/chemical/batch.d.ts +12 -0
- package/dist/chemical/batch.d.ts.map +1 -0
- package/dist/chemical/batch.js +36 -0
- package/dist/chemical/batch.js.map +1 -0
- package/dist/chemical/concentration.d.ts +15 -0
- package/dist/chemical/concentration.d.ts.map +1 -0
- package/dist/chemical/concentration.js +45 -0
- package/dist/chemical/concentration.js.map +1 -0
- package/dist/chemical/dilution.d.ts +12 -0
- package/dist/chemical/dilution.d.ts.map +1 -0
- package/dist/chemical/dilution.js +68 -0
- package/dist/chemical/dilution.js.map +1 -0
- package/dist/chemical/index.d.ts +9 -0
- package/dist/chemical/index.d.ts.map +1 -0
- package/dist/chemical/index.js +9 -0
- package/dist/chemical/index.js.map +1 -0
- package/dist/chemical/injectionCycle.d.ts +19 -0
- package/dist/chemical/injectionCycle.d.ts.map +1 -0
- package/dist/chemical/injectionCycle.js +170 -0
- package/dist/chemical/injectionCycle.js.map +1 -0
- package/dist/chemical/ph.d.ts +13 -0
- package/dist/chemical/ph.d.ts.map +1 -0
- package/dist/chemical/ph.js +83 -0
- package/dist/chemical/ph.js.map +1 -0
- package/dist/chemical/reactor.d.ts +19 -0
- package/dist/chemical/reactor.d.ts.map +1 -0
- package/dist/chemical/reactor.js +57 -0
- package/dist/chemical/reactor.js.map +1 -0
- package/dist/chemical/shelfLife.d.ts +15 -0
- package/dist/chemical/shelfLife.d.ts.map +1 -0
- package/dist/chemical/shelfLife.js +36 -0
- package/dist/chemical/shelfLife.js.map +1 -0
- package/dist/chemical/types.d.ts +144 -0
- package/dist/chemical/types.d.ts.map +1 -0
- package/dist/chemical/types.js +2 -0
- package/dist/chemical/types.js.map +1 -0
- package/dist/construction/aggregate.d.ts +33 -0
- package/dist/construction/aggregate.d.ts.map +1 -0
- package/dist/construction/aggregate.js +92 -0
- package/dist/construction/aggregate.js.map +1 -0
- package/dist/construction/beamLoad.d.ts +12 -0
- package/dist/construction/beamLoad.d.ts.map +1 -0
- package/dist/construction/beamLoad.js +156 -0
- package/dist/construction/beamLoad.js.map +1 -0
- package/dist/construction/brick.d.ts +17 -0
- package/dist/construction/brick.d.ts.map +1 -0
- package/dist/construction/brick.js +53 -0
- package/dist/construction/brick.js.map +1 -0
- package/dist/construction/concreteMix.d.ts +9 -0
- package/dist/construction/concreteMix.d.ts.map +1 -0
- package/dist/construction/concreteMix.js +31 -0
- package/dist/construction/concreteMix.js.map +1 -0
- package/dist/construction/earthwork.d.ts +13 -0
- package/dist/construction/earthwork.d.ts.map +1 -0
- package/dist/construction/earthwork.js +25 -0
- package/dist/construction/earthwork.js.map +1 -0
- package/dist/construction/formwork.d.ts +9 -0
- package/dist/construction/formwork.d.ts.map +1 -0
- package/dist/construction/formwork.js +61 -0
- package/dist/construction/formwork.js.map +1 -0
- package/dist/construction/index.d.ts +13 -0
- package/dist/construction/index.d.ts.map +1 -0
- package/dist/construction/index.js +13 -0
- package/dist/construction/index.js.map +1 -0
- package/dist/construction/pert.d.ts +15 -0
- package/dist/construction/pert.d.ts.map +1 -0
- package/dist/construction/pert.js +207 -0
- package/dist/construction/pert.js.map +1 -0
- package/dist/construction/rebar.d.ts +16 -0
- package/dist/construction/rebar.d.ts.map +1 -0
- package/dist/construction/rebar.js +43 -0
- package/dist/construction/rebar.js.map +1 -0
- package/dist/construction/roof.d.ts +16 -0
- package/dist/construction/roof.d.ts.map +1 -0
- package/dist/construction/roof.js +65 -0
- package/dist/construction/roof.js.map +1 -0
- package/dist/construction/slope.d.ts +14 -0
- package/dist/construction/slope.d.ts.map +1 -0
- package/dist/construction/slope.js +54 -0
- package/dist/construction/slope.js.map +1 -0
- package/dist/construction/stair.d.ts +17 -0
- package/dist/construction/stair.d.ts.map +1 -0
- package/dist/construction/stair.js +69 -0
- package/dist/construction/stair.js.map +1 -0
- package/dist/construction/types.d.ts +219 -0
- package/dist/construction/types.d.ts.map +1 -0
- package/dist/construction/types.js +2 -0
- package/dist/construction/types.js.map +1 -0
- package/dist/electronics/awg.d.ts +9 -0
- package/dist/electronics/awg.d.ts.map +1 -0
- package/dist/electronics/awg.js +66 -0
- package/dist/electronics/awg.js.map +1 -0
- package/dist/electronics/capacitor.d.ts +9 -0
- package/dist/electronics/capacitor.d.ts.map +1 -0
- package/dist/electronics/capacitor.js +51 -0
- package/dist/electronics/capacitor.js.map +1 -0
- package/dist/electronics/index.d.ts +12 -0
- package/dist/electronics/index.d.ts.map +1 -0
- package/dist/electronics/index.js +12 -0
- package/dist/electronics/index.js.map +1 -0
- package/dist/electronics/led.d.ts +9 -0
- package/dist/electronics/led.d.ts.map +1 -0
- package/dist/electronics/led.js +72 -0
- package/dist/electronics/led.js.map +1 -0
- package/dist/electronics/reflow.d.ts +12 -0
- package/dist/electronics/reflow.d.ts.map +1 -0
- package/dist/electronics/reflow.js +77 -0
- package/dist/electronics/reflow.js.map +1 -0
- package/dist/electronics/resistor.d.ts +8 -0
- package/dist/electronics/resistor.d.ts.map +1 -0
- package/dist/electronics/resistor.js +137 -0
- package/dist/electronics/resistor.js.map +1 -0
- package/dist/electronics/smt-takt.d.ts +8 -0
- package/dist/electronics/smt-takt.d.ts.map +1 -0
- package/dist/electronics/smt-takt.js +59 -0
- package/dist/electronics/smt-takt.js.map +1 -0
- package/dist/electronics/solder.d.ts +8 -0
- package/dist/electronics/solder.d.ts.map +1 -0
- package/dist/electronics/solder.js +46 -0
- package/dist/electronics/solder.js.map +1 -0
- package/dist/electronics/stencil.d.ts +9 -0
- package/dist/electronics/stencil.d.ts.map +1 -0
- package/dist/electronics/stencil.js +78 -0
- package/dist/electronics/stencil.js.map +1 -0
- package/dist/electronics/trace.d.ts +8 -0
- package/dist/electronics/trace.d.ts.map +1 -0
- package/dist/electronics/trace.js +75 -0
- package/dist/electronics/trace.js.map +1 -0
- package/dist/electronics/types.d.ts +145 -0
- package/dist/electronics/types.d.ts.map +1 -0
- package/dist/electronics/types.js +2 -0
- package/dist/electronics/types.js.map +1 -0
- package/dist/electronics/via.d.ts +12 -0
- package/dist/electronics/via.d.ts.map +1 -0
- package/dist/electronics/via.js +63 -0
- package/dist/electronics/via.js.map +1 -0
- package/dist/energy/carbonFootprint.d.ts +13 -0
- package/dist/energy/carbonFootprint.d.ts.map +1 -0
- package/dist/energy/carbonFootprint.js +41 -0
- package/dist/energy/carbonFootprint.js.map +1 -0
- package/dist/energy/compressedAirCost.d.ts +14 -0
- package/dist/energy/compressedAirCost.d.ts.map +1 -0
- package/dist/energy/compressedAirCost.js +39 -0
- package/dist/energy/compressedAirCost.js.map +1 -0
- package/dist/energy/index.d.ts +8 -0
- package/dist/energy/index.d.ts.map +1 -0
- package/dist/energy/index.js +8 -0
- package/dist/energy/index.js.map +1 -0
- package/dist/energy/motorEfficiency.d.ts +14 -0
- package/dist/energy/motorEfficiency.d.ts.map +1 -0
- package/dist/energy/motorEfficiency.js +47 -0
- package/dist/energy/motorEfficiency.js.map +1 -0
- package/dist/energy/pfCorrection.d.ts +15 -0
- package/dist/energy/pfCorrection.d.ts.map +1 -0
- package/dist/energy/pfCorrection.js +56 -0
- package/dist/energy/pfCorrection.js.map +1 -0
- package/dist/energy/powerCost.d.ts +15 -0
- package/dist/energy/powerCost.d.ts.map +1 -0
- package/dist/energy/powerCost.js +37 -0
- package/dist/energy/powerCost.js.map +1 -0
- package/dist/energy/types.d.ts +119 -0
- package/dist/energy/types.d.ts.map +1 -0
- package/dist/energy/types.js +2 -0
- package/dist/energy/types.js.map +1 -0
- package/dist/energy/vfdSavings.d.ts +16 -0
- package/dist/energy/vfdSavings.d.ts.map +1 -0
- package/dist/energy/vfdSavings.js +57 -0
- package/dist/energy/vfdSavings.js.map +1 -0
- package/dist/food/calorie.d.ts +13 -0
- package/dist/food/calorie.d.ts.map +1 -0
- package/dist/food/calorie.js +42 -0
- package/dist/food/calorie.js.map +1 -0
- package/dist/food/expiry.d.ts +13 -0
- package/dist/food/expiry.d.ts.map +1 -0
- package/dist/food/expiry.js +58 -0
- package/dist/food/expiry.js.map +1 -0
- package/dist/food/haccp.d.ts +18 -0
- package/dist/food/haccp.d.ts.map +1 -0
- package/dist/food/haccp.js +70 -0
- package/dist/food/haccp.js.map +1 -0
- package/dist/food/index.d.ts +6 -0
- package/dist/food/index.d.ts.map +1 -0
- package/dist/food/index.js +6 -0
- package/dist/food/index.js.map +1 -0
- package/dist/food/nutrition.d.ts +12 -0
- package/dist/food/nutrition.d.ts.map +1 -0
- package/dist/food/nutrition.js +75 -0
- package/dist/food/nutrition.js.map +1 -0
- package/dist/food/types.d.ts +104 -0
- package/dist/food/types.d.ts.map +1 -0
- package/dist/food/types.js +2 -0
- package/dist/food/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/logistics/cbm.d.ts +12 -0
- package/dist/logistics/cbm.d.ts.map +1 -0
- package/dist/logistics/cbm.js +37 -0
- package/dist/logistics/cbm.js.map +1 -0
- package/dist/logistics/containerFit.d.ts +12 -0
- package/dist/logistics/containerFit.d.ts.map +1 -0
- package/dist/logistics/containerFit.js +73 -0
- package/dist/logistics/containerFit.js.map +1 -0
- package/dist/logistics/dimWeight.d.ts +13 -0
- package/dist/logistics/dimWeight.d.ts.map +1 -0
- package/dist/logistics/dimWeight.js +50 -0
- package/dist/logistics/dimWeight.js.map +1 -0
- package/dist/logistics/eoq.d.ts +18 -0
- package/dist/logistics/eoq.d.ts.map +1 -0
- package/dist/logistics/eoq.js +42 -0
- package/dist/logistics/eoq.js.map +1 -0
- package/dist/logistics/fillRate.d.ts +22 -0
- package/dist/logistics/fillRate.d.ts.map +1 -0
- package/dist/logistics/fillRate.js +84 -0
- package/dist/logistics/fillRate.js.map +1 -0
- package/dist/logistics/freightClass.d.ts +12 -0
- package/dist/logistics/freightClass.d.ts.map +1 -0
- package/dist/logistics/freightClass.js +68 -0
- package/dist/logistics/freightClass.js.map +1 -0
- package/dist/logistics/index.d.ts +15 -0
- package/dist/logistics/index.d.ts.map +1 -0
- package/dist/logistics/index.js +15 -0
- package/dist/logistics/index.js.map +1 -0
- package/dist/logistics/kanban.d.ts +19 -0
- package/dist/logistics/kanban.d.ts.map +1 -0
- package/dist/logistics/kanban.js +48 -0
- package/dist/logistics/kanban.js.map +1 -0
- package/dist/logistics/pallet3d.d.ts +16 -0
- package/dist/logistics/pallet3d.d.ts.map +1 -0
- package/dist/logistics/pallet3d.js +380 -0
- package/dist/logistics/pallet3d.js.map +1 -0
- package/dist/logistics/palletStack.d.ts +12 -0
- package/dist/logistics/palletStack.d.ts.map +1 -0
- package/dist/logistics/palletStack.js +65 -0
- package/dist/logistics/palletStack.js.map +1 -0
- package/dist/logistics/pickTime.d.ts +17 -0
- package/dist/logistics/pickTime.d.ts.map +1 -0
- package/dist/logistics/pickTime.js +70 -0
- package/dist/logistics/pickTime.js.map +1 -0
- package/dist/logistics/safetyStock.d.ts +24 -0
- package/dist/logistics/safetyStock.d.ts.map +1 -0
- package/dist/logistics/safetyStock.js +99 -0
- package/dist/logistics/safetyStock.js.map +1 -0
- package/dist/logistics/shipping.d.ts +16 -0
- package/dist/logistics/shipping.d.ts.map +1 -0
- package/dist/logistics/shipping.js +115 -0
- package/dist/logistics/shipping.js.map +1 -0
- package/dist/logistics/tsp.d.ts +12 -0
- package/dist/logistics/tsp.d.ts.map +1 -0
- package/dist/logistics/tsp.js +166 -0
- package/dist/logistics/tsp.js.map +1 -0
- package/dist/logistics/types.d.ts +315 -0
- package/dist/logistics/types.d.ts.map +1 -0
- package/dist/logistics/types.js +5 -0
- package/dist/logistics/types.js.map +1 -0
- package/dist/metal/bearing.d.ts +11 -0
- package/dist/metal/bearing.d.ts.map +1 -0
- package/dist/metal/bearing.js +32 -0
- package/dist/metal/bearing.js.map +1 -0
- package/dist/metal/bendAllowance.d.ts +13 -0
- package/dist/metal/bendAllowance.d.ts.map +1 -0
- package/dist/metal/bendAllowance.js +75 -0
- package/dist/metal/bendAllowance.js.map +1 -0
- package/dist/metal/bolt.d.ts +32 -0
- package/dist/metal/bolt.d.ts.map +1 -0
- package/dist/metal/bolt.js +149 -0
- package/dist/metal/bolt.js.map +1 -0
- package/dist/metal/cutting.d.ts +10 -0
- package/dist/metal/cutting.d.ts.map +1 -0
- package/dist/metal/cutting.js +55 -0
- package/dist/metal/cutting.js.map +1 -0
- package/dist/metal/cuttingStock.d.ts +8 -0
- package/dist/metal/cuttingStock.d.ts.map +1 -0
- package/dist/metal/cuttingStock.js +89 -0
- package/dist/metal/cuttingStock.js.map +1 -0
- package/dist/metal/flatPattern.d.ts +12 -0
- package/dist/metal/flatPattern.d.ts.map +1 -0
- package/dist/metal/flatPattern.js +50 -0
- package/dist/metal/flatPattern.js.map +1 -0
- package/dist/metal/gear.d.ts +13 -0
- package/dist/metal/gear.d.ts.map +1 -0
- package/dist/metal/gear.js +79 -0
- package/dist/metal/gear.js.map +1 -0
- package/dist/metal/hardness.d.ts +15 -0
- package/dist/metal/hardness.d.ts.map +1 -0
- package/dist/metal/hardness.js +77 -0
- package/dist/metal/hardness.js.map +1 -0
- package/dist/metal/index.d.ts +24 -0
- package/dist/metal/index.d.ts.map +1 -0
- package/dist/metal/index.js +24 -0
- package/dist/metal/index.js.map +1 -0
- package/dist/metal/kFactorReverse.d.ts +19 -0
- package/dist/metal/kFactorReverse.d.ts.map +1 -0
- package/dist/metal/kFactorReverse.js +39 -0
- package/dist/metal/kFactorReverse.js.map +1 -0
- package/dist/metal/material.d.ts +5 -0
- package/dist/metal/material.d.ts.map +1 -0
- package/dist/metal/material.js +56 -0
- package/dist/metal/material.js.map +1 -0
- package/dist/metal/metalWeight.d.ts +10 -0
- package/dist/metal/metalWeight.d.ts.map +1 -0
- package/dist/metal/metalWeight.js +82 -0
- package/dist/metal/metalWeight.js.map +1 -0
- package/dist/metal/pressFit.d.ts +15 -0
- package/dist/metal/pressFit.d.ts.map +1 -0
- package/dist/metal/pressFit.js +96 -0
- package/dist/metal/pressFit.js.map +1 -0
- package/dist/metal/pressTonnage.d.ts +13 -0
- package/dist/metal/pressTonnage.d.ts.map +1 -0
- package/dist/metal/pressTonnage.js +86 -0
- package/dist/metal/pressTonnage.js.map +1 -0
- package/dist/metal/roughness.d.ts +6 -0
- package/dist/metal/roughness.d.ts.map +1 -0
- package/dist/metal/roughness.js +62 -0
- package/dist/metal/roughness.js.map +1 -0
- package/dist/metal/screw.d.ts +7 -0
- package/dist/metal/screw.d.ts.map +1 -0
- package/dist/metal/screw.js +44 -0
- package/dist/metal/screw.js.map +1 -0
- package/dist/metal/spring.d.ts +11 -0
- package/dist/metal/spring.d.ts.map +1 -0
- package/dist/metal/spring.js +59 -0
- package/dist/metal/spring.js.map +1 -0
- package/dist/metal/tap.d.ts +16 -0
- package/dist/metal/tap.d.ts.map +1 -0
- package/dist/metal/tap.js +62 -0
- package/dist/metal/tap.js.map +1 -0
- package/dist/metal/thread.d.ts +8 -0
- package/dist/metal/thread.d.ts.map +1 -0
- package/dist/metal/thread.js +75 -0
- package/dist/metal/thread.js.map +1 -0
- package/dist/metal/tolerance.d.ts +6 -0
- package/dist/metal/tolerance.d.ts.map +1 -0
- package/dist/metal/tolerance.js +113 -0
- package/dist/metal/tolerance.js.map +1 -0
- package/dist/metal/types.d.ts +494 -0
- package/dist/metal/types.d.ts.map +1 -0
- package/dist/metal/types.js +2 -0
- package/dist/metal/types.js.map +1 -0
- package/dist/metal/vibration.d.ts +6 -0
- package/dist/metal/vibration.d.ts.map +1 -0
- package/dist/metal/vibration.js +153 -0
- package/dist/metal/vibration.js.map +1 -0
- package/dist/metal/weldHeat.d.ts +6 -0
- package/dist/metal/weldHeat.d.ts.map +1 -0
- package/dist/metal/weldHeat.js +138 -0
- package/dist/metal/weldHeat.js.map +1 -0
- package/dist/metal/welding.d.ts +6 -0
- package/dist/metal/welding.d.ts.map +1 -0
- package/dist/metal/welding.js +80 -0
- package/dist/metal/welding.js.map +1 -0
- package/dist/quality/aql.d.ts +10 -0
- package/dist/quality/aql.d.ts.map +1 -0
- package/dist/quality/aql.js +104 -0
- package/dist/quality/aql.js.map +1 -0
- package/dist/quality/cpk.d.ts +14 -0
- package/dist/quality/cpk.d.ts.map +1 -0
- package/dist/quality/cpk.js +44 -0
- package/dist/quality/cpk.js.map +1 -0
- package/dist/quality/cycle.d.ts +11 -0
- package/dist/quality/cycle.d.ts.map +1 -0
- package/dist/quality/cycle.js +55 -0
- package/dist/quality/cycle.js.map +1 -0
- package/dist/quality/downtime.d.ts +9 -0
- package/dist/quality/downtime.d.ts.map +1 -0
- package/dist/quality/downtime.js +28 -0
- package/dist/quality/downtime.js.map +1 -0
- package/dist/quality/dpmo.d.ts +10 -0
- package/dist/quality/dpmo.d.ts.map +1 -0
- package/dist/quality/dpmo.js +114 -0
- package/dist/quality/dpmo.js.map +1 -0
- package/dist/quality/index.d.ts +15 -0
- package/dist/quality/index.d.ts.map +1 -0
- package/dist/quality/index.js +15 -0
- package/dist/quality/index.js.map +1 -0
- package/dist/quality/lineBalancing.d.ts +9 -0
- package/dist/quality/lineBalancing.d.ts.map +1 -0
- package/dist/quality/lineBalancing.js +185 -0
- package/dist/quality/lineBalancing.js.map +1 -0
- package/dist/quality/mtbf.d.ts +13 -0
- package/dist/quality/mtbf.d.ts.map +1 -0
- package/dist/quality/mtbf.js +48 -0
- package/dist/quality/mtbf.js.map +1 -0
- package/dist/quality/oee.d.ts +11 -0
- package/dist/quality/oee.d.ts.map +1 -0
- package/dist/quality/oee.js +43 -0
- package/dist/quality/oee.js.map +1 -0
- package/dist/quality/ppk.d.ts +15 -0
- package/dist/quality/ppk.d.ts.map +1 -0
- package/dist/quality/ppk.js +61 -0
- package/dist/quality/ppk.js.map +1 -0
- package/dist/quality/ppm.d.ts +9 -0
- package/dist/quality/ppm.d.ts.map +1 -0
- package/dist/quality/ppm.js +134 -0
- package/dist/quality/ppm.js.map +1 -0
- package/dist/quality/rpn.d.ts +11 -0
- package/dist/quality/rpn.d.ts.map +1 -0
- package/dist/quality/rpn.js +48 -0
- package/dist/quality/rpn.js.map +1 -0
- package/dist/quality/takt.d.ts +13 -0
- package/dist/quality/takt.d.ts.map +1 -0
- package/dist/quality/takt.js +44 -0
- package/dist/quality/takt.js.map +1 -0
- package/dist/quality/types.d.ts +261 -0
- package/dist/quality/types.d.ts.map +1 -0
- package/dist/quality/types.js +2 -0
- package/dist/quality/types.js.map +1 -0
- package/dist/quality/yield.d.ts +12 -0
- package/dist/quality/yield.d.ts.map +1 -0
- package/dist/quality/yield.js +56 -0
- package/dist/quality/yield.js.map +1 -0
- package/dist/safety/fallClearance.d.ts +12 -0
- package/dist/safety/fallClearance.d.ts.map +1 -0
- package/dist/safety/fallClearance.js +37 -0
- package/dist/safety/fallClearance.js.map +1 -0
- package/dist/safety/havsCalculate.d.ts +16 -0
- package/dist/safety/havsCalculate.d.ts.map +1 -0
- package/dist/safety/havsCalculate.js +103 -0
- package/dist/safety/havsCalculate.js.map +1 -0
- package/dist/safety/index.d.ts +8 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +8 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/nioshLifting.d.ts +21 -0
- package/dist/safety/nioshLifting.d.ts.map +1 -0
- package/dist/safety/nioshLifting.js +164 -0
- package/dist/safety/nioshLifting.js.map +1 -0
- package/dist/safety/noiseExposure.d.ts +22 -0
- package/dist/safety/noiseExposure.d.ts.map +1 -0
- package/dist/safety/noiseExposure.js +76 -0
- package/dist/safety/noiseExposure.js.map +1 -0
- package/dist/safety/respiratorCalculate.d.ts +14 -0
- package/dist/safety/respiratorCalculate.d.ts.map +1 -0
- package/dist/safety/respiratorCalculate.js +90 -0
- package/dist/safety/respiratorCalculate.js.map +1 -0
- package/dist/safety/types.d.ts +93 -0
- package/dist/safety/types.d.ts.map +1 -0
- package/dist/safety/types.js +2 -0
- package/dist/safety/types.js.map +1 -0
- package/dist/safety/wbgtCalculate.d.ts +25 -0
- package/dist/safety/wbgtCalculate.d.ts.map +1 -0
- package/dist/safety/wbgtCalculate.js +65 -0
- package/dist/safety/wbgtCalculate.js.map +1 -0
- package/dist/utility/assignment.d.ts +11 -0
- package/dist/utility/assignment.d.ts.map +1 -0
- package/dist/utility/assignment.js +113 -0
- package/dist/utility/assignment.js.map +1 -0
- package/dist/utility/index.d.ts +4 -0
- package/dist/utility/index.d.ts.map +1 -0
- package/dist/utility/index.js +4 -0
- package/dist/utility/index.js.map +1 -0
- package/dist/utility/qrcode.d.ts +30 -0
- package/dist/utility/qrcode.d.ts.map +1 -0
- package/dist/utility/qrcode.js +30 -0
- package/dist/utility/qrcode.js.map +1 -0
- package/dist/utility/types.d.ts +64 -0
- package/dist/utility/types.d.ts.map +1 -0
- package/dist/utility/types.js +2 -0
- package/dist/utility/types.js.map +1 -0
- package/dist/utility/unit.d.ts +25 -0
- package/dist/utility/unit.d.ts.map +1 -0
- package/dist/utility/unit.js +136 -0
- package/dist/utility/unit.js.map +1 -0
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { roundTo } from '../utils.js';
|
|
2
|
+
// Default comfortable riser height range: 150-180mm
|
|
3
|
+
const MIN_RISER = 150;
|
|
4
|
+
const MAX_RISER = 180;
|
|
5
|
+
const DEFAULT_RISER = 170; // Target riser height for auto-calculation
|
|
6
|
+
/**
|
|
7
|
+
* Calculate stair dimensions
|
|
8
|
+
*
|
|
9
|
+
* Formulas:
|
|
10
|
+
* - Number of risers = totalRise / riserHeight (rounded)
|
|
11
|
+
* - Number of treads = risers - 1
|
|
12
|
+
* - Tread depth = totalRun / numberOfTreads
|
|
13
|
+
* - Stringer length = sqrt(totalRise² + totalRun²)
|
|
14
|
+
* - 2R + T comfort formula (should be 600-650mm for comfortable stairs)
|
|
15
|
+
* - Total angle = atan2(totalRise, totalRun) × (180 / π)
|
|
16
|
+
*
|
|
17
|
+
* @param input - Stair input parameters
|
|
18
|
+
* @returns Stair calculation results
|
|
19
|
+
*/
|
|
20
|
+
export function stair(input) {
|
|
21
|
+
const { totalRise, totalRun, riserHeight } = input;
|
|
22
|
+
let numberOfRisers;
|
|
23
|
+
let actualRiserHeight;
|
|
24
|
+
if (riserHeight && riserHeight > 0) {
|
|
25
|
+
// Use specified riser height
|
|
26
|
+
numberOfRisers = Math.round(totalRise / riserHeight);
|
|
27
|
+
actualRiserHeight = totalRise / numberOfRisers;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Auto-calculate optimal riser count based on target riser height
|
|
31
|
+
numberOfRisers = Math.round(totalRise / DEFAULT_RISER);
|
|
32
|
+
if (numberOfRisers < 1)
|
|
33
|
+
numberOfRisers = 1;
|
|
34
|
+
actualRiserHeight = totalRise / numberOfRisers;
|
|
35
|
+
// Adjust if outside comfortable range
|
|
36
|
+
if (actualRiserHeight > MAX_RISER) {
|
|
37
|
+
numberOfRisers = Math.ceil(totalRise / MAX_RISER);
|
|
38
|
+
actualRiserHeight = totalRise / numberOfRisers;
|
|
39
|
+
}
|
|
40
|
+
else if (actualRiserHeight < MIN_RISER && numberOfRisers > 1) {
|
|
41
|
+
numberOfRisers = Math.floor(totalRise / MIN_RISER);
|
|
42
|
+
if (numberOfRisers < 1)
|
|
43
|
+
numberOfRisers = 1;
|
|
44
|
+
actualRiserHeight = totalRise / numberOfRisers;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Number of treads = risers - 1 (bottom step is floor level)
|
|
48
|
+
const numberOfTreads = numberOfRisers - 1;
|
|
49
|
+
// Tread depth = total run / number of treads
|
|
50
|
+
const treadDepth = numberOfTreads > 0 ? totalRun / numberOfTreads : 0;
|
|
51
|
+
// Stringer length = sqrt(totalRise² + totalRun²)
|
|
52
|
+
const stringerLength = Math.sqrt(totalRise * totalRise + totalRun * totalRun);
|
|
53
|
+
// 2R + T comfort formula (should be 600-650mm for comfortable stairs)
|
|
54
|
+
const twoRPlusT = 2 * actualRiserHeight + treadDepth;
|
|
55
|
+
const codeCompliant = twoRPlusT >= 600 && twoRPlusT <= 650;
|
|
56
|
+
// Calculate stair angle
|
|
57
|
+
const totalAngle = Math.atan2(totalRise, totalRun) * (180 / Math.PI);
|
|
58
|
+
return {
|
|
59
|
+
numberOfRisers,
|
|
60
|
+
numberOfTreads,
|
|
61
|
+
actualRiserHeight: roundTo(actualRiserHeight, 1),
|
|
62
|
+
treadDepth: roundTo(treadDepth, 1),
|
|
63
|
+
stringerLength: roundTo(stringerLength, 1),
|
|
64
|
+
twoRPlusT: roundTo(twoRPlusT, 1),
|
|
65
|
+
codeCompliant,
|
|
66
|
+
totalAngle: roundTo(totalAngle, 1),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=stair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stair.js","sourceRoot":"","sources":["../../src/construction/stair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,oDAAoD;AACpD,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,aAAa,GAAG,GAAG,CAAC,CAAC,2CAA2C;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEnD,IAAI,cAAsB,CAAC;IAC3B,IAAI,iBAAyB,CAAC;IAE9B,IAAI,WAAW,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACnC,6BAA6B;QAC7B,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;QACrD,iBAAiB,GAAG,SAAS,GAAG,cAAc,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC;QACvD,IAAI,cAAc,GAAG,CAAC;YAAE,cAAc,GAAG,CAAC,CAAC;QAC3C,iBAAiB,GAAG,SAAS,GAAG,cAAc,CAAC;QAE/C,sCAAsC;QACtC,IAAI,iBAAiB,GAAG,SAAS,EAAE,CAAC;YAClC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;YAClD,iBAAiB,GAAG,SAAS,GAAG,cAAc,CAAC;QACjD,CAAC;aAAM,IAAI,iBAAiB,GAAG,SAAS,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YAC/D,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;YACnD,IAAI,cAAc,GAAG,CAAC;gBAAE,cAAc,GAAG,CAAC,CAAC;YAC3C,iBAAiB,GAAG,SAAS,GAAG,cAAc,CAAC;QACjD,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;IAE1C,6CAA6C;IAC7C,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,iDAAiD;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAE9E,sEAAsE;IACtE,MAAM,SAAS,GAAG,CAAC,GAAG,iBAAiB,GAAG,UAAU,CAAC;IACrD,MAAM,aAAa,GAAG,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC;IAE3D,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAErE,OAAO;QACL,cAAc;QACd,cAAc;QACd,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChD,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,aAAa;QACb,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beam Load Calculation Types
|
|
3
|
+
*/
|
|
4
|
+
export type LoadType = 'uniform' | 'concentrated' | 'combined';
|
|
5
|
+
export type BeamSupport = 'simple' | 'cantilever' | 'fixed';
|
|
6
|
+
export interface LoadInput {
|
|
7
|
+
loadType: LoadType;
|
|
8
|
+
support: BeamSupport;
|
|
9
|
+
span: number;
|
|
10
|
+
uniformLoad?: number;
|
|
11
|
+
pointLoad?: number;
|
|
12
|
+
pointPosition?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface LoadResult {
|
|
15
|
+
maxMoment: number;
|
|
16
|
+
maxShear: number;
|
|
17
|
+
maxDeflectionCoeff: number;
|
|
18
|
+
reactionLeft: number;
|
|
19
|
+
reactionRight: number;
|
|
20
|
+
momentAtPoint?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Concrete Mix Design Types
|
|
24
|
+
*/
|
|
25
|
+
export type ConcreteGrade = '15' | '20' | '25' | '30' | '35' | '40';
|
|
26
|
+
export interface ConcreteInput {
|
|
27
|
+
grade: ConcreteGrade;
|
|
28
|
+
volume: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ConcreteResult {
|
|
31
|
+
cement: number;
|
|
32
|
+
sand: number;
|
|
33
|
+
gravel: number;
|
|
34
|
+
water: number;
|
|
35
|
+
ratio: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Earthwork Volume Types
|
|
39
|
+
*/
|
|
40
|
+
export interface EarthworkInput {
|
|
41
|
+
length: number;
|
|
42
|
+
width: number;
|
|
43
|
+
depth: number;
|
|
44
|
+
swellFactor: number;
|
|
45
|
+
shrinkFactor: number;
|
|
46
|
+
}
|
|
47
|
+
export interface EarthworkResult {
|
|
48
|
+
bankVolume: number;
|
|
49
|
+
looseVolume: number;
|
|
50
|
+
compactedVolume: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Formwork Area Types
|
|
54
|
+
*/
|
|
55
|
+
export type ElementType = 'column' | 'beam' | 'slab' | 'wall' | 'footing';
|
|
56
|
+
export interface FormworkInput {
|
|
57
|
+
elementType: ElementType;
|
|
58
|
+
length: number;
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
quantity: number;
|
|
62
|
+
reuses: number;
|
|
63
|
+
}
|
|
64
|
+
export interface FormworkResult {
|
|
65
|
+
singleAreaSqm: number;
|
|
66
|
+
totalAreaSqm: number;
|
|
67
|
+
effectiveAreaSqm: number;
|
|
68
|
+
plywoodSheets: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Rebar Weight Calculation Types
|
|
72
|
+
*/
|
|
73
|
+
export type RebarSize = 'D10' | 'D13' | 'D16' | 'D19' | 'D22' | 'D25' | 'D29' | 'D32';
|
|
74
|
+
export interface RebarInput {
|
|
75
|
+
size: RebarSize;
|
|
76
|
+
length: number;
|
|
77
|
+
quantity: number;
|
|
78
|
+
}
|
|
79
|
+
export interface RebarResult {
|
|
80
|
+
unitWeight: number;
|
|
81
|
+
totalLength: number;
|
|
82
|
+
totalWeight: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Slope Conversion Types
|
|
86
|
+
*/
|
|
87
|
+
export type SlopeUnit = 'percent' | 'degrees' | 'ratio';
|
|
88
|
+
export interface SlopeInput {
|
|
89
|
+
fromUnit: SlopeUnit;
|
|
90
|
+
value: number;
|
|
91
|
+
}
|
|
92
|
+
export interface SlopeResult {
|
|
93
|
+
percent: number;
|
|
94
|
+
degrees: number;
|
|
95
|
+
ratio: number;
|
|
96
|
+
risePerMeter: number;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Aggregate Calculation Types
|
|
100
|
+
*/
|
|
101
|
+
export type AggregateType = 'gravel' | 'sand' | 'crushed_stone' | 'topsoil' | 'mulch' | 'custom';
|
|
102
|
+
export interface AggregateDensity {
|
|
103
|
+
type: AggregateType;
|
|
104
|
+
density: number;
|
|
105
|
+
label: string;
|
|
106
|
+
}
|
|
107
|
+
export interface AggregateInput {
|
|
108
|
+
length: number;
|
|
109
|
+
width: number;
|
|
110
|
+
depth: number;
|
|
111
|
+
depthUnit: 'meters' | 'centimeters';
|
|
112
|
+
aggregateType: AggregateType;
|
|
113
|
+
customDensity?: number;
|
|
114
|
+
}
|
|
115
|
+
export interface AggregateResult {
|
|
116
|
+
volume: number;
|
|
117
|
+
weight: number;
|
|
118
|
+
weightTonnes: number;
|
|
119
|
+
coverageArea: number;
|
|
120
|
+
density: number;
|
|
121
|
+
bags20kg: number;
|
|
122
|
+
bags25kg: number;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Brick Calculation Types
|
|
126
|
+
*/
|
|
127
|
+
export type BrickSize = 'modular' | 'standard' | 'queen' | 'king' | 'custom';
|
|
128
|
+
export interface BrickDimensions {
|
|
129
|
+
length: number;
|
|
130
|
+
height: number;
|
|
131
|
+
}
|
|
132
|
+
export interface BrickInput {
|
|
133
|
+
wallArea: number;
|
|
134
|
+
brickSize: BrickSize;
|
|
135
|
+
customLength?: number;
|
|
136
|
+
customHeight?: number;
|
|
137
|
+
mortarThickness: number;
|
|
138
|
+
wasteFactor: number;
|
|
139
|
+
}
|
|
140
|
+
export interface BrickResult {
|
|
141
|
+
bricksPerSqMeter: number;
|
|
142
|
+
totalBricks: number;
|
|
143
|
+
bricksWithoutWaste: number;
|
|
144
|
+
wastedBricks: number;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* PERT (Program Evaluation and Review Technique) Types
|
|
148
|
+
*/
|
|
149
|
+
export interface PertTask {
|
|
150
|
+
id: string;
|
|
151
|
+
name: string;
|
|
152
|
+
predecessors: string[];
|
|
153
|
+
optimistic: number;
|
|
154
|
+
mostLikely: number;
|
|
155
|
+
pessimistic: number;
|
|
156
|
+
}
|
|
157
|
+
export interface PertInput {
|
|
158
|
+
tasks: PertTask[];
|
|
159
|
+
deadline?: number;
|
|
160
|
+
}
|
|
161
|
+
export interface PertTaskResult {
|
|
162
|
+
id: string;
|
|
163
|
+
name: string;
|
|
164
|
+
duration: number;
|
|
165
|
+
variance: number;
|
|
166
|
+
es: number;
|
|
167
|
+
ef: number;
|
|
168
|
+
ls: number;
|
|
169
|
+
lf: number;
|
|
170
|
+
totalFloat: number;
|
|
171
|
+
freeFloat: number;
|
|
172
|
+
isCritical: boolean;
|
|
173
|
+
}
|
|
174
|
+
export interface PertResult {
|
|
175
|
+
tasks: PertTaskResult[];
|
|
176
|
+
criticalPath: string[];
|
|
177
|
+
projectDuration: number;
|
|
178
|
+
projectVariance: number;
|
|
179
|
+
projectStdDev: number;
|
|
180
|
+
zScore?: number;
|
|
181
|
+
completionProbability?: number;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Roof Calculation Types
|
|
185
|
+
*/
|
|
186
|
+
export interface RoofInput {
|
|
187
|
+
rise: number;
|
|
188
|
+
run: number;
|
|
189
|
+
footprintLength: number;
|
|
190
|
+
footprintWidth: number;
|
|
191
|
+
}
|
|
192
|
+
export interface RoofResult {
|
|
193
|
+
slopeRatio: string;
|
|
194
|
+
slopeDegrees: number;
|
|
195
|
+
slopePercent: number;
|
|
196
|
+
rafterLength: number;
|
|
197
|
+
slopeFactor: number;
|
|
198
|
+
roofArea: number;
|
|
199
|
+
pitchDescription: string;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Stair Calculation Types
|
|
203
|
+
*/
|
|
204
|
+
export interface StairInput {
|
|
205
|
+
totalRise: number;
|
|
206
|
+
totalRun: number;
|
|
207
|
+
riserHeight?: number;
|
|
208
|
+
}
|
|
209
|
+
export interface StairResult {
|
|
210
|
+
numberOfRisers: number;
|
|
211
|
+
numberOfTreads: number;
|
|
212
|
+
actualRiserHeight: number;
|
|
213
|
+
treadDepth: number;
|
|
214
|
+
stringerLength: number;
|
|
215
|
+
twoRPlusT: number;
|
|
216
|
+
codeCompliant: boolean;
|
|
217
|
+
totalAngle: number;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/construction/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/construction/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AwgInput, AwgResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate AWG wire properties
|
|
4
|
+
* AWG diameter formula: d(mm) = 0.127 × 92^((36-AWG)/39)
|
|
5
|
+
* @param input - AWG gauge number, material, and temperature
|
|
6
|
+
* @returns Wire properties or null if invalid input
|
|
7
|
+
*/
|
|
8
|
+
export declare function awgProperties(input: AwgInput): AwgResult | null;
|
|
9
|
+
//# sourceMappingURL=awg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awg.d.ts","sourceRoot":"","sources":["../../src/electronics/awg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AA6BnE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CA2C/D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Round to specified decimal places
|
|
3
|
+
*/
|
|
4
|
+
function roundTo(value, decimals) {
|
|
5
|
+
const factor = Math.pow(10, decimals);
|
|
6
|
+
return Math.round(value * factor) / factor;
|
|
7
|
+
}
|
|
8
|
+
// Resistivity at 20°C in Ω·mm²/m
|
|
9
|
+
const RESISTIVITY_20C = {
|
|
10
|
+
copper: 0.01724,
|
|
11
|
+
aluminum: 0.02826,
|
|
12
|
+
};
|
|
13
|
+
// Temperature coefficient in 1/°C
|
|
14
|
+
const TEMP_COEFFICIENT = {
|
|
15
|
+
copper: 0.00393,
|
|
16
|
+
aluminum: 0.00403,
|
|
17
|
+
};
|
|
18
|
+
// Current capacity for chassis wiring (30°C ambient, single conductor in air)
|
|
19
|
+
// Values based on common wire tables, roughly 5.5 A/mm² for copper
|
|
20
|
+
const CURRENT_DENSITY = {
|
|
21
|
+
copper: 5.5, // A/mm²
|
|
22
|
+
aluminum: 4.3, // A/mm² (aluminum is less conductive)
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Calculate AWG wire properties
|
|
26
|
+
* AWG diameter formula: d(mm) = 0.127 × 92^((36-AWG)/39)
|
|
27
|
+
* @param input - AWG gauge number, material, and temperature
|
|
28
|
+
* @returns Wire properties or null if invalid input
|
|
29
|
+
*/
|
|
30
|
+
export function awgProperties(input) {
|
|
31
|
+
const { awg, material, tempC } = input;
|
|
32
|
+
// Validate input range
|
|
33
|
+
if (awg < 0 || awg > 40) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
// Calculate diameter using AWG formula
|
|
37
|
+
// d(inch) = 0.005 × 92^((36-AWG)/39) → d(mm) = 0.127 × 92^((36-AWG)/39)
|
|
38
|
+
const diameterMm = 0.127 * Math.pow(92, (36 - awg) / 39);
|
|
39
|
+
const diameterMils = diameterMm / 0.0254;
|
|
40
|
+
// Cross-sectional area
|
|
41
|
+
const radiusMm = diameterMm / 2;
|
|
42
|
+
const areaMm2 = Math.PI * radiusMm * radiusMm;
|
|
43
|
+
// Circular mils: (diameter in mils)²
|
|
44
|
+
const areaCircularMils = diameterMils * diameterMils;
|
|
45
|
+
// Resistance per meter at operating temperature
|
|
46
|
+
// R = ρ / A × [1 + α(T - 20)]
|
|
47
|
+
const resistivity = RESISTIVITY_20C[material];
|
|
48
|
+
const tempCoeff = TEMP_COEFFICIENT[material];
|
|
49
|
+
const tempFactor = 1 + tempCoeff * (tempC - 20);
|
|
50
|
+
const resistancePerM = (resistivity / areaMm2) * tempFactor;
|
|
51
|
+
// Resistance per foot (1 ft = 0.3048 m)
|
|
52
|
+
const resistancePerFt = resistancePerM * 0.3048;
|
|
53
|
+
// Current capacity for chassis wiring
|
|
54
|
+
const currentDensity = CURRENT_DENSITY[material];
|
|
55
|
+
const currentCapacity = currentDensity * areaMm2;
|
|
56
|
+
return {
|
|
57
|
+
diameterMm: roundTo(diameterMm, 4),
|
|
58
|
+
diameterMils: roundTo(diameterMils, 2),
|
|
59
|
+
areaMm2: roundTo(areaMm2, 4),
|
|
60
|
+
areaCircularMils: roundTo(areaCircularMils, 0),
|
|
61
|
+
resistancePerM: roundTo(resistancePerM, 5),
|
|
62
|
+
resistancePerFt: roundTo(resistancePerFt, 5),
|
|
63
|
+
currentCapacity: roundTo(currentCapacity, 2),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=awg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awg.js","sourceRoot":"","sources":["../../src/electronics/awg.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,QAAgB;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC;AAED,iCAAiC;AACjC,MAAM,eAAe,GAAgC;IACnD,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,kCAAkC;AAClC,MAAM,gBAAgB,GAAgC;IACpD,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;CAClB,CAAC;AAEF,8EAA8E;AAC9E,mEAAmE;AACnE,MAAM,eAAe,GAAgC;IACnD,MAAM,EAAE,GAAG,EAAM,QAAQ;IACzB,QAAQ,EAAE,GAAG,EAAI,sCAAsC;CACxD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAEvC,uBAAuB;IACvB,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,wEAAwE;IACxE,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IAEzC,uBAAuB;IACvB,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAE9C,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAAC;IAErD,gDAAgD;IAChD,8BAA8B;IAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,UAAU,CAAC;IAE5D,wCAAwC;IACxC,MAAM,eAAe,GAAG,cAAc,GAAG,MAAM,CAAC;IAEhD,sCAAsC;IACtC,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC;IAEjD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5C,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CapacitorCodeInput, CapacitorCodeResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Decode a 3-digit capacitor code to capacitance values
|
|
4
|
+
* @param input - The 3-digit capacitor code (e.g., "104")
|
|
5
|
+
* @returns Capacitance in pF, nF, and µF with formatted output
|
|
6
|
+
* @throws Error if code is invalid
|
|
7
|
+
*/
|
|
8
|
+
export declare function capacitorDecode(input: CapacitorCodeInput): CapacitorCodeResult;
|
|
9
|
+
//# sourceMappingURL=capacitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capacitor.d.ts","sourceRoot":"","sources":["../../src/electronics/capacitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAU1E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAyC9E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Round to specified decimal places
|
|
3
|
+
*/
|
|
4
|
+
function roundTo(value, decimals) {
|
|
5
|
+
const factor = Math.pow(10, decimals);
|
|
6
|
+
return Math.round(value * factor) / factor;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Decode a 3-digit capacitor code to capacitance values
|
|
10
|
+
* @param input - The 3-digit capacitor code (e.g., "104")
|
|
11
|
+
* @returns Capacitance in pF, nF, and µF with formatted output
|
|
12
|
+
* @throws Error if code is invalid
|
|
13
|
+
*/
|
|
14
|
+
export function capacitorDecode(input) {
|
|
15
|
+
const { code } = input;
|
|
16
|
+
// Validate: must be exactly 3 digits
|
|
17
|
+
if (!/^\d{3}$/.test(code)) {
|
|
18
|
+
throw new Error('Invalid capacitor code: must be exactly 3 digits');
|
|
19
|
+
}
|
|
20
|
+
const digit1 = parseInt(code[0], 10);
|
|
21
|
+
const digit2 = parseInt(code[1], 10);
|
|
22
|
+
const multiplierDigit = parseInt(code[2], 10);
|
|
23
|
+
// Significant figures from first two digits
|
|
24
|
+
const significantFigures = digit1 * 10 + digit2;
|
|
25
|
+
// Multiplier is 10^n picofarads
|
|
26
|
+
const multiplier = Math.pow(10, multiplierDigit);
|
|
27
|
+
// Value in picofarads
|
|
28
|
+
const picofarads = significantFigures * multiplier;
|
|
29
|
+
const nanofarads = roundTo(picofarads / 1000, 6);
|
|
30
|
+
const microfarads = roundTo(picofarads / 1000000, 6);
|
|
31
|
+
// Format output string
|
|
32
|
+
let formatted;
|
|
33
|
+
if (microfarads >= 1) {
|
|
34
|
+
formatted = `${roundTo(microfarads, 3)}\u00B5F`;
|
|
35
|
+
}
|
|
36
|
+
else if (nanofarads >= 1) {
|
|
37
|
+
formatted = `${roundTo(nanofarads, 3)}nF`;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
formatted = `${picofarads}pF`;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
picofarads,
|
|
44
|
+
nanofarads,
|
|
45
|
+
microfarads,
|
|
46
|
+
formatted,
|
|
47
|
+
significantFigures,
|
|
48
|
+
multiplier,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=capacitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capacitor.js","sourceRoot":"","sources":["../../src/electronics/capacitor.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,QAAgB;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvB,qCAAqC;IACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9C,4CAA4C;IAC5C,MAAM,kBAAkB,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;IAEhD,gCAAgC;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAEjD,sBAAsB;IACtB,MAAM,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IAErD,uBAAuB;IACvB,IAAI,SAAiB,CAAC;IACtB,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,SAAS,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;SAAM,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAC3B,SAAS,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,GAAG,UAAU,IAAI,CAAC;IAChC,CAAC;IAED,OAAO;QACL,UAAU;QACV,UAAU;QACV,WAAW;QACX,SAAS;QACT,kBAAkB;QAClB,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { PasteType, ReflowInput, ReflowResult, BandCount, ColorName, ResistorBands, ResistorResult, SmtTaktInput, SmtTaktResult, SolderInput, SolderResult, TraceLayer, TraceInput, TraceResult, AwgMaterial, AwgInput, AwgResult, CapacitorCodeInput, CapacitorCodeResult, LedResistorInput, LedResistorResult, ApertureShape, ComponentType, StencilInput, StencilResult, ViaInput, ViaResult, } from './types.js';
|
|
2
|
+
export { reflowProfile, getPasteTypes } from './reflow.js';
|
|
3
|
+
export { resistorDecode } from './resistor.js';
|
|
4
|
+
export { smtTakt } from './smt-takt.js';
|
|
5
|
+
export { solderPaste } from './solder.js';
|
|
6
|
+
export { traceWidth } from './trace.js';
|
|
7
|
+
export { awgProperties } from './awg.js';
|
|
8
|
+
export { capacitorDecode } from './capacitor.js';
|
|
9
|
+
export { ledResistor } from './led.js';
|
|
10
|
+
export { stencilAperture } from './stencil.js';
|
|
11
|
+
export { viaCurrent } from './via.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/electronics/index.ts"],"names":[],"mappings":"AACA,YAAY,EAEV,SAAS,EACT,WAAW,EACX,YAAY,EAEZ,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,aAAa,EAEb,WAAW,EACX,YAAY,EAEZ,UAAU,EACV,UAAU,EACV,WAAW,EAEX,WAAW,EACX,QAAQ,EACR,SAAS,EAET,kBAAkB,EAClB,mBAAmB,EAEnB,gBAAgB,EAChB,iBAAiB,EAEjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EAEb,QAAQ,EACR,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Functions
|
|
2
|
+
export { reflowProfile, getPasteTypes } from './reflow.js';
|
|
3
|
+
export { resistorDecode } from './resistor.js';
|
|
4
|
+
export { smtTakt } from './smt-takt.js';
|
|
5
|
+
export { solderPaste } from './solder.js';
|
|
6
|
+
export { traceWidth } from './trace.js';
|
|
7
|
+
export { awgProperties } from './awg.js';
|
|
8
|
+
export { capacitorDecode } from './capacitor.js';
|
|
9
|
+
export { ledResistor } from './led.js';
|
|
10
|
+
export { stencilAperture } from './stencil.js';
|
|
11
|
+
export { viaCurrent } from './via.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/electronics/index.ts"],"names":[],"mappings":"AAyCA,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LedResistorInput, LedResistorResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate LED current limiting resistor
|
|
4
|
+
* @param input - Supply voltage, LED forward voltage, and desired current
|
|
5
|
+
* @returns Resistance value and related calculations
|
|
6
|
+
* @throws Error if supply voltage <= forward voltage or current <= 0
|
|
7
|
+
*/
|
|
8
|
+
export declare function ledResistor(input: LedResistorInput): LedResistorResult;
|
|
9
|
+
//# sourceMappingURL=led.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"led.d.ts","sourceRoot":"","sources":["../../src/electronics/led.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA+CtE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAgCtE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Round to specified decimal places
|
|
3
|
+
*/
|
|
4
|
+
function roundTo(value, decimals) {
|
|
5
|
+
const factor = Math.pow(10, decimals);
|
|
6
|
+
return Math.round(value * factor) / factor;
|
|
7
|
+
}
|
|
8
|
+
// E24 standard resistor series (5% tolerance)
|
|
9
|
+
const E24_SERIES = [
|
|
10
|
+
1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0,
|
|
11
|
+
3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1,
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Find the nearest standard E24 resistor value
|
|
15
|
+
*/
|
|
16
|
+
function findNearestStandardResistor(resistance) {
|
|
17
|
+
if (resistance <= 0)
|
|
18
|
+
return 10; // Minimum practical value
|
|
19
|
+
// Find the decade (power of 10)
|
|
20
|
+
const decade = Math.floor(Math.log10(resistance));
|
|
21
|
+
const normalized = resistance / Math.pow(10, decade);
|
|
22
|
+
// Find nearest E24 value
|
|
23
|
+
let nearestValue = E24_SERIES[0];
|
|
24
|
+
let minDiff = Math.abs(normalized - E24_SERIES[0]);
|
|
25
|
+
for (const value of E24_SERIES) {
|
|
26
|
+
const diff = Math.abs(normalized - value);
|
|
27
|
+
if (diff < minDiff) {
|
|
28
|
+
minDiff = diff;
|
|
29
|
+
nearestValue = value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Also check the next decade up (e.g., 1.0 * 10^(n+1))
|
|
33
|
+
const nextDecadeValue = E24_SERIES[0] * Math.pow(10, decade + 1);
|
|
34
|
+
if (Math.abs(resistance - nextDecadeValue) < Math.abs(resistance - nearestValue * Math.pow(10, decade))) {
|
|
35
|
+
return nextDecadeValue;
|
|
36
|
+
}
|
|
37
|
+
return roundTo(nearestValue * Math.pow(10, decade), 1);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Calculate LED current limiting resistor
|
|
41
|
+
* @param input - Supply voltage, LED forward voltage, and desired current
|
|
42
|
+
* @returns Resistance value and related calculations
|
|
43
|
+
* @throws Error if supply voltage <= forward voltage or current <= 0
|
|
44
|
+
*/
|
|
45
|
+
export function ledResistor(input) {
|
|
46
|
+
const { supplyVoltage, forwardVoltage, forwardCurrent } = input;
|
|
47
|
+
// Validate inputs
|
|
48
|
+
if (supplyVoltage <= forwardVoltage) {
|
|
49
|
+
throw new Error('Supply voltage must be greater than forward voltage');
|
|
50
|
+
}
|
|
51
|
+
if (forwardCurrent <= 0) {
|
|
52
|
+
throw new Error('Forward current must be positive');
|
|
53
|
+
}
|
|
54
|
+
// R = (Vs - Vf) / If
|
|
55
|
+
// Note: forwardCurrent is in mA, so convert to A for calculation
|
|
56
|
+
const forwardCurrentAmps = forwardCurrent / 1000;
|
|
57
|
+
const resistance = (supplyVoltage - forwardVoltage) / forwardCurrentAmps;
|
|
58
|
+
// Find nearest standard resistor value
|
|
59
|
+
const standardResistance = findNearestStandardResistor(resistance);
|
|
60
|
+
// Calculate power dissipation: P = If^2 * R (in milliwatts)
|
|
61
|
+
// Using the actual calculated resistance
|
|
62
|
+
const powerDissipation = roundTo(forwardCurrentAmps * forwardCurrentAmps * resistance * 1000, 2);
|
|
63
|
+
// Calculate actual current with standard resistor
|
|
64
|
+
const actualCurrent = roundTo((supplyVoltage - forwardVoltage) / standardResistance * 1000, 2);
|
|
65
|
+
return {
|
|
66
|
+
resistance: roundTo(resistance, 2),
|
|
67
|
+
standardResistance,
|
|
68
|
+
powerDissipation,
|
|
69
|
+
actualCurrent,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=led.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"led.js","sourceRoot":"","sources":["../../src/electronics/led.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PasteType, ReflowResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get all available paste types
|
|
4
|
+
*/
|
|
5
|
+
export declare function getPasteTypes(): PasteType[];
|
|
6
|
+
/**
|
|
7
|
+
* Get reflow profile for a specific solder paste type
|
|
8
|
+
* @param pasteType - The type of solder paste
|
|
9
|
+
* @returns Reflow profile or undefined if paste type is invalid
|
|
10
|
+
*/
|
|
11
|
+
export declare function reflowProfile(pasteType: PasteType): ReflowResult | undefined;
|
|
12
|
+
//# sourceMappingURL=reflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reflow.d.ts","sourceRoot":"","sources":["../../src/electronics/reflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA8D1D;;GAEG;AACH,wBAAgB,aAAa,IAAI,SAAS,EAAE,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAM5E"}
|