49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from usecases.export_assembly_them_all_usecase import ExportAssemblyThemAllUseCase
|
|
import FreeCAD
|
|
from usecases.export_usecase import EXPORT_TYPES, ExportUseCase
|
|
from usecases.get_sdf_geometry_usecase import SdfGeometryUseCase
|
|
from usecases.assembly_parse_usecase import AssemblyParseUseCase
|
|
from model.files_generator import FolderGenerator
|
|
from helper.file_system_repository import FileSystemRepository
|
|
import os
|
|
|
|
|
|
class RobossemblerFreeCadExportScenari:
|
|
def call(path):
|
|
directory = path
|
|
|
|
__objs__ = FreeCAD.ActiveDocument.RootObjects
|
|
directoryExport = directory + "/"
|
|
FileSystemRepository.deletingOldAndCreatingNewFolder(
|
|
directoryExport + FolderGenerator.ASSETS.value
|
|
)
|
|
FileSystemRepository.deletingOldAndCreatingNewFolder(
|
|
directoryExport + FolderGenerator.SDF.value,
|
|
)
|
|
|
|
FileSystemRepository.deletingOldAndCreatingNewFolder(
|
|
directoryExport
|
|
+ FolderGenerator.SDF.value
|
|
+ "/"
|
|
+ FolderGenerator.MESHES.value
|
|
)
|
|
FileSystemRepository.deletingOldAndCreatingNewFolder(
|
|
directoryExport + FolderGenerator.ASSEMBlY.value
|
|
)
|
|
f = open(directory + "/step-structure.json", "w")
|
|
f.write(AssemblyParseUseCase().toJson())
|
|
f.close()
|
|
RobossemblerFreeCadExportScenari.geometry(directory)
|
|
ExportAssemblyThemAllUseCase().call(directoryExport)
|
|
|
|
return True
|
|
|
|
def geometry(outPutsPath: str):
|
|
exportUseCase = ExportUseCase.call(outPutsPath, EXPORT_TYPES.OBJ)
|
|
|
|
for el in SdfGeometryUseCase().call(exportUseCase):
|
|
FileSystemRepository.writeFile(
|
|
el.toJSON(),
|
|
outPutsPath + FolderGenerator.ASSETS.value + "/",
|
|
el.name + ".json",
|
|
)
|