{ "sources": [ { "path": "src\\QInventor\\Init.py", "sha256": "7d2681813d2efe5a3b79147da578b67290117e61575e4e1735dd6a9aab7a37e1" }, { "path": "src\\QInventor\\InitGui.py", "sha256": "0f6fa12520a656980d3a3d61582cfcbebfa3f41728d63b75ad2fb001116a850e" }, { "path": "src\\QInventor\\qi_bom_ui.py", "sha256": "522ea28fcce9f7a22e0ea107304ca32406846ec99af16b6adf04ef3da008811d" }, { "path": "src\\QInventor\\qi_bom.py", "sha256": "548b7196392650b790f8263440cc12039eb1aae20c19ce6158e4588f9cc2053d" }, { "path": "src\\QInventor\\qi_commands.py", "sha256": "19816cbda6a9cc15023484022d0a13f84bd176d6e9eae0b681b968da21732f61" }, { "path": "src\\QInventor\\qi_drawing_bom_export.py", "sha256": "1e0fbe90cafcf2321ce4eae90868211be7db105767f98bcf42789950d52dab2f" }, { "path": "src\\QInventor\\qi_drawing_bom_ui.py", "sha256": "8a50502dd648a42a2e6e4b436972c67b71ec0683f0c4276b13f313357d0c103a" }, { "path": "src\\QInventor\\qi_drawing_bom.py", "sha256": "143dfa91623c6ac08c80e02e1671f6628ec18a5fd551bda362d7d99d252a4d11" }, { "path": "src\\QInventor\\qi_extrude.py", "sha256": "03b5b7eea4adbf168d623995e84e0d3af4ccea58494b3b34542b10447ef0c072" }, { "path": "src\\QInventor\\qi_io.py", "sha256": "77ea249f6d3a374e89ac294e0de8a386356ed47f908ba494cbe8fea37c34df1f" }, { "path": "src\\QInventor\\qi_localization.py", "sha256": "84041c5888157e7844b99ebda3fddf9e86531667c9e1aa56cde917795f1b91e1" }, { "path": "src\\QInventor\\qi_messages.py", "sha256": "5c0c41cf0c1bd60f30d0aec0da6934c2af70a88765d86c07e500046714eeecb5" }, { "path": "src\\QInventor\\qi_model.py", "sha256": "08c094382cfadd5e94e3ab6d1ce01ad1214985cc2a3222814ab5b2da26c4d762" }, { "path": "src\\QInventor\\qi_parameters_ui.py", "sha256": "4e10337d61bb38f229736f0e877d16cc99106943fa3a8f4333fa905aad7ec19f" }, { "path": "src\\QInventor\\qi_parameters.py", "sha256": "9f384e40b930b6ebc4e7f068651c0797134818803b82704258e26215997c01c2" }, { "path": "src\\QInventor\\qi_projection.py", "sha256": "a4923dd69f7dcb3230a4b60bd001698d90d6d02db5aa016362034ee73520925d" }, { "path": "src\\QInventor\\qi_sketch_offset.py", "sha256": "ffb0f2a000b91528587110d7f5d47b7e26902b499e1b35220e3c09fc89786cb9" }, { "path": "src\\QInventor\\qi_sketch_patterns.py", "sha256": "c98dfd369c639436f0aed0664cf43cc6345b6639c102309efb90041fe65d4e1e" }, { "path": "src\\QInventor\\qi_sketch_preview.py", "sha256": "4858dc39046bad95306179212fe44a63e2e1437259a9c6d14bc847b68c7aab76" }, { "path": "src\\QInventor\\qi_sketch_ui.py", "sha256": "d505b802c65f1566a64d7687e290a64226aff91958db59b8d621ac69909ead37" }, { "path": "src\\QInventor\\qi_step_export.py", "sha256": "754f7f8b841f87a696ddf800e19f947d5e8712fc53faf8fce4d2d0d0f3ee51f6" }, { "path": "src\\QInventor\\qi_ui.py", "sha256": "7432d1939919b30e5fc81cd333caf220ca3b490d71851328aa26d8070a7ac307" }, { "path": "src\\QInventor\\qi_workbench.py", "sha256": "312d49f40d78e8bde48cd8fa57232cd380565fe5b30a688e4612d57bde210c59" }, { "path": "src\\QInventor\\resources\\qinventor-a4.svg", "sha256": "f77419e8559cb24b29a62ebcdc02d781f52c6910c0299d4820d1dd8c820c4128" }, { "path": "src\\QInventor\\resources\\qinventor.ico", "sha256": "ea229e71d0fcdd749c35977fc0f11720a972c3ee04b3d9042d850182e0a6ed1c" }, { "path": "src\\QInventor\\resources\\qinventor.png", "sha256": "3de618b2d07a1fd36a14f71d3f0b85f36a5dcc22ccf070b4629491da6e6f9e32" }, { "path": "src\\QInventor\\resources\\qinventor.svg", "sha256": "12e95fa28c4aaf927311a777b3928d0518799e51663aab2f0f036015210dc954" } ], "application": "QInventor", "launcherSha256": "cd5a44ae9cd094a77088a58efc12e48b26549abf5ed40edd8a15f6450ef554de", "engine": "FreeCAD 1.1.4 / Open CASCADE", "builtAtUtc": "2026-10-15T13:59:40.0135156Z", "validation": { "status": "passed", "version": [ "1", "1", "4", "20260928 (Git shallow)", "Unknown", "2026/09/28 13:46:34", "(HEAD detached at 4fd3bf320)", "4fd3bf320d9566a27e60069fc8387448aaa3a094" ], "started": "2026-10-15T16:40:59.566097+03:00", "checks": [ { "name": "native_and_custom_commands", "passed": true, "result": { "custom": [ "QI_NewPart", "QI_NewAssembly", "QI_Open", "QI_Save", "QI_SaveAs", "QI_NewSketch", "QI_FinishSketch", "QI_CancelSketch", "QI_Line", "QI_Polyline", "QI_Rectangle", "QI_Circle", "QI_Arc", "QI_Dimension", "QI_Horizontal", "QI_Vertical", "QI_Coincident", "QI_Parallel", "QI_Perpendicular", "QI_Equal", "QI_Tangent", "QI_Fix", "QI_Construction", "QI_Trim", "QI_ProjectGeometry", "QI_BreakProjection", "QI_SketchOffset", "QI_SketchMirror", "QI_SketchRectangularPattern", "QI_SketchCircularPattern", "QI_EditSketchPattern", "QI_Pocket", "QI_Revolve", "QI_Fillet", "QI_Chamfer", "QI_Hole", "QI_Pattern", "QI_Mirror", "QI_Pad", "QI_Box", "QI_Cylinder", "QI_Plate", "QI_Demo", "QI_AssemblyDemo", "QI_Dimensions", "QI_Material", "QI_Properties", "QI_Export", "QI_BOM", "QI_AssemblyActivate", "QI_AssemblyInsert", "QI_AssemblyGround", "QI_AssemblyFixed", "QI_AssemblyRevolute", "QI_AssemblySlider", "QI_AssemblyCylindrical", "QI_AssemblySolve", "QI_Drawing", "QI_DrawingBOM", "QI_DrawingExport", "QI_DrawingView", "QI_DrawingDimension", "QI_DrawingProjection", "QI_ViewFit", "QI_Axonometric", "QI_Front", "QI_Top", "QI_ToggleTree", "QI_NativeTools", "QI_Help" ], "native_count": 772, "command_api": [ "__class__", "__delattr__", "__dir__", "__doc__", "__eq__", "__format__", "__ge__", "__getattribute__", "__getstate__", "__gt__", "__hash__", "__init__", "__init_subclass__", "__le__", "__lt__", "__ne__", "__new__", "__reduce__", "__reduce_ex__", "__repr__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "createCustomCommand", "findCustomCommand", "get", "getAction", "getInfo", "getShortcut", "isActive", "listAll", "listByShortcut", "removeCustomCommand", "resetShortcut", "run", "setShortcut", "update" ], "native_object_api": [ "__class__", "__delattr__", "__dir__", "__doc__", "__eq__", "__format__", "__ge__", "__getattribute__", "__getstate__", "__gt__", "__hash__", "__init__", "__init_subclass__", "__le__", "__lt__", "__ne__", "__new__", "__reduce__", "__reduce_ex__", "__repr__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "createCustomCommand", "findCustomCommand", "get", "getAction", "getInfo", "getShortcut", "isActive", "listAll", "listByShortcut", "removeCustomCommand", "resetShortcut", "run", "setShortcut", "update" ] } }, { "name": "russian_workflow_ribbon", "passed": true, "result": [ "Файл", "3D-модель", "Эскиз", "Сборка", "Чертёж", "Вид" ] }, { "name": "native_mouse_keyboard_sketch_ribbon_suite", "passed": true, "result": { "status": "passed", "passed": 11, "failed": 0, "checks": [ { "name": "Blank XY sketch enters native edit via QI_NewSketch", "passed": true, "result": { "native_editor": "Sketcher::SketchObject", "plane": "XY", "canvas": [ 1174, 608 ], "camera": "#Inventor V2.1 ascii\n\n\nOrthographicCamera {\n viewportMapping ADJUST_CAMERA\n position 0 0 246\n orientation 0 0 1 0\n nearDistance 245.74402\n farDistance 246.24602\n aspectRatio 1\n focalDistance 250\n height 4.1421356\n\n}\n", "exposed": true, "edit_controls": { "QI_FinishSketch": { "visible_without_scrolling": true, "caption": "Завершить\nэскиз" }, "QI_CancelSketch": { "visible_without_scrolling": true, "caption": "Отменить\nэскиз" } }, "navigation": "Gui::RevitNavigationStyle" } }, { "name": "Rectangle drawn through native Qt mouse events creates native geometry", "passed": true, "result": { "geometry_count": 4, "constraints": [ "Coincident", "Coincident", "Coincident", "Coincident", "Horizontal", "Horizontal", "Vertical", "Vertical" ], "closed": true } }, { "name": "D/E and document shortcuts have one owner across workbenches", "passed": true, "result": { "native_keys": { "L": [], "C": [], "D": [], "E": [], "Ctrl+N": [], "Ctrl+O": [], "Ctrl+S": [] }, "ribbon_keys": { "QI_NewPart": "Ctrl+N", "QI_Open": "Ctrl+O", "QI_Save": "Ctrl+S", "QI_Line": "L", "QI_Circle": "C", "QI_Dimension": "D", "QI_Pad": "E" } } }, { "name": "Native Qt mouse events select an edge; D places a driving datum through its dialog", "passed": true, "result": { "driving_value_mm": 40, "dialogs": [ "Введите длину" ], "constraints": 9, "selection_method": "native viewport Qt mouse events; actual selection verified", "coordinates": { "expected_edge": "Edge3", "local_point": [ -1.3148558000000001, 0.577719, 0.0 ], "world_point": [ -1.3148558000000001, 0.577719, 0.0 ], "projected_physical": [ 492, 486 ], "qt_point": [ 394, 219 ], "qt_size": [ 1174, 608 ], "physical_size": [ 1467, 760 ], "ratios": [ 1.2495741056218057, 1.25 ], "input_delivery": "Qt events on native viewport", "os_pointer_access": false, "input_state": { "wait_for_window_active": true, "main_active": true, "focus_window_title": "QInventor — Проверка построения мышью*", "renderer_mouse_tracking": true, "renderer_focus_policy": "11", "renderer_has_focus": true, "native_parent_mouse_tracking": true, "edited_object": "Sketch", "sketch_visible": false, "main_frame": [ 0, 0, 1440, 970 ], "canvas_global_origin": [ 266, 332 ], "screens": [ [ 0, 0, 1536, 960 ] ] }, "preselection_object": "Sketch", "preselection_subelements": [ "Edge3" ], "selection_after_press": [], "selection": [ [ "Sketch", [ "Edge3" ] ] ], "dimension_key_state": { "active_main_window": true, "renderer_has_focus": true, "focused_class": "Gui::View3DInventorViewer", "focused_object_name": "", "shortcut_enabled": true, "edited_object": "Sketch", "focus_in_viewport": true }, "dimension_key_signals": [ "D" ] }, "untranslated_candidates": [] } }, { "name": "Finish sketch exits active tool; E previews and creates real solid", "passed": true, "result": { "solids": 1, "volume_mm3": 17484.251519999994 } }, { "name": "Cancel existing native sketch restores original geometry and constraints", "passed": true, "result": { "original_geometry": 4, "restored_geometry": 4, "constraints": 11 } }, { "name": "L and C draw actual native line/circle and cancel new sketch removes it", "passed": true, "result": [ { "key": "L", "native_geometry": "LineSegment" }, { "key": "C", "native_geometry": "Circle" } ] }, { "name": "Sketch on Body face inside App::Part remains in Body and attaches to its feature", "passed": true, "result": { "parent": "PartDesign::Body", "support": "PartDesign::Feature", "map_mode": "FlatFace", "restored_volume_mm3": 8000.0 } }, { "name": "Projection and Break Link buttons create defining linked geometry, regenerate and undo", "passed": true, "result": { "controls": { "QI_ProjectGeometry": { "caption": "Проецировать геометрию", "tooltip": "Выберите ребро или грань: контуры будут связаны с исходной деталью. Режим «Вспомогательная» исключает их из профиля.", "activation": "actual Qt mouse click" }, "QI_BreakProjection": { "caption": "Разорвать связь", "tooltip": "Преобразовать выбранные проекции в независимую геометрию, сохранив её положение и зависимости.", "activation": "actual Qt mouse click" } }, "source_face": "Face6", "native_geo_ids": [ -3, -4, -5, -6 ], "source_length_mm": 30.0, "original_area_mm2": 199.99999999999997, "updated_area_mm2": 300.0, "detached_geometry_count": 4, "undo_restored_link": true, "selection_method": "native Selection API observer boundary; controls clicked with Qt", "break_selection": [ [ "Sketch", [ "ExternalEdge1" ] ] ], "untranslated_candidates": [] } }, { "name": "Russian native enum popup preserves canonical values and commits selected property", "passed": true, "result": { "painted_option": "Вращательное", "canonical_value": "Revolute", "source_item_preserved": "Revolute" } }, { "name": "Supplemental Russian translations and visible surface audit", "passed": true, "result": { "catalog_sources": 385, "samples": { "Sketcher": "Эскизы", "Pick point or edge": "Выберите точку или ребро", "Switch mode": "Сменить режим", "QILength": "Длина", "MapMode": "Режим привязки", "New Assembly": "Новая сборка", "Constraint12": "Ограничение 12" }, "untranslated_candidates": [] } } ], "input_delivery": "Qt events on native viewport", "os_pointer_access": false } }, { "name": "associative_sketch_projection_suite", "passed": true, "result": { "passed": true, "checks": [ { "name": "Defining projection is linked and regenerates", "passed": true, "evidence": { "native_ids": [ -3, -4, -5, -6 ], "source_length_mm": 30.0, "updated_profile_area_mm2": 300 } }, { "name": "Single edge and vertex projections", "passed": true, "evidence": { "edge_ids": [ -3 ], "vertex_ids": [ -4 ], "profile_excludes_references": true } }, { "name": "Construction references regenerate and are excluded from extrusion", "passed": true, "evidence": { "reference_perimeter_mm": 80.0, "extrusion_rejected": true } }, { "name": "Face-supported sketch and parametric extrusion", "passed": true, "evidence": { "map_mode": "FlatFace", "updated_join_volume_mm3": 3300.0 } }, { "name": "Body selection captures preceding solid feature", "passed": true, "evidence": { "source_type": "PartDesign::AdditiveBox", "body_reference_cycle_avoided": true } }, { "name": "XZ and YZ world placement", "passed": true, "evidence": { "projection_extrusion_volumes_mm3": { "XZ": 320.0000000000002, "YZ": 159.99999999999997 } } }, { "name": "Face projection includes inner hole boundaries", "passed": true, "evidence": { "projected_edges": 5, "wires": 2, "hole_preserved_volume_mm3": 1874.336293856408 } }, { "name": "Face attachment in rotated Part and Body preserves world placement", "passed": true, "evidence": { "placed_part_and_body": true, "parametric_world_placement_volume_mm3": 3300.0 } }, { "name": "Break Link retains native circles and arcs", "passed": true, "evidence": { "circle_radius_preserved_mm": 4, "arc_length_preserved_mm": 15.707963267948966 } }, { "name": "Break Link preserves native reference dimensions", "passed": true, "evidence": { "reference_dimension_mm": 10.0, "name_and_reference_mode_retained": true } }, { "name": "Break Link retains geometry and stops dependency", "passed": true, "evidence": { "old_to_independent_ids": { "-3": 0, "-4": 1, "-5": 2, "-6": 3 }, "independent_area_mm2": 200 } }, { "name": "Break Link preserves construction state", "passed": true, "evidence": { "independent_construction_curves": 4, "profile_empty": true } }, { "name": "Selective unlink preserves grouped links to the same source", "passed": true, "evidence": { "same_source_independent_face_and_retained_edge_link": true } }, { "name": "Native vertex selection and independent point unlink", "passed": true, "evidence": { "vertex_selection_name": "Vertex1", "independent_point_preserved": true, "point_constraints_undo_redo_save_reopen": true } }, { "name": "Break Link preserves constraints expressions and other references", "passed": true, "evidence": { "constraints_retained": 3, "expression": "Base.Width / 2", "remaining_external_constraint_remapped": -3, "save_reopen_preserved": true } }, { "name": "Projection and Break Link native undo redo", "passed": true, "evidence": { "projection_and_unlink_undo_redo": true } }, { "name": "Associated and independent geometry save reopen", "passed": true, "evidence": { "associated_file": "C:\\Repos\\qinventor\\artifacts\\validation\\associated-projection.FCStd", "independent_file": "C:\\Repos\\qinventor\\artifacts\\validation\\independent-projection.FCStd", "independent_area_after_reload_mm2": 300 } }, { "name": "Invalid mixed batches reject atomically", "passed": true, "evidence": { "invalid_batches_rejected_without_mutation": 7 } }, { "name": "Cyclic and cross-document sources reject", "passed": true, "evidence": { "invalid_reference_sources_rejected": 3 } }, { "name": "Native solver failure aborts projection transaction", "passed": true, "evidence": { "failed_native_solver_transaction_rolled_back": true } }, { "name": "Native external selection names map to GeoIds", "passed": true, "evidence": { "ExternalEdge1": -3, "ExternalEdge4": -6 } } ], "summary": { "total": 21, "passed": 21, "failed": 0 }, "gui_exercised": false } }, { "name": "associative_sketch_offset_suite", "passed": true, "result": { "passed": true, "checks": [ { "name": "Circle offset native association and signed source edit", "passed": true, "evidence": [ { "signed_distance_mm": 2.0, "updated_radius_mm": 10.0 }, { "signed_distance_mm": -2.0, "updated_radius_mm": 6.0 } ] }, { "name": "Driving offset dimension and native expression", "passed": true, "evidence": { "native_dimension_name": "Смещение", "expression_drives_offset_mm": 6 } }, { "name": "Directed single-line association survives resize and rotation", "passed": true, "evidence": [ { "signed_distance_mm": 2.0, "source_rotation_deg": 45, "source_length_mm": 20, "helper_geometry_excluded": true }, { "signed_distance_mm": -2.0, "source_rotation_deg": 45, "source_length_mm": 20, "helper_geometry_excluded": true } ] }, { "name": "Closed polygon outward and inward association for both windings", "passed": true, "evidence": [ { "clockwise": false, "signed_distance_mm": 3.0, "offset_profile_area_mm2": 576.0000000003402 }, { "clockwise": false, "signed_distance_mm": -3.0, "offset_profile_area_mm2": 95.99999999572618 }, { "clockwise": true, "signed_distance_mm": 3.0, "offset_profile_area_mm2": 576.0 }, { "clockwise": true, "signed_distance_mm": -3.0, "offset_profile_area_mm2": 95.99999999999997 } ] }, { "name": "Inventor-style loop expansion excludes auxiliary geometry", "passed": true, "evidence": { "one_selected_edge_expands_to": 4, "auxiliary_connectors_and_unrelated_circle_excluded": true } }, { "name": "Inclined polygon edges retain exact normal distances", "passed": true, "evidence": { "inclined_edges_associated_after_source_resize": 3, "perpendicular_offset_mm": 2 } }, { "name": "Constrain Offset off produces independent geometry", "passed": true, "evidence": { "unchecked_constrain_offset_removes_source_association": true, "independent_polygon_remains_closed": true } }, { "name": "Native offset undo redo retains source association", "passed": true, "evidence": { "native_undo_steps": 1, "redo_retains_association": true } }, { "name": "Preview cancellation errors and nested transaction rollback", "passed": true, "evidence": { "outer_cancel_restores_sketch": true, "inner_failure_aborts_outer_preview": true, "nested_commit_is_one_undo_step": true } }, { "name": "Save reopen and source edit need only native Sketcher", "passed": true, "evidence": [ { "kind": "circle", "saved_file": "offset-circle.FCStd", "native_source_edit_after_reopen": true }, { "kind": "line", "saved_file": "offset-line.FCStd", "native_source_edit_after_reopen": true }, { "kind": "polygon", "saved_file": "offset-polygon.FCStd", "native_source_edit_after_reopen": true } ] }, { "name": "Only offset distance visible; native visibility survives history and persistence", "passed": true, "evidence": [ { "kind": "circle", "hidden_association_labels": 1, "driving_offset_visible": true, "source_visibility_unchanged": true, "native_undo_redo_and_save_reopen": true, "hidden_constraints_still_solve_source_and_distance_edits": true }, { "kind": "line", "hidden_association_labels": 7, "driving_offset_visible": true, "source_visibility_unchanged": true, "native_undo_redo_and_save_reopen": true, "hidden_constraints_still_solve_source_and_distance_edits": true }, { "kind": "polygon", "hidden_association_labels": 23, "driving_offset_visible": true, "source_visibility_unchanged": true, "native_undo_redo_and_save_reopen": true, "hidden_constraints_still_solve_source_and_distance_edits": true } ] }, { "name": "Closed defining offset extrudes on XY XZ YZ in placed Part", "passed": true, "evidence": { "annular_profile_extrudes_in_placed_part": { "XY": 528.0, "XZ": 528.0, "YZ": 528.0 }, "construction_connectors_excluded": true } }, { "name": "Invalid distance selection and collapse reject atomically", "passed": true, "evidence": { "invalid_inputs_rejected_without_changes": 17 } }, { "name": "Unsupported topology rejects without copied fake geometry", "passed": true, "evidence": { "unsupported_open_concave_branch_curve_topologies_rejected": 7 } }, { "name": "Real conflicting source constraints reject offset", "passed": true, "evidence": { "real_native_solver_conflict_rejected_atomically": true } } ], "summary": { "total": 15, "passed": 15, "failed": 0 }, "gui_exercised": false } }, { "name": "associative_sketch_patterns_suite", "passed": true, "result": { "status": "passed", "passed": 17, "failed": 0, "skipped": 0, "checks": [ { "name": "mirror_circle_native_association", "passed": true, "status": "passed", "detail": { "radius_and_position_associative": true, "axis_edit": true } }, { "name": "mirror_line_selected_moving_axis", "passed": true, "status": "passed", "detail": { "both_endpoints_linked": true, "construction_axis_edit_associative": true } }, { "name": "rectangular_circle_native_dimensions", "passed": true, "status": "passed", "detail": { "copies": 5, "source_dimensions_and_pattern_parameters_associative": true, "native_expressions": 11 } }, { "name": "rectangular_signed_steps_and_line_endpoints", "passed": true, "status": "passed", "detail": { "signed_steps": true, "native_dimension_positive_to_negative": true, "line_endpoints_linked": true } }, { "name": "unconstrained_seed_association", "passed": true, "status": "passed", "detail": { "association_without_original_dimensions": true, "drag_and_later_radius_constraint_propagate": true } }, { "name": "circular_full_partial_negative_and_source_edit", "passed": true, "status": "passed", "detail": { "full_circle_distinct_occurrences": 4, "negative_partial_angle": -179.99999999999997, "source_changes_associative": true } }, { "name": "circular_lines_and_native_step_edit", "passed": true, "status": "passed", "detail": { "line_orientation_rotates": true, "native_step_angle_drives_every_point": true } }, { "name": "counts_and_native_undo_redo", "passed": true, "status": "passed", "detail": { "create_is_one_undo_step": true, "counts_editable": [ 8, 6 ], "undo_redo_restores_geometry_and_registry": true } }, { "name": "native_fcstd_save_reopen_all_patterns", "passed": true, "status": "passed", "detail": { "native_fcstd_reopened": [ "C:\\Repos\\qinventor\\artifacts\\validation\\mirror.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\rectangular.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\circular.FCStd" ], "geometry_ids_constraints_expressions_and_association_persist": true } }, { "name": "native_helper_visibility_persistence_association", "passed": true, "status": "passed", "detail": { "patterns": [ { "kind": "mirror", "native_hidden_helpers": 2, "visible_master_dimensions": 0, "source_visibility_unchanged": true, "native_undo_redo_reopen_persist": true, "hidden_constraints_still_active_and_associative": true }, { "kind": "rectangular", "native_hidden_helpers": 11, "visible_master_dimensions": 3, "source_visibility_unchanged": true, "native_undo_redo_reopen_persist": true, "hidden_constraints_still_active_and_associative": true }, { "kind": "circular", "native_hidden_helpers": 21, "visible_master_dimensions": 3, "source_visibility_unchanged": true, "native_undo_redo_reopen_persist": true, "hidden_constraints_still_active_and_associative": true } ] } }, { "name": "selection_parameters_unsupported_curves_atomic", "passed": true, "status": "passed", "detail": { "rejected_inputs": 14, "russian_errors": true, "no_geometry_constraint_metadata_or_undo_changes": true } }, { "name": "count_dependencies_atomic_rejection", "passed": true, "status": "passed", "detail": { "reference_constraint_dependency_rejected": true, "later_geometry_rejected_for_count_edit": true, "spacing_still_editable": true } }, { "name": "persistent_geometry_ids_after_renumbering", "passed": true, "status": "passed", "detail": { "native_persistent_geometry_ids_survive_index_renumbering": true } }, { "name": "native_expression_bound_master_dimensions", "passed": true, "status": "passed", "detail": { "external_expression_not_silently_removed": true, "bound_dimension_edits_rejected_atomically": true, "other_parameters_remain_editable": true, "external_dimension_update_still_associative": true } }, { "name": "nested_preview_repeat_cancel_commit", "passed": true, "status": "passed", "detail": { "repeated_preview_registry_clean": true, "cancel_restores_all_native_data": true, "commit_is_exactly_one_undo_step": true } }, { "name": "real_native_solver_conflict_atomic_rollback", "passed": true, "status": "passed", "detail": { "real_conflicting_constraint_injected_after_geometry_creation": true, "transaction_restores_geometry_constraints_history": true } }, { "name": "pattern_holes_real_partdesign_solid_reopen", "passed": true, "status": "passed", "detail": { "genuine_partdesign_pocket_solid": true, "radius_and_count_regenerate_volume": true, "reopened_volume_mm3": 57989.38070170254 } } ], "artifacts": [ "C:\\Repos\\qinventor\\artifacts\\validation\\mirror.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\rectangular.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\circular.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\mirror-hidden-helper-constraints.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\rectangular-hidden-helper-constraints.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\circular-hidden-helper-constraints.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\patterned-holes.FCStd" ], "source": "C:\\Repos\\qinventor\\src\\QInventor\\qi_sketch_patterns.py", "success": true } }, { "name": "native_sketch_operations_dialog_suite", "passed": true, "result": { "status": "passed", "passed": 15, "failed": 0, "checks": [ { "name": "mirror: repeated Qt preview replaces copies and Cancel restores sketch/history/dirty flag", "passed": true, "result": { "initial_preview": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ -7.0, 4.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "vertical" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 2 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "revised_preview": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ 7.0, -4.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "horizontal" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 3 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "russian_dialog": { "window_title": "Зеркальное отражение", "visible_labels": [ "Выбрано элементов: 1", "Связанное повторение отрезков и окружностей.", "Ось отражения:" ], "untranslated_candidates": [], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-mirror-russian-dialog.png" }, "cancel_restored": true, "undo_before": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "undo_after": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "modified_before": false, "modified_after": false } }, { "name": "mirror: Qt Create is one undo step; saved native association regenerates after reopen", "passed": true, "result": { "preview": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ -7.0, 4.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "vertical" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 2 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "created": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ -7.0, 4.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "vertical" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 3 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "reopened": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ -7.0, 4.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "vertical" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 3 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "source_driving_radius_mm": 3, "regenerated_after_reopen": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ -7.0, 4.0, 3.0 ], [ 7.0, 4.0, 3.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "vertical" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 3 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "saved_file": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-operation-mirror-created.FCStd", "single_undo_step": true, "modified_after_create": true } }, { "name": "rectangular: repeated Qt preview replaces copies and Cancel restores sketch/history/dirty flag", "passed": true, "result": { "initial_preview": { "circle_count": 6, "native_geometry_count": 8, "constraint_count": 23, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 5, 6, 7, 8 ], "helper_geometry_ids": [ 2, 3 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ], "solver_result": 0 }, "revised_preview": { "circle_count": 8, "native_geometry_count": 10, "constraint_count": 29, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ], [ 43.0, 4.0, 2.0 ], [ 43.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 4, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 11, 12, 13, 14, 15, 16, 17 ], "helper_geometry_ids": [ 9, 10 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20", "Массив1Связь21", "Массив1Связь22", "Массив1Связь23", "Массив1Связь24", "Массив1Связь25", "Массив1Связь26" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "generated_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 ] } ], "solver_result": 0 }, "russian_dialog": { "window_title": "Прямоугольный массив", "visible_labels": [ "Выбрано элементов: 1", "Связанное повторение отрезков и окружностей.", "Количество в направлении 1:", "Шаг в направлении 1:", "Количество в направлении 2:", "Шаг в направлении 2:", "Угол направления 1:", "Количество включает исходную геометрию. Направление 2 перпендикулярно направлению 1. Отрицательный шаг меняет сторону." ], "untranslated_candidates": [], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-rectangular-russian-dialog.png" }, "cancel_restored": true, "undo_before": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "undo_after": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "modified_before": false, "modified_after": false } }, { "name": "rectangular: Qt Create is one undo step; saved native association regenerates after reopen", "passed": true, "result": { "preview": { "circle_count": 6, "native_geometry_count": 8, "constraint_count": 23, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 5, 6, 7, 8 ], "helper_geometry_ids": [ 2, 3 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ], "solver_result": 0 }, "created": { "circle_count": 6, "native_geometry_count": 8, "constraint_count": 23, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 11, 12, 13, 14, 15 ], "helper_geometry_ids": [ 9, 10 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ], "solver_result": 0 }, "reopened": { "circle_count": 6, "native_geometry_count": 8, "constraint_count": 23, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 11, 12, 13, 14, 15 ], "helper_geometry_ids": [ 9, 10 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ], "solver_result": 0 }, "source_driving_radius_mm": 3, "regenerated_after_reopen": { "circle_count": 6, "native_geometry_count": 8, "constraint_count": 23, "centers_and_radii_mm": [ [ 7.0, 4.0, 3.0 ], [ 7.0, 19.0, 3.0 ], [ 19.0, 4.0, 3.0 ], [ 19.0, 19.0, 3.0 ], [ 31.0, 4.0, 3.0 ], [ 31.0, 19.0, 3.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 11, 12, 13, 14, 15 ], "helper_geometry_ids": [ 9, 10 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ], "solver_result": 0 }, "saved_file": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-operation-rectangular-created.FCStd", "single_undo_step": true, "modified_after_create": true } }, { "name": "circular: repeated Qt preview replaces copies and Cancel restores sketch/history/dirty flag", "passed": true, "result": { "initial_preview": { "circle_count": 4, "native_geometry_count": 9, "constraint_count": 22, "centers_and_radii_mm": [ [ -7.0, -4.0, 2.0 ], [ -4.0, 7.0, 2.0 ], [ 4.0, -7.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 6, 8 ], "helper_geometry_ids": [ 2, 3, 5, 7, 9 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ], "solver_result": 0 }, "revised_preview": { "circle_count": 6, "native_geometry_count": 13, "constraint_count": 32, "centers_and_radii_mm": [ [ -8.01426, 0.878429, 2.0 ], [ -7.0, -4.0, 2.0 ], [ -5.967345, 5.421328, 2.0 ], [ -1.641107, 7.893464, 2.0 ], [ 3.311978, 7.350565, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 6, "center": [ 0.0, 0.0 ], "angle": 180.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 12, 14, 16, 18, 20 ], "helper_geometry_ids": [ 10, 11, 13, 15, 17, 19, 21 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19", "КруговойМассив1Связь20", "КруговойМассив1Связь21", "КруговойМассив1Связь22", "КруговойМассив1Связь23", "КруговойМассив1Связь24", "КруговойМассив1Связь25", "КруговойМассив1Связь26", "КруговойМассив1Связь27", "КруговойМассив1Связь28", "КруговойМассив1Связь29" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7, 9, 11 ], "generated_ids": [ 3, 5, 7, 9, 11 ], "helper_ids": [ 1, 2, 4, 6, 8, 10, 12 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 ] } ], "solver_result": 0 }, "russian_dialog": { "window_title": "Круговой массив", "visible_labels": [ "Выбрано элементов: 1", "Связанное повторение отрезков и окружностей.", "Количество элементов:", "Центр — X:", "Центр — Y:", "Общий угол:", "Количество включает исходную геометрию. При 360° копии распределяются по всей окружности; при другом угле — между концами сектора." ], "untranslated_candidates": [], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-circular-russian-dialog.png" }, "cancel_restored": true, "undo_before": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "undo_after": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "modified_before": false, "modified_after": false } }, { "name": "circular: Qt Create is one undo step; saved native association regenerates after reopen", "passed": true, "result": { "preview": { "circle_count": 4, "native_geometry_count": 9, "constraint_count": 22, "centers_and_radii_mm": [ [ -7.0, -4.0, 2.0 ], [ -4.0, 7.0, 2.0 ], [ 4.0, -7.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 6, 8 ], "helper_geometry_ids": [ 2, 3, 5, 7, 9 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ], "solver_result": 0 }, "created": { "circle_count": 4, "native_geometry_count": 9, "constraint_count": 22, "centers_and_radii_mm": [ [ -7.0, -4.0, 2.0 ], [ -4.0, 7.0, 2.0 ], [ 4.0, -7.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 12, 14, 16 ], "helper_geometry_ids": [ 10, 11, 13, 15, 17 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ], "solver_result": 0 }, "reopened": { "circle_count": 4, "native_geometry_count": 9, "constraint_count": 22, "centers_and_radii_mm": [ [ -7.0, -4.0, 2.0 ], [ -4.0, 7.0, 2.0 ], [ 4.0, -7.0, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 12, 14, 16 ], "helper_geometry_ids": [ 10, 11, 13, 15, 17 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ], "solver_result": 0 }, "source_driving_radius_mm": 3, "regenerated_after_reopen": { "circle_count": 4, "native_geometry_count": 9, "constraint_count": 22, "centers_and_radii_mm": [ [ -7.0, -4.0, 3.0 ], [ -4.0, 7.0, 3.0 ], [ 4.0, -7.0, 3.0 ], [ 7.0, 4.0, 3.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 12, 14, 16 ], "helper_geometry_ids": [ 10, 11, 13, 15, 17 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ], "solver_result": 0 }, "saved_file": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-operation-circular-created.FCStd", "single_undo_step": true, "modified_after_create": true } }, { "name": "Offset: repeated circle preview replaces geometry; Cancel restores constraints/history/dirty flag", "passed": true, "result": { "initial_preview": { "circle_count": 2, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 4.0, 4.0 ] ], "constraint_types": [ "DistanceX", "DistanceY", "Radius", "Coincident", "Distance" ], "solver_result": 0 }, "revised_preview": { "circle_count": 2, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 4.0, 6.0 ] ], "constraint_types": [ "DistanceX", "DistanceY", "Radius", "Coincident", "Distance" ], "solver_result": 0 }, "russian_dialog": { "window_title": "Смещение геометрии", "visible_labels": [ "Выбрано элементов: 1", "Расстояние смещения:", "Поддерживаются окружность, отдельный отрезок и выпуклый замкнутый контур из отрезков. Положительное расстояние расширяет окружность и контур. Для отдельного отрезка оно задаёт левую сторону по направлению от начала к концу; отрицательное — противоположную." ], "untranslated_candidates": [], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-offset-russian-dialog.png" }, "cancel_restored": true, "undo_before": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] }, "undo_after": { "undo_count": 0, "redo_count": 0, "undo_names": [], "redo_names": [] } } }, { "name": "Offset: Qt Create saves native distance association; source radius regenerates after reopen", "passed": true, "result": { "preview": { "circle_count": 2, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 4.0, 4.0 ] ], "constraint_types": [ "DistanceX", "DistanceY", "Radius", "Coincident", "Distance" ], "solver_result": 0 }, "created": { "circle_count": 2, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 4.0, 4.0 ] ], "constraint_types": [ "DistanceX", "DistanceY", "Radius", "Coincident", "Distance" ], "solver_result": 0 }, "reopened": { "circle_count": 2, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 4.0, 4.0 ] ], "constraint_types": [ "DistanceX", "DistanceY", "Radius", "Coincident", "Distance" ], "solver_result": 0 }, "regenerated_after_reopen": { "circle_count": 2, "centers_and_radii_mm": [ [ 7.0, 4.0, 3.0 ], [ 7.0, 4.0, 5.0 ] ], "constraint_types": [ "DistanceX", "DistanceY", "Radius", "Coincident", "Distance" ], "solver_result": 0 }, "saved_file": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-operation-offset-created.FCStd", "single_undo_step": true, "modified_after_create": true } }, { "name": "Invalid repeated preview shows a Russian error and rolls back geometry/history", "passed": true, "result": { "russian_error": "Шаг прямоугольного массива должен быть ненулевым. Для обратного направления задайте отрицательный шаг.", "rollback_restored": true, "modified_before": false, "modified_after_error": false } }, { "name": "Qt Edit Pattern preserves association ID; cancel and undo restore previous pattern", "passed": true, "result": { "cancelled_edit_preview": { "circle_count": 8, "native_geometry_count": 10, "constraint_count": 29, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ], [ 43.0, 4.0, 2.0 ], [ 43.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 4, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 11, 12, 13, 14, 15, 16, 17 ], "helper_geometry_ids": [ 9, 10 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20", "Массив1Связь21", "Массив1Связь22", "Массив1Связь23", "Массив1Связь24", "Массив1Связь25", "Массив1Связь26" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "generated_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 ] } ], "solver_result": 0 }, "committed_edit": { "circle_count": 8, "native_geometry_count": 10, "constraint_count": 29, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ], [ 43.0, 4.0, 2.0 ], [ 43.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 4, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 20, 21, 22, 23, 24, 25, 26 ], "helper_geometry_ids": [ 18, 19 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20", "Массив1Связь21", "Массив1Связь22", "Массив1Связь23", "Массив1Связь24", "Массив1Связь25", "Массив1Связь26" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "generated_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 ] } ], "solver_result": 0 }, "pattern_id_preserved": "p1", "cancel_and_undo_restored": true } }, { "name": "Detached native preview preserves existing Redo; cancel removes overlay and Ctrl+Y restores source radius", "passed": true, "result": { "preview": { "circle_count": 2, "native_geometry_count": 2, "constraint_count": 5, "centers_and_radii_mm": [ [ -7.0, 4.0, 5.0 ], [ 7.0, 4.0, 5.0 ] ], "metadata": [ { "id": "p1", "kind": "mirror", "parameters": { "axis": "vertical" }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 2 ], "helper_geometry_ids": [], "constraint_names": [ "Зеркало1Связь1", "Зеркало1Связь2" ], "dimension_names": {}, "associative": true, "source_ids": [ 0 ], "created_ids": [ 1 ], "generated_ids": [ 1 ], "helper_ids": [], "all_geometry_ids": [ 1 ], "constraint_ids": [ 3, 4 ] } ], "solver_result": 0 }, "temporary_document": "QIPreviewa4747a12e1df496db7ef15a278aadcae", "temporary_document_removed": true, "overlay_removed": true, "source_global_placement": "Placement [Pos=(35.9826,-11.9001,17), Yaw-Pitch-Roll=(25,20,0)]", "native_edit_transform": "Matrix ((1,0,0,0),(0,1,0,0),(0,0,1,0),(0,0,0,1))", "model_global_mirror_center_mm": [ 28.33057928663428, -11.054818230587575, 19.39414100327968 ], "overlay_world_center_mm": [ -7.0, 4.0, 0.0 ], "overlay_sample_count": 128, "maximum_radius_error_mm": 5.766050561462066E-07, "maximum_plane_error_mm": 0.0, "history_before": { "undo_count": 1, "redo_count": 1, "undo_names": [ "Радиус исходной окружности — 5 мм" ], "redo_names": [ "Радиус исходной окружности — 6 мм" ] }, "history_after_redo": { "undo_count": 2, "redo_count": 0, "undo_names": [ "Радиус исходной окружности — 6 мм", "Радиус исходной окружности — 5 мм" ], "redo_names": [] }, "modified_before": true, "radius_after_native_redo_mm": 6.0, "redo_delivery": "native Std_Redo keyboard shortcut Ctrl+Y", "native_shortcuts": [ "Ctrl+Y" ] } }, { "name": "Detached offset retains placed SubShapeBinder context; cancel preserves Redo and native Ctrl+Y updates projection", "passed": true, "result": { "original_local_endpoints_mm": [ [ 8.365163037378078, 7.417819582470548, 0.0 ], [ 5.776972586352871, 17.07707784536123, 0.0 ] ], "original_external_endpoints_mm": [ [ 8.365163037378078, 7.417819582470548, 0.0 ], [ 5.776972586352871, 17.07707784536123, 0.0 ] ], "shadow_before_native_operation": { "local": [ [ 8.365163037378078, 7.417819582470548, 0.0 ], [ 5.776972586352871, 17.07707784536123, 0.0 ] ], "external": [ [ 8.365163037378078, 7.417819582470548, 0.0 ], [ 5.776972586352871, 17.07707784536123, 0.0 ] ], "geometry_count": 1, "context_objects": [ "X_Axis", "Y_Axis", "Z_Axis", "XY_Plane", "XZ_Plane", "YZ_Plane", "Origin001", "Origin", "SourceBox", "SourceComponent", "X_Axis001", "Y_Axis001", "Z_Axis001", "XY_Plane001", "XZ_Plane001", "YZ_Plane001", "Origin003", "Origin002", "X_Axis002", "Y_Axis002", "Z_Axis002", "XY_Plane002", "XZ_Plane002", "YZ_Plane002", "Origin005", "Origin004", "Binder", "Sketch", "Body", "SketchComponent" ] }, "expected_offset_local_endpoints_mm": [ [ 6.433311384799942, 6.9001814922655065, 0.0 ], [ 3.8451209337747345, 16.55943975515619, 0.0 ] ], "actual_offset_local_endpoints_mm": [ [ 6.433311384799942, 6.9001814922655065, 0.0 ], [ 3.8451209337747345, 16.55943975515619, 0.0 ] ], "expected_offset_world_endpoints_mm": [ [ -2.0000000000000018, -1.7763568394002505E-15, 0.0 ], [ -2.0, 10.0, 0.0 ] ], "expected_native_edit_endpoints_mm": [ [ 6.433311384799942, 6.9001814922655065, 0.0 ], [ 3.8451209337747345, 16.55943975515619, 0.0 ] ], "actual_overlay_native_edit_endpoints_mm": [ [ 6.433311462402344, 6.900181293487549, 0.0 ], [ 3.845120906829834, 16.55944061279297, 0.0 ] ], "maximum_overlay_endpoint_error_mm": 8.580599454290849E-07, "detached_framebuffer": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-linked-binder-detached-framebuffer.png", "overlay_midpoint_pixel": [ 597, 322 ], "orange_pixels_at_expected_offset_midpoint": [ { "position": [ 594, 317 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 317 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 317 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 594, 318 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 318 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 318 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 594, 319 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 319 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 319 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 320 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 320 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 320 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 321 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 321 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 321 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 322 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 322 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 322 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 595, 323 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 323 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 323 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 324 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 324 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 598, 324 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 325 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 325 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 598, 325 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 596, 326 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 326 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 598, 326 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 597, 327 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 598, 327 ], "rgb": [ 245, 120, 26 ] }, { "position": [ 599, 327 ], "rgb": [ 245, 120, 26 ] } ], "native_edit_transform": "Matrix ((1,0,0,0),(0,1,0,0),(0,0,1,0),(0,0,0,1))", "source_global_placement": "Placement [Pos=(-10,-5,0), Yaw-Pitch-Roll=(-15,-0,0)]", "preview_result": { "source_ids": [ 0 ], "created_ids": [ 1 ], "helper_ids": [ 2, 3 ], "constraint_ids": [ 2, 3, 4, 5, 6, 7, 8, 9 ], "dimension_ids": [ 9 ], "distance": 2.0, "loop_select": false, "constrain": true, "kind": "line" }, "russian_dialog": { "window_title": "Смещение геометрии", "visible_labels": [ "Выбрано элементов: 1", "Расстояние смещения:", "Поддерживаются окружность, отдельный отрезок и выпуклый замкнутый контур из отрезков. Положительное расстояние расширяет окружность и контур. Для отдельного отрезка оно задаёт левую сторону по направлению от начала к концу; отрицательное — противоположную." ], "untranslated_candidates": [], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-linked-binder-offset-dialog.png" }, "temporary_document": "QIPreview869b13260d124d47b57d7947634114cf", "cancel_preserved_geometry_constraints_history_dirty_flag": true, "history_before": { "undo_count": 0, "redo_count": 1, "undo_names": [], "redo_names": [ "Изменить ширину связанного основания" ] }, "history_after_native_redo": { "undo_count": 1, "redo_count": 0, "undo_names": [ "Изменить ширину связанного основания" ], "redo_names": [] }, "source_width_after_native_redo_mm": 12.0, "linked_line_length_after_native_redo_mm": 12.000000000000002, "actual_native_offset_framebuffer": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-linked-binder-actual-offset-framebuffer.png", "actual_native_offset_local_endpoints_mm": [ [ 6.433311384799942, 6.9001814922655065, 0.0 ], [ 3.8451209337747345, 16.55943975515619, 0.0 ] ], "native_offset_midpoint_pixel": [ 597, 322 ], "green_pixels_at_native_offset_midpoint": [ { "position": [ 594, 317 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 317 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 317 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 594, 318 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 318 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 318 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 594, 319 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 319 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 319 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 320 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 320 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 320 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 321 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 321 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 321 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 322 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 322 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 322 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 595, 323 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 323 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 323 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 324 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 324 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 598, 324 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 325 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 325 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 598, 325 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 596, 326 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 326 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 598, 326 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 597, 327 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 598, 327 ], "rgb": [ 47, 158, 68 ] }, { "position": [ 599, 327 ], "rgb": [ 47, 158, 68 ] } ], "identical_native_camera": { "position": [ 12.591839790344238, 8.626729011535645, 24.723207473754883 ], "orientation": [ 0.0, 0.0, 0.0, 1.0 ], "height": 41.446414947509766 } } }, { "name": "rectangular: existing Point helpers survive detached Edit preview; Cancel preserves registry/formulas/Redo", "passed": true, "result": { "shadow_before_set_parameters": { "signature": { "geometry": [ [ "Circle", [ 7.0, 4.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "LineSegment", [ 0.0, 0.0, 0.0 ], [ 1.0, 0.0, 0.0 ] ], [ "Point", [ 12.0, 15.0, 0.0, 12.0, 15.0, 0.0 ] ], [ "Circle", [ 19.0, 4.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "Circle", [ 31.0, 4.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "Circle", [ 7.0, 19.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "Circle", [ 19.0, 19.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "Circle", [ 31.0, 19.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ] ], "constraints": [ [ "DistanceX", 0, 3, -2000, 0, -2000, 0, 7.0, "ЦентрX" ], [ "DistanceY", 0, 3, -2000, 0, -2000, 0, 4.0, "ЦентрY" ], [ "Radius", 0, 0, -2000, 0, -2000, 0, 2.0, "Радиус" ], [ "Coincident", 1, 1, -1, 1, -2000, 0, 0.0, "Массив1Связь1" ], [ "Distance", 1, 0, -2000, 0, -2000, 0, 1.0, "Массив1Связь2" ], [ "Angle", 1, 0, -2000, 0, -2000, 0, 0.0, "Массив1Направление" ], [ "DistanceX", 2, 1, -2000, 0, -2000, 0, 12.0, "Массив1ШагX" ], [ "DistanceY", 2, 1, -2000, 0, -2000, 0, 15.0, "Массив1ШагY" ], [ "Equal", 0, 0, 3, 0, -2000, 0, 0.0, "Массив1Связь6" ], [ "DistanceX", 0, 3, 3, 3, -2000, 0, 12.0, "Массив1Связь7" ], [ "DistanceY", 0, 3, 3, 3, -2000, 0, 0.0, "Массив1Связь8" ], [ "Equal", 0, 0, 4, 0, -2000, 0, 0.0, "Массив1Связь9" ], [ "DistanceX", 0, 3, 4, 3, -2000, 0, 24.0, "Массив1Связь10" ], [ "DistanceY", 0, 3, 4, 3, -2000, 0, 0.0, "Массив1Связь11" ], [ "Equal", 0, 0, 5, 0, -2000, 0, 0.0, "Массив1Связь12" ], [ "DistanceX", 0, 3, 5, 3, -2000, 0, 0.0, "Массив1Связь13" ], [ "DistanceY", 0, 3, 5, 3, -2000, 0, 15.0, "Массив1Связь14" ], [ "Equal", 0, 0, 6, 0, -2000, 0, 0.0, "Массив1Связь15" ], [ "DistanceX", 0, 3, 6, 3, -2000, 0, 12.0, "Массив1Связь16" ], [ "DistanceY", 0, 3, 6, 3, -2000, 0, 15.0, "Массив1Связь17" ], [ "Equal", 0, 0, 7, 0, -2000, 0, 0.0, "Массив1Связь18" ], [ "DistanceX", 0, 3, 7, 3, -2000, 0, 24.0, "Массив1Связь19" ], [ "DistanceY", 0, 3, 7, 3, -2000, 0, 15.0, "Массив1Связь20" ] ], "datum_label_positions": [ [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 10.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 24.347156524658203, 0.0 ], [ 3.0, -13.0 ], [ 38.0, -4.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ] ], "construction": [ false, true, true, false, false, false, false, false ], "property_names": [ "ArcFitTolerance", "AttacherEngine", "AttacherType", "AttachmentOffset", "AttachmentSupport", "Constraints", "Exports", "ExpressionEngine", "ExternalGeo", "ExternalGeometry", "ExternalTypes", "FullyConstrained", "Geometry", "InternalShape", "Label", "Label2", "MakeInternals", "MapMode", "MapPathParameter", "MapReversed", "Placement", "QISketchPatterns", "Shape", "ShapeMaterial", "Visibility", "_ElementMapVersion", "_ExternalGeoVersion" ], "patterns": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 5, 6, 7, 8 ], "helper_geometry_ids": [ 2, 3 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ] }, "registry": "{\"version\": 1, \"patterns\": [{\"id\": \"p1\", \"kind\": \"rectangular\", \"parameters\": {\"count_x\": 3, \"count_y\": 2, \"spacing_x\": 12.0, \"spacing_y\": 15.0, \"angle\": 0.0}, \"source_geometry_ids\": [1], \"created_geometry_ids\": [4, 5, 6, 7, 8], \"helper_geometry_ids\": [2, 3], \"constraint_names\": [\"Массив1Связь1\", \"Массив1Связь2\", \"Массив1Направление\", \"Массив1ШагX\", \"Массив1ШагY\", \"Массив1Связь6\", \"Массив1Связь7\", \"Массив1Связь8\", \"Массив1Связь9\", \"Массив1Связь10\", \"Массив1Связь11\", \"Массив1Связь12\", \"Массив1Связь13\", \"Массив1Связь14\", \"Массив1Связь15\", \"Массив1Связь16\", \"Массив1Связь17\", \"Массив1Связь18\", \"Массив1Связь19\", \"Массив1Связь20\"], \"dimension_names\": {\"Направление\": \"Массив1Направление\", \"ШагX\": \"Массив1ШагX\", \"ШагY\": \"Массив1ШагY\"}, \"associative\": true}]}", "formulas": [ [ ".Constraints.Массив1Связь10", "2 * .Constraints.Массив1ШагX * cos(.Constraints.Массив1Направление) - 0 * .Constraints.Массив1ШагY * sin(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь11", "2 * .Constraints.Массив1ШагX * sin(.Constraints.Массив1Направление) + 0 * .Constraints.Массив1ШагY * cos(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь13", "0 * .Constraints.Массив1ШагX * cos(.Constraints.Массив1Направление) - 1 * .Constraints.Массив1ШагY * sin(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь14", "0 * .Constraints.Массив1ШагX * sin(.Constraints.Массив1Направление) + 1 * .Constraints.Массив1ШагY * cos(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь16", "1 * .Constraints.Массив1ШагX * cos(.Constraints.Массив1Направление) - 1 * .Constraints.Массив1ШагY * sin(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь17", "1 * .Constraints.Массив1ШагX * sin(.Constraints.Массив1Направление) + 1 * .Constraints.Массив1ШагY * cos(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь19", "2 * .Constraints.Массив1ШагX * cos(.Constraints.Массив1Направление) - 1 * .Constraints.Массив1ШагY * sin(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь2", "1 mm" ], [ ".Constraints.Массив1Связь20", "2 * .Constraints.Массив1ШагX * sin(.Constraints.Массив1Направление) + 1 * .Constraints.Массив1ШагY * cos(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь7", "1 * .Constraints.Массив1ШагX * cos(.Constraints.Массив1Направление) - 0 * .Constraints.Массив1ШагY * sin(.Constraints.Массив1Направление)" ], [ ".Constraints.Массив1Связь8", "1 * .Constraints.Массив1ШагX * sin(.Constraints.Массив1Направление) + 0 * .Constraints.Массив1ШагY * cos(.Constraints.Массив1Направление)" ] ], "point_count": 1 }, "revised_native_preview": { "circle_count": 8, "native_geometry_count": 10, "constraint_count": 29, "centers_and_radii_mm": [ [ 7.0, 4.0, 2.0 ], [ 7.0, 19.0, 2.0 ], [ 19.0, 4.0, 2.0 ], [ 19.0, 19.0, 2.0 ], [ 31.0, 4.0, 2.0 ], [ 31.0, 19.0, 2.0 ], [ 43.0, 4.0, 2.0 ], [ 43.0, 19.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 4, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 11, 12, 13, 14, 15, 16, 17 ], "helper_geometry_ids": [ 9, 10 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20", "Массив1Связь21", "Массив1Связь22", "Массив1Связь23", "Массив1Связь24", "Массив1Связь25", "Массив1Связь26" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "generated_ids": [ 3, 4, 5, 6, 7, 8, 9 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 ] } ], "solver_result": 0 }, "temporary_document": "QIPreview4ed32be399f7421c87145d667488634e", "original_registry_preserved": true, "original_formulas_preserved": true, "source_datum_label_positions_before": [ [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 10.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 24.347156524658203, 0.0 ], [ 3.0, -13.0 ], [ 38.0, -4.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ] ], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-rectangular-existing-pattern-edit-dialog.png", "cancel_preserved_native_data_history_dirty_flag": true, "source_datum_label_positions_after_cancel": [ [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 10.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 24.347156524658203, 0.0 ], [ 3.0, -13.0 ], [ 38.0, -4.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ] ], "history_before": { "undo_count": 1, "redo_count": 1, "undo_names": [ "Прямоугольный массив" ], "redo_names": [ "Изменить радиус исходной окружности массива" ] }, "history_after_native_redo": { "undo_count": 2, "redo_count": 0, "undo_names": [ "Изменить радиус исходной окружности массива", "Прямоугольный массив" ], "redo_names": [] }, "source_radius_after_native_redo_mm": 3.0, "regenerated_pattern_after_native_redo": { "circle_count": 6, "native_geometry_count": 8, "constraint_count": 23, "centers_and_radii_mm": [ [ 7.0, 4.0, 3.0 ], [ 7.0, 19.0, 3.0 ], [ 19.0, 4.0, 3.0 ], [ 19.0, 19.0, 3.0 ], [ 31.0, 4.0, 3.0 ], [ 31.0, 19.0, 3.0 ] ], "metadata": [ { "id": "p1", "kind": "rectangular", "parameters": { "count_x": 3, "count_y": 2, "spacing_x": 12.0, "spacing_y": 15.0, "angle": 0.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 5, 6, 7, 8 ], "helper_geometry_ids": [ 2, 3 ], "constraint_names": [ "Массив1Связь1", "Массив1Связь2", "Массив1Направление", "Массив1ШагX", "Массив1ШагY", "Массив1Связь6", "Массив1Связь7", "Массив1Связь8", "Массив1Связь9", "Массив1Связь10", "Массив1Связь11", "Массив1Связь12", "Массив1Связь13", "Массив1Связь14", "Массив1Связь15", "Массив1Связь16", "Массив1Связь17", "Массив1Связь18", "Массив1Связь19", "Массив1Связь20" ], "dimension_names": { "Направление": "Массив1Направление", "ШагX": "Массив1ШагX", "ШагY": "Массив1ШагY" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 4, 5, 6, 7 ], "generated_ids": [ 3, 4, 5, 6, 7 ], "helper_ids": [ 1, 2 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ] } ], "solver_result": 0 } } }, { "name": "circular: existing Point helpers survive detached Edit preview; Cancel preserves registry/formulas/Redo", "passed": true, "result": { "shadow_before_set_parameters": { "signature": { "geometry": [ [ "Circle", [ 7.0, 4.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "Point", [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] ], [ "LineSegment", [ 0.0, 0.0, 0.0 ], [ 7.0, 4.0, 0.0 ] ], [ "Circle", [ -4.0, 7.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "LineSegment", [ 0.0, 0.0, 0.0 ], [ -4.0, 7.0, 0.0 ] ], [ "Circle", [ -7.0, -4.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "LineSegment", [ 0.0, 0.0, 0.0 ], [ -7.0, -4.0, 0.0 ] ], [ "Circle", [ 4.0, -7.0, 0.0 ], [ 0.0, 0.0, 1.0 ], 2.0 ], [ "LineSegment", [ 0.0, 0.0, 0.0 ], [ 4.0, -7.0, 0.0 ] ] ], "constraints": [ [ "DistanceX", 0, 3, -2000, 0, -2000, 0, 7.0, "ЦентрX" ], [ "DistanceY", 0, 3, -2000, 0, -2000, 0, 4.0, "ЦентрY" ], [ "Radius", 0, 0, -2000, 0, -2000, 0, 2.0, "Радиус" ], [ "DistanceX", 1, 1, -2000, 0, -2000, 0, 0.0, "КруговойМассив1ЦентрX" ], [ "DistanceY", 1, 1, -2000, 0, -2000, 0, 0.0, "КруговойМассив1ЦентрY" ], [ "Coincident", 2, 1, 1, 1, -2000, 0, 0.0, "КруговойМассив1Связь3" ], [ "Coincident", 2, 2, 0, 3, -2000, 0, 0.0, "КруговойМассив1Связь4" ], [ "Equal", 0, 0, 3, 0, -2000, 0, 0.0, "КруговойМассив1Связь5" ], [ "Coincident", 4, 1, 1, 1, -2000, 0, 0.0, "КруговойМассив1Связь6" ], [ "Coincident", 4, 2, 3, 3, -2000, 0, 0.0, "КруговойМассив1Связь7" ], [ "Equal", 2, 0, 4, 0, -2000, 0, 0.0, "КруговойМассив1Связь8" ], [ "Angle", 2, 0, 4, 0, -2000, 0, 1.570796327, "КруговойМассив1УголШага" ], [ "Equal", 0, 0, 5, 0, -2000, 0, 0.0, "КруговойМассив1Связь10" ], [ "Coincident", 6, 1, 1, 1, -2000, 0, 0.0, "КруговойМассив1Связь11" ], [ "Coincident", 6, 2, 5, 3, -2000, 0, 0.0, "КруговойМассив1Связь12" ], [ "Equal", 2, 0, 6, 0, -2000, 0, 0.0, "КруговойМассив1Связь13" ], [ "Angle", 2, 0, 6, 0, -2000, 0, 3.141592654, "КруговойМассив1Связь14" ], [ "Equal", 0, 0, 7, 0, -2000, 0, 0.0, "КруговойМассив1Связь15" ], [ "Coincident", 8, 1, 1, 1, -2000, 0, 0.0, "КруговойМассив1Связь16" ], [ "Coincident", 8, 2, 7, 3, -2000, 0, 0.0, "КруговойМассив1Связь17" ], [ "Equal", 2, 0, 8, 0, -2000, 0, 0.0, "КруговойМассив1Связь18" ], [ "Angle", 2, 0, 8, 0, -2000, 0, 4.71238898, "КруговойМассив1Связь19" ] ], "datum_label_positions": [ [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 10.0 ], [ 14.0, 0.0 ], [ 14.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 11.363961219787598, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ] ], "construction": [ false, true, true, false, true, false, true, false, true ], "property_names": [ "ArcFitTolerance", "AttacherEngine", "AttacherType", "AttachmentOffset", "AttachmentSupport", "Constraints", "Exports", "ExpressionEngine", "ExternalGeo", "ExternalGeometry", "ExternalTypes", "FullyConstrained", "Geometry", "InternalShape", "Label", "Label2", "MakeInternals", "MapMode", "MapPathParameter", "MapReversed", "Placement", "QISketchPatterns", "Shape", "ShapeMaterial", "Visibility", "_ElementMapVersion", "_ExternalGeoVersion" ], "patterns": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 6, 8 ], "helper_geometry_ids": [ 2, 3, 5, 7, 9 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ] }, "registry": "{\"version\": 1, \"patterns\": [{\"id\": \"p1\", \"kind\": \"circular\", \"parameters\": {\"count\": 4, \"center\": [0.0, 0.0], \"angle\": 360.0}, \"source_geometry_ids\": [1], \"created_geometry_ids\": [4, 6, 8], \"helper_geometry_ids\": [2, 3, 5, 7, 9], \"constraint_names\": [\"КруговойМассив1ЦентрX\", \"КруговойМассив1ЦентрY\", \"КруговойМассив1Связь3\", \"КруговойМассив1Связь4\", \"КруговойМассив1Связь5\", \"КруговойМассив1Связь6\", \"КруговойМассив1Связь7\", \"КруговойМассив1Связь8\", \"КруговойМассив1УголШага\", \"КруговойМассив1Связь10\", \"КруговойМассив1Связь11\", \"КруговойМассив1Связь12\", \"КруговойМассив1Связь13\", \"КруговойМассив1Связь14\", \"КруговойМассив1Связь15\", \"КруговойМассив1Связь16\", \"КруговойМассив1Связь17\", \"КруговойМассив1Связь18\", \"КруговойМассив1Связь19\"], \"dimension_names\": {\"ЦентрX\": \"КруговойМассив1ЦентрX\", \"ЦентрY\": \"КруговойМассив1ЦентрY\", \"УголШага\": \"КруговойМассив1УголШага\"}, \"associative\": true}]}", "formulas": [ [ ".Constraints.КруговойМассив1Связь14", "2 * .Constraints.КруговойМассив1УголШага" ], [ ".Constraints.КруговойМассив1Связь19", "3 * .Constraints.КруговойМассив1УголШага" ] ], "point_count": 1 }, "revised_native_preview": { "circle_count": 6, "native_geometry_count": 13, "constraint_count": 32, "centers_and_radii_mm": [ [ -8.01426, 0.878429, 2.0 ], [ -7.0, -4.0, 2.0 ], [ -5.967345, 5.421328, 2.0 ], [ -1.641107, 7.893464, 2.0 ], [ 3.311978, 7.350565, 2.0 ], [ 7.0, 4.0, 2.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 6, "center": [ 0.0, 0.0 ], "angle": 180.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 12, 14, 16, 18, 20 ], "helper_geometry_ids": [ 10, 11, 13, 15, 17, 19, 21 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19", "КруговойМассив1Связь20", "КруговойМассив1Связь21", "КруговойМассив1Связь22", "КруговойМассив1Связь23", "КруговойМассив1Связь24", "КруговойМассив1Связь25", "КруговойМассив1Связь26", "КруговойМассив1Связь27", "КруговойМассив1Связь28", "КруговойМассив1Связь29" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7, 9, 11 ], "generated_ids": [ 3, 5, 7, 9, 11 ], "helper_ids": [ 1, 2, 4, 6, 8, 10, 12 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 ] } ], "solver_result": 0 }, "temporary_document": "QIPreviewbfb737b0690b4c579209a314501884be", "original_registry_preserved": true, "original_formulas_preserved": true, "source_datum_label_positions_before": [ [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 10.0 ], [ 14.0, 0.0 ], [ 14.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 11.363961219787598, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ] ], "rendered_dialog": "C:\\Repos\\qinventor\\artifacts\\validation\\sketch-circular-existing-pattern-edit-dialog.png", "cancel_preserved_native_data_history_dirty_flag": true, "source_datum_label_positions_after_cancel": [ [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 10.0 ], [ 14.0, 0.0 ], [ 14.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 11.363961219787598, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ], [ 10.0, 0.0 ] ], "history_before": { "undo_count": 1, "redo_count": 1, "undo_names": [ "Круговой массив" ], "redo_names": [ "Изменить радиус исходной окружности массива" ] }, "history_after_native_redo": { "undo_count": 2, "redo_count": 0, "undo_names": [ "Изменить радиус исходной окружности массива", "Круговой массив" ], "redo_names": [] }, "source_radius_after_native_redo_mm": 3.0, "regenerated_pattern_after_native_redo": { "circle_count": 4, "native_geometry_count": 9, "constraint_count": 22, "centers_and_radii_mm": [ [ -7.0, -4.0, 3.0 ], [ -4.0, 7.0, 3.0 ], [ 4.0, -7.0, 3.0 ], [ 7.0, 4.0, 3.0 ] ], "metadata": [ { "id": "p1", "kind": "circular", "parameters": { "count": 4, "center": [ 0.0, 0.0 ], "angle": 360.0 }, "source_geometry_ids": [ 1 ], "created_geometry_ids": [ 4, 6, 8 ], "helper_geometry_ids": [ 2, 3, 5, 7, 9 ], "constraint_names": [ "КруговойМассив1ЦентрX", "КруговойМассив1ЦентрY", "КруговойМассив1Связь3", "КруговойМассив1Связь4", "КруговойМассив1Связь5", "КруговойМассив1Связь6", "КруговойМассив1Связь7", "КруговойМассив1Связь8", "КруговойМассив1УголШага", "КруговойМассив1Связь10", "КруговойМассив1Связь11", "КруговойМассив1Связь12", "КруговойМассив1Связь13", "КруговойМассив1Связь14", "КруговойМассив1Связь15", "КруговойМассив1Связь16", "КруговойМассив1Связь17", "КруговойМассив1Связь18", "КруговойМассив1Связь19" ], "dimension_names": { "ЦентрX": "КруговойМассив1ЦентрX", "ЦентрY": "КруговойМассив1ЦентрY", "УголШага": "КруговойМассив1УголШага" }, "associative": true, "source_ids": [ 0 ], "created_ids": [ 3, 5, 7 ], "generated_ids": [ 3, 5, 7 ], "helper_ids": [ 1, 2, 4, 6, 8 ], "all_geometry_ids": [ 1, 2, 3, 4, 5, 6, 7, 8 ], "constraint_ids": [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ] } ], "solver_result": 0 } } }, { "name": "Russian transformation controls and Finish/Cancel remain visible at 1440 px", "passed": true, "result": { "window_width": 1440, "controls": { "QI_SketchMirror": { "caption": "Зеркальное отражение", "tooltip": "Выберите геометрию эскиза и задайте ось отражения. Копии связаны с исходными размерами; доступен предпросмотр.", "visible_without_scroll": true }, "QI_SketchRectangularPattern": { "caption": "Прямоугольный массив", "tooltip": "Повторить выбранную геометрию в двух перпендикулярных направлениях. Задайте количество, шаг и угол направления.", "visible_without_scroll": true }, "QI_SketchCircularPattern": { "caption": "Круговой массив", "tooltip": "Повторить выбранную геометрию вокруг заданного центра. Задайте количество и общий угол; копии сохраняют связь.", "visible_without_scroll": true }, "QI_SketchOffset": { "caption": "Смещение геометрии", "tooltip": "Создать смещённую геометрию: выбор контура, расстояние и связь с исходными размерами. Отрицательное расстояние меняет сторону.", "visible_without_scroll": true }, "QI_EditSketchPattern": { "caption": "Параметры повторений", "tooltip": "Изменить ось зеркала, количество, шаг, центр или угол созданного повторения геометрии.", "visible_without_scroll": true }, "QI_FinishSketch": { "caption": "Завершить\nэскиз", "tooltip": "Закрыть редактор и вернуться к модели", "visible_without_scroll": true }, "QI_CancelSketch": { "caption": "Отменить\nэскиз", "tooltip": "Отменить новые построения; существующий эскиз вернётся к состоянию до редактирования", "visible_without_scroll": true } }, "untranslated_candidates": [] } } ], "input_delivery": "Qt button and keyboard events on native dialogs", "selection_method": "explicit native Sketch Edge1 preselection through Selection API", "persistence_boundary": "Qt QI_Save and native App.openDocument on the saved FCStd", "os_pointer_access": false, "native_shadow_guard": { "module_file": "C:\\Repos\\qinventor\\src\\QInventor\\qi_sketch_preview.py", "point_coordinate_attributes": [ "X", "Y", "Z" ] } } }, { "name": "parametric_solid_kernel_suite", "passed": true, "result": { "status": "passed", "freecad_version": [ "1", "1", "4", "20260928 (Git shallow)", "Unknown", "2026/09/28 13:46:34", "(HEAD detached at 4fd3bf320)", "4fd3bf320d9566a27e60069fc8387448aaa3a094" ], "gui": true, "source": "C:\\Repos\\qinventor\\src\\QInventor\\qi_model.py", "passed": 20, "failed": 0, "skipped": 0, "checks": [ { "name": "box_volume_constraints", "passed": true, "status": "passed", "detail": { "volume_mm3": 63999.999999999985, "fully_constrained": true, "feature": "PartDesign::Pad" } }, { "name": "box_edit_undo_redo", "passed": true, "status": "passed", "detail": { "volume_mm3": 15000.0, "undo_redo": true, "native_parameters": "App::VarSet" } }, { "name": "creation_undo_redo", "passed": true, "status": "passed", "detail": { "single_creation_undo": true } }, { "name": "cylinder_material", "passed": true, "status": "passed", "detail": { "material": "Алюминий", "mass_kg": 0.0732870734229427 } }, { "name": "plate_parametric_holes", "passed": true, "status": "passed", "detail": { "volume_mm3": 83685.66394729842, "fully_constrained": true, "holes": 2 } }, { "name": "atomic_dimensions_and_rejection", "passed": true, "status": "passed", "detail": { "rejected_without_partial_changes": true } }, { "name": "invalid_dimension_inputs", "passed": true, "status": "passed", "detail": { "invalid_cases": 14, "document_unchanged": true } }, { "name": "free_sketch_dimensions", "passed": true, "status": "passed", "detail": { "rectangle_driving_dimensions": [ "Length", "Width" ], "circle_radius": 9 } }, { "name": "all_origin_planes", "passed": true, "status": "passed", "detail": { "planes": [ "XY", "XZ", "YZ" ] } }, { "name": "pocket_and_rollback", "passed": true, "status": "passed", "detail": { "real_subtractive_volume_mm3": 19214.601836602546, "failed_pocket_rolled_back": true } }, { "name": "save_and_reopen", "passed": true, "status": "passed", "detail": { "native_project": "C:\\Repos\\qinventor\\artifacts\\validation\\parametric-bracket.FCStd", "editable_after_reopen": true } }, { "name": "step_round_trip", "passed": true, "status": "passed", "detail": { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\bracket.step", "imported_volume_mm3": 56743.36293856411, "valid": true } }, { "name": "solid_export_formats", "passed": true, "status": "passed", "detail": { "formats": [ ".iges", ".brep", ".stl" ], "stl_facets": 12 } }, { "name": "flat_exports_world_geometry_and_history", "passed": true, "status": "passed", "detail": { "checks": 45, "analytical_geometry_and_history": [ { "case": "placed_assembly-default-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "A_local": [ 10, 20, 30, 90 ], "B_local": [ 40, 50, 60, 180 ], "A_world": [ 80, 210, 330, 180 ], "B_world": [ 50, 240, 360, 270 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 233.99999999999997, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 234.00000000000003, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 233.99999999999997, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 0.0, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_assembly-default-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "A_local": [ 10, 20, 30, 90 ], "B_local": [ 40, 50, 60, 180 ], "A_world": [ 80, 210, 330, 180 ], "B_world": [ 50, 240, 360, 270 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 12, "volume_mm3": 0, "native_volume_mm3": 233.99999999999994, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 234.00000000000003, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 233.99999999999994, "com_mm": [ 55.66666666666665, 234.52564102564102, 360.26923076923083 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 0.0, "com_distance_mm": 5.859285502108464E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_assembly-default-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "A_local": [ 10, 20, 30, 90 ], "B_local": [ 40, 50, 60, 180 ], "A_world": [ 80, 210, 330, 180 ], "B_world": [ 50, 240, 360, 270 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 24, "volume_mm3": 234.0, "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ], "original_redo_executed": true }, { "case": "placed_assembly-explicit-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "A_local": [ 10, 20, 30, 90 ], "B_local": [ 40, 50, 60, 180 ], "A_world": [ 80, 210, 330, 180 ], "B_world": [ 50, 240, 360, 270 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 233.99999999999997, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 234.00000000000003, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 233.99999999999997, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 0.0, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_assembly-explicit-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "A_local": [ 10, 20, 30, 90 ], "B_local": [ 40, 50, 60, 180 ], "A_world": [ 80, 210, 330, 180 ], "B_world": [ 50, 240, 360, 270 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 12, "volume_mm3": 0, "native_volume_mm3": 233.99999999999994, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 234.00000000000003, "com_mm": [ 55.666666666666664, 234.52564102564102, 360.2692307692308 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 234.0, "native_volume_mm3": 233.99999999999994, "com_mm": [ 55.66666666666665, 234.52564102564102, 360.26923076923083 ], "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 0.0, "com_distance_mm": 5.859285502108464E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_assembly-explicit-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "A_local": [ 10, 20, 30, 90 ], "B_local": [ 40, 50, 60, 180 ], "A_world": [ 80, 210, 330, 180 ], "B_world": [ 50, 240, 360, 270 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 24, "volume_mm3": 234.0, "bounds_mm": [ 50.0, 207.0, 330.0, 80.0, 240.0, 367.0 ], "original_redo_executed": true }, { "case": "placed_body-default-brep", "known_placements": { "parent": [ 50, 60, 70, 90 ], "body": [ 10, 20, 30, 90 ], "independent_world": [ 30, 70, 100, 180 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 23.999999999999996, "native_volume_mm3": 23.999999999999996, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "comparison": { "expected": { "type": "Solid", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 24.0, "native_volume_mm3": 24.0, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 23.999999999999996, "native_volume_mm3": 23.999999999999996, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 3.552713678800501E-15, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_body-default-iges", "known_placements": { "parent": [ 50, 60, 70, 90 ], "body": [ 10, 20, 30, 90 ], "independent_world": [ 30, 70, 100, 180 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 6, "volume_mm3": 0, "native_volume_mm3": 23.999999999999996, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Solid", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 24.0, "native_volume_mm3": 24.0, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 23.999999999999996, "native_volume_mm3": 23.999999999999996, "com_mm": [ 29.0, 68.50000000000001, 101.99999999999997 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 3.552713678800501E-15, "com_distance_mm": 3.1776437161565096E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_body-default-stl", "known_placements": { "parent": [ 50, 60, 70, 90 ], "body": [ 10, 20, 30, 90 ], "independent_world": [ 30, 70, 100, 180 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 12, "volume_mm3": 24.0, "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ], "original_redo_executed": true }, { "case": "placed_body-explicit-brep", "known_placements": { "parent": [ 50, 60, 70, 90 ], "body": [ 10, 20, 30, 90 ], "independent_world": [ 30, 70, 100, 180 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 23.999999999999996, "native_volume_mm3": 23.999999999999996, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "comparison": { "expected": { "type": "Solid", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 24.0, "native_volume_mm3": 24.0, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 23.999999999999996, "native_volume_mm3": 23.999999999999996, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 3.552713678800501E-15, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_body-explicit-iges", "known_placements": { "parent": [ 50, 60, 70, 90 ], "body": [ 10, 20, 30, 90 ], "independent_world": [ 30, 70, 100, 180 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 6, "volume_mm3": 0, "native_volume_mm3": 23.999999999999996, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Solid", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 24.0, "native_volume_mm3": 24.0, "com_mm": [ 29.0, 68.5, 102.0 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 23.999999999999996, "native_volume_mm3": 23.999999999999996, "com_mm": [ 29.0, 68.50000000000001, 101.99999999999997 ], "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 3.552713678800501E-15, "com_distance_mm": 3.1776437161565096E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "placed_body-explicit-stl", "known_placements": { "parent": [ 50, 60, 70, 90 ], "body": [ 10, 20, 30, 90 ], "independent_world": [ 30, 70, 100, 180 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 12, "volume_mm3": 24.0, "bounds_mm": [ 28.0, 67.0, 100.0, 30.0, 70.0, 104.0 ], "original_redo_executed": true }, { "case": "array-default-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 3, "all_elements_visible": true }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0, "native_volume_mm3": 864.0, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0000000000002, "native_volume_mm3": 864.0000000000002, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0, "native_volume_mm3": 864.0, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "array-default-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 3, "all_elements_visible": true }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 18, "volume_mm3": 0, "native_volume_mm3": 864.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0000000000002, "native_volume_mm3": 864.0000000000002, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0, "native_volume_mm3": 864.0, "com_mm": [ 95.91666666666669, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 1.4210854715202004E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "array-default-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 3, "all_elements_visible": true }, "exact_snapshot_before_first_world_query": true, "stl_facets": 36, "volume_mm3": 864.0, "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ], "original_redo_executed": true }, { "case": "array-explicit-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 3, "all_elements_visible": true }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0, "native_volume_mm3": 864.0, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0000000000002, "native_volume_mm3": 864.0000000000002, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0, "native_volume_mm3": 864.0, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "array-explicit-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 3, "all_elements_visible": true }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 18, "volume_mm3": 0, "native_volume_mm3": 864.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0000000000002, "native_volume_mm3": 864.0000000000002, "com_mm": [ 95.91666666666667, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 3, "shells": 3, "faces": 18, "volume_mm3": 864.0, "native_volume_mm3": 864.0, "com_mm": [ 95.91666666666669, 219.94444444444446, 305.44444444444446 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 1.4210854715202004E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "array-explicit-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 3, "all_elements_visible": true }, "exact_snapshot_before_first_world_query": true, "stl_facets": 36, "volume_mm3": 864.0, "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ], "original_redo_executed": true }, { "case": "scaled_mirror_subassembly-default-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "source_child_x": [ 10, 30 ], "source_child_rotations_z": [ 0, 90 ], "linked_subassembly_local_x": [ 50, 200 ], "linked_subassembly_scales": [ 2, -1 ], "independent_occurrences": 4, "independent_volume_mm3": 432 }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.0, "native_volume_mm3": 432.0, "com_mm": [ 97.91666666666669, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.00000000000001, 270.0, 296.0, 103.00000000000004, 390.0, 308.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.00000000000006, "native_volume_mm3": 431.9999999999999, "com_mm": [ 97.91666666666667, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.0, "native_volume_mm3": 432.0, "com_mm": [ 97.91666666666669, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.00000000000001, 270.0, 296.0, 103.00000000000004, 390.0, 308.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 5.684341886080802E-14, "com_distance_mm": 1.4210854715202004E-14, "max_bound_delta_mm": 4.263256414560601E-14, "matches": true }, "original_redo_executed": true }, { "case": "scaled_mirror_subassembly-default-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "source_child_x": [ 10, 30 ], "source_child_rotations_z": [ 0, 90 ], "linked_subassembly_local_x": [ 50, 200 ], "linked_subassembly_scales": [ 2, -1 ], "independent_occurrences": 4, "independent_volume_mm3": 432 }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 24, "volume_mm3": 0, "native_volume_mm3": 432.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.00000000000006, "native_volume_mm3": 431.9999999999999, "com_mm": [ 97.91666666666667, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.0, "native_volume_mm3": 432.0, "com_mm": [ 97.91666666666667, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 5.684341886080802E-14, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "scaled_mirror_subassembly-default-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "source_child_x": [ 10, 30 ], "source_child_rotations_z": [ 0, 90 ], "linked_subassembly_local_x": [ 50, 200 ], "linked_subassembly_scales": [ 2, -1 ], "independent_occurrences": 4, "independent_volume_mm3": 432 }, "exact_snapshot_before_first_world_query": true, "stl_facets": 48, "volume_mm3": 432.0, "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ], "original_redo_executed": true }, { "case": "scaled_mirror_subassembly-explicit-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "source_child_x": [ 10, 30 ], "source_child_rotations_z": [ 0, 90 ], "linked_subassembly_local_x": [ 50, 200 ], "linked_subassembly_scales": [ 2, -1 ], "independent_occurrences": 4, "independent_volume_mm3": 432 }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.0, "native_volume_mm3": 432.0, "com_mm": [ 97.91666666666669, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.00000000000001, 270.0, 296.0, 103.00000000000004, 390.0, 308.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.00000000000006, "native_volume_mm3": 431.9999999999999, "com_mm": [ 97.91666666666667, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.0, "native_volume_mm3": 432.0, "com_mm": [ 97.91666666666669, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.00000000000001, 270.0, 296.0, 103.00000000000004, 390.0, 308.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 5.684341886080802E-14, "com_distance_mm": 1.4210854715202004E-14, "max_bound_delta_mm": 4.263256414560601E-14, "matches": true }, "original_redo_executed": true }, { "case": "scaled_mirror_subassembly-explicit-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "source_child_x": [ 10, 30 ], "source_child_rotations_z": [ 0, 90 ], "linked_subassembly_local_x": [ 50, 200 ], "linked_subassembly_scales": [ 2, -1 ], "independent_occurrences": 4, "independent_volume_mm3": 432 }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 24, "volume_mm3": 0, "native_volume_mm3": 432.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.00000000000006, "native_volume_mm3": 431.9999999999999, "com_mm": [ 97.91666666666667, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 4, "shells": 4, "faces": 24, "volume_mm3": 432.0, "native_volume_mm3": 432.0, "com_mm": [ 97.91666666666667, 299.5833333333333, 303.3333333333333 ], "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 5.684341886080802E-14, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "scaled_mirror_subassembly-explicit-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "source_child_x": [ 10, 30 ], "source_child_rotations_z": [ 0, 90 ], "linked_subassembly_local_x": [ 50, 200 ], "linked_subassembly_scales": [ 2, -1 ], "independent_occurrences": 4, "independent_volume_mm3": 432 }, "exact_snapshot_before_first_world_query": true, "stl_facets": 48, "volume_mm3": 432.0, "bounds_mm": [ 94.0, 270.0, 296.0, 103.0, 390.0, 308.0 ], "original_redo_executed": true }, { "case": "masked_array_virtual-default-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_virtual-default-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 12, "volume_mm3": 0, "native_volume_mm3": 672.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_virtual-default-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 24, "volume_mm3": 672.0, "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ], "original_redo_executed": true }, { "case": "masked_array_virtual-explicit-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_virtual-explicit-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 12, "volume_mm3": 0, "native_volume_mm3": 672.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_virtual-explicit-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 24, "volume_mm3": 672.0, "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ], "original_redo_executed": true }, { "case": "masked_array_expanded-default-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_expanded-default-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 12, "volume_mm3": 0, "native_volume_mm3": 672.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_expanded-default-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 24, "volume_mm3": 672.0, "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ], "original_redo_executed": true }, { "case": "masked_array_expanded-explicit-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_expanded-explicit-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 12, "volume_mm3": 0, "native_volume_mm3": 672.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0000000000002, "native_volume_mm3": 672.0000000000002, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 2, "shells": 2, "faces": 12, "volume_mm3": 672.0, "native_volume_mm3": 672.0, "com_mm": [ 95.60714285714286, 222.21428571428572, 305.85714285714283 ], "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 2.2737367544323206E-13, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "masked_array_expanded-explicit-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 2, "all_elements_visible": false, "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 24, "volume_mm3": 672.0, "bounds_mm": [ 91.0, 200.0, 300.0, 100.0, 226.0, 312.0 ], "original_redo_executed": true }, { "case": "hidden_element-explicit-brep", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 1, "all_elements_visible": false, "explicitly_selected_hidden_element": "Array_i1", "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 191.99999999999997, "native_volume_mm3": 191.99999999999997, "com_mm": [ 97.0, 212.0, 304.0 ], "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ] }, "comparison": { "expected": { "type": "Solid", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 192.00000000000006, "native_volume_mm3": 192.00000000000006, "com_mm": [ 97.00000000000001, 212.0, 304.0 ], "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 191.99999999999997, "native_volume_mm3": 191.99999999999997, "com_mm": [ 97.0, 212.0, 304.0 ], "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 8.526512829121202E-14, "com_distance_mm": 1.4210854715202004E-14, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "hidden_element-explicit-iges", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 1, "all_elements_visible": false, "explicitly_selected_hidden_element": "Array_i1", "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "raw_readback": { "type": "Compound", "valid": true, "solids": 0, "shells": 0, "faces": 6, "volume_mm3": 0, "native_volume_mm3": 192.0, "com_mm": [ 0.0, 0.0, 0.0 ], "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ] }, "iges_topology_readback": "native sewShape of raw imported surfaces and closed-shell makeSolid", "comparison": { "expected": { "type": "Solid", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 192.00000000000006, "native_volume_mm3": 192.00000000000006, "com_mm": [ 97.00000000000001, 212.0, 304.0 ], "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ] }, "actual": { "type": "Compound", "valid": true, "solids": 1, "shells": 1, "faces": 6, "volume_mm3": 192.0, "native_volume_mm3": 192.0, "com_mm": [ 97.00000000000001, 212.0, 304.0 ], "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ] }, "missing_volume_mm3": 0.0, "excess_volume_mm3": 0.0, "volume_delta_mm3": 5.684341886080802E-14, "com_distance_mm": 0.0, "max_bound_delta_mm": 0.0, "matches": true }, "original_redo_executed": true }, { "case": "hidden_element-explicit-stl", "known_placements": { "root": [ 100, 200, 300, 90 ], "array_local_x": [ 0, 10, 20 ], "array_scales": [ 1, 2, 3 ], "independent_occurrences": 1, "all_elements_visible": false, "explicitly_selected_hidden_element": "Array_i1", "native_element_visibility": [ 1, 0, 1 ] }, "exact_snapshot_before_first_world_query": true, "stl_facets": 12, "volume_mm3": 192.0, "bounds_mm": [ 94.0, 210.0, 300.0, 100.0, 214.0, 308.0 ], "original_redo_executed": true }, { "case": "post-native-writer-fault.brep", "original_exact_payload_history_active_doc": true, "original_redo_executed": true, "old_destination_exact": true, "temporary_cleanup_exact": true, "native_writer_completed_before_injected_failure": true, "before_first_world_query": true }, { "case": "post-native-writer-fault.iges", "original_exact_payload_history_active_doc": true, "original_redo_executed": true, "old_destination_exact": true, "temporary_cleanup_exact": true, "native_writer_completed_before_injected_failure": true, "before_first_world_query": true }, { "case": "post-native-writer-fault.stl", "original_exact_payload_history_active_doc": true, "original_redo_executed": true, "old_destination_exact": true, "temporary_cleanup_exact": true, "native_writer_completed_before_injected_failure": true, "before_first_world_query": true }, { "case": "all-hidden-array-rejection.brep", "original_exact_payload_history_active_doc": true, "original_redo_executed": true, "old_destination_exact": true, "temporary_cleanup_exact": true, "empty_geometry_rejected": "Нет твердых тел для экспорта", "before_first_world_query": true }, { "case": "all-hidden-array-rejection.iges", "original_exact_payload_history_active_doc": true, "original_redo_executed": true, "old_destination_exact": true, "temporary_cleanup_exact": true, "empty_geometry_rejected": "Нет твердых тел для экспорта", "before_first_world_query": true }, { "case": "all-hidden-array-rejection.stl", "original_exact_payload_history_active_doc": true, "original_redo_executed": true, "old_destination_exact": true, "temporary_cleanup_exact": true, "empty_geometry_rejected": "Нет твердых тел для экспорта", "before_first_world_query": true } ] } }, { "name": "export_rejects_non_solids", "passed": true, "status": "passed", "detail": { "rejected_selections": [ "Sketch.step", "Sketch.iges", "Sketch.brep", "Sketch.stl", "Empty.step", "Empty.iges", "Empty.brep", "Empty.stl", "Wire.step", "Wire.iges", "Wire.brep", "Wire.stl", "Mixed.step", "Mixed.iges", "Mixed.brep", "Mixed.stl" ], "existing_file_preserved": true } }, { "name": "export_rejects_cached_failed_feature", "passed": true, "status": "passed", "detail": { "native_error": "Cannot create a pad with a total length of zero.", "cached_volume_mm3": 999.9999999999998, "rejected_exports": 16, "independent_and_recovered_exports": true } }, { "name": "assembly_solver_links_bom", "passed": true, "status": "passed", "detail": { "solver_status": 0, "joint_types": [ "Fixed", "Revolute" ], "components": 3, "bom_rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "QI-001", "name": "Плита с отверстиями", "quantity": 1, "quantity_total": 1, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.15063419510513718, "mass_kg": 0.15063419510513718, "source_id": "QInventorAssembly#Body", "source_name": "Body", "source_doc": "QInventorAssembly", "is_assembly": false, "kind": "part", "row_id": "QInventorAssembly#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 55790.4426315, 17430.7964474)", "materials": [ "Алюминий" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "QI-002", "name": "Штифт", "quantity": 2, "quantity_total": 2, "material": "Сталь", "density_kg_m3": 7850.000000000001, "unit_mass_kg": 0.02903645284414249, "mass_kg": 0.05807290568828498, "source_id": "QInventorAssembly#Body001", "source_name": "Body001", "source_doc": "QInventorAssembly", "is_assembly": false, "kind": "part", "row_id": "QInventorAssembly#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 3698.91119034, 1486.85297109)", "materials": [ "Сталь" ] } ] } }, { "name": "assembly_reopen_step", "passed": true, "status": "passed", "detail": { "reopened_joints": true, "step_solids": 3 } }, { "name": "drawing_associativity", "passed": true, "status": "passed", "detail": { "views": 3, "model_change_recomputed": true, "gui_exports": true, "direct_dxf_after_rapid_edits": true, "dxf_front_width_mm": 100.0, "dxf_front_height_mm": 50.0 } }, { "name": "complete_examples", "passed": true, "status": "passed", "detail": { "volumes_mm3": { "bracket": 56743.36293856411, "plate": 38743.362938564074, "shaft": 45238.93421169302, "pulley": 50265.48245743669 } } } ], "artifacts": [ "C:\\Repos\\qinventor\\artifacts\\validation\\parametric-bracket.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\bracket.step", "C:\\Repos\\qinventor\\artifacts\\validation\\solid.iges", "C:\\Repos\\qinventor\\artifacts\\validation\\solid.brep", "C:\\Repos\\qinventor\\artifacts\\validation\\solid.stl", "C:\\Repos\\qinventor\\artifacts\\validation\\independent-good-body.step", "C:\\Repos\\qinventor\\artifacts\\validation\\recovered-body.step", "C:\\Repos\\qinventor\\artifacts\\validation\\assembly-bom.csv", "C:\\Repos\\qinventor\\artifacts\\validation\\native-assembly.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\assembly.step", "C:\\Repos\\qinventor\\artifacts\\validation\\associative-drawing.dxf", "C:\\Repos\\qinventor\\artifacts\\validation\\associative-drawing.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\associative-drawing.svg", "C:\\Repos\\qinventor\\artifacts\\validation\\associative-drawing.pdf" ], "success": true } }, { "name": "native_project_russian_label_suite", "passed": true, "result": { "status": "passed", "passed": 12, "failed": 0, "skipped": 0, "checks": [ { "name": "native_label_roundtrip", "passed": true, "status": "passed", "detail": { "native_open_label": "ascii-part", "restored_label": "Деталь — русское имя № 1", "sha256": "12bb1c1827f0e229c2abc3b2853fe287b4a8467dab7f5d5007e8b1f9948ab09e", "file_unchanged": true } }, { "name": "missing_invalid_other_formats", "passed": true, "status": "passed", "detail": { "rejected": 4, "files_and_label_unchanged": true } }, { "name": "malformed_xml_missing_label", "passed": true, "status": "passed", "detail": { "rejected": 5, "child_label_ignored": true } }, { "name": "reject_dtd_and_entities", "passed": true, "status": "passed", "detail": { "rejected_encodings": [ "utf-8", "utf-16", "utf-32" ] } }, { "name": "reject_oversize_without_extraction", "passed": true, "status": "passed", "detail": { "max_xml_bytes": 8388608, "oversize_rejected": true, "no_extraction": true } }, { "name": "gui_modified_state_and_history", "passed": true, "status": "passed", "detail": { "clean_preserved": true, "dirty_preserved": true, "undo_redo_unchanged": true, "file_unchanged": true, "title_marker_after_recompute": true, "title_marker_cleared_on_save": true, "native_save_return": null, "states": { "before_native_save": { "gui_document_modified": true, "window_modified": true }, "after_native_save": { "gui_document_modified": true, "window_modified": true }, "before_qi_save_as": { "gui_document_modified": true, "window_modified": true }, "after_qi_save_as": { "gui_document_modified": false, "window_modified": false }, "before_qi_save": { "gui_document_modified": true, "window_modified": true }, "after_qi_save": { "gui_document_modified": false, "window_modified": false }, "before_failed_save": { "gui_document_modified": true, "window_modified": true }, "after_failed_save": { "gui_document_modified": true, "window_modified": true }, "before_cancel_save_as": { "gui_document_modified": true, "window_modified": true }, "after_cancel_save_as": { "gui_document_modified": true, "window_modified": true } }, "saved_geometry_reopened_mm": [ 19, 23 ], "failed_save_errors": [ { "title": "QInventor", "text": "Не удалось выполнить команду. Проверьте выбранную геометрию и параметры." } ], "failed_and_cancelled_saves_preserve_dirty_history_and_file": true } }, { "name": "gui_qi_open_fcstd", "passed": true, "status": "passed", "detail": { "suffix": ".fcstd", "document": "ascii_part1", "native_modified": false, "opened_modified": false, "geometry": { "volume_mm3": 999.9999999999998 }, "saved_russian_label": "Деталь — русское имя № 1", "existing_unsaved_edits_preserved": true, "source_unchanged": true } }, { "name": "gui_qi_open_step", "passed": true, "status": "passed", "detail": { "suffix": ".step", "document": "Unnamed", "native_modified": true, "opened_modified": true, "geometry": { "volume_mm3": 999.9999999999998 }, "source_unchanged": true } }, { "name": "gui_qi_open_iges", "passed": true, "status": "passed", "detail": { "suffix": ".iges", "document": "Unnamed", "native_modified": true, "opened_modified": true, "geometry": { "volume_mm3": 999.9999999999998 }, "source_unchanged": true } }, { "name": "gui_qi_open_brep", "passed": true, "status": "passed", "detail": { "suffix": ".brep", "document": "Обмен", "native_modified": true, "opened_modified": true, "geometry": { "volume_mm3": 999.9999999999998 }, "source_unchanged": true } }, { "name": "gui_qi_open_stl", "passed": true, "status": "passed", "detail": { "suffix": ".stl", "document": "Unnamed", "native_modified": true, "opened_modified": true, "geometry": { "facets": 12, "dimensions_mm": [ 10.0, 10.0, 10.0 ] }, "source_unchanged": true } }, { "name": "gui_qi_open_failures", "passed": true, "status": "passed", "detail": { "rejected": 6, "errors": [ { "title": "QInventor", "text": "Формат файла не поддерживается. Выберите FCStd, STEP, IGES, BREP или STL." }, { "title": "QInventor", "text": "Не удалось прочитать файл модели. Проверьте его наличие и доступ к нему." }, { "title": "QInventor", "text": "Файл модели пуст." }, { "title": "QInventor", "text": "Не удалось открыть модель. Файл повреждён или его содержимое не соответствует формату." }, { "title": "QInventor", "text": "Не удалось открыть модель. Файл повреждён или его содержимое не соответствует формату." }, { "title": "QInventor", "text": "Не удалось прочитать файл модели. Проверьте его наличие и доступ к нему." } ], "previous_model_preserved": true, "cancel_preserved": true } } ], "artifacts": [ "C:\\Repos\\qinventor\\artifacts\\validation\\ascii-part.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\title-indicator.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\Обмен.step", "C:\\Repos\\qinventor\\artifacts\\validation\\Обмен.iges", "C:\\Repos\\qinventor\\artifacts\\validation\\Обмен.brep", "C:\\Repos\\qinventor\\artifacts\\validation\\Обмен.stl" ], "source": "C:\\Repos\\qinventor\\src\\QInventor\\qi_io.py", "success": true } }, { "name": "unified_extrude_suite", "passed": true, "result": { "passed": true, "count": 41, "gui": true, "scenarios": [ { "name": "XY forward", "passed": true, "volume": 239.99999999999997, "bbox": [ 10.0, 6.0, 4.0 ] }, { "name": "XY reverse", "passed": true, "volume": 239.99999999999997, "bbox": [ 10.0, 6.0, 4.0 ] }, { "name": "XY symmetric", "passed": true, "volume": 239.99999999999997, "bbox": [ 10.0, 6.0, 4.0 ] }, { "name": "XZ plane placement", "passed": true, "volume": 240.0000000000001, "bbox": [ 10.000000000000002, 4.000000000000001, 6.000000000000002 ] }, { "name": "YZ plane placement", "passed": true, "volume": 240.00000000000006, "bbox": [ 4.000000000000002, 6.000000000000002, 10.000000000000002 ] }, { "name": "Nested wires preserve hole", "passed": true, "volume": 1143.5397259066845 }, { "name": "Sketch edits, length expressions and FCStd reopen", "passed": true, "volumeAfterReopenAndEdit": 763.4070148223199, "file": "C:\\Repos\\qinventor\\artifacts\\validation\\parametric-extrusion.FCStd" }, { "name": "Join against previous solid Body Tip", "passed": true, "volume": 4500.0, "base": "Pad" }, { "name": "Cut reverse against previous solid Body Tip", "passed": true, "volume": 3915.1769983530758, "base": "Pad" }, { "name": "Cut through all", "passed": true, "volume": 3717.256661176918, "base": "Pad" }, { "name": "True OCCT intersection", "passed": true, "volume": 399.9999999999999, "base": "Pad" }, { "name": "Through all recalculates extent after base change", "passed": true, "volumeAfterBaseChange": 5947.610657883069 }, { "name": "New Solid is independent and preserves body placement", "passed": true, "bodies": 2 }, { "name": "New Solid remains a sibling inside transformed App Part", "passed": true, "samePartSiblingAndLocalPlacementPreserved": true }, { "name": "Open profile and invalid lengths leave document unchanged", "passed": true, "objectsUnchanged": true }, { "name": "Disjoint booleans are rejected before mutation", "passed": true, "objectsUnchanged": true }, { "name": "Native undo redo retains geometry", "passed": true, "undoRedo": true }, { "name": "Asymmetric persisted distances, expressions, undo and reopen", "passed": true, "length2ExpressionUndoAndReopen": true, "volumeAfterReopen": 899.9999999999999 }, { "name": "To face planar termination and support movement", "passed": true, "slope": 0, "reverse": false, "volumeAfterPlaneMove": 719.9999999999999 }, { "name": "To face exact oblique termination", "passed": true, "slope": 0.5, "reverse": false, "volumeAfterPlaneMove": 870.0000000000003 }, { "name": "To face exact oblique reverse termination", "passed": true, "slope": 0.5, "reverse": true, "volumeAfterPlaneMove": 870.0 }, { "name": "To face exact oblique cap preserves nested holes", "passed": true, "obliqueAnnulusVolume": 5717.698630133525 }, { "name": "To face finite support coverage and explicit extension", "passed": true, "finiteBoundaryRejected": true, "extendedPlaneVolume": 750.0000000000002 }, { "name": "To face cut references previous solid and survives undo redo", "passed": true, "sameBodyFaceReferenceWithoutDependencyCycle": true }, { "name": "To face finite boundary honors holes in termination support", "passed": true, "terminationFaceHoleRespected": true }, { "name": "To face across transformed containers and FCStd reopen", "passed": true, "globalPlacementsAndReopen": true, "volumeAfterReopen": 968.2982453146791 }, { "name": "Invalid target surfaces, directions and second length rejected in Russian", "passed": true, "invalidTargetsAndDirectionsLeaveDocumentUnchanged": true }, { "name": "To next true planar termination on preceding solid", "passed": true, "nextWholePlanarFace": true, "volumeAfterBaseChange": 5717.256661176918 }, { "name": "To next explicit terminator tracks nearest complete face", "passed": true, "selectedTerminatorRegenerates": true, "volume": 4780.000000000001 }, { "name": "To next rejects ambiguous crossing support planes", "passed": true, "ambiguousCrossingPlanesRejected": true }, { "name": "To next explicitly rejects curved terminators", "passed": true, "curvedNextLimitationExplicit": true }, { "name": "Changing operation moves real history between solid bodies with undo redo", "passed": true, "operationChangeMovesFeatureAndUndoRestoresBodies": true }, { "name": "GUI real preview update and cancel rollback", "passed": true, "previewDeleted": true, "visibilityRestored": true }, { "name": "GUI accept, parameter edit and undo", "passed": true, "acceptPreviewDeleted": true, "editUndo": true }, { "name": "GUI preview respects sketch and body placements", "passed": true, "rotatedSketchAndTranslatedBody": true }, { "name": "GUI Control.showDialog and selected profile", "passed": true, "nativeTaskDialog": true, "nativeOkCancelButtons": true, "nativeFeatureEdit": true, "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\extrusion-task-panel.png" }, { "name": "GUI asymmetric distances and direction inversion", "passed": true, "asymmetricSwapPreviewAcceptEditUndo": true }, { "name": "GUI native selection of oblique face, automatic extension and edit undo", "passed": true, "nativeFaceSelectionAndEditUndo": true, "previewEqualsAcceptedSolid": true, "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\extrusion-to-oblique-face.png" }, { "name": "GUI selected next-face terminator", "passed": true, "nextTerminatorSelectionPreviewAcceptUndo": true }, { "name": "GUI invalid target rolls back and cancels cleanly", "passed": true, "invalidTargetAcceptRollbackAndCancel": true }, { "name": "GUI native operation edits migrate solid history and undo", "passed": true, "nativeOperationChangeAndBodyMigrationUndo": true } ] } }, { "name": "typed_parameter_editor_suite", "passed": true, "result": { "passed": true, "count": 9, "gui": true, "checks": [ { "name": "Signed coordinates, zero and undo redo", "passed": true, "evidence": { "signed_x_mm": -18, "zero_y_mm": 0, "native_undo_redo": true } }, { "name": "Native degree and radian angle units", "passed": true, "evidence": { "editor_unit": "degrees", "kernel_constraint_unit": "radians", "signed_angle_degrees": -30 } }, { "name": "Indexed and named formulas remain read only", "passed": true, "evidence": { "indexed_and_named_formula_paths": [ [ ".Constraints.РадиусКруга", "4 mm" ], [ ".Constraints.ЦентрX", "SourceSizes.X" ] ], "no_op_preserves_undo": true, "formula_updates_still_associative": true } }, { "name": "Native reference dimensions remain read only", "passed": true, "evidence": { "reference_radius_read_only": true, "rejected_edit_is_atomic": true } }, { "name": "Body VarSet delegation and user formulas", "passed": true, "evidence": { "internal_delegation_remains_editable": true, "source_formula_read_only": true, "overridden_body_formula_read_only": true } }, { "name": "Invalid values and dimensional units rejected atomically", "passed": true, "evidence": { "invalid_numbers_units_unknown_parameters_rejected": true, "all_inputs_atomic": true } }, { "name": "Typed parameter FCStd persistence", "passed": true, "evidence": { "native_project": "C:\\Repos\\qinventor\\artifacts\\validation\\typed-parameters.FCStd", "typed_metadata_and_formulas_survive_reopen": true } }, { "name": "Drawing refuses cached invalid source geometry", "passed": true, "evidence": { "cached_invalid_source_rejected_before_document_mutation": true, "recovered_source_creates_three_native_views": true } }, { "name": "Qt parameter editor preserves readonly values, precision and undo", "passed": true, "evidence": { "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\typed-parameter-dialog.png", "actual_apply_button": true, "untouched_precision_preserved": true, "one_native_undo_step": true } } ] } }, { "name": "document_parameter_table_kernel_suite", "passed": true, "result": { "passed": true, "count": 16, "checks": [ { "name": "Discover native model sources and stable identities", "passed": true, "evidence": { "native_controller_source": true, "no_discovery_mutation": true, "label_independent_ids": true, "rows": 11 } }, { "name": "Native user parameter types and Russian literals", "passed": true, "evidence": { "native_types": [ "Distance (signed length)", "Angle", "Float" ], "unit_conversions": true, "russian_literals": true, "one_undo_creation": true } }, { "name": "Create chain and model bindings in one batch", "passed": true, "evidence": { "add_bind_chain_atomic": true, "native_expressions": true, "kernel_volume_mm3": 6433.9817545518945, "undo_redo": true } }, { "name": "No-op and foreign CAD transactions", "passed": true, "evidence": { "numeric_noop_no_undo": true, "foreign_empty_and_pending_transaction_preserved": true } }, { "name": "Reject invalid inputs without losing existing redo", "passed": true, "evidence": { "rejected_cases": 18, "existing_redo_branch_usable": true, "native_clamping_rejected": true } }, { "name": "Validate native expression dimensions", "passed": true, "evidence": { "native_expression_quantity_checks": 4, "native_functions_and_unit_conversion": true } }, { "name": "Native syntax missing references and cycles", "passed": true, "evidence": { "native_syntax_missing_divide_zero_self_and_cycle_rejected": true } }, { "name": "Native rename and transactional comments", "passed": true, "evidence": { "native_dependency_rename": true, "comment_metadata_transactional": true, "comment_only_undo": true } }, { "name": "Referenced delete and clear formulas", "passed": true, "evidence": { "referenced_delete_rejected_with_redo": true, "native_cached_dangling_formula_detected": true, "unbind_and_delete_same_batch": true, "clear_preserves_evaluated_value": true } }, { "name": "Unnamed angular and reference constraints", "passed": true, "evidence": { "unnamed_native_paths": true, "degrees_not_radians": true, "reference_readonly": true } }, { "name": "Native solver and cached shape errors", "passed": true, "evidence": { "native_unsolvable_constraints_rejected": true, "native_invalid_feature_with_cached_valid_shape_rejected": true, "rejected_kernel_edits_preserve_redo": true } }, { "name": "FCStd persistence and continued parametric rebuild", "passed": true, "evidence": { "file": "C:\\Repos\\qinventor\\artifacts\\validation\\document-parameters.FCStd", "native_saved_formulas_comments_values": true, "reopened_edit_rebuilds_solid": true } }, { "name": "New native document-qualified expressions", "passed": true, "evidence": { "new_qualified_expression_reads_proposed_values": true, "rejected_qualified_expression_preserves_redo": true, "native_quoted_document_and_object_labels": true, "raw_cyrillic_document_and_object_identifiers": true } }, { "name": "Cross-document consumers and global Undo", "passed": true, "evidence": { "external_consumers_recomputed": true, "native_global_undo_redo": true, "both_document_redo_preserved_after_rejected_delete": true, "external_rename_dependency_preserved": true } }, { "name": "Real document cycles and FCStd requirements", "passed": true, "evidence": { "real_unsaved_owner_and_target_rejected_before_mutation": true, "valid_saved_external_binding": true, "object_acyclic_document_cycle_rejected": true, "redo_preserved": true, "first_external_bound_user_parameter_preserves_source_name": true } }, { "name": "Generated plate rules and grouped native drawing", "passed": true, "evidence": { "generated_hole_fit_rules_preserved": true, "group_does_not_reimport_techdraw_in_clone": true, "real_page_and_group_preserved": true, "clone_cad_objects": 15 } } ], "summary": { "total": 16, "passed": 16, "failed": 0 }, "gui_exercised": false } }, { "name": "native_parameter_preflight_fidelity_suite", "passed": true, "result": { "passed": true, "count": 10, "checks": [ { "name": "Persistent topology rejects before live and retains executable Redo", "passed": true, "evidence": { "rejections": [ { "message": "Перестроение объекта «FaceProfile» завершилось ошибкой: AttachEngine3D: subshape not found Groove.?Face8", "original_exact_unchanged": true, "undo": 0, "redo": 1 }, { "message": "Перестроение объекта «FaceProfile» завершилось ошибкой: AttachEngine3D: subshape not found Groove.?Face8", "original_exact_unchanged": true, "undo": 0, "redo": 1 } ], "original_redo_executed": true, "native_redo_x_mm": 110.0 } }, { "name": "Valid reference retaining Pocket edit native shapes Undo Redo", "passed": true, "evidence": { "volume_mm3": 1809.5573684677208, "undo_native_shape_comparison": { "revolution": { "volume_mm3": 2010.6192982974676, "area_mm2": 1023.7167544041137, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.797174393178826E-16 ], "volume_weighted_solid_com_mm": [ 7.953604365817317E-17, 9.999999999999998, -3.3953054526271003 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "groove": { "volume_mm3": 1834.6901096964393, "area_mm2": 1070.5486074759096, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.79718964375792E-16 ], "volume_weighted_solid_com_mm": [ 9.325808307180692E-17, 10.0, -3.2906556270324296 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "pocket": { "volume_mm3": 1815.8405537749002, "area_mm2": 1077.3981633974483, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.79718964375792E-16 ], "volume_weighted_solid_com_mm": [ -5.936976608789613E-17, 9.911764705882351, -3.3160033356539773 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "body_local": { "volume_mm3": 1815.8405537749006, "area_mm2": 1077.3981633974483, "bounds_mm": [ -6.928203230275509, 16.0, 22.0, 16.92820323027551, 41.32050807568878, 30.000000000000004 ], "volume_weighted_solid_com_mm": [ 5.044117647058824, 28.583840031628114, 26.683996664346022 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "body_world": { "volume_mm3": 1815.840553774901, "area_mm2": 1077.398163397449, "bounds_mm": [ 58.67949192431122, 193.07179676972447, 322.0, 84.0, 216.9282032302755, 330.0 ], "volume_weighted_solid_com_mm": [ 71.41615996837189, 205.0441176470588, 326.683996664346 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "occurrence_a": { "volume_mm3": 1815.840553774902, "area_mm2": 1077.398163397449, "bounds_mm": [ 958.6794919243113, 43.071796769724486, 62.0, 984.0, 66.92820323027551, 70.0 ], "volume_weighted_solid_com_mm": [ 971.4161599683719, 55.04411764705882, 66.68399666434603 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "occurrence_b": { "volume_mm3": 1815.8405537749024, "area_mm2": 1077.398163397449, "bounds_mm": [ 1016.0, 133.0717967697245, 62.0, 1041.3205080756888, 156.92820323027553, 70.0 ], "volume_weighted_solid_com_mm": [ 1028.5838400316281, 144.9558823529412, 66.68399666434603 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "assembly_world": { "volume_mm3": 3631.6811075498035, "area_mm2": 2154.796326794898, "bounds_mm": [ 958.6794919243113, 43.071796769724486, 62.0, 1041.3205080756888, 156.92820323027553, 70.0 ], "volume_weighted_solid_com_mm": [ 1000.0, 100.00000000000001, 66.68399666434603 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] } }, "redo_native_shape_comparison": { "revolution": { "volume_mm3": 2010.6192982974676, "area_mm2": 1023.7167544041137, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.797174393178826E-16 ], "volume_weighted_solid_com_mm": [ 7.953604365817317E-17, 9.999999999999998, -3.3953054526271003 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "groove": { "volume_mm3": 1834.6901096964393, "area_mm2": 1070.5486074759096, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.79718964375792E-16 ], "volume_weighted_solid_com_mm": [ 9.325808307180692E-17, 10.0, -3.2906556270324296 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "pocket": { "volume_mm3": 1809.5573684677208, "area_mm2": 1079.681348704628, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 1.133107779529596E-15 ], "volume_weighted_solid_com_mm": [ -1.6107560374667792E-17, 9.888888888888888, -3.3245699223640366 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "body_local": { "volume_mm3": 1809.5573684677204, "area_mm2": 1079.681348704628, "bounds_mm": [ -6.928203230275509, 16.0, 22.0, 16.92820323027551, 41.32050807568878, 30.000000000000004 ], "volume_weighted_solid_com_mm": [ 5.055555555555555, 28.564028992979452, 26.675430077635962 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "body_world": { "volume_mm3": 1809.5573684677215, "area_mm2": 1079.6813487046286, "bounds_mm": [ 58.67949192431122, 193.07179676972447, 322.0, 84.0, 216.9282032302755, 330.0 ], "volume_weighted_solid_com_mm": [ 71.43597100702056, 205.05555555555554, 326.67543007763595 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "occurrence_a": { "volume_mm3": 1809.5573684677222, "area_mm2": 1079.6813487046286, "bounds_mm": [ 958.6794919243113, 43.071796769724486, 62.0, 984.0, 66.92820323027551, 70.0 ], "volume_weighted_solid_com_mm": [ 971.4359710070205, 55.05555555555554, 66.67543007763597 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "occurrence_b": { "volume_mm3": 1809.5573684677233, "area_mm2": 1079.6813487046286, "bounds_mm": [ 1016.0, 133.0717967697245, 62.0, 1041.3205080756888, 156.92820323027553, 70.0 ], "volume_weighted_solid_com_mm": [ 1028.5640289929795, 144.94444444444446, 66.67543007763597 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "assembly_world": { "volume_mm3": 3619.1147369354444, "area_mm2": 2159.3626974092567, "bounds_mm": [ 958.6794919243113, 43.071796769724486, 62.0, 1041.3205080756888, 156.92820323027553, 70.0 ], "volume_weighted_solid_com_mm": [ 1000.0, 100.00000000000001, 66.67543007763597 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] } } } }, { "name": "Valid native270 without face support", "passed": true, "evidence": { "native_type": "PartDesign::Revolution", "actual_volume_mm3": 706.8583470577034, "scope": "No downstream face attachment; 270 is not generally invalid" } }, { "name": "Ordinary user SheetPython remains genuine model input", "passed": true, "evidence": { "actual_input_type": "Spreadsheet::SheetPython", "native_input_contents_preserved": { "A1": "=4 mm", "alias": "Height" }, "cad": { "parameter_key": "Parameters:QIHeight", "height_mm": 8.0, "volume_mm3": 48.0 }, "rejection": { "message": "Не удалось применить параметры: Property 'MissingAlias' not found in 'UserInput.MissingAlias'", "original_exact_unchanged": true, "undo": 1, "redo": 0 } } }, { "name": "Parameters after real drawing BOM source cells mass and direct DXF", "passed": true, "evidence": { "initial": { "parameter_key": "Parameters:QIHeight", "height_mm": 4.0, "volume_mm3": 24.0, "mass_kg": 0.0001884, "cells": { "A1": "'Поз.", "A2": "'1", "B1": "'Обозначение", "B2": "'PARAM-BOX", "C1": "'Наименование", "C2": "'Брусок", "C3": "'Итого", "D1": "'Кол.", "D2": "1", "E1": "'Материал", "E2": "'Сталь", "F1": "'Масса, кг", "F2": "'0,0001884", "F3": "'0,0001884" }, "actual_mass_cell": "'0,0001884" }, "immediate": { "parameter_key": "Parameters:QIHeight", "height_mm": 8.0, "volume_mm3": 48.0, "mass_kg": 0.0003768, "cells": { "A1": "'Поз.", "A2": "'1", "B1": "'Обозначение", "B2": "'PARAM-BOX", "C1": "'Наименование", "C2": "'Брусок", "C3": "'Итого", "D1": "'Кол.", "D2": "1", "E1": "'Материал", "E2": "'Сталь", "F1": "'Масса, кг", "F2": "'0,0003768", "F3": "'0,0003768" }, "actual_mass_cell": "'0,0003768" }, "one_native_undo_step": true, "undo": { "parameter_key": "Parameters:QIHeight", "height_mm": 4.0, "volume_mm3": 24.0, "mass_kg": 0.0001884, "cells": { "A1": "'Поз.", "A2": "'1", "B1": "'Обозначение", "B2": "'PARAM-BOX", "C1": "'Наименование", "C2": "'Брусок", "C3": "'Итого", "D1": "'Кол.", "D2": "1", "E1": "'Материал", "E2": "'Сталь", "F1": "'Масса, кг", "F2": "'0,0001884", "F3": "'0,0001884" }, "actual_mass_cell": "'0,0001884" }, "redo": { "parameter_key": "Parameters:QIHeight", "height_mm": 8.0, "volume_mm3": 48.0, "mass_kg": 0.0003768, "cells": { "A1": "'Поз.", "A2": "'1", "B1": "'Обозначение", "B2": "'PARAM-BOX", "C1": "'Наименование", "C2": "'Брусок", "C3": "'Итого", "D1": "'Кол.", "D2": "1", "E1": "'Материал", "E2": "'Сталь", "F1": "'Масса, кг", "F2": "'0,0003768", "F3": "'0,0003768" }, "actual_mass_cell": "'0,0003768" }, "actual_direct_DXF": [ { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\integrated-height8-direct.dxf", "sha256": "2a7b7cf2ea0fab6b75c3feedbfd8c7aacc1d0c144dbcf8854093fade825ae880", "texts": [ "Поз.", "1", "Обозначение", "PARAM-BOX", "Наименование", "Брусок", "Итого", "Кол.", "1", "Материал", "Сталь", "Масса, кг", "0,0003768", "0,0003768" ], "actual_native_front_width_mm": 2.0, "actual_native_front_height_mm": 8.0 }, { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\integrated-height4-undo-direct.dxf", "sha256": "446acedb1f778e66001001b0b48c2f8560c27c44c8247e9b7e3732d930169465", "texts": [ "Поз.", "1", "Обозначение", "PARAM-BOX", "Наименование", "Брусок", "Итого", "Кол.", "1", "Материал", "Сталь", "Масса, кг", "0,0001884", "0,0001884" ], "actual_native_front_width_mm": 2.0, "actual_native_front_height_mm": 4.0 }, { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\integrated-height8-redo-direct.dxf", "sha256": "2a7b7cf2ea0fab6b75c3feedbfd8c7aacc1d0c144dbcf8854093fade825ae880", "texts": [ "Поз.", "1", "Обозначение", "PARAM-BOX", "Наименование", "Брусок", "Итого", "Кол.", "1", "Материал", "Сталь", "Масса, кг", "0,0003768", "0,0003768" ], "actual_native_front_width_mm": 2.0, "actual_native_front_height_mm": 8.0 } ], "GUI_parameter_Apply_unproven_here": true } }, { "name": "Own output used as native CAD input is guarded before live", "passed": true, "evidence": { "native_input_expression": "DrawingBOM.D2", "valid_native_noncyclic_fixture": true, "rejection": { "message": "Лист спецификации «Данные спецификации» используется как вход «Размеры — Брусок001». Такую связь необходимо отделить от выходной спецификации перед изменением параметров", "original_exact_unchanged": true, "undo": 0, "redo": 1 }, "original_redo_executed": true } }, { "name": "Native drawing scale and ordinary BOM cell expressions validate before live", "passed": true, "evidence": { "native_front_scale_expression_and_BOM_note_delete_rejection": { "message": "Не удалось применить параметры: Property 'ViewScale' not found in 'QIUserParameters.ViewScale'", "original_exact_unchanged": true, "undo": 5, "redo": 1 }, "original_scale_redo_executed": true, "valid_change_has_one_native_undo": true, "first_undo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.2, "formula": "=QIUserParameters.ViewScale * 2" }, "undo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.4, "formula": "=QIUserParameters.ViewScale * 2" }, "redo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.6, "formula": "=QIUserParameters.ViewScale * 2" }, "isolated_undo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.6, "formula": "=QIUserParameters.ViewScale * 2" }, "BOM_user_note_formula_preserved": "=QIUserParameters.ViewScale * 2", "isolated_BOM_user_note_delete_rejection": { "message": "Перестроение объекта «Данные спецификации» завершилось ошибкой: One or more cells failed contains errors.", "original_exact_unchanged": true, "undo": 7, "redo": 1 }, "isolated_BOM_user_note_original_redo_executed": true } }, { "name": "Native Spreadsheet and own BOM cell type changes preserve executable history", "passed": true, "evidence": [ { "kind": "Spreadsheet::Sheet", "genuine_CAD_input": true, "integer_to_float_rejection": { "message": "Изменение параметров меняет тип вычисленной ячейки «UserInput.H1»; штатная отмена не сохраняет такую ячейку. Сохраните тип результата её формулы перед изменением параметров", "original_exact_unchanged": true, "undo": 1, "redo": 1 }, "original_redo_x_mm": 11.0, "stable_float_change_one_undo": true, "undo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.2, "formula": "=QIUserParameters.Scale * 2" }, "redo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.4, "formula": "=QIUserParameters.Scale * 2" }, "float_to_integer_rejection": { "message": "Изменение параметров меняет тип вычисленной ячейки «UserInput.H1»; штатная отмена не сохраняет такую ячейку. Сохраните тип результата её формулы перед изменением параметров", "original_exact_unchanged": true, "undo": 3, "redo": 0 } }, { "kind": "Spreadsheet::SheetPython", "genuine_CAD_input": true, "integer_to_float_rejection": { "message": "Изменение параметров меняет тип вычисленной ячейки «UserInput.H1»; штатная отмена не сохраняет такую ячейку. Сохраните тип результата её формулы перед изменением параметров", "original_exact_unchanged": true, "undo": 1, "redo": 1 }, "original_redo_x_mm": 11.0, "stable_float_change_one_undo": true, "undo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.2, "formula": "=QIUserParameters.Scale * 2" }, "redo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.4, "formula": "=QIUserParameters.Scale * 2" }, "float_to_integer_rejection": { "message": "Изменение параметров меняет тип вычисленной ячейки «UserInput.H1»; штатная отмена не сохраняет такую ячейку. Сохраните тип результата её формулы перед изменением параметров", "original_exact_unchanged": true, "undo": 3, "redo": 0 } }, { "kind": "OwnBOM", "genuine_CAD_input": false, "integer_to_float_rejection": { "message": "Изменение параметров меняет тип вычисленной ячейки «Данные спецификации.H1»; штатная отмена не сохраняет такую ячейку. Сохраните тип результата её формулы перед изменением параметров", "original_exact_unchanged": true, "undo": 4, "redo": 1 }, "original_redo_x_mm": 11.0, "stable_float_change_one_undo": true, "undo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.2, "formula": "=QIUserParameters.Scale * 2" }, "redo_before_recompute": { "present": true, "type": "App::PropertyFloat", "value": 2.4, "formula": "=QIUserParameters.Scale * 2" }, "float_to_integer_rejection": { "message": "Изменение параметров меняет тип вычисленной ячейки «Данные спецификации.H1»; штатная отмена не сохраняет такую ячейку. Сохраните тип результата её формулы перед изменением параметров", "original_exact_unchanged": true, "undo": 6, "redo": 0 } } ] }, { "name": "Native canonical formula no-op preserves executable history; distinct equal-value formulas remain edits", "passed": true, "evidence": { "qualified_canonical_noop_exact_payload_history_active_document": true, "independent_original_redo_executed": true, "equal_value_other_dependency_and_arithmetic_are_real_edits": true, "actual_comment_change_is_edit": true, "rejected_formula_exact_state": { "message": "Не удалось применить параметры: Document object 'MissingCanonicalSource' not found in 'ParameterCanonicalNoop#MissingCanonicalSource.Size'", "original_exact_unchanged": true, "undo": 0, "redo": 1 } } }, { "name": "Fresh native process FCStd history inputs outputs and real reedit", "passed": true, "evidence": { "passed": true, "gui_up": false, "parameter_module": "C:\\Repos\\qinventor\\src\\QInventor\\qi_parameters.py", "parameter_module_sha256": "9f384e40b930b6ebc4e7f068651c0797134818803b82704258e26215997c01c2", "checks": [ { "name": "persistent_support_native_history_and_reedit", "passed": true, "structure": { "serialized_placement_rounding": [ { "object": "XZ_Plane", "property": "Placement", "component": 1, "index": 0, "expected": 0.7071067811865475, "actual": 0.7071067811865476, "absolute_delta": 1.1102230246251565E-16 }, { "object": "XZ_Plane001", "property": "Placement", "component": 1, "index": 0, "expected": 0.7071067811865475, "actual": 0.7071067811865476, "absolute_delta": 1.1102230246251565E-16 }, { "object": "XZ_Plane002", "property": "Placement", "component": 1, "index": 0, "expected": 0.7071067811865475, "actual": 0.7071067811865476, "absolute_delta": 1.1102230246251565E-16 } ], "base_absolute_tolerance_mm": 1E-09, "quaternion_absolute_tolerance": 1E-12, "all_nonplacement_fields_exact": true }, "shapes": { "revolution": { "volume_mm3": 2010.6192982974676, "area_mm2": 1023.7167544041137, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.4E-16 ], "volume_weighted_solid_com_mm": [ 1.0765503945384812E-16, 9.999999999999998, -3.3953054526271007 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "groove": { "volume_mm3": 1834.6901096964393, "area_mm2": 1070.5486074759096, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 9.4E-16 ], "volume_weighted_solid_com_mm": [ 1.2287337249806946E-16, 10.0, -3.290655627032431 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "pocket": { "volume_mm3": 1809.5573684677208, "area_mm2": 1079.681348704628, "bounds_mm": [ -8.0, 0.0, -8.0, 8.0, 20.0, 1.2449293598294708E-15 ], "volume_weighted_solid_com_mm": [ -1.6678840012356495E-17, 9.888888888888888, -3.3245699223640366 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "body_local": { "volume_mm3": 1809.5573684677224, "area_mm2": 1079.6813487046286, "bounds_mm": [ -6.928203230275512, 16.0, 22.0, 16.928203230275514, 41.32050807568878, 30.000000000000004 ], "volume_weighted_solid_com_mm": [ 5.055555555555556, 28.564028992979452, 26.675430077635962 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "body_world": { "volume_mm3": 1809.5573684677227, "area_mm2": 1079.6813487046288, "bounds_mm": [ 58.67949192431122, 193.07179676972447, 322.0, 84.0, 216.9282032302755, 330.0 ], "volume_weighted_solid_com_mm": [ 71.43597100702056, 205.05555555555554, 326.67543007763595 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "occurrence_a": { "volume_mm3": 1809.5573684677238, "area_mm2": 1079.6813487046288, "bounds_mm": [ 958.6794919243113, 43.07179676972448, 62.0, 984.0, 66.92820323027551, 70.0 ], "volume_weighted_solid_com_mm": [ 971.4359710070205, 55.05555555555554, 66.67543007763597 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "occurrence_b": { "volume_mm3": 1809.5573684677233, "area_mm2": 1079.6813487046286, "bounds_mm": [ 1016.0, 133.0717967697245, 62.0, 1041.3205080756888, 156.92820323027553, 70.0 ], "volume_weighted_solid_com_mm": [ 1028.5640289929795, 144.94444444444446, 66.67543007763597 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] }, "assembly_world": { "volume_mm3": 3619.114736935446, "area_mm2": 2159.362697409257, "bounds_mm": [ 958.6794919243113, 43.07179676972448, 62.0, 1041.3205080756888, 156.92820323027553, 70.0 ], "volume_weighted_solid_com_mm": [ 1000.0, 100.00000000000001, 66.67543007763597 ], "bidirectional_boolean_difference_volume_mm3": [ 0.0, 0.0 ] } }, "actual_reedit_volume_mm3": 1822.1237390820797 }, { "name": "valid270_native90_reedit", "passed": true, "volume_mm3": 235.61944901923448 }, { "name": "ordinary_user_sheet_real_input", "passed": true, "cad": { "parameter_key": "Parameters:QIHeight", "height_mm": 12.0, "volume_mm3": 72.0 } }, { "name": "parameters_after_BOM_actual_reedit_and_direct_export", "passed": true, "restored": { "parameter_key": "Parameters:QIHeight", "height_mm": 8.0, "volume_mm3": 48.0, "mass_kg": 0.0003768, "cells": { "A1": "'Поз.", "A2": "'1", "B1": "'Обозначение", "B2": "'PARAM-BOX", "C1": "'Наименование", "C2": "'Брусок", "C3": "'Итого", "D1": "'Кол.", "D2": "1", "E1": "'Материал", "E2": "'Сталь", "F1": "'Масса, кг", "F2": "'0,0003768", "F3": "'0,0003768" }, "actual_mass_cell": "'0,0003768" }, "immediate": { "parameter_key": "Parameters:QIHeight", "height_mm": 6.0, "volume_mm3": 36.0, "mass_kg": 0.0002826, "cells": { "A1": "'Поз.", "A2": "'1", "B1": "'Обозначение", "B2": "'PARAM-BOX", "C1": "'Наименование", "C2": "'Брусок", "C3": "'Итого", "D1": "'Кол.", "D2": "1", "E1": "'Материал", "E2": "'Сталь", "F1": "'Масса, кг", "F2": "'0,0002826", "F3": "'0,0002826" }, "actual_mass_cell": "'0,0002826" }, "direct_DXF": { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\restored-height6-direct.dxf", "sha256": "ff21b3ad86ef0eff449d37e0dac7044586abee3097eac269bbb2cba64cd5c0ba", "texts": [ "Поз.", "1", "Обозначение", "PARAM-BOX", "Наименование", "Брусок", "Итого", "Кол.", "1", "Материал", "Сталь", "Масса, кг", "0,0002826", "0,0002826" ], "actual_native_front_width_mm": 2.0, "actual_native_front_height_mm": 6.0 } } ], "source_stable": true, "native_exit_code": 0, "native_pid": 4500, "report_path": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-preflight-reopen-p4grki90\\report.json" } } ], "gui": true, "source_sha256": { "src/QInventor/Init.py": "7d2681813d2efe5a3b79147da578b67290117e61575e4e1735dd6a9aab7a37e1", "src/QInventor/InitGui.py": "0f6fa12520a656980d3a3d61582cfcbebfa3f41728d63b75ad2fb001116a850e", "src/QInventor/qi_bom.py": "548b7196392650b790f8263440cc12039eb1aae20c19ce6158e4588f9cc2053d", "src/QInventor/qi_bom_ui.py": "522ea28fcce9f7a22e0ea107304ca32406846ec99af16b6adf04ef3da008811d", "src/QInventor/qi_commands.py": "19816cbda6a9cc15023484022d0a13f84bd176d6e9eae0b681b968da21732f61", "src/QInventor/qi_drawing_bom.py": "143dfa91623c6ac08c80e02e1671f6628ec18a5fd551bda362d7d99d252a4d11", "src/QInventor/qi_drawing_bom_export.py": "1e0fbe90cafcf2321ce4eae90868211be7db105767f98bcf42789950d52dab2f", "src/QInventor/qi_drawing_bom_ui.py": "8a50502dd648a42a2e6e4b436972c67b71ec0683f0c4276b13f313357d0c103a", "src/QInventor/qi_extrude.py": "03b5b7eea4adbf168d623995e84e0d3af4ccea58494b3b34542b10447ef0c072", "src/QInventor/qi_io.py": "77ea249f6d3a374e89ac294e0de8a386356ed47f908ba494cbe8fea37c34df1f", "src/QInventor/qi_localization.py": "84041c5888157e7844b99ebda3fddf9e86531667c9e1aa56cde917795f1b91e1", "src/QInventor/qi_messages.py": "5c0c41cf0c1bd60f30d0aec0da6934c2af70a88765d86c07e500046714eeecb5", "src/QInventor/qi_model.py": "08c094382cfadd5e94e3ab6d1ce01ad1214985cc2a3222814ab5b2da26c4d762", "src/QInventor/qi_parameters.py": "9f384e40b930b6ebc4e7f068651c0797134818803b82704258e26215997c01c2", "src/QInventor/qi_parameters_ui.py": "4e10337d61bb38f229736f0e877d16cc99106943fa3a8f4333fa905aad7ec19f", "src/QInventor/qi_projection.py": "a4923dd69f7dcb3230a4b60bd001698d90d6d02db5aa016362034ee73520925d", "src/QInventor/qi_sketch_offset.py": "ffb0f2a000b91528587110d7f5d47b7e26902b499e1b35220e3c09fc89786cb9", "src/QInventor/qi_sketch_patterns.py": "c98dfd369c639436f0aed0664cf43cc6345b6639c102309efb90041fe65d4e1e", "src/QInventor/qi_sketch_preview.py": "4858dc39046bad95306179212fe44a63e2e1437259a9c6d14bc847b68c7aab76", "src/QInventor/qi_sketch_ui.py": "d505b802c65f1566a64d7687e290a64226aff91958db59b8d621ac69909ead37", "src/QInventor/qi_step_export.py": "754f7f8b841f87a696ddf800e19f947d5e8712fc53faf8fce4d2d0d0f3ee51f6", "src/QInventor/qi_ui.py": "7432d1939919b30e5fc81cd333caf220ca3b490d71851328aa26d8070a7ac307", "src/QInventor/qi_workbench.py": "312d49f40d78e8bde48cd8fa57232cd380565fe5b30a688e4612d57bde210c59", "src/QInventor/resources/qinventor-a4.svg": "f77419e8559cb24b29a62ebcdc02d781f52c6910c0299d4820d1dd8c820c4128", "src/QInventor/resources/qinventor.ico": "ea229e71d0fcdd749c35977fc0f11720a972c3ee04b3d9042d850182e0a6ed1c", "src/QInventor/resources/qinventor.png": "3de618b2d07a1fd36a14f71d3f0b85f36a5dcc22ccf070b4629491da6e6f9e32", "src/QInventor/resources/qinventor.svg": "12e95fa28c4aaf927311a777b3928d0518799e51663aab2f0f036015210dc954", "tests/assembly_suite.py": "988aaa37573ab5c6543fd4f8f67b7fa7fff604721dcc6fe31b7c71abea747709", "tests/bom_gui_suite.py": "043aa3632033bf5a6cc4fba0b1167b9cc6e89610f1db562067b00b32c62640de", "tests/bom_suite.py": "2a52ef5fb7f99f4f21d6858f0860eba2db0a18993f7092059029c3f73b145f9e", "tests/command_workflows_suite.py": "9c2cd271b6cde306dc9c228755579c299ead6ab6d4773d83dfefe7b37ecdb950", "tests/drawing_bom_gui_suite.py": "12a60a1f8550922b5e3b069df09e3416111e367ba82a1d2f25fed5abf7555393", "tests/drawing_bom_suite.py": "3da48ba3aa9b7f70ac02732fe41699776542d72e840a4d5843bc98f9e72a2509", "tests/extrude_suite.py": "83da33ea4ce4d5da538f46e0a03a88acdb4e46a1424da32d899602a4b735605a", "tests/gui_suite.py": "87cee20dc57dffa1384be594d7e8ba96580808685c0ec9419c8fd3a3a4f9007b", "tests/io_suite.py": "53f8662e37fac45216d2858e732a2e8bbccf3d344c607aa57a99d9cb8d630c45", "tests/kernel_suite.py": "bfd56a485e11b76f4b402439185db813601d93ce001b54a68e0303826157f3f8", "tests/parameter_preflight_suite.py": "dc0dd00f59ea60baa90ab6930d7b8a68ebcb33f5e5ea00f3354d94a67d75a966", "tests/parameter_table_gui_suite.py": "c19beaaf1c0dda693dbdd964319b1c199ea51bb79a4300f0b15177c15b5f8489", "tests/parameter_table_suite.py": "f0c9eb2975bbac0a5d6a0a6f50bf64bc8cbd094b09942c167207574d3e1ba895", "tests/parameters_suite.py": "7bbcc44d6d9f1595ac2ab90e8a8f01fb1d0d0acfd32294241d3ef595713f985b", "tests/probe.FCMacro": "928efa45b20a145f313cf2ae6dcbcbc7ee9f3609df67ec678078aed8e264bd07", "tests/projection_suite.py": "77770dc7c82656794ed68770d26c5da7871f2a8949ea8acc7ee637f8caaa1d24", "tests/ribbon_camera_probe.FCMacro": "ed96daba842fbd362bf2ce7ec8014e011a46cc0941fae48b05f78714aeefc3c6", "tests/ribbon_gui.FCMacro": "bbaa7367526cb924f096a97bc3f6005a6184061955abfdd15d0e91d1f5986575", "tests/ribbon_probe.FCMacro": "b519579dcb0cee106aa40caf674fa611e105168299e933fe9930ac20a6238872", "tests/ribbon_suite.py": "b5d5459532bdfb7113da2fea228248e87aa0e7abfa8ecec116e1222141aae05b", "tests/sketch_offset_suite.py": "97de15e62d59b7c3113dda26d48670163853acf8a404067d676c6db3a2cc82f1", "tests/sketch_operations_gui_suite.py": "4b088da978f506f3afe04fac6c9a3762895eb8fb1f21b2e7f5d8f08a656e53a1", "tests/sketch_patterns_suite.py": "2205b605bd5ab7b8077cbd2421bdb469105d04daa5806fdc02edadb7a5f68414", "scripts/bootstrap.ps1": "aeecd11aa2b609fbbbc6d4bcaf6eb6a4c236913aff26cd5096b3cb5a33dd499c", "scripts/build-launcher.ps1": "b78168056b1009576872bc7d93f35fb7db5d409e8dd24418cfe74b42c30c6c7e", "scripts/launcher/Program.cs": "7cee5b394ba055bb63619a5aef4c9b9db82055c3ca1a61a2550da221a996cfc5", "scripts/launcher/QInventor.Launcher.csproj": "b46bb80c4b39b66a66b9d2e25ba97c186a9ca48d9e6bc4cdd11531b9c89990d8", "scripts/launcher/RuntimePath.cs": "13fd9e93326afef703fa1926f83ea519dceaccb3781526e1e5e2c23243f78057", "scripts/package.ps1": "9352bd79ee9ac41a1766745a86fd1e1c9193163f544cf838e122dcf4b770fdbb", "scripts/render-icon.py": "2063594fde4d169f141b3a386f455be1f116b3c8a01f8bb257f4ff575b02aa42", "scripts/startup.FCMacro": "813b4e857b3e184f3a41c7b72debfd995e7ee36ad2532aa3f57a4c878d6fc38b", "scripts/sync.ps1": "e1349b8d1527bab9f700d0e8418a6e6be6d3df97838103efc5c473d2bcb3a5de", "scripts/test.ps1": "6e827d4aa63e150006b2a77e77243d8445612d684bb0cea79ef4d67811c599dd", "scripts/translator-probe.py": "5ee83e97742a65eb147227cf6c020f4307122908a3c06e1417727ee603a819ae" }, "source_stable": true, "parameter_module": "C:\\Repos\\qinventor\\src\\QInventor\\qi_parameters.py", "parameter_module_sha256": "9f384e40b930b6ebc4e7f068651c0797134818803b82704258e26215997c01c2" } }, { "name": "document_parameter_table_gui_suite", "passed": true, "result": { "status": "passed", "passed": 9, "failed": 0, "checks": [ { "name": "Add user parameters, edit model formulas and rebuild native solid", "passed": true, "evidence": { "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-formulas.png", "native_project": "C:\\Repos\\qinventor\\artifacts\\validation\\document-parameters.FCStd", "new_user_and_model_formulas_one_undo": true, "expression_chain_drives_solid": true, "hidden_draft_applies": true, "FCStd_reopen": true } }, { "name": "Units and cyclic formulas reject atomically and recover in the open table", "passed": true, "evidence": { "units_error": "Параметр «Size» должен быть числом в мм", "cycle_error": "Обнаружена циклическая зависимость. Измените формулы так, чтобы параметр не зависел от самого себя.", "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-cycle-error.png", "errors_keep_document_and_drafts": true, "corrected_apply_rebuilds_native_solid": true } }, { "name": "Reference dimensions, unchanged precision and Close discard drafts", "passed": true, "evidence": { "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-reference-and-draft.png", "untouched_native_precision": 3.141592653589793, "reference_not_editable": true, "close_discards_unapplied_rows_and_values": true } }, { "name": "User rename updates formula consumers and guarded deletion", "passed": true, "evidence": { "native_rename_updates_consumers": true, "referenced_delete_rejected": "Параметр или объект, указанный в формуле, не найден. Проверьте ссылку выбранной строки.", "unused_parameter_removed_in_one_undo": true } }, { "name": "Closed document refuses pending Apply", "passed": true, "evidence": { "closed_document_has_no_write": true, "dialog_error_stays_visible": true } }, { "name": "Native Sketcher task protects its edit transaction", "passed": true, "evidence": { "actual_Sketcher_task_blocks_floating_apply": true, "after_finishing_task_apply_succeeds": true } }, { "name": "Parameter command updates a grouped existing drawing, exports and reopens", "passed": true, "evidence": { "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-existing-grouped-drawing.png", "opened_by_QI_Dimensions_without_selection": true, "grouped_native_page_preserved": true, "front_heights_mm": [ 24.0, 32.0, 32.0 ], "new_expressions_drive_existing_projection": true, "FCStd_group_and_association_reopen": true, "rejected_geometry_preserves_usable_native_redo": "Параметр «Radius» должен быть больше нуля", "no_hidden_validation_documents": true, "pdf": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-grouped-drawing.pdf", "svg": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-grouped-drawing.svg", "project": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-grouped-drawing.FCStd" } }, { "name": "Filtering clears hidden user selection and prevents unseen deletion", "passed": true, "evidence": { "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-filter-protected-selection.png", "hidden_selected_row_cleared": true, "hidden_delete_slot_refuses_removal": true, "filter_does_not_write_native_document": true } }, { "name": "Native Undo, external edits and unnamed index shifts protect table drafts", "passed": true, "evidence": { "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\parameter-table-stale-constraint-edit.png", "undo_refresh_preserves_redo": true, "external_native_property_rejects_stale_draft": true, "unnamed_constraint_index_shift_rejects_old_target": true, "refresh_is_read_only_and_discards_drafts": true, "own_apply_updates_baseline": true, "external_edit_delivery": "FreeCAD native transactions and public property/constraint APIs" } } ], "input_delivery": "actual Qt buttons, keyboard and Russian input-method events in QI_ParameterTable", "kernel_boundary": "native Sketcher, PartDesign Pad, App::VarSet and FreeCAD expressions", "os_pointer_access": false, "count": 9 } }, { "name": "assembly_joint_validation_suite", "passed": true, "result": { "passed": true, "checks": [ { "name": "Joint rejects connection to the same component before mutation", "passed": true, "evidence": { "message": "Выберите два разных компонента для соединения", "unchanged": true } }, { "name": "Joint and grounding reject components outside the assembly", "passed": true, "evidence": { "joint_message": "Выберите компоненты выбранной сборки", "ground_message": "Выберите компоненты выбранной сборки", "unchanged": true } }, { "name": "Joint and grounding reject components from another document", "passed": true, "evidence": { "joint_message": "Выберите компоненты выбранной сборки", "ground_message": "Выберите компоненты выбранной сборки", "both_documents_unchanged": true } }, { "name": "Conflicting native joint rolls back objects and all component placements", "passed": true, "evidence": { "message": "Соединение «Жёсткое соединение002» конфликтует с положением компонентов. Проверьте существующие соединения.", "all_three_placements_restored": true, "remaining_solver_status": 0 } }, { "name": "Conflicting indirect loop preserves both previous fixed joints", "passed": true, "evidence": { "message": "Соединение «Жёсткое соединение001» конфликтует с положением компонентов. Проверьте существующие соединения.", "indirect_loop_rejected": true, "both_previous_joints_preserved": true, "all_three_placements_restored": true } }, { "name": "Accepted native joint is one undo step and survives redo save reopen", "passed": true, "evidence": { "native_joint": true, "undo_redo": true, "reopened": true, "project": "C:\\Repos\\qinventor\\artifacts\\validation\\atomic-joint.FCStd", "solver_status": 0 } } ], "summary": { "total": 6, "passed": 6, "failed": 0 }, "gui_exercised": true } }, { "name": "nested_assembly_bom_kernel_suite", "passed": true, "result": { "passed": true, "count": 14, "checks": [ { "name": "STEP world frames readonly payload shared identities and atomic writer", "passed": true, "evidence": { "exchanges": [ { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\placed-root-default.step", "solids": 7, "volume_mm3": 2120.000000000001, "world_com_mm": [ 995.1981132075472, 225.56603773584908, 4.830188679245285 ], "source_exact_and_redo_executes": true, "products": [ [ "Экспорт модели", "Экспорт модели" ], [ "Assembly", "Assembly" ], [ "Узел", "Узел" ], [ "Болт", "Болт" ], [ "Корпус", "Корпус" ], [ "Узел", "Узел" ] ], "occurrences": [ "Assembly", "SubA", "BoltA001", "BoltB001", "HousingOccurrence001", "SubB", "BoltA002", "BoltB002", "HousingOccurrence002", "DirectBolt" ] }, { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\placed-root-explicit.step", "solids": 7, "volume_mm3": 2120.000000000001, "world_com_mm": [ 995.1981132075472, 225.56603773584908, 4.830188679245285 ], "source_exact_and_redo_executes": true, "products": [ [ "Экспорт модели", "Экспорт модели" ], [ "Assembly", "Assembly" ], [ "Узел", "Узел" ], [ "Болт", "Болт" ], [ "Корпус", "Корпус" ], [ "Узел", "Узел" ] ], "occurrences": [ "Assembly", "SubA", "BoltA001", "BoltB001", "HousingOccurrence001", "SubB", "BoltA002", "BoltB002", "HousingOccurrence002", "DirectBolt" ] }, { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\placed-body-default.step", "solids": 1, "volume_mm3": 24.000000000000007, "world_com_mm": [ 28.200961894323342, 70.11602540378443, 102.00000000000001 ], "source_exact_and_redo_executes": true, "products": [ [ "Экспорт модели", "Экспорт модели" ], [ "Брусок", "Брусок" ] ], "occurrences": [ "Брусок" ] }, { "path": "C:\\Repos\\qinventor\\artifacts\\validation\\placed-body-explicit.step", "solids": 1, "volume_mm3": 24.000000000000007, "world_com_mm": [ 28.200961894323342, 70.11602540378443, 102.00000000000001 ], "source_exact_and_redo_executes": true, "products": [ [ "Экспорт модели", "Экспорт модели" ], [ "Брусок", "Брусок" ] ], "occurrences": [ "Брусок" ] } ], "native_writer_fault_old_bytes_and_source_exact": true, "native_instance_identity_labels_and_world_geometry_proved": true } }, { "name": "Nested rigid/flexible quantities density and world COM", "passed": true, "evidence": { "flat": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "BOLT", "name": "Болт", "quantity": 5, "quantity_total": 5, "material": "Сталь", "density_kg_m3": 7850.000000000001, "unit_mass_kg": 0.00018840000000000013, "mass_kg": 0.0009420000000000007, "source_id": "QInventorPart3#Body", "source_name": "Body", "source_doc": "QInventorPart3", "is_assembly": false, "kind": "part", "row_id": "QInventorPart3#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "HOUSING", "name": "Корпус", "quantity": 2, "quantity_total": 2, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.0027000000000000014, "mass_kg": 0.005400000000000003, "source_id": "QInventorPart3#Body001", "source_name": "Body001", "source_doc": "QInventorPart3", "is_assembly": false, "kind": "part", "row_id": "QInventorPart3#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)", "materials": [ "Алюминий" ] } ], "mass": { "volume_mm3": 2120.000000000001, "area_mm2": 1460.0000000000002, "mass_kg": 0.006342000000000003, "density_kg_m3": 2991.509433962264, "material": "Смешанные материалы", "materials": [ "Сталь", "Алюминий" ], "center_mm": [ 995.5198675496691, 226.48533585619683, 4.554399243140967 ], "dimensions_mm": [ 10.0, 202.00000000000003, 10.000000000000002 ], "solids": 7, "components": 7, "assembly_count": 3 }, "independent_world_com": [ 995.5198675496688, 226.4853358561968, 4.554399243140964 ], "rigid_and_flexible_native_links": true, "read_only_persistence_history": true } }, { "name": "Structured local/cumulative multiplicity and explicit roots", "passed": true, "evidence": { "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "SubAssembly", "name": "Узел", "quantity": 2, "quantity_total": 2, "material": "Смешанные материалы", "density_kg_m3": 2935.87786259542, "unit_mass_kg": 0.0030767999999999993, "mass_kg": 0.006153599999999999, "source_id": "QInventorPart4#SubAssembly", "source_name": "SubAssembly", "source_doc": "QInventorPart4", "is_assembly": true, "kind": "assembly", "row_id": "QInventorPart4#SubAssembly|1", "variant_id": "('assembly', ((('QInventorPart4', 'Body'), ((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0), (('QInventorPart4', 'Body'), ((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0), (('QInventorPart4', 'Body001'), ((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)))", "materials": [ "Алюминий", "Сталь" ] }, { "position": "1.1", "parent_position": "1", "level": 1, "part_number": "BOLT", "name": "Болт", "quantity": 2, "quantity_total": 4, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018840000000000003, "mass_kg": 0.0007536000000000001, "source_id": "QInventorPart4#Body", "source_name": "Body", "source_doc": "QInventorPart4", "is_assembly": false, "kind": "part", "row_id": "QInventorPart4#Body|1.1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "1.2", "parent_position": "1", "level": 1, "part_number": "HOUSING", "name": "Корпус", "quantity": 1, "quantity_total": 2, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.0026999999999999993, "mass_kg": 0.0053999999999999986, "source_id": "QInventorPart4#Body001", "source_name": "Body001", "source_doc": "QInventorPart4", "is_assembly": false, "kind": "part", "row_id": "QInventorPart4#Body001|1.2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)", "materials": [ "Алюминий" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "BOLT", "name": "Болт", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018840000000000003, "mass_kg": 0.00018840000000000003, "source_id": "QInventorPart4#Body", "source_name": "Body", "source_doc": "QInventorPart4", "is_assembly": false, "kind": "part", "row_id": "QInventorPart4#Body|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] } ], "scoped_subassembly": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "BOLT", "name": "Болт", "quantity": 2, "quantity_total": 2, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018840000000000003, "mass_kg": 0.00037680000000000005, "source_id": "QInventorPart4#Body", "source_name": "Body", "source_doc": "QInventorPart4", "is_assembly": false, "kind": "part", "row_id": "QInventorPart4#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "HOUSING", "name": "Корпус", "quantity": 1, "quantity_total": 1, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.0026999999999999993, "mass_kg": 0.0026999999999999993, "source_id": "QInventorPart4#Body001", "source_name": "Body001", "source_doc": "QInventorPart4", "is_assembly": false, "kind": "part", "row_id": "QInventorPart4#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)", "materials": [ "Алюминий" ] } ], "summary_never_double_counts": true, "actual_scope_roots": [ "Assembly", "SubA", "SubB" ] } }, { "name": "CAD source identity independent of labels and part numbers", "passed": true, "evidence": { "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "SAME", "name": "Одинаковая подпись", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018840000000000003, "mass_kg": 0.00018840000000000003, "source_id": "QInventorPart5#Body", "source_name": "Body", "source_doc": "QInventorPart5", "is_assembly": false, "kind": "part", "row_id": "QInventorPart5#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "SAME", "name": "Одинаковая подпись001", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00037680000000000005, "mass_kg": 0.00037680000000000005, "source_id": "QInventorPart5#Body001", "source_name": "Body001", "source_doc": "QInventorPart5", "is_assembly": false, "kind": "part", "row_id": "QInventorPart5#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 48.0, 80.0)", "materials": [ "Сталь" ] } ], "labels_and_numbers_do_not_define_identity": true } }, { "name": "Native hidden arrays mirror and nonuniform scales", "passed": true, "evidence": { "virtual_hidden_array_elements_counted": true, "array_variants": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018839999999999997, "mass_kg": 0.00018839999999999997, "source_id": "QInventorPart6#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart6", "is_assembly": false, "kind": "part", "row_id": "QInventorPart6#Bolt|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.0015071999999999998, "mass_kg": 0.0015071999999999998, "source_id": "QInventorPart6#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart6", "is_assembly": false, "kind": "part", "row_id": "QInventorPart6#Bolt|2", "variant_id": "(((4.0, 0.0, 0.0, 4.0, 0.0, 4.0), 1), 'Сталь', 7850.0, 192.0, 208.0)", "materials": [ "Сталь" ] }, { "position": "3", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.005086800000000001, "mass_kg": 0.005086800000000001, "source_id": "QInventorPart6#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart6", "is_assembly": false, "kind": "part", "row_id": "QInventorPart6#Bolt|3", "variant_id": "(((9.0, 0.0, 0.0, 9.0, 0.0, 9.0), 1), 'Сталь', 7850.0, 648.0, 468.0)", "materials": [ "Сталь" ] } ], "mirrored_positive_physical_mass": true, "nonuniform_scaling": true } }, { "name": "Expanded and virtual arrays preserve materials without duplicate roots", "passed": true, "evidence": { "both_native_array_representations": [ { "expanded_elements": false, "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 3, "quantity_total": 3, "material": "ABS", "density_kg_m3": 999.9999999999999, "unit_mass_kg": 2.3999999999999997E-05, "mass_kg": 7.199999999999999E-05, "source_id": "QInventorPart7#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart7", "is_assembly": false, "kind": "part", "row_id": "QInventorPart7#Bolt|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'ABS', 1000.0, 24.0, 52.0)", "materials": [ "ABS" ] } ], "components": 3, "actual_material_service_used": true, "array_view_properties": [ "ChildViewProvider", "DisplayMode", "DrawStyle", "LineWidth", "MaterialList", "OnTopWhenSelected", "OverrideColorList", "OverrideMaterial", "OverrideMaterialList", "PointSize", "Selectable", "SelectionStyle", "ShapeMaterial", "ShowInTree", "Visibility" ], "assembly_view_properties": [ "DisplayMode", "OnTopWhenSelected", "SelectionStyle", "ShowInTree", "TransformOrigin", "Visibility" ] }, { "expanded_elements": true, "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 3, "quantity_total": 3, "material": "ABS", "density_kg_m3": 999.9999999999999, "unit_mass_kg": 2.3999999999999997E-05, "mass_kg": 7.199999999999999E-05, "source_id": "QInventorPart8#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart8", "is_assembly": false, "kind": "part", "row_id": "QInventorPart8#Bolt|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'ABS', 1000.0, 24.0, 52.0)", "materials": [ "ABS" ] } ], "components": 3, "actual_material_service_used": true, "array_view_properties": [ "ChildViewProvider", "DisplayMode", "DrawStyle", "LineWidth", "MaterialList", "OnTopWhenSelected", "OverrideColorList", "OverrideMaterial", "OverrideMaterialList", "PointSize", "Selectable", "SelectionStyle", "ShapeMaterial", "ShowInTree", "Visibility" ], "assembly_view_properties": [ "DisplayMode", "OnTopWhenSelected", "SelectionStyle", "ShowInTree", "TransformOrigin", "Visibility" ] } ], "parent_array_material_used": true, "expanded_elements_not_extra_document_roots": true, "container_density_does_not_replace_leaf_density": true } }, { "name": "Effective scale cancellation rootless transforms and mirror identity", "passed": true, "evidence": { "uniform_scale_chain_cancels": true, "rootless_effective_transform": true, "mirror_variant_separate": true, "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 2, "quantity_total": 2, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018839999999999997, "mass_kg": 0.00037679999999999994, "source_id": "QInventorPart9#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart9", "is_assembly": false, "kind": "part", "row_id": "QInventorPart9#Bolt|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "Bolt", "name": "Bolt", "quantity": 1, "quantity_total": 1, "material": "Сталь", "density_kg_m3": 7850.0, "unit_mass_kg": 0.00018839999999999997, "mass_kg": 0.00018839999999999997, "source_id": "QInventorPart9#Bolt", "source_name": "Bolt", "source_doc": "QInventorPart9", "is_assembly": false, "kind": "part", "row_id": "QInventorPart9#Bolt|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), -1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] } ] } }, { "name": "Container Boolean history native mirroring and helper groups", "passed": true, "evidence": { "native_inputs_not_counted_inside_container": true, "actual_source_link_counted": true, "helper_sketch_group_omitted": true, "native_Mirroring_Source_consumed": true } }, { "name": "External source recompute and generic native container links", "passed": true, "evidence": { "external_dependency_recomputed": true, "generic_AppPart_link_traversed": true, "scope_selector_contains_only_addressable_local_occurrences": [ "Assembly", "ExternalContainer" ] } }, { "name": "Consumed Boolean history and native density units", "passed": true, "evidence": { "Boolean_base_and_tool_are_not_independent_parts": true, "explicit_base_occurrence_counted": true, "native_density_quantity_converted_to_kg_m3": true } }, { "name": "Cached native feature errors density and scoped validation", "passed": true, "evidence": { "cached_valid_BRep_invalid_feature_rejected": true, "explicit_scope_ignores_unrelated_failed_body": true, "invalid_density_rejected": 4, "wire_solid_compound_rejected": true } }, { "name": "Missing targets and native link/assembly cycles", "passed": true, "evidence": { "missing_and_wrong_assembly_target_rejected": true, "missing_wrong_target_gui_exercised": true, "native_cycle_evidence": { "passed": true, "service_path": "C:\\Repos\\qinventor\\src\\QInventor\\qi_bom.py", "service_sha256": "548b7196392650b790f8263440cc12039eb1aae20c19ce6158e4588f9cc2053d", "suite_sha256": "2a52ef5fb7f99f4f21d6858f0860eba2db0a18993f7092059029c3f73b145f9e", "freecad_version": [ "1", "1", "4", "20260928 (Git shallow)", "Unknown", "2026/09/28 13:46:34", "(HEAD detached at 4fd3bf320)", "4fd3bf320d9566a27e60069fc8387448aaa3a094" ], "gui_up": false, "user_cfg": "C:\\Repos\\qinventor\\artifacts\\validation\\bom-cycle-02rn2633\\user.cfg", "system_cfg": "C:\\Repos\\qinventor\\artifacts\\validation\\bom-cycle-02rn2633\\system.cfg", "evidence": { "real_two_link_cycle_guarded_before_delegated_geometry": true, "real_cross_assembly_cycle_guarded": true, "rejection_count": 4, "rejections": [ "Обнаружен цикл в составе сборки «A»", "Обнаружен цикл в составе сборки «A»", "Обнаружен цикл в составе сборки «A»", "Обнаружен цикл в составе сборки «AssemblyA»" ], "gui_up": false }, "native_exit_code": 0, "native_pid": 21276, "engine_path": "C:\\Repos\\qinventor\\runtime\\FreeCAD_1.1.4-Windows-x86_64-py311\\bin\\FreeCADCmd.exe", "report_path": "C:\\Repos\\qinventor\\artifacts\\validation\\bom-cycle-02rn2633\\cycle-report.json", "execution_boundary": "owned headless FreeCADCmd; parent missing/wrong targets remain GUI" } } }, { "name": "Atomic CSV validation old bytes and empty scope", "passed": true, "evidence": { "flat_csv": "C:\\Repos\\qinventor\\artifacts\\validation\\nested-flat.csv", "structured_csv": "C:\\Repos\\qinventor\\artifacts\\validation\\nested-structured.csv", "old_bytes_preserved_on_failure": true, "no_parent_directory_on_invalid_input": true, "empty_export_rejected": true } }, { "name": "FCStd source edits Undo/Redo and STEP instance proof", "passed": true, "evidence": { "fcstd": "C:\\Repos\\qinventor\\artifacts\\validation\\nested-assembly.FCStd", "step": "C:\\Repos\\qinventor\\artifacts\\validation\\nested-assembly.step", "step_leaf_solids": 7, "step_volume_mm3": 2240.0, "source_edit_and_undo_redo_updates_all_occurrences": true, "step_world_centers": [ [ 102.0, 1.5, 2.0 ], [ 112.0, 1.5, 2.0 ], [ 125.0, 5.0, 5.0 ], [ 202.0, 1.5, 2.0 ], [ 212.0, 1.5, 2.0 ], [ 225.0, 5.0, 5.0 ], [ 302.0, 1.5, 2.0 ] ] } } ], "summary": { "total": 14, "passed": 14, "failed": 0 }, "gui_exercised": true, "cycle_execution_boundary": "owned headless FreeCADCmd child" } }, { "name": "nested_assembly_bom_gui_suite", "passed": true, "result": { "status": "passed", "passed": 3, "failed": 0, "checks": [ { "name": "Native insertion, flat and structured quantities, materials and nested scope", "passed": true, "evidence": { "native_inserted_subassemblies": 2, "native_inserted_direct_bolts": 1, "flat_quantities": { "GUI-HOUSING": 2, "GUI-BOLT": 5 }, "mixed_mass_kg": 0.006633075116533993, "prototype_excluded": true, "construction_sketch_container_has_no_BOM_rows": true, "assembly_material_rejected_before_chooser_without_mutation": [ { "type": "Assembly::AssemblyObject", "message": "Выберите конечную деталь или её экземпляр. Материалы сборки задаются у входящих деталей." }, { "type": "Assembly::AssemblyLink", "message": "Выберите конечную деталь или её экземпляр. Материалы сборки задаются у входящих деталей." } ], "physical_counts_ignore_visibility": true, "structured_local_and_total_quantities": true, "selected_live_nested_instance": true, "screenshots": [ "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-flat.png", "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-structured.png" ] } }, { "name": "Russian mass properties, native source refresh, actual CSV dialogs and FCStd reopen", "passed": true, "evidence": { "mass_properties_russian_labels": { "Объём, мм³": "2157.08", "Площадь поверхности, мм²": "1545.58", "Масса, кг": "0.00663308", "Средняя плотность, кг/м³": "3075.03", "Материал": "Смешанные материалы", "Материалы деталей": "Сталь, Алюминий", "Центр масс, мм": "6.74; 4.13743; 5.06692", "Габариты, мм": "21; 10.9989; 11.7998", "Твёрдых тел": "7", "Экземпляров деталей": "7", "Сборок": "3" }, "source_edit_refresh": true, "export_refreshes_current_model": true, "native_save_dialog_keyboard_and_button": true, "flat_csv": "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-flat.csv", "structured_csv": "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-structured.csv", "FCStd_external_sources_reopened": true, "mass_kg_after_reopen": 0.012033075116533992, "screenshots": [ "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-updated-and-exported.png", "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-reopened.png" ] } }, { "name": "Invalid cached source, native task and closed document protect BOM export", "passed": true, "evidence": { "invalid_cached_source_blocks_export": true, "previous_csv_unchanged": "8dc2bb6168478bb57ea4ef83a0992357d21edde7da78a289a1250e477f4d881f", "native_task_blocks_refresh": true, "closed_document_refuses_refresh_and_export": true } } ], "input_delivery": "Qt native Assembly insertion list, BOM controls, native file and property dialogs", "fixture_boundary": "native Assembly::AssemblyLink/App::Link instances of saved FCStd sources", "os_pointer_access": false, "fixture_attempts": [ { "number": 1, "initial_docs": [], "clicks": [ { "requested_source": { "document": "QInventorAssembly", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Подсборка" }, "item_source": { "document": "QInventorAssembly", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Подсборка" }, "item_at_click": { "document": "QInventorAssembly", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Подсборка" }, "rectangle": [ 24, 18, 229, 18 ], "viewport": [ 253, 198 ], "before": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "after": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [ { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" } ], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } } }, { "requested_source": { "document": "QInventorAssembly", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Подсборка" }, "item_source": { "document": "QInventorAssembly", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Подсборка" }, "item_at_click": { "document": "QInventorAssembly", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Подсборка" }, "rectangle": [ 24, 18, 229, 18 ], "viewport": [ 253, 198 ], "before": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [ { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" } ], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "after": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [ { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" } ], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } } }, { "requested_source": { "document": "QInventorPart", "name": "Body001", "type": "PartDesign::Body", "label": "Болт" }, "item_source": { "document": "QInventorPart", "name": "Body001", "type": "PartDesign::Body", "label": "Болт" }, "item_at_click": { "document": "QInventorPart", "name": "Body001", "type": "PartDesign::Body", "label": "Болт" }, "rectangle": [ 24, 162, 229, 18 ], "viewport": [ 253, 198 ], "before": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [ { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" } ], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "after": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [ { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } } } ], "fixture_directory": "C:\\Repos\\qinventor\\artifacts\\validation\\bom-gui-fixture-47a83b90a0d34e11a7aab8fd904907d3", "before_set_edit": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": null, "QInventorPart": null }, "selection": [], "active_assembly": null, "view_assembly": null, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "expected_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "after_set_edit": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "after_native_command": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "before_accept": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [ { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "after_accept": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": { "native_class": "ViewProviderAssembly", "name": "", "representation": "" }, "QInventorPart": null }, "selection": [], "active_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_assembly": { "document": "QInventorAssembly1", "name": "Assembly", "type": "Assembly::AssemblyObject", "label": "Сборка спецификации" }, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } }, "actual_links": [ { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "before_count_assert": { "app_document": "QInventorAssembly1", "gui_document": "QInventorAssembly1", "in_edit": { "QInventorAssembly": null, "QInventorAssembly1": null, "QInventorPart": null }, "selection": [], "active_assembly": null, "view_assembly": null, "view_part": null, "assembly_groups": { "QInventorAssembly#Assembly": [ { "document": "QInventorAssembly", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "Основание закреплено" }, { "document": "QInventorAssembly", "name": "Component001", "type": "App::Link", "label": "Болт" }, { "document": "QInventorAssembly", "name": "Component002", "type": "App::Link", "label": "Болт001" } ], "QInventorAssembly1#Assembly": [ { "document": "QInventorAssembly1", "name": "Joints", "type": "Assembly::JointGroup", "label": "Joints" }, { "document": "QInventorAssembly1", "name": "Подсборка", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "GroundedJoint", "type": "App::FeaturePython", "label": "GroundedJoint" }, { "document": "QInventorAssembly1", "name": "Подсборка001", "type": "Assembly::AssemblyLink", "label": "Подсборка" }, { "document": "QInventorAssembly1", "name": "Болт", "type": "App::Link", "label": "Болт005" } ], "QInventorAssembly1#PrototypeAssembly": [ { "document": "QInventorAssembly1", "name": "Joints001", "type": "Assembly::JointGroup", "label": "Joints001" }, { "document": "QInventorAssembly1", "name": "Component", "type": "App::Link", "label": "Корпус" }, { "document": "QInventorAssembly1", "name": "Component001", "type": "App::Link", "label": "Болт" } ] } } } ], "count": 3 } }, { "name": "drawing_bom_kernel_suite", "passed": true, "result": { "passed": true, "checks": [ { "name": "Native table explicit projection scope DAG and no-op", "passed": true, "evidence": { "native_types": [ "Spreadsheet::SheetPython", "TechDraw::DrawViewSpreadsheet" ], "draft_is_read_only": true, "one_create_undo": true, "no_page_backlink": true, "snapshot": { "mode": "flat", "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "BOLT", "name": "Болт", "quantity": 5, "quantity_total": 5, "material": "Сталь", "density_kg_m3": 7850.000000000001, "unit_mass_kg": 0.00018840000000000013, "mass_kg": 0.0009420000000000007, "source_id": "QInventorPart#Body", "source_name": "Body", "source_doc": "QInventorPart", "is_assembly": false, "kind": "part", "row_id": "QInventorPart#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "HOUSING", "name": "Корпус", "quantity": 2, "quantity_total": 2, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.0027000000000000014, "mass_kg": 0.005400000000000003, "source_id": "QInventorPart#Body001", "source_name": "Body001", "source_doc": "QInventorPart", "is_assembly": false, "kind": "part", "row_id": "QInventorPart#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)", "materials": [ "Алюминий" ] } ], "summary": { "volume_mm3": 2120.000000000001, "area_mm2": 1460.0000000000002, "mass_kg": 0.006342000000000003, "density_kg_m3": 2991.509433962264, "material": "Смешанные материалы", "materials": [ "Сталь", "Алюминий" ], "center_mm": [ 995.5198675496691, 226.48533585619683, 4.554399243140967 ], "dimensions_mm": [ 10.0, 202.00000000000003, 10.000000000000002 ], "solids": 7, "components": 7, "assembly_count": 3 }, "cells": { "A1": "'Поз.", "B1": "'Обозначение", "C1": "'Наименование", "D1": "'Кол.", "E1": "'Материал", "F1": "'Масса, кг", "A2": "'1", "B2": "'BOLT", "C2": "'Болт", "D2": "5", "E2": "'Сталь", "F2": "'0,000942", "A3": "'2", "B3": "'HOUSING", "C3": "'Корпус", "D3": "2", "E3": "'Алюминий", "F3": "'0,0054", "C4": "'Итого", "F4": "'0,006342" }, "layout": { "x_mm": 218.0, "y_mm": 86.0, "width_mm": 137.28000000000003, "height_mm": 28.160000000000004, "column_widths_native": [ 35, 84, 104, 45, 65, 96 ], "row_height_native": 22, "scale": 3.2, "text_size_native": 9.0, "font": "DejaVu Sans", "last_row": 4, "cell_start": "A1", "cell_end": "F4", "reserved_cells": "A:G", "minimum_text_height_mm": 2.8800000000000003, "printed_mass_significant_digits": 8, "mixed_assembly_material_abbreviation": "Смеш." }, "source_names": [ "Assembly" ], "source_labels": [ "Assembly" ], "geometry_view_names": [ "FrontView", "TopView", "IsoView" ], "sheet_name": "DrawingBOM", "view_name": "BOMView", "native_symbol_bounds_mm": { "width": 137.28000000000003, "height": 28.160000000000004 } } } }, { "name": "Automatic source labels native formulas and Undo Redo", "passed": true, "evidence": { "automatic_source_edit": true, "native_formula_outside_generated_range": 7, "callback_max_depth": 1, "all_execute_returns_false": true, "label_only_observer_and_literal_formula_prefix": true, "undo_redo_preserved": true } }, { "name": "Explicit scope repair and unrelated invalid body", "passed": true, "evidence": { "explicit_rebind_repairs_old_sheet_invalid": true, "unrelated_invalid_body_ignored": true, "mixed_projection_sources_rejected_before_mutation": true, "material_scope": "Алюминий" } }, { "name": "Native invalid last-good cells and nonhealing validation", "passed": true, "evidence": { "density_error_native_invalid": true, "cached_valid_pad_rejected": true, "last_good_cells_preserved": true, "validate_does_not_heal": true } }, { "name": "Structured quantities and overflow preserving redo", "passed": true, "evidence": { "structured_local_total_quantities": true, "mixed_material_print_abbreviation": "Смеш.", "stable_E_cell_type_immediate_native_undo_redo": true, "D_quantity_native_integer": true, "quantity_total_metadata_numeric": true, "native_overflow_reject_preserves_redo_branch": true } }, { "name": "Changing row count preserves user notes", "passed": true, "evidence": { "removed_computed_rows_cleared": true, "printed_range_updates": true, "outside_notes_preserved": true } }, { "name": "Native top-root membership updates in one recompute", "passed": true, "evidence": { "actual_projection_source": "Assembly", "native_solid_counts": [ 7, 4, 7 ], "sheet_components": [ 7, 4, 7 ], "one_sheet_execute_per_native_recompute": true, "fresh_native_symbol": true } }, { "name": "Insert Undo Redo and FCStd fresh native process", "passed": true, "evidence": { "create_undo_removes_sheet_and_view": true, "redo_restores_proxy": true, "fcstd": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-associative.FCStd", "fresh_native_process": { "passed": true, "gui_up": false, "service_path": "C:\\Repos\\qinventor\\src\\QInventor\\qi_drawing_bom.py", "service_sha256": "143dfa91623c6ac08c80e02e1671f6628ec18a5fd551bda362d7d99d252a4d11", "restored_proxy": "DrawingBOMProxy", "initial": { "mode": "flat", "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "BOLT", "name": "Болт", "quantity": 5, "quantity_total": 5, "material": "Сталь", "density_kg_m3": 7850.000000000001, "unit_mass_kg": 0.00018840000000000013, "mass_kg": 0.0009420000000000007, "source_id": "drawing_bom_associative#Body", "source_name": "Body", "source_doc": "drawing_bom_associative", "is_assembly": false, "kind": "part", "row_id": "drawing_bom_associative#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 24.0, 52.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "HOUSING", "name": "Корпус", "quantity": 2, "quantity_total": 2, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.0027000000000000014, "mass_kg": 0.005400000000000003, "source_id": "drawing_bom_associative#Body001", "source_name": "Body001", "source_doc": "drawing_bom_associative", "is_assembly": false, "kind": "part", "row_id": "drawing_bom_associative#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)", "materials": [ "Алюминий" ] } ], "summary": { "volume_mm3": 2120.000000000001, "area_mm2": 1460.0000000000002, "mass_kg": 0.006342000000000003, "density_kg_m3": 2991.509433962264, "material": "Смешанные материалы", "materials": [ "Сталь", "Алюминий" ], "center_mm": [ 995.5198675496691, 226.48533585619683, 4.554399243140967 ], "dimensions_mm": [ 10.0, 202.00000000000003, 10.000000000000002 ], "solids": 7, "components": 7, "assembly_count": 3 }, "cells": { "A1": "'Поз.", "B1": "'Обозначение", "C1": "'Наименование", "D1": "'Кол.", "E1": "'Материал", "F1": "'Масса, кг", "A2": "'1", "B2": "'BOLT", "C2": "'Болт", "D2": "5", "E2": "'Сталь", "F2": "'0,000942", "A3": "'2", "B3": "'HOUSING", "C3": "'Корпус", "D3": "2", "E3": "'Алюминий", "F3": "'0,0054", "C4": "'Итого", "F4": "'0,006342" }, "layout": { "x_mm": 218.0, "y_mm": 86.0, "width_mm": 137.28000000000003, "height_mm": 28.160000000000004, "column_widths_native": [ 35, 84, 104, 45, 65, 96 ], "row_height_native": 22, "scale": 3.2, "text_size_native": 9.0, "font": "DejaVu Sans", "last_row": 4, "cell_start": "A1", "cell_end": "F4", "reserved_cells": "A:G", "minimum_text_height_mm": 2.8800000000000003, "printed_mass_significant_digits": 8, "mixed_assembly_material_abbreviation": "Смеш." }, "source_names": [ "Assembly" ], "source_labels": [ "Assembly" ], "geometry_view_names": [ "FrontView", "TopView", "IsoView" ], "sheet_name": "DrawingBOM", "view_name": "BOMView", "native_symbol_bounds_mm": { "width": 137.28000000000003, "height": 28.160000000000004 } }, "edited": { "mode": "flat", "rows": [ { "position": "1", "parent_position": "", "level": 0, "part_number": "BOLT", "name": "Болт", "quantity": 5, "quantity_total": 5, "material": "Сталь", "density_kg_m3": 7850.000000000001, "unit_mass_kg": 0.00037680000000000027, "mass_kg": 0.0018840000000000013, "source_id": "drawing_bom_associative#Body", "source_name": "Body", "source_doc": "drawing_bom_associative", "is_assembly": false, "kind": "part", "row_id": "drawing_bom_associative#Body|1", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Сталь', 7850.0, 48.0, 92.0)", "materials": [ "Сталь" ] }, { "position": "2", "parent_position": "", "level": 0, "part_number": "HOUSING", "name": "Корпус", "quantity": 2, "quantity_total": 2, "material": "Алюминий", "density_kg_m3": 2700.0, "unit_mass_kg": 0.0027000000000000014, "mass_kg": 0.005400000000000003, "source_id": "drawing_bom_associative#Body001", "source_name": "Body001", "source_doc": "drawing_bom_associative", "is_assembly": false, "kind": "part", "row_id": "drawing_bom_associative#Body001|2", "variant_id": "(((1.0, 0.0, 0.0, 1.0, 0.0, 1.0), 1), 'Алюминий', 2700.0, 1000.0, 600.0)", "materials": [ "Алюминий" ] } ], "summary": { "volume_mm3": 2240.000000000001, "area_mm2": 1660.0000000000002, "mass_kg": 0.007284000000000004, "density_kg_m3": 3251.7857142857147, "material": "Смешанные материалы", "materials": [ "Сталь", "Алюминий" ], "center_mm": [ 995.9052718286656, 227.58649093904452, 4.741350906095553 ], "dimensions_mm": [ 10.0, 202.00000000000003, 10.000000000000002 ], "solids": 7, "components": 7, "assembly_count": 3 }, "cells": { "A1": "'Поз.", "B1": "'Обозначение", "C1": "'Наименование", "D1": "'Кол.", "E1": "'Материал", "F1": "'Масса, кг", "A2": "'1", "B2": "'BOLT", "C2": "'Болт", "D2": "5", "E2": "'Сталь", "F2": "'0,001884", "A3": "'2", "B3": "'HOUSING", "C3": "'Корпус", "D3": "2", "E3": "'Алюминий", "F3": "'0,0054", "C4": "'Итого", "F4": "'0,007284" }, "layout": { "x_mm": 218.0, "y_mm": 86.0, "width_mm": 137.28000000000003, "height_mm": 28.160000000000004, "column_widths_native": [ 35, 84, 104, 45, 65, 96 ], "row_height_native": 22, "scale": 3.2, "text_size_native": 9.0, "font": "DejaVu Sans", "last_row": 4, "cell_start": "A1", "cell_end": "F4", "reserved_cells": "A:G", "minimum_text_height_mm": 2.8800000000000003, "printed_mass_significant_digits": 8, "mixed_assembly_material_abbreviation": "Смеш." }, "source_names": [ "Assembly" ], "source_labels": [ "Assembly" ], "geometry_view_names": [ "FrontView", "TopView", "IsoView" ], "sheet_name": "DrawingBOM", "view_name": "BOMView", "native_symbol_bounds_mm": { "width": 137.28000000000003, "height": 28.160000000000004 } }, "undo_redo": true, "native_exit_code": 0, "report_path": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-reopen-kb1j_hw6\\report.json", "engine": "C:\\Repos\\qinventor\\runtime\\FreeCAD_1.1.4-Windows-x86_64-py311\\bin\\FreeCADCmd.exe", "native_pid": 21452 } } }, { "name": "Ordinary mass precision and untruncated text errors", "passed": true, "evidence": { "ordinary_cylinder_mass_printed": "'0,0015536746", "oversized_text_rejected_without_truncation": true } }, { "name": "Actual native table format position and missing-source guards", "passed": true, "evidence": { "actual_native_xy_checked": true, "native_font_change_rejected_and_repaired": true, "native_rotation_rejected_and_repaired": true, "lost_sheet_source_not_treated_as_absent_table": true, "validation_read_only": true, "native_undo_restores_source": true } } ], "summary": { "total": 10, "passed": 10, "failed": 0 }, "gui_exercised": true } }, { "name": "drawing_bom_gui_suite", "passed": true, "result": { "status": "passed", "passed": 3, "failed": 0, "checks": [ { "name": "Actual ribbon preview cancel insertion mode update native Undo/Redo and A4 bounds", "passed": true, "evidence": { "missing_and_ambiguous_page_rejected_before_dialog": true, "preview_cancel_exact_native_state": true, "page_sources_scope": [ "Assembly" ], "single_native_transaction_create_and_update": true, "undo_redo_mode": true, "flat_symbol": { "texts": [ "Поз.", "1", "2", "", "Обозначение", "BOLT", "HOUSING", "", "Наименование", "Болт", "Корпус", "Итого", "Кол.", "5", "2", "", "Материал", "Сталь", "Алюминий", "", "Масса, кг", "0,000942", "0,0054", "0,006342" ], "printed_bounds_mm": [ 149.34249999999997, 71.9025, 286.6575, 100.0975 ], "hash": "7524315da86dbb5c648ab293a320a3ec72312d8449bc6c83e4692b63ecefb083" }, "structured_symbol": { "texts": [ "Поз.", "1", "1.1", "1.2", "2", "", "Обозначение", "SubAssembly", "BOLT", "HOUSING", "BOLT", "", "Наименование", "Узел", "Болт", "Корпус", "Болт", "Итого", "Кол.", "2", "2", "1", "1", "", "Всего", "2", "4", "2", "1", "", "Материал", "Смеш.", "Сталь", "Алюминий", "Сталь", "", "Масса, кг", "0,0061536", "0,0007536", "0,0054", "0,0001884", "0,006342" ], "printed_bounds_mm": [ 149.25249995000001, 66.84249994999999, 286.74750005, 105.15750005000001 ], "hash": "0439233204940ad7ce427f5e3ab0301ef8877883d9ea1b9bad38cea567260e65" }, "csv_caption_survives_language_change": true, "screenshot": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-preview.png" } }, { "name": "Live seven-leaf source cells Symbol native PDF/SVG/DXF and independent FCStd restore", "passed": true, "evidence": { "automatic_source_edit_cells_and_symbol": true, "outside_source_ignored": true, "updated": { "svg": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-updated.svg", "pdf": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-updated.pdf", "dxf": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-updated.dxf", "dxf_evidence": { "version": "AC1021", "actual_UTF8_text": [ "Поз.", "1", "2", "Обозначение", "BOLT", "HOUSING", "Наименование", "Болт", "Корпус", "Итого", "Кол.", "5", "2", "Материал", "Сталь", "Алюминий", "Масса, кг", "0,001884", "0,0054", "0,007284" ], "native_editable_text_readback": [ "Поз.", "1", "2", "Обозначение", "BOLT", "HOUSING", "Наименование", "Болт", "Корпус", "Итого", "Кол.", "5", "2", "Материал", "Сталь", "Алюминий", "Масса, кг", "0,001884", "0,0054", "0,007284" ], "native_text_properties": [ { "name": "Text", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text001", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text002", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text003", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text004", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text005", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text006", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text007", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text008", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text009", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text010", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text011", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text012", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text013", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text014", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text015", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text016", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text017", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text018", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text019", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] } ], "native_text_edit_restore": true, "native_projection_entities_unchanged": true, "native_projection_layers": [ "FrontView", "IsoView", "TopView" ], "grid_paper_bounds_mm": [ 149.36, 71.92, 286.64, 100.08 ], "native_reader_stats": { "dxfVersion": "AC1021", "dxfEncoding": "utf_8", "scalingSource": "$INSUNITS", "fileUnits": "Millimeters", "finalScalingFactor": 1.0, "importTimeSeconds": 0.9060992, "totalEntitiesCreated": 195, "entityCounts": { "LINE": 195, "TEXT": 20 }, "importSettings": { "Import hidden blocks": "No", "Import layout objects": "No", "Import points": "Yes", "Import texts and dimensions": "Yes", "Join geometry": "No", "Manual scaling factor": "1.000000", "Use colors from the DXF file": "Yes", "Use layers": "Yes" }, "unsupportedFeatures": {}, "systemBlockCounts": { "Other System Blocks": 2 } } }, "rendered": [ "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-updated-svg.png" ], "actual_SVG_grid_bounds_mm": [ 149.377, 109.937, 286.621822, 138.062064 ], "pdf_visual_review": "Separate offline renderer; the CAD runtime does not bundle QtPdf" }, "FCStd": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-bbd0614872a64bbd91261f1962cc1316.FCStd", "independent_native_restore": { "native_exit_code": 0, "report": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-restore-_wo4e3mp\\report.json", "mass_kg_after_edit": 0.007284000000000004 }, "reopened": { "svg": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-reopened.svg", "pdf": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-reopened.pdf", "dxf": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-reopened.dxf", "dxf_evidence": { "version": "AC1021", "actual_UTF8_text": [ "Поз.", "1", "2", "Обозначение", "BOLT", "HOUSING", "Наименование", "Болт", "Корпус", "Итого", "Кол.", "5", "2", "Материал", "Сталь", "Алюминий", "Масса, кг", "0,000942", "0,0054", "0,006342" ], "native_editable_text_readback": [ "Поз.", "1", "2", "Обозначение", "BOLT", "HOUSING", "Наименование", "Болт", "Корпус", "Итого", "Кол.", "5", "2", "Материал", "Сталь", "Алюминий", "Масса, кг", "0,000942", "0,0054", "0,006342" ], "native_text_properties": [ { "name": "Text", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text001", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text002", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text003", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text004", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text005", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text006", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text007", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text008", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text009", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text010", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text011", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text012", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text013", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text014", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text015", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text016", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text017", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text018", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] }, { "name": "Text019", "type": "App::FeaturePython", "property_type": "App::PropertyStringList", "editor_flags": [] } ], "native_text_edit_restore": true, "native_projection_entities_unchanged": true, "native_projection_layers": [ "FrontView", "IsoView", "TopView" ], "grid_paper_bounds_mm": [ 149.36, 71.92, 286.64, 100.08 ], "native_reader_stats": { "dxfVersion": "AC1021", "dxfEncoding": "utf_8", "scalingSource": "$INSUNITS", "fileUnits": "Millimeters", "finalScalingFactor": 1.0, "importTimeSeconds": 0.8685385, "totalEntitiesCreated": 195, "entityCounts": { "LINE": 195, "TEXT": 20 }, "importSettings": { "Import hidden blocks": "No", "Import layout objects": "No", "Import points": "Yes", "Import texts and dimensions": "Yes", "Join geometry": "No", "Manual scaling factor": "1.000000", "Use colors from the DXF file": "Yes", "Use layers": "Yes" }, "unsupportedFeatures": {}, "systemBlockCounts": { "Other System Blocks": 2 } } }, "rendered": [ "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-reopened-svg.png" ], "actual_SVG_grid_bounds_mm": [ 149.377, 109.937, 286.621822, 138.062064 ], "pdf_visual_review": "Separate offline renderer; the CAD runtime does not bundle QtPdf" } } }, { "name": "Cached native errors A4 overflow and post-writer fault protect table and old exports", "passed": true, "evidence": { "cached_invalid_shape_rejects_UI_and_export": true, "A4_overflow_rejects_without_writes": true, "last_good_table_cells_preserved": true, "native_writer_fault_after_output": [ "C:\\Repos\\qinventor\\artifacts\\validation\\.qinventor-7oauva9g.svg", "C:\\Repos\\qinventor\\artifacts\\validation\\.qinventor-5u7rz7w8.dxf" ], "previous_PDF_SVG_DXF_bytes_preserved": true, "owned_temps_removed": true, "user_companion_file_untouched": "C:\\Repos\\qinventor\\artifacts\\validation\\drawing-bom-protected.geometry-check.svg" } } ], "input_delivery": "actual Qt ribbon and drawing BOM controls; native CAD/PDF/SVG/DXF", "os_pointer_access": false, "count": 3 } }, { "name": "assembly_drawing_command_workflow_suite", "passed": true, "result": { "status": "passed", "passed": 6, "failed": 0, "checks": [ { "name": "actual_plane_dialog_cancel_without_document", "passed": true, "evidence": { "cancel_clicked": true, "dialog_seen": true, "documents_preserved": true, "no_active_document": true } }, { "name": "assembly_drawing_command_definition_edit_and_fcstd_exports", "passed": true, "evidence": { "selection_required": false, "linked_components": 3, "views": 3, "definition_edits_update_native_projections": true, "fcstd_reopen_preserves_associativity": true, "pdf_bytes": 225610, "svg_bytes": 29847 } }, { "name": "empty_document_drawing_rejected_without_mutation", "passed": true, "evidence": { "empty_rejected": true, "objects_and_history_preserved": true } }, { "name": "assembly_title_material_follows_actual_view_sources", "passed": true, "evidence": { "drawing_source": "Component", "material": "Сталь", "unrelated_aluminum_part_ignored_by_title": true } }, { "name": "failed_cached_native_solid_drawing_rejected_without_mutation", "passed": true, "evidence": { "native_error": "Cannot create a pad with a total length of zero.", "cached_volume_mm3": 999.9999999999998, "page_not_created": true, "objects_and_history_preserved": true } }, { "name": "existing_page_cached_linked_source_exports_rejected", "passed": true, "evidence": { "linked_cached_native_failure_rejected": { "dxf": "Объект «Выдавливание» содержит ошибку перестроения. Исправьте операцию перед экспортом чертежа.", "pdf": "Объект «Выдавливание» содержит ошибку перестроения. Исправьте операцию перед экспортом чертежа.", "svg": "Объект «Выдавливание» содержит ошибку перестроения. Исправьте операцию перед экспортом чертежа." }, "cached_volume_mm3": 999.9999999999998, "existing_outputs_and_absent_directories_preserved": true, "native_wire_page_exports_despite_unrelated_failed_source": { "dxf": 7004, "pdf": 214154, "svg": 7099 } } } ], "artifacts": [ "C:\\Repos\\qinventor\\artifacts\\validation\\command-plane-cancel-dialog.png", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing-snapshots.json", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing-before.png", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing-updated.png", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing.FCStd", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing.svg", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing.pdf", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-drawing-reopened.png", "C:\\Repos\\qinventor\\artifacts\\validation\\command-assembly-title-material-scope.png" ] } }, { "name": "sketch_dimension_finish_pad_workflow", "passed": true, "result": { "sketch": "Sketch", "volume_mm3": 12000.0 } }, { "name": "cancel_new_and_existing_sketch", "passed": true, "result": { "existing_restored": true, "new_removed": true } }, { "name": "drawing_pdf_svg_export", "passed": true, "result": { "page": "Drawing", "pdf_bytes": 163077, "views": 3 } }, { "name": "russian_native_and_custom_surfaces", "passed": true, "result": { "supplemental_sources": 385, "visible_untranslated": 0, "native_menu_titles": [ "Файл", "Изменить", "Вид", "Инструменты", "Макросы", "QInventor", "Окна", "Справка" ], "parameter_backend_error_russian": true, "deleted_parameter_object_error_russian": true } }, { "name": "shipped_examples", "passed": true, "result": [ "bracket.FCStd", "bracket.step", "assembly.FCStd", "assembly.step" ] }, { "name": "source_snapshot_consistent", "passed": true, "result": true } ], "passed": 26, "failed": 0, "source_sha256": [ { "path": "scripts\\bootstrap.ps1", "sha256": "aeecd11aa2b609fbbbc6d4bcaf6eb6a4c236913aff26cd5096b3cb5a33dd499c" }, { "path": "scripts\\build-launcher.ps1", "sha256": "b78168056b1009576872bc7d93f35fb7db5d409e8dd24418cfe74b42c30c6c7e" }, { "path": "scripts\\launcher\\Program.cs", "sha256": "7cee5b394ba055bb63619a5aef4c9b9db82055c3ca1a61a2550da221a996cfc5" }, { "path": "scripts\\launcher\\QInventor.Launcher.csproj", "sha256": "b46bb80c4b39b66a66b9d2e25ba97c186a9ca48d9e6bc4cdd11531b9c89990d8" }, { "path": "scripts\\launcher\\RuntimePath.cs", "sha256": "13fd9e93326afef703fa1926f83ea519dceaccb3781526e1e5e2c23243f78057" }, { "path": "scripts\\package.ps1", "sha256": "9352bd79ee9ac41a1766745a86fd1e1c9193163f544cf838e122dcf4b770fdbb" }, { "path": "scripts\\render-icon.py", "sha256": "2063594fde4d169f141b3a386f455be1f116b3c8a01f8bb257f4ff575b02aa42" }, { "path": "scripts\\startup.FCMacro", "sha256": "813b4e857b3e184f3a41c7b72debfd995e7ee36ad2532aa3f57a4c878d6fc38b" }, { "path": "scripts\\sync.ps1", "sha256": "e1349b8d1527bab9f700d0e8418a6e6be6d3df97838103efc5c473d2bcb3a5de" }, { "path": "scripts\\test.ps1", "sha256": "6e827d4aa63e150006b2a77e77243d8445612d684bb0cea79ef4d67811c599dd" }, { "path": "scripts\\translator-probe.py", "sha256": "5ee83e97742a65eb147227cf6c020f4307122908a3c06e1417727ee603a819ae" }, { "path": "src\\QInventor\\Init.py", "sha256": "7d2681813d2efe5a3b79147da578b67290117e61575e4e1735dd6a9aab7a37e1" }, { "path": "src\\QInventor\\InitGui.py", "sha256": "0f6fa12520a656980d3a3d61582cfcbebfa3f41728d63b75ad2fb001116a850e" }, { "path": "src\\QInventor\\qi_bom.py", "sha256": "548b7196392650b790f8263440cc12039eb1aae20c19ce6158e4588f9cc2053d" }, { "path": "src\\QInventor\\qi_bom_ui.py", "sha256": "522ea28fcce9f7a22e0ea107304ca32406846ec99af16b6adf04ef3da008811d" }, { "path": "src\\QInventor\\qi_commands.py", "sha256": "19816cbda6a9cc15023484022d0a13f84bd176d6e9eae0b681b968da21732f61" }, { "path": "src\\QInventor\\qi_drawing_bom.py", "sha256": "143dfa91623c6ac08c80e02e1671f6628ec18a5fd551bda362d7d99d252a4d11" }, { "path": "src\\QInventor\\qi_drawing_bom_export.py", "sha256": "1e0fbe90cafcf2321ce4eae90868211be7db105767f98bcf42789950d52dab2f" }, { "path": "src\\QInventor\\qi_drawing_bom_ui.py", "sha256": "8a50502dd648a42a2e6e4b436972c67b71ec0683f0c4276b13f313357d0c103a" }, { "path": "src\\QInventor\\qi_extrude.py", "sha256": "03b5b7eea4adbf168d623995e84e0d3af4ccea58494b3b34542b10447ef0c072" }, { "path": "src\\QInventor\\qi_io.py", "sha256": "77ea249f6d3a374e89ac294e0de8a386356ed47f908ba494cbe8fea37c34df1f" }, { "path": "src\\QInventor\\qi_localization.py", "sha256": "84041c5888157e7844b99ebda3fddf9e86531667c9e1aa56cde917795f1b91e1" }, { "path": "src\\QInventor\\qi_messages.py", "sha256": "5c0c41cf0c1bd60f30d0aec0da6934c2af70a88765d86c07e500046714eeecb5" }, { "path": "src\\QInventor\\qi_model.py", "sha256": "08c094382cfadd5e94e3ab6d1ce01ad1214985cc2a3222814ab5b2da26c4d762" }, { "path": "src\\QInventor\\qi_parameters.py", "sha256": "9f384e40b930b6ebc4e7f068651c0797134818803b82704258e26215997c01c2" }, { "path": "src\\QInventor\\qi_parameters_ui.py", "sha256": "4e10337d61bb38f229736f0e877d16cc99106943fa3a8f4333fa905aad7ec19f" }, { "path": "src\\QInventor\\qi_projection.py", "sha256": "a4923dd69f7dcb3230a4b60bd001698d90d6d02db5aa016362034ee73520925d" }, { "path": "src\\QInventor\\qi_sketch_offset.py", "sha256": "ffb0f2a000b91528587110d7f5d47b7e26902b499e1b35220e3c09fc89786cb9" }, { "path": "src\\QInventor\\qi_sketch_patterns.py", "sha256": "c98dfd369c639436f0aed0664cf43cc6345b6639c102309efb90041fe65d4e1e" }, { "path": "src\\QInventor\\qi_sketch_preview.py", "sha256": "4858dc39046bad95306179212fe44a63e2e1437259a9c6d14bc847b68c7aab76" }, { "path": "src\\QInventor\\qi_sketch_ui.py", "sha256": "d505b802c65f1566a64d7687e290a64226aff91958db59b8d621ac69909ead37" }, { "path": "src\\QInventor\\qi_step_export.py", "sha256": "754f7f8b841f87a696ddf800e19f947d5e8712fc53faf8fce4d2d0d0f3ee51f6" }, { "path": "src\\QInventor\\qi_ui.py", "sha256": "7432d1939919b30e5fc81cd333caf220ca3b490d71851328aa26d8070a7ac307" }, { "path": "src\\QInventor\\qi_workbench.py", "sha256": "312d49f40d78e8bde48cd8fa57232cd380565fe5b30a688e4612d57bde210c59" }, { "path": "src\\QInventor\\resources\\qinventor-a4.svg", "sha256": "f77419e8559cb24b29a62ebcdc02d781f52c6910c0299d4820d1dd8c820c4128" }, { "path": "src\\QInventor\\resources\\qinventor.ico", "sha256": "ea229e71d0fcdd749c35977fc0f11720a972c3ee04b3d9042d850182e0a6ed1c" }, { "path": "src\\QInventor\\resources\\qinventor.png", "sha256": "3de618b2d07a1fd36a14f71d3f0b85f36a5dcc22ccf070b4629491da6e6f9e32" }, { "path": "src\\QInventor\\resources\\qinventor.svg", "sha256": "12e95fa28c4aaf927311a777b3928d0518799e51663aab2f0f036015210dc954" }, { "path": "tests\\assembly_suite.py", "sha256": "988aaa37573ab5c6543fd4f8f67b7fa7fff604721dcc6fe31b7c71abea747709" }, { "path": "tests\\bom_gui_suite.py", "sha256": "043aa3632033bf5a6cc4fba0b1167b9cc6e89610f1db562067b00b32c62640de" }, { "path": "tests\\bom_suite.py", "sha256": "2a52ef5fb7f99f4f21d6858f0860eba2db0a18993f7092059029c3f73b145f9e" }, { "path": "tests\\command_workflows_suite.py", "sha256": "9c2cd271b6cde306dc9c228755579c299ead6ab6d4773d83dfefe7b37ecdb950" }, { "path": "tests\\drawing_bom_gui_suite.py", "sha256": "12a60a1f8550922b5e3b069df09e3416111e367ba82a1d2f25fed5abf7555393" }, { "path": "tests\\drawing_bom_suite.py", "sha256": "3da48ba3aa9b7f70ac02732fe41699776542d72e840a4d5843bc98f9e72a2509" }, { "path": "tests\\extrude_suite.py", "sha256": "83da33ea4ce4d5da538f46e0a03a88acdb4e46a1424da32d899602a4b735605a" }, { "path": "tests\\gui_suite.py", "sha256": "87cee20dc57dffa1384be594d7e8ba96580808685c0ec9419c8fd3a3a4f9007b" }, { "path": "tests\\io_suite.py", "sha256": "53f8662e37fac45216d2858e732a2e8bbccf3d344c607aa57a99d9cb8d630c45" }, { "path": "tests\\kernel_suite.py", "sha256": "bfd56a485e11b76f4b402439185db813601d93ce001b54a68e0303826157f3f8" }, { "path": "tests\\parameter_preflight_suite.py", "sha256": "dc0dd00f59ea60baa90ab6930d7b8a68ebcb33f5e5ea00f3354d94a67d75a966" }, { "path": "tests\\parameter_table_gui_suite.py", "sha256": "c19beaaf1c0dda693dbdd964319b1c199ea51bb79a4300f0b15177c15b5f8489" }, { "path": "tests\\parameter_table_suite.py", "sha256": "f0c9eb2975bbac0a5d6a0a6f50bf64bc8cbd094b09942c167207574d3e1ba895" }, { "path": "tests\\parameters_suite.py", "sha256": "7bbcc44d6d9f1595ac2ab90e8a8f01fb1d0d0acfd32294241d3ef595713f985b" }, { "path": "tests\\probe.FCMacro", "sha256": "928efa45b20a145f313cf2ae6dcbcbc7ee9f3609df67ec678078aed8e264bd07" }, { "path": "tests\\projection_suite.py", "sha256": "77770dc7c82656794ed68770d26c5da7871f2a8949ea8acc7ee637f8caaa1d24" }, { "path": "tests\\ribbon_camera_probe.FCMacro", "sha256": "ed96daba842fbd362bf2ce7ec8014e011a46cc0941fae48b05f78714aeefc3c6" }, { "path": "tests\\ribbon_gui.FCMacro", "sha256": "bbaa7367526cb924f096a97bc3f6005a6184061955abfdd15d0e91d1f5986575" }, { "path": "tests\\ribbon_probe.FCMacro", "sha256": "b519579dcb0cee106aa40caf674fa611e105168299e933fe9930ac20a6238872" }, { "path": "tests\\ribbon_suite.py", "sha256": "b5d5459532bdfb7113da2fea228248e87aa0e7abfa8ecec116e1222141aae05b" }, { "path": "tests\\sketch_offset_suite.py", "sha256": "97de15e62d59b7c3113dda26d48670163853acf8a404067d676c6db3a2cc82f1" }, { "path": "tests\\sketch_operations_gui_suite.py", "sha256": "4b088da978f506f3afe04fac6c9a3762895eb8fb1f21b2e7f5d8f08a656e53a1" }, { "path": "tests\\sketch_patterns_suite.py", "sha256": "2205b605bd5ab7b8077cbd2421bdb469105d04daa5806fdc02edadb7a5f68414" } ], "finished": "2026-10-15T16:56:17.295721+03:00", "native_exit_code": 0 }, "version": "1.0.0", "officialRuntimeArchiveSha256": "4828741fc91ee37fafcdb97a1abacb18b04ba451ac4372d9ff7a7349b36f4d6d", "platform": "Windows x64" }