framework/asp/main.py

49 lines
1.8 KiB
Python
Raw Normal View History

import argparse
import shutil
from helper.fs import FS
2023-04-24 19:42:48 +00:00
from src.usecases.urdf_sub_assembly_usecase import UrdfSubAssemblyUseCase
2023-07-02 19:34:15 +03:00
# from src.usecases.sdf_generate_world_usecase import SdfGenerateWorldUseCase
2023-04-24 19:42:48 +00:00
from src.model.sdf_geometry import GeometryModel
from src.usecases.sdf_sub_assembly_usecase import SdfSubAssemblyUseCase
import os
2023-04-24 19:42:48 +00:00
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')
2023-04-24 19:42:48 +00:00
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:
2023-04-24 19:42:48 +00:00
geometryModels.append(GeometryModel.from_dict(
FS.readJSON(args.generationFolder + '/assets/' + el)))
if os.path.exists(outPath + 'sdf-generation/'):
shutil.rmtree(path=outPath + 'sdf-generation/')
2023-04-24 19:42:48 +00:00
if (args.format == 'sdf'):
SdfSubAssemblyUseCase().call(
geometryModels=geometryModels, assembly=assemblyStructure,
world=args.world,
generationFolder=args.generationFolder,
outPath=args.outPath
)
2023-07-02 19:34:15 +03:00
if (args.format == 'urdf'):
2023-04-24 19:42:48 +00:00
UrdfSubAssemblyUseCase().call(
geometryModels=geometryModels, assembly=assemblyStructure,
world=args.world,
generationFolder=args.generationFolder,
outPath=args.outPath
)