| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -14,32 +14,8 @@ from tqdm import tqdm  # 进度条显示 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					from concurrent.futures import ProcessPoolExecutor, as_completed, TimeoutError  # 并行处理 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import logging | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					from datetime import datetime | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					from brep2sdf.utils.logger import setup_logger | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 创建logs目录 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					os.makedirs('logs', exist_ok=True) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 设置日志记录器 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger = logging.getLogger(__name__) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger.setLevel(logging.INFO) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 创建格式化器 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 创建文件处理器 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					current_time = datetime.now().strftime('%Y%m%d_%H%M%S') | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					log_file = f'logs/process_brep_{current_time}.log' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					file_handler = logging.FileHandler(log_file, encoding='utf-8') | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					file_handler.setLevel(logging.INFO) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					file_handler.setFormatter(formatter) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 添加文件处理器到日志记录器 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger.addHandler(file_handler) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 记录脚本开始执行 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger.info("="*50) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger.info("Script started") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger.info(f"Log file: {log_file}") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger.info("="*50) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 导入OpenCASCADE相关库 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					from OCC.Core.STEPControl import STEPControl_Reader  # STEP文件读取器 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -54,6 +30,9 @@ from OCC.Core.BRepBndLib import brepbndlib  # 包围盒计算 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					from OCC.Core.Bnd import Bnd_Box  # 包围盒 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					from OCC.Core.TopoDS import TopoDS_Shape, topods, TopoDS_Vertex  # 拓扑数据结构 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 设置日志记录器 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					logger = setup_logger('process_brep') | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					# 设置最大面数阈值,用于加速处理 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					MAX_FACE = 70 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -438,8 +417,8 @@ def main(): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    """ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # 定义路径常量 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    INPUT = '/mnt/disk2/dataset/furniture/step/furniture_dataset_step/' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    OUTPUT = 'test_data/pkl/' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    RESULT = 'test_data/result/'  # 用于存储成功/失败文件记录 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    OUTPUT = '../test_data/pkl/' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    RESULT = '../test_data/result/'  # 用于存储成功/失败文件记录 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # 确保输出目录存在 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    os.makedirs(OUTPUT, exist_ok=True) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -516,5 +495,5 @@ def main(): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.warning("No files were processed") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					if __name__ == '__main__': | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    #main() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    test("/mnt/disk2/dataset/furniture/step/furniture_dataset_step/train/bathtub_0004.step", "/home/wch/brep2sdf/test_data/pkl/train/bathtub_0004.pkl") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    main() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    #test("/mnt/disk2/dataset/furniture/step/furniture_dataset_step/train/bathtub_0004.step", "/home/wch/brep2sdf/test_data/pkl/train/bathtub_0004.pkl") | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |