Siemens-NXUG二次开发-获取prt中体与类型、实体面与类型、实体边与类型、边上点的Tag标识[Python UF][20240302]

Siemens-NXUG二次开发-获取prt中体与类型、实体面与类型、实体边与类型、边上点的Tag标识[Python UF][20240302]

  • 1.python uf函数
    • 1.1 NXOpen.UF.Obj.CycleObjsInPart
    • 1.2 NXOpen.UF.Obj.AskTypeAndSubtype
    • 1.3 NXOpen.UF.Modeling.AskBodyFaces
    • 1.4 NXOpen.UF.Modeling.AskFaceEdges
    • 1.5 NXOpen.UF.Modeling.AskEdgeVerts
    • 1.6 NXOpen.UF.Modeling.AskEdgeType
    • 1.7 NXOpen.UF.Modeling.AskFaceType
    • 1.8 NXOpen.UF.Modeling.AskBodyType
  • 2.示例代码
    • 2.1 pyuf_parse_prt.py
  • 3.运行结果
    • 3.1 内部模式
    • 3.2 外部模式

1.python uf函数

1.1 NXOpen.UF.Obj.CycleObjsInPart

# 内部和外部模式可用
"""
官方文档翻译:返回所有层(包括不可写或不可见的层)上指定类型prt中的所有对象,而不管其当前的可显示状态如何。
此例程不返回表达式、废弃对象、临时(系统创建的)对象或休眠对象。处于休眠状态的对象是指已从模型中删除的对象。例如,如果倒圆角一条边,则该边处于休眠状态。除非已保存WCS,否则不会返回该WCS。
注意:当指定的类型为UF_feature_type时,此例程将循环零件中的特征。
在循环中循环数据库时,不要尝试删除对象。删除当前对象后,尝试读取下一个对象时可能会出现问题。要删除对象,请保存包含对象的阵列,然后在完成循环后,使用UF_OBJ_delete_array_of_objects删除已保存的对象阵列。
返回值:一个tag,元素类型为python的int类型,当次循环拿到具体的对象obj tag。
"""
def NXOpen.UF.Obj.CycleObjsInPart(self, part_tag, type, object_arg)	'''part_tag	     要在其中查找对象的prt的tagtype	         想要在循环中查找的对象类型object_arg(Tag) 在输入时,由该例程的最后一次调用找到的对象。如果尚未调用此例程,则将object设置为NULL_TAG以开始循环。在输出时指定类型的下一个对象。如果没有对象,并且循环完成,则返回NULL_TAG'''

1.2 NXOpen.UF.Obj.AskTypeAndSubtype

"""
官方文档翻译:返回标记的NX对象的对象类型和子类型。这些对象中的大多数都列在uf_object_types.h头文件中。
除了uf_object_types.h中列出的对象之外,还有其他由标记唯一标识的NX对象。这些对象包括表达式和部件。这些对象未在uf_object_types.h头文件中列出,它们生成类型为uf_OBJ_EXPR_type和子类型为0的uf_OBJ_PART_type。
此函数为表达式和部件返回的类型和子类型在任何其他Open API例程中都没有用处。提供这些类型只是为了允许您通过NX对象的标识符(即其标签)来确定NX对象类,这可以帮助您确定可以与该对象一起使用的其他Open API例程。有关对象类和可用于这些对象的开放式API例程的更详细讨论,请参阅开放式API程序员指南“NX对象模型”。
"""
def NXOpen.UF.Obj.AskTypeAndSubtype(self, object_id)	'''object_id:(python int) 对象tag)返回值:一个元组(int, int),0-type;1-subtype'''

1.3 NXOpen.UF.Modeling.AskBodyFaces

