普通螺纹基本牙型尺寸及拧紧力矩.exe

2023-10-17 00:28

本文主要是介绍普通螺纹基本牙型尺寸及拧紧力矩.exe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概要

在这里插入图片描述

在这里插入图片描述

  本软件功能主要是通过输入螺纹原始三角形高度P,螺栓规格(公称直径)d,材料的屈服应力σs,计算出公称应力截面积As、外螺纹小径d1、外螺纹小径d2、拧紧力矩T等参数。

  开发本软件的原因主要有以下几点:

  1. 提高设计效率:通过这款软件,工程师可以快速计算螺纹的基本牙型尺寸和拧紧力矩,减少繁琐的手动计算,提高设计效率。
  2. 增强设计准确性:该软件基于严谨的数学模型和算法进行计算,避免了手动计算可能出现的错误,提高了设计的准确性。
  3. 方便易用:该软件具备友好的用户界面,使得用户可以便捷地进行操作,输入参数即可得到结果,省去了繁琐的手动计算过程。

二、技术细节

  这段代码中主要完成的任务有:

  1. 读取用户输入的一些参数(例如螺纹的原始三角形高度P,螺栓规格(公称直径)d,材料的屈服应力σs等)。
  2. 计算螺纹的原始三角形高度P,外螺纹的小径d1,中径d2,以及螺栓的公称应力截面积As。
  3. 根据这些计算结果,进一步计算拧紧力矩T。
  4. 将所有的计算结果以特定格式(保留指定位数的小数)显示给用户。

  代码技术细节:

  • self.significant_digit_lineEdit.text():从用户界面获取需要保留的有效数字位数。
  • float(self.P_lineEdit.text())float(self.d_lineEdit.text())float(self.s_lineEdit.text()):从用户界面读取输入的参数值,转换为浮点数。
  • math.sqrt(3):开平方根运算。
  • "{:.{}f}".format(H, int(self.significant_digit_lineEdit.text())):格式化输出,保留指定位数的小数。例如,如果用户输入要保留的位数为3,那么P会被格式化为类似"3.142"这样的形式。
  • self.d1_lineEdit.setText(...)self.d2_lineEdit.setText(...)self.A_lineEdit.setText(...)self.T_lineEdit.setText(...)等:将这些计算结果显示给用户。

三、完整代码

