This commit is contained in:
2024-07-20 13:00:29 +02:00
parent e69e933a0f
commit 91beedbc31
2 changed files with 76 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ with open(path.join(path.abspath(path.dirname(__file__)), 'README.md'), encoding
setup(
name="engineering",
version="2020.10.21",
version="2024.07.20",
description="engineering tools",
long_description=long_description,
author="Daniel Weschke",
@@ -16,18 +16,24 @@ setup(
package_dir={'': 'src'},
packages=find_packages("src"),
py_scripts = [
# mech
'beam.py',
'plate.py',
'tube.py',
# et
'awg.py',
],
entry_points={
'console_scripts': [
# mech
'eng-beam=beam:main',
'eng-plate=plate:main',
'eng-tube=tube:main',
# et
'eng-awg=awg:main',
],
},
keywords = 'mechanics plate tube stress',
keywords = 'mechanical electrical engineering mechanics plate tube stress',
license="MIT",
classifiers=[
'Environment :: Console',

68
src/awg.py Executable file
View File

@@ -0,0 +1,68 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""\
Python script to determine the diameter for a given AWG wire size.
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import sys
from math import pi
__author__ = "Daniel Weschke"
__copyright__ = "Copyright 2019 Daniel Weschke"
__credits__ = ["Daniel Weschke"]
__license__ = "MIT"
__version__ = "2019.01.16"
__maintainer__ = "Daniel Weschke"
__email__ = "daniel.weschke@directbox.de"
__status__ = "Production" # "Prototype", "Development", "Production"
VERSION = """\
%(prog)s version {version} {copyright}""".format(
version=__version__, copyright=__copyright__)
EPILOG = """\
"""
def diameter(number):
"""in mm"""
return 0.127 * 92**((36-number)/39)
def area(number):
"""in mm²"""
return pi/4*diameter(number)**2
def main():
"""
Main function
"""
import argparse
parser = argparse.ArgumentParser(
description=__doc__, prefix_chars='-', epilog=EPILOG,
#usage="%(prog)s [OPTION]... NAME",
formatter_class=argparse.RawTextHelpFormatter,
)
parser.add_argument('NUM', type=str, help='AWG wire size')
parser.add_argument('-V', '--version', action='version', version=VERSION)
parser.add_argument('-d', dest='debug', action='store_true', help=argparse.SUPPRESS)
args = parser.parse_args()
if args.debug:
print(args)
string = ''
if args.NUM.isdigit():
if args.NUM in ['00', '000', '0000']:
number = 1 - len(args.NUM)
else:
number = int(args.NUM)
if number != 0 or len(args.NUM) == 1:
string += (args.NUM + ' AWG\n'
'A = %.4g' % area(number) + ' mm²\n' +
'd = %.4g' % diameter(number) + ' mm\n')
print(string)
return 1
if __name__ == "__main__":
sys.exit(main())