# 内部和外部模式可用
"""
官方文档翻译:调用UF_MODL_ask_body_faces,并将实体tag(类型70,子类型0)作为输入,将返回与该实体关联的面的列表。可以使用UF_MODL_*_list*例程来处理此列表。该例程的适当输入可以通过调用UF_MODL_ask_object()并输入上述类型和子类型来获得。
"""
def NXOpen.UF.Modeling.AskBodyFaces(self, body)'''body(Tag) 实体的tag返回值:一个python列表,包含该实体上所有实体面face的tag。'''

1.4 NXOpen.UF.Modeling.AskFaceEdges

"""
注意:NXOpen中实体边的tag也可以直接用于曲线(UF_CURVE)操作函数传参,即便在UG系统中认为实体边edge和曲线curve中两种数据类型。
官方文档翻译:UF_MODL_ask_face_edges的输入是单个实体面。返回的是与该面关联的实体边的列表。可以使用UF_MODL_*_list*例程来处理此列表。
如果面是引用,则返回值是相对于引用的,而不是相对于原型的。
"""
def NXOpen.UF.Modeling.AskFaceEdges(self, face)		'''face(Tag) 实体面的tag返回值:一个python列表,包含该实体面上所有实体边edge的tag。'''

1.5 NXOpen.UF.Modeling.AskEdgeVerts

# 内部和外部模式可用
"""
官方文档翻译:给定一条实体边作为输入,返回边的顶点(端点)。根据给定的边,边可以有零个、一个或两个顶点。例如,圆是顶点为零的边,线是顶点为两个的边。也可以创建具有一个顶点的圆形边。一个例子是将三角形挤出到圆柱体中,然后对结果执行并集以获得如图所示的实体。
当输入边是引用时,点1和点2的坐标是相对于引用的。
"""
def NXOpen.UF.Modeling.AskEdgeVerts(self, edge)'''edge(Tag) 实体面上边(实体边)的tag返回值:一个python元组 (list of float, list of float, int)。0位置-(list of float): 实体边的第一个终点.1位置-(list of float): 实体边的第二个终点.2位置-(int): 返回的终点数量. 如果仅一个终点返回了,那么它在元组的0位置是"第一个终点".'''

1.6 NXOpen.UF.Modeling.AskEdgeType

# 内部和外部模式可用
"""
官方文档翻译:返回实体边类型。查询例程仅返回线性、圆形、椭圆形和样条曲线边的几何数据。
"""
def NXOpen.UF.Modeling.AskEdgeType(self, edge_id)'''edge_id(Tag) 实体面上边(实体边)的tag返回值:一个python int值。#define UF_MODL_LINEAR_EDGE             3001    /* UF_MODL_ask_edge_type */#define UF_MODL_CIRCULAR_EDGE           3002    /* UF_MODL_ask_edge_type */#define UF_MODL_ELLIPTICAL_EDGE         3003    /* UF_MODL_ask_edge_type */#define UF_MODL_INTERSECTION_EDGE       3004    /* UF_MODL_ask_edge_type */#define UF_MODL_SPLINE_EDGE             3005    /* UF_MODL_ask_edge_type */#define UF_MODL_SP_CURVE_EDGE           3006    /* UF_MODL_ask_edge_type */#define UF_MODL_FOREIGN_EDGE            3007    /* UF_MODL_ask_edge_type */#define UF_MODL_CONST_PARAMETER_EDGE    3008    /* UF_MODL_ask_edge_type */#define UF_MODL_TRIMMED_CURVE_EDGE      3009    /* UF_MODL_ask_edge_type */#define UF_MODL_CONVERGENT_EDGE         100007    /* UF_MODL_ask_edge_type */'''

1.7 NXOpen.UF.Modeling.AskFaceType

