Siemens-NXUG二次开发-创建倒斜角特征、边倒圆角特征、设置对象颜色、获取面信息[Python UF][20240605]

Siemens-NXUG二次开发-创建倒斜角特征、边倒圆角特征、设置对象颜色、获取面信息[Python UF][20240605]

  • 1.python uf函数
    • 1.1 NXOpen.UF.Modeling.AskFaceData
    • 1.2 NXOpen.UF.Modeling.CreateChamfer
    • 1.3 NXOpen.UF.ModlFeatures.CreateBlend
    • 1.4 NXOpen.UF.Obj.SetColor
  • 2.实体目标面边识别
    • 2.1 识别平行于Z轴的竖直边(倒圆角)
    • 2.1 识别垂直于Z轴的平面(倒斜角)
  • 3.示例代码
    • 3.1 pyuf_chamfer_blend.py
  • 4.运行结果
    • 4.1 内部模式
    • 4.2 外部模式

1.python uf函数

1.1 NXOpen.UF.Modeling.AskFaceData

# 内部和外部模式可用
"""
返回值:一个元组,元素类型为python的int类型,块特征的feature tag标识。
"""             
def NXOpen.UF.Modeling.AskFaceData(self, face_tag)
	'''
	face_tag:面的tag标识
	[返回值]一个元组 (type-int, 
    face point-list of float, 
    dir-list of float, 
    Face boundary-list of float, 
    Face major radius-float, 
    Face minor radius-float, 
    Face normal direction-int)
    其中元组0位置:
    cylinder-16、cone-17 、sphere-18 、revolved (toroidal)-19
    extruded-20 、bounded plane-22 、fillet (blend)-23 、b-surface-43
    offset surface-65 、foreign surface-66、Convergent surface-67
	'''

1.2 NXOpen.UF.Modeling.CreateChamfer

# 内部和外部模式可用
"""
返回值:一个tag,倒斜角特征tag。
"""             
def NXOpen.UF.Modeling.CreateChamfer(self, subtype, offset1, offset2, theta, edges)
	'''
    subtype-int:1-单向偏置、2-双向偏置、3-偏置和角度、4-自由单向偏置、5-自由双向偏置,
    offset1-str:偏置值1,
    offset2-str:偏置值2,
    theta-str:倒斜角角度值,
    edges-int list:要倒斜角实体边的tag列表
    [返回值]一个整数,倒角特征tag标识
	'''

1.3 NXOpen.UF.ModlFeatures.CreateBlend

# 内部和外部模式可用
"""
返回值:一个tag,倒圆角特征tag。
"""             
def NXOpen.UF.ModlFeatures.CreateBlend(self, radius, edge_list, smooth_overflow, cliff_overflow, notch_overflow, vrb_tool)
	'''
    radius-str:倒圆角半径,
    edge_list-int list:要倒圆角实体边的tag列表,
    smooth_overflow-int:倒圆角平滑溢出值、0-允许这种类型倒圆、1-防止这种类型倒圆,
    cliff_overflow-int:倒圆角峭壁溢出值、0-允许这种类型倒圆、1-防止这种类型倒圆,
    notch_overflow-int:倒圆角凹槽溢出值、0-允许这种类型倒圆、1-防止这种类型倒圆,
    vrb_tool-float:倒圆角公差
    [返回值]一个整数,倒圆角特征tag标识
	'''

1.4 NXOpen.UF.Obj.SetColor

# 内部和外部模式可用
"""
返回值:一个整数,0-成功执行,非零正整数-错误大代码。
"""             
def NXOpen.UF.Obj.SetColor(self, object_tag, color_id)
	'''
	object_tag:正整数,对象tag标识
	color_id:正整数-颜色号
	'''

2.实体目标面边识别

2.1 识别平行于Z轴的竖直边(倒圆角)

  • 从块特征tag获取该特征所属的实体tag
  • 从实体tag获取所有的边tag
  • 循环边tag,判断其所在向量是否平行于Z轴,即找到Z竖直边

识别开始时,当前3D实体状态:
在这里插入图片描述
识别完成后,倒圆角操作后,当前3D实体状态:
在这里插入图片描述

2.1 识别垂直于Z轴的平面(倒斜角)

  • 从块特征tag获取该特征所属的实体tag
  • 从实体tag获取所有的面tag
  • 循环面tag,判断是否是平面且法线平行于Z轴,即平面垂直于Z轴,找到竖直边倒圆角后实体的上下两个平面

识别开始时,当前3D实体状态:
在这里插入图片描述

识别完成后,倒斜角操作后,当前3D实体状态:
在这里插入图片描述

3.示例代码

3.1 pyuf_chamfer_blend.py

import NXOpen
import NXOpen.UF as UF

import math


def get_uf_session():
    # 获取当前python UF会话
    return UF.UFSession.GetUFSession()

def get_py_session():
    # 获取当前python会话
    return NXOpen.Session.GetSession()

def pyuf_new_prt(the_pyuf_session, new_prt_file_name, units = 1):
    """
    功能:创建一个指定文件路径和文件名的.prt文件,默认单位制是米(m)
    """

    # 由于要对Part进行操作,因此需要获取Part实例对象
    pyuf_part_instance = the_pyuf_session.Part

    # New方法位于Part类对象中
    new_prt_file_tag = pyuf_part_instance.New(new_prt_file_name, units)
    return new_prt_file_tag

def pyuf_save_prt(the_pyuf_session):
    """
    功能:保存当前工作part
    """
    # 由于要对Part进行操作,因此需要获取Part实例对象
    pyuf_part_instance = the_pyuf_session.Part

    # Save方法位于Part类对象中
    return pyuf_part_instance.Save()

def pyuf_close_prt(the_pyuf_session, part_tag, scope, mode):
    """
    功能:关闭当前工作part
    """
    # 由于要对Part进行操作,因此需要获取Part实例对象
    pyuf_part_instance = the_pyuf_session.Part

    # Close方法位于Part类对象中
    return pyuf_part_instance.Close(part_tag, scope, mode)

def get_solid_body_edge_tags(the_pyuf_session, solid_body_tag):
    """
    获取一个solidbody实体中的所有边的tag标识
    """
    uf_modling_instance = the_pyuf_session.Modeling
    edgeTagList = uf_modling_instance.AskBodyEdges(solid_body_tag)
    return edgeTagList

def get_solid_body_face_tags(the_pyuf_session, solid_body_tag):
    """
    功能:获取一个solidbody实体中的所有面的tag标识
    """
    uf_modling_instance = the_pyuf_session.Modeling

    face_tag_list = uf_modling_instance.AskBodyFaces(solid_body_tag)
    return face_tag_list

def get_solid_body_face_edge_tags(the_pyuf_session, solid_body_face_tag):
    """
    功能:获取一个实体面中的所有实体边的tag标识
    """
    uf_modling_instance = the_pyuf_session.Modeling

    edge_tag_list = uf_modling_instance.AskFaceEdges(solid_body_face_tag)
    return edge_tag_list

def get_solid_body_edge_type(the_pyuf_session, solid_body_edge_tag):
    """
    功能:获取一个实体边的类型
    """
    uf_modling_instance = the_pyuf_session.Modeling
    edge_type = uf_modling_instance.AskEdgeType(solid_body_edge_tag)
    return edge_type

def get_solid_body_face_edge_points(the_pyuf_session, solid_body_face_egde_tag):
    """
    功能:获取一个边中的所有点的坐标
    """
    uf_modling_instance = the_pyuf_session.Modeling
    edge_type = get_solid_body_edge_type(the_pyuf_session, solid_body_face_egde_tag)

    edge_data = uf_modling_instance.AskEdgeVerts(solid_body_face_egde_tag)

    edgeTypeString = get_uf_modl_edge_string(edge_type)
    return [edge_type, edgeTypeString, edge_data[2], edge_data[0], edge_data[1]]

def get_feature_body(the_pyuf_session, feature_tag):
	"""
	查询特征所属body的tag
	"""
	uf_modeling_instance = the_pyuf_session.Modeling
	return uf_modeling_instance.AskFeatBody(feature_tag)

def get_uf_modl_edge_string(uf_modl_edge_type):
    """
    功能:根据类型标识,获取UG MODL Edge对象的字符串形式描述,
    UF_MODL_LINEAR_EDGE             3001
    UF_MODL_CIRCULAR_EDGE           3002
    UF_MODL_ELLIPTICAL_EDGE         3003
    UF_MODL_INTERSECTION_EDGE       3004
    UF_MODL_SPLINE_EDGE             3005
    UF_MODL_SP_CURVE_EDGE           3006
    UF_MODL_FOREIGN_EDGE            3007
    UF_MODL_CONST_PARAMETER_EDGE    3008
    UF_MODL_TRIMMED_CURVE_EDGE      3009
    UF_MODL_CONVERGENT_EDGE         100007
    """
    if type(uf_modl_edge_type) != type(0):
        return ""
    
    if uf_modl_edge_type == UF.UFConstants.UF_MODL_LINEAR_EDGE:
        return "3001-UF_MODL_LINEAR_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_CIRCULAR_EDGE:
        return "3002-UF_MODL_CIRCULAR_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_ELLIPTICAL_EDGE:
        return "3003-UF_MODL_ELLIPTICAL_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_INTERSECTION_EDGE:
        return "3004-UF_MODL_INTERSECTION_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_SPLINE_EDGE:
        return "3005-UF_MODL_SPLINE_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_SP_CURVE_EDGE:
        return "3006-UF_MODL_SP_CURVE_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_FOREIGN_EDGE:
        return "3007-UF_MODL_FOREIGN_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_CONST_PARAMETER_EDGE:
        return "3008-UF_MODL_CONST_PARAMETER_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_TRIMMED_CURVE_EDGE:
        return "3009-UF_MODL_TRIMMED_CURVE_EDGE-Type"
    elif uf_modl_edge_type == UF.UFConstants.UF_MODL_CONVERGENT_EDGE:
        return "100007-UF_MODL_CONVERGENT_EDGE-Type"
    return "00-unknow-ModlEdgeType"

def get_face_data(the_pyuf_session, face_tag):
    """
    查询面的数据
    [返回值]一个元组 (type-int, 
    face point-list of float, 
    dir-list of float, 
    Face boundary-list of float, 
    Face major radius-float, 
    Face minor radius-float, 
    Face normal direction-int)
    其中元组0位置:
    cylinder-16、cone-17 、sphere-18 、revolved (toroidal)-19
    extruded-20 、bounded plane-22 、fillet (blend)-23 、b-surface-43
    offset surface-65 、foreign surface-66、Convergent surface-67
    """

    uf_modeling_instance = the_pyuf_session.Modeling
    return uf_modeling_instance.AskFaceData(face_tag)

def createBlock(the_pyuf_session, corner_point, size, signs = 0):
	"""
	python uf创建块(长方体)

	corner_point-float list[x,y,z]:长方体角点坐标,size-str list[x_size, y_size,z_size]:块长宽高尺寸

	返回值是一个整数:块的feature tag标识
	
	signs意义:
	UF_NULLSIGN = 0
	create new target solid

	UF_POSITIVE = 1
	add to target solid

	UF_NEGATIVE = 2
	subtract from target solid

	UF_UNSIGNED = 3
	intersect with target solid

	UF_NO_BOOLEAN = 4
	feature has not been booleaned

	UF_TOP_TARGET = 5
	feature is the "top target" feature, it has no
	"parent" features but does have tool features

	UF_UNITE = 6
	feature has been united to target solid

	UF_SUBTRACT = 7
	feature has been subtracted from target solid

	UF_INTERSECT = 8
	feature has been intersected with target solid

	UF_DEFORM_POSITIVE = 9
	feature used to deform the positive side
	of the target sheet

	UF_DEFORM_NEGATIVE = 10
	feature used to deform the negative side
	of the target sheet
	"""

	uf_modlFeatures_instance = the_pyuf_session.ModlFeatures
	uf_modl_instance = the_pyuf_session.Modl
	modl_feature_signs = UF.Modl.FeatureSigns.ValueOf(signs)
	return uf_modlFeatures_instance.CreateBlock1(modl_feature_signs, corner_point, size)

def setCorlor(the_pyuf_session, object_tag, color_id = 0):
    """
    给UG对象设置颜色(面、特征、体等)
    """
    uf_obj_instance = the_pyuf_session.Obj
    return uf_obj_instance.SetColor(object_tag, color_id)

def createChafmer(the_pyuf_session, subtype, offset1, offset2, theta, edges):
    """
    python uf创建边的倒斜角

    subtype-int:1-单向偏置、2-双向偏置、3-偏置和角度、4-自由单向偏置、5-自由双向偏置,
    offset1-str:偏置值1,offset2-str:偏置值2,theta-str:倒斜角角度值,edges-int list:要倒斜角实体边的tag列表

    返回:倒斜角feature tag标识
    """
    uf_modeling_instance = the_pyuf_session.Modeling
    return uf_modeling_instance.CreateChamfer(subtype, offset1, offset2, theta, edges)

