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.pswp.cn/news/713354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713354.shtml
英文地址,請注明出處:http://en.pswp.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。當系統發生崩潰時…

wpa_supplicant與用戶態程序的交互分析

1 wpa_supplicant與用戶態程序wpa_cli的交互過程 1.1 交互接口類型 wpa_supplicant與用戶態程序交互的主要接口包括以下幾種&#xff1a; 1&#xff09;命令行界面&#xff1a;通過命令行工具 wpa_cli 可以與 wpa_supplicant 進行交互。wpa_cli 允許用戶執行各種 wpa_suppli…

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…

Angular 2 中的樣式綁定和 NgStyle

在 Angular 2 模板中綁定內聯樣式很容易。以下是一個綁定單個樣式值的示例&#xff1a; 你還可以指定單位&#xff0c;例如在這里我們將單位設置為 em&#xff0c;但也可以使用 px、% 或 rem&#xff1a; <p [style.font-size.em]"3">A paragraph at 3em! &l…

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…

vue3 滾動條觸底監聽

問題&#xff1a;指定區域內&#xff0c;顯示返回的數據&#xff0c;要求先顯示20條&#xff0c;區域超出部分滾動顯示&#xff0c;對滾動條進行監聽&#xff0c;滾動條觸底后&#xff0c;繼續顯示下20條... 解決過程&#xff1a; 1.在區域的div上&#xff0c;添加scroll事件…

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;構…

ant-design-vue如何限制圖片上傳的尺寸?

handleBeforeUpload(file, fileList) {// fileList 只包含了當次上傳的文件列表&#xff0c;不包含已上傳的文件列表// 所以長度要加上已上傳的文件列表的長度const isLimit this.fileList.length fileList.length > this.limit;const indexOfFile fileList.findIndex(it…

C++ STL 之容器 vector 常見用法

一. 什么是vector vector為“變長數組”&#xff0c;即長度根據需要而自動改變的數組。 頭文件&#xff1a; #include <vector>using namespace std;單獨定義一個vector&#xff1a;vector<typename> name&#xff0c;相當于一維數組 name[SIZE] &#xff0c;其長…