Merge branches 'main' and 'main' of ssh://git.jmkengineering.com:2222/JMK_Engineering_Inc/JEPL
This commit is contained in:
commit
91dbc65183
4 changed files with 56 additions and 25 deletions
|
|
@ -8,11 +8,10 @@ import sys
|
||||||
from .jepl_general import *
|
from .jepl_general import *
|
||||||
from .jeplpv import *
|
from .jeplpv import *
|
||||||
from .jepl_circuits import *
|
from .jepl_circuits import *
|
||||||
from .jepl_templates import *
|
# safety still needs to be re-wrote, but I will do it later.
|
||||||
from .jepl_safety import *
|
#from .jepl_safety import *
|
||||||
|
# Templates rely on safety so I will have to fix it too
|
||||||
|
#from .jepl_templates import *
|
||||||
#print(cec21table1)
|
|
||||||
|
|
||||||
def Test():
|
def Test():
|
||||||
print( "JMK Python Module works! !")
|
print( "JMK Python Module works! !")
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,6 @@ def conduit_size(num_cc,cc_con,bond,insulation="RW90", voltage = 1000, jacketed
|
||||||
#
|
#
|
||||||
# Determine the maximum conduit fill
|
# Determine the maximum conduit fill
|
||||||
#
|
#
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
if num_cc == 1:
|
if num_cc == 1:
|
||||||
percent_fill = 0.53
|
percent_fill = 0.53
|
||||||
|
|
@ -404,28 +403,28 @@ def conduit_size(num_cc,cc_con,bond,insulation="RW90", voltage = 1000, jacketed
|
||||||
#print(conductor_diameter)
|
#print(conductor_diameter)
|
||||||
|
|
||||||
cc_dia = conductor_diameter.loc[(conductor_diameter['size'] == cc_con) ]['diameter'].iloc[0]
|
cc_dia = conductor_diameter.loc[(conductor_diameter['size'] == cc_con) ]['diameter'].iloc[0]
|
||||||
print(cc_dia)
|
#print(cc_dia)
|
||||||
bond_dia = conductor_diameter.loc[(conductor_diameter['size'] == bond) ]['diameter'].iloc[0]
|
bond_dia = conductor_diameter.loc[(conductor_diameter['size'] == bond) ]['diameter'].iloc[0]
|
||||||
|
|
||||||
print(bond_dia)
|
#print(bond_dia)
|
||||||
|
|
||||||
cc_area = math.pi * (cc_dia/2) ** 2
|
cc_area = math.pi * (cc_dia/2) ** 2
|
||||||
print(cc_area)
|
#print(cc_area)
|
||||||
bond_area = math.pi * (bond_dia/2) ** 2
|
bond_area = math.pi * (bond_dia/2) ** 2
|
||||||
print(bond_area)
|
#print(bond_area)
|
||||||
|
|
||||||
# Total conductor area
|
# Total conductor area
|
||||||
|
|
||||||
area_conductors = num_cc * cc_area + bond_area
|
area_conductors = num_cc * cc_area + bond_area
|
||||||
print(area_conductors)
|
#print(area_conductors)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
min_trade_area = area_conductors / percent_fill # The minimum area of the conduit
|
min_trade_area = area_conductors / percent_fill # The minimum area of the conduit
|
||||||
print(min_trade_area)
|
#print(min_trade_area)
|
||||||
|
|
||||||
trade_inner_dia = math.sqrt(min_trade_area/math.pi) * 2
|
trade_inner_dia = math.sqrt(min_trade_area/math.pi) * 2
|
||||||
print(trade_inner_dia)
|
#print(trade_inner_dia)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -443,13 +442,13 @@ def conduit_size(num_cc,cc_con,bond,insulation="RW90", voltage = 1000, jacketed
|
||||||
# Retrieve the nearest value using the found index
|
# Retrieve the nearest value using the found index
|
||||||
result_raw = conduit_table['size'].iloc[closest_index]
|
result_raw = conduit_table['size'].iloc[closest_index]
|
||||||
result_name = result_raw + 'mm ' + material
|
result_name = result_raw + 'mm ' + material
|
||||||
|
# Get the new inner diameter
|
||||||
result_inner_dia = conduit_table[material].iloc[closest_index]
|
result_inner_dia = conduit_table[material].iloc[closest_index]
|
||||||
|
result_inner_area = math.pi * (result_inner_dia/2) ** 2
|
||||||
|
resulting_percent_fill = area_conductors / result_inner_area
|
||||||
|
|
||||||
|
|
||||||
return result_raw,result_name,result_inner_dia
|
return result_raw,result_name,result_inner_dia,resulting_percent_fill
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def cable_schedule_naming(conductor_size,conductors,runs = 1,bond='BOND'):
|
def cable_schedule_naming(conductor_size,conductors,runs = 1,bond='BOND'):
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ def va(voltage, current,phases=3):
|
||||||
|
|
||||||
def xfmr_sc(kva, voltage, impedance, phases = 3):
|
def xfmr_sc(kva, voltage, impedance, phases = 3):
|
||||||
|
|
||||||
'''i
|
'''
|
||||||
Calculate the maximum let-through current of a transformer.
|
Calculate the maximum let-through current of a transformer.
|
||||||
|
|
||||||
Isc = resulant short circuit
|
Isc = resulant short circuit
|
||||||
|
|
@ -46,5 +46,4 @@ def xfmr_sc(kva, voltage, impedance, phases = 3):
|
||||||
else:
|
else:
|
||||||
Isc = (kva * 1000) / (math.sqrt(3) * voltage * (impedance / 100))
|
Isc = (kva * 1000) / (math.sqrt(3) * voltage * (impedance / 100))
|
||||||
|
|
||||||
|
|
||||||
return Isc
|
return Isc
|
||||||
|
|
|
||||||
46
tools.py
46
tools.py
|
|
@ -181,6 +181,34 @@ def voltagedrop(args):
|
||||||
result = jmk.voltage_drop(voltage, current, size, length, num_phase = num_phase, material = material, num_runs = num_runs, code = code, power_factor = power_factor, raceway = raceway, insul_temp = insul_temp)
|
result = jmk.voltage_drop(voltage, current, size, length, num_phase = num_phase, material = material, num_runs = num_runs, code = code, power_factor = power_factor, raceway = raceway, insul_temp = insul_temp)
|
||||||
print(result)
|
print(result)
|
||||||
|
|
||||||
|
def conduit_size(args):
|
||||||
|
|
||||||
|
if args.insulation == None:
|
||||||
|
insulation = "RW90"
|
||||||
|
else:
|
||||||
|
insulation = args.insulation
|
||||||
|
if args.voltage == None:
|
||||||
|
voltage = 1000
|
||||||
|
else:
|
||||||
|
voltage = args.voltage
|
||||||
|
if args.jacketed == None:
|
||||||
|
jacketed = False
|
||||||
|
else:
|
||||||
|
jacketed = args.jacketed
|
||||||
|
if args.material == None:
|
||||||
|
material = 'SCH80'
|
||||||
|
else:
|
||||||
|
material = args.material
|
||||||
|
if args.code == None:
|
||||||
|
code = 'CEC'
|
||||||
|
else:
|
||||||
|
code = args.code
|
||||||
|
|
||||||
|
result = jmk.conduit_size(args.num_conductors,args.size,args.bond,insulation=insulation, voltage = voltage, jacketed = jacketed,material=material, code = code)
|
||||||
|
percent_fill = str(round(result[3],2) * 100) + "%" + " fill."
|
||||||
|
print(percent_fill,result[1])
|
||||||
|
|
||||||
|
|
||||||
# Solar
|
# Solar
|
||||||
|
|
||||||
def temp_adj_Voc(args):
|
def temp_adj_Voc(args):
|
||||||
|
|
@ -278,6 +306,17 @@ try:
|
||||||
voltagedrop_parser.set_defaults(func=voltagedrop)
|
voltagedrop_parser.set_defaults(func=voltagedrop)
|
||||||
|
|
||||||
|
|
||||||
|
consize_parser = subparsers.add_parser("conduitsize", help="Calculate the proper conduit size.")
|
||||||
|
consize_parser.add_argument("num_conductors", type=int, help="Number of current carrying conductors, typically 1 to 4.")
|
||||||
|
consize_parser.add_argument("size", type=str, help="Size of the current carrying conductors in AWG or kcmil." )
|
||||||
|
consize_parser.add_argument("bond", type=str, help="Size of the bond conductor, or equipment grounding conductor in AWG or kcmil")
|
||||||
|
consize_parser.add_argument("-i", "--insulation", type=str, help="Insulation type. default RW90")
|
||||||
|
consize_parser.add_argument("-v", "--voltage", type=int, help="Voltage rating of the insulation, 600 or 1000")
|
||||||
|
consize_parser.add_argument("-j", "--jacketed", type=bool, help="Are the conductors jacketed? Default: False")
|
||||||
|
consize_parser.add_argument("-m", "--material", type=str, help="Material or conduit type, ie EMT, ENT, SCH40, etc. Default SCH80")
|
||||||
|
consize_parser.add_argument("-c", "--code", type=str, help="Currently this will either be CEC or NEC. default CEC")
|
||||||
|
consize_parser.set_defaults(func=conduit_size)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -304,9 +343,4 @@ try:
|
||||||
|
|
||||||
except argparse.ArgumentError as e:
|
except argparse.ArgumentError as e:
|
||||||
#log.error("Error parsing arguments")
|
#log.error("Error parsing arguments")
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
||||||
#else:
|
|
||||||
# print(f"Something clever")
|
|
||||||
|
|
||||||
Loading…
Add table
Reference in a new issue