def createBlend(the_pyuf_session, radius, edge_list, smooth_overflow = 1, cliff_overflow = 1, notch_overflow = 1, vrb_tool = 0.0001):
    """
    python uf创建边的倒圆角

    radius-str:倒圆角半径,edge_list-int list:要倒圆角实体边的tag列表,
    smooth_overflow-int:倒圆角平滑溢出值、0-允许这种类型倒圆、1-防止这种类型倒圆,
    cliff_overflow-int:倒圆角峭壁溢出值、0-允许这种类型倒圆、1-防止这种类型倒圆,
    notch_overflow-int:倒圆角凹槽溢出值、0-允许这种类型倒圆、1-防止这种类型倒圆,
    vrb_tool-float:倒圆角公差

    返回:倒圆角feature tag标识
    """
    uf_modlFeatures_instance = the_pyuf_session.ModlFeatures
    return uf_modlFeatures_instance.CreateBlend(radius, edge_list, smooth_overflow, cliff_overflow, notch_overflow, vrb_tool)


if __name__ == '__main__':
    # 获取uf session
    the_pyuf_session = get_uf_session()

    # 获取python session
    the_py_session = get_py_session()

    # 新建prt文件路径与名称
    new_prt_file_name = 'D:\\pyuf_chamfer_blend.prt'
    new_prt_file_tag = pyuf_new_prt(the_pyuf_session, new_prt_file_name)


    # 创建长方体
    block_feature_tag = createBlock(the_pyuf_session, [100.0, 100.0, 100.0], ['250.0', '450.0', '80.0'])
    """
    1.当前的3D模型是一个简单的长方体
    """

    # 从某个特征上查询该特征所属的实体
    block_body_tag = get_feature_body(the_pyuf_session, block_feature_tag)
    # 获取实体上所有边tag
    block_body_edge_tag_list = get_solid_body_edge_tags(the_pyuf_session, block_body_tag)
    # 平行于Z轴的竖直边tag
    parallel_z_edge_tag_list = []
    # [edge_type, edgeTypeString, edge_data[2], edge_data[0], edge_data[1]]
    # 长方体上下两个平面外轮廓边倒斜角 2mm 45°
    for item_edge in block_body_edge_tag_list:
        item_edge_point_info_list = get_solid_body_face_edge_points(the_pyuf_session, item_edge)
        item_edge_dir = [item_edge_point_info_list[3][0] - item_edge_point_info_list[4][0], 
                        item_edge_point_info_list[3][1] - item_edge_point_info_list[4][1],
                        item_edge_point_info_list[3][2] - item_edge_point_info_list[4][2],
                        ]
        #print("item_edge_dir:", item_edge_dir)
        if math.fabs(item_edge_dir[0] - 0.000000) <= 1e-6 \
        and math.fabs(item_edge_dir[1] - 0.000000) <= 1e-6 \
        and item_edge_dir[2] != 0.000000:
            # item_edge_dir平行于Z轴
            parallel_z_edge_tag_list.append(item_edge)
    print("parallel_z_edge_tag_list:", parallel_z_edge_tag_list)
    # 垂平行于Z轴的竖直边倒圆角半径20mm
    parallel_z_edge_blend_feature_tag = createBlend(the_pyuf_session, "20.0", parallel_z_edge_tag_list)
    # 找到当前3D实体的tag(从特征上查询该特征所属的实体)
    """
    2.当前的3D模型是一个4条平行于Z轴竖直边倒圆角半径20mm的长方体
    """

    # 从某个特征上查询该特征所属的实体
    block_body_tag = get_feature_body(the_pyuf_session, parallel_z_edge_blend_feature_tag)
    # 获取实体上所有面tag
    block_body_face_tag_list = get_solid_body_face_tags(the_pyuf_session, block_body_tag)
    print("block_body_face_tag_list:", block_body_face_tag_list)
    # 垂直于Z轴的平面tag
    vertical_z_face_tag_list = []
    for item_face in block_body_face_tag_list:
        item_face_data_tuple = get_face_data(the_pyuf_session, item_face)
        print("item_face_data_tuple:", item_face_data_tuple)
        if item_face_data_tuple[0] == 22:
            # 是平面类型
            if math.fabs(math.fabs(item_face_data_tuple[2][0]) - 0.000000) <= 1e-6 \
            and math.fabs(math.fabs(item_face_data_tuple[2][1]) - 0.000000) <= 1e-6 \
            and math.fabs(item_face_data_tuple[2][2]) != 0.000000:
                # 面的法线平行于Z轴即平面垂直于Z轴
                vertical_z_face_tag_list.append(item_face)
    print("vertical_z_face_tag_list:", vertical_z_face_tag_list)

    vertical_z_face_edge_chafmer_feature_tag = 0
    for item_face in vertical_z_face_tag_list:
        item_face_edge_tag_list = get_solid_body_face_edge_tags(the_pyuf_session, item_face)
        vertical_z_face_edge_chafmer_feature_tag = createChafmer(the_pyuf_session, 1, "2.000000", "2.000000", "45", item_face_edge_tag_list)

    # 从某个特征上查询该特征所属的实体
    block_body_tag = get_feature_body(the_pyuf_session, vertical_z_face_edge_chafmer_feature_tag)
    setCorlor(the_pyuf_session, block_body_tag, 166)

    # 保存.prt
    pyuf_save_prt(the_pyuf_session)
    # 关闭.prt
    pyuf_close_prt(the_pyuf_session, new_prt_file_tag, 0, 1)