# 内部和外部模式可用
"""
官方文档翻译:获取实体面的类型
"""
def NXOpen.UF.Modeling.AskFaceType(self, face )'''face (Tag) 实体面的tag返回值:一个python int值。#define UF_MODL_CYLINDRICAL_FACE        16   /* UF_MODL_ask_face_type */#define UF_MODL_CONICAL_FACE            17   /* UF_MODL_ask_face_type */#define UF_MODL_SPHERICAL_FACE          18   /* UF_MODL_ask_face_type */#define UF_MODL_TOROIDAL_FACE           19   /* UF_MODL_ask_face_type */#define UF_MODL_SWEPT_FACE              20   /* UF_MODL_ask_face_type */#define UF_MODL_PLANAR_FACE             22   /* UF_MODL_ask_face_type */#define UF_MODL_BLENDING_FACE           23   /* UF_MODL_ask_face_type */#define UF_MODL_PARAMETRIC_FACE         43   /* UF_MODL_ask_face_type */#define UF_MODL_OFFSET_FACE             65   /* UF_MODL_ask_face_type */#define UF_MODL_FOREIGN_FACE            66   /* UF_MODL_ask_face_type */#define UF_MODL_CONVERGENT_FACE         67   /* UF_MODL_ask_face_type */'''

1.8 NXOpen.UF.Modeling.AskBodyType

# 内部和外部模式可用
"""
官方文档翻译:获取体的类型,在UG中体分为实体(solid body)和片体(sheet body)
"""
def NXOpen.UF.Modeling.AskBodyType(self, body_id)'''body_id(Tag) 体的tag返回值:一个python int值。#define UF_MODL_SOLID_BODY              5601    /* UF_MODL_ask_body_type */#define UF_MODL_SHEET_BODY              5602    /* UF_MODL_ask_body_type */'''

2.示例代码

2.1 pyuf_parse_prt.py