软件开发所用到的excel表和icon图标均已打包:statics

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023-10-14 14:57
# @Author : Leuanghing Chen
# @Blog : https://blog.csdn.net/weixin_46153372?spm=1010.2135.3001.5421
# @File : 普通螺纹基本牙型尺寸及拧紧力矩.py
# @Software : PyCharm
# pyinstaller --clean -y -w --icon D:\python_demo\2、普通螺纹基本牙型尺寸及拧紧力矩\螺丝大图标.ico D:\python_demo\2、普通螺纹基本牙型尺寸及拧紧力矩\screw.py
# 打包好程序后将icon和statics文件夹复制到程序所在文件夹中import math
import multiprocessing
import sys
from html import unescape
from openpyxl import load_workbook
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QVBoxLayout, QTableWidget, QTableWidgetItem# 主界面
class Ui_MainWindow(QMainWindow):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(680, 310)sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())MainWindow.setSizePolicy(sizePolicy)MainWindow.setMinimumSize(QtCore.QSize(680, 310))MainWindow.setMaximumSize(QtCore.QSize(680, 310))font = QtGui.QFont()font.setFamily("微软雅黑")font.setPointSize(12)MainWindow.setFont(font)icon = QtGui.QIcon()icon.addPixmap(QtGui.QPixmap("./icon/螺丝小图标.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)MainWindow.setWindowIcon(icon)MainWindow.setStyleSheet("background-color: rgb(255, 255, 255);\n""color: rgb(0, 0, 0);")self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.d1_unit_label = QtWidgets.QLabel(self.centralwidget)self.d1_unit_label.setGeometry(QtCore.QRect(306, 57, 40, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.d1_unit_label.sizePolicy().hasHeightForWidth())self.d1_unit_label.setSizePolicy(sizePolicy)self.d1_unit_label.setMinimumSize(QtCore.QSize(40, 30))self.d1_unit_label.setMaximumSize(QtCore.QSize(40, 30))font = QtGui.QFont()font.setFamily("Times New Roman")font.setPointSize(14)self.d1_unit_label.setFont(font)self.d1_unit_label.setObjectName("d1_unit_label")self.Units_textEdit = QtWidgets.QTextEdit(self.centralwidget)self.Units_textEdit.setEnabled(False)self.Units_textEdit.setGeometry(QtCore.QRect(380, 25, 265, 50))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.Units_textEdit.sizePolicy().hasHeightForWidth())self.Units_textEdit.setSizePolicy(sizePolicy)self.Units_textEdit.setMinimumSize(QtCore.QSize(265, 50))self.Units_textEdit.setMaximumSize(QtCore.QSize(265, 50))self.Units_textEdit.setLayoutDirection(QtCore.Qt.LeftToRight)self.Units_textEdit.setStyleSheet("background-color: rgb(255, 255, 127);")self.Units_textEdit.setObjectName("Units_textEdit")self.A_unit_label = QtWidgets.QLabel(self.centralwidget)self.A_unit_label.setGeometry(QtCore.QRect(306, 21, 40, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.A_unit_label.sizePolicy().hasHeightForWidth())self.A_unit_label.setSizePolicy(sizePolicy)self.A_unit_label.setMinimumSize(QtCore.QSize(40, 30))self.A_unit_label.setMaximumSize(QtCore.QSize(40, 30))font = QtGui.QFont()font.setFamily("Times New Roman")font.setPointSize(14)self.A_unit_label.setFont(font)self.A_unit_label.setObjectName("A_unit_label")self.A_lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.A_lineEdit.setEnabled(False)self.A_lineEdit.setGeometry(QtCore.QRect(200, 21, 100, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.A_lineEdit.sizePolicy().hasHeightForWidth())self.A_lineEdit.setSizePolicy(sizePolicy)self.A_lineEdit.setMinimumSize(QtCore.QSize(90, 30))self.A_lineEdit.setMaximumSize(QtCore.QSize(100, 30))font = QtGui.QFont()font.setFamily("Times New Roman")font.setPointSize(14)self.A_lineEdit.setFont(font)self.A_lineEdit.setStyleSheet("background-color: rgb(85, 255, 255);")self.A_lineEdit.setText("")self.A_lineEdit.setAlignment(QtCore.Qt.AlignCenter)self.A_lineEdit.setObjectName("A_lineEdit")self.Vertical_line = QtWidgets.QFrame(self.centralwidget)self.Vertical_line.setGeometry(QtCore.QRect(352, 10, 16, 223))self.Vertical_line.setFrameShape(QtWidgets.QFrame.VLine)self.Vertical_line.setFrameShadow(QtWidgets.QFrame.Sunken)self.Vertical_line.setObjectName("Vertical_line")self.A_label = QtWidgets.QLabel(self.centralwidget)self.A_label.setGeometry(QtCore.QRect(10, 21, 190, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.A_label.sizePolicy().hasHeightForWidth())self.A_label.setSizePolicy(sizePolicy)self.A_label.setMinimumSize(QtCore.QSize(190, 30))self.A_label.setMaximumSize(QtCore.QSize(180, 30))font = QtGui.QFont()font.setFamily("楷体")font.setPointSize(12)font.setBold(True)font.setWeight(75)self.A_label.setFont(font)self.A_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)self.A_label.setObjectName("A_label")self.horizontal_line_1 = QtWidgets.QFrame(self.centralwidget)self.horizontal_line_1.setGeometry(QtCore.QRect(5, 5, 670, 10))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.horizontal_line_1.sizePolicy().hasHeightForWidth())self.horizontal_line_1.setSizePolicy(sizePolicy)self.horizontal_line_1.setMinimumSize(QtCore.QSize(670, 10))self.horizontal_line_1.setMaximumSize(QtCore.QSize(670, 10))self.horizontal_line_1.setFrameShape(QtWidgets.QFrame.HLine)self.horizontal_line_1.setFrameShadow(QtWidgets.QFrame.Sunken)self.horizontal_line_1.setObjectName("horizontal_line_1")self.H_lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.H_lineEdit.setEnabled(False)self.H_lineEdit.setGeometry(QtCore.QRect(200, 122, 100, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.H_lineEdit.sizePolicy().hasHeightForWidth())self.H_lineEdit.setSizePolicy(sizePolicy)self.H_lineEdit.setMinimumSize(QtCore.QSize(90, 30))self.H_lineEdit.setMaximumSize(QtCore.QSize(100, 30))font = QtGui.QFont()font.setFamily("Times New Roman")font.setPointSize(14)self.H_lineEdit.setFont(font)self.H_lineEdit.setStyleSheet("background-color: rgb(85, 255, 255);")self.H_lineEdit.setText("")self.H_lineEdit.setAlignment(QtCore.Qt.AlignCenter)self.H_lineEdit.setObjectName("H_lineEdit")self.H_label = QtWidgets.QLabel(self.centralwidget)self.H_label.setGeometry(QtCore.QRect(10, 122, 190, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(self.H_label.sizePolicy().hasHeightForWidth())self.H_label.setSizePolicy(sizePolicy)self.H_label.setMinimumSize(QtCore.QSize(190, 30))self.H_label.setMaximumSize(QtCore.QSize(180, 30))font = QtGui.QFont()font.setFamily("楷体")font.setPointSize(12)font.setBold(True)font.setWeight(75)self.H_label.setFont(font)self.H_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)self.H_label.setObjectName("H_label")self.d2_lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.d2_lineEdit.setEnabled(False)self.d2_lineEdit.setGeometry(QtCore.QRect(200, 89, 100, 30))sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.

这篇关于普通螺纹基本牙型尺寸及拧紧力矩.exe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/221715

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

Gradle的基本使用

新建一个项目后,在项目文件夹下创建build.gradle文件,并加入内容:       apply plugin: 'eclipse'。    然后在终端运行gradle eclipse即可构建eclipse IDE的开发环境。    gradle默认值:gradle有些目录是有默认值存在,建议项目的配置,承袭了maven的风格,如:         java的源码目录:src/mai

QML入门之基本元素

元素分为可视元素与非可视元素,可能元素例如Rectangle、Button等。非可视元素如Timer(定时器)、MouseArea(鼠标区域)等。非可视元素一般用于操作可视元素。 基础元素 Item Item(基础元素对象)是所有可视元素的基础对象,它们都继承自Item。可是元素存在以下共有属性。 Group(分组)Properties(属性)Geometry(几何属性)x

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

Chapter 13 普通组件的注册使用

欢迎大家订阅【Vue2+Vue3】入门到实践 专栏,开启你的 Vue 学习之旅! 文章目录 前言一、组件创建二、局部注册三、全局注册 前言 在 Vue.js 中,组件是构建应用程序的基本单元。本章详细讲解了注册和使用 Vue 的普通组件的两种方式:局部注册和全局注册。 本篇文章参考黑马程序员 一、组件创建 ①定义 Vue 组件是一种具有特定功能的 Vue 实