4.运行结果

4.1 内部模式

选中要运行的.py文件后,点击“管道通路”即可。
在这里插入图片描述

运行结果:
在这里插入图片描述

4.2 外部模式

cmd命令:“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_chamfer_blend.py
powershell命令:&“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_chamfer_blend.py

运行结果:
在这里插入图片描述
同上
其中,检查输出内容:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/682782.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理-唐朔飞 概念总结(概论 总线 存储器部分)

计算机系统由“硬件”“软件”两大部分组成&#xff0c;软件通常存放在主存或辅存 软件分为系统软件和应用软件 1.1.2 计算机系统的层次结构 源程序&#xff1a;用户用高级语言编写的程序 目标程序&#xff1a;机器能识别的机器语言程序 实际机器&#xff1a;直接执行机器…

C++缺省参数函数重载

缺省参数 大家知道什么是备胎吗&#xff1f; C中函数的参数也可以配备胎。 3.1缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时&#xff0c;如果没有指定实参则采用该默认值&#xff0c;否则使用指定的实参。 void TestFunc(int a 0…

OPPO 文件传输 - 将文件从 OPPO 手机传输到 PC 的 5 种方法

OPPO手机以其出色的拍照功能而闻名&#xff0c;尤其是新推出的OPPO Find X2系列&#xff0c;它配备了高清前置镜头和超夜景模式&#xff0c;让您轻松拍出精彩瞬间。当您需要将这些照片或其他文件从OPPO手机传输到PC时&#xff0c;以下是五种简便的方法。 第 1 部分&#xff…

引擎:UI

一、控件介绍 Button 按钮 创建一个按钮 按钮禁用 精灵模式 颜色模式 缩放模式 绑定点击事件 EditBox 输入框 Layout 布局 支持水平排列、垂直排列、背包排列 PageView 页面视图 ProgressBar 进度条 RichText 富文本 绑定点击事件 事件可以被其它标签包裹 图文混排 Scroll…

揭秘AI 原生应用技术栈

一次性把“AI 原生应用技术栈”说明白 AI热潮持续&#xff0c;厂商努力推动有价值的应用涌现&#xff0c;并打造服务AI原始应用的平台产品。本文精简介绍业界最新的AI原生应用技术栈&#xff0c;让您迅速把握前沿科技脉搏。 整体架构 AI技术栈逻辑图精简呈现&#xff0c;多层…

nexus搭建npm前端项目的私服

一、为什么要搭建私库 节省外网带宽加速maven构建部署第三方构件&#xff08;特别是无法从公共仓库下载的构件&#xff09;提高稳定性&#xff08;内网部署&#xff0c;更少地依赖外网&#xff09;降低中央仓库的负荷 构件&#xff0c;好比我们的藏书&#xff0c;去书店或商城…

Python 全栈系列249 IO并发:异步、线程与协程

说明 很久没有关注这方面的问题了&#xff0c;平时大部分时候还是做批量操作 。在这种情况下(CPU密集),异步、协程这些意义就不大了&#xff0c;甚至可能进一步拖慢处理时间。 但是在IO这一块的零碎处理是比较重要的&#xff0c;可以更快&#xff0c;且更省资源。很早的时候&…

什么是通配符SSL证书?要怎么申请?

通配符SSL证书的作用主要是为了方便管理和加密具有多个子域名的网站。它能够保护一个主域名及其所有的同级子域名&#xff0c;无论子域名的数量多少或名称如何变化。使用一个通配符证书&#xff0c;你可以为像 *.example.com 这样的设置加密&#xff0c;这样不论是 blog.exampl…