import NXOpen
import NXOpen.UF as UFimport jsondef get_uf_session():# 获取当前UF会话return UF.UFSession.GetUFSession()def get_py_session():# 获取当前UF会话return NXOpen.Session.GetSession()def pyuf_open_prt(the_pyuf_session, open_prt_file_name):"""功能:打开一个指定文件路径和文件名的.prt文件备注:外部模式会报错-NXOpen.NXException: Internal error: memory access violation,内部模式不会,使用python api本身的写法“py_open_prt”打开"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Open方法位于Part类对象中return pyuf_part_instance.Open(open_prt_file_name)def py_open_prt(the_py_session, open_prt_file_name):"""功能:打开一个指定文件路径和文件名的.prt文件返回值:(<NXOpen.Part object at 0x00000180F13DDCC0>, <NXOpen.PartLoadStatus object at 0x00000180F0F3DC70>)"""return the_py_session.Parts.OpenBaseDisplay(open_prt_file_name)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_part_solid_body_tags(the_pyuf_session, part_file_tag):"""功能:获取.prt文件中的所有solidbody实体的tag标识"""pyuf_obj_instance = the_pyuf_session.Objsolid_body_tag_list = []solid_body_tag = 0while True:solid_body_tag = pyuf_obj_instance.CycleObjsInPart(part_file_tag, UF.UFConstants.UF_solid_type, solid_body_tag)if solid_body_tag == 0:breaktype, subtype= pyuf_obj_instance.AskTypeAndSubtype(solid_body_tag)if subtype == 0:solid_body_tag_list.append(solid_body_tag)return solid_body_tag_listdef get_solid_body_face_tags(the_pyuf_session, solid_body_tag):"""功能:获取一个solidbody实体中的所有面的tag标识"""uf_modling_instance = the_pyuf_session.Modelingface_tag_list = uf_modling_instance.AskBodyFaces(solid_body_tag)return face_tag_listdef get_solid_body_face_edge_tags(the_pyuf_session, solid_body_face_tag):"""功能:获取一个实体面中的所有实体边的tag标识"""uf_modling_instance = the_pyuf_session.Modelingedge_tag_list = uf_modling_instance.AskFaceEdges(solid_body_face_tag)return edge_tag_listdef get_solid_body_face_edge_points(the_pyuf_session, solid_body_face_egde_tag):"""功能:获取一个边中的所有点的坐标"""uf_modling_instance = the_pyuf_session.Modelingedge_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_solid_body_face_type(the_pyuf_session, solid_body_face_tag):"""功能:获取一个实体面的类型"""uf_modling_instance = the_pyuf_session.Modelingface_type = uf_modling_instance.AskFaceType(solid_body_face_tag)return face_typedef get_solid_body_edge_type(the_pyuf_session, solid_body_edge_tag):"""功能:获取一个实体边的类型"""uf_modling_instance = the_pyuf_session.Modelingedge_type = uf_modling_instance.AskEdgeType(solid_body_edge_tag)return edge_typedef get_body_type(the_pyuf_session, body_tag):"""功能:获取一个体的类型,在UG中体分为实体(solid body)和片体(sheet body)"""uf_modling_instance = the_pyuf_session.Modelingedge_type = uf_modling_instance.AskBodyType(body_tag)return edge_typedef get_uf_modl_body_string(uf_modl_body_type):"""功能:根据类型标识,获取UG MODL body对象的字符串形式描述,UF_MODL_SOLID_BODY              5601UF_MODL_SHEET_BODY              5602"""if type(uf_modl_body_type) != type(0):return ""if uf_modl_body_type == UF.UFConstants.UF_MODL_SOLID_BODY:return "5601-UF_MODL_SOLID_BODY-Type"elif uf_modl_body_type == UF.UFConstants.UF_MODL_SHEET_BODY:return "5602-UF_MODL_SHEET_BODY-Type"return "00-unknow-ModlEdgeType"def get_uf_modl_face_string(uf_modl_face_type):"""功能:根据类型标识,获取UG MODL face对象的字符串形式描述,UF_MODL_CYLINDRICAL_FACE        16UF_MODL_CONICAL_FACE            17UF_MODL_SPHERICAL_FACE          18UF_MODL_TOROIDAL_FACE           19UF_MODL_SWEPT_FACE              20UF_MODL_PLANAR_FACE             22UF_MODL_BLENDING_FACE           23UF_MODL_PARAMETRIC_FACE         43UF_MODL_OFFSET_FACE             65UF_MODL_FOREIGN_FACE            66UF_MODL_CONVERGENT_FACE         67 """if type(uf_modl_face_type) != type(0):return ""if uf_modl_face_type == UF.UFConstants.UF_MODL_CYLINDRICAL_FACE:return "16-UF_MODL_CYLINDRICAL_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_CONICAL_FACE:return "17-UF_MODL_CONICAL_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_SPHERICAL_FACE:return "18-UF_MODL_SPHERICAL_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_TOROIDAL_FACE:return "19-UF_MODL_TOROIDAL_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_SWEPT_FACE:return "20-UF_MODL_SWEPT_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_PLANAR_FACE:return "22-UF_MODL_PLANAR_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_BLENDING_FACE:return "23-UF_MODL_BLENDING_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_PARAMETRIC_FACE:return "43-UF_MODL_PARAMETRIC_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_OFFSET_FACE:return "65-UF_MODL_OFFSET_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_FOREIGN_FACE:return "66-UF_MODL_FOREIGN_FACE-Type"elif uf_modl_face_type == UF.UFConstants.UF_MODL_CONVERGENT_FACE:return "67-UF_MODL_CONVERGENT_FACE-Type"return "00-unknow-ModlEdgeType"def get_uf_modl_edge_string(uf_modl_edge_type):"""功能:根据类型标识,获取UG MODL Edge对象的字符串形式描述,UF_MODL_LINEAR_EDGE             3001UF_MODL_CIRCULAR_EDGE           3002UF_MODL_ELLIPTICAL_EDGE         3003UF_MODL_INTERSECTION_EDGE       3004UF_MODL_SPLINE_EDGE             3005UF_MODL_SP_CURVE_EDGE           3006UF_MODL_FOREIGN_EDGE            3007UF_MODL_CONST_PARAMETER_EDGE    3008UF_MODL_TRIMMED_CURVE_EDGE      3009UF_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"if __name__ == '__main__':# 获取uf sessionthe_pyuf_session = get_uf_session()# 获取python sessionthe_py_session = get_py_session()# 打开prt文件路径与名称open_prt_file_name = 'D:\\pyuf_parse_prt.prt'# 打开D盘根目录下的示例.prt文件,并成为工作prt(work part)# 如果是在内部模式运行,则会在NX/UG界面打开一个名为pyuf_parse_prt_test.prt的文件窗口open_prt_file_python_instance = py_open_prt(the_py_session, open_prt_file_name)open_prt_file_uf_tag = open_prt_file_python_instance[0].Tagprint(open_prt_file_python_instance)# 外部模式运行,会在命令行中打印,但内部模式运行则无反应,因在UF.UI类中操作,才可在NX/UG界面显示数据# 由于与NX/UG界面UI操作的方法都在UI类中,因此先获取UF.UI示例对象pyuf_ui_instance = the_pyuf_session.Ui# 判断信息窗口是否打开if pyuf_ui_instance.IsListingWindowOpen() == False:# 信息窗口未打开,先要将其打开# 打开信息窗口pyuf_ui_instance.OpenListingWindow()# 向信息窗口写入内容pyuf_ui_instance.WriteListingWindow('\nopen_prt_file_name is:' + str(open_prt_file_name))pyuf_ui_instance.WriteListingWindow('\nopen_prt_file_tag type is:' + str(type(open_prt_file_uf_tag)))pyuf_ui_instance.WriteListingWindow('\nopen_prt_file_tag is:{}'.format(open_prt_file_uf_tag))part_data = dict()solid_body_tag_list = get_part_solid_body_tags(the_pyuf_session, open_prt_file_uf_tag)for item_solid_body_tag in solid_body_tag_list:item_solid_body_face_tag_list = get_solid_body_face_tags(the_pyuf_session, item_solid_body_tag)item_solid_body_type = get_body_type(the_pyuf_session, item_solid_body_tag)temp_face_data_dict = dict()for item_solid_body_face_tag in item_solid_body_face_tag_list:item_solid_body_face_edge_tag_list = get_solid_body_face_edge_tags(the_pyuf_session, item_solid_body_face_tag)item_solid_body_face_type = get_solid_body_face_type(the_pyuf_session, item_solid_body_face_tag)temp_edge_data_dict = dict()for item_solid_body_face_edge_tag in item_solid_body_face_edge_tag_list:item_solid_body_face_edge_points_data = get_solid_body_face_edge_points(the_pyuf_session, item_solid_body_face_edge_tag)temp_edge_data_dict[str(item_solid_body_face_edge_tag)] = str(item_solid_body_face_edge_points_data)temp_face_data_dict[str(item_solid_body_face_tag)] = temp_edge_data_dicttemp_face_data_dict[str(item_solid_body_face_tag)]["face_type"] = get_uf_modl_face_string(item_solid_body_face_type)part_data[str(item_solid_body_tag)] = temp_face_data_dictpart_data[str(item_solid_body_tag)]["body_type"] = get_uf_modl_body_string(item_solid_body_type)print(part_data)f = open("tttt.json", "w")f.write(json.dumps(part_data))f.close()pyuf_ui_instance.WriteListingWindow("{}".format(json.dumps(part_data)))# 将信息窗口的内容保存到指定文件中pyuf_ui_instance.SaveListingWindow('D:\\pyuf_listingwindow_content_test.txt')# 关闭信息窗口#pyuf_ui_instance.ExitListingWindow()

