framework/asp/main.py

54 lines
1.9 KiB
Python
Raw Normal View History

import argparse
import shutil
from src.model.enum import Enum
from helper.fs import FS
2023-04-24 19:42:48 +00:00
from src.usecases.urdf_sub_assembly_usecase import UrdfSubAssemblyUseCase
from src.model.sdf_geometry import GeometryModel
from src.usecases.sdf_sub_assembly_usecase import SdfSubAssemblyUseCase
import os
from pathlib import Path
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--generationFolder", help="FreeCad generation folder")
parser.add_argument("--outPath", help="save SDF path")
parser.add_argument("--world", help="adding sdf world")
parser.add_argument("--format", help="urdf,sdf,mujoco")
args = parser.parse_args()
if args.generationFolder == None or args.outPath == None:
parser.print_help()
outPath = args.outPath
geometryFiles = FS.readFilesTypeFolder(args.generationFolder + "/assets/")
assemblyStructure = FS.readJSON(args.generationFolder + "/step-structure.json")
2023-04-24 19:42:48 +00:00
geometryModels: list[GeometryModel] = []
for el in geometryFiles:
geometryModels.append(
GeometryModel.from_dict(
FS.readJSON(args.generationFolder + "/assets/" + el)
)
)
if os.path.exists(outPath + Enum.folderPath):
shutil.rmtree(outPath + Enum.folderPath)
Path(outPath + Enum.folderPath).mkdir(parents=True, exist_ok=True)
if args.format == "sdf":
2023-04-24 19:42:48 +00:00
SdfSubAssemblyUseCase().call(
geometryModels=geometryModels,
assembly=assemblyStructure,
2023-04-24 19:42:48 +00:00
world=args.world,
generationFolder=args.generationFolder,
outPath=args.outPath,
2023-04-24 19:42:48 +00:00
)
if args.format == "urdf":
2023-04-24 19:42:48 +00:00
UrdfSubAssemblyUseCase().call(
geometryModels=geometryModels,
assembly=assemblyStructure,
2023-04-24 19:42:48 +00:00
world=args.world,
generationFolder=args.generationFolder,
outPath=args.outPath,
2023-04-24 19:42:48 +00:00
)