From ca0df838a21646c02ab69f7975bae8bedeee401f Mon Sep 17 00:00:00 2001 From: MarkVoltov Date: Sun, 1 Dec 2024 22:05:03 +0300 Subject: [PATCH] solve optimizer --- .../freecad/robossembler/DatumCommand.py | 49 ---- .../freecad/robossembler/asm_main.py | 28 +++ .../robossembler/assembly_graph_generation.py | 3 +- .../robossembler/constraints_operator.py | 44 ++++ .../geometric_feasibility_predicate/env.json | 4 +- .../geometric_feasibility_predicate/main.py | 98 ++++---- .../freecad/robossembler/get_sequences.py | 44 ++-- .../robossembler/graph_visualisation.py | 2 +- .../simplified_adjacency_matrix.json | 76 ++++++ .../freecad/robossembler/solve_optimizer.py | 222 ++++++++++-------- .../freecad/robossembler/valid_sequences.json | 1 + .../freecad/robossembler/valid_sequences.py | 37 +-- test_models/ ajacency_matrix.json | 5 - test_models/adjacency_matrix.json | 101 ++++++++ test_models/intersection_geometry.json | 4 + test_models/sequences.json | 9 +- test_models/test_reductor.FCStd | Bin 69460 -> 63957 bytes 17 files changed, 491 insertions(+), 236 deletions(-) delete mode 100644 freecad_workbench/freecad/robossembler/DatumCommand.py create mode 100644 freecad_workbench/freecad/robossembler/asm_main.py create mode 100644 freecad_workbench/freecad/robossembler/simplified_adjacency_matrix.json create mode 100644 freecad_workbench/freecad/robossembler/valid_sequences.json delete mode 100644 test_models/ ajacency_matrix.json create mode 100644 test_models/adjacency_matrix.json create mode 100644 test_models/intersection_geometry.json diff --git a/freecad_workbench/freecad/robossembler/DatumCommand.py b/freecad_workbench/freecad/robossembler/DatumCommand.py deleted file mode 100644 index a7db4fd..0000000 --- a/freecad_workbench/freecad/robossembler/DatumCommand.py +++ /dev/null @@ -1,49 +0,0 @@ -import FreeCAD -import FreeCADGui -from PySide import QtGui, QtCore - -class DatumTool: - """ - A tool for creating datums in existing models - """ - def __init__(self): - self.active = False - - def activate(self): - self.active = True - FreeCAD.Console.PrintMessage("Datum tool activatedn") - - def deactivate(self): - self.active = False - FreeCAD.Console.PrintMessage("Datum tool deactivatedn") - - def mousePressEvent(self, event): - if self.active: - # Create a datum at the position of the mouse click - pos = FreeCADGui.ActiveDocument.ActiveView.getCursorPos() - point = FreeCADGui.ActiveDocument.ActiveView.getPoint(pos) - datum = FreeCAD.ActiveDocument.addObject("Part::Datum", "Datum") - datum.Placement.Base = point - datum.ViewObject.ShapeColor = (0.0, 1.0, 0.0) # Set the color of the datum to green - FreeCAD.ActiveDocument.recompute() - -class DatumCommand: - """ - A command for activating and deactivating the datum tool - """ - def __init__(self): - self.tool = DatumTool() - - def Activated(self): - self.tool.activate() - FreeCADGui.ActiveDocument.ActiveView.addEventCallback("SoMouseButtonEvent", self.tool.mousePressEvent) - - def Deactivated(self): - self.tool.deactivate() - FreeCADGui.ActiveDocument.ActiveView.removeEventCallback("SoMouseButtonEvent", self.tool.mousePressEvent) - - def GetResources(self): - return {'Pixmap': 'path/to/icon.png', 'MenuText': 'Datum Tool', 'ToolTip': 'Creates datum elements in existing models'} - -# Add the command to the Draft Workbench -FreeCADGui.addCommand('DatumCommand', DatumCommand()) \ No newline at end of file diff --git a/freecad_workbench/freecad/robossembler/asm_main.py b/freecad_workbench/freecad/robossembler/asm_main.py new file mode 100644 index 0000000..15f7fb1 --- /dev/null +++ b/freecad_workbench/freecad/robossembler/asm_main.py @@ -0,0 +1,28 @@ +import FreeCAD as App +from .geometric_feasibility_predicate.main import main as asm_analysis +from get_sequences import process_adjacency_data +from valid_sequences import filter_valid_sequences +from solve_optimizer import restore_full_sequence # Убедитесь, что эта функция импортирована +from constraints_operator import collect_assembly_settings + +def main(flag): + # Выполняем анализ сборки и получаем необходимые данные + #flag используется для того, чтобы выбирать между обычным и оптимизированным вариантом работы + intersection_geometry, sequences, topologyMatrix = asm_analysis() + adjacency_matrix = topologyMatrix.matrix + assembly_settings = collect_assembly_settings() + + # Упрощаем матрицу смежности + if flag: + simplified_matrix = simplify_adjacency_matrix(assembly_settings, adjacency_matrix) + all_parts, graph, first_detail, leaf_nodes, all_sequences = process_adjacency_data(simplified_matrix) + else: + all_parts, graph, first_detail, leaf_nodes, all_sequences = process_adjacency_data(adjacency_matrix) + + # Фильтруем допустимые последовательности + valid_sequences = filter_valid_sequences(adjacency_matrix, sequences, assembly_settings) + full_sequence = restore_full_sequence(assembly_settings, all_sequences) + + return full_sequence + +main() \ No newline at end of file diff --git a/freecad_workbench/freecad/robossembler/assembly_graph_generation.py b/freecad_workbench/freecad/robossembler/assembly_graph_generation.py index 8265ac4..117fe27 100644 --- a/freecad_workbench/freecad/robossembler/assembly_graph_generation.py +++ b/freecad_workbench/freecad/robossembler/assembly_graph_generation.py @@ -35,8 +35,9 @@ def draw_graph(G): plt.show() def main(): - sequence = load_assembly_sequence('assembly_sequence.json') + sequence = load_assembly_sequence('/home/markvoltov/GitProjects/framework/test_models/adjacency_matrix.json') assembly_graph = create_assembly_graph(sequence) draw_graph(assembly_graph) +# main() diff --git a/freecad_workbench/freecad/robossembler/constraints_operator.py b/freecad_workbench/freecad/robossembler/constraints_operator.py index 0006731..d103a2b 100644 --- a/freecad_workbench/freecad/robossembler/constraints_operator.py +++ b/freecad_workbench/freecad/robossembler/constraints_operator.py @@ -135,6 +135,50 @@ def export_assembly_settings(): with open(save_path, "w") as f: json.dump(data, f, indent=4) +#для работы с данными как с переменной +def collect_assembly_settings(): + doc = App.activeDocument() + if not doc: + return None + + assembly_settings_folder = None + for obj in doc.Objects: + if obj.Name == "Assembly_Settings": + assembly_settings_folder = obj + break + + if not assembly_settings_folder: + return None + + assembly_settings = [] + for obj in assembly_settings_folder.Group: + if hasattr(obj, "Type"): + obj_dict = {"Name": obj.Name} + if obj.Type == "fastener_set": + fasteners = [part.Label for part in obj.Fasteners] + obj_dict.update({ + "Type": "fastener_set", + "Parent": obj.Parent.Label, + "Child": obj.Child.Label, + "Fasteners": fasteners + }) + elif obj.Type == "asm_sequence": + obj_dict.update({ + "Type": "asm_sequence", + "Parent": obj.Parent.Label, + "Child": obj.Child.Label + }) + elif obj.Type == "clearance": + partnames = [part.Label for part in obj.PartName] + obj_dict.update({ + "Type": "clearance", + "PartName": partnames, + "MaxClearance": obj.MaxClearance + }) + assembly_settings.append(obj_dict) + + return assembly_settings + # create_fastener_set() # create_assembly_sequence() # create_clearance_constraint() diff --git a/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/env.json b/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/env.json index 0780dea..11727f3 100644 --- a/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/env.json +++ b/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/env.json @@ -1,5 +1,5 @@ { - "cadFilePath": "path/to/file", - "outPath": "out/path", + "cadFilePath": "/home/markvoltov/GitProjects/framework/test_models/test_reductor.FCStd", + "outPath": "/home/markvoltov/GitProjects/framework/test_models/", "objectIndentation": 0 } diff --git a/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/main.py b/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/main.py index 888c6ec..e449a6c 100644 --- a/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/main.py +++ b/freecad_workbench/freecad/robossembler/geometric_feasibility_predicate/main.py @@ -120,7 +120,7 @@ class AllSequences: for el in v: adj[inc][el - 1] = 1 inc += 1 - return self.find_all_sequences(adj) + self.find_all_sequences(adj) class VectorModel: @@ -580,8 +580,8 @@ class CadAdjacencyMatrix: collisionResult: int = int( part.Shape.distToShape(nextPart.Shape)[0] ) - print(collisionResult) - print("collisionResult") + # print(collisionResult) + # print("collisionResult") if collisionResult == 0: matrix[part.Label].append(nextPart.Label) @@ -708,68 +708,82 @@ class ExitFreeCadUseCase: # FreeCadRepository().obj # pass +#функция, проверяющая, открывается ли программа через консоль или через верстак freecad. +def get_paths(): + if 'FreeCAD' in globals(): + active_doc = FreeCAD.activeDocument() + if active_doc: + cadFilePath = active_doc.FileName + outPath = os.path.dirname(cadFilePath) + else: + raise Exception("Нет активного документа в FreeCAD.") + else: + with open('env.json', 'r', encoding='utf-8') as file: + env_data = json.load(file) + cadFilePath = env_data.get('cadFilePath') + outPath = env_data.get('outPath') + if not cadFilePath or not outPath: + raise Exception("Не найдены cadFilePath или outPath в env.json.") + + return cadFilePath, outPath + def main(): - env = FS.readJSON("env.json") - cadFilePath = str(env["cadFilePath"]) - outPath = str(env["outPath"]) - objectIndentation = float(env["objectIndentation"]) + if 'FreeCAD' in globals(): + active_doc = FreeCAD.activeDocument() + if active_doc: + cadFilePath = active_doc.FileName + outPath = os.path.dirname(cadFilePath) + else: + # raise Exception("Нет активного документа в FreeCAD.") + # else: + env = FS.readJSON("env.json") + print(env) + cadFilePath = str(env["cadFilePath"]) + outPath = str(env["outPath"]) + objectIndentation = float(env["objectIndentation"]) - if cadFilePath == None: - return TypeError("CadFile not found env.json") - App.open("" + cadFilePath) + if cadFilePath == None: + return TypeError("CadFile not found env.json") + App.open("" + cadFilePath) - # isAllObjectSolidsCheckUseCase = IsAllObjectSolidsCheckUseCase.call() + isAllObjectSolidsCheckUseCase = IsAllObjectSolidsCheckUseCase.call() - # if isAllObjectSolidsCheckUseCase != None: - # FS.writeFile(isAllObjectSolidsCheckUseCase.toString(), outPath, 'error.json') - # ExitFreeCadUseCase.call() - # return + if isAllObjectSolidsCheckUseCase != None: + FS.writeFile(isAllObjectSolidsCheckUseCase.toString(), outPath, 'error.json') + ExitFreeCadUseCase.call() + return + + FreeCAD.open(cadFilePath) + - # checkObjectHasTouchesUseCase = CheckObjectHasTouchesUseCase.call(objectIndentation) - - # if checkObjectHasTouchesUseCase != None: - # FS.writeFile(checkObjectHasTouchesUseCase.toString(), outPath, 'error.json') - # ExitFreeCadUseCase.call() - # return topologyMatrix = CadAdjacencyMatrix().matrixBySurfaces() - import json - sequences = json.dumps( - {"sequences": AllSequences(topologyMatrix.matrix).adj_matrix_names}, - ensure_ascii=False, - indent=4, - ) + sequences = { + "sequences": AllSequences(topologyMatrix.matrix).adj_matrix_names + } matrix = topologyMatrix.matrix contacts = matrixGetUniqueContact(matrix) intersection_geometry = {"status": True, "recalculations": None} + for el in contacts: child = App.ActiveDocument.getObjectsByLabel(el.get("child"))[0] parent = App.ActiveDocument.getObjectsByLabel(el.get("parent"))[0] area = IntersectionComputedUseCase.call([child, parent]) if area != 0.0: - if intersection_geometry.get("recalculations") == None: + if intersection_geometry.get("recalculations") is None: intersection_geometry["status"] = False intersection_geometry["recalculations"] = [] intersection_geometry["recalculations"].append( {"area": area, "connect": el.get("child") + " " + el.get("parent")} ) + # print(intersection_geometry, sequences, topologyMatrix.to_dict()) + return intersection_geometry, sequences, topologyMatrix.to_dict() - FS.writeFile( - json.dumps(intersection_geometry, ensure_ascii=False, indent=4), - outPath, - "intersection_geometry.json", - ) - FS.writeFile(sequences, outPath, "sequences.json") - - FS.writeFile( - json.dumps(topologyMatrix.to_dict(), ensure_ascii=False, indent=4), - outPath, - "adjacency_matrix.json", - ) - ExitFreeCadUseCase.call() + # ExitFreeCadUseCase.call() Сейчас пока не нужна + # return intersection_geometry, sequences, topologyMatrix.to_dict() -#main() +# main() diff --git a/freecad_workbench/freecad/robossembler/get_sequences.py b/freecad_workbench/freecad/robossembler/get_sequences.py index 7d268bf..c59fa99 100644 --- a/freecad_workbench/freecad/robossembler/get_sequences.py +++ b/freecad_workbench/freecad/robossembler/get_sequences.py @@ -42,20 +42,36 @@ def save_sequences(sequences, file_path): with open(file_path, 'w') as file: json.dump(sequences, file, indent=4) -data = load_data('adjacency_matrix.json') -constraints = load_constraints('constraints.json') -all_parts = data['allParts'] -graph = create_graph(data) -first_detail = data['firstDetail'] -leaf_nodes = find_leaf_nodes(graph, first_detail) +# data = load_data('/home/markvoltov/GitProjects/framework/test_models/adjacency_matrix.json') +# # constraints = load_constraints('constraints.json') +# all_parts = data['allParts'] +# print(all_parts) +# graph = create_graph(data) +# first_detail = data['firstDetail'] +# leaf_nodes = find_leaf_nodes(graph, first_detail) -all_sequences = [] -for leaf in leaf_nodes: - paths = find_all_paths(graph, leaf, first_detail) - for path in paths: - if set(path) == set(all_parts) and is_valid_sequence(path, constraints): - all_sequences.append(path) +# all_sequences = [] +# for leaf in leaf_nodes: +# paths = find_all_paths(graph, leaf, first_detail) +# for path in paths: +# if set(path) == set(all_parts) and is_valid_sequence(path, constraints): +# all_sequences.append(path) -save_sequences(all_sequences, 'valid_sequences.json') +# save_sequences(all_sequences, 'valid_sequences.json') -print(f"Найдено {len(all_sequences)} допустимых последовательностей сборки.") +# print(f"Найдено {len(all_sequences)} допустимых последовательностей сборки.") + +def process_adjacency_data(topology_matrix): + all_parts = topology_matrix['allParts'] + graph = create_graph(topology_matrix) + first_detail = topology_matrix['firstDetail'] + leaf_nodes = find_leaf_nodes(graph, first_detail) + + all_sequences = [] + for leaf in leaf_nodes: + paths = find_all_paths(graph, leaf, first_detail) + for path in paths: + if set(path) == set(all_parts) and is_valid_sequence(path, constraints): + all_sequences.append(path) + + return all_parts, graph, first_detail, leaf_nodes, all_sequences diff --git a/freecad_workbench/freecad/robossembler/graph_visualisation.py b/freecad_workbench/freecad/robossembler/graph_visualisation.py index 9baf51c..e6f0af8 100644 --- a/freecad_workbench/freecad/robossembler/graph_visualisation.py +++ b/freecad_workbench/freecad/robossembler/graph_visualisation.py @@ -3,7 +3,7 @@ import networkx as nx import matplotlib.pyplot as plt # Загружаем данные из файла -with open('adjacency_matrix.json', 'r') as file: +with open('/home/markvoltov/GitProjects/framework/freecad_workbench/freecad/robossembler/simplified_adjacency_matrix.json', 'r') as file: data = json.load(file) # Создаем пустой граф diff --git a/freecad_workbench/freecad/robossembler/simplified_adjacency_matrix.json b/freecad_workbench/freecad/robossembler/simplified_adjacency_matrix.json new file mode 100644 index 0000000..f8d2b65 --- /dev/null +++ b/freecad_workbench/freecad/robossembler/simplified_adjacency_matrix.json @@ -0,0 +1,76 @@ +{ + "allParts": [ + "body_down", + "body_up", + "sol_gear", + "output_shaft", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002", + "bolt", + "bolt2", + "bolt3", + "bolt4" + ], + "matrix": { + "body_down": [ + "sol_gear", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002", + "body_up" + ], + "body_up": [ + "body_down", + "output_shaft" + ], + "sol_gear": [ + "body_down", + "output_shaft", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002" + ], + "output_shaft": [ + "sol_gear", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002", + "body_up" + ], + "planet_gear": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear003": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear004": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear005": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear002": [ + "body_down", + "sol_gear", + "output_shaft" + ] + + } +} \ No newline at end of file diff --git a/freecad_workbench/freecad/robossembler/solve_optimizer.py b/freecad_workbench/freecad/robossembler/solve_optimizer.py index 66f81b0..14f9f5b 100644 --- a/freecad_workbench/freecad/robossembler/solve_optimizer.py +++ b/freecad_workbench/freecad/robossembler/solve_optimizer.py @@ -1,112 +1,136 @@ -import FreeCAD -import numpy as np +''' +Файл, содержащий скрипт для обработки и упрощения матрицы смежности. Запускается через команду в основном меню верстака freecad +''' + + import json +import FreeCAD as App +from geometric_feasibility_predicate.main import main as asm_analysis +from constraints_operator import collect_assembly_settings -#Запускается после генерации матрицы смежности и разметки изделия +# === Для работы с json-файлами. Работает. === +def simplify_adjacency_matrix_json(assembly_file, adjacency_file, output_file): + def load_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) -def get_adjacency_matrix_from_file(file_path): - with open(file_path, 'r') as f: - adjacency_matrix = np.array(json.load(f)) - #print(adjacency_matrix) - return adjacency_matrix + def save_json(file_path, data): + with open(file_path, 'w', encoding='utf-8') as file: + json.dump(data, file, ensure_ascii=False, indent=4) + + assembly_settings = load_json('/assembly_settings.json') + adjacency_matrix = load_json('/adjacency_matrix.json') + + fasteners = set() + for item in assembly_settings: + if item.get("Type") == "fastener_set": + fasteners.add(item["Parent"]) + fasteners.add(item["Child"]) + + simplified_matrix = { + "allParts": [], + "matrix": {} + } + + for part in adjacency_matrix["allParts"]: + if part not in fasteners: + simplified_matrix["allParts"].append(part) + neighbors = [ + neighbor for neighbor in adjacency_matrix["matrix"].get(part, []) + if neighbor not in fasteners + ] + if neighbors or part not in fasteners: + simplified_matrix["matrix"][part] = neighbors + + save_json(output_file, simplified_matrix) + + +# simplify_adjacency_matrix('assembly_settings.json', 'adjacency_matrix.json', 'simplified_adjacency_matrix.json') + + +def restore_full_sequence_json(assembly_file, sequence_file, output_file): + def load_json(file_path): + with open(file_path, 'r', encoding='utf-8') as file: + return json.load(file) + + def save_json(file_path, data): + with open(file_path, 'w', encoding='utf-8') as file: + json.dump(data, file, ensure_ascii=False, indent=4) + + assembly_settings = load_json(assembly_file) + sequence = load_json(sequence_file) + + full_sequence = [] + sequence_set = set(sequence) + + for item in sequence: + full_sequence.append(item) + for setting in assembly_settings: + if setting.get("Type") == "fastener_set": + parent = setting["Parent"] + child = setting["Child"] + if parent in sequence_set and child in sequence_set: + full_sequence.append(setting["Fasteners"]) + save_json(output_file, full_sequence) -def get_asm_settings(asm_settings_path): - with open(asm_settings_path), 'r') as f: - asm_settings = np.array(json.load(f)) - #print(asm_settings) - return asm_settings -#def get_parts_with_fasteners(asm_settings): - ''' - "Type": "fastener_set", - "Parent": obj.Parent.Label, - "Child": obj.Child.Label, - "Fasteners": fasteners ''' - #вероятно, тут нужно создавать список объектов - - # fastener_set = [] - #чтобы это работало, нужно работать с позициями элементов в дереве - #возможно, отработает и через лейблы +# restore_full_sequence('assembly_settings.json', 'sequence.json', 'full_sequence.json') - - #return part_names, fasteners -def remove_fasteners_from_matrix(adjacency_matrix, part_names, fasteners): - fastener_connections = {} - indices_to_remove = [] +# ==== Для работы с внутренними переменными - for fastener in fasteners: - idx = part_names.index(fastener) - indices_to_remove.append(idx) +def simplify_adjacency_matrix(assembly_settings, adjacency_matrix): + fasteners = set() + for item in assembly_settings: + if item.get("Type") == "fastener_set": + fasteners.add(item["Parent"]) + fasteners.add(item["Child"]) - connected_parts = [] - for i in range(len(adjacency_matrix)): - if adjacency_matrix[i, idx] == 1: - connected_parts.append(part_names[i]) + simplified_matrix = { + "allParts": [], + "matrix": {} + } + + for part in adjacency_matrix["allParts"]: + if part not in fasteners: + simplified_matrix["allParts"].append(part) + neighbors = [ + neighbor for neighbor in adjacency_matrix["matrix"].get(part, []) + if neighbor not in fasteners + ] + if neighbors or part not in fasteners: + simplified_matrix["matrix"][part] = neighbors + + return simplified_matrix + +def restore_full_sequence(assembly_settings, sequence): + full_sequence = [] + sequence_set = set(sequence) + + for item in sequence: + full_sequence.append(item) + for setting in assembly_settings: + if setting.get("Type") == "fastener_set": + parent = setting["Parent"] + child = setting["Child"] + if parent in sequence_set and child in sequence_set: + full_sequence.append(setting["Fasteners"]) + + return full_sequence + + +def main(): + App.open("/home/markvoltov/GitProjects/framework/test_models/desk_table.FCStd") + + if App.ActiveDocument: + intersection_geometry, sequences, topologyMatrix = asm_analysis() + print(sequences) + assembly_settings = collect_assembly_settings() + simplified_matrix = simplify_adjacency_matrix(assembly_settings, topologyMatrix) - fastener_connections[fastener] = connected_parts + else: + print('Ошибка. Нет активного документа!') - reduced_matrix = np.delete(adjacency_matrix, indices_to_remove, axis=0) - reduced_matrix = np.delete(reduced_matrix, indices_to_remove, axis=1) - reduced_part_names = [part for part in part_names if part not in fasteners] - - return reduced_matrix, reduced_part_names, fastener_connections - -def save_to_json(data, file_path): - with open(file_path, 'w') as f: - json.dump(data, f, indent=4) - - -doc = FreeCAD.ActiveDocument - - -adjacency_matrix = get_adjacency_matrix_from_file('adjacency_matrix.json') -part_names, fasteners = get_parts_with_fasteners(doc) - -# Построение сокращенной матрицы смежности -reduced_matrix, reduced_part_names, fastener_connections = remove_fasteners_from_matrix(adjacency_matrix, part_names, fasteners) - -# Сохранение результатов в файлы JSON -save_to_json(reduced_matrix.tolist(), 'reduced_adjacency_matrix.json') -save_to_json(reduced_part_names, 'reduced_part_names.json') -save_to_json(fastener_connections, 'fastener_connections.json') - - -import json - - -with open('adjacency_matrix.json') as f: - adjacency_matrix = json.load(f) -with open('assembly_settings.json') as f: - assembly_settings = json.load(f) - - -fasteners_to_exclude = set() -for setting in assembly_settings: - if setting.get('Type') == 'fastener_set': - fasteners_to_exclude.update(setting.get('Fasteners')) - - -#for fastener in fasteners_to_exclude: -# del adjacency_matrix[fastener] - -#здесь должен запуститься файл генерации последовательности сборки -#на вход поступает упрощенная матрица смежности - - - -with open('assembly_sequence.json') as f: - assembly_sequence = json.load(f) -#TODO: сделать в виде функции, вызываемой отдельно -#Добавляем крепежи в посл. сборки -for setting in assembly_settings: - if setting.get('Type') == 'fastener_set': - parent = setting.get('Parent') - child = setting.get('Child') - fasteners = set(setting.get('Fasteners')) - for step in assembly_sequence: - if step.get('Parent') == parent and step.get('Child') == child: - step['Fasteners'] = list(fasteners.intersection(step.get('Fasteners', []))) - break +main() \ No newline at end of file diff --git a/freecad_workbench/freecad/robossembler/valid_sequences.json b/freecad_workbench/freecad/robossembler/valid_sequences.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/freecad_workbench/freecad/robossembler/valid_sequences.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/freecad_workbench/freecad/robossembler/valid_sequences.py b/freecad_workbench/freecad/robossembler/valid_sequences.py index 7bf1387..0feec84 100644 --- a/freecad_workbench/freecad/robossembler/valid_sequences.py +++ b/freecad_workbench/freecad/robossembler/valid_sequences.py @@ -15,22 +15,29 @@ def save_sequences(sequences, file_path): with open(file_path, 'w') as file: json.dump(sequences, file, indent=4) -# Load data from files -adjacency_matrix = load_data('adjacency_matrix.json') -constraints = load_data('constraints.json') -sequences = load_data('sequences.json') +# adjacency_matrix = load_data('adjacency_matrix.json') +# constraints = load_data('constraints.json') +# sequences = load_data('sequences.json') -# Get all parts and first detail -all_parts = adjacency_matrix['allParts'] -first_detail = adjacency_matrix['firstDetail'] +# all_parts = adjacency_matrix['allParts'] +# first_detail = adjacency_matrix['firstDetail'] -# Filter valid sequences -valid_sequences = [] -for sequence in sequences: - if len(set(sequence)) == len(set(all_parts)): #and is_valid_sequence(sequence, constraints): - valid_sequences.append(sequence) +# valid_sequences = [] +# for sequence in sequences: +# if len(set(sequence)) == len(set(all_parts)): #and is_valid_sequence(sequence, constraints): +# valid_sequences.append(sequence) -# Save valid sequences to file -save_sequences(valid_sequences, 'valid_sequences.json') +# save_sequences(valid_sequences, 'valid_sequences.json') -print(f"Найдено {len(valid_sequences)} допустимых последовательностей сборки.") +# print(f"Найдено {len(valid_sequences)} допустимых последовательностей сборки.") + +def filter_valid_sequences(adjacency_matrix, sequences, constraints): + all_parts = adjacency_matrix['allParts'] + first_detail = adjacency_matrix['firstDetail'] + + valid_sequences = [] + for sequence in sequences: + if len(set(sequence)) == len(set(all_parts)): + valid_sequences.append(sequence) + + return valid_sequences \ No newline at end of file diff --git a/test_models/ ajacency_matrix.json b/test_models/ ajacency_matrix.json deleted file mode 100644 index 134cc37..0000000 --- a/test_models/ ajacency_matrix.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "body_down":["body_up","bolt1", "bolt2", "bolt3", "bolt4","sol_gear","planet_gear"], - "body_up":["body_down","bolt1", "bolt2", "bolt3", "bolt4","sol_gear"], - "body_down":["body_up","bolt1", "bolt2", "bolt3", "bolt4","sol_gear","planet_gear"] -} \ No newline at end of file diff --git a/test_models/adjacency_matrix.json b/test_models/adjacency_matrix.json new file mode 100644 index 0000000..999a349 --- /dev/null +++ b/test_models/adjacency_matrix.json @@ -0,0 +1,101 @@ +{ + "allParts": [ + "body_down", + "sol_gear", + "output_shaft", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002", + "body_up", + "bolt", + "bolt2", + "bolt3", + "bolt4" + ], + "firstDetail": "body_down", + "matrix": { + "body_down": [ + "sol_gear", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002", + "body_up", + "bolt", + "bolt2", + "bolt3", + "bolt4" + ], + "sol_gear": [ + "body_down", + "output_shaft", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002" + ], + "output_shaft": [ + "sol_gear", + "planet_gear", + "planet_gear003", + "planet_gear004", + "planet_gear005", + "planet_gear002", + "body_up" + ], + "planet_gear": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear003": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear004": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear005": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "planet_gear002": [ + "body_down", + "sol_gear", + "output_shaft" + ], + "body_up": [ + "body_down", + "output_shaft", + "bolt", + "bolt2", + "bolt3", + "bolt4" + ], + "bolt": [ + "body_down", + "body_up" + ], + "bolt2": [ + "body_down", + "body_up" + ], + "bolt3": [ + "body_down", + "body_up" + ], + "bolt4": [ + "body_down", + "body_up" + ] + }, + "matrixError": null +} \ No newline at end of file diff --git a/test_models/intersection_geometry.json b/test_models/intersection_geometry.json new file mode 100644 index 0000000..858bab4 --- /dev/null +++ b/test_models/intersection_geometry.json @@ -0,0 +1,4 @@ +{ + "status": true, + "recalculations": null +} \ No newline at end of file diff --git a/test_models/sequences.json b/test_models/sequences.json index 07d5216..b618c4d 100644 --- a/test_models/sequences.json +++ b/test_models/sequences.json @@ -1,10 +1,3 @@ { - "sequences": [ - - "body_down", - "sol_gear", - "output_shaft", - "planet_gear", - "planet_gear002" - ] + "sequences": [] } \ No newline at end of file diff --git a/test_models/test_reductor.FCStd b/test_models/test_reductor.FCStd index 6ee9991a1d25cae73e470f847508e009b05b9d6f..62c6450459aff41b6dbf640bf15fd3cb484567ce 100644 GIT binary patch literal 63957 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

vd%9 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 UqMw7NTiuFMQ=J`M6kuaW09=69tN;K2 literal 69460 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 t>PB@q+kZ@ln+ABZvVoF