3.运行结果

3.1 内部模式

选中要运行的.py文件后,点击“管道通路”即可。

在这里插入图片描述

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

3.2 外部模式

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RISC-V特权架构 - 机器模式下的异常处理

RISC-V特权架构 - 机器模式下的异常处理 1 进入异常1.1 从mtvec 定义的PC 地址开始执行1.2 更新CSR 寄存器mcause1.3 更新CSR 寄存器mepc1.4 更新CSR 寄存器mtval1.5 更新CSR 寄存器mstatus 2 退出异常2.1 从mepc 定义的PC 地址开始执行2.2 更新CSR 寄存器mstatus 3 异常服务程…

Android Tombstone 分析

1.什么是tombstone Tombstone是指在分布式系统中用于标记数据已被删除的记录&#xff0c;通常包含删除操作的时间戳和相关信息。 当一个动态库&#xff08;native程序&#xff09;开始执行时&#xff0c;系统会注册一些连接到 debuggerd 的signal handlers。当系统发生崩溃时…

Spark Shuffle Tracking 原理分析

Shuffle Tracking Shuffle Tracking 是 Spark 在没有 ESS(External Shuffle Service)情况&#xff0c;并且开启 Dynamic Allocation 的重要功能。如在 K8S 上运行 spark 没有 ESS。本文档所有的前提都是基于以上条件的。 如果开启了 ESS&#xff0c;那么 Executor 计算完后&a…