Mysql:通过一张表里的父子级,递归查询并且分组分级

表&#xff1a;gc_jzst_single_base 需求&#xff1a;要求返回这张表里符合条件的数据&#xff0c;且有父子级关系的&#xff0c;展示为同一组且分级&#xff0c;给后续业务调用 代码 WITH RECURSIVE t1 AS (SELECTsingle_id,old_build_single_id,single_name,bulid_code,1 A…

运维开发介绍

目录 1.什么是运维开发 2.作用 3.优点 4.缺点 5.应用场景 5.1.十个应用场景 5.2.网站和Web应用程序 6.案例 7.小结 1.什么是运维开发 运维开发&#xff08;DevOps&#xff09;是一种结合软件开发&#xff08;Development&#xff09;与信息技术运维&#xff08;Opera…

从分布式训练到大模型训练

要了解大模型训练难&#xff0c;我们得先看看从传统的分布式训练&#xff0c;到大模型的出现&#xff0c;需要大规模分布式训练的原因。接着第二点去了解下大规模训练的挑战。 从分布式训练到大规模训练 常见的训练方式是单机单卡&#xff0c;也就是一台服务器配置1块AI芯片&a…

地球科学SCI期刊,中科院2区,IF=14.6,自引率低,无预警风险!

一、期刊名称 IEEE Geoscience and Remote Sensing Magazine 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;地球科学 影响因子&#xff1a;14.6 中科院分区&#xff1a;2区 三、期刊征稿范围 IEEE地球科学和遥感杂志向读者介绍IEEE GRS协会及其技术委员…

谢宁DOE培训的奇妙之旅:从陌生到熟练

在充满挑战与机遇的现代社会&#xff0c;不断提升自我&#xff0c;掌握新的技能和知识&#xff0c;成为了我们追求进步的重要途径。而对于我来说&#xff0c;参加谢宁DOE培训&#xff0c;无疑是我职业生涯中的一次重要抉择。这次培训让我从对谢宁DOE陌生到熟练&#xff0c;经历…

618电视盒子哪个好?经销商总结热销电视盒子品牌排行榜

电视盒子是目前热度最高的数码产品&#xff0c;大家都在讨论电视盒子的资源问题&#xff0c;究竟电视盒子还值不值得入手&#xff1f;电视盒子哪个好&#xff1f;电视盒子的功能并没有受到影响&#xff0c;依然是不可缺少的&#xff0c;本期我要给大家盘点实体店销量最好的电视…

雅欣控制HALL IC 产品选型手册,选择您的专属霍尔芯片(霍尔产品主要包括远翔FD,FS全系列,MST全系列霍尔)

HALLICs 应用领域 Applications 应用案例 雅欣为各个应用场景匹配专属HALL元器件 合作伙伴 Partners

Servlet详解(下)

目录 一、Servlet详解1.1、核心接口和类1.1.1、Servlet接口1.1.2、GenericServlet1.1.3、HttpServlet(推荐) 1.2、两种配置方法1.2.1、使用web.xml1.2.2、使用注解 二、Servlet应用2.1、request对象2.2、request主要方法2.2、response对象2.3、response主要方法 三、转发与重定…

linuxDNS域名解析

文章目录 DNS 是域名系统的简称正向解析反向解析主从服务器解析bond网卡 DNS 是域名系统的简称 域名和IP地址之间的映射关系 互联网中&#xff0c;IP地址是通信的唯一标识&#xff0c;逻辑地址 访问网站 域名解析的目的就是为了实现&#xff0c;访问域名就等于访问IP地址 …

作业-day-240605

思维导图 C编程 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重 再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1 设计这两个类的构造函数、析构函数。 #include <iostream>using namespace std;class Per{ private:str…

mkfs.ubifs -c 计算工具

mkfs.ubifs -c 输入的logical erase block count,是指除掉ubi文件系统自身管理和坏块处理后的逻辑可擦除最大块数。 参考信息如下&#xff1a; logical erase block count 计算工具&#xff0c;实现代码如下&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*-import os…

postman教程-15-前置脚本

上一小节我们学习了Postman生成随机数的方法&#xff0c;本小节我们讲解一下Postman前置脚本的使用方法。 Postman中的前置脚本&#xff08;Pre-request Script&#xff09;允许你在发送请求之前运行JavaScript代码。这可以用于修改请求头、查询参数、请求体等&#xff0c;或者…