1 changed files with 66 additions and 0 deletions
@ -0,0 +1,66 @@ |
|||||
|
import os |
||||
|
import subprocess |
||||
|
from tqdm import tqdm |
||||
|
|
||||
|
# 使用一个 c++ 程序处理,这里只是调用,注意要在docker里面运行。宿主机编译失败 |
||||
|
|
||||
|
def main(): |
||||
|
# 定义 STEP 文件目录和名称列表文件路径 |
||||
|
output_data_root_dir = "/workspace/home/wch/brep2sdf/data/output_data" |
||||
|
name_list_path = "/workspace/home/wch/brep2sdf/data/name_list.txt" |
||||
|
|
||||
|
# 读取名称列表 |
||||
|
try: |
||||
|
with open(name_list_path, 'r') as f: |
||||
|
names = [line.strip() for line in f if line.strip()] # 去除空行 |
||||
|
except FileNotFoundError: |
||||
|
print(f"Error: File '{name_list_path}' not found.") |
||||
|
return |
||||
|
except Exception as e: |
||||
|
print(f"Error reading file '{name_list_path}': {e}") |
||||
|
return |
||||
|
|
||||
|
# 遍历名称列表并处理每个 STEP 文件 |
||||
|
for name in tqdm(names, desc="ISOsurfing pt files"): |
||||
|
pt_file = os.path.join(output_data_root_dir, f"{name}.pt") |
||||
|
|
||||
|
if not pt_file: |
||||
|
print(f"Warning: No pt files found in directory '{output_data_root_dir}'. Skipping...") |
||||
|
continue |
||||
|
|
||||
|
|
||||
|
# ./ISG_console_pytorch -i ./test/teaser.pt -o outputmesh.ply -v -0.01 -d 8 |
||||
|
# 构造子进程命令 |
||||
|
command = [ |
||||
|
"python", "/workspace/home/wch/brep2sdf/data/scripts/IsoSurfacing/build/App/console_pytorch/ISG_console_pytorch", |
||||
|
"-i", pt_file, # 使用当前遍历的pt文件 |
||||
|
"-o", os.path.join(output_data_root_dir, f"{name}_outputmesh.ply"), # 动态生成输出文件路径 |
||||
|
"-v", "-0.01", "-d", "8" |
||||
|
] |
||||
|
|
||||
|
# 调用子进程运行命令 |
||||
|
try: |
||||
|
result = subprocess.run( |
||||
|
command, |
||||
|
capture_output=True, |
||||
|
text=True, |
||||
|
check=True # 如果返回非零退出码,则抛出 CalledProcessError |
||||
|
) |
||||
|
print(f"Successfully processed '{name}'") |
||||
|
print("STDOUT:", result.stdout) |
||||
|
print("STDERR:", result.stderr) |
||||
|
except subprocess.CalledProcessError as e: |
||||
|
print(f"Error processing '{name}': Command failed with return code {e.returncode}") |
||||
|
print(f"Command: {e.cmd}") |
||||
|
print(f"Error type: {type(e).__name__}") |
||||
|
print("STDOUT:", e.stdout) |
||||
|
print("STDERR:", e.stderr) |
||||
|
print("Traceback:", e.__traceback__) |
||||
|
except Exception as e: |
||||
|
print(f"Unexpected error processing '{name}': {str(e)}") |
||||
|
print(f"Command: {command}") |
||||
|
print("Traceback:", traceback.format_exc()) |
||||
|
|
||||
|
|
||||
|
if __name__ == '__main__': |
||||
|
main() |
Loading…
Reference in new issue