MySQL 表的基本操作,结合项目的表自动初始化来讲

有了数据库以后&#xff0c;我们就可以在数据库中对表进行增删改查了&#xff0c;这也就意味着&#xff0c;一名真正的 CRUD Boy 即将到来&#xff08;&#x1f601;&#xff09;。 查表 查看当前数据库中所有的表&#xff0c;使用 show tables; 命令 由于当前数据库中还没有…

基于Python3的数据结构与算法 - 09 希尔排序

一、引入 希尔排序是一种分组插入排序的算法。 二、排序思路 首先取一个整数d1 n/2&#xff0c;将元素分为d1个组&#xff0c;每组相邻量取元素距离为d1&#xff0c;在各组内直接进行插入排序&#xff1b;取第二个整数d2 d1/2&#xff0c; 重复上述分组排序过程&#xff0…

CSS 自测题 -- 用 flex 布局绘制骰子(一、二、三【含斜三点】、四、五、六点)

一点 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>css flex布局-画骰子</title><sty…

Unity 切换场景

场景切换前必须要将场景拖动到Build中 同步加载场景 using System.Collections; using System.Collections.Generic; //using UnityEditor.SearchService; using UnityEngine; // 场景管理 需要导入该类 using UnityEngine.SceneManagement;public class c3 : MonoBehaviour {…

redis五大基础类型【重点】

之前写过一点小知识&#xff1a;https://blog.csdn.net/qq_45927881/article/details/134959181?spm1001.2014.3001.5501 参考链接 https://xiaolincoding.com/redis/data_struct/command.html#%E4%BB%8B%E7%BB%8D 目录 1. string&#xff08;字符串&#xff09;2. Hash&#…

MySql安全加固:配置不同用户不同账号禁止使用旧密码禁止MySql进程管理员权限

MySql安全加固&#xff1a;配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限 1.1 检查是否配置不同用户不同账号1.2 检查是否禁止使用旧密码1.3 禁止MySql进程管理员权限 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496…

【c++】通讯录管理系统

1.系统功能介绍及展示 2.创建项目 3.菜单实现 4.退出功能实现 5.添加联系人—结构体设计 6.添加联系人—功能实现 7.显示联系人 8.删除练习人—检测联系人是否存在 9.删除联系人—功能实现 10.查找联系人 11.修改联系人 12.清空通讯录 #include <iostream> #include <…

什么是VR虚拟社区|VR元宇宙平台|VR主题馆加盟

VR虚拟社区是指一种基于虚拟现实技术构建的在线社交平台或环境&#xff0c;用户可以在其中创建虚拟化的个人形象&#xff08;也称为avatars&#xff09;并与其他用户进行交流、互动和合作。在VR虚拟社区中&#xff0c;用户可以选择不同的虚拟场景和环境&#xff0c;如虚拟公园、…

fly-barrage 前端弹幕库(3):滚动弹幕的设计与实现

项目官网地址&#xff1a;https://fly-barrage.netlify.app/&#xff1b; &#x1f451;&#x1f40b;&#x1f389;如果感觉项目还不错的话&#xff0c;还请点下 star &#x1f31f;&#x1f31f;&#x1f31f;。 Gitee&#xff1a;https://gitee.com/fei_fei27/fly-barrage&a…

显示器开机正常,插入HDMI线却不显示画面,换了HDMI线还是不行?

环境&#xff1a; 惠普/P24VG4 DELL笔记本 问题描述&#xff1a; 显示器开机正常&#xff0c;插入HDMI线却不显示画面&#xff0c;换了HDMI线还是不行&#xff0c;是不是显示器坏了&#xff1f; 解决方案&#xff1a; 1.前往显示器设置菜单里面查看input 2.把输入源默认设…

二百二十五、海豚调度器——用DolphinScheduler调度执行Flume数据采集任务

一、目的 数仓的数据源是Kafka&#xff0c;因此离线数仓需要用Flume采集Kafka中的数据到HDFS中 在实际项目中&#xff0c;不可能一直在Xshell中启动Flume任务&#xff0c;一是项目的Flume任务很多&#xff0c;二是一旦Xshell页面关闭Flume任务就会停止&#xff0c;这样非常不…

案例研究|DataEase助力众陶联应对产业链数据可视化挑战

佛山众陶联供应链服务有限公司&#xff08;以下简称为“众陶联”&#xff09;成立于2016年&#xff0c;是由34家陶瓷企业共同创办的建陶行业工业互联网平台&#xff0c;股东产值占整个行业的22.5%。众陶联以数据赋能为核心&#xff0c;积极探索新的交易和服务模式&#xff0c;构…

帝国cms7.5仿非小号区块链门户资讯网站源码 带手机版

帝国cms7.5仿非小号区块链门户资讯网站源码 带手机版 带自动采集 开发环境&#xff1a;帝国cms 7.5 安装环境&#xff1a;phpmysql 包含火车头采集规则和模块&#xff0c;采集目标站非小号官网。 专业的数字货币大数据平台模板&#xff0c;采用帝国cms7.5内核仿制&#xff0…

Ai-WB2-32S在window下使用vs 和 msys2编译以及烧录

文章目录 前言一、使用前准备第一步 安装vscode第二步 安装msys2 二、使用步骤1.打开MSYS2 MINGW64&#xff08;1&#xff09;在开始栏中找到MSYS2 MINGW64并打开&#xff08;2&#xff09;安装git&#xff08;3&#xff09;安装make&#xff08;4&#xff09;安装好之后的文件…

Redis 之五:Redis 的主从复制

概念 主从复制&#xff0c;是指将一台 Redis 服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(master)&#xff0c;后者称为从节点(slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。 默认情况下&#xff0c;每台Redis服务器都是主节…

云天励飞战略投资神州云海,布局机器人市场

日前,AI上市企业云天励飞(688343.SH)完成了对深圳市神州云海智能科技有限公司(以下简称“神州云海”)的B轮战略投资。 公开资料显示,自2015年于深圳创立以来,神州云海始终聚焦人工智能与服务机器人广阔的应用市场,依托自主的核心算法能力,深耕机器人硬件本体研发,整合上下游产…

RabbitMQ-TTL/死信队列/延迟队列高级特性

文章目录 TTL死信队列消息成为死信的三种情况队列如何绑定死信交换机 延迟队列RabbitMQ如何实现延迟队列 总结来源B站黑马程序员 TTL TTLTTL(Time To Live):存活时间/过期时间当信息到达存活时间后&#xff0c;还没有被消费&#xff0c;会被自动清除。RabbitMQ可以对消息设置过…