From 800d41aee4bc9b492b54d8c7eca3deeb668d0f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Polo=20J=C3=A1come=20Toss?= Date: Mon, 26 Jul 2021 06:41:08 -0500 Subject: [PATCH] v0.1.19 --- PyEWS/PyEWS.py | 214 ++++++++++++++++++++-- PyEWS/__init__.py | 19 +- PyEWS/__pycache__/PyEWS.cpython-39.pyc | Bin 0 -> 25533 bytes PyEWS/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 447 bytes README.md | 84 ++++++--- setup.py | 15 +- 6 files changed, 278 insertions(+), 54 deletions(-) create mode 100644 PyEWS/__pycache__/PyEWS.cpython-39.pyc create mode 100644 PyEWS/__pycache__/__init__.cpython-39.pyc diff --git a/PyEWS/PyEWS.py b/PyEWS/PyEWS.py index ebb319c..01b0298 100644 --- a/PyEWS/PyEWS.py +++ b/PyEWS/PyEWS.py @@ -1,5 +1,8 @@ from tabulate import tabulate import math +import time + +t = time.localtime() # Establecemos la fecha la cual es mostrada en los errores. ''' :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -74,6 +77,23 @@ ["2000 KCM",0.0177,0.0177,0.0177,555,665,750]] +def version(): + print("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print("| Python ElectricalWireSizes, 26/07/2021 |") + print("| Version : 0.1.19 |") + print("| Autor : Marco Polo Jacome Toss |") + print("| License: GNU Affero General Public License v3 (GPL-3.0) |") + print("| Requires: Python >=3.5 |") + print("| Url : https://pypi.org/project/ElectricalWireSizes/ |") + print("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") def Rn(Ra,T2): Rb=(Ra/(234.5+75))*(234.5+T2) @@ -86,7 +106,7 @@ def RnCd(Ra,T2): def Z(R,X,FP): Z=(R*FP+X*math.sin(math.acos(FP))) FN=1/((2*100)*((R*FP+X*math.sin(math.acos(FP)))/1000)) - FFN=1/((100)*((R*FP+X*math.sin(math.acos(FP)))/1000)) + FFN=1/((math.sqrt(3)*100)*((R*FP+X*math.sin(math.acos(FP)))/1000)) FFFN=1/((math.sqrt(3)*100)*((R*FP+X*math.sin(math.acos(FP)))/1000)) FFF=1/((math.sqrt(3)*100)*((R*FP+X*math.sin(math.acos(FP)))/1000)) return [round(FN,4),round(FFN,4),round(FFFN,4),round(FFF,4),round(Z,4)] @@ -96,15 +116,69 @@ def Rcd(R): PN=1/((2*100)*((Rcond)/1000)) return [round(PN,4),round(Rcond,4)] -def DBC(conductor): +def dbc(conductor=None): + + if(conductor==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-----------------------------------------------------------") + print("| Los parámetros no son correctos para el |") + print("| módulo dbc(conductor) |") + print("-----------------------------------------------------------") + return + if conductor ==1: print(tabulate(dbConductorCu, headers=["AWG/KCM","R(Ω/km)", "X (Ω/km)","R (Ω/km)","X (Ω/km)", "R (Ω/km)", "X (Ω/km)", "60°C", "75°C", "90°C"], tablefmt='psql')) elif conductor==2: print(tabulate(dbConductorAl, headers=["AWG/KCM","R(Ω/km)", "X (Ω/km)","R (Ω/km)","X (Ω/km)", "R (Ω/km)", "X (Ω/km)", "60°C", "75°C", "90°C"], tablefmt='psql')) elif conductor==3: - print(tabulate(dbConductorCuStd, headers=["AWG/KCM","R[A](Ω/km)", "R[B](Ω/km)","R[C](Ω/km)", "60°C", "75°C", "90°C"], tablefmt='psql')) + print(tabulate(dbConductorCuStd, headers=["AWG/KCM","R[A](Ω/km)", "R[B](Ω/km)","R[C](Ω/km)", "60°C", "75°C", "90°C"], tablefmt='psql')) + elif (conductor>3 or conductor<=0): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-----------------------------------------------------------") + print("| Por el momento tenemos únicamente tres opciones |") + print("| Cobre 1, Aluminio 2, Cobre CD |") + print("-----------------------------------------------------------") -def FCT(Ta): +def FCT(Ta=None): + + if(Ta==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-----------------------------------------------------------") + print("| Los parámetros no son correctos para el |") + print("| módulo FCT(Ta) |") + print("-----------------------------------------------------------") + return + if Ta >= 60: FT60=0.0 else: @@ -122,7 +196,25 @@ def FCT(Ta): return FT90 -def ZpuCu(Type,Ta,Fp,View): +def zpucu(Type=None,Ta=None,Fp=None,View=None): + + if(Type==None or Ta==None or Fp==None or View==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-----------------------------------------------------------") + print("| Los parámetros no son correctos para el |") + print("| módulo ZpuCu(Type,Ta,Fp,View) |") + print("-----------------------------------------------------------") + return if Type==1: #Conductores en ducto de PVC @@ -180,7 +272,26 @@ def ZpuCu(Type,Ta,Fp,View): return datos -def ZpuAl(Type,Ta,Fp,View): +def zpual(Type=None,Ta=None,Fp=None,View=None): + + if(Type==None or Ta==None or Fp==None or View==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-----------------------------------------------------------") + print("| Los parámetros no son correctos para |") + print("| el módulo ZpuAl(Type,Ta,Fp,View) |") + print("-----------------------------------------------------------") + return + if Type==1: #Conductores en ducto de PVC @@ -235,7 +346,25 @@ def ZpuAl(Type,Ta,Fp,View): return datos -def MBTCU(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,View,Fsc): +def mbtcu(VF=None,VL=None,In=None,Nc=None,L=None,FA=None,Type=None,Ta=None,Vd=None,S=None,Fp=None,View=None,Fsc=None): + + if(Type==None or Ta==None or Fp==None or View==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-----------------------------------------------------------") + print("| Los parámetros no son correctos para el |") + print("| módulo MBTCU(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,View,Fsc) |") + print("-----------------------------------------------------------") + return if Ta >= 60: FT60=0.0 @@ -490,7 +619,7 @@ def MBTCU(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,View,Fsc): return datos -def MBTAL(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,View,Fsc): +def mbtal(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,View,Fsc): if Ta >= 60: FT60=0.0 @@ -741,7 +870,25 @@ def MBTAL(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,View,Fsc): #Mostrar la información en lista return datos ##-----------------------------------------------------------------------------------------------------------## -def MBTCUSTD(Vcd,In,Nc,L,Class,Ta,Vd,View,Fsc): +def mbtcustd(Vcd=None,In=None,Nc=None,L=None,Class=None,Ta=None,Vd=None,View=None,Fsc=None): + + if(Vcd==None,In==None,Nc==None,L==None,Class==None,Ta==None,Vd==None,View==None,Fsc==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-------------------------------------------------------------") + print("| Los parámetros no son correctos |") + print("| para el módulo MBTCUSTD(Vcd,In,Nc,L,Class,Ta,Vd,View,Fsc) |") + print("-------------------------------------------------------------") + return if Ta >= 60: FT60=0.0 @@ -860,16 +1007,35 @@ def MBTCUSTD(Vcd,In,Nc,L,Class,Ta,Vd,View,Fsc): #Mostrar la información en lista return datos -def DBCIRCUIT(carga,view,conductor): +def dbcircuit(carga=None,view=None,conductor=None): + + + if(carga==None or view==None or conductor==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-------------------------------------------------------------") + print("| Los parámetros no son correctos |") + print("| para el módulo DBCIRCUIT(carga,view,conductor) |") + print("-------------------------------------------------------------") + return dbcircuit = [[str(i + 1)] for i in range(len(carga))] datos=[] for i in range(len(carga)): if conductor ==1: - datos.append(MBTCU(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9],carga[i][10],carga[i][11],carga[i][12],carga[i][13])) + datos.append(mbtcu(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9],carga[i][10],carga[i][11],carga[i][12],carga[i][13])) elif conductor ==2: - datos.append(MBTAL(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9],carga[i][10],carga[i][11],carga[i][12],carga[i][13])) + datos.append(mbtal(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9],carga[i][10],carga[i][11],carga[i][12],carga[i][13])) if view==1: print("Id [",i+1,"]========================================================================================================================================================================") print(tabulate(datos[i], headers=["AWG/KCM","1F/2H", "2F/3H","3F/3H","3F/4H", "60", "75", "90","%Vd/1F", "%Vd/2F","%Vd/3F","%Vd/3F","Nc", "In", "60", "75", "90", "Op", "ITM"], tablefmt='psql')) @@ -943,19 +1109,37 @@ def DBCIRCUIT(carga,view,conductor): print(tabulate(dbcircuit, headers=["Id","#CAL","L[m]", "Vd","FP","ALM", "Fct","Fa","60", "75", "90","Vd[%]","Nc", "In", "60", "75", "90", "ITM"], tablefmt='psql')) #--------------------------------------------------------------------------------------------------------------------------------------------------------------------------# -def DBCIRCUITCD(carga,view,conductor): +def dbcircuitcd(carga,view,conductor): + + if(carga==None or view==None or conductor==None): + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ElectricalWireSizes ") + print(" ",time.asctime(t)) + print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") + print(" ") + print(" ─▄▀─▄▀") + print(" ──▀──▀") + print(" █▀▀▀▀▀█▄") + print(" █░░░░░█─█") + print(" ▀▄▄▄▄▄▀▀") + print(" ") + print("-------------------------------------------------------------") + print("| Los parámetros no son correctos |") + print("| para el módulo DBCIRCUITCD(carga,view,conductor) |") + print("-------------------------------------------------------------") + return dbcircuit = [[str(i + 1)] for i in range(len(carga))] datos=[] for i in range(len(carga)): if conductor == 1: - datos.append(MBTCUSTD(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9])) + datos.append(mbtcustd(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9])) if view==1: print("Id [",i+1,"]============================================================================================================") print(tabulate(datos[i], headers=["AWG/KCMxx","Kcd [A,B,C]", "", "60", "75", "90","%Vd","Nc", "In", "60", "75", "90", "Op", "ITM"], tablefmt='psql')) elif conductor == 2: - datos.append(MBTCUSTD(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9])) + datos.append(mbtcustd(carga[i][1],carga[i][2],carga[i][3],carga[i][4],carga[i][5],carga[i][6],carga[i][7],carga[i][8],carga[i][9])) if view==1: print("Id [",i+1,"]============================================================================================================") print(tabulate(datos[i], headers=["AWG/KCM","Kcd [A,B,C]", "", "60", "75", "90","%Vd","Nc", "In", "60", "75", "90", "Op", "ITM"], tablefmt='psql')) diff --git a/PyEWS/__init__.py b/PyEWS/__init__.py index 96b89d4..0bf2a95 100644 --- a/PyEWS/__init__.py +++ b/PyEWS/__init__.py @@ -1,13 +1,10 @@ -__docformat__ = 'restructuredtext es' -__version__ = '0.1.18' - -from .PyEWS import MBTCU -from .PyEWS import MBTAL -from .PyEWS import MBTCUSTD -from .PyEWS import DBC +from .PyEWS import mbtcu +from .PyEWS import mbtal +from .PyEWS import mbtcustd +from .PyEWS import dbc from .PyEWS import Rn from .PyEWS import Z -from .PyEWS import DBCIRCUIT -from .PyEWS import DBCIRCUITCD -from .PyEWS import ZpuAl -from .PyEWS import ZpuCu +from .PyEWS import dbcircuit +from .PyEWS import dbcircuitcd +from .PyEWS import zpual +from .PyEWS import zpucu diff --git a/PyEWS/__pycache__/PyEWS.cpython-39.pyc b/PyEWS/__pycache__/PyEWS.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..09423641a78e4e620bcd209ad12f8f1d8faea7cb GIT binary patch literal 25533 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 +[![PyPI version](https://badge.fury.io/py/ElectricalWireSizes.svg)](https://badge.fury.io/py/ElectricalWireSizes) [![Downloads](https://static.pepy.tech/personalized-badge/electricalwiresizes?period=total&units=none&left_color=grey&right_color=blue&left_text=Downloads)](https://pepy.tech/project/electricalwiresizes) [![Downloads](https://pepy.tech/badge/electricalwiresizes/month)](https://pepy.tech/project/electricalwiresizes) [![versons of python supported](https://img.shields.io/badge/python-3%20%7C%203.5%20%7C%203.6%20%7C%203.7%20%7C%203.8%20%7C%203.9-blue)](https://pypi.org/project/ElectricalWireSizes/) [![Maintainability](https://api.codeclimate.com/v1/badges/27c48038801ee954796d/maintainability)](https://codeclimate.com/github/jacometoss/PyEWS/maintainability)[![Codacy Badge](https://app.codacy.com/project/badge/Grade/8d8575adf7e149999e6bc84c657fc94e)](https://www.codacy.com/gh/jacometoss/PyEWS/dashboard?utm_source=github.com&utm_medium=referral&utm_content=jacometoss/PyEWS&utm_campaign=Badge_Grade) -PyEWS +# Python Electrical Wire Sizes -[![PyPI version](https://badge.fury.io/py/ElectricalWireSizes.svg)](https://badge.fury.io/py/ElectricalWireSizes) -[![Downloads](https://static.pepy.tech/personalized-badge/electricalwiresizes?period=total&units=none&left_color=grey&right_color=blue&left_text=Downloads)](https://pepy.tech/project/electricalwiresizes) -[![Downloads](https://pepy.tech/badge/electricalwiresizes/month)](https://pepy.tech/project/electricalwiresizes) -[![versons of python supported](https://img.shields.io/badge/python-3%20%7C%203.5%20%7C%203.6%20%7C%203.7%20%7C%203.8%20%7C%203.9-blue)](https://pypi.org/project/ElectricalWireSizes/) -[![Maintainability](https://api.codeclimate.com/v1/badges/27c48038801ee954796d/maintainability)](https://codeclimate.com/github/jacometoss/PyEWS/maintainability)[![Codacy Badge](https://app.codacy.com/project/badge/Grade/8d8575adf7e149999e6bc84c657fc94e)](https://www.codacy.com/gh/jacometoss/PyEWS/dashboard?utm_source=github.com&utm_medium=referral&utm_content=jacometoss/PyEWS&utm_campaign=Badge_Grade) +Esta idea nace debido a la popularidad de Python y de encontrar una utilidad adecuada dentro del área de ingeniería eléctrica en la especialidad de diseño de instalaciones eléctricas. En la práctica esta librería le será útil cuando trate de dimensionar una cantidad considerable de alimentadores como circuitos derivados. -# Python Electrical Wire Sizes +[Electrical Wires Sizes](https://pyews.readthedocs.io/) es una librería hecha en el lenguaje de programación Python y fue creada con la finalidad de acortar el tiempo en el dimensionamiento de conductores eléctricos u obtención de las secciones de los conductores de una instalación eléctrica. + +La librería cuenta por el momento con 8 módulos que internamente son llamados para realizar el dimensionamiento de conductores en baja tensión para conductores comerciales de 600 V a 2000 V, los resultados obtenidos se muestran en forma matricial o tabla para una mejor comprensión de los resultados. + +La versión disponible la puedes consular mediante : + +```python +import PyEWS +PyEWS.version() +``` + +## [Donativos](https://ko-fi.com/jacometoss) -El módulo PyEWS ( **Versión 0.1.18**) puede ser utilizado para dimensionar conductores de baja tensión de una instalación eléctrica. Es fácil de utilizar e interpretar sus resultados mostrando un panorama más general al poder visualizar por completo una lista de conductores propuestos con los parámetros de entrada. +**¿Te gusta este proyecto?, puedes apoyarme mediante** + +La vida es como una batería y en cada momento uno va perdiendo una pequeña parte de esta cada día, puedes apoyarme en el desarrollo de este proyecto y motivar aún más mi creatividad para que sea de gran utilidad esta herramienta. + +[El apoyo es mediante un café :](https://ko-fi.com/jacometoss) + + ─▄▀─▄▀ + ──▀──▀ + █▀▀▀▀▀█▄ + █░░░░░█─█ + ▀▄▄▄▄▄▀▀ + Url para donativos + https://ko-fi.com/jacometoss + +Este donativo es mínimo pero ayuda a mi creatividad. ## Instalación @@ -75,19 +98,23 @@ PyEWS.MBTCUSTD(1200,145,1,100,1,25,3,1,1.25) ## PyEWS Módulos -| Id | Descripción | Módulo | Versión | Descargar | -| ---- | ------------------------------------------------------------ | -------- | ------- | :-------------------------------------------------: | -| 1 | Módulo de baja tensión para conductores de cobre clase B, C y D tensión de 600V a 2000V | MBTCU | 0.1.18 | [PyEWS 0.1.18](https://github.com/jacometoss/PyEWS) | -| 2 | Módulo de baja tensión para conductores de aluminio clase B, C y D, tensión 600V a 2000V | MBTAL | 0.1.18 | [PyEWS 0.1.18](https://github.com/jacometoss/PyEWS) | -| 3 | Módulo de baja tensión para conductores de cobre clase B, C y D en corriente directa hasta 2000 V | MBTCUSTD | 0.1.18 | [PyEWS 0.1.18](https://github.com/jacometoss/PyEWS) | +| Id | Descripción | Módulo | +| ---- | ------------------------------------------------------------ | ------------- | +| 1 | Módulo de baja tensión para conductores de cobre clase B, C y D tensión de 600V a 2000V. | mbtcu() | +| 2 | Módulo de baja tensión para conductores de aluminio clase B, C y D, tensión 600V a 2000V. | mbtal() | +| 3 | Módulo de baja tensión para conductores de cobre clase B, C y D en corriente directa hasta 2000 V. | mbtcustd() | +| 4 | Módulo para el cálculo de la impedancia para conductores de cobre. | zpucu() | +| 5 | Módulo para el cálculo de la impedancia para conductores de aluminio. | zpual() | +| 6 | Módulo para dimensionar múltiples conductores de cobre y aluminio., corriente alterna. | dbcircuit() | +| 7 | Módulo para dimensionar múltiples conductores de cobre, corriente directa. | dbcircuitcd() | ## Test El módulo tiene dependencias por lo que es necesario instalar `tabulate` el cual da una mejor apariencia al momento de mostrar los resultados. ```python -import PyEWS -PyEWS.MBTCU(127,220,15,1,22,1,1,35,3,1,0.9,1,1.25) +from PyEWS impor mbtcu +mbtcu(127,220,15,1,22,1,1,35,3,1,0.9,1,1.25) ``` Los se resultados muestran con la iteración de todos los conductores tanto para tensión monofásica como trifásica. @@ -125,6 +152,7 @@ PyEWS.DBC(1) Para implementar una gran variedad de cargas se organizan como se muestra en el bloque de código, puede agregar hasta ***indefinido número de cargas*** en está nueva versión (0.1.18). ```python +from PyEWS import mbtcu, dbcircuit carga=[ ["1",127,220,15,1,22,1,1,35,3,1,0.9,2,1.25], ["2",127,220,12,1,10,1,1,25,3,1,0.9,2,1.25], @@ -160,8 +188,7 @@ print("Total de cargas : ",len(carga)) Para mostrar el resumen para conductores de cobre ```python -from PyEWS import DBCIRCUIT -PyEWS.DBCIRCUIT(carga,2,1) +dbcircuit(carga,2,1) ``` Resultados @@ -169,7 +196,7 @@ PyEWS.DBCIRCUIT(carga,2,1) Para mostrar el resumen para conductores de aluminio ```python -PyEWS.DBCIRCUIT(carga,2,2) +dbcircuit(carga,2,2) ``` ![Resultados](https://i.ibb.co/DttdHzk/B.jpg) @@ -197,7 +224,7 @@ cargacd=[ ["14",1200,30,1,100,1,25,3,2,1] ] print("Total de cargas : ",len(cargacd)) -DBCIRCUITCD(cargacd,2,1) +dbcircuitcd(cargacd,2,1) #Para mostar completo el desarrollo #----------PyEWS.DBCIRCUITCD(carga,1,1) #Cobre Estándar @@ -210,8 +237,7 @@ DBCIRCUITCD(cargacd,2,1) Para mostrar el resumen para conductores de cobre estándar ``` -from PyEWS import DBCIRCUITCD -DBCIRCUITCD(cargacd,2,2) +dbcircuitcd(cargacd,2,2) ``` ![MODBTCD](https://i.ibb.co/rswpHm2/04.jpg) @@ -221,11 +247,11 @@ DBCIRCUITCD(cargacd,2,2) Para obtener las constantes únicamente utilice las líneas siguientes ```python -import PyEWS +from PyEWS import zpucu, zpual #ZpuCu(Type,Ta,Fp,View) -PyEWS.ZpuCu(1,10,0.9,1) +zpucu(1,10,0.9,1) #ZpuAl(Type,Ta,Fp,View) -PyEWS.ZpuAl(1,10,0.9,1) +zpual(1,10,0.9,1) ``` Zpu @@ -236,5 +262,15 @@ PyEWS.ZpuAl(1,10,0.9,1) [2] Thue, W., 1978. *Electrical Power Cable Engineering*. 2nd ed. New York, Basel: Marcel Dekker Inc., p.34. +[3] Norma Oficial Mexicana NOM-001-SEDE-2018, *Instalaciones Eléctricas (utilización)* + +## Acerca de la versión +La presente versión tiene corrección de entrada de parámetros. + +```toml +[Packqge]: ElectricalWireSizes 0.1.19 +[Autor]: Marco Polo Jácome Toss +[Licencia]: GNU General Public License v3.0 +``` diff --git a/setup.py b/setup.py index 25085f9..45000c4 100644 --- a/setup.py +++ b/setup.py @@ -2,18 +2,25 @@ setup( name='ElectricalWireSizes', - version='0.1.18', - url='https://jacometoss.github.io/PyEWS/', + version='0.1.19', + url='https://pyews.readthedocs.io/', + project_urls={ + + 'Documentation': 'https://pyews.readthedocs.io/', + 'Source': 'https://github.com/jacometoss/PyEWS', + 'Source': 'https://github.com/jacometoss/PyEWS', + 'Funding': 'https://ko-fi.com/jacometoss', + }, license='GPL-3.0', author='Marco Polo Jacome Toss', author_email='jacometoss@outlook.com', - description='Module for dimensioning copper electrical conductors / Módulo para dimensionamiento de conductores eléctricos de cobre y aluminio.', + description='Module for dimensioning copper electrical conductors ', long_description=''.join(open('README.md', encoding='utf-8').readlines()), long_description_content_type='text/markdown', keywords=['PyEWS', 'electrical', 'conductor', 'size', 'ElectricalWireSizes'], packages=find_packages(include=["PyEWS"]), include_package_data=True, - install_requires=['tabulate==0.8.7'], + install_requires=['tabulate==0.8.9'], python_requires='>=3.5', classifiers=[ 'License :: OSI Approved :: GNU Affero General Public License v3',