diff --git a/build_win.bat b/build_win.bat index c03ebf0399..a5af27609e 100644 --- a/build_win.bat +++ b/build_win.bat @@ -160,7 +160,10 @@ REM Build deps :BUILD_DEPS SET EXIT_STATUS=3 SET PS_CURRENT_STEP=deps -IF "%PS_STEPS_DIRTY%" EQU "" CALL :MAKE_OR_CLEAN_DIRECTORY deps\build "%PS_DEPS_PATH_FILE_NAME%" .vs +IF "%PS_STEPS_DIRTY%" EQU "" ( + CALL :MAKE_OR_CLEAN_DIRECTORY deps\build "%PS_DEPS_PATH_FILE_NAME%" .vs + CALL :MAKE_OR_CLEAN_DIRECTORY "%PS_DESTDIR%" +) cd deps\build || GOTO :END cmake.exe .. -DDESTDIR="%PS_DESTDIR%" IF %ERRORLEVEL% NEQ 0 IF "%PS_STEPS_DIRTY%" NEQ "" ( @@ -203,8 +206,8 @@ IF "%PS_CURRENT_STEP%" NEQ "arguments" ( ) SET EXIT_STATUS=5 SET PS_CURRENT_STEP=run -cd src\%PS_CONFIG% || GOTO :END IF "%PS_RUN%" EQU "none" GOTO :PROLOGUE +cd src\%PS_CONFIG% || GOTO :END SET PS_PROJECT_IS_OPEN= FOR /F "tokens=2 delims=," %%I in ( 'tasklist /V /FI "IMAGENAME eq devenv.exe " /NH /FO CSV ^| find "%PS_SOLUTION_NAME%"' diff --git a/deps/wxWidgets/wxWidgets.cmake b/deps/wxWidgets/wxWidgets.cmake index a7f5b12e74..c993d89487 100644 --- a/deps/wxWidgets/wxWidgets.cmake +++ b/deps/wxWidgets/wxWidgets.cmake @@ -13,7 +13,7 @@ prusaslicer_add_cmake_project(wxWidgets # GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets" # GIT_TAG tm_cross_compile #${_wx_git_tag} URL https://github.com/prusa3d/wxWidgets/archive/refs/heads/v3.1.4-patched.zip - URL_HASH SHA256=a1e145a083d173cf320c0bd8522c7ee5829052b49b68fe5268ac84f0c576b940 + URL_HASH SHA256=21ed12eb5c215b00999f0374af652be0a6f785df10d18d0dfec8d81ed4abaea3 DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} dep_TIFF dep_JPEG CMAKE_ARGS -DwxBUILD_PRECOMP=ON diff --git a/doc/How to build - Linux et al.md b/doc/How to build - Linux et al.md index 090a97e6c3..9d193aef79 100644 --- a/doc/How to build - Linux et al.md +++ b/doc/How to build - Linux et al.md @@ -13,7 +13,9 @@ This guide describes building PrusaSlicer statically against dependencies pulled #### 0. Prerequisities -You must have CMake, GNU build tools and git. If you don't already have them, install them as usual from your distribution packages (e.g. on Ubuntu, you would run `sudo apt-get install cmake build-essential git`, etc.) +CMake, GNU build tools, git and m4 macro processor have to be installed. Unless that's already the case, install them as usual from your distribution packages. E.g. on Ubuntu, run `sudo apt-get install cmake build-essential git m4`. The names of the packages may be different on different distros. + +Although most of dependencies are handled by the build script, PrusaSlicer still expects that some libraries will be available in the system (GTK, MESA, gettext). E.g., on Ubuntu, install the required packages by running `sudo apt-get install libgtk-3-dev libglu1-mesa-dev gettext`. The names of the packages may be different on different distros. #### 1. Cloning the repository @@ -28,12 +30,12 @@ This will download the source code into a new directory and `cd` into it. You ca #### 2. Building dependencies -PrusaSlicer uses CMake and the build is quite simple, the only tricky part is resolution of dependencies. The supported and recommended way is to build the dependencies first and link to them statically. The source base contains a CMake script that automatically downloads and builds the required dependencies. All that is needed is to run the following (from the top of the cloned repository): +PrusaSlicer uses CMake and the build is quite simple, the only tricky part is resolution of dependencies. The supported and recommended way is to build the dependencies first and link to them statically. PrusaSlicer source base contains a CMake script that automatically downloads and builds the required dependencies. All that is needed is to run the following (from the top of the cloned repository): cd deps mkdir build cd build - cmake .. + cmake .. -DDEP_WX_GTK3=ON make cd ../.. @@ -43,24 +45,20 @@ PrusaSlicer uses CMake and the build is quite simple, the only tricky part is re #### 3. Building PrusaSlicer -Now when you have the dependencies compiled, all that is needed is to tell CMake that we are interested in static build and point it to the dependencies. From the top of the repository, run +Now when the dependencies are compiled, all that is needed is to tell CMake that we are interested in static build and point it to the dependencies. From the top of the repository, run mkdir build cd build - cmake .. -DSLIC3R_STATIC=1 -DSLIC3R_PCH=OFF -DCMAKE_PREFIX_PATH=$(pwd)/../deps/build/destdir/usr/local + cmake .. -DSLIC3R_STATIC=1 -DSLIC3R_GTK=3 -DSLIC3R_PCH=OFF -DCMAKE_PREFIX_PATH=$(pwd)/../deps/build/destdir/usr/local make -j4 -And that's it. You can now run the freshly built PrusaSlicer binary: +And that's it. It is now possible to run the freshly built PrusaSlicer binary: cd src ./prusa-slicer -#### Troubleshooting - -Although most of the dependencies are handled by the build script, we still rely on some system libraries (such as GTK, GL, etc). It is quite likely that you have them already installed, but in case that CMake reports any library missing, install the respective package from your distribution and run CMake again. - ## Useful CMake flags when building dependencies @@ -86,8 +84,7 @@ See the CMake files to get the complete list. As already mentioned above, dynamic linking of dependencies is possible, but PrusaSlicer team is unable to troubleshoot (Linux world is way too complex). Feel free to do so, but you are on your own. Several remarks though: -The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Many don't necessarily need to be as recent -as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues. +The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Some of the dependencies don't have to be as recent as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues. #### wxWidgets By default, PrusaSlicer looks for wxWidgets 3.1. Our build script in fact downloads specific patched version of wxWidgets. If you want to link against wxWidgets 3.0 (which are still provided by most distributions because wxWidgets 3.1 have not yet been declared stable), you must set `-DSLIC3R_WX_STABLE=ON` when running CMake. Note that while PrusaSlicer can be linked against wWidgets 3.0, the combination is not well tested and there might be bugs in the resulting application. diff --git a/resources/data/hints.ini b/resources/data/hints.ini index a79a8228a1..da348f4e7b 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -34,8 +34,9 @@ # # Open preferences (might add item to highlight) # hypertext_type = preferences -# hypertext_preferences_page = 0 (values 0-2 according to prefernces tab to be opened) -# +# hypertext_preferences_page = 2 (values 0-2 according to prefernces tab to be opened) +# hypertext_preferences_item = show_collapse_button (name of variable saved in prusaslicer.ini connected to the setting in preferences) +# # Open gallery (no aditional var) # hypertext_type = gallery # @@ -71,12 +72,12 @@ hypertext_settings_category = Layers and perimeters disabled_tags = SLA [hint:Shapes gallery] -text = Shapes gallery\nDid you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery. +text = Shapes gallery\nDid you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery. hypertext_type = gallery disable_modes = simple -[hint:Auto-arrange settings] -text = Auto-arrange settings\nDid you know that you can right-click theauto-arrange iconto adjust the size of the gap between objects and to allow automatic rotations? +[hint:Arrange settings] +text = Arrange settings\nDid you know that you can right-click theArrange iconto adjust the size of the gap between objects and to allow automatic rotations? hypertext_type = plater hypertext_plater_item = arrange @@ -94,9 +95,10 @@ text = Reload from disk\nDid you know that if you created a newer version of you documentation_link = https://help.prusa3d.com/en/article/reload-from-disk_120427 [hint:Hiding sidebar] -text = Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences. +text = Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences. hypertext_type = preferences hypertext_preferences_page = 2 +hypertext_preferences_item = show_collapse_button [hint:Perspective camera] text = Perspective camera\nDid you know that you can use the K key to quickly switch between an orthographic and perspective camera? @@ -113,7 +115,7 @@ hypertext_gizmo_item = place text = Set number of instances\nDid you know that you can right-click a model and set an exact number of instances instead of copy-pasting it several times? [hint:Combine infill] -text = Combine infill\nDid you know that you can print the infill with a higher layer height compared to perimeters to save print time using the settingCombine infill every. +text = Combine infill\nDid you know that you can print the infill with a higher layer height compared to perimeters to save print time using the settingCombine infill every. hypertext_type = settings hypertext_settings_opt = infill_every_layers hypertext_settings_type = 1 @@ -137,7 +139,7 @@ documentation_link= https://help.prusa3d.com/en/article/per-model-settings_1674 disabled_tags = SLA [hint:Solid infill threshold area] -text = Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.) +text = Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.) hypertext_type = settings hypertext_settings_opt = solid_infill_below_area hypertext_settings_type = 1 @@ -165,7 +167,7 @@ text = Mirror\nDid you know that you can mirror the selected model to create a r text = PageUp / PageDown quick rotation by 45 degrees\nDid you know that you can quickly rotate selected models by 45 degrees around the Z-axis clockwise or counter-clockwise by pressing Page Up or Page Down respectively? [hint:Load config from G-code] -text = Load config from G-code\nDid you know that you can use File-Import Config to load print, filament and printer profiles from an existing G-code file? Similarly, you can use File-Import SL1 archive, which also lets you reconstruct 3D models from the voxel data. +text = Load config from G-code\nDid you know that you can use File-Import-Import Config to load print, filament and printer profiles from an existing G-code file? Similarly, you can use File-Import-Import SL1 / SL1S archive, which also lets you reconstruct 3D models from the voxel data. [hint:Ironing] text = Ironing\nDid you know that you can smooth top surfaces of prints using Ironing? The nozzle will run a special second infill phase at the same layer to fill in holes and flatten any lifted plastic. Read more in the documentation. (Requires Advanced or Expert mode.) @@ -195,7 +197,7 @@ documentation_link = https://help.prusa3d.com/en/article/insert-pause-or-custom- disabled_tags = SLA [hint:Configuration snapshots] -text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. +text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. documentation_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776 hypertext_type = menubar hypertext_menubar_menu_name = Configuration @@ -213,6 +215,7 @@ disabled_tags = SLA text = Settings in non-modal window\nDid you know that you can open the Settings in a new non-modal window? This means you can have settings open on one screen and the G-code Preview on the other. Go to thePreferencesand select Settings in non-modal window. hypertext_type = preferences hypertext_preferences_page = 2 +hypertext_preferences_item = dlg_settings_layout_mode [hint:Adaptive infills] text = Adaptive infills\nDid you know that you can use the Adaptive cubic and Support cubic infills to decrease the print time and lower the filament consumption? Read more in the documentation. diff --git a/resources/icons/colorchange_del.svg b/resources/icons/colorchange_del.svg index 0bd9e06679..b1134dc871 100644 --- a/resources/icons/colorchange_del.svg +++ b/resources/icons/colorchange_del.svg @@ -4,7 +4,7 @@ viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> - + diff --git a/resources/icons/colorchange_del_f.svg b/resources/icons/colorchange_del_f.svg index a54452e1fb..2e26700298 100644 --- a/resources/icons/colorchange_del_f.svg +++ b/resources/icons/colorchange_del_f.svg @@ -4,7 +4,7 @@ viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> - + diff --git a/resources/icons/edit_button.svg b/resources/icons/edit_button.svg new file mode 100644 index 0000000000..25f338b405 --- /dev/null +++ b/resources/icons/edit_button.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/icons/editor_menu.svg b/resources/icons/editor_menu.svg index 223efda0f5..253bd907db 100644 --- a/resources/icons/editor_menu.svg +++ b/resources/icons/editor_menu.svg @@ -4,15 +4,15 @@ viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> - - + - diff --git a/resources/icons/preview_menu.svg b/resources/icons/preview_menu.svg index 725caf7b8a..9af677d3e3 100644 --- a/resources/icons/preview_menu.svg +++ b/resources/icons/preview_menu.svg @@ -4,40 +4,40 @@ viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> - - - - + - - - - + - - - - + - - - + - - - - - - - - - - - - - - - diff --git a/resources/icons/white/add_modifier.svg b/resources/icons/white/add_modifier.svg deleted file mode 100644 index 09c3ce27dc..0000000000 --- a/resources/icons/white/add_modifier.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/add_negative.svg b/resources/icons/white/add_negative.svg deleted file mode 100644 index 0173d1f0de..0000000000 --- a/resources/icons/white/add_negative.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/add_part.svg b/resources/icons/white/add_part.svg deleted file mode 100644 index f4ee114320..0000000000 --- a/resources/icons/white/add_part.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/advanced+wrench.svg b/resources/icons/white/advanced+wrench.svg deleted file mode 100644 index 5e878cb3cc..0000000000 --- a/resources/icons/white/advanced+wrench.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/advanced_plus.svg b/resources/icons/white/advanced_plus.svg deleted file mode 100644 index db532ec4b1..0000000000 --- a/resources/icons/white/advanced_plus.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/cog.svg b/resources/icons/white/cog.svg deleted file mode 100644 index 773e4d65dd..0000000000 --- a/resources/icons/white/cog.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/colorchange_add_m.svg b/resources/icons/white/colorchange_add_m.svg deleted file mode 100644 index 2266560daa..0000000000 --- a/resources/icons/white/colorchange_add_m.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/compare.svg b/resources/icons/white/compare.svg deleted file mode 100644 index 7eafebfde6..0000000000 --- a/resources/icons/white/compare.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/cooling.svg b/resources/icons/white/cooling.svg deleted file mode 100644 index 29bd04c368..0000000000 --- a/resources/icons/white/cooling.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/copy_menu.svg b/resources/icons/white/copy_menu.svg deleted file mode 100644 index d660aab6a2..0000000000 --- a/resources/icons/white/copy_menu.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/delete.svg b/resources/icons/white/delete.svg deleted file mode 100644 index 91d5ce74c5..0000000000 --- a/resources/icons/white/delete.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/delete_all_menu.svg b/resources/icons/white/delete_all_menu.svg deleted file mode 100644 index 5d825c424c..0000000000 --- a/resources/icons/white/delete_all_menu.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/dot.svg b/resources/icons/white/dot.svg deleted file mode 100644 index 90fbaf7fb1..0000000000 --- a/resources/icons/white/dot.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/resources/icons/white/dot_small.svg b/resources/icons/white/dot_small.svg deleted file mode 100644 index 74df442086..0000000000 --- a/resources/icons/white/dot_small.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/resources/icons/white/drop_to_bed.svg b/resources/icons/white/drop_to_bed.svg deleted file mode 100644 index 76243f8976..0000000000 --- a/resources/icons/white/drop_to_bed.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/edit_gcode.svg b/resources/icons/white/edit_gcode.svg deleted file mode 100644 index 85836c0b49..0000000000 --- a/resources/icons/white/edit_gcode.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/edit_layers_all.svg b/resources/icons/white/edit_layers_all.svg deleted file mode 100644 index efb7d609f1..0000000000 --- a/resources/icons/white/edit_layers_all.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/edit_layers_some.svg b/resources/icons/white/edit_layers_some.svg deleted file mode 100644 index 585a8df2f1..0000000000 --- a/resources/icons/white/edit_layers_some.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/edit_uni.svg b/resources/icons/white/edit_uni.svg deleted file mode 100644 index 661924763c..0000000000 --- a/resources/icons/white/edit_uni.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/editor_menu.svg b/resources/icons/white/editor_menu.svg deleted file mode 100644 index 649d2c40fa..0000000000 --- a/resources/icons/white/editor_menu.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/equal.svg b/resources/icons/white/equal.svg deleted file mode 100644 index febbb4c5f2..0000000000 --- a/resources/icons/white/equal.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/error_tick.svg b/resources/icons/white/error_tick.svg deleted file mode 100644 index f3de981f03..0000000000 --- a/resources/icons/white/error_tick.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/exclamation_manifold.svg b/resources/icons/white/exclamation_manifold.svg deleted file mode 100644 index a18590167c..0000000000 --- a/resources/icons/white/exclamation_manifold.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/exit.svg b/resources/icons/white/exit.svg deleted file mode 100644 index e5aebcfc22..0000000000 --- a/resources/icons/white/exit.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_config.svg b/resources/icons/white/export_config.svg deleted file mode 100644 index 22f8ebe1a6..0000000000 --- a/resources/icons/white/export_config.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_config_bundle.svg b/resources/icons/white/export_config_bundle.svg deleted file mode 100644 index 99bd62b6c3..0000000000 --- a/resources/icons/white/export_config_bundle.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/export_gcode.svg b/resources/icons/white/export_gcode.svg deleted file mode 100644 index 39f5225cbe..0000000000 --- a/resources/icons/white/export_gcode.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/export_plate.svg b/resources/icons/white/export_plate.svg deleted file mode 100644 index 18159d2a87..0000000000 --- a/resources/icons/white/export_plate.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/export_plater.svg b/resources/icons/white/export_plater.svg deleted file mode 100644 index e71b38a0aa..0000000000 --- a/resources/icons/white/export_plater.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_to_sd.svg b/resources/icons/white/export_to_sd.svg deleted file mode 100644 index ebeacb9054..0000000000 --- a/resources/icons/white/export_to_sd.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/extruder+funnel.svg b/resources/icons/white/extruder+funnel.svg deleted file mode 100644 index de6b227da2..0000000000 --- a/resources/icons/white/extruder+funnel.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/eye_closed.svg b/resources/icons/white/eye_closed.svg deleted file mode 100644 index 0cdd16ae00..0000000000 --- a/resources/icons/white/eye_closed.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/eye_open.svg b/resources/icons/white/eye_open.svg deleted file mode 100644 index 1b320da079..0000000000 --- a/resources/icons/white/eye_open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/flag_green.svg b/resources/icons/white/flag_green.svg deleted file mode 100644 index 8479d0e9a9..0000000000 --- a/resources/icons/white/flag_green.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/flag_red.svg b/resources/icons/white/flag_red.svg deleted file mode 100644 index a9b1cf8fed..0000000000 --- a/resources/icons/white/flag_red.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/funnel.svg b/resources/icons/white/funnel.svg deleted file mode 100644 index b8a3408a78..0000000000 --- a/resources/icons/white/funnel.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/hollowing.svg b/resources/icons/white/hollowing.svg deleted file mode 100644 index 77f50b6b83..0000000000 --- a/resources/icons/white/hollowing.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_config.svg b/resources/icons/white/import_config.svg deleted file mode 100644 index 001277f738..0000000000 --- a/resources/icons/white/import_config.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_config_bundle.svg b/resources/icons/white/import_config_bundle.svg deleted file mode 100644 index c16cd7b3c6..0000000000 --- a/resources/icons/white/import_config_bundle.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_plate.svg b/resources/icons/white/import_plate.svg deleted file mode 100644 index 7f888e3d78..0000000000 --- a/resources/icons/white/import_plate.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_plater.svg b/resources/icons/white/import_plater.svg deleted file mode 100644 index 1dc5aae6eb..0000000000 --- a/resources/icons/white/import_plater.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/infill.svg b/resources/icons/white/infill.svg deleted file mode 100644 index 0860430998..0000000000 --- a/resources/icons/white/infill.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/info.svg b/resources/icons/white/info.svg deleted file mode 100644 index db227aa320..0000000000 --- a/resources/icons/white/info.svg +++ /dev/null @@ -1,71 +0,0 @@ - -image/svg+xml - - - - - - - - - - diff --git a/resources/icons/white/layers.svg b/resources/icons/white/layers.svg deleted file mode 100644 index cd71fab3a3..0000000000 --- a/resources/icons/white/layers.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/lock2_closed.svg b/resources/icons/white/lock2_closed.svg deleted file mode 100644 index 726c850a11..0000000000 --- a/resources/icons/white/lock2_closed.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_closed.svg b/resources/icons/white/lock_closed.svg deleted file mode 100644 index 1665dc9a08..0000000000 --- a/resources/icons/white/lock_closed.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_closed_f.svg b/resources/icons/white/lock_closed_f.svg deleted file mode 100644 index 412c93c164..0000000000 --- a/resources/icons/white/lock_closed_f.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_open_sys.svg b/resources/icons/white/lock_open_sys.svg deleted file mode 100644 index c1aa64aec2..0000000000 --- a/resources/icons/white/lock_open_sys.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/machine+cog.svg b/resources/icons/white/machine+cog.svg deleted file mode 100644 index ec49265b81..0000000000 --- a/resources/icons/white/machine+cog.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/mirroring_off.svg b/resources/icons/white/mirroring_off.svg deleted file mode 100644 index 2011d8f1b8..0000000000 --- a/resources/icons/white/mirroring_off.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/mirroring_on.svg b/resources/icons/white/mirroring_on.svg deleted file mode 100644 index 1773b78add..0000000000 --- a/resources/icons/white/mirroring_on.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/note.svg b/resources/icons/white/note.svg deleted file mode 100644 index 07c2a14cf9..0000000000 --- a/resources/icons/white/note.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/notes.svg b/resources/icons/white/notes.svg deleted file mode 100644 index 25de4191e8..0000000000 --- a/resources/icons/white/notes.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/number_of_copies.svg b/resources/icons/white/number_of_copies.svg deleted file mode 100644 index 7c9d78a801..0000000000 --- a/resources/icons/white/number_of_copies.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/open.svg b/resources/icons/white/open.svg deleted file mode 100644 index 0ea9ecdb2c..0000000000 --- a/resources/icons/white/open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/output+page_white.svg b/resources/icons/white/output+page_white.svg deleted file mode 100644 index 0838740032..0000000000 --- a/resources/icons/white/output+page_white.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/pad.svg b/resources/icons/white/pad.svg deleted file mode 100644 index cddb2da022..0000000000 --- a/resources/icons/white/pad.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/paste_menu.svg b/resources/icons/white/paste_menu.svg deleted file mode 100644 index 465c2faf08..0000000000 --- a/resources/icons/white/paste_menu.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/resources/icons/white/pause_print.svg b/resources/icons/white/pause_print.svg deleted file mode 100644 index 73f747fffd..0000000000 --- a/resources/icons/white/pause_print.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/plater.svg b/resources/icons/white/plater.svg deleted file mode 100644 index d637a5e7e7..0000000000 --- a/resources/icons/white/plater.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/preview_menu.svg b/resources/icons/white/preview_menu.svg deleted file mode 100644 index 98095359c9..0000000000 --- a/resources/icons/white/preview_menu.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/printer.svg b/resources/icons/white/printer.svg deleted file mode 100644 index d94f6fd5c4..0000000000 --- a/resources/icons/white/printer.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/re_slice.svg b/resources/icons/white/re_slice.svg deleted file mode 100644 index b8d7dc7271..0000000000 --- a/resources/icons/white/re_slice.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/redo_menu.svg b/resources/icons/white/redo_menu.svg deleted file mode 100644 index 749f49a421..0000000000 --- a/resources/icons/white/redo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/white/remove_copies.svg b/resources/icons/white/remove_copies.svg deleted file mode 100644 index 5b277e45e9..0000000000 --- a/resources/icons/white/remove_copies.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/remove_menu.svg b/resources/icons/white/remove_menu.svg deleted file mode 100644 index 59360a33f4..0000000000 --- a/resources/icons/white/remove_menu.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/resin.svg b/resources/icons/white/resin.svg deleted file mode 100644 index 81abfae0ce..0000000000 --- a/resources/icons/white/resin.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/save.svg b/resources/icons/white/save.svg deleted file mode 100644 index 3349a42dd5..0000000000 --- a/resources/icons/white/save.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/search.svg b/resources/icons/white/search.svg deleted file mode 100644 index 679bb30f71..0000000000 --- a/resources/icons/white/search.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/resources/icons/white/set_separate_obj.svg b/resources/icons/white/set_separate_obj.svg deleted file mode 100644 index de083c1c99..0000000000 --- a/resources/icons/white/set_separate_obj.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/skirt+brim.svg b/resources/icons/white/skirt+brim.svg deleted file mode 100644 index 684e177d25..0000000000 --- a/resources/icons/white/skirt+brim.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/resources/icons/white/sla_printer.svg b/resources/icons/white/sla_printer.svg deleted file mode 100644 index 3d47e7da62..0000000000 --- a/resources/icons/white/sla_printer.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/split_object_SMALL.svg b/resources/icons/white/split_object_SMALL.svg deleted file mode 100644 index 4795cab512..0000000000 --- a/resources/icons/white/split_object_SMALL.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/split_parts_SMALL.svg b/resources/icons/white/split_parts_SMALL.svg deleted file mode 100644 index eba846c17f..0000000000 --- a/resources/icons/white/split_parts_SMALL.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/spool.svg b/resources/icons/white/spool.svg deleted file mode 100644 index 7c9fbab977..0000000000 --- a/resources/icons/white/spool.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support.svg b/resources/icons/white/support.svg deleted file mode 100644 index 52b7c6b40e..0000000000 --- a/resources/icons/white/support.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support_blocker.svg b/resources/icons/white/support_blocker.svg deleted file mode 100644 index 17401e2ab2..0000000000 --- a/resources/icons/white/support_blocker.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support_enforcer.svg b/resources/icons/white/support_enforcer.svg deleted file mode 100644 index 0de2dc6a79..0000000000 --- a/resources/icons/white/support_enforcer.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/switch_presets.svg b/resources/icons/white/switch_presets.svg deleted file mode 100644 index efcc3670cc..0000000000 --- a/resources/icons/white/switch_presets.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/test.svg b/resources/icons/white/test.svg deleted file mode 100644 index 639bbbde8e..0000000000 --- a/resources/icons/white/test.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/time.svg b/resources/icons/white/time.svg deleted file mode 100644 index d014286b5a..0000000000 --- a/resources/icons/white/time.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - diff --git a/resources/icons/white/undo_menu.svg b/resources/icons/white/undo_menu.svg deleted file mode 100644 index 4e2b69a601..0000000000 --- a/resources/icons/white/undo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/white/upload_queue.svg b/resources/icons/white/upload_queue.svg deleted file mode 100644 index 710e2be89d..0000000000 --- a/resources/icons/white/upload_queue.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/wrench.svg b/resources/icons/white/wrench.svg deleted file mode 100644 index 714c5a82af..0000000000 --- a/resources/icons/white/wrench.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/resources/localization/PrusaSlicer.pot b/resources/localization/PrusaSlicer.pot index 0cd7076f7f..69b10fcf8f 100644 --- a/resources/localization/PrusaSlicer.pot +++ b/resources/localization/PrusaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-05 16:27+0200\n" +"POT-Creation-Date: 2021-11-15 08:28+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,16 +39,16 @@ msgid "About %s" msgstr "" #: src/slic3r/GUI/AboutDialog.cpp:242 src/slic3r/GUI/AboutDialog.cpp:367 -#: src/slic3r/GUI/GUI_App.cpp:255 +#: src/slic3r/GUI/GUI_App.cpp:259 msgid "Version" msgstr "" #. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:269 src/slic3r/GUI/GUI_App.cpp:261 +#: src/slic3r/GUI/AboutDialog.cpp:269 src/slic3r/GUI/GUI_App.cpp:265 msgid "is licensed under the" msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:270 src/slic3r/GUI/GUI_App.cpp:261 +#: src/slic3r/GUI/AboutDialog.cpp:270 src/slic3r/GUI/GUI_App.cpp:265 msgid "GNU Affero General Public License, version 3" msgstr "" @@ -174,40 +174,40 @@ msgstr "" msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:92 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:219 src/slic3r/GUI/Plater.cpp:171 -#: src/slic3r/GUI/Tab.cpp:2686 +#: src/slic3r/GUI/BedShapeDialog.cpp:122 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:218 src/slic3r/GUI/Plater.cpp:177 +#: src/slic3r/GUI/Tab.cpp:2699 msgid "Size" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:93 +#: src/slic3r/GUI/BedShapeDialog.cpp:123 msgid "Origin" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:94 src/libslic3r/PrintConfig.cpp:981 +#: src/slic3r/GUI/BedShapeDialog.cpp:124 src/libslic3r/PrintConfig.cpp:981 msgid "Diameter" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:109 +#: src/slic3r/GUI/BedShapeDialog.cpp:139 msgid "Size in X and Y of the rectangular plate." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:120 +#: src/slic3r/GUI/BedShapeDialog.cpp:150 msgid "" "Distance of the 0,0 G-code coordinate from the front left corner of the " "rectangle." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:128 src/slic3r/GUI/ConfigWizard.cpp:258 -#: src/slic3r/GUI/ConfigWizard.cpp:1466 src/slic3r/GUI/ConfigWizard.cpp:1480 +#: src/slic3r/GUI/BedShapeDialog.cpp:158 src/slic3r/GUI/ConfigWizard.cpp:262 +#: src/slic3r/GUI/ConfigWizard.cpp:1476 src/slic3r/GUI/ConfigWizard.cpp:1490 #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:100 -#: src/slic3r/GUI/GCodeViewer.cpp:3448 src/slic3r/GUI/GCodeViewer.cpp:3454 -#: src/slic3r/GUI/GCodeViewer.cpp:3462 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 +#: src/slic3r/GUI/GCodeViewer.cpp:3513 src/slic3r/GUI/GCodeViewer.cpp:3519 +#: src/slic3r/GUI/GCodeViewer.cpp:3527 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 #: src/slic3r/GUI/GUI_ObjectLayers.cpp:145 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:321 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:410 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:478 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:479 #: src/slic3r/GUI/ObjectDataViewModel.cpp:134 #: src/slic3r/GUI/WipeTowerDialog.cpp:116 src/libslic3r/PrintConfig.cpp:240 #: src/libslic3r/PrintConfig.cpp:257 src/libslic3r/PrintConfig.cpp:264 @@ -216,127 +216,128 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:595 src/libslic3r/PrintConfig.cpp:645 #: src/libslic3r/PrintConfig.cpp:775 src/libslic3r/PrintConfig.cpp:786 #: src/libslic3r/PrintConfig.cpp:804 src/libslic3r/PrintConfig.cpp:984 -#: src/libslic3r/PrintConfig.cpp:1192 src/libslic3r/PrintConfig.cpp:1256 -#: src/libslic3r/PrintConfig.cpp:1265 src/libslic3r/PrintConfig.cpp:1536 -#: src/libslic3r/PrintConfig.cpp:1730 src/libslic3r/PrintConfig.cpp:1791 -#: src/libslic3r/PrintConfig.cpp:1809 src/libslic3r/PrintConfig.cpp:1827 -#: src/libslic3r/PrintConfig.cpp:1888 src/libslic3r/PrintConfig.cpp:1898 -#: src/libslic3r/PrintConfig.cpp:2011 src/libslic3r/PrintConfig.cpp:2020 -#: src/libslic3r/PrintConfig.cpp:2039 src/libslic3r/PrintConfig.cpp:2060 -#: src/libslic3r/PrintConfig.cpp:2068 src/libslic3r/PrintConfig.cpp:2109 -#: src/libslic3r/PrintConfig.cpp:2117 src/libslic3r/PrintConfig.cpp:2127 -#: src/libslic3r/PrintConfig.cpp:2135 src/libslic3r/PrintConfig.cpp:2143 -#: src/libslic3r/PrintConfig.cpp:2205 src/libslic3r/PrintConfig.cpp:2434 -#: src/libslic3r/PrintConfig.cpp:2503 src/libslic3r/PrintConfig.cpp:2520 -#: src/libslic3r/PrintConfig.cpp:2618 src/libslic3r/PrintConfig.cpp:2627 -#: src/libslic3r/PrintConfig.cpp:2677 src/libslic3r/PrintConfig.cpp:2827 -#: src/libslic3r/PrintConfig.cpp:2915 src/libslic3r/PrintConfig.cpp:2922 -#: src/libslic3r/PrintConfig.cpp:2929 src/libslic3r/PrintConfig.cpp:2943 -#: src/libslic3r/PrintConfig.cpp:2967 src/libslic3r/PrintConfig.cpp:2977 -#: src/libslic3r/PrintConfig.cpp:2987 src/libslic3r/PrintConfig.cpp:3147 -#: src/libslic3r/PrintConfig.cpp:3181 src/libslic3r/PrintConfig.cpp:3320 -#: src/libslic3r/PrintConfig.cpp:3329 src/libslic3r/PrintConfig.cpp:3338 -#: src/libslic3r/PrintConfig.cpp:3348 src/libslic3r/PrintConfig.cpp:3413 -#: src/libslic3r/PrintConfig.cpp:3423 src/libslic3r/PrintConfig.cpp:3435 -#: src/libslic3r/PrintConfig.cpp:3455 src/libslic3r/PrintConfig.cpp:3465 -#: src/libslic3r/PrintConfig.cpp:3475 src/libslic3r/PrintConfig.cpp:3493 -#: src/libslic3r/PrintConfig.cpp:3508 src/libslic3r/PrintConfig.cpp:3522 -#: src/libslic3r/PrintConfig.cpp:3533 src/libslic3r/PrintConfig.cpp:3546 -#: src/libslic3r/PrintConfig.cpp:3591 src/libslic3r/PrintConfig.cpp:3601 -#: src/libslic3r/PrintConfig.cpp:3610 src/libslic3r/PrintConfig.cpp:3620 -#: src/libslic3r/PrintConfig.cpp:3636 src/libslic3r/PrintConfig.cpp:3660 +#: src/libslic3r/PrintConfig.cpp:1192 src/libslic3r/PrintConfig.cpp:1257 +#: src/libslic3r/PrintConfig.cpp:1267 src/libslic3r/PrintConfig.cpp:1538 +#: src/libslic3r/PrintConfig.cpp:1732 src/libslic3r/PrintConfig.cpp:1793 +#: src/libslic3r/PrintConfig.cpp:1811 src/libslic3r/PrintConfig.cpp:1829 +#: src/libslic3r/PrintConfig.cpp:1890 src/libslic3r/PrintConfig.cpp:1900 +#: src/libslic3r/PrintConfig.cpp:2013 src/libslic3r/PrintConfig.cpp:2022 +#: src/libslic3r/PrintConfig.cpp:2041 src/libslic3r/PrintConfig.cpp:2062 +#: src/libslic3r/PrintConfig.cpp:2070 src/libslic3r/PrintConfig.cpp:2111 +#: src/libslic3r/PrintConfig.cpp:2119 src/libslic3r/PrintConfig.cpp:2129 +#: src/libslic3r/PrintConfig.cpp:2137 src/libslic3r/PrintConfig.cpp:2145 +#: src/libslic3r/PrintConfig.cpp:2207 src/libslic3r/PrintConfig.cpp:2436 +#: src/libslic3r/PrintConfig.cpp:2505 src/libslic3r/PrintConfig.cpp:2522 +#: src/libslic3r/PrintConfig.cpp:2620 src/libslic3r/PrintConfig.cpp:2629 +#: src/libslic3r/PrintConfig.cpp:2679 src/libslic3r/PrintConfig.cpp:2830 +#: src/libslic3r/PrintConfig.cpp:2918 src/libslic3r/PrintConfig.cpp:2925 +#: src/libslic3r/PrintConfig.cpp:2932 src/libslic3r/PrintConfig.cpp:2946 +#: src/libslic3r/PrintConfig.cpp:2970 src/libslic3r/PrintConfig.cpp:2980 +#: src/libslic3r/PrintConfig.cpp:2990 src/libslic3r/PrintConfig.cpp:3150 +#: src/libslic3r/PrintConfig.cpp:3191 src/libslic3r/PrintConfig.cpp:3330 +#: src/libslic3r/PrintConfig.cpp:3339 src/libslic3r/PrintConfig.cpp:3348 +#: src/libslic3r/PrintConfig.cpp:3358 src/libslic3r/PrintConfig.cpp:3423 +#: src/libslic3r/PrintConfig.cpp:3433 src/libslic3r/PrintConfig.cpp:3445 +#: src/libslic3r/PrintConfig.cpp:3465 src/libslic3r/PrintConfig.cpp:3475 +#: src/libslic3r/PrintConfig.cpp:3485 src/libslic3r/PrintConfig.cpp:3503 +#: src/libslic3r/PrintConfig.cpp:3518 src/libslic3r/PrintConfig.cpp:3532 +#: src/libslic3r/PrintConfig.cpp:3543 src/libslic3r/PrintConfig.cpp:3556 +#: src/libslic3r/PrintConfig.cpp:3601 src/libslic3r/PrintConfig.cpp:3611 +#: src/libslic3r/PrintConfig.cpp:3620 src/libslic3r/PrintConfig.cpp:3630 +#: src/libslic3r/PrintConfig.cpp:3646 src/libslic3r/PrintConfig.cpp:3670 msgid "mm" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:130 +#: src/slic3r/GUI/BedShapeDialog.cpp:160 msgid "" "Diameter of the print bed. It is assumed that origin (0,0) is located in the " "center." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:140 +#: src/slic3r/GUI/BedShapeDialog.cpp:171 src/slic3r/GUI/BedShapeDialog.cpp:182 msgid "Rectangular" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:141 +#: src/slic3r/GUI/BedShapeDialog.cpp:172 src/slic3r/GUI/BedShapeDialog.cpp:183 msgid "Circular" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:142 src/slic3r/GUI/GUI_Preview.cpp:251 -#: src/libslic3r/ExtrusionEntity.cpp:325 src/libslic3r/ExtrusionEntity.cpp:360 +#: src/slic3r/GUI/BedShapeDialog.cpp:173 src/slic3r/GUI/BedShapeDialog.cpp:184 +#: src/slic3r/GUI/GUI_Preview.cpp:252 src/libslic3r/ExtrusionEntity.cpp:331 +#: src/libslic3r/ExtrusionEntity.cpp:366 msgid "Custom" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:144 +#: src/slic3r/GUI/BedShapeDialog.cpp:175 src/slic3r/GUI/BedShapeDialog.cpp:186 msgid "Invalid" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:155 src/slic3r/GUI/BedShapeDialog.cpp:225 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1682 +#: src/slic3r/GUI/BedShapeDialog.cpp:202 src/slic3r/GUI/BedShapeDialog.cpp:288 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1702 msgid "Shape" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:249 +#: src/slic3r/GUI/BedShapeDialog.cpp:324 msgid "Load shape from STL..." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:298 src/slic3r/GUI/GCodeViewer.cpp:3981 +#: src/slic3r/GUI/BedShapeDialog.cpp:370 src/slic3r/GUI/GCodeViewer.cpp:4046 #: src/slic3r/GUI/MainFrame.cpp:2146 msgid "Settings" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:322 +#: src/slic3r/GUI/BedShapeDialog.cpp:394 msgid "Texture" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:332 src/slic3r/GUI/BedShapeDialog.cpp:414 +#: src/slic3r/GUI/BedShapeDialog.cpp:404 src/slic3r/GUI/BedShapeDialog.cpp:475 msgid "Load..." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:341 src/slic3r/GUI/BedShapeDialog.cpp:422 -#: src/slic3r/GUI/Tab.cpp:3660 +#: src/slic3r/GUI/BedShapeDialog.cpp:413 src/slic3r/GUI/BedShapeDialog.cpp:483 +#: src/slic3r/GUI/Tab.cpp:3673 msgid "Remove" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:374 src/slic3r/GUI/BedShapeDialog.cpp:455 +#: src/slic3r/GUI/BedShapeDialog.cpp:438 src/slic3r/GUI/BedShapeDialog.cpp:509 msgid "Not found:" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:404 +#: src/slic3r/GUI/BedShapeDialog.cpp:465 msgid "Model" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:572 +#: src/slic3r/GUI/BedShapeDialog.cpp:639 msgid "Choose an STL file to import bed shape from:" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:579 src/slic3r/GUI/BedShapeDialog.cpp:628 -#: src/slic3r/GUI/BedShapeDialog.cpp:651 +#: src/slic3r/GUI/BedShapeDialog.cpp:645 src/slic3r/GUI/BedShapeDialog.cpp:693 +#: src/slic3r/GUI/BedShapeDialog.cpp:715 msgid "Invalid file format." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:590 +#: src/slic3r/GUI/BedShapeDialog.cpp:656 msgid "Error! Invalid model" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:598 +#: src/slic3r/GUI/BedShapeDialog.cpp:664 msgid "The selected file contains no geometry." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:602 +#: src/slic3r/GUI/BedShapeDialog.cpp:668 msgid "" "The selected file contains several disjoint areas. This is not supported." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:617 +#: src/slic3r/GUI/BedShapeDialog.cpp:683 msgid "Choose a file to import bed texture from (PNG/SVG):" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:640 +#: src/slic3r/GUI/BedShapeDialog.cpp:705 msgid "Choose an STL file to import bed model from:" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.hpp:98 src/slic3r/GUI/ConfigWizard.cpp:1386 +#: src/slic3r/GUI/BedShapeDialog.hpp:115 src/slic3r/GUI/ConfigWizard.cpp:1396 msgid "Bed Shape" msgstr "" @@ -458,54 +459,54 @@ msgstr "" msgid "Shall I synchronize support layers in order to enable the Wipe Tower?" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:170 +#: src/slic3r/GUI/ConfigManipulation.cpp:168 msgid "" "Supports work better, if the following feature is enabled:\n" "- Detect bridging perimeters" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:173 +#: src/slic3r/GUI/ConfigManipulation.cpp:171 msgid "Shall I adjust those settings for supports?" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:174 +#: src/slic3r/GUI/ConfigManipulation.cpp:172 msgid "Support Generator" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:201 +#: src/slic3r/GUI/ConfigManipulation.cpp:199 msgid "The %1% infill pattern is not supposed to work at 100%% density." msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:204 +#: src/slic3r/GUI/ConfigManipulation.cpp:202 msgid "Shall I switch to rectilinear fill pattern?" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:206 +#: src/slic3r/GUI/ConfigManipulation.cpp:204 #: src/slic3r/GUI/GUI_Factories.cpp:55 src/slic3r/GUI/GUI_Factories.cpp:128 -#: src/slic3r/GUI/Plater.cpp:416 src/slic3r/GUI/Tab.cpp:1490 -#: src/slic3r/GUI/Tab.cpp:1492 src/libslic3r/PrintConfig.cpp:441 +#: src/slic3r/GUI/Plater.cpp:422 src/slic3r/GUI/Tab.cpp:1489 +#: src/slic3r/GUI/Tab.cpp:1491 src/libslic3r/PrintConfig.cpp:441 #: src/libslic3r/PrintConfig.cpp:682 src/libslic3r/PrintConfig.cpp:706 #: src/libslic3r/PrintConfig.cpp:1058 src/libslic3r/PrintConfig.cpp:1072 -#: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1345 -#: src/libslic3r/PrintConfig.cpp:1355 src/libslic3r/PrintConfig.cpp:1422 -#: src/libslic3r/PrintConfig.cpp:1441 src/libslic3r/PrintConfig.cpp:1460 -#: src/libslic3r/PrintConfig.cpp:2266 src/libslic3r/PrintConfig.cpp:2283 +#: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1347 +#: src/libslic3r/PrintConfig.cpp:1357 src/libslic3r/PrintConfig.cpp:1424 +#: src/libslic3r/PrintConfig.cpp:1443 src/libslic3r/PrintConfig.cpp:1462 +#: src/libslic3r/PrintConfig.cpp:2268 src/libslic3r/PrintConfig.cpp:2285 msgid "Infill" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:334 +#: src/slic3r/GUI/ConfigManipulation.cpp:332 msgid "Head penetration should not be greater than the head width." msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:337 +#: src/slic3r/GUI/ConfigManipulation.cpp:335 msgid "Invalid Head penetration" msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:348 +#: src/slic3r/GUI/ConfigManipulation.cpp:346 msgid "Pinhead diameter should be smaller than the pillar diameter." msgstr "" -#: src/slic3r/GUI/ConfigManipulation.cpp:351 +#: src/slic3r/GUI/ConfigManipulation.cpp:349 msgid "Invalid pinhead diameter" msgstr "" @@ -526,7 +527,7 @@ msgid "User" msgstr "" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:28 -#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/ExtrusionEntity.cpp:311 +#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/ExtrusionEntity.cpp:317 msgid "Unknown" msgstr "" @@ -538,7 +539,7 @@ msgstr "" msgid "PrusaSlicer version" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:64 src/libslic3r/Preset.cpp:1313 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:64 src/libslic3r/Preset.cpp:1314 msgid "print" msgstr "" @@ -546,18 +547,18 @@ msgstr "" msgid "filaments" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:68 src/libslic3r/Preset.cpp:1315 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:68 src/libslic3r/Preset.cpp:1316 msgid "SLA print" msgstr "" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 -#: src/slic3r/GUI/ConfigWizard.cpp:749 src/slic3r/GUI/ConfigWizard.cpp:769 -#: src/slic3r/GUI/ConfigWizard.cpp:2673 src/slic3r/GUI/GUI.cpp:340 -#: src/slic3r/GUI/Plater.cpp:742 src/libslic3r/Preset.cpp:1316 +#: src/slic3r/GUI/ConfigWizard.cpp:755 src/slic3r/GUI/ConfigWizard.cpp:2688 +#: src/slic3r/GUI/GUI.cpp:340 src/slic3r/GUI/Plater.cpp:782 +#: src/libslic3r/Preset.cpp:1317 msgid "SLA material" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:71 src/libslic3r/Preset.cpp:1317 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:71 src/libslic3r/Preset.cpp:1318 msgid "printer" msgstr "" @@ -598,144 +599,152 @@ msgstr "" msgid "Configuration Snapshots" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:258 +#: src/slic3r/GUI/ConfigWizard.cpp:262 msgid "nozzle" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:262 +#: src/slic3r/GUI/ConfigWizard.cpp:266 msgid "Alternate nozzles:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:326 +#: src/slic3r/GUI/ConfigWizard.cpp:330 msgid "All standard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:326 +#: src/slic3r/GUI/ConfigWizard.cpp:330 msgid "Standard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:327 src/slic3r/GUI/ConfigWizard.cpp:645 -#: src/slic3r/GUI/Tab.cpp:3742 src/slic3r/GUI/UnsavedChangesDialog.cpp:1157 +#: src/slic3r/GUI/ConfigWizard.cpp:331 src/slic3r/GUI/ConfigWizard.cpp:651 +#: src/slic3r/GUI/Preferences.cpp:414 src/slic3r/GUI/Tab.cpp:3755 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1157 msgid "All" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:328 src/slic3r/GUI/ConfigWizard.cpp:646 -#: src/slic3r/GUI/DoubleSlider.cpp:2010 src/slic3r/GUI/Plater.cpp:388 -#: src/slic3r/GUI/Plater.cpp:533 src/libslic3r/PrintConfig.cpp:1246 +#: src/slic3r/GUI/ConfigWizard.cpp:332 src/slic3r/GUI/ConfigWizard.cpp:652 +#: src/slic3r/GUI/DoubleSlider.cpp:2018 src/slic3r/GUI/Plater.cpp:394 +#: src/slic3r/GUI/Plater.cpp:540 src/slic3r/GUI/Preferences.cpp:416 +#: src/libslic3r/PrintConfig.cpp:1246 msgid "None" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:480 +#: src/slic3r/GUI/ConfigWizard.cpp:484 #, possible-c-format msgid "Welcome to the %s Configuration Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:482 +#: src/slic3r/GUI/ConfigWizard.cpp:486 #, possible-c-format msgid "Welcome to the %s Configuration Wizard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:484 +#: src/slic3r/GUI/ConfigWizard.cpp:488 msgid "Welcome" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:486 +#: src/slic3r/GUI/ConfigWizard.cpp:490 #, possible-c-format msgid "" "Hello, welcome to %s! This %s helps you with the initial configuration; just " "a few settings and you will be ready to print." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:491 +#: src/slic3r/GUI/ConfigWizard.cpp:495 msgid "Remove user profiles (a snapshot will be taken beforehand)" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:494 +#: src/slic3r/GUI/ConfigWizard.cpp:498 msgid "" "Perform desktop integration (Sets this binary to be searchable by the " "system)." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:546 +#: src/slic3r/GUI/ConfigWizard.cpp:550 #, possible-c-format msgid "%s Family" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:634 +#: src/slic3r/GUI/ConfigWizard.cpp:640 msgid "Printer:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:636 +#: src/slic3r/GUI/ConfigWizard.cpp:642 msgid "Vendor:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:637 +#: src/slic3r/GUI/ConfigWizard.cpp:643 msgid "Profile:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:714 src/slic3r/GUI/ConfigWizard.cpp:882 -#: src/slic3r/GUI/ConfigWizard.cpp:942 src/slic3r/GUI/ConfigWizard.cpp:1078 +#: src/slic3r/GUI/ConfigWizard.cpp:720 src/slic3r/GUI/ConfigWizard.cpp:892 +#: src/slic3r/GUI/ConfigWizard.cpp:952 src/slic3r/GUI/ConfigWizard.cpp:1088 msgid "(All)" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:746 +#: src/slic3r/GUI/ConfigWizard.cpp:752 msgid "" "%1% marked with * are not compatible with some installed " "printers." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:746 src/slic3r/GUI/ConfigWizard.cpp:2028 -#: src/slic3r/GUI/ConfigWizard.cpp:2681 src/slic3r/GUI/ConfigWizard.cpp:2853 +#: src/slic3r/GUI/ConfigWizard.cpp:752 src/slic3r/GUI/ConfigWizard.cpp:2043 +#: src/slic3r/GUI/ConfigWizard.cpp:2696 src/slic3r/GUI/ConfigWizard.cpp:2880 msgid "Filaments" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:746 src/slic3r/GUI/ConfigWizard.cpp:2681 +#: src/slic3r/GUI/ConfigWizard.cpp:752 src/slic3r/GUI/ConfigWizard.cpp:2696 msgid "SLA materials" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:749 +#: src/slic3r/GUI/ConfigWizard.cpp:755 msgid "All installed printers are compatible with the selected %1%." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:749 src/slic3r/GUI/ConfigWizard.cpp:769 -#: src/libslic3r/Preset.cpp:1314 +#: src/slic3r/GUI/ConfigWizard.cpp:755 src/libslic3r/Preset.cpp:1315 msgid "filament" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:769 +#: src/slic3r/GUI/ConfigWizard.cpp:778 msgid "" -"Only the following installed printers are compatible with the selected %1%:" +"Only the following installed printers are compatible with the selected " +"filaments" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1165 +#: src/slic3r/GUI/ConfigWizard.cpp:779 +msgid "" +"Only the following installed printers are compatible with the selected SLA " +"materials" +msgstr "" + +#: src/slic3r/GUI/ConfigWizard.cpp:1175 msgid "Custom Printer Setup" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1165 +#: src/slic3r/GUI/ConfigWizard.cpp:1175 msgid "Custom Printer" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1167 +#: src/slic3r/GUI/ConfigWizard.cpp:1177 msgid "Define a custom printer profile" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1169 +#: src/slic3r/GUI/ConfigWizard.cpp:1179 msgid "Custom profile name:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1196 +#: src/slic3r/GUI/ConfigWizard.cpp:1206 msgid "Automatic updates" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1196 +#: src/slic3r/GUI/ConfigWizard.cpp:1206 msgid "Updates" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1204 src/slic3r/GUI/Preferences.cpp:112 +#: src/slic3r/GUI/ConfigWizard.cpp:1214 msgid "Check for application updates" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1208 +#: src/slic3r/GUI/ConfigWizard.cpp:1218 #, possible-c-format msgid "" "If enabled, %s checks for new application versions online. When a new " @@ -744,11 +753,11 @@ msgid "" "notification mechanisms, no automatic installation is done." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1214 src/slic3r/GUI/Preferences.cpp:145 +#: src/slic3r/GUI/ConfigWizard.cpp:1224 src/slic3r/GUI/Preferences.cpp:174 msgid "Update built-in Presets automatically" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1218 +#: src/slic3r/GUI/ConfigWizard.cpp:1228 #, possible-c-format msgid "" "If enabled, %s downloads updates of built-in system presets in the " @@ -757,29 +766,29 @@ msgid "" "startup." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1221 +#: src/slic3r/GUI/ConfigWizard.cpp:1231 msgid "" "Updates are never applied without user's consent and never overwrite user's " "customized settings." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1226 +#: src/slic3r/GUI/ConfigWizard.cpp:1236 msgid "" "Additionally a backup snapshot of the whole configuration is created before " "an update is applied." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1233 src/slic3r/GUI/GUI_Factories.cpp:720 -#: src/slic3r/GUI/Plater.cpp:3422 +#: src/slic3r/GUI/ConfigWizard.cpp:1243 src/slic3r/GUI/GUI_Factories.cpp:720 +#: src/slic3r/GUI/Plater.cpp:3525 msgid "Reload from disk" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1236 +#: src/slic3r/GUI/ConfigWizard.cpp:1246 msgid "" "Export full pathnames of models and parts sources into 3mf and amf files" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1240 +#: src/slic3r/GUI/ConfigWizard.cpp:1250 msgid "" "If enabled, allows the Reload from disk command to automatically find and " "load the files when invoked.\n" @@ -787,23 +796,23 @@ msgid "" "using an open file dialog." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1249 +#: src/slic3r/GUI/ConfigWizard.cpp:1259 msgid "Files association" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1251 src/slic3r/GUI/Preferences.cpp:129 +#: src/slic3r/GUI/ConfigWizard.cpp:1261 src/slic3r/GUI/Preferences.cpp:156 msgid "Associate .3mf files to PrusaSlicer" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1252 src/slic3r/GUI/Preferences.cpp:136 +#: src/slic3r/GUI/ConfigWizard.cpp:1262 src/slic3r/GUI/Preferences.cpp:163 msgid "Associate .stl files to PrusaSlicer" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1262 +#: src/slic3r/GUI/ConfigWizard.cpp:1272 msgid "View mode" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1264 +#: src/slic3r/GUI/ConfigWizard.cpp:1274 msgid "" "PrusaSlicer's user interfaces comes in three variants:\n" "Simple, Advanced, and Expert.\n" @@ -812,274 +821,272 @@ msgid "" "fine-tuning, they are suitable for advanced and expert users, respectively." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1269 +#: src/slic3r/GUI/ConfigWizard.cpp:1279 msgid "Simple mode" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1270 +#: src/slic3r/GUI/ConfigWizard.cpp:1280 msgid "Advanced mode" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1271 +#: src/slic3r/GUI/ConfigWizard.cpp:1281 msgid "Expert mode" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1277 +#: src/slic3r/GUI/ConfigWizard.cpp:1287 msgid "The size of the object can be specified in inches" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1278 +#: src/slic3r/GUI/ConfigWizard.cpp:1288 msgid "Use inches" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1312 +#: src/slic3r/GUI/ConfigWizard.cpp:1322 msgid "Other Vendors" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1316 +#: src/slic3r/GUI/ConfigWizard.cpp:1326 #, possible-c-format msgid "Pick another vendor supported by %s" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1347 +#: src/slic3r/GUI/ConfigWizard.cpp:1357 msgid "Firmware Type" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1347 src/slic3r/GUI/Tab.cpp:2290 +#: src/slic3r/GUI/ConfigWizard.cpp:1357 src/slic3r/GUI/Tab.cpp:2303 msgid "Firmware" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1351 +#: src/slic3r/GUI/ConfigWizard.cpp:1361 msgid "Choose the type of firmware used by your printer." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1386 +#: src/slic3r/GUI/ConfigWizard.cpp:1396 msgid "Bed Shape and Size" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1389 +#: src/slic3r/GUI/ConfigWizard.cpp:1399 msgid "Set the shape of your printer's bed." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1423 src/slic3r/GUI/Field.cpp:255 +#: src/slic3r/GUI/ConfigWizard.cpp:1433 src/slic3r/GUI/Field.cpp:255 #: src/slic3r/GUI/Field.cpp:314 src/slic3r/GUI/Field.cpp:1554 #: src/slic3r/GUI/GUI_ObjectLayers.cpp:429 msgid "Invalid numeric input." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1447 +#: src/slic3r/GUI/ConfigWizard.cpp:1457 msgid "Filament and Nozzle Diameters" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1447 +#: src/slic3r/GUI/ConfigWizard.cpp:1457 msgid "Print Diameters" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1462 +#: src/slic3r/GUI/ConfigWizard.cpp:1472 msgid "Enter the diameter of your printer's hot end nozzle." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1465 +#: src/slic3r/GUI/ConfigWizard.cpp:1475 msgid "Nozzle Diameter:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1475 +#: src/slic3r/GUI/ConfigWizard.cpp:1485 msgid "Enter the diameter of your filament." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1476 +#: src/slic3r/GUI/ConfigWizard.cpp:1486 msgid "" "Good precision is required, so use a caliper and do multiple measurements " "along the filament, then compute the average." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1479 +#: src/slic3r/GUI/ConfigWizard.cpp:1489 msgid "Filament Diameter:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1537 +#: src/slic3r/GUI/ConfigWizard.cpp:1547 msgid "Nozzle and Bed Temperatures" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1537 +#: src/slic3r/GUI/ConfigWizard.cpp:1547 msgid "Temperatures" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1553 +#: src/slic3r/GUI/ConfigWizard.cpp:1563 msgid "Enter the temperature needed for extruding your filament." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1554 +#: src/slic3r/GUI/ConfigWizard.cpp:1564 msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1557 +#: src/slic3r/GUI/ConfigWizard.cpp:1567 msgid "Extrusion Temperature:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1558 src/slic3r/GUI/ConfigWizard.cpp:1572 +#: src/slic3r/GUI/ConfigWizard.cpp:1568 src/slic3r/GUI/ConfigWizard.cpp:1582 #: src/libslic3r/PrintConfig.cpp:384 src/libslic3r/PrintConfig.cpp:1169 -#: src/libslic3r/PrintConfig.cpp:1221 src/libslic3r/PrintConfig.cpp:2739 +#: src/libslic3r/PrintConfig.cpp:1221 src/libslic3r/PrintConfig.cpp:2741 msgid "°C" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1567 +#: src/slic3r/GUI/ConfigWizard.cpp:1577 msgid "" "Enter the bed temperature needed for getting your filament to stick to your " "heated bed." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1568 +#: src/slic3r/GUI/ConfigWizard.cpp:1578 msgid "" "A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " "no heated bed." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1571 +#: src/slic3r/GUI/ConfigWizard.cpp:1581 msgid "Bed Temperature:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2028 src/slic3r/GUI/ConfigWizard.cpp:2855 +#: src/slic3r/GUI/ConfigWizard.cpp:2043 src/slic3r/GUI/ConfigWizard.cpp:2883 msgid "SLA Materials" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2082 +#: src/slic3r/GUI/ConfigWizard.cpp:2097 msgid "FFF Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2087 +#: src/slic3r/GUI/ConfigWizard.cpp:2102 msgid "SLA Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2395 src/slic3r/GUI/DoubleSlider.cpp:2487 -#: src/slic3r/GUI/DoubleSlider.cpp:2508 src/slic3r/GUI/GUI.cpp:232 +#: src/slic3r/GUI/ConfigWizard.cpp:2410 src/slic3r/GUI/DoubleSlider.cpp:2509 +#: src/slic3r/GUI/DoubleSlider.cpp:2530 src/slic3r/GUI/GUI.cpp:232 msgid "Notice" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2416 +#: src/slic3r/GUI/ConfigWizard.cpp:2431 msgid "The following FFF printer models have no filament selected:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2420 +#: src/slic3r/GUI/ConfigWizard.cpp:2435 msgid "Do you want to select default filaments for these FFF printer models?" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2434 +#: src/slic3r/GUI/ConfigWizard.cpp:2449 msgid "The following SLA printer models have no materials selected:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2438 +#: src/slic3r/GUI/ConfigWizard.cpp:2453 msgid "Do you want to select default SLA materials for these printer models?" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2480 src/slic3r/GUI/GUI_App.cpp:2471 -msgid "Configuration is editing from ConfigWizard" +#: src/slic3r/GUI/ConfigWizard.cpp:2495 +msgid "Configuration is edited in ConfigWizard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2523 +#: src/slic3r/GUI/ConfigWizard.cpp:2538 msgid "All user presets will be deleted." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2553 -msgid "New vendor was installed and one of its printer will be activated" +#: src/slic3r/GUI/ConfigWizard.cpp:2568 +msgid "A new vendor was installed and one of its printers will be activated" msgid_plural "" -"New vendors were installed and one of theirs printer will be activated" +"New vendors were installed and one of theirs printers will be activated" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/ConfigWizard.cpp:2582 -msgid "Continue with applying configuration changes?" +#: src/slic3r/GUI/ConfigWizard.cpp:2597 +msgid "Do you want to continue changing the configuration?" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2648 +#: src/slic3r/GUI/ConfigWizard.cpp:2663 msgid "A new Printer was installed and it will be activated." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2653 +#: src/slic3r/GUI/ConfigWizard.cpp:2668 msgid "Some Printers were uninstalled." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2673 +#: src/slic3r/GUI/ConfigWizard.cpp:2688 msgid "A new %1% was installed and it will be activated." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2673 src/slic3r/GUI/GCodeViewer.cpp:3972 -#: src/slic3r/GUI/GCodeViewer.cpp:3998 src/slic3r/GUI/GUI.cpp:339 -#: src/slic3r/GUI/Plater.cpp:740 src/slic3r/GUI/Tab.cpp:1894 -#: src/slic3r/GUI/Tab.cpp:1895 +#: src/slic3r/GUI/ConfigWizard.cpp:2688 src/slic3r/GUI/GCodeViewer.cpp:4037 +#: src/slic3r/GUI/GCodeViewer.cpp:4063 src/slic3r/GUI/GUI.cpp:339 +#: src/slic3r/GUI/Plater.cpp:780 src/slic3r/GUI/Tab.cpp:1907 +#: src/slic3r/GUI/Tab.cpp:1908 msgid "Filament" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2681 +#: src/slic3r/GUI/ConfigWizard.cpp:2696 msgid "Some %1% were uninstalled." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2725 +#: src/slic3r/GUI/ConfigWizard.cpp:2740 msgid "Custom printer was installed and it will be activated." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2810 +#: src/slic3r/GUI/ConfigWizard.cpp:2825 msgid "Select all standard printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2813 +#: src/slic3r/GUI/ConfigWizard.cpp:2828 msgid "< &Back" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2814 +#: src/slic3r/GUI/ConfigWizard.cpp:2829 msgid "&Next >" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2815 +#: src/slic3r/GUI/ConfigWizard.cpp:2830 msgid "&Finish" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2816 +#: src/slic3r/GUI/ConfigWizard.cpp:2831 #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:490 #: src/slic3r/GUI/FirmwareDialog.cpp:153 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:56 -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:215 -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:243 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:58 #: src/slic3r/GUI/ProgressStatusBar.cpp:26 -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:82 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:93 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:878 msgid "Cancel" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2835 +#: src/slic3r/GUI/ConfigWizard.cpp:2851 msgid "Prusa FFF Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2838 +#: src/slic3r/GUI/ConfigWizard.cpp:2859 msgid "Prusa MSLA Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2853 +#: src/slic3r/GUI/ConfigWizard.cpp:2880 msgid "Filament Profiles Selection" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2853 src/slic3r/GUI/ConfigWizard.cpp:2855 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3771 +#: src/slic3r/GUI/ConfigWizard.cpp:2880 src/slic3r/GUI/ConfigWizard.cpp:2883 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3785 msgid "Type:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2855 +#: src/slic3r/GUI/ConfigWizard.cpp:2883 msgid "SLA Material Profiles Selection" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2976 +#: src/slic3r/GUI/ConfigWizard.cpp:3004 msgid "Configuration Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2977 +#: src/slic3r/GUI/ConfigWizard.cpp:3005 msgid "Configuration &Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2979 +#: src/slic3r/GUI/ConfigWizard.cpp:3007 msgid "Configuration Wizard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2980 +#: src/slic3r/GUI/ConfigWizard.cpp:3008 msgid "Configuration &Wizard" msgstr "" @@ -1095,8 +1102,8 @@ msgstr "" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:378 msgid "" -"Performing desktop integration failed - could not find applications " -"directory." +"Performing desktop integration failed because the application directory was " +"not found." msgstr "" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:419 @@ -1106,7 +1113,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:459 -#: src/slic3r/GUI/GUI_App.cpp:1825 +#: src/slic3r/GUI/GUI_App.cpp:2101 msgid "Desktop Integration" msgstr "" @@ -1122,28 +1129,28 @@ msgid "Perform" msgstr "" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:486 -#: src/slic3r/GUI/GLCanvas3D.cpp:4675 src/slic3r/GUI/KBShortcutsDialog.cpp:97 +#: src/slic3r/GUI/GLCanvas3D.cpp:4728 src/slic3r/GUI/KBShortcutsDialog.cpp:97 #: src/slic3r/GUI/MainFrame.cpp:1341 msgid "Undo" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:101 +#: src/slic3r/GUI/DoubleSlider.cpp:109 msgid "Place bearings in slots and resume printing" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1371 +#: src/slic3r/GUI/DoubleSlider.cpp:1379 msgid "One layer mode" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1373 +#: src/slic3r/GUI/DoubleSlider.cpp:1381 msgid "Discard all custom changes" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1377 src/slic3r/GUI/DoubleSlider.cpp:2220 +#: src/slic3r/GUI/DoubleSlider.cpp:1385 src/slic3r/GUI/DoubleSlider.cpp:2242 msgid "Jump to move" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1380 +#: src/slic3r/GUI/DoubleSlider.cpp:1388 #, possible-c-format msgid "" "Jump to height %s\n" @@ -1151,59 +1158,59 @@ msgid "" "or Set extruder sequence for the entire print" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1383 +#: src/slic3r/GUI/DoubleSlider.cpp:1391 #, possible-c-format msgid "" "Jump to height %s\n" "or Set ruler mode" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1388 +#: src/slic3r/GUI/DoubleSlider.cpp:1396 msgid "Edit current color - Right click the colored slider segment" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1390 +#: src/slic3r/GUI/DoubleSlider.cpp:1398 msgid "This is wipe tower layer" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1400 +#: src/slic3r/GUI/DoubleSlider.cpp:1408 msgid "" "The sequential print is on.\n" "It's impossible to apply any custom G-code for objects printing " "sequentually.\n" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1404 +#: src/slic3r/GUI/DoubleSlider.cpp:1412 msgid "Print mode" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1418 +#: src/slic3r/GUI/DoubleSlider.cpp:1426 msgid "Add extruder change - Left click" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1420 +#: src/slic3r/GUI/DoubleSlider.cpp:1428 msgid "" "Add color change - Left click for predefined color or Shift + Left click for " "custom color selection" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1422 +#: src/slic3r/GUI/DoubleSlider.cpp:1430 msgid "Add color change - Left click" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1423 +#: src/slic3r/GUI/DoubleSlider.cpp:1431 msgid "or press \"+\" key" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1425 +#: src/slic3r/GUI/DoubleSlider.cpp:1433 msgid "Add another code - Ctrl + Left click" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1426 +#: src/slic3r/GUI/DoubleSlider.cpp:1434 msgid "Add another code - Right click" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1432 +#: src/slic3r/GUI/DoubleSlider.cpp:1440 msgid "" "The sequential print is on.\n" "It's impossible to apply any custom G-code for objects printing " @@ -1211,272 +1218,272 @@ msgid "" "This code won't be processed during G-code generation." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1446 +#: src/slic3r/GUI/DoubleSlider.cpp:1454 msgid "Color change (\"%1%\")" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1447 +#: src/slic3r/GUI/DoubleSlider.cpp:1455 msgid "Color change (\"%1%\") for Extruder %2%" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1449 +#: src/slic3r/GUI/DoubleSlider.cpp:1457 msgid "Pause print (\"%1%\")" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1451 +#: src/slic3r/GUI/DoubleSlider.cpp:1459 msgid "Custom template (\"%1%\")" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1453 +#: src/slic3r/GUI/DoubleSlider.cpp:1461 msgid "Extruder (tool) is changed to Extruder \"%1%\"" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1460 +#: src/slic3r/GUI/DoubleSlider.cpp:1468 msgid "Note" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1462 +#: src/slic3r/GUI/DoubleSlider.cpp:1470 msgid "" "G-code associated to this tick mark is in a conflict with print mode.\n" "Editing it will cause changes of Slider data." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1465 +#: src/slic3r/GUI/DoubleSlider.cpp:1473 msgid "" "There is a color change for extruder that won't be used till the end of " "print job.\n" "This code won't be processed during G-code generation." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1468 +#: src/slic3r/GUI/DoubleSlider.cpp:1476 msgid "" "There is an extruder change set to the same extruder.\n" "This code won't be processed during G-code generation." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1471 +#: src/slic3r/GUI/DoubleSlider.cpp:1479 msgid "" "There is a color change for extruder that has not been used before.\n" "Check your settings to avoid redundant color changes." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1476 +#: src/slic3r/GUI/DoubleSlider.cpp:1484 msgid "Delete tick mark - Left click or press \"-\" key" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1478 +#: src/slic3r/GUI/DoubleSlider.cpp:1486 msgid "Edit tick mark - Ctrl + Left click" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1479 +#: src/slic3r/GUI/DoubleSlider.cpp:1487 msgid "Edit tick mark - Right click" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1582 src/slic3r/GUI/DoubleSlider.cpp:1613 +#: src/slic3r/GUI/DoubleSlider.cpp:1590 src/slic3r/GUI/DoubleSlider.cpp:1621 #: src/slic3r/GUI/GUI_Factories.cpp:772 #, possible-c-format msgid "Extruder %d" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1583 src/slic3r/GUI/GUI_Factories.cpp:773 +#: src/slic3r/GUI/DoubleSlider.cpp:1591 src/slic3r/GUI/GUI_Factories.cpp:773 msgid "active" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1592 +#: src/slic3r/GUI/DoubleSlider.cpp:1600 msgid "Switch code to Change extruder" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1592 src/slic3r/GUI/GUI_Factories.cpp:734 +#: src/slic3r/GUI/DoubleSlider.cpp:1600 src/slic3r/GUI/GUI_Factories.cpp:734 msgid "Change extruder" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1593 +#: src/slic3r/GUI/DoubleSlider.cpp:1601 msgid "Change extruder (N/A)" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1595 src/slic3r/GUI/GUI_Factories.cpp:781 +#: src/slic3r/GUI/DoubleSlider.cpp:1603 src/slic3r/GUI/GUI_Factories.cpp:781 msgid "Use another extruder" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1614 +#: src/slic3r/GUI/DoubleSlider.cpp:1622 msgid "used" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1622 +#: src/slic3r/GUI/DoubleSlider.cpp:1630 msgid "Switch code to Color change (%1%) for:" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1623 +#: src/slic3r/GUI/DoubleSlider.cpp:1631 msgid "Add color change (%1%) for:" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1948 +#: src/slic3r/GUI/DoubleSlider.cpp:1956 msgid "Add color change" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1959 +#: src/slic3r/GUI/DoubleSlider.cpp:1967 msgid "Add pause print" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1963 +#: src/slic3r/GUI/DoubleSlider.cpp:1971 msgid "Add custom template" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1966 +#: src/slic3r/GUI/DoubleSlider.cpp:1974 msgid "Add custom G-code" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1984 +#: src/slic3r/GUI/DoubleSlider.cpp:1992 msgid "Edit color" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1985 +#: src/slic3r/GUI/DoubleSlider.cpp:1993 msgid "Edit pause print message" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1986 +#: src/slic3r/GUI/DoubleSlider.cpp:1994 msgid "Edit custom G-code" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1992 +#: src/slic3r/GUI/DoubleSlider.cpp:2000 msgid "Delete color change" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1993 +#: src/slic3r/GUI/DoubleSlider.cpp:2001 msgid "Delete tool change" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1994 +#: src/slic3r/GUI/DoubleSlider.cpp:2002 msgid "Delete pause print" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:1995 +#: src/slic3r/GUI/DoubleSlider.cpp:2003 msgid "Delete custom G-code" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2005 src/slic3r/GUI/DoubleSlider.cpp:2220 +#: src/slic3r/GUI/DoubleSlider.cpp:2013 src/slic3r/GUI/DoubleSlider.cpp:2242 msgid "Jump to height" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2010 +#: src/slic3r/GUI/DoubleSlider.cpp:2018 msgid "Hide ruler" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2014 +#: src/slic3r/GUI/DoubleSlider.cpp:2022 msgid "Show object height" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2014 +#: src/slic3r/GUI/DoubleSlider.cpp:2022 msgid "Show object height on the ruler" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2018 +#: src/slic3r/GUI/DoubleSlider.cpp:2026 msgid "Show estimated print time" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2018 +#: src/slic3r/GUI/DoubleSlider.cpp:2026 msgid "Show estimated print time on the ruler" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2022 +#: src/slic3r/GUI/DoubleSlider.cpp:2030 msgid "Ruler mode" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2022 +#: src/slic3r/GUI/DoubleSlider.cpp:2030 msgid "Set ruler mode" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2027 +#: src/slic3r/GUI/DoubleSlider.cpp:2035 msgid "Set extruder sequence for the entire print" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2031 +#: src/slic3r/GUI/DoubleSlider.cpp:2039 msgid "Set auto color changes" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2040 +#: src/slic3r/GUI/DoubleSlider.cpp:2074 msgid "This action will cause deletion of all ticks on vertical slider." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2041 src/slic3r/GUI/Tab.cpp:1305 +#: src/slic3r/GUI/DoubleSlider.cpp:2075 src/slic3r/GUI/Tab.cpp:1305 msgid "" "This action is not revertible.\n" "Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2042 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1124 src/slic3r/GUI/GUI.cpp:245 +#: src/slic3r/GUI/DoubleSlider.cpp:2076 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1137 src/slic3r/GUI/GUI.cpp:245 #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:640 #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:670 #: src/slic3r/GUI/WipeTowerDialog.cpp:58 src/slic3r/GUI/WipeTowerDialog.cpp:443 msgid "Warning" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2181 +#: src/slic3r/GUI/DoubleSlider.cpp:2203 msgid "Enter custom G-code used on current layer" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2182 +#: src/slic3r/GUI/DoubleSlider.cpp:2204 msgid "Custom G-code on current layer (%1% mm)." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2203 +#: src/slic3r/GUI/DoubleSlider.cpp:2225 msgid "Enter short message shown on Printer display when a print is paused" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2204 +#: src/slic3r/GUI/DoubleSlider.cpp:2226 msgid "Message for pause print on current layer (%1% mm)." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2219 +#: src/slic3r/GUI/DoubleSlider.cpp:2241 msgid "Enter the move you want to jump to" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2219 +#: src/slic3r/GUI/DoubleSlider.cpp:2241 msgid "Enter the height you want to jump to" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2480 +#: src/slic3r/GUI/DoubleSlider.cpp:2502 msgid "The last color change data was saved for a single extruder printing." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2481 src/slic3r/GUI/DoubleSlider.cpp:2497 +#: src/slic3r/GUI/DoubleSlider.cpp:2503 src/slic3r/GUI/DoubleSlider.cpp:2519 msgid "The last color change data was saved for a multi extruder printing." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2483 +#: src/slic3r/GUI/DoubleSlider.cpp:2505 msgid "Your current changes will delete all saved color changes." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2484 src/slic3r/GUI/DoubleSlider.cpp:2505 +#: src/slic3r/GUI/DoubleSlider.cpp:2506 src/slic3r/GUI/DoubleSlider.cpp:2527 msgid "Are you sure you want to continue?" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2498 +#: src/slic3r/GUI/DoubleSlider.cpp:2520 msgid "" "Select YES if you want to delete all saved tool changes, \n" "NO if you want all tool changes switch to color changes, \n" "or CANCEL to leave it unchanged." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2501 +#: src/slic3r/GUI/DoubleSlider.cpp:2523 msgid "Do you want to delete all saved tool changes?" msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2503 +#: src/slic3r/GUI/DoubleSlider.cpp:2525 msgid "" "The last color change data was saved for a multi extruder printing with tool " "changes for whole print." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2504 +#: src/slic3r/GUI/DoubleSlider.cpp:2526 msgid "Your current changes will delete all saved extruder (tool) changes." msgstr "" -#: src/slic3r/GUI/ExtraRenderers.cpp:320 src/slic3r/GUI/GUI_ObjectList.cpp:520 -#: src/slic3r/GUI/GUI_ObjectList.cpp:532 src/slic3r/GUI/GUI_ObjectList.cpp:968 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1952 -#: src/slic3r/GUI/GUI_ObjectList.cpp:4294 +#: src/slic3r/GUI/ExtraRenderers.cpp:320 src/slic3r/GUI/GUI_ObjectList.cpp:537 +#: src/slic3r/GUI/GUI_ObjectList.cpp:549 src/slic3r/GUI/GUI_ObjectList.cpp:985 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1970 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4299 #: src/slic3r/GUI/ObjectDataViewModel.cpp:250 #: src/slic3r/GUI/ObjectDataViewModel.cpp:352 #: src/slic3r/GUI/ObjectDataViewModel.cpp:376 @@ -1493,10 +1500,10 @@ msgid "Set extruder change for every" msgstr "" #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:60 -#: src/libslic3r/PrintConfig.cpp:628 src/libslic3r/PrintConfig.cpp:1358 -#: src/libslic3r/PrintConfig.cpp:2049 src/libslic3r/PrintConfig.cpp:2212 -#: src/libslic3r/PrintConfig.cpp:2288 src/libslic3r/PrintConfig.cpp:2538 -#: src/libslic3r/PrintConfig.cpp:2585 src/libslic3r/PrintConfig.cpp:2604 +#: src/libslic3r/PrintConfig.cpp:628 src/libslic3r/PrintConfig.cpp:1360 +#: src/libslic3r/PrintConfig.cpp:2051 src/libslic3r/PrintConfig.cpp:2214 +#: src/libslic3r/PrintConfig.cpp:2290 src/libslic3r/PrintConfig.cpp:2540 +#: src/libslic3r/PrintConfig.cpp:2587 src/libslic3r/PrintConfig.cpp:2606 msgid "layers" msgstr "" @@ -1528,7 +1535,7 @@ msgstr "" msgid "parameter name" msgstr "" -#: src/slic3r/GUI/Field.cpp:204 src/slic3r/GUI/OptionsGroup.cpp:807 +#: src/slic3r/GUI/Field.cpp:204 src/slic3r/GUI/OptionsGroup.cpp:825 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1070 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1082 msgid "N/A" @@ -1676,9 +1683,10 @@ msgid "Advanced: Output log" msgstr "" #: src/slic3r/GUI/FirmwareDialog.cpp:863 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:303 #: src/slic3r/GUI/Mouse3DController.cpp:543 -#: src/slic3r/GUI/PrintHostDialogs.cpp:244 -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:111 +#: src/slic3r/GUI/PrintHostDialogs.cpp:252 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:122 msgid "Close" msgstr "" @@ -1696,733 +1704,806 @@ msgstr "" msgid "Cancelling..." msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:69 -msgid "Shapes Gallery" +#: src/slic3r/GUI/GalleryDialog.cpp:69 src/slic3r/GUI/MainFrame.cpp:1403 +msgid "Shape Gallery" msgstr "" #: src/slic3r/GUI/GalleryDialog.cpp:76 msgid "Select shape from the gallery" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:98 +#: src/slic3r/GUI/GalleryDialog.cpp:100 msgid "Add to bed" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:99 +#: src/slic3r/GUI/GalleryDialog.cpp:101 msgid "Add selected shape(s) to the bed" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:123 +#: src/slic3r/GUI/GalleryDialog.cpp:117 msgid "Add" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:123 +#: src/slic3r/GUI/GalleryDialog.cpp:117 msgid "Add one or more custom shapes" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:124 src/slic3r/GUI/GLCanvas3D.cpp:4466 -#: src/slic3r/GUI/GUI_Factories.cpp:444 src/slic3r/GUI/Tab.cpp:3660 +#: src/slic3r/GUI/GalleryDialog.cpp:118 src/slic3r/GUI/GalleryDialog.cpp:510 +#: src/slic3r/GUI/GLCanvas3D.cpp:4519 src/slic3r/GUI/GUI_Factories.cpp:444 +#: src/slic3r/GUI/Tab.cpp:3673 msgid "Delete" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:124 +#: src/slic3r/GUI/GalleryDialog.cpp:118 msgid "Delete one or more custom shape. You can't delete system shapes" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:125 -msgid "Replace PNG" -msgstr "" - -#: src/slic3r/GUI/GalleryDialog.cpp:125 -msgid "Replace PNG for custom shape. You can't raplace PNG for system shape" -msgstr "" - -#: src/slic3r/GUI/GalleryDialog.cpp:395 +#: src/slic3r/GUI/GalleryDialog.cpp:404 msgid "Choose one or more files (STL, OBJ):" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:435 +#: src/slic3r/GUI/GalleryDialog.cpp:444 msgid "" "It looks like selected %1%-file has an error or is destructed.\n" "We can't load this file" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:446 +#: src/slic3r/GUI/GalleryDialog.cpp:455 msgid "Choose one PNG file:" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:459 +#: src/slic3r/GUI/GalleryDialog.cpp:468 msgid "Replacing of the PNG" msgstr "" -#: src/slic3r/GUI/GalleryDialog.cpp:524 src/slic3r/GUI/GalleryDialog.cpp:529 +#: src/slic3r/GUI/GalleryDialog.cpp:512 +msgid "Change thumbnail" +msgstr "" + +#: src/slic3r/GUI/GalleryDialog.cpp:553 src/slic3r/GUI/GalleryDialog.cpp:558 msgid "Loading of the \"%1%\"" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:267 +#: src/slic3r/GUI/GCodeViewer.cpp:272 msgid "Tool position" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:1539 +#: src/slic3r/GUI/GCodeViewer.cpp:1558 msgid "Generating toolpaths" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:1610 +#: src/slic3r/GUI/GCodeViewer.cpp:1671 msgid "Generating vertex buffer" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:2028 +#: src/slic3r/GUI/GCodeViewer.cpp:2089 msgid "Generating index buffers" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3318 +#: src/slic3r/GUI/GCodeViewer.cpp:3379 msgid "Click to hide" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3318 +#: src/slic3r/GUI/GCodeViewer.cpp:3379 msgid "Click to show" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3448 +#: src/slic3r/GUI/GCodeViewer.cpp:3513 msgid "up to" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3454 +#: src/slic3r/GUI/GCodeViewer.cpp:3519 msgid "above" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3462 +#: src/slic3r/GUI/GCodeViewer.cpp:3527 msgid "from" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3462 +#: src/slic3r/GUI/GCodeViewer.cpp:3527 msgid "to" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3512 src/slic3r/GUI/GCodeViewer.cpp:3513 -#: src/slic3r/GUI/GCodeViewer.cpp:3562 +#: src/slic3r/GUI/GCodeViewer.cpp:3577 src/slic3r/GUI/GCodeViewer.cpp:3578 +#: src/slic3r/GUI/GCodeViewer.cpp:3627 msgid "Percentage" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3523 src/slic3r/GUI/GCodeViewer.cpp:3562 -#: src/slic3r/GUI/GUI_Preview.cpp:216 src/slic3r/GUI/GUI_Preview.cpp:958 +#: src/slic3r/GUI/GCodeViewer.cpp:3588 src/slic3r/GUI/GCodeViewer.cpp:3627 +#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:957 msgid "Feature type" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3523 src/slic3r/GUI/GCodeViewer.cpp:3562 +#: src/slic3r/GUI/GCodeViewer.cpp:3588 src/slic3r/GUI/GCodeViewer.cpp:3627 #: src/slic3r/GUI/RammingChart.cpp:90 msgid "Time" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3562 src/slic3r/GUI/GCodeViewer.cpp:3573 -#: src/slic3r/GUI/GCodeViewer.cpp:3834 +#: src/slic3r/GUI/GCodeViewer.cpp:3627 src/slic3r/GUI/GCodeViewer.cpp:3638 +#: src/slic3r/GUI/GCodeViewer.cpp:3899 msgid "Used filament" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3565 +#: src/slic3r/GUI/GCodeViewer.cpp:3630 msgid "Height (mm)" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3566 +#: src/slic3r/GUI/GCodeViewer.cpp:3631 msgid "Width (mm)" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3567 +#: src/slic3r/GUI/GCodeViewer.cpp:3632 msgid "Speed (mm/s)" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3568 +#: src/slic3r/GUI/GCodeViewer.cpp:3633 msgid "Fan Speed (%)" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3569 +#: src/slic3r/GUI/GCodeViewer.cpp:3634 msgid "Temperature (°C)" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3570 +#: src/slic3r/GUI/GCodeViewer.cpp:3635 msgid "Volumetric flow rate (mm³/s)" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3573 src/slic3r/GUI/GUI_Preview.cpp:223 -#: src/slic3r/GUI/GUI_Preview.cpp:958 +#: src/slic3r/GUI/GCodeViewer.cpp:3638 src/slic3r/GUI/GUI_Preview.cpp:224 +#: src/slic3r/GUI/GUI_Preview.cpp:957 msgid "Tool" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3576 src/slic3r/GUI/GUI_Preview.cpp:224 -#: src/slic3r/GUI/GUI_Preview.cpp:957 +#: src/slic3r/GUI/GCodeViewer.cpp:3641 src/slic3r/GUI/GUI_Preview.cpp:225 +#: src/slic3r/GUI/GUI_Preview.cpp:956 msgid "Color Print" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3614 src/slic3r/GUI/GCodeViewer.cpp:3660 -#: src/slic3r/GUI/GCodeViewer.cpp:3665 src/slic3r/GUI/GUI_ObjectList.cpp:312 -#: src/slic3r/GUI/wxExtensions.cpp:535 src/libslic3r/PrintConfig.cpp:757 +#: src/slic3r/GUI/GCodeViewer.cpp:3679 src/slic3r/GUI/GCodeViewer.cpp:3725 +#: src/slic3r/GUI/GCodeViewer.cpp:3730 src/slic3r/GUI/GUI_ObjectList.cpp:312 +#: src/slic3r/GUI/wxExtensions.cpp:536 src/libslic3r/PrintConfig.cpp:757 msgid "Extruder" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3637 +#: src/slic3r/GUI/GCodeViewer.cpp:3702 msgid "Default color" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3660 +#: src/slic3r/GUI/GCodeViewer.cpp:3725 msgid "default color" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3759 src/slic3r/GUI/GCodeViewer.cpp:3815 +#: src/slic3r/GUI/GCodeViewer.cpp:3824 src/slic3r/GUI/GCodeViewer.cpp:3880 msgid "Color change" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3778 src/slic3r/GUI/GCodeViewer.cpp:3813 +#: src/slic3r/GUI/GCodeViewer.cpp:3843 src/slic3r/GUI/GCodeViewer.cpp:3878 msgid "Print" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3814 src/slic3r/GUI/GCodeViewer.cpp:3848 +#: src/slic3r/GUI/GCodeViewer.cpp:3879 src/slic3r/GUI/GCodeViewer.cpp:3913 msgid "Pause" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3831 src/slic3r/GUI/GCodeViewer.cpp:3834 +#: src/slic3r/GUI/GCodeViewer.cpp:3896 src/slic3r/GUI/GCodeViewer.cpp:3899 msgid "Event" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3831 src/slic3r/GUI/GCodeViewer.cpp:3834 +#: src/slic3r/GUI/GCodeViewer.cpp:3896 src/slic3r/GUI/GCodeViewer.cpp:3899 msgid "Remaining time" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3831 src/slic3r/GUI/GCodeViewer.cpp:3834 +#: src/slic3r/GUI/GCodeViewer.cpp:3896 src/slic3r/GUI/GCodeViewer.cpp:3899 msgid "Duration" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3877 src/slic3r/GUI/GUI_Preview.cpp:1049 -#: src/libslic3r/PrintConfig.cpp:2832 +#: src/slic3r/GUI/GCodeViewer.cpp:3942 src/slic3r/GUI/GUI_Preview.cpp:1048 +#: src/libslic3r/PrintConfig.cpp:2835 msgid "Travel" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3880 +#: src/slic3r/GUI/GCodeViewer.cpp:3945 msgid "Movement" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3881 +#: src/slic3r/GUI/GCodeViewer.cpp:3946 msgid "Extrusion" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3882 src/slic3r/GUI/Tab.cpp:1794 -#: src/slic3r/GUI/Tab.cpp:2733 +#: src/slic3r/GUI/GCodeViewer.cpp:3947 src/slic3r/GUI/Tab.cpp:1807 +#: src/slic3r/GUI/Tab.cpp:2746 msgid "Retraction" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3899 src/slic3r/GUI/GCodeViewer.cpp:3902 -#: src/slic3r/GUI/GUI_Preview.cpp:1050 +#: src/slic3r/GUI/GCodeViewer.cpp:3964 src/slic3r/GUI/GCodeViewer.cpp:3967 +#: src/slic3r/GUI/GUI_Preview.cpp:1049 msgid "Wipe" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3938 src/slic3r/GUI/GUI_Preview.cpp:256 -#: src/slic3r/GUI/GUI_Preview.cpp:271 +#: src/slic3r/GUI/GCodeViewer.cpp:4003 src/slic3r/GUI/GUI_Preview.cpp:257 +#: src/slic3r/GUI/GUI_Preview.cpp:272 msgid "Options" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3941 src/slic3r/GUI/GUI_Preview.cpp:1051 +#: src/slic3r/GUI/GCodeViewer.cpp:4006 src/slic3r/GUI/GUI_Preview.cpp:1050 msgid "Retractions" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3942 src/slic3r/GUI/GUI_Preview.cpp:1052 +#: src/slic3r/GUI/GCodeViewer.cpp:4007 src/slic3r/GUI/GUI_Preview.cpp:1051 msgid "Deretractions" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3943 src/slic3r/GUI/GUI_Preview.cpp:1053 +#: src/slic3r/GUI/GCodeViewer.cpp:4008 src/slic3r/GUI/GUI_Preview.cpp:1052 msgid "Seams" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3944 src/slic3r/GUI/GUI_Preview.cpp:1054 +#: src/slic3r/GUI/GCodeViewer.cpp:4009 src/slic3r/GUI/GUI_Preview.cpp:1053 msgid "Tool changes" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3945 src/slic3r/GUI/GUI_Preview.cpp:1055 +#: src/slic3r/GUI/GCodeViewer.cpp:4010 src/slic3r/GUI/GUI_Preview.cpp:1054 msgid "Color changes" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3946 src/slic3r/GUI/GUI_Preview.cpp:1056 +#: src/slic3r/GUI/GCodeViewer.cpp:4011 src/slic3r/GUI/GUI_Preview.cpp:1055 msgid "Print pauses" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3947 src/slic3r/GUI/GUI_Preview.cpp:1057 +#: src/slic3r/GUI/GCodeViewer.cpp:4012 src/slic3r/GUI/GUI_Preview.cpp:1056 msgid "Custom G-codes" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3967 src/slic3r/GUI/GCodeViewer.cpp:3986 -#: src/slic3r/GUI/GUI.cpp:341 src/slic3r/GUI/Plater.cpp:743 +#: src/slic3r/GUI/GCodeViewer.cpp:4032 src/slic3r/GUI/GCodeViewer.cpp:4051 +#: src/slic3r/GUI/GUI.cpp:341 src/slic3r/GUI/Plater.cpp:783 #: src/libslic3r/PrintConfig.cpp:289 msgid "Printer" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3969 src/slic3r/GUI/GCodeViewer.cpp:3991 -#: src/slic3r/GUI/GUI.cpp:337 src/slic3r/GUI/Plater.cpp:739 +#: src/slic3r/GUI/GCodeViewer.cpp:4034 src/slic3r/GUI/GCodeViewer.cpp:4056 +#: src/slic3r/GUI/GUI.cpp:337 src/slic3r/GUI/Plater.cpp:779 msgid "Print settings" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4011 +#: src/slic3r/GUI/GCodeViewer.cpp:4076 msgid "Estimated printing times" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4030 +#: src/slic3r/GUI/GCodeViewer.cpp:4095 msgid "Normal mode" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4031 +#: src/slic3r/GUI/GCodeViewer.cpp:4096 msgid "Stealth mode" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4038 src/libslic3r/PrintConfig.cpp:1147 +#: src/slic3r/GUI/GCodeViewer.cpp:4103 src/libslic3r/PrintConfig.cpp:1147 #: src/libslic3r/PrintConfig.cpp:1165 src/libslic3r/PrintConfig.cpp:1175 #: src/libslic3r/PrintConfig.cpp:1217 msgid "First layer" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4039 +#: src/slic3r/GUI/GCodeViewer.cpp:4104 msgid "Total" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4069 +#: src/slic3r/GUI/GCodeViewer.cpp:4138 msgid "Show stealth mode" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:4073 +#: src/slic3r/GUI/GCodeViewer.cpp:4142 msgid "Show normal mode" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:218 src/slic3r/GUI/GLCanvas3D.cpp:4613 +#: src/slic3r/GUI/GLCanvas3D.cpp:219 src/slic3r/GUI/GLCanvas3D.cpp:4666 #: src/slic3r/GUI/ObjectDataViewModel.cpp:53 msgid "Variable layer height" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:220 +#: src/slic3r/GUI/GLCanvas3D.cpp:221 msgid "Left mouse button:" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:222 +#: src/slic3r/GUI/GLCanvas3D.cpp:223 msgid "Add detail" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:224 +#: src/slic3r/GUI/GLCanvas3D.cpp:225 msgid "Right mouse button:" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:226 +#: src/slic3r/GUI/GLCanvas3D.cpp:227 msgid "Remove detail" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:228 +#: src/slic3r/GUI/GLCanvas3D.cpp:229 msgid "Shift + Left mouse button:" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:230 +#: src/slic3r/GUI/GLCanvas3D.cpp:231 msgid "Reset to base" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:232 +#: src/slic3r/GUI/GLCanvas3D.cpp:233 msgid "Shift + Right mouse button:" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:234 +#: src/slic3r/GUI/GLCanvas3D.cpp:235 msgid "Smoothing" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:236 +#: src/slic3r/GUI/GLCanvas3D.cpp:237 msgid "Mouse wheel:" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:238 +#: src/slic3r/GUI/GLCanvas3D.cpp:239 msgid "Increase/decrease edit area" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:241 +#: src/slic3r/GUI/GLCanvas3D.cpp:242 msgid "Adaptive" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:247 +#: src/slic3r/GUI/GLCanvas3D.cpp:248 msgid "Quality / Speed" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:250 +#: src/slic3r/GUI/GLCanvas3D.cpp:251 msgid "Higher print quality versus higher print speed." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:261 +#: src/slic3r/GUI/GLCanvas3D.cpp:262 msgid "Smooth" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:267 src/libslic3r/PrintConfig.cpp:781 +#: src/slic3r/GUI/GLCanvas3D.cpp:268 src/libslic3r/PrintConfig.cpp:781 msgid "Radius" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:277 +#: src/slic3r/GUI/GLCanvas3D.cpp:278 msgid "Keep min" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:286 src/slic3r/GUI/GLCanvas3D.cpp:4033 +#: src/slic3r/GUI/GLCanvas3D.cpp:287 src/slic3r/GUI/GLCanvas3D.cpp:4086 msgid "Reset" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:552 +#: src/slic3r/GUI/GLCanvas3D.cpp:553 msgid "Variable layer height - Manual edit" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:667 +#: src/slic3r/GUI/GLCanvas3D.cpp:668 msgid "Seq." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1259 +#: src/slic3r/GUI/GLCanvas3D.cpp:1275 msgid "Variable layer height - Reset" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1267 +#: src/slic3r/GUI/GLCanvas3D.cpp:1283 msgid "Variable layer height - Adaptive" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1275 +#: src/slic3r/GUI/GLCanvas3D.cpp:1291 msgid "Variable layer height - Smooth all" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1684 +#: src/slic3r/GUI/GLCanvas3D.cpp:1702 msgid "Mirror Object" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:2541 +#: src/slic3r/GUI/GLCanvas3D.cpp:2583 #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:560 msgid "Gizmo-Move" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:2623 +#: src/slic3r/GUI/GLCanvas3D.cpp:2668 #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:562 msgid "Gizmo-Rotate" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3223 +#: src/slic3r/GUI/GLCanvas3D.cpp:3276 msgid "Move Object" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3743 src/slic3r/GUI/GLCanvas3D.cpp:4574 +#: src/slic3r/GUI/GLCanvas3D.cpp:3796 src/slic3r/GUI/GLCanvas3D.cpp:4627 msgid "Switch to Settings" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3744 src/slic3r/GUI/GLCanvas3D.cpp:4574 +#: src/slic3r/GUI/GLCanvas3D.cpp:3797 src/slic3r/GUI/GLCanvas3D.cpp:4627 msgid "Print Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3745 src/slic3r/GUI/GLCanvas3D.cpp:4575 +#: src/slic3r/GUI/GLCanvas3D.cpp:3798 src/slic3r/GUI/GLCanvas3D.cpp:4628 msgid "Filament Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3745 src/slic3r/GUI/GLCanvas3D.cpp:4575 +#: src/slic3r/GUI/GLCanvas3D.cpp:3798 src/slic3r/GUI/GLCanvas3D.cpp:4628 msgid "Material Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3746 src/slic3r/GUI/GLCanvas3D.cpp:4576 +#: src/slic3r/GUI/GLCanvas3D.cpp:3799 src/slic3r/GUI/GLCanvas3D.cpp:4629 msgid "Printer Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3893 +#: src/slic3r/GUI/GLCanvas3D.cpp:3946 msgid "Undo History" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3893 +#: src/slic3r/GUI/GLCanvas3D.cpp:3946 msgid "Redo History" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3913 +#: src/slic3r/GUI/GLCanvas3D.cpp:3966 #, possible-c-format msgid "Undo %1$d Action" msgid_plural "Undo %1$d Actions" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3913 +#: src/slic3r/GUI/GLCanvas3D.cpp:3966 #, possible-c-format msgid "Redo %1$d Action" msgid_plural "Redo %1$d Actions" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3933 src/slic3r/GUI/GLCanvas3D.cpp:4592 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 src/slic3r/GUI/Search.cpp:423 +#: src/slic3r/GUI/GLCanvas3D.cpp:3986 src/slic3r/GUI/GLCanvas3D.cpp:4645 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 src/slic3r/GUI/Search.cpp:435 msgid "Search" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3947 src/slic3r/GUI/GLCanvas3D.cpp:3955 -#: src/slic3r/GUI/Search.cpp:429 +#: src/slic3r/GUI/GLCanvas3D.cpp:4000 src/slic3r/GUI/GLCanvas3D.cpp:4008 +#: src/slic3r/GUI/Search.cpp:441 msgid "Enter a search term" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3986 +#: src/slic3r/GUI/GLCanvas3D.cpp:4039 msgid "Arrange options" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4016 +#: src/slic3r/GUI/GLCanvas3D.cpp:4069 msgid "Press %1%left mouse button to enter the exact value" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4018 +#: src/slic3r/GUI/GLCanvas3D.cpp:4071 msgid "Spacing" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4025 +#: src/slic3r/GUI/GLCanvas3D.cpp:4078 msgid "Enable rotations (slow)" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4043 src/slic3r/GUI/GLCanvas3D.cpp:4484 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:132 src/slic3r/GUI/Plater.cpp:1543 +#: src/slic3r/GUI/GLCanvas3D.cpp:4096 src/slic3r/GUI/GLCanvas3D.cpp:4537 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:132 src/slic3r/GUI/Plater.cpp:1606 msgid "Arrange" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4458 +#: src/slic3r/GUI/GLCanvas3D.cpp:4511 msgid "Add..." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4475 src/slic3r/GUI/KBShortcutsDialog.cpp:96 -#: src/slic3r/GUI/Plater.cpp:5378 +#: src/slic3r/GUI/GLCanvas3D.cpp:4528 src/slic3r/GUI/KBShortcutsDialog.cpp:96 +#: src/slic3r/GUI/Plater.cpp:5442 msgid "Delete all" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4484 src/slic3r/GUI/KBShortcutsDialog.cpp:133 +#: src/slic3r/GUI/GLCanvas3D.cpp:4537 src/slic3r/GUI/KBShortcutsDialog.cpp:133 msgid "Arrange selection" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4484 +#: src/slic3r/GUI/GLCanvas3D.cpp:4537 msgid "Click right mouse button to show arrangement options" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4506 +#: src/slic3r/GUI/GLCanvas3D.cpp:4559 msgid "Copy" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4515 +#: src/slic3r/GUI/GLCanvas3D.cpp:4568 msgid "Paste" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4527 src/slic3r/GUI/GUI_Factories.cpp:1081 +#: src/slic3r/GUI/GLCanvas3D.cpp:4580 src/slic3r/GUI/GUI_Factories.cpp:1081 #: src/slic3r/GUI/GUI_Factories.cpp:1105 src/slic3r/GUI/GUI_Factories.cpp:1116 msgid "Add instance" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4538 src/slic3r/GUI/GUI_Factories.cpp:1084 +#: src/slic3r/GUI/GLCanvas3D.cpp:4591 src/slic3r/GUI/GUI_Factories.cpp:1084 msgid "Remove instance" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4551 +#: src/slic3r/GUI/GLCanvas3D.cpp:4604 msgid "Split to objects" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4561 +#: src/slic3r/GUI/GLCanvas3D.cpp:4614 msgid "Split to parts" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4675 src/slic3r/GUI/GLCanvas3D.cpp:4714 +#: src/slic3r/GUI/GLCanvas3D.cpp:4728 src/slic3r/GUI/GLCanvas3D.cpp:4767 msgid "Click right mouse button to open/close History" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4698 +#: src/slic3r/GUI/GLCanvas3D.cpp:4751 msgid "Next Undo action: %1%" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4714 src/slic3r/GUI/KBShortcutsDialog.cpp:98 +#: src/slic3r/GUI/GLCanvas3D.cpp:4767 src/slic3r/GUI/KBShortcutsDialog.cpp:98 #: src/slic3r/GUI/MainFrame.cpp:1344 msgid "Redo" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4736 +#: src/slic3r/GUI/GLCanvas3D.cpp:4789 msgid "Next Redo action: %1%" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6358 +#: src/slic3r/GUI/GLCanvas3D.cpp:6509 msgid "An object outside the print area was detected." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6359 +#: src/slic3r/GUI/GLCanvas3D.cpp:6510 msgid "A toolpath outside the print area was detected." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6360 +#: src/slic3r/GUI/GLCanvas3D.cpp:6511 msgid "SLA supports outside the print area were detected." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6361 +#: src/slic3r/GUI/GLCanvas3D.cpp:6512 msgid "Some objects are not visible during editing." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6363 +#: src/slic3r/GUI/GLCanvas3D.cpp:6514 msgid "" "An object outside the print area was detected.\n" "Resolve the current problem to continue slicing." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6437 +#: src/slic3r/GUI/GLCanvas3D.cpp:6588 msgid "Selection-Add from rectangle" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6452 +#: src/slic3r/GUI/GLCanvas3D.cpp:6603 msgid "Selection-Remove from rectangle" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:50 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4165 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4181 msgid "Cut" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:321 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:410 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:478 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:479 msgid "in" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 msgid "Keep upper part" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:199 msgid "Keep lower part" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:196 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:200 msgid "Rotate lower part upwards" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:201 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:205 msgid "Perform cut" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:32 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:33 #: src/slic3r/GUI/ObjectDataViewModel.cpp:49 msgid "Paint-on supports" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:41 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:42 #: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:39 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:114 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:112 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:31 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49 msgid "Clipping of view" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:42 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:43 #: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:113 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:111 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:32 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50 msgid "Reset direction" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:43 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:115 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:44 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:113 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:33 msgid "Brush size" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:44 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:116 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:45 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:114 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:34 msgid "Brush shape" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:45 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:117 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:46 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:115 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:35 msgid "Left mouse button" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:46 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:47 msgid "Enforce supports" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:47 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:119 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:48 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:117 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:37 msgid "Right mouse button" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:48 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:373 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:49 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:465 msgid "Block supports" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:49 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:121 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:50 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:119 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:39 msgid "Shift + Left mouse button" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:50 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:368 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:51 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:460 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:281 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:263 msgid "Remove selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:51 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:52 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:41 msgid "Remove all selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:52 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:124 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:53 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:122 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:42 msgid "Circle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:53 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:125 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:54 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:123 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:43 #: src/slic3r/GUI/GUI_Factories.cpp:461 msgid "Sphere" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:54 -msgid "Highlight by angle" +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:55 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:124 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:67 +#: src/libslic3r/PrintConfig.cpp:1131 +msgid "Triangles" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:55 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:56 +msgid "Highlight overhang by angle" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:57 msgid "Enforce" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:169 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:507 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:125 -msgid "Reset selection" +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:60 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:126 +msgid "Tool type" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:196 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:441 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:475 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:151 -msgid "Alt + Mouse wheel" +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:61 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:127 +msgid "Brush" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:214 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:398 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:168 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:62 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:128 +msgid "Smart fill" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:64 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:131 +msgid "Smart fill angle" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:66 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:132 +msgid "Split triangles" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:67 +msgid "On overhangs only" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:174 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:193 +msgid "" +"Preselects faces by overhang angle. It is possible to restrict paintable " +"facets to only preselected faces when the option \"%1%\" is enabled." +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:225 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:377 +msgid "Paints facets according to the chosen painting brush." +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:233 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:390 +msgid "" +"Paints neighboring facets whose relative angle is less or equal to set angle." +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:237 +msgid "Allows painting only on facets selected by: \"%1%\"" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:252 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:418 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:149 msgid "Paints all facets inside, regardless of their orientation." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:228 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:412 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:182 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:261 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:427 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:157 msgid "Ignores facets facing away from the camera." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:262 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:500 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:215 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:270 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:436 +msgid "Paints only one facet." +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:279 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:283 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:300 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:311 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:445 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:449 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:468 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:479 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:132 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:136 +msgid "Alt + Mouse wheel" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:289 +msgid "Splits bigger facets into smaller ones while the object is painted." +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:332 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:339 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:498 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:505 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:176 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:183 msgid "Ctrl + Mouse wheel" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:303 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:344 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:510 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:188 +msgid "Reset selection" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:395 msgid "Block supports by angle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:304 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:396 msgid "Add supports by angle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:371 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:463 msgid "Add supports" msgstr "" @@ -2448,7 +2529,7 @@ msgid "Quality" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:34 -#: src/libslic3r/PrintConfig.cpp:3652 +#: src/libslic3r/PrintConfig.cpp:3662 msgid "Closing distance" msgstr "" @@ -2480,19 +2561,19 @@ msgstr "" msgid "Delete drainage hole" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:605 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:596 msgid "Hollowing parameter change" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:682 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:673 msgid "Change drainage hole diameter" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:776 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:767 msgid "Hollow and drill" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:826 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:817 msgid "Move drainage hole" msgstr "" @@ -2503,78 +2584,41 @@ msgid "" "used for painting." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:46 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:45 #: src/slic3r/GUI/ObjectDataViewModel.cpp:51 msgid "Multimaterial painting" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:118 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:116 msgid "First color" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:120 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:118 msgid "Second color" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:122 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:696 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:120 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:693 msgid "Remove painted color" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:123 -msgid "Remove all painted areas" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:126 -msgid "Pointer" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:128 -msgid "Tool type" +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:121 +msgid "Clear all" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:129 -msgid "Brush" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:130 -msgid "Smart fill" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:131 msgid "Bucket fill" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:133 -msgid "Smart fill angle" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:342 -msgid "Paints facets according to the chosen painting brush." -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:360 -msgid "" -"Paints neighboring facets whose relative angle is less or equal to set angle." -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:378 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:403 msgid "Paints neighboring facets that have the same color." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:426 -msgid "Paints only one facet." -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:446 -msgid "Split triangles" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:451 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:455 msgid "Split bigger facets into smaller ones while the object is painted." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:699 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:696 msgid "Painted using: Extruder %1%" msgstr "" @@ -2583,10 +2627,10 @@ msgid "Move" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:466 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:544 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:563 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:579 -#: src/libslic3r/PrintConfig.cpp:4219 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:543 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:562 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:578 +#: src/libslic3r/PrintConfig.cpp:4235 msgid "Rotate" msgstr "" @@ -2594,29 +2638,26 @@ msgstr "" msgid "Optimize orientation" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:517 -msgid "Choose goal" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:538 -msgid "Optimize" +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:552 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:312 +msgid "Apply" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:79 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:217 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:564 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:580 -#: src/libslic3r/PrintConfig.cpp:4234 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:216 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:563 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:579 +#: src/libslic3r/PrintConfig.cpp:4250 msgid "Scale" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:36 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:284 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:266 msgid "Enforce seam" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:38 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:286 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:268 msgid "Block seam" msgstr "" @@ -2624,84 +2665,78 @@ msgstr "" msgid "Seam painting" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:28 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:66 msgid "Mesh name" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:29 -#: src/libslic3r/PrintConfig.cpp:1131 -msgid "Triangles" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:30 -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:224 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4375 -#: src/slic3r/GUI/Tab.cpp:2753 -msgid "Preview" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:31 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:68 msgid "Detail level" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:32 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:69 msgid "Decimate ratio" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:53 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:112 +msgid "" +"Processing model '%1%' with more than 1M triangles could be slow. It is " +"highly recommend to reduce amount of triangles." +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:115 +#: src/slic3r/GUI/GUI_Factories.cpp:699 +msgid "Simplify model" +msgstr "" + +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:142 msgid "Simplify" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:153 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:243 msgid "Extra high" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:154 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:244 msgid "High" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:155 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:245 msgid "Medium" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:156 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:246 msgid "Low" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:157 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:247 msgid "Extra low" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:206 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:297 #, possible-c-format msgid "%d triangles" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:209 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:300 msgid "Show wireframe" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:230 -msgid "Apply" +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:306 +msgid "Operation already cancelling. Please wait few seconds." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:249 -#, possible-c-format -msgid "Process %d / 100" +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:315 +msgid "Can't apply when proccess preview." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:288 -msgid "Model simplification has been canceled" +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:322 +msgid "Process %1% / 100" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:295 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:472 msgid "Simplify " msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:372 -msgid "ERROR: Wait until Simplification ends or Cancel process." -msgstr "" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:39 msgid "Head diameter" msgstr "" @@ -2711,7 +2746,7 @@ msgid "Lock supports under new islands" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:41 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1214 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1227 msgid "Remove selected points" msgstr "" @@ -2720,12 +2755,12 @@ msgid "Remove all points" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:43 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1217 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1230 msgid "Apply changes" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1218 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Discard changes" msgstr "" @@ -2734,12 +2769,12 @@ msgid "Minimal points distance" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/libslic3r/PrintConfig.cpp:3482 +#: src/libslic3r/PrintConfig.cpp:3492 msgid "Support points density" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1233 msgid "Auto-generate points" msgstr "" @@ -2751,119 +2786,119 @@ msgstr "" msgid "Add support point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:513 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:522 msgid "Delete support point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:693 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:706 msgid "Change point head diameter" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:761 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:774 msgid "Support parameter change" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:867 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:880 msgid "SLA Support Points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:901 msgid "Do you want to save your manually edited support points?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:889 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:902 msgid "Save support points?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:949 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:962 msgid "Move support point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1042 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1055 msgid "Support points edit" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1122 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1135 msgid "Autogeneration will erase all manually edited points." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1123 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1136 msgid "Are you sure you want to do it?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1129 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1142 msgid "Autogenerate support points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1177 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1190 msgid "SLA gizmo keyboard shortcuts" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1188 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1201 msgid "Note: some shortcuts work in (non)editing mode only." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1206 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1209 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1210 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 msgid "Left click" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1206 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 msgid "Add point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1207 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 msgid "Right click" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1207 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 msgid "Remove point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1208 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1211 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 msgid "Drag" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1208 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 msgid "Move point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1209 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 msgid "Add point to selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1210 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 msgid "Remove point from selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1211 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 msgid "Select by rectangle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 msgid "Deselect by rectangle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1213 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1226 msgid "Select all points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1228 msgid "Mouse wheel" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1228 msgid "Move clipping plane" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1216 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1229 msgid "Reset clipping plane" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1232 msgid "Switch to editing mode" msgstr "" @@ -2880,16 +2915,12 @@ msgstr "" msgid "Gizmo-Place on Face" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:1260 +#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:1276 msgid "" "You are currently editing SLA support points. Please, apply or discard your " "changes first." msgstr "" -#: src/slic3r/GUI/GUI.cpp:207 -msgid "Internal error when changing value for %1%: %2%" -msgstr "" - #: src/slic3r/GUI/GUI.cpp:292 msgid "Undefined" msgstr "" @@ -2912,7 +2943,7 @@ msgstr "" msgid "Review the substitutions and adjust them if needed." msgstr "" -#: src/slic3r/GUI/GUI.cpp:338 src/slic3r/GUI/Plater.cpp:741 +#: src/slic3r/GUI/GUI.cpp:338 src/slic3r/GUI/Plater.cpp:781 msgid "SLA print settings" msgstr "" @@ -2932,25 +2963,25 @@ msgid "" "were not recognized." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:259 +#: src/slic3r/GUI/GUI_App.cpp:263 msgid "is based on Slic3r by Alessandro Ranellucci and the RepRap community." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:260 +#: src/slic3r/GUI/GUI_App.cpp:264 msgid "Developed by Prusa Research." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:262 +#: src/slic3r/GUI/GUI_App.cpp:266 msgid "" "Contributions by Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas " "Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:263 +#: src/slic3r/GUI/GUI_App.cpp:267 msgid "Artwork model by M Boyer" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:404 +#: src/slic3r/GUI/GUI_App.cpp:408 msgid "" "Starting with %1% 2.3, configuration directory on Linux has changed " "(according to XDG Base Directory Specification) to \n" @@ -2969,20 +3000,20 @@ msgid "" "What do you want to do now?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:412 +#: src/slic3r/GUI/GUI_App.cpp:416 #, possible-c-format msgid "%s - BREAKING CHANGE" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:414 +#: src/slic3r/GUI/GUI_App.cpp:418 msgid "Quit, I will move my data now" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:414 +#: src/slic3r/GUI/GUI_App.cpp:418 msgid "Start the application" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:604 +#: src/slic3r/GUI/GUI_App.cpp:658 #, possible-c-format msgid "" "%s has encountered an error. It was likely caused by running out of memory. " @@ -2992,11 +3023,11 @@ msgid "" "The application will now terminate." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:607 +#: src/slic3r/GUI/GUI_App.cpp:661 msgid "Fatal error" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:611 +#: src/slic3r/GUI/GUI_App.cpp:665 msgid "" "PrusaSlicer has encountered a localization error. Please report to " "PrusaSlicer team, what language was active and in which scenario this issue " @@ -3005,293 +3036,367 @@ msgid "" "The application will now terminate." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:614 +#: src/slic3r/GUI/GUI_App.cpp:668 msgid "Critical error" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:619 +#: src/slic3r/GUI/GUI_App.cpp:673 msgid "Internal error: %1%" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:778 +#: src/slic3r/GUI/GUI_App.cpp:862 src/slic3r/GUI/GUI_App.cpp:953 msgid "" "Error parsing PrusaSlicer config file, it is probably corrupted. Try to " "manually delete the file to recover from the error. Your user profiles will " "not be affected." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:784 +#: src/slic3r/GUI/GUI_App.cpp:868 src/slic3r/GUI/GUI_App.cpp:959 msgid "" "Error parsing PrusaGCodeViewer config file, it is probably corrupted. Try to " "manually delete the file to recover from the error." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:847 +#: src/slic3r/GUI/GUI_App.cpp:909 +#, possible-c-format +msgid "" +"PrusaSlicer detected another configuration folder at %s.\n" +"Its version is %s.\n" +"Last version you used in current configuration folder is %s.\n" +"Please note that PrusaSlicer uses different folders to save configuration of " +"alpha, beta and full release versions.\n" +"Would you like to copy found configuration to your current configuration " +"folder?\n" +"\n" +"If you select yes, PrusaSlicer will copy all profiles and other files from " +"found folder to the current one. Overwriting any existing file with matching " +"name.\n" +"If you select no, you will continue with current configuration." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:918 +#, possible-c-format +msgid "" +"PrusaSlicer detected another configuration folder at %s.\n" +"Its version is %s.\n" +"There is no configuration file in current configuration folder.\n" +"Please note that PrusaSlicer uses different folders to save configuration of " +"alpha, beta and full release versions.\n" +"Would you like to copy found configuration to your current configuration " +"folder?\n" +"\n" +"If you select yes, PrusaSlicer will copy all profiles and other files from " +"found folder to the current one.\n" +"If you select no, you will start with clean installation with configuration " +"wizard." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:927 +msgid "PrusaSlicer" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:999 +msgid "" +"You have started PrusaSlicer for 64-bit architecture on 32-bit system.\n" +"Please download and install correct version at https://www.prusa3d.cz/" +"prusaslicer/.\n" +"Do you wish to continue?" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1009 +msgid "" +"You have started PrusaSlicer for 32-bit architecture on 64-bit system.\n" +"Please download and install correct version at https://www.prusa3d.cz/" +"prusaslicer/.\n" +"Do you wish to continue?" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1055 #, possible-c-format msgid "" "%s\n" "Do you want to continue?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:849 src/slic3r/GUI/GUI_App.cpp:2647 +#: src/slic3r/GUI/GUI_App.cpp:1057 src/slic3r/GUI/GUI_App.cpp:2923 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:888 msgid "Remember my choice" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:891 +#: src/slic3r/GUI/GUI_App.cpp:1105 msgid "Loading configuration" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:953 +#: src/slic3r/GUI/GUI_App.cpp:1137 +msgid "New release version %1% is available." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1138 +msgid "See Download page." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1152 +msgid "New prerelease version %1% is available." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1153 +msgid "See Releases page." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1194 msgid "Preparing settings tabs" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1304 +#: src/slic3r/GUI/GUI_App.cpp:1544 msgid "" "You have the following presets with saved options for \"Print Host upload\"" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1308 +#: src/slic3r/GUI/GUI_App.cpp:1548 msgid "" "But since this version of PrusaSlicer we don't show this information in " "Printer Settings anymore.\n" "Settings will be available in physical printers settings." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1310 +#: src/slic3r/GUI/GUI_App.cpp:1550 msgid "" "By default new Printer devices will be named as \"Printer N\" during its " "creation.\n" "Note: This name can be changed later from the physical printers settings" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1314 src/slic3r/GUI/PhysicalPrinterDialog.cpp:717 +#: src/slic3r/GUI/GUI_App.cpp:1554 src/slic3r/GUI/PhysicalPrinterDialog.cpp:717 msgid "Information" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1327 src/slic3r/GUI/GUI_App.cpp:1338 +#: src/slic3r/GUI/GUI_App.cpp:1567 src/slic3r/GUI/GUI_App.cpp:1578 msgid "Recreating" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1341 +#: src/slic3r/GUI/GUI_App.cpp:1581 msgid "Loading of current presets" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1346 +#: src/slic3r/GUI/GUI_App.cpp:1586 msgid "Loading of a mode view" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1439 +#: src/slic3r/GUI/GUI_App.cpp:1715 msgid "Choose one file (3MF/AMF):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1451 +#: src/slic3r/GUI/GUI_App.cpp:1727 msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1463 +#: src/slic3r/GUI/GUI_App.cpp:1739 msgid "Choose one file (GCODE/.GCO/.G/.ngc/NGC):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1474 +#: src/slic3r/GUI/GUI_App.cpp:1750 msgid "Changing of an application language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1613 +#: src/slic3r/GUI/GUI_App.cpp:1889 msgid "Select the language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1613 +#: src/slic3r/GUI/GUI_App.cpp:1889 msgid "Language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1762 +#: src/slic3r/GUI/GUI_App.cpp:2038 msgid "modified" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1816 +#: src/slic3r/GUI/GUI_App.cpp:2092 #, possible-c-format msgid "Run %s" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1820 +#: src/slic3r/GUI/GUI_App.cpp:2096 msgid "&Configuration Snapshots" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1820 +#: src/slic3r/GUI/GUI_App.cpp:2096 msgid "Inspect / activate configuration snapshots" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1821 +#: src/slic3r/GUI/GUI_App.cpp:2097 msgid "Take Configuration &Snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1821 +#: src/slic3r/GUI/GUI_App.cpp:2097 msgid "Capture a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1822 -msgid "Check for updates" +#: src/slic3r/GUI/GUI_App.cpp:2098 +msgid "Check for Configuration Updates" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1822 +#: src/slic3r/GUI/GUI_App.cpp:2098 msgid "Check for configuration updates" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1829 +#: src/slic3r/GUI/GUI_App.cpp:2105 msgid "&Preferences" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1835 +#: src/slic3r/GUI/GUI_App.cpp:2111 msgid "Application preferences" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1840 src/slic3r/GUI/wxExtensions.cpp:706 +#: src/slic3r/GUI/GUI_App.cpp:2116 src/slic3r/GUI/wxExtensions.cpp:707 msgid "Simple" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1840 +#: src/slic3r/GUI/GUI_App.cpp:2116 msgid "Simple View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1842 src/slic3r/GUI/wxExtensions.cpp:708 +#: src/slic3r/GUI/GUI_App.cpp:2118 src/slic3r/GUI/wxExtensions.cpp:709 msgctxt "Mode" msgid "Advanced" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1842 +#: src/slic3r/GUI/GUI_App.cpp:2118 msgid "Advanced View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1843 src/slic3r/GUI/wxExtensions.cpp:709 +#: src/slic3r/GUI/GUI_App.cpp:2119 src/slic3r/GUI/wxExtensions.cpp:710 msgid "Expert" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1843 +#: src/slic3r/GUI/GUI_App.cpp:2119 msgid "Expert View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1848 +#: src/slic3r/GUI/GUI_App.cpp:2124 msgid "Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1848 +#: src/slic3r/GUI/GUI_App.cpp:2124 #, possible-c-format msgid "%s View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1851 +#: src/slic3r/GUI/GUI_App.cpp:2127 msgid "&Language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1854 +#: src/slic3r/GUI/GUI_App.cpp:2130 msgid "Flash printer &firmware" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1854 +#: src/slic3r/GUI/GUI_App.cpp:2130 msgid "Upload a firmware image into an Arduino based printer" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1874 +#: src/slic3r/GUI/GUI_App.cpp:2150 msgid "Taking a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1875 +#: src/slic3r/GUI/GUI_App.cpp:2151 msgid "" "Some presets are modified and the unsaved changes will not be captured by " "the configuration snapshot." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1876 +#: src/slic3r/GUI/GUI_App.cpp:2152 msgid "Snapshot name" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1892 +#: src/slic3r/GUI/GUI_App.cpp:2168 msgid "Loading a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1901 +#: src/slic3r/GUI/GUI_App.cpp:2177 msgid "Continue to activate a configuration snapshot %1%?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1915 +#: src/slic3r/GUI/GUI_App.cpp:2191 msgid "Failed to activate configuration snapshot." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1934 +#: src/slic3r/GUI/GUI_App.cpp:2210 msgid "Restart application" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1968 +#: src/slic3r/GUI/GUI_App.cpp:2244 msgid "Language selection" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1971 +#: src/slic3r/GUI/GUI_App.cpp:2247 msgid "" "Switching the language will trigger application restart.\n" "You will lose content of the plater." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1973 src/slic3r/GUI/Preferences.cpp:440 +#: src/slic3r/GUI/GUI_App.cpp:2249 src/slic3r/GUI/Preferences.cpp:547 msgid "Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2000 +#: src/slic3r/GUI/GUI_App.cpp:2276 msgid "&Configuration" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2117 src/slic3r/GUI/GUI_App.cpp:2178 +#: src/slic3r/GUI/GUI_App.cpp:2393 src/slic3r/GUI/GUI_App.cpp:2454 msgid "The preset modifications are successfully saved" msgid_plural "The presets modifications are successfully saved" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_App.cpp:2181 +#: src/slic3r/GUI/GUI_App.cpp:2457 msgid "For new project all modifications will be reseted" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2219 +#: src/slic3r/GUI/GUI_App.cpp:2495 msgid "Loading a new project while the current project is modified." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2222 +#: src/slic3r/GUI/GUI_App.cpp:2498 msgid "Project is loading" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2222 -msgid "Loading a new project while some presets are modified." +#: src/slic3r/GUI/GUI_App.cpp:2498 +msgid "Opening new project while some presets are unsaved." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2241 +#: src/slic3r/GUI/GUI_App.cpp:2517 msgid "The uploads are still ongoing" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2241 +#: src/slic3r/GUI/GUI_App.cpp:2517 msgid "Stop them and continue anyway?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2245 +#: src/slic3r/GUI/GUI_App.cpp:2521 msgid "Ongoing uploads" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2446 +#: src/slic3r/GUI/GUI_App.cpp:2722 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2447 src/slic3r/GUI/Jobs/SLAImportJob.cpp:224 -#: src/slic3r/GUI/Plater.cpp:2296 +#: src/slic3r/GUI/GUI_App.cpp:2723 src/slic3r/GUI/Jobs/SLAImportJob.cpp:224 +#: src/slic3r/GUI/Plater.cpp:2361 msgid "Please check your object list before preset changing." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2496 +#: src/slic3r/GUI/GUI_App.cpp:2747 +msgid "Configuration is editing from ConfigWizard" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:2772 msgid "Select a gcode file:" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2646 -msgid "Should we open this hyperlink in your default browser?" +#: src/slic3r/GUI/GUI_App.cpp:2922 +msgid "Open hyperlink in default browser?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2646 +#: src/slic3r/GUI/GUI_App.cpp:2922 msgid "PrusaSlicer: Open hyperlink" msgstr "" @@ -3308,38 +3413,38 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:413 src/libslic3r/PrintConfig.cpp:422 #: src/libslic3r/PrintConfig.cpp:674 src/libslic3r/PrintConfig.cpp:740 #: src/libslic3r/PrintConfig.cpp:748 src/libslic3r/PrintConfig.cpp:1189 -#: src/libslic3r/PrintConfig.cpp:1272 src/libslic3r/PrintConfig.cpp:1488 -#: src/libslic3r/PrintConfig.cpp:1878 src/libslic3r/PrintConfig.cpp:1944 -#: src/libslic3r/PrintConfig.cpp:2166 src/libslic3r/PrintConfig.cpp:2747 -#: src/libslic3r/PrintConfig.cpp:2754 src/libslic3r/PrintConfig.cpp:2813 -#: src/libslic3r/PrintConfig.cpp:2822 +#: src/libslic3r/PrintConfig.cpp:1274 src/libslic3r/PrintConfig.cpp:1490 +#: src/libslic3r/PrintConfig.cpp:1880 src/libslic3r/PrintConfig.cpp:1946 +#: src/libslic3r/PrintConfig.cpp:2168 src/libslic3r/PrintConfig.cpp:2749 +#: src/libslic3r/PrintConfig.cpp:2757 src/libslic3r/PrintConfig.cpp:2816 +#: src/libslic3r/PrintConfig.cpp:2825 msgid "Layers and Perimeters" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:56 src/slic3r/GUI/GUI_Factories.cpp:131 -#: src/slic3r/GUI/GUI_Preview.cpp:248 src/slic3r/GUI/Tab.cpp:1532 -#: src/slic3r/GUI/Tab.cpp:1534 src/libslic3r/ExtrusionEntity.cpp:322 -#: src/libslic3r/ExtrusionEntity.cpp:354 src/libslic3r/PrintConfig.cpp:636 -#: src/libslic3r/PrintConfig.cpp:2009 src/libslic3r/PrintConfig.cpp:2018 -#: src/libslic3r/PrintConfig.cpp:2027 src/libslic3r/PrintConfig.cpp:2037 -#: src/libslic3r/PrintConfig.cpp:2046 src/libslic3r/PrintConfig.cpp:2455 -#: src/libslic3r/PrintConfig.cpp:2461 src/libslic3r/PrintConfig.cpp:2469 -#: src/libslic3r/PrintConfig.cpp:2481 src/libslic3r/PrintConfig.cpp:2491 -#: src/libslic3r/PrintConfig.cpp:2499 src/libslic3r/PrintConfig.cpp:2517 -#: src/libslic3r/PrintConfig.cpp:2533 src/libslic3r/PrintConfig.cpp:2554 -#: src/libslic3r/PrintConfig.cpp:2566 src/libslic3r/PrintConfig.cpp:2583 -#: src/libslic3r/PrintConfig.cpp:2601 src/libslic3r/PrintConfig.cpp:2615 -#: src/libslic3r/PrintConfig.cpp:2625 src/libslic3r/PrintConfig.cpp:2634 -#: src/libslic3r/PrintConfig.cpp:2645 src/libslic3r/PrintConfig.cpp:2659 -#: src/libslic3r/PrintConfig.cpp:2675 src/libslic3r/PrintConfig.cpp:2683 -#: src/libslic3r/PrintConfig.cpp:2684 src/libslic3r/PrintConfig.cpp:2693 -#: src/libslic3r/PrintConfig.cpp:2707 src/libslic3r/PrintConfig.cpp:2715 -#: src/libslic3r/PrintConfig.cpp:2729 +#: src/slic3r/GUI/GUI_Preview.cpp:249 src/slic3r/GUI/Tab.cpp:1533 +#: src/slic3r/GUI/Tab.cpp:1535 src/libslic3r/ExtrusionEntity.cpp:328 +#: src/libslic3r/ExtrusionEntity.cpp:360 src/libslic3r/PrintConfig.cpp:636 +#: src/libslic3r/PrintConfig.cpp:2011 src/libslic3r/PrintConfig.cpp:2020 +#: src/libslic3r/PrintConfig.cpp:2029 src/libslic3r/PrintConfig.cpp:2039 +#: src/libslic3r/PrintConfig.cpp:2048 src/libslic3r/PrintConfig.cpp:2457 +#: src/libslic3r/PrintConfig.cpp:2463 src/libslic3r/PrintConfig.cpp:2471 +#: src/libslic3r/PrintConfig.cpp:2483 src/libslic3r/PrintConfig.cpp:2493 +#: src/libslic3r/PrintConfig.cpp:2501 src/libslic3r/PrintConfig.cpp:2519 +#: src/libslic3r/PrintConfig.cpp:2535 src/libslic3r/PrintConfig.cpp:2556 +#: src/libslic3r/PrintConfig.cpp:2568 src/libslic3r/PrintConfig.cpp:2585 +#: src/libslic3r/PrintConfig.cpp:2603 src/libslic3r/PrintConfig.cpp:2617 +#: src/libslic3r/PrintConfig.cpp:2627 src/libslic3r/PrintConfig.cpp:2636 +#: src/libslic3r/PrintConfig.cpp:2647 src/libslic3r/PrintConfig.cpp:2661 +#: src/libslic3r/PrintConfig.cpp:2677 src/libslic3r/PrintConfig.cpp:2685 +#: src/libslic3r/PrintConfig.cpp:2686 src/libslic3r/PrintConfig.cpp:2695 +#: src/libslic3r/PrintConfig.cpp:2709 src/libslic3r/PrintConfig.cpp:2717 +#: src/libslic3r/PrintConfig.cpp:2731 msgid "Support material" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:59 src/slic3r/GUI/GUI_Factories.cpp:135 -#: src/libslic3r/PrintConfig.cpp:2949 src/libslic3r/PrintConfig.cpp:2957 +#: src/libslic3r/PrintConfig.cpp:2952 src/libslic3r/PrintConfig.cpp:2960 msgid "Wipe options" msgstr "" @@ -3347,96 +3452,96 @@ msgstr "" msgid "Pad and Support" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:129 src/slic3r/GUI/GUI_Preview.cpp:244 -#: src/slic3r/GUI/Tab.cpp:1500 src/libslic3r/ExtrusionEntity.cpp:318 -#: src/libslic3r/ExtrusionEntity.cpp:346 src/libslic3r/PrintConfig.cpp:1504 -#: src/libslic3r/PrintConfig.cpp:1510 src/libslic3r/PrintConfig.cpp:1524 -#: src/libslic3r/PrintConfig.cpp:1534 src/libslic3r/PrintConfig.cpp:1542 -#: src/libslic3r/PrintConfig.cpp:1544 +#: src/slic3r/GUI/GUI_Factories.cpp:129 src/slic3r/GUI/GUI_Preview.cpp:245 +#: src/slic3r/GUI/Tab.cpp:1499 src/libslic3r/ExtrusionEntity.cpp:324 +#: src/libslic3r/ExtrusionEntity.cpp:352 src/libslic3r/PrintConfig.cpp:1506 +#: src/libslic3r/PrintConfig.cpp:1512 src/libslic3r/PrintConfig.cpp:1526 +#: src/libslic3r/PrintConfig.cpp:1536 src/libslic3r/PrintConfig.cpp:1544 +#: src/libslic3r/PrintConfig.cpp:1546 msgid "Ironing" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:130 src/libslic3r/PrintConfig.cpp:1238 #: src/libslic3r/PrintConfig.cpp:1239 src/libslic3r/PrintConfig.cpp:1254 -#: src/libslic3r/PrintConfig.cpp:1263 +#: src/libslic3r/PrintConfig.cpp:1264 msgid "Fuzzy Skin" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:132 src/slic3r/GUI/GUI_Preview.cpp:219 -#: src/slic3r/GUI/Tab.cpp:1566 src/libslic3r/PrintConfig.cpp:473 -#: src/libslic3r/PrintConfig.cpp:728 src/libslic3r/PrintConfig.cpp:1279 -#: src/libslic3r/PrintConfig.cpp:1461 src/libslic3r/PrintConfig.cpp:1543 -#: src/libslic3r/PrintConfig.cpp:1934 src/libslic3r/PrintConfig.cpp:2254 -#: src/libslic3r/PrintConfig.cpp:2306 src/libslic3r/PrintConfig.cpp:2798 +#: src/slic3r/GUI/GUI_Factories.cpp:132 src/slic3r/GUI/GUI_Preview.cpp:220 +#: src/slic3r/GUI/Tab.cpp:1567 src/libslic3r/PrintConfig.cpp:473 +#: src/libslic3r/PrintConfig.cpp:728 src/libslic3r/PrintConfig.cpp:1281 +#: src/libslic3r/PrintConfig.cpp:1463 src/libslic3r/PrintConfig.cpp:1545 +#: src/libslic3r/PrintConfig.cpp:1936 src/libslic3r/PrintConfig.cpp:2256 +#: src/libslic3r/PrintConfig.cpp:2308 src/libslic3r/PrintConfig.cpp:2801 msgid "Speed" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1605 -#: src/slic3r/GUI/Tab.cpp:2228 src/libslic3r/PrintConfig.cpp:758 -#: src/libslic3r/PrintConfig.cpp:1415 src/libslic3r/PrintConfig.cpp:1912 -#: src/libslic3r/PrintConfig.cpp:2275 src/libslic3r/PrintConfig.cpp:2546 -#: src/libslic3r/PrintConfig.cpp:2573 +#: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1606 +#: src/slic3r/GUI/Tab.cpp:2241 src/libslic3r/PrintConfig.cpp:758 +#: src/libslic3r/PrintConfig.cpp:1417 src/libslic3r/PrintConfig.cpp:1914 +#: src/libslic3r/PrintConfig.cpp:2277 src/libslic3r/PrintConfig.cpp:2548 +#: src/libslic3r/PrintConfig.cpp:2575 msgid "Extruders" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:134 src/libslic3r/PrintConfig.cpp:717 #: src/libslic3r/PrintConfig.cpp:826 src/libslic3r/PrintConfig.cpp:1176 -#: src/libslic3r/PrintConfig.cpp:1423 src/libslic3r/PrintConfig.cpp:1921 -#: src/libslic3r/PrintConfig.cpp:2295 src/libslic3r/PrintConfig.cpp:2555 -#: src/libslic3r/PrintConfig.cpp:2786 +#: src/libslic3r/PrintConfig.cpp:1425 src/libslic3r/PrintConfig.cpp:1923 +#: src/libslic3r/PrintConfig.cpp:2297 src/libslic3r/PrintConfig.cpp:2557 +#: src/libslic3r/PrintConfig.cpp:2789 msgid "Extrusion Width" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:136 src/slic3r/GUI/Tab.cpp:1518 +#: src/slic3r/GUI/GUI_Factories.cpp:136 src/slic3r/GUI/Tab.cpp:1519 #: src/libslic3r/PrintConfig.cpp:483 src/libslic3r/PrintConfig.cpp:494 #: src/libslic3r/PrintConfig.cpp:510 msgid "Skirt and brim" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:138 src/slic3r/GUI/Tab.cpp:1478 -#: src/slic3r/GUI/Tab.cpp:1510 src/slic3r/GUI/Tab.cpp:1627 -#: src/slic3r/GUI/Tab.cpp:1631 src/slic3r/GUI/Tab.cpp:1955 -#: src/slic3r/GUI/Tab.cpp:2322 src/slic3r/GUI/Tab.cpp:4334 +#: src/slic3r/GUI/Tab.cpp:1511 src/slic3r/GUI/Tab.cpp:1628 +#: src/slic3r/GUI/Tab.cpp:1632 src/slic3r/GUI/Tab.cpp:1968 +#: src/slic3r/GUI/Tab.cpp:2335 src/slic3r/GUI/Tab.cpp:4354 #: src/libslic3r/PrintConfig.cpp:237 src/libslic3r/PrintConfig.cpp:461 -#: src/libslic3r/PrintConfig.cpp:1366 src/libslic3r/PrintConfig.cpp:1450 -#: src/libslic3r/PrintConfig.cpp:1497 src/libslic3r/PrintConfig.cpp:2431 -#: src/libslic3r/PrintConfig.cpp:2441 src/libslic3r/PrintConfig.cpp:2973 -#: src/libslic3r/PrintConfig.cpp:3145 +#: src/libslic3r/PrintConfig.cpp:1368 src/libslic3r/PrintConfig.cpp:1452 +#: src/libslic3r/PrintConfig.cpp:1499 src/libslic3r/PrintConfig.cpp:2433 +#: src/libslic3r/PrintConfig.cpp:2443 src/libslic3r/PrintConfig.cpp:2976 +#: src/libslic3r/PrintConfig.cpp:3148 msgid "Advanced" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:140 src/slic3r/GUI/Plater.cpp:384 -#: src/slic3r/GUI/Tab.cpp:4268 src/slic3r/GUI/Tab.cpp:4269 -#: src/libslic3r/PrintConfig.cpp:3311 src/libslic3r/PrintConfig.cpp:3318 -#: src/libslic3r/PrintConfig.cpp:3327 src/libslic3r/PrintConfig.cpp:3336 -#: src/libslic3r/PrintConfig.cpp:3346 src/libslic3r/PrintConfig.cpp:3356 -#: src/libslic3r/PrintConfig.cpp:3393 src/libslic3r/PrintConfig.cpp:3400 -#: src/libslic3r/PrintConfig.cpp:3411 src/libslic3r/PrintConfig.cpp:3421 -#: src/libslic3r/PrintConfig.cpp:3430 src/libslic3r/PrintConfig.cpp:3443 -#: src/libslic3r/PrintConfig.cpp:3453 src/libslic3r/PrintConfig.cpp:3462 -#: src/libslic3r/PrintConfig.cpp:3472 src/libslic3r/PrintConfig.cpp:3483 -#: src/libslic3r/PrintConfig.cpp:3491 +#: src/slic3r/GUI/GUI_Factories.cpp:140 src/slic3r/GUI/Plater.cpp:390 +#: src/slic3r/GUI/Tab.cpp:4288 src/slic3r/GUI/Tab.cpp:4289 +#: src/libslic3r/PrintConfig.cpp:3321 src/libslic3r/PrintConfig.cpp:3328 +#: src/libslic3r/PrintConfig.cpp:3337 src/libslic3r/PrintConfig.cpp:3346 +#: src/libslic3r/PrintConfig.cpp:3356 src/libslic3r/PrintConfig.cpp:3366 +#: src/libslic3r/PrintConfig.cpp:3403 src/libslic3r/PrintConfig.cpp:3410 +#: src/libslic3r/PrintConfig.cpp:3421 src/libslic3r/PrintConfig.cpp:3431 +#: src/libslic3r/PrintConfig.cpp:3440 src/libslic3r/PrintConfig.cpp:3453 +#: src/libslic3r/PrintConfig.cpp:3463 src/libslic3r/PrintConfig.cpp:3472 +#: src/libslic3r/PrintConfig.cpp:3482 src/libslic3r/PrintConfig.cpp:3493 +#: src/libslic3r/PrintConfig.cpp:3501 msgid "Supports" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:141 src/slic3r/GUI/Plater.cpp:529 -#: src/slic3r/GUI/Tab.cpp:4309 src/slic3r/GUI/Tab.cpp:4310 -#: src/slic3r/GUI/Tab.cpp:4382 src/libslic3r/PrintConfig.cpp:3499 -#: src/libslic3r/PrintConfig.cpp:3506 src/libslic3r/PrintConfig.cpp:3520 -#: src/libslic3r/PrintConfig.cpp:3531 src/libslic3r/PrintConfig.cpp:3541 -#: src/libslic3r/PrintConfig.cpp:3563 src/libslic3r/PrintConfig.cpp:3574 -#: src/libslic3r/PrintConfig.cpp:3581 src/libslic3r/PrintConfig.cpp:3588 -#: src/libslic3r/PrintConfig.cpp:3599 src/libslic3r/PrintConfig.cpp:3608 -#: src/libslic3r/PrintConfig.cpp:3617 +#: src/slic3r/GUI/GUI_Factories.cpp:141 src/slic3r/GUI/Plater.cpp:536 +#: src/slic3r/GUI/Tab.cpp:4329 src/slic3r/GUI/Tab.cpp:4330 +#: src/slic3r/GUI/Tab.cpp:4402 src/libslic3r/PrintConfig.cpp:3509 +#: src/libslic3r/PrintConfig.cpp:3516 src/libslic3r/PrintConfig.cpp:3530 +#: src/libslic3r/PrintConfig.cpp:3541 src/libslic3r/PrintConfig.cpp:3551 +#: src/libslic3r/PrintConfig.cpp:3573 src/libslic3r/PrintConfig.cpp:3584 +#: src/libslic3r/PrintConfig.cpp:3591 src/libslic3r/PrintConfig.cpp:3598 +#: src/libslic3r/PrintConfig.cpp:3609 src/libslic3r/PrintConfig.cpp:3618 +#: src/libslic3r/PrintConfig.cpp:3627 msgid "Pad" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4327 -#: src/slic3r/GUI/Tab.cpp:4328 src/libslic3r/SLA/Hollowing.cpp:72 +#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4347 +#: src/slic3r/GUI/Tab.cpp:4348 src/libslic3r/SLA/Hollowing.cpp:72 #: src/libslic3r/SLA/Hollowing.cpp:84 src/libslic3r/SLA/Hollowing.cpp:91 -#: src/libslic3r/SLA/Hollowing.cpp:100 src/libslic3r/PrintConfig.cpp:3627 -#: src/libslic3r/PrintConfig.cpp:3634 src/libslic3r/PrintConfig.cpp:3644 -#: src/libslic3r/PrintConfig.cpp:3653 +#: src/libslic3r/SLA/Hollowing.cpp:100 src/libslic3r/PrintConfig.cpp:3637 +#: src/libslic3r/PrintConfig.cpp:3644 src/libslic3r/PrintConfig.cpp:3654 +#: src/libslic3r/PrintConfig.cpp:3663 msgid "Hollowing" msgstr "" @@ -3527,10 +3632,6 @@ msgstr "" msgid "Fix through the Netfabb" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:699 src/slic3r/GUI/Plater.cpp:3731 -msgid "Simplify model" -msgstr "" - #: src/slic3r/GUI/GUI_Factories.cpp:709 msgid "Export as STL" msgstr "" @@ -3539,8 +3640,8 @@ msgstr "" msgid "Reload the selected volumes from disk" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:727 src/slic3r/GUI/Plater.cpp:3345 -#: src/slic3r/GUI/Plater.cpp:3371 +#: src/slic3r/GUI/GUI_Factories.cpp:727 src/slic3r/GUI/Plater.cpp:3448 +#: src/slic3r/GUI/Plater.cpp:3474 msgid "Replace with STL" msgstr "" @@ -3553,8 +3654,8 @@ msgid "Set extruder for selected items" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:772 src/slic3r/Utils/Repetier.cpp:124 -#: src/slic3r/Utils/Repetier.cpp:203 src/libslic3r/PrintConfig.cpp:601 -#: src/libslic3r/PrintConfig.cpp:2667 +#: src/slic3r/Utils/Repetier.cpp:207 src/libslic3r/PrintConfig.cpp:601 +#: src/libslic3r/PrintConfig.cpp:2669 msgid "Default" msgstr "" @@ -3566,24 +3667,24 @@ msgstr "" msgid "Scale the selected object to fit the print volume" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:828 src/slic3r/GUI/Plater.cpp:5518 +#: src/slic3r/GUI/GUI_Factories.cpp:828 src/slic3r/GUI/Plater.cpp:5582 msgid "Convert from imperial units" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:829 src/slic3r/GUI/Plater.cpp:5519 +#: src/slic3r/GUI/GUI_Factories.cpp:829 src/slic3r/GUI/Plater.cpp:5583 msgid "Revert conversion from imperial units" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:830 src/slic3r/GUI/Plater.cpp:5520 +#: src/slic3r/GUI/GUI_Factories.cpp:830 src/slic3r/GUI/Plater.cpp:5584 msgid "Convert from meters" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:831 src/slic3r/GUI/Plater.cpp:5520 +#: src/slic3r/GUI/GUI_Factories.cpp:831 src/slic3r/GUI/Plater.cpp:5584 msgid "Revert conversion from meters" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:852 src/slic3r/GUI/GUI_ObjectList.cpp:2123 -#: src/libslic3r/PrintConfig.cpp:4210 +#: src/slic3r/GUI/GUI_Factories.cpp:852 src/slic3r/GUI/GUI_ObjectList.cpp:2137 +#: src/libslic3r/PrintConfig.cpp:4226 msgid "Merge" msgstr "" @@ -3623,7 +3724,7 @@ msgstr "" msgid "Mirror the selected object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:894 src/slic3r/GUI/GUI_ObjectList.cpp:1677 +#: src/slic3r/GUI/GUI_Factories.cpp:894 src/slic3r/GUI/GUI_ObjectList.cpp:1697 msgid "Add Shape" msgstr "" @@ -3644,7 +3745,7 @@ msgid "Split the selected object into individual parts" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:937 src/slic3r/GUI/GUI_Factories.cpp:951 -#: src/slic3r/GUI/GUI_Factories.cpp:972 src/libslic3r/PrintConfig.cpp:4239 +#: src/slic3r/GUI/GUI_Factories.cpp:972 src/libslic3r/PrintConfig.cpp:4255 msgid "Split" msgstr "" @@ -3693,313 +3794,303 @@ msgid "Add layer range" msgstr "" #: src/slic3r/GUI/GUI_ObjectList.cpp:297 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:140 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:139 msgid "Name" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:465 +#: src/slic3r/GUI/GUI_ObjectList.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:479 msgid "Editing" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:396 +#: src/slic3r/GUI/GUI_ObjectList.cpp:399 msgid "No errors detected" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:405 +#: src/slic3r/GUI/GUI_ObjectList.cpp:408 #, possible-c-format msgid "Auto-repaired %1$d error" msgid_plural "Auto-repaired %1$d errors" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:409 +#: src/slic3r/GUI/GUI_ObjectList.cpp:414 #, possible-c-format msgid "%1$d degenerate facet" msgid_plural "%1$d degenerate facets" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:411 +#: src/slic3r/GUI/GUI_ObjectList.cpp:416 #, possible-c-format msgid "%1$d edge fixed" msgid_plural "%1$d edges fixed" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:413 +#: src/slic3r/GUI/GUI_ObjectList.cpp:418 #, possible-c-format msgid "%1$d facet removed" msgid_plural "%1$d facets removed" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:415 +#: src/slic3r/GUI/GUI_ObjectList.cpp:420 #, possible-c-format msgid "%1$d facet reversed" msgid_plural "%1$d facets reversed" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:417 -#, possible-c-format -msgid "%1$d backwards edge" -msgid_plural "%1$d backwards edges" -msgstr[0] "" -msgstr[1] "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:420 -#, possible-c-format -msgid "Remaining %1$d open edge" -msgid_plural "Remaining %1$d open edges" -msgstr[0] "" -msgstr[1] "" - #: src/slic3r/GUI/GUI_ObjectList.cpp:422 -msgid "Remaning errors" -msgstr "" +#, possible-c-format +msgid "%1$d backward edge" +msgid_plural "%1$d backward edges" +msgstr[0] "" +msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:423 +#: src/slic3r/GUI/GUI_ObjectList.cpp:425 src/slic3r/GUI/GUI_ObjectList.cpp:428 #, possible-c-format msgid "%1$d open edge" msgid_plural "%1$d open edges" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:430 +#: src/slic3r/GUI/GUI_ObjectList.cpp:427 +msgid "Remaning errors" +msgstr "" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:435 msgid "Right button click the icon to fix STL through Netfabb" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:467 +#: src/slic3r/GUI/GUI_ObjectList.cpp:481 msgid "Right button click the icon to change the object settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:469 +#: src/slic3r/GUI/GUI_ObjectList.cpp:483 msgid "Click the icon to change the object settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:473 +#: src/slic3r/GUI/GUI_ObjectList.cpp:487 msgid "Right button click the icon to change the object printable property" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:475 +#: src/slic3r/GUI/GUI_ObjectList.cpp:489 msgid "Click the icon to change the object printable property" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:598 +#: src/slic3r/GUI/GUI_ObjectList.cpp:615 msgid "Change Extruder" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:613 +#: src/slic3r/GUI/GUI_ObjectList.cpp:630 msgid "Rename Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:613 +#: src/slic3r/GUI/GUI_ObjectList.cpp:630 msgid "Rename Sub-object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1231 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3987 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1248 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4001 msgid "Instances to Separated Objects" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1237 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1254 msgid "Volumes in Object reordered" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1237 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1254 msgid "Object reordered" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1287 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1304 msgid "Add Settings for Layers" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1288 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1305 msgid "Add Settings for Sub-object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1289 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1306 msgid "Add Settings for Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1328 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1345 msgid "Add Settings Bundle for Height range" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1329 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1346 msgid "Add Settings Bundle for Sub-object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1330 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1347 msgid "Add Settings Bundle for Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1399 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1418 msgid "Load Part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1399 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1418 msgid "Load Modifier" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1437 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1496 src/slic3r/GUI/Plater.cpp:2251 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1516 src/slic3r/GUI/Plater.cpp:2313 msgid "Loading" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1444 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1527 src/slic3r/GUI/Plater.cpp:2268 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1547 src/slic3r/GUI/Plater.cpp:2333 msgid "Loading file" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1452 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1535 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1555 msgid "Error!" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1619 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1639 msgid "Add Generic Subobject" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1644 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1664 msgid "Generic" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1708 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1728 msgid "Add Shape from Gallery" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1708 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1728 msgid "Add Shapes from Gallery" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1816 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1834 msgid "Remove paint-on supports" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1823 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1841 msgid "Remove paint-on seam" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1830 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1848 msgid "Remove Multi Material painting" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1836 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1854 msgid "Shift objects to bed" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1842 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1860 msgid "Remove variable layer height" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1863 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1881 msgid "Delete Settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1887 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1905 msgid "Delete All Instances from Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1903 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1921 msgid "Delete Height Range" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1935 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1953 msgid "From Object List You can't delete the last solid part from object." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1939 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1957 msgid "Delete Subobject" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1962 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1980 msgid "Last instance of an object cannot be deleted." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1966 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1984 msgid "Delete Instance" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1990 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2008 msgid "" "The selected object couldn't be split because it contains only one part." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1994 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2012 msgid "Split to Parts" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2130 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2144 msgid "Merged" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2215 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2232 msgid "Merge all parts to the one single object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2247 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2264 msgid "Add Layers" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2416 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2433 msgid "Group manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2431 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2448 msgid "Object manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2464 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2481 msgid "Object Settings to modify" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2468 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2485 msgid "Part Settings to modify" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2473 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2490 msgid "Layer range Settings to modify" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2479 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2496 msgid "Part manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2485 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2502 msgid "Instance manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2492 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2509 msgid "Height ranges" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2492 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2509 msgid "Settings for height range" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2728 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2745 msgid "Delete Selected Item" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2924 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2938 msgid "Delete Selected" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3000 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3028 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3048 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3014 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3042 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3062 msgid "Add Height Range" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3094 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3108 msgid "" "Cannot insert a new layer range after the current layer range.\n" "The next layer range is too thin to be split to two\n" "without violating the minimum layer height." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3098 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3112 msgid "" "Cannot insert a new layer range between the current and the next layer " "range.\n" @@ -4007,257 +4098,253 @@ msgid "" "is thinner than the minimum layer height allowed." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3103 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3117 msgid "" "Cannot insert a new layer range after the current layer range.\n" "Current layer range overlaps with the next layer range." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3162 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3176 msgid "Edit Height Range" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3481 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3495 msgid "Selection-Remove from list" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3493 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3507 msgid "Selection-Add from list" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3630 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3644 msgid "Object or Instance" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3631 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3770 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3645 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3784 msgid "Part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3631 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3645 msgid "Layer" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3633 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3647 msgid "Unsupported selection" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3634 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3648 #, possible-c-format msgid "You started your selection with %s Item." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3635 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3649 #, possible-c-format msgid "In this mode you can select only other %s Items%s" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3638 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3652 msgid "of a current Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3643 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3718 src/slic3r/GUI/Plater.cpp:151 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3657 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3732 src/slic3r/GUI/Plater.cpp:157 msgid "Info" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3765 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3779 msgid "You can't change a type of the last solid part of the object." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3770 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3784 msgid "Negative Volume" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3770 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3784 msgid "Modifier" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3770 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3784 msgid "Support Blocker" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3770 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3784 msgid "Support Enforcer" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3771 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3785 msgid "Select type of part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3776 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3790 msgid "Change Part Type" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4009 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4023 msgid "Enter new name" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4009 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4023 msgid "Renaming" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4025 -#: src/slic3r/GUI/GUI_ObjectList.cpp:4256 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4039 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4261 #: src/slic3r/GUI/SavePresetDialog.cpp:101 #: src/slic3r/GUI/SavePresetDialog.cpp:109 msgid "The supplied name is not valid;" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4026 -#: src/slic3r/GUI/GUI_ObjectList.cpp:4257 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4040 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4262 #: src/slic3r/GUI/SavePresetDialog.cpp:102 msgid "the following characters are not allowed:" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4082 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4096 msgid "Repairing model" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4111 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4125 msgid "Fix through NetFabb" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4114 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4128 msgid "Fixing through NetFabb" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4145 -msgid "Folowing model is repaired successfully" -msgid_plural "Folowing models are repaired successfully" +#: src/slic3r/GUI/GUI_ObjectList.cpp:4158 +msgid "The following model was repaired successfully" +msgid_plural "The following models were repaired successfully" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4151 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4164 msgid "Folowing model repair failed" msgid_plural "Folowing models repair failed" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4156 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4169 msgid "Repairing was canceled" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4159 -msgid "Model Repair by the Netfabb service" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:4279 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4284 msgid "Change Extruders" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4419 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4424 msgid "Set Printable group" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4419 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4424 msgid "Set Unprintable group" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4421 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4426 msgid "Set Printable" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4421 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4426 msgid "Set Unprintable" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4422 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4427 msgid "Set Printable Instance" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:4422 +#: src/slic3r/GUI/GUI_ObjectList.cpp:4427 msgid "Set Unprintable Instance" msgstr "" +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:55 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 +msgid "World coordinates" +msgstr "" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:56 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:85 -msgid "World coordinates" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:57 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:86 msgid "Local coordinates" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:61 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:60 msgid "Select coordinate space, in which the transformation will be performed." msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:142 src/libslic3r/GCode.cpp:522 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:141 src/libslic3r/GCode.cpp:524 msgid "Object name" msgstr "" +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:201 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:521 +msgid "Position" +msgstr "" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:202 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:522 -msgid "Position" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:203 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:523 #: src/slic3r/GUI/Mouse3DController.cpp:478 #: src/slic3r/GUI/Mouse3DController.cpp:499 msgid "Rotation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:251 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:250 #, possible-c-format msgid "Toggle %c axis mirroring" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:284 msgid "Set Mirror" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:325 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:337 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:349 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:324 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:336 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:348 msgid "Drop to bed" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:364 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:363 msgid "Reset rotation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:386 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:385 msgid "Reset Rotation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:399 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:401 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:398 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:400 msgid "Reset scale" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:415 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:414 msgid "Inches" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:524 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:523 msgid "Scale factors" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:578 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:577 msgid "Translate" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:642 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 msgid "" "You cannot use non-uniform scaling mode for multiple objects/parts selection" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:819 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:826 msgid "Set Position" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:850 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:860 msgid "Set Orientation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:915 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:941 msgid "Set Scale" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:948 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:990 msgid "" "The currently manipulated object is tilted (rotation angles are not " "multiples of 90°).\n" @@ -4266,7 +4353,7 @@ msgid "" "once the rotation is embedded into the object coordinates." msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:951 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:993 msgid "" "This operation is irreversible.\n" "Do you want to proceed?" @@ -4290,123 +4377,123 @@ msgstr "" msgid "Change Option %s" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:210 +#: src/slic3r/GUI/GUI_Preview.cpp:211 msgid "View" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:217 src/libslic3r/PrintConfig.cpp:770 +#: src/slic3r/GUI/GUI_Preview.cpp:218 src/libslic3r/PrintConfig.cpp:770 msgid "Height" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:218 src/libslic3r/PrintConfig.cpp:2927 +#: src/slic3r/GUI/GUI_Preview.cpp:219 src/libslic3r/PrintConfig.cpp:2930 msgid "Width" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:220 src/slic3r/GUI/Tab.cpp:1940 +#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:1953 msgid "Fan speed" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:1915 +#: src/slic3r/GUI/GUI_Preview.cpp:222 src/slic3r/GUI/Tab.cpp:1928 msgid "Temperature" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:222 +#: src/slic3r/GUI/GUI_Preview.cpp:223 msgid "Volumetric flow rate" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:227 +#: src/slic3r/GUI/GUI_Preview.cpp:228 msgid "Show" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:235 src/slic3r/GUI/GUI_Preview.cpp:253 +#: src/slic3r/GUI/GUI_Preview.cpp:236 src/slic3r/GUI/GUI_Preview.cpp:254 msgid "Feature types" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/ExtrusionEntity.cpp:312 -#: src/libslic3r/ExtrusionEntity.cpp:334 +#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/ExtrusionEntity.cpp:318 +#: src/libslic3r/ExtrusionEntity.cpp:340 msgid "Perimeter" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/ExtrusionEntity.cpp:313 -#: src/libslic3r/ExtrusionEntity.cpp:336 +#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/ExtrusionEntity.cpp:319 +#: src/libslic3r/ExtrusionEntity.cpp:342 msgid "External perimeter" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/ExtrusionEntity.cpp:314 -#: src/libslic3r/ExtrusionEntity.cpp:338 +#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/ExtrusionEntity.cpp:320 +#: src/libslic3r/ExtrusionEntity.cpp:344 msgid "Overhang perimeter" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/ExtrusionEntity.cpp:315 -#: src/libslic3r/ExtrusionEntity.cpp:340 +#: src/slic3r/GUI/GUI_Preview.cpp:242 src/libslic3r/ExtrusionEntity.cpp:321 +#: src/libslic3r/ExtrusionEntity.cpp:346 msgid "Internal infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:242 src/libslic3r/ExtrusionEntity.cpp:316 -#: src/libslic3r/ExtrusionEntity.cpp:342 src/libslic3r/PrintConfig.cpp:2294 -#: src/libslic3r/PrintConfig.cpp:2305 +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/ExtrusionEntity.cpp:322 +#: src/libslic3r/ExtrusionEntity.cpp:348 src/libslic3r/PrintConfig.cpp:2296 +#: src/libslic3r/PrintConfig.cpp:2307 msgid "Solid infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/ExtrusionEntity.cpp:317 -#: src/libslic3r/ExtrusionEntity.cpp:344 src/libslic3r/PrintConfig.cpp:2785 -#: src/libslic3r/PrintConfig.cpp:2797 +#: src/slic3r/GUI/GUI_Preview.cpp:244 src/libslic3r/ExtrusionEntity.cpp:323 +#: src/libslic3r/ExtrusionEntity.cpp:350 src/libslic3r/PrintConfig.cpp:2788 +#: src/libslic3r/PrintConfig.cpp:2800 msgid "Top solid infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:245 src/libslic3r/ExtrusionEntity.cpp:319 -#: src/libslic3r/ExtrusionEntity.cpp:348 +#: src/slic3r/GUI/GUI_Preview.cpp:246 src/libslic3r/ExtrusionEntity.cpp:325 +#: src/libslic3r/ExtrusionEntity.cpp:354 msgid "Bridge infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:246 src/libslic3r/ExtrusionEntity.cpp:320 -#: src/libslic3r/ExtrusionEntity.cpp:350 src/libslic3r/PrintConfig.cpp:1278 +#: src/slic3r/GUI/GUI_Preview.cpp:247 src/libslic3r/ExtrusionEntity.cpp:326 +#: src/libslic3r/ExtrusionEntity.cpp:356 src/libslic3r/PrintConfig.cpp:1280 msgid "Gap fill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:247 src/libslic3r/ExtrusionEntity.cpp:321 -#: src/libslic3r/ExtrusionEntity.cpp:352 +#: src/slic3r/GUI/GUI_Preview.cpp:248 src/libslic3r/ExtrusionEntity.cpp:327 +#: src/libslic3r/ExtrusionEntity.cpp:358 msgid "Skirt/Brim" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:249 src/libslic3r/ExtrusionEntity.cpp:323 -#: src/libslic3r/ExtrusionEntity.cpp:356 src/libslic3r/PrintConfig.cpp:2633 +#: src/slic3r/GUI/GUI_Preview.cpp:250 src/libslic3r/ExtrusionEntity.cpp:329 +#: src/libslic3r/ExtrusionEntity.cpp:362 src/libslic3r/PrintConfig.cpp:2635 msgid "Support material interface" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:250 src/slic3r/GUI/Tab.cpp:1616 -#: src/libslic3r/ExtrusionEntity.cpp:324 src/libslic3r/ExtrusionEntity.cpp:358 +#: src/slic3r/GUI/GUI_Preview.cpp:251 src/slic3r/GUI/Tab.cpp:1617 +#: src/libslic3r/ExtrusionEntity.cpp:330 src/libslic3r/ExtrusionEntity.cpp:364 msgid "Wipe tower" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:731 +#: src/slic3r/GUI/GUI_Preview.cpp:728 msgid "NOTE:" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:731 -msgid "Sliced object looks like the sign" +#: src/slic3r/GUI/GUI_Preview.cpp:729 +msgid "Sliced object \"%1%\" looks like a logo or a sign" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:732 -msgid "Apply auto color change to print" +#: src/slic3r/GUI/GUI_Preview.cpp:730 +msgid "Apply color change automatically" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:1058 +#: src/slic3r/GUI/GUI_Preview.cpp:1057 msgid "Shells" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:1059 +#: src/slic3r/GUI/GUI_Preview.cpp:1058 msgid "Tool marker" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:1060 +#: src/slic3r/GUI/GUI_Preview.cpp:1059 msgid "Legend/Estimated printing time" msgstr "" #: src/slic3r/GUI/HintNotification.cpp:762 #: src/slic3r/GUI/HintNotification.cpp:788 -#: src/slic3r/GUI/NotificationManager.cpp:399 -#: src/slic3r/GUI/NotificationManager.cpp:416 +#: src/slic3r/GUI/NotificationManager.cpp:402 +#: src/slic3r/GUI/NotificationManager.cpp:419 msgid "More" msgstr "" @@ -4418,15 +4505,19 @@ msgstr "" msgid "Open Documentation in web browser." msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:848 src/slic3r/GUI/Search.cpp:467 +#: src/slic3r/GUI/ImGuiWrapper.cpp:520 +msgid "Edit" +msgstr "" + +#: src/slic3r/GUI/ImGuiWrapper.cpp:960 src/slic3r/GUI/Search.cpp:479 msgid "Use for search" msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:849 src/slic3r/GUI/Search.cpp:460 +#: src/slic3r/GUI/ImGuiWrapper.cpp:961 src/slic3r/GUI/Search.cpp:472 msgid "Category" msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:851 src/slic3r/GUI/Search.cpp:462 +#: src/slic3r/GUI/ImGuiWrapper.cpp:963 src/slic3r/GUI/Search.cpp:474 msgid "Search in English" msgstr "" @@ -4466,7 +4557,7 @@ msgstr "" msgid "Bed filling done." msgstr "" -#: src/slic3r/GUI/Jobs/Job.cpp:108 +#: src/slic3r/GUI/Jobs/Job.cpp:111 msgid "ERROR: not enough resources to execute a new job." msgstr "" @@ -4518,21 +4609,21 @@ msgstr "" msgid "Quick" msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:138 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:140 msgid "Importing SLA archive" msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:156 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:158 msgid "" "The SLA archive doesn't contain any presets. Please activate some SLA " "printer preset first before importing that SLA archive." msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:162 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:164 msgid "Importing canceled." msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:163 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:165 msgid "Importing done." msgstr "" @@ -4542,11 +4633,11 @@ msgid "" "presets were used as fallback." msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:223 src/slic3r/GUI/Plater.cpp:2295 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:223 src/slic3r/GUI/Plater.cpp:2360 msgid "You cannot load SLA project with a multi-part object on the bed" msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:225 src/slic3r/GUI/Plater.cpp:2297 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:225 src/slic3r/GUI/Plater.cpp:2362 msgid "Attention!" msgstr "" @@ -4586,12 +4677,12 @@ msgstr "" msgid "Load Config from ini/amf/3mf/gcode and merge" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:87 src/slic3r/GUI/Plater.cpp:826 -#: src/slic3r/GUI/Plater.cpp:6415 src/libslic3r/PrintConfig.cpp:4110 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:87 src/slic3r/GUI/Plater.cpp:874 +#: src/slic3r/GUI/Plater.cpp:6482 src/libslic3r/PrintConfig.cpp:4126 msgid "Export G-code" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:88 src/slic3r/GUI/Plater.cpp:6416 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:88 src/slic3r/GUI/Plater.cpp:6483 msgid "Send G-code" msgstr "" @@ -4599,7 +4690,7 @@ msgstr "" msgid "Export config" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:90 src/slic3r/GUI/Plater.cpp:809 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:90 src/slic3r/GUI/Plater.cpp:857 msgid "Export to SD card / Flash drive" msgstr "" @@ -4658,7 +4749,7 @@ msgid "Switch to Preview" msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 -#: src/slic3r/GUI/PrintHostDialogs.cpp:200 +#: src/slic3r/GUI/PrintHostDialogs.cpp:208 msgid "Print host upload queue" msgstr "" @@ -4676,7 +4767,7 @@ msgid "Show/Hide object/instance labels" msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:121 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Preferences.cpp:16 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Preferences.cpp:47 msgid "Preferences" msgstr "" @@ -4916,7 +5007,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:196 -msgid "Set selected items as Ptrintable/Unprintable" +msgid "Set selected items as Printable/Unprintable" msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:197 @@ -4973,6 +5064,11 @@ msgstr "" msgid "Show/Hide G-code window" msgstr "" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4438 +#: src/slic3r/GUI/Tab.cpp:2766 +msgid "Preview" +msgstr "" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:233 msgid "Move active thumb Up" msgstr "" @@ -5101,8 +5197,8 @@ msgstr "" msgid "Printer Settings" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:627 src/slic3r/GUI/Plater.cpp:1597 -#: src/slic3r/GUI/Plater.cpp:2656 +#: src/slic3r/GUI/MainFrame.cpp:627 src/slic3r/GUI/Plater.cpp:1660 +#: src/slic3r/GUI/Plater.cpp:2752 msgid "Untitled" msgstr "" @@ -5194,8 +5290,8 @@ msgstr "" #. TRN To be shown in the main menu View->Top #. TRN To be shown in Print Settings "Top solid layers" -#: src/slic3r/GUI/MainFrame.cpp:1124 src/libslic3r/PrintConfig.cpp:2812 -#: src/libslic3r/PrintConfig.cpp:2821 +#: src/slic3r/GUI/MainFrame.cpp:1124 src/libslic3r/PrintConfig.cpp:2815 +#: src/libslic3r/PrintConfig.cpp:2824 msgid "Top" msgstr "" @@ -5223,7 +5319,7 @@ msgstr "" msgid "Front View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1131 src/libslic3r/PrintConfig.cpp:2176 +#: src/slic3r/GUI/MainFrame.cpp:1131 src/libslic3r/PrintConfig.cpp:2178 msgid "Rear" msgstr "" @@ -5274,7 +5370,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:1168 src/slic3r/GUI/MainFrame.cpp:1625 -#: src/slic3r/GUI/PrintHostDialogs.cpp:348 +#: src/slic3r/GUI/PrintHostDialogs.cpp:364 msgid "Error" msgstr "" @@ -5287,7 +5383,7 @@ msgid "Save current project file" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:1197 src/slic3r/GUI/MainFrame.cpp:1199 -msgid "Save Project &as" +msgid "Save project &as" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:1197 src/slic3r/GUI/MainFrame.cpp:1199 @@ -5601,11 +5697,7 @@ msgid "Show the 3D slices preview" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:1403 -msgid "Modify Shapes Gallery" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:1403 -msgid "Open the dialog to modify shapes gallery" +msgid "Open the dialog to modify shape gallery" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:1415 @@ -5632,7 +5724,7 @@ msgstr "" msgid "&Collapse sidebar" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1436 src/slic3r/GUI/Plater.cpp:2178 +#: src/slic3r/GUI/MainFrame.cpp:1436 src/slic3r/GUI/Plater.cpp:2240 msgid "Collapse sidebar" msgstr "" @@ -5721,9 +5813,9 @@ msgstr "" msgid "Save zip file as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1688 src/slic3r/GUI/Plater.cpp:3134 -#: src/slic3r/GUI/Plater.cpp:5928 src/slic3r/GUI/Tab.cpp:1648 -#: src/slic3r/GUI/Tab.cpp:4335 +#: src/slic3r/GUI/MainFrame.cpp:1688 src/slic3r/GUI/Plater.cpp:3236 +#: src/slic3r/GUI/Plater.cpp:5992 src/slic3r/GUI/Tab.cpp:1649 +#: src/slic3r/GUI/Tab.cpp:4355 msgid "Slicing" msgstr "" @@ -5753,7 +5845,7 @@ msgstr "" msgid "Your file was repaired." msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1753 src/libslic3r/PrintConfig.cpp:4215 +#: src/slic3r/GUI/MainFrame.cpp:1753 src/libslic3r/PrintConfig.cpp:4231 msgid "Repair" msgstr "" @@ -5826,32 +5918,32 @@ msgstr "" msgid "Swap Y/Z axes" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:148 +#: src/slic3r/GUI/MsgDialog.cpp:171 #, possible-c-format msgid "%s error" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:149 +#: src/slic3r/GUI/MsgDialog.cpp:172 #, possible-c-format msgid "%s has encountered an error" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:172 +#: src/slic3r/GUI/MsgDialog.cpp:191 #, possible-c-format msgid "%s warning" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:173 +#: src/slic3r/GUI/MsgDialog.cpp:192 #, possible-c-format msgid "%s has a warning" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:195 +#: src/slic3r/GUI/MsgDialog.cpp:205 src/slic3r/GUI/MsgDialog.cpp:218 #, possible-c-format msgid "%s info" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:218 +#: src/slic3r/GUI/MsgDialog.cpp:246 #, possible-c-format msgid "%s information" msgstr "" @@ -5868,103 +5960,128 @@ msgstr "" msgid "See more." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:44 -msgid "New version is available." -msgstr "" - -#: src/slic3r/GUI/NotificationManager.cpp:44 -msgid "See Releases page." -msgstr "" - -#: src/slic3r/GUI/NotificationManager.cpp:47 +#: src/slic3r/GUI/NotificationManager.cpp:45 msgid "" "You have just added a G-code for color change, but its value is empty.\n" "To export the G-code correctly, check the \"Color Change G-code\" in " "\"Printer Settings > Custom G-code\"" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:50 +#: src/slic3r/GUI/NotificationManager.cpp:48 msgid "" "No color change event was added to the print. The print does not look like a " "sign." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:52 +#: src/slic3r/GUI/NotificationManager.cpp:50 msgid "Desktop integration was successful." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:54 +#: src/slic3r/GUI/NotificationManager.cpp:52 msgid "Desktop integration failed." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:56 +#: src/slic3r/GUI/NotificationManager.cpp:54 msgid "Undo desktop integration was successful." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:58 +#: src/slic3r/GUI/NotificationManager.cpp:56 msgid "Undo desktop integration failed." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:688 +#: src/slic3r/GUI/NotificationManager.cpp:57 +msgid "Exporting." +msgstr "" + +#: src/slic3r/GUI/NotificationManager.cpp:691 msgid "Open Folder." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:725 +#: src/slic3r/GUI/NotificationManager.cpp:728 msgid "Eject drive" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:958 +#: src/slic3r/GUI/NotificationManager.cpp:961 msgid "ERROR" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:963 +#: src/slic3r/GUI/NotificationManager.cpp:966 msgid "CANCELED" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:968 +#: src/slic3r/GUI/NotificationManager.cpp:971 msgid "COMPLETED" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1010 +#: src/slic3r/GUI/NotificationManager.cpp:1013 msgid "Cancel upload" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1069 -msgid " Object was loaded with " -msgid_plural " Objects were loaded with " +#: src/slic3r/GUI/NotificationManager.cpp:1072 +#, possible-c-format +msgid "%1$d Object was loaded with custom supports." +msgid_plural "%1$d Objects were loaded with custom supports." msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/NotificationManager.cpp:1170 -#: src/slic3r/GUI/NotificationManager.cpp:1184 +#: src/slic3r/GUI/NotificationManager.cpp:1073 +#, possible-c-format +msgid "%1$d Object was loaded with custom seam." +msgid_plural "%1$d Objects were loaded with custom seam." +msgstr[0] "" +msgstr[1] "" + +#: src/slic3r/GUI/NotificationManager.cpp:1074 +#, possible-c-format +msgid "%1$d Object was loaded with multimaterial painting." +msgid_plural "%1$d Objects were loaded with multimaterial painting." +msgstr[0] "" +msgstr[1] "" + +#: src/slic3r/GUI/NotificationManager.cpp:1075 +#, possible-c-format +msgid "%1$d Object was loaded with variable layer height." +msgid_plural "%1$d Objects were loaded with variable layer height." +msgstr[0] "" +msgstr[1] "" + +#: src/slic3r/GUI/NotificationManager.cpp:1076 +#, possible-c-format +msgid "%1$d Object was loaded with partial sinking." +msgid_plural "%1$d Objects were loaded with partial sinking." +msgstr[0] "" +msgstr[1] "" + +#: src/slic3r/GUI/NotificationManager.cpp:1173 +#: src/slic3r/GUI/NotificationManager.cpp:1187 msgid "Export G-Code." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1170 -#: src/slic3r/GUI/NotificationManager.cpp:1184 +#: src/slic3r/GUI/NotificationManager.cpp:1173 +#: src/slic3r/GUI/NotificationManager.cpp:1187 msgid "Export." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1184 +#: src/slic3r/GUI/NotificationManager.cpp:1187 msgid "Slicing finished." msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1508 -#: src/slic3r/GUI/NotificationManager.cpp:1515 -#: src/slic3r/GUI/NotificationManager.cpp:1531 -#: src/slic3r/GUI/NotificationManager.cpp:1537 -#: src/slic3r/GUI/NotificationManager.cpp:1608 +#: src/slic3r/GUI/NotificationManager.cpp:1521 +#: src/slic3r/GUI/NotificationManager.cpp:1528 +#: src/slic3r/GUI/NotificationManager.cpp:1544 +#: src/slic3r/GUI/NotificationManager.cpp:1550 +#: src/slic3r/GUI/NotificationManager.cpp:1621 msgid "ERROR:" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1520 -#: src/slic3r/GUI/NotificationManager.cpp:1547 -#: src/slic3r/GUI/NotificationManager.cpp:1555 -#: src/slic3r/GUI/NotificationManager.cpp:1566 src/slic3r/GUI/Plater.cpp:3001 +#: src/slic3r/GUI/NotificationManager.cpp:1533 +#: src/slic3r/GUI/NotificationManager.cpp:1560 +#: src/slic3r/GUI/NotificationManager.cpp:1568 +#: src/slic3r/GUI/NotificationManager.cpp:1579 src/slic3r/GUI/Plater.cpp:3104 msgid "WARNING:" msgstr "" -#: src/slic3r/GUI/NotificationManager.cpp:1659 +#: src/slic3r/GUI/NotificationManager.cpp:1672 msgid "Exporting finished." msgstr "" @@ -5986,8 +6103,8 @@ msgstr "" msgid "Instance %d" msgstr "" -#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4179 -#: src/slic3r/GUI/Tab.cpp:4264 +#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4199 +#: src/slic3r/GUI/Tab.cpp:4284 msgid "Layers" msgstr "" @@ -5995,44 +6112,44 @@ msgstr "" msgid "Range" msgstr "" -#: src/slic3r/GUI/OpenGLManager.cpp:248 +#: src/slic3r/GUI/OpenGLManager.cpp:257 #, possible-c-format msgid "" "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n" "while OpenGL version %s, render %s, vendor %s was detected." msgstr "" -#: src/slic3r/GUI/OpenGLManager.cpp:251 +#: src/slic3r/GUI/OpenGLManager.cpp:260 msgid "You may need to update your graphics card driver." msgstr "" -#: src/slic3r/GUI/OpenGLManager.cpp:254 +#: src/slic3r/GUI/OpenGLManager.cpp:263 msgid "" "As a workaround, you may run PrusaSlicer with a software rendered 3D " "graphics by running prusa-slicer.exe with the --sw-renderer parameter." msgstr "" -#: src/slic3r/GUI/OpenGLManager.cpp:256 +#: src/slic3r/GUI/OpenGLManager.cpp:265 msgid "Unsupported OpenGL version" msgstr "" -#: src/slic3r/GUI/OpenGLManager.cpp:264 +#: src/slic3r/GUI/OpenGLManager.cpp:273 #, possible-c-format msgid "" "Unable to load the following shaders:\n" "%s" msgstr "" -#: src/slic3r/GUI/OpenGLManager.cpp:265 +#: src/slic3r/GUI/OpenGLManager.cpp:274 msgid "Error loading shaders" msgstr "" -#: src/slic3r/GUI/OptionsGroup.cpp:333 +#: src/slic3r/GUI/OptionsGroup.cpp:347 msgctxt "Layers" msgid "Top" msgstr "" -#: src/slic3r/GUI/OptionsGroup.cpp:333 +#: src/slic3r/GUI/OptionsGroup.cpp:347 msgctxt "Layers" msgid "Bottom" msgstr "" @@ -6057,7 +6174,7 @@ msgstr "" msgid "Add preset for this printer device" msgstr "" -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:210 src/slic3r/GUI/Tab.cpp:2179 +#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:210 src/slic3r/GUI/Tab.cpp:2192 msgid "Print Host upload" msgstr "" @@ -6143,655 +6260,661 @@ msgstr[1] "" msgid "It's not possible to delete the last related preset for the printer." msgstr "" -#: src/slic3r/GUI/Plater.cpp:172 +#: src/slic3r/GUI/Plater.cpp:178 msgid "Volume" msgstr "" -#: src/slic3r/GUI/Plater.cpp:173 +#: src/slic3r/GUI/Plater.cpp:179 msgid "Facets" msgstr "" -#: src/slic3r/GUI/Plater.cpp:174 +#: src/slic3r/GUI/Plater.cpp:180 msgid "Materials" msgstr "" -#: src/slic3r/GUI/Plater.cpp:232 +#: src/slic3r/GUI/Plater.cpp:238 msgid "Sliced Info" msgstr "" -#: src/slic3r/GUI/Plater.cpp:252 src/slic3r/GUI/Plater.cpp:1234 +#: src/slic3r/GUI/Plater.cpp:258 src/slic3r/GUI/Plater.cpp:1297 msgid "Used Filament (m)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:253 src/slic3r/GUI/Plater.cpp:1246 +#: src/slic3r/GUI/Plater.cpp:259 src/slic3r/GUI/Plater.cpp:1309 msgid "Used Filament (mm³)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:254 src/slic3r/GUI/Plater.cpp:1253 +#: src/slic3r/GUI/Plater.cpp:260 src/slic3r/GUI/Plater.cpp:1316 msgid "Used Filament (g)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:255 +#: src/slic3r/GUI/Plater.cpp:261 msgid "Used Material (unit)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:256 +#: src/slic3r/GUI/Plater.cpp:262 msgid "Cost (money)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:257 src/slic3r/GUI/Plater.cpp:1216 -#: src/slic3r/GUI/Plater.cpp:1303 +#: src/slic3r/GUI/Plater.cpp:263 src/slic3r/GUI/Plater.cpp:1279 +#: src/slic3r/GUI/Plater.cpp:1366 msgid "Estimated printing time" msgstr "" -#: src/slic3r/GUI/Plater.cpp:258 +#: src/slic3r/GUI/Plater.cpp:264 msgid "Number of tool changes" msgstr "" -#: src/slic3r/GUI/Plater.cpp:387 +#: src/slic3r/GUI/Plater.cpp:393 msgid "Select what kind of support do you need" msgstr "" -#: src/slic3r/GUI/Plater.cpp:389 src/libslic3r/PrintConfig.cpp:2490 -#: src/libslic3r/PrintConfig.cpp:3392 +#: src/slic3r/GUI/Plater.cpp:395 src/libslic3r/PrintConfig.cpp:2492 +#: src/libslic3r/PrintConfig.cpp:3402 msgid "Support on build plate only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:390 src/slic3r/GUI/Plater.cpp:518 +#: src/slic3r/GUI/Plater.cpp:396 src/slic3r/GUI/Plater.cpp:525 msgid "For support enforcers only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:391 +#: src/slic3r/GUI/Plater.cpp:397 msgid "Everywhere" msgstr "" -#: src/slic3r/GUI/Plater.cpp:423 src/slic3r/GUI/Tab.cpp:1527 +#: src/slic3r/GUI/Plater.cpp:429 src/slic3r/GUI/Tab.cpp:1528 msgid "Brim" msgstr "" -#: src/slic3r/GUI/Plater.cpp:425 +#: src/slic3r/GUI/Plater.cpp:431 msgid "" "This flag enables the brim that will be printed around each object on the " "first layer." msgstr "" -#: src/slic3r/GUI/Plater.cpp:433 +#: src/slic3r/GUI/Plater.cpp:439 msgid "Purging volumes" msgstr "" -#: src/slic3r/GUI/Plater.cpp:532 +#: src/slic3r/GUI/Plater.cpp:539 msgid "Select what kind of pad do you need" msgstr "" -#: src/slic3r/GUI/Plater.cpp:534 +#: src/slic3r/GUI/Plater.cpp:541 msgid "Below object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:535 +#: src/slic3r/GUI/Plater.cpp:542 msgid "Around object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:807 src/slic3r/GUI/Plater.cpp:6416 +#: src/slic3r/GUI/Plater.cpp:855 src/slic3r/GUI/Plater.cpp:6483 msgid "Send to printer" msgstr "" -#: src/slic3r/GUI/Plater.cpp:827 src/slic3r/GUI/Plater.cpp:3134 -#: src/slic3r/GUI/Plater.cpp:5931 +#: src/slic3r/GUI/Plater.cpp:875 src/slic3r/GUI/Plater.cpp:3236 +#: src/slic3r/GUI/Plater.cpp:5995 msgid "Slice now" msgstr "" -#: src/slic3r/GUI/Plater.cpp:993 +#: src/slic3r/GUI/Plater.cpp:1048 msgid "Hold Shift to Slice & Export G-code" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1165 +#: src/slic3r/GUI/Plater.cpp:1228 msgid "%1% (%2$d shell)" msgid_plural "%1% (%2$d shells)" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:1191 +#: src/slic3r/GUI/Plater.cpp:1254 msgid "Used Material (ml)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1194 +#: src/slic3r/GUI/Plater.cpp:1257 msgid "object" msgid_plural "objects" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:1194 +#: src/slic3r/GUI/Plater.cpp:1257 msgid "supports and pad" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1234 +#: src/slic3r/GUI/Plater.cpp:1297 msgid "Used Filament (in)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1236 src/slic3r/GUI/Plater.cpp:1289 +#: src/slic3r/GUI/Plater.cpp:1299 src/slic3r/GUI/Plater.cpp:1352 msgid "objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1236 src/slic3r/GUI/Plater.cpp:1289 +#: src/slic3r/GUI/Plater.cpp:1299 src/slic3r/GUI/Plater.cpp:1352 msgid "wipe tower" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1246 +#: src/slic3r/GUI/Plater.cpp:1309 msgid "Used Filament (in³)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1272 +#: src/slic3r/GUI/Plater.cpp:1335 msgid "Filament at extruder %1%" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1278 +#: src/slic3r/GUI/Plater.cpp:1341 msgid "(including spool)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1287 src/libslic3r/PrintConfig.cpp:1032 -#: src/libslic3r/PrintConfig.cpp:3207 src/libslic3r/PrintConfig.cpp:3208 +#: src/slic3r/GUI/Plater.cpp:1350 src/libslic3r/PrintConfig.cpp:1032 +#: src/libslic3r/PrintConfig.cpp:3217 src/libslic3r/PrintConfig.cpp:3218 msgid "Cost" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1305 +#: src/slic3r/GUI/Plater.cpp:1368 msgid "normal mode" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1312 +#: src/slic3r/GUI/Plater.cpp:1375 msgid "stealth mode" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1549 +#: src/slic3r/GUI/Plater.cpp:1612 msgid "Fill bed" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1555 +#: src/slic3r/GUI/Plater.cpp:1618 msgid "Optimize Rotation" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1561 +#: src/slic3r/GUI/Plater.cpp:1624 msgid "Import SLA archive" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1599 +#: src/slic3r/GUI/Plater.cpp:1662 msgid "Do you want to save the changes to \"%1%\"?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2052 +#: src/slic3r/GUI/Plater.cpp:2114 #, possible-c-format msgid "" "Successfully unmounted. The device %s(%s) can now be safely removed from the " "computer." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2057 +#: src/slic3r/GUI/Plater.cpp:2119 #, possible-c-format msgid "Ejecting of device %s(%s) has failed." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2076 src/slic3r/GUI/Plater.cpp:4996 +#: src/slic3r/GUI/Plater.cpp:2138 src/slic3r/GUI/Plater.cpp:5059 msgid "New Project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2177 +#: src/slic3r/GUI/Plater.cpp:2239 msgid "Expand sidebar" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2355 +#: src/slic3r/GUI/Plater.cpp:2420 msgid "" -"The preset below was temporarily installed on active instance of PrusaSlicer" +"The preset below was temporarily installed on the active instance of " +"PrusaSlicer" msgid_plural "" -"The presets below were temporarily installed on active instance of " +"The presets below were temporarily installed on the active instance of " "PrusaSlicer" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2385 +#: src/slic3r/GUI/Plater.cpp:2450 msgid "Failed loading file \"%1%\" due to an invalid configuration." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2408 +#: src/slic3r/GUI/Plater.cpp:2470 +#, possible-c-format +msgid "" +"Object size from file %s appears to be zero.\n" +"This object has been removed from the model" +msgid_plural "" +"Objects size from file %s appears to be zero.\n" +"These objects have been removed from the model" +msgstr[0] "" +msgstr[1] "" + +#: src/slic3r/GUI/Plater.cpp:2474 +msgid "The size of the object is zero" +msgstr "" + +#: src/slic3r/GUI/Plater.cpp:2487 #, possible-c-format msgid "" "The dimensions of the object from file %s seem to be defined in meters.\n" -"The internal unit of PrusaSlicer are millimeters. Do you want to recalculate " +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " "the dimensions of the object?" msgid_plural "" "The dimensions of some objects from file %s seem to be defined in meters.\n" -"The internal unit of PrusaSlicer are millimeters. Do you want to recalculate " +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " "the dimensions of these objects?" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2412 src/slic3r/GUI/Plater.cpp:2423 +#: src/slic3r/GUI/Plater.cpp:2491 src/slic3r/GUI/Plater.cpp:2513 msgid "The object is too small" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2419 +#: src/slic3r/GUI/Plater.cpp:2492 src/slic3r/GUI/Plater.cpp:2514 +msgid "Apply to all the remaining small objects being loaded." +msgstr "" + +#: src/slic3r/GUI/Plater.cpp:2509 #, possible-c-format msgid "" "The dimensions of the object from file %s seem to be defined in inches.\n" -"The internal unit of PrusaSlicer are millimeters. Do you want to recalculate " +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " "the dimensions of the object?" msgid_plural "" "The dimensions of some objects from file %s seem to be defined in inches.\n" -"The internal unit of PrusaSlicer are millimeters. Do you want to recalculate " +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " "the dimensions of these objects?" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2432 +#: src/slic3r/GUI/Plater.cpp:2527 msgid "" "This file contains several objects positioned at multiple heights.\n" "Instead of considering them as multiple objects, should \n" -"should the file be loaded as a single object having multiple parts?" +"the file be loaded as a single object having multiple parts?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2435 src/slic3r/GUI/Plater.cpp:2490 +#: src/slic3r/GUI/Plater.cpp:2530 src/slic3r/GUI/Plater.cpp:2585 msgid "Multi-part object detected" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2443 +#: src/slic3r/GUI/Plater.cpp:2538 msgid "" "This file cannot be loaded in a simple mode. Do you want to switch to an " "advanced mode?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2444 +#: src/slic3r/GUI/Plater.cpp:2539 msgid "Detected advanced data" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2464 +#: src/slic3r/GUI/Plater.cpp:2559 #, possible-c-format msgid "" "You can't to add the object(s) from %s because of one or some of them " "is(are) multi-part" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2487 +#: src/slic3r/GUI/Plater.cpp:2582 msgid "" "Multiple objects were loaded for a multi-material printer.\n" "Instead of considering them as multiple objects, should I consider\n" "these files to represent a single object having multiple parts?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2606 +#: src/slic3r/GUI/Plater.cpp:2702 msgid "" "Your object appears to be too large, so it was automatically scaled down to " "fit your print bed." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2607 +#: src/slic3r/GUI/Plater.cpp:2703 msgid "Object too large?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2684 +#: src/slic3r/GUI/Plater.cpp:2780 msgid "Export STL file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2691 +#: src/slic3r/GUI/Plater.cpp:2787 msgid "Export AMF file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2697 +#: src/slic3r/GUI/Plater.cpp:2793 msgid "Save file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2703 +#: src/slic3r/GUI/Plater.cpp:2799 msgid "Export OBJ file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2800 +#: src/slic3r/GUI/Plater.cpp:2896 msgid "Delete Object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2811 +#: src/slic3r/GUI/Plater.cpp:2907 msgid "Delete All Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2837 +#: src/slic3r/GUI/Plater.cpp:2933 msgid "Reset Project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2918 +#: src/slic3r/GUI/Plater.cpp:3014 msgid "" "The selected object couldn't be split because it contains only one solid " "part." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2925 +#: src/slic3r/GUI/Plater.cpp:3021 msgid "All non-solid parts (modifiers) were deleted" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2927 +#: src/slic3r/GUI/Plater.cpp:3023 msgid "Split to Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2983 +#: src/slic3r/GUI/Plater.cpp:3086 msgid "" "An object has custom support enforcers which will not be used because " "supports are disabled." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2985 +#: src/slic3r/GUI/Plater.cpp:3088 msgid "Enable supports for enforcers only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3115 src/slic3r/GUI/Plater.cpp:4078 +#: src/slic3r/GUI/Plater.cpp:3217 src/slic3r/GUI/Plater.cpp:4134 msgid "Invalid data" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3185 +#: src/slic3r/GUI/Plater.cpp:3287 msgid "Another export job is currently running." msgstr "" -#: src/slic3r/GUI/Plater.cpp:3243 src/slic3r/GUI/Plater.cpp:3350 +#: src/slic3r/GUI/Plater.cpp:3346 src/slic3r/GUI/Plater.cpp:3453 msgid "Replace from:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3259 src/slic3r/GUI/Plater.cpp:3366 +#: src/slic3r/GUI/Plater.cpp:3362 src/slic3r/GUI/Plater.cpp:3469 msgid "Unable to replace with more than one volume" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3259 src/slic3r/GUI/Plater.cpp:3339 -#: src/slic3r/GUI/Plater.cpp:3366 +#: src/slic3r/GUI/Plater.cpp:3362 src/slic3r/GUI/Plater.cpp:3442 +#: src/slic3r/GUI/Plater.cpp:3469 msgid "Error during replace" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3331 -msgid "Please select the file to replace" +#: src/slic3r/GUI/Plater.cpp:3434 +msgid "Select the new file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3339 +#: src/slic3r/GUI/Plater.cpp:3442 msgid "File for the replace wasn't selected" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3501 +#: src/slic3r/GUI/Plater.cpp:3604 msgid "Please select the file to reload" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3533 src/slic3r/GUI/Plater.cpp:5122 +#: src/slic3r/GUI/Plater.cpp:3636 src/slic3r/GUI/Plater.cpp:5186 msgid "The selected file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3534 +#: src/slic3r/GUI/Plater.cpp:3637 msgid "differs from the original file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3534 +#: src/slic3r/GUI/Plater.cpp:3637 msgid "Do you want to replace it" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3541 +#: src/slic3r/GUI/Plater.cpp:3644 msgid "It is not allowed to change the file to reload" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3541 +#: src/slic3r/GUI/Plater.cpp:3644 msgid "Do you want to retry" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3565 +#: src/slic3r/GUI/Plater.cpp:3668 msgid "Reload from:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3667 +#: src/slic3r/GUI/Plater.cpp:3770 msgid "Unable to reload:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3672 +#: src/slic3r/GUI/Plater.cpp:3775 msgid "Error during reload" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3690 +#: src/slic3r/GUI/Plater.cpp:3793 msgid "Reload all from disk" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3724 -msgid "" -"Processing model '@object_name' with more than 1M triangles could be slow. " -"It is highly recommend to reduce amount of triangles." -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4032 +#: src/slic3r/GUI/Plater.cpp:4088 msgid "There are active warnings concerning sliced models:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4043 +#: src/slic3r/GUI/Plater.cpp:4099 msgid "generated warnings" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4367 +#: src/slic3r/GUI/Plater.cpp:4430 msgid "3D editor view" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4782 +#: src/slic3r/GUI/Plater.cpp:4845 msgid "Undo / Redo is processing" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4784 +#: src/slic3r/GUI/Plater.cpp:4847 msgid "" "Switching the printer technology from %1% to %2%.\n" "Some %1% presets were modified, which will be lost after switching the " "printer technology." msgstr "" -#: src/slic3r/GUI/Plater.cpp:4980 +#: src/slic3r/GUI/Plater.cpp:5043 msgid "Creating a new project while the current project is modified." msgstr "" -#: src/slic3r/GUI/Plater.cpp:4983 +#: src/slic3r/GUI/Plater.cpp:5046 msgid "Creating a new project while some presets are modified." msgstr "" -#: src/slic3r/GUI/Plater.cpp:4984 +#: src/slic3r/GUI/Plater.cpp:5047 msgid "You can keep presets modifications to the new project or discard them" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4985 +#: src/slic3r/GUI/Plater.cpp:5048 msgid "" "You can keep presets modifications to the new project, discard them or save " "changes as new presets.\n" "Note, if changes will be saved than new project wouldn't keep them" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4991 -msgid "New Project is creating" +#: src/slic3r/GUI/Plater.cpp:5054 +msgid "Creating a new project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5021 +#: src/slic3r/GUI/Plater.cpp:5085 msgid "Load Project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5047 src/slic3r/GUI/Plater.cpp:5306 +#: src/slic3r/GUI/Plater.cpp:5111 src/slic3r/GUI/Plater.cpp:5370 msgid "Import Object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5051 +#: src/slic3r/GUI/Plater.cpp:5115 msgid "Import Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5122 +#: src/slic3r/GUI/Plater.cpp:5186 msgid "does not contain valid gcode." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5123 +#: src/slic3r/GUI/Plater.cpp:5187 msgid "Error while loading .gcode file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5176 +#: src/slic3r/GUI/Plater.cpp:5240 #, possible-c-format msgid "%s - Drop project file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5183 +#: src/slic3r/GUI/Plater.cpp:5247 msgid "Open as project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5184 +#: src/slic3r/GUI/Plater.cpp:5248 msgid "Import geometry only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5185 +#: src/slic3r/GUI/Plater.cpp:5249 msgid "Import config only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5188 +#: src/slic3r/GUI/Plater.cpp:5252 msgid "Select an action to apply to the file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5193 +#: src/slic3r/GUI/Plater.cpp:5257 msgid "Action" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5209 +#: src/slic3r/GUI/Plater.cpp:5273 msgid "Don't show again" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5250 +#: src/slic3r/GUI/Plater.cpp:5314 msgid "You can open only one .gcode file at a time." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5251 +#: src/slic3r/GUI/Plater.cpp:5315 msgid "Drag and drop G-code file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5328 +#: src/slic3r/GUI/Plater.cpp:5392 msgid "Load File" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5333 +#: src/slic3r/GUI/Plater.cpp:5397 msgid "Load Files" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5378 +#: src/slic3r/GUI/Plater.cpp:5442 msgid "All objects will be removed, continue?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5389 +#: src/slic3r/GUI/Plater.cpp:5453 msgid "Delete Selected Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5397 +#: src/slic3r/GUI/Plater.cpp:5461 msgid "Increase Instances" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5431 +#: src/slic3r/GUI/Plater.cpp:5495 msgid "Decrease Instances" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5482 +#: src/slic3r/GUI/Plater.cpp:5546 msgid "Enter the number of copies:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5483 +#: src/slic3r/GUI/Plater.cpp:5547 msgid "Copies of the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5487 +#: src/slic3r/GUI/Plater.cpp:5551 #, possible-c-format msgid "Set numbers of copies to %d" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5560 +#: src/slic3r/GUI/Plater.cpp:5624 msgid "Cut by Plane" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5620 +#: src/slic3r/GUI/Plater.cpp:5684 msgid "Save G-code file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5620 +#: src/slic3r/GUI/Plater.cpp:5684 msgid "Save SL1 / SL1S file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5817 +#: src/slic3r/GUI/Plater.cpp:5881 msgid "" "The plater is empty.\n" -"Confirm you want to save the project ?" +"Do you want to save the project?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5817 +#: src/slic3r/GUI/Plater.cpp:5881 msgid "Save project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:6415 +#: src/slic3r/GUI/Plater.cpp:6482 msgid "Export" msgstr "" -#: src/slic3r/GUI/Plater.cpp:6449 +#: src/slic3r/GUI/Plater.cpp:6516 msgid "" "Custom supports, seams and multimaterial painting were removed after " "repairing the mesh." msgstr "" -#: src/slic3r/GUI/Plater.cpp:6563 +#: src/slic3r/GUI/Plater.cpp:6630 msgid "Paste From Clipboard" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:74 src/slic3r/GUI/Tab.cpp:2214 -#: src/slic3r/GUI/Tab.cpp:2437 src/slic3r/GUI/Tab.cpp:2547 +#: src/slic3r/GUI/Preferences.cpp:107 src/slic3r/GUI/Tab.cpp:2227 +#: src/slic3r/GUI/Tab.cpp:2450 src/slic3r/GUI/Tab.cpp:2560 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1279 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1667 msgid "General" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:87 +#: src/slic3r/GUI/Preferences.cpp:120 msgid "Remember output directory" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:89 +#: src/slic3r/GUI/Preferences.cpp:122 msgid "" "If this is enabled, Slic3r will prompt the last output directory instead of " "the one containing the input files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:95 +#: src/slic3r/GUI/Preferences.cpp:128 msgid "Auto-center parts" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:97 +#: src/slic3r/GUI/Preferences.cpp:130 msgid "" "If this is enabled, Slic3r will auto-center objects around the print bed " "center." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:103 +#: src/slic3r/GUI/Preferences.cpp:136 msgid "Background processing" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:105 +#: src/slic3r/GUI/Preferences.cpp:138 msgid "" "If this is enabled, Slic3r will pre-process objects as soon as they're " "loaded in order to save time when exporting G-code." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:114 -msgid "" -"If enabled, PrusaSlicer will check for the new versions of itself online. " -"When a new version becomes available a notification is displayed at the next " -"application startup (never during program usage). This is only a " -"notification mechanisms, no automatic installation is done." -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:120 +#: src/slic3r/GUI/Preferences.cpp:147 msgid "Export sources full pathnames to 3mf and amf" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:122 +#: src/slic3r/GUI/Preferences.cpp:149 msgid "" "If enabled, allows the Reload from disk command to automatically find and " "load the files when invoked." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:131 +#: src/slic3r/GUI/Preferences.cpp:158 msgid "If enabled, sets PrusaSlicer as default application to open .3mf files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:138 +#: src/slic3r/GUI/Preferences.cpp:165 msgid "If enabled, sets PrusaSlicer as default application to open .stl files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:147 +#: src/slic3r/GUI/Preferences.cpp:176 msgid "" "If enabled, Slic3r downloads updates of built-in system presets in the " "background. These updates are downloaded into a separate temporary location. " @@ -6799,209 +6922,211 @@ msgid "" "startup." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:152 +#: src/slic3r/GUI/Preferences.cpp:181 msgid "Suppress \" - default - \" presets" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:154 +#: src/slic3r/GUI/Preferences.cpp:183 msgid "" "Suppress \" - default - \" presets in the Print / Filament / Printer " "selections once there are any other valid presets available." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:160 +#: src/slic3r/GUI/Preferences.cpp:189 msgid "Show incompatible print and filament presets" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:162 +#: src/slic3r/GUI/Preferences.cpp:191 msgid "" "When checked, the print and filament presets are shown in the preset editor " "even if they are marked as incompatible with the active printer" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:168 +#: src/slic3r/GUI/Preferences.cpp:199 msgid "Show drop project dialog" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:170 +#: src/slic3r/GUI/Preferences.cpp:201 msgid "" "When checked, whenever dragging and dropping a project file on the " "application, shows a dialog asking to select the action to take on the file " "to load." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:177 src/slic3r/GUI/Preferences.cpp:181 +#: src/slic3r/GUI/Preferences.cpp:207 src/slic3r/GUI/Preferences.cpp:211 msgid "Allow just a single PrusaSlicer instance" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:179 +#: src/slic3r/GUI/Preferences.cpp:209 msgid "" "On OSX there is always only one instance of app running by default. However " "it is allowed to run multiple instances of same app from the command line. " "In such case this settings will allow only one instance." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:183 +#: src/slic3r/GUI/Preferences.cpp:213 msgid "" "If this is enabled, when starting PrusaSlicer and another instance of the " "same PrusaSlicer is already running, that instance will be reactivated " "instead." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:189 -msgid "Ask for unsaved changes when closing application or loading new project" +#: src/slic3r/GUI/Preferences.cpp:221 +msgid "" +"Ask to save unsaved changes when closing the application or when loading a " +"new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:191 +#: src/slic3r/GUI/Preferences.cpp:223 msgid "" "Always ask for unsaved changes, when: \n" "- Closing PrusaSlicer while some presets are modified,\n" "- Loading a new project while some presets are modified" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:198 +#: src/slic3r/GUI/Preferences.cpp:230 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:895 msgid "Ask for unsaved changes when selecting new preset" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:200 +#: src/slic3r/GUI/Preferences.cpp:232 msgid "" "Always ask for unsaved changes when selecting new preset or resetting a " "preset" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:205 +#: src/slic3r/GUI/Preferences.cpp:237 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:894 msgid "Ask for unsaved changes when creating new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:207 +#: src/slic3r/GUI/Preferences.cpp:239 msgid "Always ask for unsaved changes when creating new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:214 +#: src/slic3r/GUI/Preferences.cpp:246 msgid "Associate .gcode files to PrusaSlicer G-code Viewer" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:216 +#: src/slic3r/GUI/Preferences.cpp:248 msgid "" "If enabled, sets PrusaSlicer G-code Viewer as default application to open ." "gcode files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:224 +#: src/slic3r/GUI/Preferences.cpp:256 msgid "Use Retina resolution for the 3D scene" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:226 +#: src/slic3r/GUI/Preferences.cpp:258 msgid "" "If enabled, the 3D scene will be rendered in Retina resolution. If you are " "experiencing 3D performance problems, disabling this option may help." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:234 src/slic3r/GUI/Preferences.cpp:236 +#: src/slic3r/GUI/Preferences.cpp:268 src/slic3r/GUI/Preferences.cpp:270 msgid "Show splash screen" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:242 +#: src/slic3r/GUI/Preferences.cpp:276 msgid "Clear Undo / Redo stack on new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:244 +#: src/slic3r/GUI/Preferences.cpp:278 msgid "" "Clear Undo / Redo stack on new project or when an existing project is loaded." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:250 +#: src/slic3r/GUI/Preferences.cpp:284 msgid "Enable support for legacy 3DConnexion devices" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:252 +#: src/slic3r/GUI/Preferences.cpp:286 msgid "" "If enabled, the legacy 3DConnexion devices settings dialog is available by " "pressing CTRL+M" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:261 +#: src/slic3r/GUI/Preferences.cpp:295 msgid "Camera" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:266 +#: src/slic3r/GUI/Preferences.cpp:300 msgid "Use perspective camera" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:268 +#: src/slic3r/GUI/Preferences.cpp:302 msgid "" "If enabled, use perspective camera. If not enabled, use orthographic camera." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:273 +#: src/slic3r/GUI/Preferences.cpp:307 msgid "Use free camera" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:275 +#: src/slic3r/GUI/Preferences.cpp:309 msgid "If enabled, use free camera. If not enabled, use constrained camera." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:280 +#: src/slic3r/GUI/Preferences.cpp:314 msgid "Reverse direction of zoom with mouse wheel" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:282 +#: src/slic3r/GUI/Preferences.cpp:316 msgid "If enabled, reverses the direction of zoom with mouse wheel" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:290 +#: src/slic3r/GUI/Preferences.cpp:324 msgid "GUI" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:305 +#: src/slic3r/GUI/Preferences.cpp:347 msgid "Sequential slider applied only to top layer" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:307 +#: src/slic3r/GUI/Preferences.cpp:349 msgid "" "If enabled, changes made using the sequential slider, in preview, apply only " "to gcode top layer.If disabled, changes made using the sequential slider, in " "preview, apply to the whole gcode." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:314 +#: src/slic3r/GUI/Preferences.cpp:356 msgid "Show sidebar collapse/expand button" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:316 +#: src/slic3r/GUI/Preferences.cpp:358 msgid "" "If enabled, the button for the collapse sidebar will be appeared in top " "right corner of the 3D Scene" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:321 +#: src/slic3r/GUI/Preferences.cpp:363 msgid "Suppress to open hyperlink in browser" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:323 +#: src/slic3r/GUI/Preferences.cpp:365 msgid "" "If enabled, the descriptions of configuration parameters in settings tabs " "wouldn't work as hyperlinks. If disabled, the descriptions of configuration " "parameters in settings tabs will work as hyperlinks." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:329 +#: src/slic3r/GUI/Preferences.cpp:371 msgid "Use colors for axes values in Manipulation panel" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:331 +#: src/slic3r/GUI/Preferences.cpp:373 msgid "" "If enabled, the axes names and axes values will be colorized according to " "the axes colors. If disabled, old UI will be used." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:337 +#: src/slic3r/GUI/Preferences.cpp:379 msgid "Order object volumes by types" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:339 +#: src/slic3r/GUI/Preferences.cpp:381 msgid "" "If enabled, volumes will be always ordered inside the object. Correct order " "is Model Part, Negative Volume, Modifier, Support Blocker and Support " @@ -7009,103 +7134,132 @@ msgid "" "Modifiers. But one of the model parts have to be on the first place." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:346 -msgid "Use Dark color mode (experimental)" -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:348 -msgid "" -"If enabled, UI will use Dark mode colors. If disabled, old UI will be used." -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:354 +#: src/slic3r/GUI/Preferences.cpp:388 msgid "Set settings tabs as menu items (experimental)" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:356 +#: src/slic3r/GUI/Preferences.cpp:390 msgid "" "If enabled, Settings Tabs will be placed as menu items. If disabled, old UI " "will be used." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:363 +#: src/slic3r/GUI/Preferences.cpp:399 msgid "Show \"Tip of the day\" notification after start" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:365 +#: src/slic3r/GUI/Preferences.cpp:401 msgid "If enabled, useful hints are displayed at startup." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:370 +#: src/slic3r/GUI/Preferences.cpp:407 +msgid "Notify about new releases" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:409 +msgid "" +"You will be notified about new release after startup acordingly: All = " +"Regular release and alpha / beta releases. Release only = regular release." +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:415 +msgid "Release only" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:424 msgid "Use custom size for toolbar icons" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:372 +#: src/slic3r/GUI/Preferences.cpp:426 msgid "If enabled, you can change size of toolbar icons manually." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:391 +#: src/slic3r/GUI/Preferences.cpp:451 msgid "Render" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:396 +#: src/slic3r/GUI/Preferences.cpp:456 msgid "Use environment map" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:398 +#: src/slic3r/GUI/Preferences.cpp:458 msgid "If enabled, renders object using the environment map." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:436 -msgid "Changes for the critical options" +#: src/slic3r/GUI/Preferences.cpp:471 +msgid "Dark mode IU (experimental)" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:438 +#: src/slic3r/GUI/Preferences.cpp:476 +msgid "Enable dark mode" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:478 msgid "" -"Changing fo some options will trigger application restart.\n" -"You will lose content of the plater." +"If enabled, UI will use Dark mode colors. If disabled, old UI will be used." +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:484 +msgid "Use system menu for application" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:486 +msgid "" +"If enabled, application will use standart Windows system menu,\n" +"but on some combination od display scales it can looks ugly. If disabled, " +"old UI will be used." msgstr "" #: src/slic3r/GUI/Preferences.cpp:543 +msgid "Changes for the critical options" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:545 +msgid "" +"Changing some options will trigger application restart.\n" +"You will lose the content of the plater." +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:653 msgid "Icon size in a respect to the default size" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:558 +#: src/slic3r/GUI/Preferences.cpp:668 msgid "Select toolbar icon size in respect to the default one." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:592 src/slic3r/GUI/Preferences.cpp:603 +#: src/slic3r/GUI/Preferences.cpp:702 src/slic3r/GUI/Preferences.cpp:713 msgid "Old regular layout with the tab bar" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:593 +#: src/slic3r/GUI/Preferences.cpp:703 msgid "New layout, access via settings button in the top menu" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:594 src/slic3r/GUI/Preferences.cpp:604 +#: src/slic3r/GUI/Preferences.cpp:704 src/slic3r/GUI/Preferences.cpp:714 msgid "Settings in non-modal window" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:612 +#: src/slic3r/GUI/Preferences.cpp:722 msgid "Layout Options" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:655 -msgid "Text color Settings" +#: src/slic3r/GUI/Preferences.cpp:765 +msgid "Text colors" msgstr "" #: src/slic3r/GUI/PresetComboBoxes.cpp:249 #: src/slic3r/GUI/PresetComboBoxes.cpp:287 -#: src/slic3r/GUI/PresetComboBoxes.cpp:778 -#: src/slic3r/GUI/PresetComboBoxes.cpp:828 -#: src/slic3r/GUI/PresetComboBoxes.cpp:968 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1012 +#: src/slic3r/GUI/PresetComboBoxes.cpp:794 +#: src/slic3r/GUI/PresetComboBoxes.cpp:846 +#: src/slic3r/GUI/PresetComboBoxes.cpp:986 +#: src/slic3r/GUI/PresetComboBoxes.cpp:1030 msgid "System presets" msgstr "" #: src/slic3r/GUI/PresetComboBoxes.cpp:291 -#: src/slic3r/GUI/PresetComboBoxes.cpp:832 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1016 +#: src/slic3r/GUI/PresetComboBoxes.cpp:850 +#: src/slic3r/GUI/PresetComboBoxes.cpp:1034 msgid "User presets" msgstr "" @@ -7121,47 +7275,51 @@ msgstr "" msgid "Delete Physical Printer" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:601 +#: src/slic3r/GUI/PresetComboBoxes.cpp:581 msgid "Click to edit preset" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:691 -#: src/slic3r/GUI/PresetComboBoxes.cpp:721 +#: src/slic3r/GUI/PresetComboBoxes.cpp:697 +#: src/slic3r/GUI/PresetComboBoxes.cpp:737 msgid "Add/Remove presets" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:696 -#: src/slic3r/GUI/PresetComboBoxes.cpp:726 src/slic3r/GUI/Tab.cpp:3168 +#: src/slic3r/GUI/PresetComboBoxes.cpp:702 +#: src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3181 msgid "Add physical printer" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:710 +#: src/slic3r/GUI/PresetComboBoxes.cpp:716 msgid "Edit preset" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:714 src/slic3r/GUI/Tab.cpp:3168 +#: src/slic3r/GUI/PresetComboBoxes.cpp:722 +msgid "Change extruder color" +msgstr "" + +#: src/slic3r/GUI/PresetComboBoxes.cpp:730 src/slic3r/GUI/Tab.cpp:3181 msgid "Edit physical printer" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:717 +#: src/slic3r/GUI/PresetComboBoxes.cpp:733 msgid "Delete physical printer" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:843 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1030 +#: src/slic3r/GUI/PresetComboBoxes.cpp:861 +#: src/slic3r/GUI/PresetComboBoxes.cpp:1048 msgid "Physical printers" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:867 +#: src/slic3r/GUI/PresetComboBoxes.cpp:885 msgid "Add/Remove filaments" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:869 +#: src/slic3r/GUI/PresetComboBoxes.cpp:887 msgid "Add/Remove materials" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:871 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1054 +#: src/slic3r/GUI/PresetComboBoxes.cpp:889 +#: src/slic3r/GUI/PresetComboBoxes.cpp:1072 msgid "Add/Remove printers" msgstr "" @@ -7172,149 +7330,155 @@ msgid "" "(however, speed will never be reduced below %4%mm/s)." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:39 +#: src/slic3r/GUI/PresetHints.cpp:40 msgid "" "If estimated layer time is greater, but still below ~%1%s, fan will run at a " "proportionally decreasing speed between %2%%% and %3%%%." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:49 -msgid "Fan speed will be ramped from zero at layer %1% to %2%%% at layer %3%." -msgstr "" - -#: src/slic3r/GUI/PresetHints.cpp:51 -msgid "During the other layers, fan will always run at %1%%%" -msgstr "" - -#: src/slic3r/GUI/PresetHints.cpp:51 -msgid "Fan will always run at %1%%%" -msgstr "" - -#: src/slic3r/GUI/PresetHints.cpp:53 -msgid "except for the first %1% layers." +#: src/slic3r/GUI/PresetHints.cpp:44 +msgid "" +"If estimated layer time is greater, but still below ~%1%s, fan will run at " +"%2%%%" msgstr "" #: src/slic3r/GUI/PresetHints.cpp:55 +msgid "Fan speed will be ramped from zero at layer %1% to %2%%% at layer %3%." +msgstr "" + +#: src/slic3r/GUI/PresetHints.cpp:57 +msgid "During the other layers, fan will always run at %1%%%" +msgstr "" + +#: src/slic3r/GUI/PresetHints.cpp:57 +msgid "Fan will always run at %1%%%" +msgstr "" + +#: src/slic3r/GUI/PresetHints.cpp:59 +msgid "except for the first %1% layers." +msgstr "" + +#: src/slic3r/GUI/PresetHints.cpp:61 msgid "except for the first layer." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:58 +#: src/slic3r/GUI/PresetHints.cpp:64 msgid "During the other layers, fan will be turned off." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:58 +#: src/slic3r/GUI/PresetHints.cpp:64 msgid "Fan will be turned off." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:164 +#: src/slic3r/GUI/PresetHints.cpp:170 msgid "external perimeters" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:165 +#: src/slic3r/GUI/PresetHints.cpp:171 msgid "perimeters" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:168 +#: src/slic3r/GUI/PresetHints.cpp:174 msgid "infill" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:170 +#: src/slic3r/GUI/PresetHints.cpp:176 msgid "solid infill" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:172 +#: src/slic3r/GUI/PresetHints.cpp:178 msgid "top solid infill" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:175 +#: src/slic3r/GUI/PresetHints.cpp:181 msgid "support" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:177 +#: src/slic3r/GUI/PresetHints.cpp:183 msgid "support interface" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:181 +#: src/slic3r/GUI/PresetHints.cpp:187 msgid "First layer volumetric" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:181 +#: src/slic3r/GUI/PresetHints.cpp:187 msgid "Bridging volumetric" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:181 +#: src/slic3r/GUI/PresetHints.cpp:187 msgid "Volumetric" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:182 +#: src/slic3r/GUI/PresetHints.cpp:188 msgid "flow rate is maximized" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:185 +#: src/slic3r/GUI/PresetHints.cpp:191 msgid "by the print profile maximum" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:186 +#: src/slic3r/GUI/PresetHints.cpp:192 msgid "when printing" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:187 +#: src/slic3r/GUI/PresetHints.cpp:193 msgid "with a volumetric rate" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:191 +#: src/slic3r/GUI/PresetHints.cpp:197 #, possible-c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:209 +#: src/slic3r/GUI/PresetHints.cpp:215 msgid "" "Recommended object thin wall thickness: Not available due to invalid layer " "height." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:215 +#: src/slic3r/GUI/PresetHints.cpp:221 #, possible-c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:230 +#: src/slic3r/GUI/PresetHints.cpp:236 #, possible-c-format msgid "%d lines: %.2f mm" msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:234 +#: src/slic3r/GUI/PresetHints.cpp:240 msgid "" "Recommended object thin wall thickness: Not available due to excessively " "small extrusion width." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:263 +#: src/slic3r/GUI/PresetHints.cpp:269 msgid "" "Top / bottom shell thickness hint: Not available due to invalid layer height." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:276 +#: src/slic3r/GUI/PresetHints.cpp:282 msgid "Top shell is %1% mm thick for layer height %2% mm." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:279 +#: src/slic3r/GUI/PresetHints.cpp:285 msgid "Minimum top shell thickness is %1% mm." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:282 +#: src/slic3r/GUI/PresetHints.cpp:288 msgid "Top is open." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:295 +#: src/slic3r/GUI/PresetHints.cpp:301 msgid "Bottom shell is %1% mm thick for layer height %2% mm." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:298 +#: src/slic3r/GUI/PresetHints.cpp:304 msgid "Minimum bottom shell thickness is %1% mm." msgstr "" -#: src/slic3r/GUI/PresetHints.cpp:301 +#: src/slic3r/GUI/PresetHints.cpp:307 msgid "Bottom is open." msgstr "" @@ -7326,82 +7490,87 @@ msgstr "" msgid "Upload to Printer Host with the following filename:" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:44 -msgid "Start printing after upload" -msgstr "" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:52 +#: src/slic3r/GUI/PrintHostDialogs.cpp:51 msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:65 +#: src/slic3r/GUI/PrintHostDialogs.cpp:60 msgid "Group" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:97 +#: src/slic3r/GUI/PrintHostDialogs.cpp:83 +msgid "Upload and Print" +msgstr "" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:89 +#: src/slic3r/GUI/PrintHostDialogs.cpp:106 #, possible-c-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:230 +#: src/slic3r/GUI/PrintHostDialogs.cpp:100 +msgid "Upload" +msgstr "" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:238 msgid "ID" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:231 +#: src/slic3r/GUI/PrintHostDialogs.cpp:239 msgid "Progress" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:232 +#: src/slic3r/GUI/PrintHostDialogs.cpp:240 msgid "Status" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:233 +#: src/slic3r/GUI/PrintHostDialogs.cpp:241 msgid "Host" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:234 +#: src/slic3r/GUI/PrintHostDialogs.cpp:242 msgctxt "OfFile" msgid "Size" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:235 +#: src/slic3r/GUI/PrintHostDialogs.cpp:243 msgid "Filename" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:236 +#: src/slic3r/GUI/PrintHostDialogs.cpp:244 msgid "Error Message" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:239 +#: src/slic3r/GUI/PrintHostDialogs.cpp:247 msgid "Cancel selected" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:241 +#: src/slic3r/GUI/PrintHostDialogs.cpp:249 msgid "Show error message" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:299 -#: src/slic3r/GUI/PrintHostDialogs.cpp:346 +#: src/slic3r/GUI/PrintHostDialogs.cpp:307 +#: src/slic3r/GUI/PrintHostDialogs.cpp:362 msgid "Enqueued" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:347 +#: src/slic3r/GUI/PrintHostDialogs.cpp:363 msgid "Uploading" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:349 +#: src/slic3r/GUI/PrintHostDialogs.cpp:365 msgid "Cancelling" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:350 +#: src/slic3r/GUI/PrintHostDialogs.cpp:366 msgid "Cancelled" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:351 +#: src/slic3r/GUI/PrintHostDialogs.cpp:367 msgid "Completed" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:399 +#: src/slic3r/GUI/PrintHostDialogs.cpp:415 msgid "Error uploading to print host:" msgstr "" @@ -7411,11 +7580,11 @@ msgstr "" #: src/slic3r/GUI/RammingChart.cpp:90 src/slic3r/GUI/WipeTowerDialog.cpp:114 #: src/libslic3r/PrintConfig.cpp:916 src/libslic3r/PrintConfig.cpp:960 -#: src/libslic3r/PrintConfig.cpp:975 src/libslic3r/PrintConfig.cpp:3105 -#: src/libslic3r/PrintConfig.cpp:3114 src/libslic3r/PrintConfig.cpp:3224 -#: src/libslic3r/PrintConfig.cpp:3232 src/libslic3r/PrintConfig.cpp:3240 -#: src/libslic3r/PrintConfig.cpp:3247 src/libslic3r/PrintConfig.cpp:3255 -#: src/libslic3r/PrintConfig.cpp:3263 +#: src/libslic3r/PrintConfig.cpp:975 src/libslic3r/PrintConfig.cpp:3108 +#: src/libslic3r/PrintConfig.cpp:3117 src/libslic3r/PrintConfig.cpp:3234 +#: src/libslic3r/PrintConfig.cpp:3242 src/libslic3r/PrintConfig.cpp:3250 +#: src/libslic3r/PrintConfig.cpp:3257 src/libslic3r/PrintConfig.cpp:3265 +#: src/libslic3r/PrintConfig.cpp:3273 msgid "s" msgstr "" @@ -7424,7 +7593,7 @@ msgid "Volumetric speed" msgstr "" #: src/slic3r/GUI/RammingChart.cpp:95 src/libslic3r/PrintConfig.cpp:873 -#: src/libslic3r/PrintConfig.cpp:1749 +#: src/libslic3r/PrintConfig.cpp:1751 msgid "mm³/s" msgstr "" @@ -7512,61 +7681,61 @@ msgid "Just switch to \"%1%\" preset" msgstr "" #: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 -#: src/slic3r/GUI/Tab.cpp:2575 +#: src/slic3r/GUI/Tab.cpp:2588 msgid "Stealth" msgstr "" #: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 -#: src/slic3r/GUI/Tab.cpp:2569 +#: src/slic3r/GUI/Tab.cpp:2582 msgid "Normal" msgstr "" -#: src/slic3r/GUI/Selection.cpp:166 +#: src/slic3r/GUI/Selection.cpp:169 msgid "Selection-Add" msgstr "" -#: src/slic3r/GUI/Selection.cpp:207 +#: src/slic3r/GUI/Selection.cpp:210 msgid "Selection-Remove" msgstr "" -#: src/slic3r/GUI/Selection.cpp:239 +#: src/slic3r/GUI/Selection.cpp:242 msgid "Selection-Add Object" msgstr "" -#: src/slic3r/GUI/Selection.cpp:258 +#: src/slic3r/GUI/Selection.cpp:261 msgid "Selection-Remove Object" msgstr "" -#: src/slic3r/GUI/Selection.cpp:276 +#: src/slic3r/GUI/Selection.cpp:279 msgid "Selection-Add Instance" msgstr "" -#: src/slic3r/GUI/Selection.cpp:295 +#: src/slic3r/GUI/Selection.cpp:298 msgid "Selection-Remove Instance" msgstr "" -#: src/slic3r/GUI/Selection.cpp:392 +#: src/slic3r/GUI/Selection.cpp:395 msgid "Selection-Add All" msgstr "" -#: src/slic3r/GUI/Selection.cpp:417 +#: src/slic3r/GUI/Selection.cpp:420 msgid "Selection-Remove All" msgstr "" -#: src/slic3r/GUI/Selection.cpp:952 +#: src/slic3r/GUI/Selection.cpp:982 msgid "Scale To Fit" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:103 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:114 msgid "Data to send" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:453 -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:526 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:550 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:621 msgid "Send system info" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:485 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:584 msgid "" "This is the first time you are running %1%. We would like to ask you to send " "some of your system information to us. This will only happen once and we " @@ -7574,18 +7743,18 @@ msgid "" "version)." msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:489 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:588 msgid "" "If we know your hardware, operating system, etc., it will greatly help us in " "development and prioritization, because we will be able to focus our effort " "more efficiently and spend time on features that are needed the most." msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:492 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:591 msgid "Is it safe?" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:494 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:593 msgid "" "We do not send any personal information nor anything that would allow us to " "identify you later. To detect duplicate entries, a unique number derived " @@ -7595,31 +7764,31 @@ msgid "" "inspect the code actually performing the communication, see %1%." msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:501 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:617 msgid "Show verbatim data that will be sent" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:524 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:619 msgid "Ask me next time" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:525 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:620 msgid "Do not send anything" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:600 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:703 msgid "System info sent successfully. Thank you." msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:603 -msgid "Sending system info failed! Status: %1%" +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:706 +msgid "Sending system info failed!" msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:609 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:713 msgid "Sending system info was cancelled." msgstr "" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:616 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:720 msgid "Sending system info..." msgstr "" @@ -7763,7 +7932,7 @@ msgstr "" msgid "symbolic profile name" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1434 src/slic3r/GUI/Tab.cpp:4262 +#: src/slic3r/GUI/Tab.cpp:1434 src/slic3r/GUI/Tab.cpp:4282 msgid "Layers and perimeters" msgstr "" @@ -7775,7 +7944,7 @@ msgstr "" msgid "Horizontal shells" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1453 src/libslic3r/PrintConfig.cpp:2318 +#: src/slic3r/GUI/Tab.cpp:1453 src/libslic3r/PrintConfig.cpp:2320 msgid "Solid layers" msgstr "" @@ -7795,103 +7964,103 @@ msgstr "" msgid "Reducing printing time" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1520 src/libslic3r/ExtrusionEntity.cpp:352 +#: src/slic3r/GUI/Tab.cpp:1521 src/libslic3r/ExtrusionEntity.cpp:358 msgid "Skirt" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1542 +#: src/slic3r/GUI/Tab.cpp:1543 msgid "Raft" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1547 +#: src/slic3r/GUI/Tab.cpp:1548 msgid "Options for support material and raft" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1567 +#: src/slic3r/GUI/Tab.cpp:1568 msgid "Speed for print moves" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1580 +#: src/slic3r/GUI/Tab.cpp:1581 msgid "Speed for non-print moves" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1584 +#: src/slic3r/GUI/Tab.cpp:1585 msgid "Modifiers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1588 +#: src/slic3r/GUI/Tab.cpp:1589 msgid "Acceleration control (advanced)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1596 +#: src/slic3r/GUI/Tab.cpp:1597 msgid "Autospeed (advanced)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1604 +#: src/slic3r/GUI/Tab.cpp:1605 msgid "Multiple Extruders" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1612 +#: src/slic3r/GUI/Tab.cpp:1613 msgid "Ooze prevention" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1632 +#: src/slic3r/GUI/Tab.cpp:1633 msgid "Extrusion width" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1642 +#: src/slic3r/GUI/Tab.cpp:1643 msgid "Overlap" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1645 +#: src/slic3r/GUI/Tab.cpp:1646 msgid "Flow" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1655 +#: src/slic3r/GUI/Tab.cpp:1656 msgid "Other" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1658 src/slic3r/GUI/Tab.cpp:4339 +#: src/slic3r/GUI/Tab.cpp:1659 src/slic3r/GUI/Tab.cpp:4359 msgid "Output options" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1659 +#: src/slic3r/GUI/Tab.cpp:1660 msgid "Sequential printing" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1661 +#: src/slic3r/GUI/Tab.cpp:1662 msgid "Extruder clearance" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1666 src/slic3r/GUI/Tab.cpp:4340 +#: src/slic3r/GUI/Tab.cpp:1667 src/slic3r/GUI/Tab.cpp:4360 msgid "Output file" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1673 src/libslic3r/PrintConfig.cpp:1956 +#: src/slic3r/GUI/Tab.cpp:1674 src/libslic3r/PrintConfig.cpp:1958 msgid "Post-processing scripts" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1679 src/slic3r/GUI/Tab.cpp:1680 -#: src/slic3r/GUI/Tab.cpp:2034 src/slic3r/GUI/Tab.cpp:2035 -#: src/slic3r/GUI/Tab.cpp:2418 src/slic3r/GUI/Tab.cpp:2419 -#: src/slic3r/GUI/Tab.cpp:2494 src/slic3r/GUI/Tab.cpp:2495 -#: src/slic3r/GUI/Tab.cpp:4202 src/slic3r/GUI/Tab.cpp:4203 +#: src/slic3r/GUI/Tab.cpp:1680 src/slic3r/GUI/Tab.cpp:1681 +#: src/slic3r/GUI/Tab.cpp:2047 src/slic3r/GUI/Tab.cpp:2048 +#: src/slic3r/GUI/Tab.cpp:2431 src/slic3r/GUI/Tab.cpp:2432 +#: src/slic3r/GUI/Tab.cpp:2507 src/slic3r/GUI/Tab.cpp:2508 +#: src/slic3r/GUI/Tab.cpp:4222 src/slic3r/GUI/Tab.cpp:4223 msgid "Notes" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1686 src/slic3r/GUI/Tab.cpp:2042 -#: src/slic3r/GUI/Tab.cpp:2425 src/slic3r/GUI/Tab.cpp:2501 -#: src/slic3r/GUI/Tab.cpp:4210 src/slic3r/GUI/Tab.cpp:4345 +#: src/slic3r/GUI/Tab.cpp:1687 src/slic3r/GUI/Tab.cpp:2055 +#: src/slic3r/GUI/Tab.cpp:2438 src/slic3r/GUI/Tab.cpp:2514 +#: src/slic3r/GUI/Tab.cpp:4230 src/slic3r/GUI/Tab.cpp:4365 msgid "Dependencies" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1687 src/slic3r/GUI/Tab.cpp:2043 -#: src/slic3r/GUI/Tab.cpp:2426 src/slic3r/GUI/Tab.cpp:2502 -#: src/slic3r/GUI/Tab.cpp:4211 src/slic3r/GUI/Tab.cpp:4346 +#: src/slic3r/GUI/Tab.cpp:1688 src/slic3r/GUI/Tab.cpp:2056 +#: src/slic3r/GUI/Tab.cpp:2439 src/slic3r/GUI/Tab.cpp:2515 +#: src/slic3r/GUI/Tab.cpp:4231 src/slic3r/GUI/Tab.cpp:4366 msgid "Profile dependencies" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1774 +#: src/slic3r/GUI/Tab.cpp:1787 #, possible-c-format msgid "" "The following line %s contains reserved keywords.\n" @@ -7904,82 +8073,82 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:1779 +#: src/slic3r/GUI/Tab.cpp:1792 msgid "Found reserved keywords in" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1793 +#: src/slic3r/GUI/Tab.cpp:1806 msgid "Filament Overrides" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1916 +#: src/slic3r/GUI/Tab.cpp:1929 msgid "Nozzle" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1921 +#: src/slic3r/GUI/Tab.cpp:1934 msgid "Bed" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1926 +#: src/slic3r/GUI/Tab.cpp:1939 msgid "Cooling" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1928 src/libslic3r/PrintConfig.cpp:1859 -#: src/libslic3r/PrintConfig.cpp:2889 +#: src/slic3r/GUI/Tab.cpp:1941 src/libslic3r/PrintConfig.cpp:1861 +#: src/libslic3r/PrintConfig.cpp:2892 msgid "Enable" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1939 +#: src/slic3r/GUI/Tab.cpp:1952 msgid "Fan settings" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1950 +#: src/slic3r/GUI/Tab.cpp:1963 msgid "Cooling thresholds" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1956 +#: src/slic3r/GUI/Tab.cpp:1969 msgid "Filament properties" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1963 +#: src/slic3r/GUI/Tab.cpp:1976 msgid "Print speed override" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1973 +#: src/slic3r/GUI/Tab.cpp:1986 msgid "Wipe tower parameters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1976 +#: src/slic3r/GUI/Tab.cpp:1989 msgid "Toolchange parameters with single extruder MM printers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1989 +#: src/slic3r/GUI/Tab.cpp:2002 msgid "Ramming settings" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2013 src/slic3r/GUI/Tab.cpp:2330 -#: src/slic3r/GUI/Tab.cpp:3884 src/libslic3r/GCode.cpp:704 -#: src/libslic3r/PrintConfig.cpp:2401 +#: src/slic3r/GUI/Tab.cpp:2026 src/slic3r/GUI/Tab.cpp:2343 +#: src/slic3r/GUI/Tab.cpp:3897 src/libslic3r/GCode.cpp:716 +#: src/libslic3r/PrintConfig.cpp:2403 msgid "Custom G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2014 src/slic3r/GUI/Tab.cpp:2331 -#: src/libslic3r/GCode.cpp:678 src/libslic3r/PrintConfig.cpp:2351 -#: src/libslic3r/PrintConfig.cpp:2366 +#: src/slic3r/GUI/Tab.cpp:2027 src/slic3r/GUI/Tab.cpp:2344 +#: src/libslic3r/GCode.cpp:690 src/libslic3r/PrintConfig.cpp:2353 +#: src/libslic3r/PrintConfig.cpp:2368 msgid "Start G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2024 src/slic3r/GUI/Tab.cpp:2341 -#: src/libslic3r/GCode.cpp:679 src/libslic3r/PrintConfig.cpp:651 +#: src/slic3r/GUI/Tab.cpp:2037 src/slic3r/GUI/Tab.cpp:2354 +#: src/libslic3r/GCode.cpp:691 src/libslic3r/PrintConfig.cpp:651 #: src/libslic3r/PrintConfig.cpp:661 msgid "End G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2077 +#: src/slic3r/GUI/Tab.cpp:2090 msgid "Volumetric flow hints not available" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2181 +#: src/slic3r/GUI/Tab.cpp:2194 msgid "" "Note: All parameters from this group are moved to the Physical Printer " "settings (see changelog).\n" @@ -7992,20 +8161,20 @@ msgid "" "physical_printer directory." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2215 src/slic3r/GUI/Tab.cpp:2438 +#: src/slic3r/GUI/Tab.cpp:2228 src/slic3r/GUI/Tab.cpp:2451 msgid "Size and coordinates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2224 src/slic3r/GUI/UnsavedChangesDialog.cpp:1279 +#: src/slic3r/GUI/Tab.cpp:2237 src/slic3r/GUI/UnsavedChangesDialog.cpp:1279 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1667 msgid "Capabilities" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2229 +#: src/slic3r/GUI/Tab.cpp:2242 msgid "Number of extruders of the printer." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2258 +#: src/slic3r/GUI/Tab.cpp:2271 msgid "" "Single Extruder Multi Material is selected, \n" "and all extruders must have the same diameter.\n" @@ -8013,170 +8182,170 @@ msgid "" "nozzle diameter value?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2262 src/slic3r/GUI/Tab.cpp:2703 -#: src/libslic3r/PrintConfig.cpp:1825 +#: src/slic3r/GUI/Tab.cpp:2275 src/slic3r/GUI/Tab.cpp:2716 +#: src/libslic3r/PrintConfig.cpp:1827 msgid "Nozzle diameter" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2351 src/libslic3r/GCode.cpp:680 +#: src/slic3r/GUI/Tab.cpp:2364 src/libslic3r/GCode.cpp:692 #: src/libslic3r/PrintConfig.cpp:391 msgid "Before layer change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2361 src/libslic3r/GCode.cpp:681 -#: src/libslic3r/PrintConfig.cpp:1551 +#: src/slic3r/GUI/Tab.cpp:2374 src/libslic3r/GCode.cpp:693 +#: src/libslic3r/PrintConfig.cpp:1553 msgid "After layer change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2371 src/libslic3r/GCode.cpp:682 -#: src/libslic3r/PrintConfig.cpp:2773 +#: src/slic3r/GUI/Tab.cpp:2384 src/libslic3r/GCode.cpp:694 +#: src/libslic3r/PrintConfig.cpp:2776 msgid "Tool change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2381 src/libslic3r/GCode.cpp:683 +#: src/slic3r/GUI/Tab.cpp:2394 src/libslic3r/GCode.cpp:695 msgid "Between objects G-code (for sequential printing)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2391 src/libslic3r/GCode.cpp:684 +#: src/slic3r/GUI/Tab.cpp:2404 src/libslic3r/GCode.cpp:696 msgid "Color Change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2400 src/libslic3r/GCode.cpp:685 -#: src/libslic3r/PrintConfig.cpp:2392 +#: src/slic3r/GUI/Tab.cpp:2413 src/libslic3r/GCode.cpp:697 +#: src/libslic3r/PrintConfig.cpp:2394 msgid "Pause Print G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2409 src/libslic3r/GCode.cpp:686 +#: src/slic3r/GUI/Tab.cpp:2422 src/libslic3r/GCode.cpp:698 msgid "Template Custom G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2445 +#: src/slic3r/GUI/Tab.cpp:2458 msgid "Display" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2460 +#: src/slic3r/GUI/Tab.cpp:2473 msgid "Tilt" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2461 +#: src/slic3r/GUI/Tab.cpp:2474 msgid "Tilt time" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2467 src/slic3r/GUI/Tab.cpp:4186 +#: src/slic3r/GUI/Tab.cpp:2480 src/slic3r/GUI/Tab.cpp:4206 msgid "Corrections" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2484 src/slic3r/GUI/Tab.cpp:4182 +#: src/slic3r/GUI/Tab.cpp:2497 src/slic3r/GUI/Tab.cpp:4202 msgid "Exposure" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2545 src/slic3r/GUI/Tab.cpp:2630 -#: src/libslic3r/PrintConfig.cpp:1580 src/libslic3r/PrintConfig.cpp:1615 -#: src/libslic3r/PrintConfig.cpp:1632 src/libslic3r/PrintConfig.cpp:1649 -#: src/libslic3r/PrintConfig.cpp:1665 src/libslic3r/PrintConfig.cpp:1675 -#: src/libslic3r/PrintConfig.cpp:1685 src/libslic3r/PrintConfig.cpp:1698 -#: src/libslic3r/PrintConfig.cpp:1708 +#: src/slic3r/GUI/Tab.cpp:2558 src/slic3r/GUI/Tab.cpp:2643 +#: src/libslic3r/PrintConfig.cpp:1582 src/libslic3r/PrintConfig.cpp:1617 +#: src/libslic3r/PrintConfig.cpp:1634 src/libslic3r/PrintConfig.cpp:1651 +#: src/libslic3r/PrintConfig.cpp:1667 src/libslic3r/PrintConfig.cpp:1677 +#: src/libslic3r/PrintConfig.cpp:1687 src/libslic3r/PrintConfig.cpp:1700 +#: src/libslic3r/PrintConfig.cpp:1710 msgid "Machine limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2568 +#: src/slic3r/GUI/Tab.cpp:2581 msgid "Values in this column are for Normal mode" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2574 +#: src/slic3r/GUI/Tab.cpp:2587 msgid "Values in this column are for Stealth mode" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2583 +#: src/slic3r/GUI/Tab.cpp:2596 msgid "Maximum feedrates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2588 +#: src/slic3r/GUI/Tab.cpp:2601 msgid "Maximum accelerations" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2597 +#: src/slic3r/GUI/Tab.cpp:2610 msgid "Jerk limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2602 +#: src/slic3r/GUI/Tab.cpp:2615 msgid "Minimum feedrates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2655 src/slic3r/GUI/Tab.cpp:2664 +#: src/slic3r/GUI/Tab.cpp:2668 src/slic3r/GUI/Tab.cpp:2677 msgid "Single extruder MM setup" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2665 +#: src/slic3r/GUI/Tab.cpp:2678 msgid "Single extruder multimaterial parameters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2700 +#: src/slic3r/GUI/Tab.cpp:2713 msgid "" "This is a single extruder multimaterial printer, diameters of all extruders " "will be set to the new value. Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2725 +#: src/slic3r/GUI/Tab.cpp:2738 msgid "Layer height limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2730 +#: src/slic3r/GUI/Tab.cpp:2743 msgid "Position (for multi-extruder printers)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2736 +#: src/slic3r/GUI/Tab.cpp:2749 msgid "Only lift Z" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2749 +#: src/slic3r/GUI/Tab.cpp:2762 msgid "" "Retraction when tool is disabled (advanced settings for multi-extruder " "setups)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2756 +#: src/slic3r/GUI/Tab.cpp:2769 msgid "Reset to Filament Color" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2936 +#: src/slic3r/GUI/Tab.cpp:2949 msgid "" "The Wipe option is not available when using the Firmware Retraction mode.\n" "\n" "Shall I disable it in order to enable Firmware Retraction?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2938 +#: src/slic3r/GUI/Tab.cpp:2951 msgid "Firmware Retraction" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3239 -msgid "New printer preset is selecting" +#: src/slic3r/GUI/Tab.cpp:3252 +msgid "New printer preset selected" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3545 +#: src/slic3r/GUI/Tab.cpp:3558 msgid "Detached" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3611 +#: src/slic3r/GUI/Tab.cpp:3624 msgid "remove" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3611 +#: src/slic3r/GUI/Tab.cpp:3624 msgid "delete" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3620 +#: src/slic3r/GUI/Tab.cpp:3633 msgid "It's a last preset for this physical printer." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3625 +#: src/slic3r/GUI/Tab.cpp:3638 msgid "" "Are you sure you want to delete \"%1%\" preset from the physical printer " "\"%2%\"?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3637 +#: src/slic3r/GUI/Tab.cpp:3650 msgid "" "The physical printer below is based on the preset, you are going to delete." msgid_plural "" @@ -8184,14 +8353,14 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3642 -msgid "Note, that selected preset will be deleted from this printer too." +#: src/slic3r/GUI/Tab.cpp:3655 +msgid "Note, that the selected preset will be deleted from this printer too." msgid_plural "" -"Note, that selected preset will be deleted from these printers too." +"Note, that the selected preset will be deleted from these printers too." msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3647 +#: src/slic3r/GUI/Tab.cpp:3660 msgid "" "The physical printer below is based only on the preset, you are going to " "delete." @@ -8201,64 +8370,62 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3652 +#: src/slic3r/GUI/Tab.cpp:3665 msgid "" -"Note, that this printer will be deleted after deleting of the selected " -"preset." +"Note, that this printer will be deleted after deleting the selected preset." msgid_plural "" -"Note, that these printers will be deleted after deleting of the selected " -"preset." +"Note, that these printers will be deleted after deleting the selected preset." msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3657 +#: src/slic3r/GUI/Tab.cpp:3670 msgid "Are you sure you want to %1% the selected preset?" msgstr "" #. TRN Remove/Delete -#: src/slic3r/GUI/Tab.cpp:3662 +#: src/slic3r/GUI/Tab.cpp:3675 msgid "%1% Preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3745 src/slic3r/GUI/Tab.cpp:3818 +#: src/slic3r/GUI/Tab.cpp:3758 src/slic3r/GUI/Tab.cpp:3831 msgid "Set" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3910 +#: src/slic3r/GUI/Tab.cpp:3923 msgid "" "Machine limits will be emitted to G-code and used to estimate print time." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3913 +#: src/slic3r/GUI/Tab.cpp:3926 msgid "" "Machine limits will NOT be emitted to G-code, however they will be used to " "estimate print time, which may therefore not be accurate as the printer may " "apply a different set of machine limits." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3917 +#: src/slic3r/GUI/Tab.cpp:3930 msgid "" "Machine limits are not set, therefore the print time estimate may not be " "accurate." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3939 +#: src/slic3r/GUI/Tab.cpp:3952 msgid "LOCKED LOCK" msgstr "" #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3941 +#: src/slic3r/GUI/Tab.cpp:3954 msgid "" "indicates that the settings are the same as the system (or default) values " "for the current option group" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3943 +#: src/slic3r/GUI/Tab.cpp:3956 msgid "UNLOCKED LOCK" msgstr "" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3945 +#: src/slic3r/GUI/Tab.cpp:3958 msgid "" "indicates that some settings were changed and are not equal to the system " "(or default) values for the current option group.\n" @@ -8266,23 +8433,23 @@ msgid "" "to the system (or default) values." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3950 +#: src/slic3r/GUI/Tab.cpp:3963 msgid "WHITE BULLET" msgstr "" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3952 +#: src/slic3r/GUI/Tab.cpp:3965 msgid "" "for the left button: indicates a non-system (or non-default) preset,\n" "for the right button: indicates that the settings hasn't been modified." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3955 +#: src/slic3r/GUI/Tab.cpp:3968 msgid "BACK ARROW" msgstr "" #. TRN Description for "BACK ARROW" -#: src/slic3r/GUI/Tab.cpp:3957 +#: src/slic3r/GUI/Tab.cpp:3970 msgid "" "indicates that the settings were changed and are not equal to the last saved " "preset for the current option group.\n" @@ -8290,13 +8457,13 @@ msgid "" "to the last saved preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3967 +#: src/slic3r/GUI/Tab.cpp:3980 msgid "" "LOCKED LOCK icon indicates that the settings are the same as the system (or " "default) values for the current option group" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3969 +#: src/slic3r/GUI/Tab.cpp:3982 msgid "" "UNLOCKED LOCK icon indicates that some settings were changed and are not " "equal to the system (or default) values for the current option group.\n" @@ -8304,17 +8471,17 @@ msgid "" "default) values." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3972 +#: src/slic3r/GUI/Tab.cpp:3985 msgid "WHITE BULLET icon indicates a non system (or non default) preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3975 +#: src/slic3r/GUI/Tab.cpp:3988 msgid "" "WHITE BULLET icon indicates that the settings are the same as in the last " "saved preset for the current option group." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3977 +#: src/slic3r/GUI/Tab.cpp:3990 msgid "" "BACK ARROW icon indicates that the settings were changed and are not equal " "to the last saved preset for the current option group.\n" @@ -8322,63 +8489,63 @@ msgid "" "preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3983 +#: src/slic3r/GUI/Tab.cpp:3996 msgid "" "LOCKED LOCK icon indicates that the value is the same as the system (or " "default) value." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3984 +#: src/slic3r/GUI/Tab.cpp:3997 msgid "" "UNLOCKED LOCK icon indicates that the value was changed and is not equal to " "the system (or default) value.\n" "Click to reset current value to the system (or default) value." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3990 +#: src/slic3r/GUI/Tab.cpp:4003 msgid "" "WHITE BULLET icon indicates that the value is the same as in the last saved " "preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3991 +#: src/slic3r/GUI/Tab.cpp:4004 msgid "" "BACK ARROW icon indicates that the value was changed and is not equal to the " "last saved preset.\n" "Click to reset current value to the last saved preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4145 src/slic3r/GUI/Tab.cpp:4147 +#: src/slic3r/GUI/Tab.cpp:4158 src/slic3r/GUI/Tab.cpp:4160 msgid "Material" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4272 +#: src/slic3r/GUI/Tab.cpp:4292 msgid "Support head" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4277 +#: src/slic3r/GUI/Tab.cpp:4297 msgid "Support pillar" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4300 +#: src/slic3r/GUI/Tab.cpp:4320 msgid "Connection of the support sticks and junctions" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4305 +#: src/slic3r/GUI/Tab.cpp:4325 msgid "Automatic generation" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4380 +#: src/slic3r/GUI/Tab.cpp:4400 msgid "" "\"%1%\" is disabled because \"%2%\" is on in \"%3%\" category.\n" "To enable \"%1%\", please switch off \"%2%\"" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4382 src/libslic3r/PrintConfig.cpp:3471 +#: src/slic3r/GUI/Tab.cpp:4402 src/libslic3r/PrintConfig.cpp:3481 msgid "Object elevation" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4382 src/libslic3r/PrintConfig.cpp:3573 +#: src/slic3r/GUI/Tab.cpp:4402 src/libslic3r/PrintConfig.cpp:3583 msgid "Pad around object" msgstr "" @@ -8450,7 +8617,7 @@ msgid "" "You will not be asked about the unsaved changes the next time you: \n" "- close the application,\n" "- load project,\n" -"- process Undo / Redo with change of print technologie,\n" +"- process Undo / Redo with a change of print technology,\n" "- take/load snapshot,\n" "- load config file/bundle,\n" "- export config_bundle" @@ -8555,7 +8722,7 @@ msgid "One of the presets doesn't found" msgstr "" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1631 -msgid "Comparable printer presets has different printer technology" +msgid "Compared presets has different printer technology" msgstr "" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1645 @@ -8565,7 +8732,7 @@ msgstr "" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1653 msgid "" "Presets are different.\n" -"Click this button to select the same as left preset for the right preset." +"Click this button to select the same preset for the right and left preset." msgstr "" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1677 @@ -8598,7 +8765,7 @@ msgid "Changelog && Download" msgstr "" #: src/slic3r/GUI/UpdateDialogs.cpp:60 src/slic3r/GUI/UpdateDialogs.cpp:128 -#: src/slic3r/GUI/UpdateDialogs.cpp:194 +#: src/slic3r/GUI/UpdateDialogs.cpp:185 msgid "Open changelog page" msgstr "" @@ -8614,7 +8781,7 @@ msgstr "" msgid "Opening Configuration Wizard" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:89 src/slic3r/GUI/UpdateDialogs.cpp:277 +#: src/slic3r/GUI/UpdateDialogs.cpp:89 src/slic3r/GUI/UpdateDialogs.cpp:254 msgid "Configuration update" msgstr "" @@ -8639,7 +8806,7 @@ msgid "" "Updated configuration bundles:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:116 src/slic3r/GUI/UpdateDialogs.cpp:184 +#: src/slic3r/GUI/UpdateDialogs.cpp:116 src/slic3r/GUI/UpdateDialogs.cpp:175 msgid "Comment:" msgstr "" @@ -8647,16 +8814,20 @@ msgstr "" msgid "Install" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:159 src/slic3r/GUI/UpdateDialogs.cpp:221 +#: src/slic3r/GUI/UpdateDialogs.cpp:138 +msgid "Don't install" +msgstr "" + +#: src/slic3r/GUI/UpdateDialogs.cpp:151 src/slic3r/GUI/UpdateDialogs.cpp:205 #, possible-c-format msgid "%s incompatibility" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:159 +#: src/slic3r/GUI/UpdateDialogs.cpp:151 msgid "You must install a configuration update." msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:162 +#: src/slic3r/GUI/UpdateDialogs.cpp:154 #, possible-c-format msgid "" "%s will now start updates. Otherwise it won't be able to start.\n" @@ -8667,17 +8838,17 @@ msgid "" "Updated configuration bundles:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:202 src/slic3r/GUI/UpdateDialogs.cpp:257 +#: src/slic3r/GUI/UpdateDialogs.cpp:193 src/slic3r/GUI/UpdateDialogs.cpp:240 #, possible-c-format msgid "Exit %s" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:222 +#: src/slic3r/GUI/UpdateDialogs.cpp:206 #, possible-c-format msgid "%s configuration is incompatible" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:227 +#: src/slic3r/GUI/UpdateDialogs.cpp:209 #, possible-c-format msgid "" "This version of %s is not compatible with currently installed configuration " @@ -8690,20 +8861,20 @@ msgid "" "existing configuration before installing files compatible with this %s." msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:236 +#: src/slic3r/GUI/UpdateDialogs.cpp:218 #, possible-c-format msgid "This %s version: %s" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:241 +#: src/slic3r/GUI/UpdateDialogs.cpp:223 msgid "Incompatible bundles:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:260 +#: src/slic3r/GUI/UpdateDialogs.cpp:239 msgid "Re-configure" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:281 +#: src/slic3r/GUI/UpdateDialogs.cpp:258 #, possible-c-format msgid "" "%s now uses an updated configuration structure.\n" @@ -8719,19 +8890,19 @@ msgid "" "choose whether to enable automatic preset updates." msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:298 +#: src/slic3r/GUI/UpdateDialogs.cpp:275 msgid "For more information please visit our wiki page:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:317 +#: src/slic3r/GUI/UpdateDialogs.cpp:292 msgid "Configuration updates" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:317 +#: src/slic3r/GUI/UpdateDialogs.cpp:292 msgid "No updates available" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:322 +#: src/slic3r/GUI/UpdateDialogs.cpp:297 #, possible-c-format msgid "%s has no configuration updates available." msgstr "" @@ -8825,12 +8996,12 @@ msgstr "" msgid "Show advanced settings" msgstr "" -#: src/slic3r/GUI/wxExtensions.cpp:642 +#: src/slic3r/GUI/wxExtensions.cpp:643 #, possible-c-format msgid "Switch to the %s mode" msgstr "" -#: src/slic3r/GUI/wxExtensions.cpp:643 +#: src/slic3r/GUI/wxExtensions.cpp:644 #, possible-c-format msgid "Current mode is %s" msgstr "" @@ -8981,36 +9152,36 @@ msgstr "" msgid "Could not connect to PrusaLink" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:65 +#: src/slic3r/Utils/PresetUpdater.cpp:61 msgid "Copying of file %1% to %2% failed: %3%" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:593 -#: src/slic3r/Utils/PresetUpdater.cpp:610 +#: src/slic3r/Utils/PresetUpdater.cpp:645 +#: src/slic3r/Utils/PresetUpdater.cpp:662 msgid "Continue and install configuration updates?" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:725 +#: src/slic3r/Utils/PresetUpdater.cpp:777 msgid "" "Configuration Updates causes a lost of preset modification.\n" "So, check unsaved changes and save them if necessary." msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:727 -msgid "Updater is processing" +#: src/slic3r/Utils/PresetUpdater.cpp:779 +msgid "Updating" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:756 +#: src/slic3r/Utils/PresetUpdater.cpp:808 #, possible-c-format msgid "requires min. %s and max. %s" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:760 +#: src/slic3r/Utils/PresetUpdater.cpp:812 #, possible-c-format msgid "requires min. %s" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:763 +#: src/slic3r/Utils/PresetUpdater.cpp:815 #, possible-c-format msgid "requires max. %s" msgstr "" @@ -9053,70 +9224,73 @@ msgstr "" msgid "Note: Repetier version at least 0.90.0 is required." msgstr "" -#: src/slic3r/Utils/Repetier.cpp:240 +#: src/slic3r/Utils/Repetier.cpp:244 msgid "" "HTTP status: %1%\n" "Message body: \"%2%\"" msgstr "" -#: src/slic3r/Utils/Repetier.cpp:247 +#: src/slic3r/Utils/Repetier.cpp:251 msgid "" "Parsing of host response failed.\n" "Message body: \"%1%\"\n" "Error: \"%2%\"" msgstr "" -#: src/slic3r/Utils/Repetier.cpp:260 +#: src/slic3r/Utils/Repetier.cpp:264 msgid "" "Enumeration of host printers failed.\n" "Message body: \"%1%\"\n" "Error: \"%2%\"" msgstr "" -#: src/libslic3r/GCode.cpp:521 +#: src/libslic3r/GCode.cpp:523 msgid "There is an object with no extrusions in the first layer." msgstr "" -#: src/libslic3r/GCode.cpp:540 -msgid "" -"Empty layer detected between heights %1% and %2%. Make sure the object is " -"printable." +#: src/libslic3r/GCode.cpp:553 +msgid "Empty layer between %1% and %2%." msgstr "" -#: src/libslic3r/GCode.cpp:543 +#: src/libslic3r/GCode.cpp:556 +msgid "(Some lines not shown)" +msgstr "" + +#: src/libslic3r/GCode.cpp:558 msgid "Object name: %1%" msgstr "" -#: src/libslic3r/GCode.cpp:544 +#: src/libslic3r/GCode.cpp:559 msgid "" -"This is usually caused by negligibly small extrusions or by a faulty model. " -"Try to repair the model or change its orientation on the bed." +"Make sure the object is printable. This is usually caused by negligibly " +"small extrusions or by a faulty model. Try to repair the model or change its " +"orientation on the bed." msgstr "" -#: src/libslic3r/GCode.cpp:689 +#: src/libslic3r/GCode.cpp:701 msgid "Filament Start G-code" msgstr "" -#: src/libslic3r/GCode.cpp:696 +#: src/libslic3r/GCode.cpp:708 msgid "Filament End G-code" msgstr "" -#: src/libslic3r/GCode.cpp:735 -msgid "Found reserved keyword(s) into custom g-code:" +#: src/libslic3r/GCode.cpp:747 +msgid "In the custom G-code were found reserved keywords:" msgstr "" -#: src/libslic3r/GCode.cpp:737 +#: src/libslic3r/GCode.cpp:749 msgid "" "This may cause problems in g-code visualization and printing time estimation." msgstr "" -#: src/libslic3r/GCode.cpp:1391 +#: src/libslic3r/GCode.cpp:1403 msgid "" "Your print is very close to the priming regions. Make sure there is no " "collision." msgstr "" -#: src/libslic3r/ExtrusionEntity.cpp:326 src/libslic3r/ExtrusionEntity.cpp:362 +#: src/libslic3r/ExtrusionEntity.cpp:332 src/libslic3r/ExtrusionEntity.cpp:368 msgid "Mixed" msgstr "" @@ -9125,31 +9299,31 @@ msgid "" "Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible." msgstr "" -#: src/libslic3r/Format/3mf.cpp:1715 +#: src/libslic3r/Format/3mf.cpp:1734 msgid "" "The selected 3mf file has been saved with a newer version of %1% and is not " "compatible." msgstr "" -#: src/libslic3r/Format/3mf.cpp:1726 +#: src/libslic3r/Format/3mf.cpp:1745 msgid "" "The selected 3MF contains FDM supports painted object using a newer version " "of PrusaSlicer and is not compatible." msgstr "" -#: src/libslic3r/Format/3mf.cpp:1730 +#: src/libslic3r/Format/3mf.cpp:1749 msgid "" "The selected 3MF contains seam painted object using a newer version of " "PrusaSlicer and is not compatible." msgstr "" -#: src/libslic3r/Format/3mf.cpp:1734 +#: src/libslic3r/Format/3mf.cpp:1753 msgid "" "The selected 3MF contains multi-material painted object using a newer " "version of PrusaSlicer and is not compatible." msgstr "" -#: src/libslic3r/Format/AMF.cpp:988 +#: src/libslic3r/Format/AMF.cpp:993 msgid "" "The selected amf file has been saved with a newer version of %1% and is not " "compatible." @@ -9478,7 +9652,7 @@ msgstr "" msgid "Slicing model" msgstr "" -#: src/libslic3r/SLAPrintSteps.cpp:48 src/libslic3r/SLAPrintSteps.cpp:632 +#: src/libslic3r/SLAPrintSteps.cpp:48 src/libslic3r/SLAPrintSteps.cpp:630 msgid "Generating support points" msgstr "" @@ -9530,22 +9704,22 @@ msgid "" "Slicing had to be stopped due to an internal error: Inconsistent slice index." msgstr "" -#: src/libslic3r/SLAPrintSteps.cpp:684 src/libslic3r/SLAPrintSteps.cpp:693 -#: src/libslic3r/SLAPrintSteps.cpp:731 +#: src/libslic3r/SLAPrintSteps.cpp:682 src/libslic3r/SLAPrintSteps.cpp:691 +#: src/libslic3r/SLAPrintSteps.cpp:729 msgid "Visualizing supports" msgstr "" -#: src/libslic3r/SLAPrintSteps.cpp:723 +#: src/libslic3r/SLAPrintSteps.cpp:721 msgid "No pad can be generated for this model with the current configuration" msgstr "" -#: src/libslic3r/SLAPrintSteps.cpp:847 +#: src/libslic3r/SLAPrintSteps.cpp:845 msgid "" "There are unprintable objects. Try to adjust support settings to make the " "objects printable." msgstr "" -#: src/libslic3r/PrintBase.cpp:78 +#: src/libslic3r/PrintBase.cpp:84 msgid "Failed processing of the output_filename_format template." msgstr "" @@ -9697,7 +9871,7 @@ msgstr "" msgid "mm or % (zero to disable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:381 src/libslic3r/PrintConfig.cpp:2736 +#: src/libslic3r/PrintConfig.cpp:381 src/libslic3r/PrintConfig.cpp:2738 msgid "Other layers" msgstr "" @@ -9762,9 +9936,9 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:434 src/libslic3r/PrintConfig.cpp:605 #: src/libslic3r/PrintConfig.cpp:1150 src/libslic3r/PrintConfig.cpp:1159 -#: src/libslic3r/PrintConfig.cpp:1348 src/libslic3r/PrintConfig.cpp:1638 -#: src/libslic3r/PrintConfig.cpp:1689 src/libslic3r/PrintConfig.cpp:1700 -#: src/libslic3r/PrintConfig.cpp:1710 src/libslic3r/PrintConfig.cpp:1906 +#: src/libslic3r/PrintConfig.cpp:1350 src/libslic3r/PrintConfig.cpp:1640 +#: src/libslic3r/PrintConfig.cpp:1691 src/libslic3r/PrintConfig.cpp:1702 +#: src/libslic3r/PrintConfig.cpp:1712 src/libslic3r/PrintConfig.cpp:1908 msgid "mm/s²" msgstr "" @@ -9780,10 +9954,10 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:1062 -#: src/libslic3r/PrintConfig.cpp:2184 src/libslic3r/PrintConfig.cpp:2194 -#: src/libslic3r/PrintConfig.cpp:2483 src/libslic3r/PrintConfig.cpp:2721 -#: src/libslic3r/PrintConfig.cpp:2936 src/libslic3r/PrintConfig.cpp:3445 -#: src/libslic3r/PrintConfig.cpp:3566 +#: src/libslic3r/PrintConfig.cpp:2186 src/libslic3r/PrintConfig.cpp:2196 +#: src/libslic3r/PrintConfig.cpp:2485 src/libslic3r/PrintConfig.cpp:2723 +#: src/libslic3r/PrintConfig.cpp:2939 src/libslic3r/PrintConfig.cpp:3455 +#: src/libslic3r/PrintConfig.cpp:3576 msgid "°" msgstr "" @@ -9796,10 +9970,10 @@ msgid "This fan speed is enforced during all bridges and overhangs." msgstr "" #: src/libslic3r/PrintConfig.cpp:453 src/libslic3r/PrintConfig.cpp:1074 -#: src/libslic3r/PrintConfig.cpp:1526 src/libslic3r/PrintConfig.cpp:1718 -#: src/libslic3r/PrintConfig.cpp:1781 src/libslic3r/PrintConfig.cpp:2029 -#: src/libslic3r/PrintConfig.cpp:2076 src/libslic3r/PrintConfig.cpp:3122 -#: src/libslic3r/PrintConfig.cpp:3359 src/libslic3r/PrintConfig.cpp:3485 +#: src/libslic3r/PrintConfig.cpp:1528 src/libslic3r/PrintConfig.cpp:1720 +#: src/libslic3r/PrintConfig.cpp:1783 src/libslic3r/PrintConfig.cpp:2031 +#: src/libslic3r/PrintConfig.cpp:2078 src/libslic3r/PrintConfig.cpp:3125 +#: src/libslic3r/PrintConfig.cpp:3369 src/libslic3r/PrintConfig.cpp:3495 msgid "%" msgstr "" @@ -9826,14 +10000,14 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:475 src/libslic3r/PrintConfig.cpp:881 #: src/libslic3r/PrintConfig.cpp:889 src/libslic3r/PrintConfig.cpp:898 #: src/libslic3r/PrintConfig.cpp:906 src/libslic3r/PrintConfig.cpp:933 -#: src/libslic3r/PrintConfig.cpp:952 src/libslic3r/PrintConfig.cpp:1282 -#: src/libslic3r/PrintConfig.cpp:1463 src/libslic3r/PrintConfig.cpp:1545 -#: src/libslic3r/PrintConfig.cpp:1621 src/libslic3r/PrintConfig.cpp:1655 -#: src/libslic3r/PrintConfig.cpp:1667 src/libslic3r/PrintConfig.cpp:1677 -#: src/libslic3r/PrintConfig.cpp:1740 src/libslic3r/PrintConfig.cpp:1799 -#: src/libslic3r/PrintConfig.cpp:1936 src/libslic3r/PrintConfig.cpp:2151 -#: src/libslic3r/PrintConfig.cpp:2160 src/libslic3r/PrintConfig.cpp:2686 -#: src/libslic3r/PrintConfig.cpp:2834 src/libslic3r/PrintConfig.cpp:2844 +#: src/libslic3r/PrintConfig.cpp:952 src/libslic3r/PrintConfig.cpp:1284 +#: src/libslic3r/PrintConfig.cpp:1465 src/libslic3r/PrintConfig.cpp:1547 +#: src/libslic3r/PrintConfig.cpp:1623 src/libslic3r/PrintConfig.cpp:1657 +#: src/libslic3r/PrintConfig.cpp:1669 src/libslic3r/PrintConfig.cpp:1679 +#: src/libslic3r/PrintConfig.cpp:1742 src/libslic3r/PrintConfig.cpp:1801 +#: src/libslic3r/PrintConfig.cpp:1938 src/libslic3r/PrintConfig.cpp:2153 +#: src/libslic3r/PrintConfig.cpp:2162 src/libslic3r/PrintConfig.cpp:2688 +#: src/libslic3r/PrintConfig.cpp:2837 src/libslic3r/PrintConfig.cpp:2847 msgid "mm/s" msgstr "" @@ -9843,8 +10017,8 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:484 msgid "" -"Horizontal width of the brim that will be printed around each object on the " -"first layer.When raft is used, no brim is generated (use " +"The horizontal width of the brim that will be printed around each object on " +"the first layer. When raft is used, no brim is generated (use " "raft_first_layer_expansion)." msgstr "" @@ -9985,8 +10159,8 @@ msgstr "" msgid "Default print profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:619 src/libslic3r/PrintConfig.cpp:3289 -#: src/libslic3r/PrintConfig.cpp:3300 +#: src/libslic3r/PrintConfig.cpp:619 src/libslic3r/PrintConfig.cpp:3299 +#: src/libslic3r/PrintConfig.cpp:3310 msgid "" "Default print profile associated with the current printer profile. On " "selection of the current printer profile, this print profile will be " @@ -10057,7 +10231,7 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:693 src/libslic3r/PrintConfig.cpp:1128 -#: src/libslic3r/PrintConfig.cpp:2651 src/libslic3r/PrintConfig.cpp:2668 +#: src/libslic3r/PrintConfig.cpp:2653 src/libslic3r/PrintConfig.cpp:2670 msgid "Rectilinear" msgstr "" @@ -10070,7 +10244,7 @@ msgid "Aligned Rectilinear" msgstr "" #: src/libslic3r/PrintConfig.cpp:696 src/libslic3r/PrintConfig.cpp:1135 -#: src/libslic3r/PrintConfig.cpp:2669 +#: src/libslic3r/PrintConfig.cpp:2671 msgid "Concentric" msgstr "" @@ -10097,7 +10271,6 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:716 src/libslic3r/PrintConfig.cpp:727 -#: src/libslic3r/PrintConfig.cpp:1247 msgid "External perimeters" msgstr "" @@ -10110,11 +10283,11 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:721 src/libslic3r/PrintConfig.cpp:831 -#: src/libslic3r/PrintConfig.cpp:1181 src/libslic3r/PrintConfig.cpp:1373 -#: src/libslic3r/PrintConfig.cpp:1428 src/libslic3r/PrintConfig.cpp:1454 -#: src/libslic3r/PrintConfig.cpp:1926 src/libslic3r/PrintConfig.cpp:2299 -#: src/libslic3r/PrintConfig.cpp:2472 src/libslic3r/PrintConfig.cpp:2559 -#: src/libslic3r/PrintConfig.cpp:2791 +#: src/libslic3r/PrintConfig.cpp:1181 src/libslic3r/PrintConfig.cpp:1375 +#: src/libslic3r/PrintConfig.cpp:1430 src/libslic3r/PrintConfig.cpp:1456 +#: src/libslic3r/PrintConfig.cpp:1928 src/libslic3r/PrintConfig.cpp:2301 +#: src/libslic3r/PrintConfig.cpp:2474 src/libslic3r/PrintConfig.cpp:2561 +#: src/libslic3r/PrintConfig.cpp:2794 msgid "mm or %" msgstr "" @@ -10126,9 +10299,9 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:732 src/libslic3r/PrintConfig.cpp:1201 -#: src/libslic3r/PrintConfig.cpp:1211 src/libslic3r/PrintConfig.cpp:2258 -#: src/libslic3r/PrintConfig.cpp:2310 src/libslic3r/PrintConfig.cpp:2637 -#: src/libslic3r/PrintConfig.cpp:2804 +#: src/libslic3r/PrintConfig.cpp:1211 src/libslic3r/PrintConfig.cpp:2260 +#: src/libslic3r/PrintConfig.cpp:2312 src/libslic3r/PrintConfig.cpp:2639 +#: src/libslic3r/PrintConfig.cpp:2807 msgid "mm/s or %" msgstr "" @@ -10181,6 +10354,7 @@ msgid "Extruder Color" msgstr "" #: src/libslic3r/PrintConfig.cpp:793 src/libslic3r/PrintConfig.cpp:855 +#: src/libslic3r/PrintConfig.cpp:3172 msgid "This is only used in the Slic3r interface as a visual help." msgstr "" @@ -10252,11 +10426,11 @@ msgid "" "maximum speeds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:847 src/libslic3r/PrintConfig.cpp:2246 +#: src/libslic3r/PrintConfig.cpp:847 src/libslic3r/PrintConfig.cpp:2248 msgid "approximate seconds" msgstr "" -#: src/libslic3r/PrintConfig.cpp:854 +#: src/libslic3r/PrintConfig.cpp:854 src/libslic3r/PrintConfig.cpp:3171 msgid "Color" msgstr "" @@ -10268,7 +10442,7 @@ msgstr "" msgid "You can put your notes regarding the filament here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:869 src/libslic3r/PrintConfig.cpp:1746 +#: src/libslic3r/PrintConfig.cpp:869 src/libslic3r/PrintConfig.cpp:1748 msgid "Max volumetric speed" msgstr "" @@ -10407,8 +10581,8 @@ msgid "" "average." msgstr "" -#: src/libslic3r/PrintConfig.cpp:989 src/libslic3r/PrintConfig.cpp:3200 -#: src/libslic3r/PrintConfig.cpp:3201 +#: src/libslic3r/PrintConfig.cpp:989 src/libslic3r/PrintConfig.cpp:3210 +#: src/libslic3r/PrintConfig.cpp:3211 msgid "Density" msgstr "" @@ -10466,7 +10640,7 @@ msgstr "" msgid "g" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1053 src/libslic3r/PrintConfig.cpp:3284 +#: src/libslic3r/PrintConfig.cpp:1053 src/libslic3r/PrintConfig.cpp:3294 msgid "(Unknown)" msgstr "" @@ -10497,7 +10671,7 @@ msgstr "" msgid "Fill pattern for general low-density infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:2700 +#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:2702 msgid "Grid" msgstr "" @@ -10513,7 +10687,7 @@ msgstr "" msgid "Line" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1136 src/libslic3r/PrintConfig.cpp:2653 +#: src/libslic3r/PrintConfig.cpp:1136 src/libslic3r/PrintConfig.cpp:2655 msgid "Honeycomb" msgstr "" @@ -10626,51 +10800,68 @@ msgstr "" msgid "Fuzzy skin type." msgstr "" +#: src/libslic3r/PrintConfig.cpp:1247 +msgid "Outside walls" +msgstr "" + #: src/libslic3r/PrintConfig.cpp:1248 -msgid "All perimeters" +msgid "All walls" msgstr "" #: src/libslic3r/PrintConfig.cpp:1253 msgid "Fuzzy skin thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1262 +#: src/libslic3r/PrintConfig.cpp:1255 +msgid "" +"The maximum distance that each skin point can be offset (both ways), " +"measured perpendicular to the perimeter wall." +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:1263 msgid "Fuzzy skin point distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1271 -msgid "Fill gaps" +#: src/libslic3r/PrintConfig.cpp:1265 +msgid "" +"Perimeters will be split into multiple segments by inserting Fuzzy skin " +"points. Lowering the Fuzzy skin point distance will increase the number of " +"randomly offset points on the perimeter wall." msgstr "" #: src/libslic3r/PrintConfig.cpp:1273 +msgid "Fill gaps" +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:1275 msgid "" "Enables filling of gaps between perimeters and between the inner most " "perimeters and infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1280 +#: src/libslic3r/PrintConfig.cpp:1282 msgid "" "Speed for filling small gaps using short zigzag moves. Keep this reasonably " "low to avoid too much shaking and resonance issues. Set zero to disable gaps " "filling." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1288 +#: src/libslic3r/PrintConfig.cpp:1290 msgid "Verbose G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1289 +#: src/libslic3r/PrintConfig.cpp:1291 msgid "" "Enable this to get a commented G-code file, with each line explained by a " "descriptive text. If you print from SD card, the additional weight of the " "file could make your firmware slow down." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1296 +#: src/libslic3r/PrintConfig.cpp:1298 msgid "G-code flavor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1297 +#: src/libslic3r/PrintConfig.cpp:1299 msgid "" "Some G/M-code commands, including temperature control and others, are not " "universal. Set this option to your printer's firmware to get a compatible " @@ -10678,15 +10869,15 @@ msgid "" "extrusion value at all." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1324 +#: src/libslic3r/PrintConfig.cpp:1326 msgid "No extrusion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1329 +#: src/libslic3r/PrintConfig.cpp:1331 msgid "Label objects" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1330 +#: src/libslic3r/PrintConfig.cpp:1332 msgid "" "Enable this to add comments into the G-Code labeling print moves with what " "object they belong to, which is useful for the Octoprint CancelObject " @@ -10694,42 +10885,42 @@ msgid "" "setup and Wipe into Object / Wipe into Infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1337 +#: src/libslic3r/PrintConfig.cpp:1339 msgid "High extruder current on filament swap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1338 +#: src/libslic3r/PrintConfig.cpp:1340 msgid "" "It may be beneficial to increase the extruder motor current during the " "filament exchange sequence to allow for rapid ramming feed rates and to " "overcome resistance when loading a filament with an ugly shaped tip." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1346 +#: src/libslic3r/PrintConfig.cpp:1348 msgid "" "This is the acceleration your printer will use for infill. Set zero to " "disable acceleration control for infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1356 msgid "Combine infill every" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1356 +#: src/libslic3r/PrintConfig.cpp:1358 msgid "" "This feature allows to combine infill and speed up your print by extruding " "thicker infill layers while preserving thin perimeters, thus accuracy." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1359 +#: src/libslic3r/PrintConfig.cpp:1361 msgid "Combine infill every n layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1365 +#: src/libslic3r/PrintConfig.cpp:1367 msgid "Length of the infill anchor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1367 +#: src/libslic3r/PrintConfig.cpp:1369 msgid "" "Connect an infill line to an internal perimeter with a short segment of an " "additional perimeter. If expressed as percentage (example: 15%) it is " @@ -10742,19 +10933,19 @@ msgid "" "perimeters connected to a single infill line." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1382 +#: src/libslic3r/PrintConfig.cpp:1384 msgid "0 (no open anchors)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1387 src/libslic3r/PrintConfig.cpp:1409 +#: src/libslic3r/PrintConfig.cpp:1389 src/libslic3r/PrintConfig.cpp:1411 msgid "1000 (unlimited)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1392 +#: src/libslic3r/PrintConfig.cpp:1394 msgid "Maximum length of the infill anchor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1394 +#: src/libslic3r/PrintConfig.cpp:1396 msgid "" "Connect an infill line to an internal perimeter with a short segment of an " "additional perimeter. If expressed as percentage (example: 15%) it is " @@ -10766,19 +10957,19 @@ msgid "" "parameter. Set this parameter to zero to disable anchoring." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1404 +#: src/libslic3r/PrintConfig.cpp:1406 msgid "0 (not anchored)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1414 +#: src/libslic3r/PrintConfig.cpp:1416 msgid "Infill extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1416 +#: src/libslic3r/PrintConfig.cpp:1418 msgid "The extruder to use when printing infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1424 +#: src/libslic3r/PrintConfig.cpp:1426 msgid "" "Set this to a non-zero value to set a manual extrusion width for infill. If " "left zero, default extrusion width will be used if set, otherwise 1.125 x " @@ -10787,32 +10978,32 @@ msgid "" "example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1434 +#: src/libslic3r/PrintConfig.cpp:1436 msgid "Infill before perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1435 +#: src/libslic3r/PrintConfig.cpp:1437 msgid "" "This option will switch the print order of perimeters and infill, making the " "latter first." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1440 +#: src/libslic3r/PrintConfig.cpp:1442 msgid "Only infill where needed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1442 +#: src/libslic3r/PrintConfig.cpp:1444 msgid "" "This option will limit infill to the areas actually needed for supporting " "ceilings (it will act as internal support material). If enabled, slows down " "the G-code generation due to the multiple checks involved." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1449 +#: src/libslic3r/PrintConfig.cpp:1451 msgid "Infill/perimeters overlap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1451 +#: src/libslic3r/PrintConfig.cpp:1453 msgid "" "This setting applies an additional overlap between infill and perimeters for " "better bonding. Theoretically this shouldn't be needed, but backlash might " @@ -10820,84 +11011,84 @@ msgid "" "perimeter extrusion width." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1462 +#: src/libslic3r/PrintConfig.cpp:1464 msgid "Speed for printing the internal fill. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1470 +#: src/libslic3r/PrintConfig.cpp:1472 msgid "Inherits profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1471 +#: src/libslic3r/PrintConfig.cpp:1473 msgid "Name of the profile, from which this profile inherits." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1484 +#: src/libslic3r/PrintConfig.cpp:1486 msgid "Interface shells" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1485 +#: src/libslic3r/PrintConfig.cpp:1487 msgid "" "Force the generation of solid shells between adjacent materials/volumes. " "Useful for multi-extruder prints with translucent materials or manual " "soluble support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1493 +#: src/libslic3r/PrintConfig.cpp:1495 msgid "Maximum width of a segmented region" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1494 +#: src/libslic3r/PrintConfig.cpp:1496 msgid "Maximum width of a segmented region. Zero disables this feature." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1495 src/libslic3r/PrintConfig.cpp:2091 -#: src/libslic3r/PrintConfig.cpp:2100 +#: src/libslic3r/PrintConfig.cpp:1497 src/libslic3r/PrintConfig.cpp:2093 +#: src/libslic3r/PrintConfig.cpp:2102 msgid "mm (zero to disable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1502 +#: src/libslic3r/PrintConfig.cpp:1504 msgid "Enable ironing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1503 +#: src/libslic3r/PrintConfig.cpp:1505 msgid "" "Enable ironing of the top layers with the hot print head for smooth surface" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1509 src/libslic3r/PrintConfig.cpp:1511 +#: src/libslic3r/PrintConfig.cpp:1511 src/libslic3r/PrintConfig.cpp:1513 msgid "Ironing Type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1516 +#: src/libslic3r/PrintConfig.cpp:1518 msgid "All top surfaces" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1517 +#: src/libslic3r/PrintConfig.cpp:1519 msgid "Topmost surface only" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1518 +#: src/libslic3r/PrintConfig.cpp:1520 msgid "All solid surfaces" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1523 +#: src/libslic3r/PrintConfig.cpp:1525 msgid "Flow rate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1525 +#: src/libslic3r/PrintConfig.cpp:1527 msgid "Percent of a flow rate relative to object's normal layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1533 +#: src/libslic3r/PrintConfig.cpp:1535 msgid "Spacing between ironing passes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1535 +#: src/libslic3r/PrintConfig.cpp:1537 msgid "Distance between ironing lines" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1552 +#: src/libslic3r/PrintConfig.cpp:1554 msgid "" "This custom code is inserted at every layer change, right after the Z move " "and before the extruder moves to the first layer point. Note that you can " @@ -10905,11 +11096,11 @@ msgid "" "[layer_z]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1563 +#: src/libslic3r/PrintConfig.cpp:1565 msgid "Supports remaining times" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1564 +#: src/libslic3r/PrintConfig.cpp:1566 msgid "" "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute " "intervals into the G-code to let the firmware show accurate remaining time. " @@ -10917,155 +11108,155 @@ msgid "" "firmware supports M73 Qxx Sxx for the silent mode." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1572 +#: src/libslic3r/PrintConfig.cpp:1574 msgid "Supports stealth mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1573 +#: src/libslic3r/PrintConfig.cpp:1575 msgid "The firmware supports stealth mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1578 +#: src/libslic3r/PrintConfig.cpp:1580 msgid "How to apply limits" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1579 +#: src/libslic3r/PrintConfig.cpp:1581 msgid "Purpose of Machine Limits" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1581 +#: src/libslic3r/PrintConfig.cpp:1583 msgid "How to apply the Machine Limits" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1586 +#: src/libslic3r/PrintConfig.cpp:1588 msgid "Emit to G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1587 +#: src/libslic3r/PrintConfig.cpp:1589 msgid "Use for time estimate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1588 +#: src/libslic3r/PrintConfig.cpp:1590 msgid "Ignore" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1611 +#: src/libslic3r/PrintConfig.cpp:1613 msgid "Maximum feedrate X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1612 +#: src/libslic3r/PrintConfig.cpp:1614 msgid "Maximum feedrate Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1613 +#: src/libslic3r/PrintConfig.cpp:1615 msgid "Maximum feedrate Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1614 +#: src/libslic3r/PrintConfig.cpp:1616 msgid "Maximum feedrate E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1617 +#: src/libslic3r/PrintConfig.cpp:1619 msgid "Maximum feedrate of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1618 +#: src/libslic3r/PrintConfig.cpp:1620 msgid "Maximum feedrate of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1619 +#: src/libslic3r/PrintConfig.cpp:1621 msgid "Maximum feedrate of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1620 +#: src/libslic3r/PrintConfig.cpp:1622 msgid "Maximum feedrate of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1628 +#: src/libslic3r/PrintConfig.cpp:1630 msgid "Maximum acceleration X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1629 +#: src/libslic3r/PrintConfig.cpp:1631 msgid "Maximum acceleration Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1630 +#: src/libslic3r/PrintConfig.cpp:1632 msgid "Maximum acceleration Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1631 +#: src/libslic3r/PrintConfig.cpp:1633 msgid "Maximum acceleration E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1634 +#: src/libslic3r/PrintConfig.cpp:1636 msgid "Maximum acceleration of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1635 +#: src/libslic3r/PrintConfig.cpp:1637 msgid "Maximum acceleration of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1636 +#: src/libslic3r/PrintConfig.cpp:1638 msgid "Maximum acceleration of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1637 +#: src/libslic3r/PrintConfig.cpp:1639 msgid "Maximum acceleration of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1645 +#: src/libslic3r/PrintConfig.cpp:1647 msgid "Maximum jerk X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1646 +#: src/libslic3r/PrintConfig.cpp:1648 msgid "Maximum jerk Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1647 +#: src/libslic3r/PrintConfig.cpp:1649 msgid "Maximum jerk Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1648 +#: src/libslic3r/PrintConfig.cpp:1650 msgid "Maximum jerk E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1651 +#: src/libslic3r/PrintConfig.cpp:1653 msgid "Maximum jerk of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1652 +#: src/libslic3r/PrintConfig.cpp:1654 msgid "Maximum jerk of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1653 +#: src/libslic3r/PrintConfig.cpp:1655 msgid "Maximum jerk of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1654 +#: src/libslic3r/PrintConfig.cpp:1656 msgid "Maximum jerk of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1664 +#: src/libslic3r/PrintConfig.cpp:1666 msgid "Minimum feedrate when extruding" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1666 +#: src/libslic3r/PrintConfig.cpp:1668 msgid "Minimum feedrate when extruding (M205 S)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1674 +#: src/libslic3r/PrintConfig.cpp:1676 msgid "Minimum travel feedrate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1676 +#: src/libslic3r/PrintConfig.cpp:1678 msgid "Minimum travel feedrate (M205 T)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1684 +#: src/libslic3r/PrintConfig.cpp:1686 msgid "Maximum acceleration when extruding" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1686 +#: src/libslic3r/PrintConfig.cpp:1688 msgid "" "Maximum acceleration when extruding (M204 P)\n" "\n" @@ -11073,31 +11264,31 @@ msgid "" "(M204 T)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1697 +#: src/libslic3r/PrintConfig.cpp:1699 msgid "Maximum acceleration when retracting" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1699 +#: src/libslic3r/PrintConfig.cpp:1701 msgid "Maximum acceleration when retracting (M204 R)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1707 +#: src/libslic3r/PrintConfig.cpp:1709 msgid "Maximum acceleration for travel moves" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1709 +#: src/libslic3r/PrintConfig.cpp:1711 msgid "Maximum acceleration for travel moves (M204 T)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1716 src/libslic3r/PrintConfig.cpp:1725 +#: src/libslic3r/PrintConfig.cpp:1718 src/libslic3r/PrintConfig.cpp:1727 msgid "Max" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1717 +#: src/libslic3r/PrintConfig.cpp:1719 msgid "This setting represents the maximum speed of your fan." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1726 +#: src/libslic3r/PrintConfig.cpp:1728 #, possible-c-format msgid "" "This is the highest printable layer height for this extruder, used to cap " @@ -11106,28 +11297,28 @@ msgid "" "adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1736 +#: src/libslic3r/PrintConfig.cpp:1738 msgid "Max print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1737 +#: src/libslic3r/PrintConfig.cpp:1739 msgid "" "When setting other speed settings to 0 Slic3r will autocalculate the optimal " "speed in order to keep constant extruder pressure. This experimental setting " "is used to set the highest print speed you want to allow." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1747 +#: src/libslic3r/PrintConfig.cpp:1749 msgid "" "This experimental setting is used to set the maximum volumetric speed your " "extruder supports." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1756 +#: src/libslic3r/PrintConfig.cpp:1758 msgid "Max volumetric slope positive" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1757 src/libslic3r/PrintConfig.cpp:1768 +#: src/libslic3r/PrintConfig.cpp:1759 src/libslic3r/PrintConfig.cpp:1770 msgid "" "This experimental setting is used to limit the speed of change in extrusion " "rate. A value of 1.8 mm³/s² ensures, that a change from the extrusion rate " @@ -11135,95 +11326,95 @@ msgid "" "s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1761 src/libslic3r/PrintConfig.cpp:1772 +#: src/libslic3r/PrintConfig.cpp:1763 src/libslic3r/PrintConfig.cpp:1774 msgid "mm³/s²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1767 +#: src/libslic3r/PrintConfig.cpp:1769 msgid "Max volumetric slope negative" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1779 src/libslic3r/PrintConfig.cpp:1788 +#: src/libslic3r/PrintConfig.cpp:1781 src/libslic3r/PrintConfig.cpp:1790 msgid "Min" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1780 +#: src/libslic3r/PrintConfig.cpp:1782 msgid "This setting represents the minimum PWM your fan needs to work." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1789 +#: src/libslic3r/PrintConfig.cpp:1791 msgid "" "This is the lowest printable layer height for this extruder and limits the " "resolution for variable layer height. Typical values are between 0.05 mm and " "0.1 mm." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1797 +#: src/libslic3r/PrintConfig.cpp:1799 msgid "Min print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1798 +#: src/libslic3r/PrintConfig.cpp:1800 msgid "Slic3r will not scale speed down below this speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1805 +#: src/libslic3r/PrintConfig.cpp:1807 msgid "Minimal filament extrusion length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1806 +#: src/libslic3r/PrintConfig.cpp:1808 msgid "" "Generate no less than the number of skirt loops required to consume the " "specified amount of filament on the bottom layer. For multi-extruder " "machines, this minimum applies to each extruder." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1815 +#: src/libslic3r/PrintConfig.cpp:1817 msgid "Configuration notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1816 +#: src/libslic3r/PrintConfig.cpp:1818 msgid "" "You can put here your personal notes. This text will be added to the G-code " "header comments." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1826 +#: src/libslic3r/PrintConfig.cpp:1828 msgid "" "This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1831 +#: src/libslic3r/PrintConfig.cpp:1833 msgid "Host Type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1832 +#: src/libslic3r/PrintConfig.cpp:1834 msgid "" "Slic3r can upload G-code files to a printer host. This field must contain " "the kind of the host." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1852 +#: src/libslic3r/PrintConfig.cpp:1854 msgid "Only retract when crossing perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1853 +#: src/libslic3r/PrintConfig.cpp:1855 msgid "" "Disables retraction when the travel path does not exceed the upper layer's " "perimeters (and thus any ooze will be probably invisible)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1860 +#: src/libslic3r/PrintConfig.cpp:1862 msgid "" "This option will drop the temperature of the inactive extruders to prevent " "oozing. It will enable a tall skirt automatically and move extruders outside " "such skirt when changing temperatures." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1867 +#: src/libslic3r/PrintConfig.cpp:1869 msgid "Output filename format" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1868 +#: src/libslic3r/PrintConfig.cpp:1870 msgid "" "You can use all configuration options as variables inside this template. For " "example: [layer_height], [fill_density] etc. You can also use [timestamp], " @@ -11231,31 +11422,31 @@ msgid "" "[input_filename], [input_filename_base]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1877 +#: src/libslic3r/PrintConfig.cpp:1879 msgid "Detect bridging perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1879 +#: src/libslic3r/PrintConfig.cpp:1881 msgid "" "Experimental option to adjust flow for overhangs (bridge flow will be used), " "to apply bridge speed to them and enable fan." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1885 +#: src/libslic3r/PrintConfig.cpp:1887 msgid "Filament parking position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1886 +#: src/libslic3r/PrintConfig.cpp:1888 msgid "" "Distance of the extruder tip from the position where the filament is parked " "when unloaded. This should match the value in printer firmware." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1894 +#: src/libslic3r/PrintConfig.cpp:1896 msgid "Extra loading distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1895 +#: src/libslic3r/PrintConfig.cpp:1897 msgid "" "When set to zero, the distance the filament is moved from parking position " "during load is exactly the same as it was moved back during unload. When " @@ -11263,27 +11454,27 @@ msgid "" "than unloading." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1903 src/libslic3r/PrintConfig.cpp:1920 -#: src/libslic3r/PrintConfig.cpp:1933 src/libslic3r/PrintConfig.cpp:1943 +#: src/libslic3r/PrintConfig.cpp:1905 src/libslic3r/PrintConfig.cpp:1922 +#: src/libslic3r/PrintConfig.cpp:1935 src/libslic3r/PrintConfig.cpp:1945 msgid "Perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1904 +#: src/libslic3r/PrintConfig.cpp:1906 msgid "" "This is the acceleration your printer will use for perimeters. Set zero to " "disable acceleration control for perimeters." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1911 +#: src/libslic3r/PrintConfig.cpp:1913 msgid "Perimeter extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1913 +#: src/libslic3r/PrintConfig.cpp:1915 msgid "" "The extruder to use when printing perimeters and brim. First extruder is 1." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1922 +#: src/libslic3r/PrintConfig.cpp:1924 msgid "" "Set this to a non-zero value to set a manual extrusion width for perimeters. " "You may want to use thinner extrudates to get more accurate surfaces. If " @@ -11292,12 +11483,12 @@ msgid "" "it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1935 +#: src/libslic3r/PrintConfig.cpp:1937 msgid "" "Speed for perimeters (contours, aka vertical shells). Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1945 +#: src/libslic3r/PrintConfig.cpp:1947 msgid "" "This option sets the number of perimeters to generate for each layer. Note " "that Slic3r may increase this number automatically when it detects sloping " @@ -11305,11 +11496,11 @@ msgid "" "Perimeters option is enabled." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1949 +#: src/libslic3r/PrintConfig.cpp:1951 msgid "(minimum)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1957 +#: src/libslic3r/PrintConfig.cpp:1959 msgid "" "If you want to process the output G-code through custom scripts, just list " "their absolute paths here. Separate multiple scripts with a semicolon. " @@ -11318,90 +11509,90 @@ msgid "" "environment variables." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1969 +#: src/libslic3r/PrintConfig.cpp:1971 msgid "Printer type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1970 +#: src/libslic3r/PrintConfig.cpp:1972 msgid "Type of the printer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1975 +#: src/libslic3r/PrintConfig.cpp:1977 msgid "Printer notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1976 +#: src/libslic3r/PrintConfig.cpp:1978 msgid "You can put your notes regarding the printer here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1984 +#: src/libslic3r/PrintConfig.cpp:1986 msgid "Printer vendor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1985 +#: src/libslic3r/PrintConfig.cpp:1987 msgid "Name of the printer vendor." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1990 +#: src/libslic3r/PrintConfig.cpp:1992 msgid "Printer variant" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1991 +#: src/libslic3r/PrintConfig.cpp:1993 msgid "" "Name of the printer variant. For example, the printer variants may be " "differentiated by a nozzle diameter." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2008 +#: src/libslic3r/PrintConfig.cpp:2010 msgid "Raft contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2010 +#: src/libslic3r/PrintConfig.cpp:2012 msgid "" "The vertical distance between object and raft. Ignored for soluble interface." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2017 +#: src/libslic3r/PrintConfig.cpp:2019 msgid "Raft expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2019 +#: src/libslic3r/PrintConfig.cpp:2021 msgid "Expansion of the raft in XY plane for better stability." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2026 +#: src/libslic3r/PrintConfig.cpp:2028 msgid "First layer density" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2028 +#: src/libslic3r/PrintConfig.cpp:2030 msgid "Density of the first raft or support layer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2036 +#: src/libslic3r/PrintConfig.cpp:2038 msgid "First layer expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2038 +#: src/libslic3r/PrintConfig.cpp:2040 msgid "" "Expansion of the first raft or support layer to improve adhesion to print " "bed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2045 +#: src/libslic3r/PrintConfig.cpp:2047 msgid "Raft layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2047 +#: src/libslic3r/PrintConfig.cpp:2049 msgid "" "The object will be raised by this number of layers, and support material " "will be generated under it." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2055 +#: src/libslic3r/PrintConfig.cpp:2057 msgid "Resolution" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2056 +#: src/libslic3r/PrintConfig.cpp:2058 msgid "" "Minimum detail resolution, used to simplify the input file for speeding up " "the slicing job and reducing memory usage. High-resolution models often " @@ -11409,201 +11600,201 @@ msgid "" "simplification and use full resolution from input." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2066 +#: src/libslic3r/PrintConfig.cpp:2068 msgid "Minimum travel after retraction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2067 +#: src/libslic3r/PrintConfig.cpp:2069 msgid "" "Retraction is not triggered when travel moves are shorter than this length." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2073 +#: src/libslic3r/PrintConfig.cpp:2075 msgid "Retract amount before wipe" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2074 +#: src/libslic3r/PrintConfig.cpp:2076 msgid "" "With bowden extruders, it may be wise to do some amount of quick retract " "before doing the wipe movement." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2081 +#: src/libslic3r/PrintConfig.cpp:2083 msgid "Retract on layer change" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2082 +#: src/libslic3r/PrintConfig.cpp:2084 msgid "This flag enforces a retraction whenever a Z move is done." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2087 src/libslic3r/PrintConfig.cpp:2095 +#: src/libslic3r/PrintConfig.cpp:2089 src/libslic3r/PrintConfig.cpp:2097 msgid "Length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2088 +#: src/libslic3r/PrintConfig.cpp:2090 msgid "Retraction Length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2089 +#: src/libslic3r/PrintConfig.cpp:2091 msgid "" "When retraction is triggered, filament is pulled back by the specified " "amount (the length is measured on raw filament, before it enters the " "extruder)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2096 +#: src/libslic3r/PrintConfig.cpp:2098 msgid "Retraction Length (Toolchange)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2097 +#: src/libslic3r/PrintConfig.cpp:2099 msgid "" "When retraction is triggered before changing tool, filament is pulled back " "by the specified amount (the length is measured on raw filament, before it " "enters the extruder)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2105 +#: src/libslic3r/PrintConfig.cpp:2107 msgid "Lift Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2106 +#: src/libslic3r/PrintConfig.cpp:2108 msgid "" "If you set this to a positive value, Z is quickly raised every time a " "retraction is triggered. When using multiple extruders, only the setting for " "the first extruder will be considered." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2113 +#: src/libslic3r/PrintConfig.cpp:2115 msgid "Above Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2114 +#: src/libslic3r/PrintConfig.cpp:2116 msgid "Only lift Z above" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2115 +#: src/libslic3r/PrintConfig.cpp:2117 msgid "" "If you set this to a positive value, Z lift will only take place above the " "specified absolute Z. You can tune this setting for skipping lift on the " "first layers." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2122 +#: src/libslic3r/PrintConfig.cpp:2124 msgid "Below Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2123 +#: src/libslic3r/PrintConfig.cpp:2125 msgid "Only lift Z below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2124 +#: src/libslic3r/PrintConfig.cpp:2126 msgid "" "If you set this to a positive value, Z lift will only take place below the " "specified absolute Z. You can tune this setting for limiting lift to the " "first layers." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2132 src/libslic3r/PrintConfig.cpp:2140 +#: src/libslic3r/PrintConfig.cpp:2134 src/libslic3r/PrintConfig.cpp:2142 msgid "Extra length on restart" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2133 +#: src/libslic3r/PrintConfig.cpp:2135 msgid "" "When the retraction is compensated after the travel move, the extruder will " "push this additional amount of filament. This setting is rarely needed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2141 +#: src/libslic3r/PrintConfig.cpp:2143 msgid "" "When the retraction is compensated after changing tool, the extruder will " "push this additional amount of filament." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2148 src/libslic3r/PrintConfig.cpp:2149 +#: src/libslic3r/PrintConfig.cpp:2150 src/libslic3r/PrintConfig.cpp:2151 msgid "Retraction Speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2150 +#: src/libslic3r/PrintConfig.cpp:2152 msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2156 src/libslic3r/PrintConfig.cpp:2157 +#: src/libslic3r/PrintConfig.cpp:2158 src/libslic3r/PrintConfig.cpp:2159 msgid "Deretraction Speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2158 +#: src/libslic3r/PrintConfig.cpp:2160 msgid "" "The speed for loading of a filament into extruder after retraction (it only " "applies to the extruder motor). If left to zero, the retraction speed is " "used." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2165 +#: src/libslic3r/PrintConfig.cpp:2167 msgid "Seam position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2167 +#: src/libslic3r/PrintConfig.cpp:2169 msgid "Position of perimeters starting points." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2173 +#: src/libslic3r/PrintConfig.cpp:2175 msgid "Random" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2174 +#: src/libslic3r/PrintConfig.cpp:2176 msgid "Nearest" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2175 +#: src/libslic3r/PrintConfig.cpp:2177 msgid "Aligned" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2183 +#: src/libslic3r/PrintConfig.cpp:2185 msgid "Direction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2185 +#: src/libslic3r/PrintConfig.cpp:2187 msgid "Preferred direction of the seam" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2186 +#: src/libslic3r/PrintConfig.cpp:2188 msgid "Seam preferred direction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2193 +#: src/libslic3r/PrintConfig.cpp:2195 msgid "Jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2195 +#: src/libslic3r/PrintConfig.cpp:2197 msgid "Seam preferred direction jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2196 +#: src/libslic3r/PrintConfig.cpp:2198 msgid "Preferred direction of the seam - jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2203 +#: src/libslic3r/PrintConfig.cpp:2205 msgid "Distance from brim/object" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2204 +#: src/libslic3r/PrintConfig.cpp:2206 msgid "" "Distance between skirt and brim (when draft shield is not used) or objects." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2210 +#: src/libslic3r/PrintConfig.cpp:2212 msgid "Skirt height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2211 +#: src/libslic3r/PrintConfig.cpp:2213 msgid "Height of skirt expressed in layers." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2217 +#: src/libslic3r/PrintConfig.cpp:2219 msgid "Draft shield" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2218 +#: src/libslic3r/PrintConfig.cpp:2220 msgid "" "With draft shield active, the skirt will be printed skirt_distance from the " "object, possibly intersecting brim.\n" @@ -11613,81 +11804,81 @@ msgid "" "from print bed due to wind draft." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2226 +#: src/libslic3r/PrintConfig.cpp:2228 msgid "Disabled" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2227 +#: src/libslic3r/PrintConfig.cpp:2229 msgid "Limited" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2228 +#: src/libslic3r/PrintConfig.cpp:2230 msgid "Enabled" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2233 +#: src/libslic3r/PrintConfig.cpp:2235 msgid "Loops (minimum)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2234 +#: src/libslic3r/PrintConfig.cpp:2236 msgid "Skirt Loops" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2235 +#: src/libslic3r/PrintConfig.cpp:2237 msgid "" "Number of loops for the skirt. If the Minimum Extrusion Length option is " "set, the number of loops might be greater than the one configured here. Set " "this to zero to disable skirt completely." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2243 +#: src/libslic3r/PrintConfig.cpp:2245 msgid "Slow down if layer print time is below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2244 +#: src/libslic3r/PrintConfig.cpp:2246 msgid "" "If layer print time is estimated below this number of seconds, print moves " "speed will be scaled down to extend duration to this value." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2253 +#: src/libslic3r/PrintConfig.cpp:2255 msgid "Small perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2255 +#: src/libslic3r/PrintConfig.cpp:2257 msgid "" "This separate setting will affect the speed of perimeters having radius <= " "6.5mm (usually holes). If expressed as percentage (for example: 80%) it will " "be calculated on the perimeters speed setting above. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2265 +#: src/libslic3r/PrintConfig.cpp:2267 msgid "Solid infill threshold area" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2267 +#: src/libslic3r/PrintConfig.cpp:2269 msgid "" "Force solid infill for regions having a smaller area than the specified " "threshold." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2268 +#: src/libslic3r/PrintConfig.cpp:2270 msgid "mm²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2274 +#: src/libslic3r/PrintConfig.cpp:2276 msgid "Solid infill extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2276 +#: src/libslic3r/PrintConfig.cpp:2278 msgid "The extruder to use when printing solid infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2282 +#: src/libslic3r/PrintConfig.cpp:2284 msgid "Solid infill every" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2284 +#: src/libslic3r/PrintConfig.cpp:2286 msgid "" "This feature allows to force a solid layer every given number of layers. " "Zero to disable. You can set this to any value (for example 9999); Slic3r " @@ -11695,7 +11886,7 @@ msgid "" "according to nozzle diameter and layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2296 +#: src/libslic3r/PrintConfig.cpp:2298 msgid "" "Set this to a non-zero value to set a manual extrusion width for infill for " "solid surfaces. If left zero, default extrusion width will be used if set, " @@ -11703,26 +11894,26 @@ msgid "" "(for example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2307 +#: src/libslic3r/PrintConfig.cpp:2309 msgid "" "Speed for printing solid regions (top/bottom/internal horizontal shells). " "This can be expressed as a percentage (for example: 80%) over the default " "infill speed above. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2319 +#: src/libslic3r/PrintConfig.cpp:2321 msgid "Number of solid layers to generate on top and bottom surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2325 src/libslic3r/PrintConfig.cpp:2326 +#: src/libslic3r/PrintConfig.cpp:2327 src/libslic3r/PrintConfig.cpp:2328 msgid "Minimum thickness of a top / bottom shell" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2332 +#: src/libslic3r/PrintConfig.cpp:2334 msgid "Spiral vase" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2333 +#: src/libslic3r/PrintConfig.cpp:2335 msgid "" "This feature will raise Z gradually while printing a single-walled object in " "order to remove any visible seam. This option requires a single perimeter, " @@ -11731,18 +11922,18 @@ msgid "" "when printing more than one single object." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2341 +#: src/libslic3r/PrintConfig.cpp:2343 msgid "Temperature variation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2342 +#: src/libslic3r/PrintConfig.cpp:2344 msgid "" "Temperature difference to be applied when an extruder is not active. Enables " "a full-height \"sacrificial\" skirt on which the nozzles are periodically " "wiped." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2352 +#: src/libslic3r/PrintConfig.cpp:2354 msgid "" "This start procedure is inserted at the beginning, after bed has reached the " "target temperature and extruder just started heating, and before extruder " @@ -11753,7 +11944,7 @@ msgid "" "put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2367 +#: src/libslic3r/PrintConfig.cpp:2369 msgid "" "This start procedure is inserted at the beginning, after any printer start " "gcode (and after any toolchange to this filament in case of multi-material " @@ -11766,45 +11957,45 @@ msgid "" "extruders, the gcode is processed in extruder order." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2383 +#: src/libslic3r/PrintConfig.cpp:2385 msgid "Color change G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2384 +#: src/libslic3r/PrintConfig.cpp:2386 msgid "This G-code will be used as a code for the color change" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2393 +#: src/libslic3r/PrintConfig.cpp:2395 msgid "This G-code will be used as a code for the pause print" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2402 +#: src/libslic3r/PrintConfig.cpp:2404 msgid "This G-code will be used as a custom code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2410 +#: src/libslic3r/PrintConfig.cpp:2412 msgid "Single Extruder Multi Material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2411 +#: src/libslic3r/PrintConfig.cpp:2413 msgid "The printer multiplexes filaments into a single hot end." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2416 +#: src/libslic3r/PrintConfig.cpp:2418 msgid "Prime all printing extruders" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2417 +#: src/libslic3r/PrintConfig.cpp:2419 msgid "" "If enabled, all printing extruders will be primed at the front edge of the " "print bed at the start of the print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2422 +#: src/libslic3r/PrintConfig.cpp:2424 msgid "No sparse layers (EXPERIMENTAL)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2423 +#: src/libslic3r/PrintConfig.cpp:2425 msgid "" "If enabled, the wipe tower will not be printed on layers with no " "toolchanges. On layers with a toolchange, extruder will travel downward to " @@ -11812,135 +12003,135 @@ msgid "" "with the print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2430 +#: src/libslic3r/PrintConfig.cpp:2432 msgid "Slice gap closing radius" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2432 +#: src/libslic3r/PrintConfig.cpp:2434 msgid "" "Cracks smaller than 2x gap closing radius are being filled during the " "triangle mesh slicing. The gap closing operation may reduce the final print " "resolution, therefore it is advisable to keep the value reasonably low." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2440 +#: src/libslic3r/PrintConfig.cpp:2442 msgid "Slicing Mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2442 +#: src/libslic3r/PrintConfig.cpp:2444 msgid "" -"Use \"Even / Odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " +"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " "close all holes in the model." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2447 +#: src/libslic3r/PrintConfig.cpp:2449 msgid "Regular" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2448 -msgid "Even / Odd" +#: src/libslic3r/PrintConfig.cpp:2450 +msgid "Even-odd" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2449 +#: src/libslic3r/PrintConfig.cpp:2451 msgid "Close holes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2454 +#: src/libslic3r/PrintConfig.cpp:2456 msgid "Generate support material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2456 +#: src/libslic3r/PrintConfig.cpp:2458 msgid "Enable support material generation." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2460 +#: src/libslic3r/PrintConfig.cpp:2462 msgid "Auto generated supports" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2462 +#: src/libslic3r/PrintConfig.cpp:2464 msgid "" "If checked, supports will be generated automatically based on the overhang " "threshold value. If unchecked, supports will be generated inside the " "\"Support Enforcer\" volumes only." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2468 +#: src/libslic3r/PrintConfig.cpp:2470 msgid "XY separation between an object and its support" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2470 +#: src/libslic3r/PrintConfig.cpp:2472 msgid "" "XY separation between an object and its support. If expressed as percentage " "(for example 50%), it will be calculated over external perimeter width." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2480 +#: src/libslic3r/PrintConfig.cpp:2482 msgid "Pattern angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2482 +#: src/libslic3r/PrintConfig.cpp:2484 msgid "" "Use this setting to rotate the support material pattern on the horizontal " "plane." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2492 src/libslic3r/PrintConfig.cpp:3394 +#: src/libslic3r/PrintConfig.cpp:2494 src/libslic3r/PrintConfig.cpp:3404 msgid "" "Only create support if it lies on a build plate. Don't create support on a " "print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2498 +#: src/libslic3r/PrintConfig.cpp:2500 msgid "Top contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2500 +#: src/libslic3r/PrintConfig.cpp:2502 msgid "" "The vertical distance between object and support material interface. Setting " "this to 0 will also prevent Slic3r from using bridge flow and speed for the " "first object layer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2508 +#: src/libslic3r/PrintConfig.cpp:2510 msgid "0 (soluble)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2509 +#: src/libslic3r/PrintConfig.cpp:2511 msgid "0.1 (detachable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2510 +#: src/libslic3r/PrintConfig.cpp:2512 msgid "0.2 (detachable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2516 +#: src/libslic3r/PrintConfig.cpp:2518 msgid "Bottom contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2518 +#: src/libslic3r/PrintConfig.cpp:2520 msgid "" "The vertical distance between the object top surface and the support " "material interface. If set to zero, support_material_contact_distance will " "be used for both top and bottom contact Z distances." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2525 src/libslic3r/PrintConfig.cpp:2608 +#: src/libslic3r/PrintConfig.cpp:2527 src/libslic3r/PrintConfig.cpp:2610 msgid "same as top" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2526 +#: src/libslic3r/PrintConfig.cpp:2528 msgid "0.1" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2527 +#: src/libslic3r/PrintConfig.cpp:2529 msgid "0.2" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2532 +#: src/libslic3r/PrintConfig.cpp:2534 msgid "Enforce support for the first" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2534 +#: src/libslic3r/PrintConfig.cpp:2536 msgid "" "Generate support material for the specified number of layers counting from " "bottom, regardless of whether normal support material is enabled or not and " @@ -11948,21 +12139,21 @@ msgid "" "of objects having a very thin or poor footprint on the build plate." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2539 +#: src/libslic3r/PrintConfig.cpp:2541 msgid "Enforce support for the first n layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2545 +#: src/libslic3r/PrintConfig.cpp:2547 msgid "Support material/raft/skirt extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2547 +#: src/libslic3r/PrintConfig.cpp:2549 msgid "" "The extruder to use when printing support material, raft and skirt (1+, 0 to " "use the current extruder to minimize tool changes)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2556 +#: src/libslic3r/PrintConfig.cpp:2558 msgid "" "Set this to a non-zero value to set a manual extrusion width for support " "material. If left zero, default extrusion width will be used if set, " @@ -11970,151 +12161,151 @@ msgid "" "example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2565 +#: src/libslic3r/PrintConfig.cpp:2567 msgid "Interface loops" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2567 +#: src/libslic3r/PrintConfig.cpp:2569 msgid "" "Cover the top contact layer of the supports with loops. Disabled by default." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2572 +#: src/libslic3r/PrintConfig.cpp:2574 msgid "Support material/raft interface extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2574 +#: src/libslic3r/PrintConfig.cpp:2576 msgid "" "The extruder to use when printing support material interface (1+, 0 to use " "the current extruder to minimize tool changes). This affects raft too." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2582 +#: src/libslic3r/PrintConfig.cpp:2584 msgid "Top interface layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2584 +#: src/libslic3r/PrintConfig.cpp:2586 msgid "" "Number of interface layers to insert between the object(s) and support " "material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2591 +#: src/libslic3r/PrintConfig.cpp:2593 msgid "0 (off)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2592 +#: src/libslic3r/PrintConfig.cpp:2594 msgid "1 (light)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2593 +#: src/libslic3r/PrintConfig.cpp:2595 msgid "2 (default)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2594 +#: src/libslic3r/PrintConfig.cpp:2596 msgid "3 (heavy)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2600 +#: src/libslic3r/PrintConfig.cpp:2602 msgid "Bottom interface layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2602 +#: src/libslic3r/PrintConfig.cpp:2604 msgid "" "Number of interface layers to insert between the object(s) and support " "material. Set to -1 to use support_material_interface_layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2614 +#: src/libslic3r/PrintConfig.cpp:2616 msgid "Closing radius" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2616 +#: src/libslic3r/PrintConfig.cpp:2618 msgid "" "For snug supports, the support regions will be merged using morphological " "closing operation. Gaps smaller than the closing radius will be filled in." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2624 +#: src/libslic3r/PrintConfig.cpp:2626 msgid "Interface pattern spacing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2626 +#: src/libslic3r/PrintConfig.cpp:2628 msgid "Spacing between interface lines. Set zero to get a solid interface." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2635 +#: src/libslic3r/PrintConfig.cpp:2637 msgid "" "Speed for printing support material interface layers. If expressed as " "percentage (for example 50%) it will be calculated over support material " "speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2644 +#: src/libslic3r/PrintConfig.cpp:2646 msgid "Pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2646 +#: src/libslic3r/PrintConfig.cpp:2648 msgid "Pattern used to generate support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2652 +#: src/libslic3r/PrintConfig.cpp:2654 msgid "Rectilinear grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2658 +#: src/libslic3r/PrintConfig.cpp:2660 msgid "Interface pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2660 +#: src/libslic3r/PrintConfig.cpp:2662 msgid "" "Pattern used to generate support material interface. Default pattern for non-" "soluble support interface is Rectilinear, while default pattern for soluble " "support interface is Concentric." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2674 +#: src/libslic3r/PrintConfig.cpp:2676 msgid "Pattern spacing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2676 +#: src/libslic3r/PrintConfig.cpp:2678 msgid "Spacing between support material lines." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2685 +#: src/libslic3r/PrintConfig.cpp:2687 msgid "Speed for printing support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2692 +#: src/libslic3r/PrintConfig.cpp:2694 msgid "Style" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2694 +#: src/libslic3r/PrintConfig.cpp:2696 msgid "" "Style and shape of the support towers. Projecting the supports into a " "regular grid will create more stable supports, while snug support towers " "will save material and reduce object scarring." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2701 +#: src/libslic3r/PrintConfig.cpp:2703 msgid "Snug" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2706 +#: src/libslic3r/PrintConfig.cpp:2708 msgid "Synchronize with object layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2708 +#: src/libslic3r/PrintConfig.cpp:2710 msgid "" "Synchronize support layers with the object print layers. This is useful with " "multi-material printers, where the extruder switch is expensive." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2714 +#: src/libslic3r/PrintConfig.cpp:2716 msgid "Overhang threshold" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2716 +#: src/libslic3r/PrintConfig.cpp:2718 msgid "" "Support material will not be generated for overhangs whose slope angle (90° " "= vertical) is above the given threshold. In other words, this value " @@ -12123,55 +12314,58 @@ msgid "" "detection (recommended)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2728 +#: src/libslic3r/PrintConfig.cpp:2730 msgid "With sheath around the support" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2730 +#: src/libslic3r/PrintConfig.cpp:2732 msgid "" "Add a sheath (a single perimeter line) around the base support. This makes " "the support more reliable, but also more difficult to remove." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2737 +#: src/libslic3r/PrintConfig.cpp:2739 msgid "" "Nozzle temperature for layers after the first one. Set this to zero to " "disable temperature control commands in the output G-code." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2740 +#: src/libslic3r/PrintConfig.cpp:2742 msgid "Nozzle temperature" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2746 +#: src/libslic3r/PrintConfig.cpp:2748 msgid "Thick bridges" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2748 -msgid "Print bridges with round extrusions." +#: src/libslic3r/PrintConfig.cpp:2750 +msgid "" +"If enabled, bridges are more reliable, can bridge longer distances, but may " +"look worse. If disabled, bridges look better but are reliable just for " +"shorter bridged distances." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2753 +#: src/libslic3r/PrintConfig.cpp:2756 msgid "Detect thin walls" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2755 +#: src/libslic3r/PrintConfig.cpp:2758 msgid "" "Detect single-width walls (parts where two extrusions don't fit and we need " "to collapse them into a single trace)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2761 +#: src/libslic3r/PrintConfig.cpp:2764 msgid "Threads" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2762 +#: src/libslic3r/PrintConfig.cpp:2765 msgid "" "Threads are used to parallelize long-running tasks. Optimal threads number " "is slightly above the number of available cores/processors." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2774 +#: src/libslic3r/PrintConfig.cpp:2777 msgid "" "This custom code is inserted before every toolchange. Placeholder variables " "for all PrusaSlicer settings as well as {toolchange_z}, {previous_extruder} " @@ -12181,7 +12375,7 @@ msgid "" "behaviour both before and after the toolchange." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2787 +#: src/libslic3r/PrintConfig.cpp:2790 msgid "" "Set this to a non-zero value to set a manual extrusion width for infill for " "top surfaces. You may want to use thinner extrudates to fill all narrow " @@ -12190,7 +12384,7 @@ msgid "" "percentage (for example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2799 +#: src/libslic3r/PrintConfig.cpp:2802 msgid "" "Speed for printing top solid layers (it only applies to the uppermost " "external layers and not to their internal solid layers). You may want to " @@ -12199,65 +12393,65 @@ msgid "" "for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2814 +#: src/libslic3r/PrintConfig.cpp:2817 msgid "Number of solid layers to generate on top surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2815 +#: src/libslic3r/PrintConfig.cpp:2818 msgid "Top solid layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2823 +#: src/libslic3r/PrintConfig.cpp:2826 msgid "" "The number of top solid layers is increased above top_solid_layers if " "necessary to satisfy minimum thickness of top shell. This is useful to " "prevent pillowing effect when printing with variable layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2826 +#: src/libslic3r/PrintConfig.cpp:2829 msgid "Minimum top shell thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2833 +#: src/libslic3r/PrintConfig.cpp:2836 msgid "Speed for travel moves (jumps between distant extrusion points)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2841 +#: src/libslic3r/PrintConfig.cpp:2844 msgid "Z travel" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2842 +#: src/libslic3r/PrintConfig.cpp:2845 msgid "" "Speed for movements along the Z axis.\n" "When set to zero, the value is ignored and regular travel speed is used " "instead." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2850 +#: src/libslic3r/PrintConfig.cpp:2853 msgid "Use firmware retraction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2851 +#: src/libslic3r/PrintConfig.cpp:2854 msgid "" "This experimental setting uses G10 and G11 commands to have the firmware " "handle the retraction. This is only supported in recent Marlin." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2857 +#: src/libslic3r/PrintConfig.cpp:2860 msgid "Use relative E distances" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2858 +#: src/libslic3r/PrintConfig.cpp:2861 msgid "" "If your firmware requires relative E values, check this, otherwise leave it " "unchecked. Most firmwares use absolute values." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2864 +#: src/libslic3r/PrintConfig.cpp:2867 msgid "Use volumetric E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2865 +#: src/libslic3r/PrintConfig.cpp:2868 msgid "" "This experimental setting uses outputs the E values in cubic millimeters " "instead of linear millimeters. If your firmware doesn't already know " @@ -12267,131 +12461,131 @@ msgid "" "only supported in recent Marlin." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2875 +#: src/libslic3r/PrintConfig.cpp:2878 msgid "Enable variable layer height feature" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2876 +#: src/libslic3r/PrintConfig.cpp:2879 msgid "" "Some printers or printer setups may have difficulties printing with a " "variable layer height. Enabled by default." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2882 +#: src/libslic3r/PrintConfig.cpp:2885 msgid "Wipe while retracting" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2883 +#: src/libslic3r/PrintConfig.cpp:2886 msgid "" "This flag will move the nozzle while retracting to minimize the possible " "blob on leaky extruders." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2890 +#: src/libslic3r/PrintConfig.cpp:2893 msgid "" "Multi material printers may need to prime or purge extruders on tool " "changes. Extrude the excess material into the wipe tower." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2896 +#: src/libslic3r/PrintConfig.cpp:2899 msgid "Purging volumes - load/unload volumes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2897 +#: src/libslic3r/PrintConfig.cpp:2900 msgid "" "This vector saves required volumes to change from/to each tool used on the " "wipe tower. These values are used to simplify creation of the full purging " "volumes below." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2903 +#: src/libslic3r/PrintConfig.cpp:2906 msgid "Purging volumes - matrix" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2904 +#: src/libslic3r/PrintConfig.cpp:2907 msgid "" "This matrix describes volumes (in cubic milimetres) required to purge the " "new filament on the wipe tower for any given pair of tools." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2913 +#: src/libslic3r/PrintConfig.cpp:2916 msgid "Position X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2914 +#: src/libslic3r/PrintConfig.cpp:2917 msgid "X coordinate of the left front corner of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2920 +#: src/libslic3r/PrintConfig.cpp:2923 msgid "Position Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2921 +#: src/libslic3r/PrintConfig.cpp:2924 msgid "Y coordinate of the left front corner of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2928 +#: src/libslic3r/PrintConfig.cpp:2931 msgid "Width of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2934 +#: src/libslic3r/PrintConfig.cpp:2937 msgid "Wipe tower rotation angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2935 +#: src/libslic3r/PrintConfig.cpp:2938 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2941 src/libslic3r/PrintConfig.cpp:2942 +#: src/libslic3r/PrintConfig.cpp:2944 src/libslic3r/PrintConfig.cpp:2945 msgid "Wipe tower brim width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2950 +#: src/libslic3r/PrintConfig.cpp:2953 msgid "Wipe into this object's infill" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2951 +#: src/libslic3r/PrintConfig.cpp:2954 msgid "" "Purging after toolchange will be done inside this object's infills. This " "lowers the amount of waste but may result in longer print time due to " "additional travel moves." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2958 +#: src/libslic3r/PrintConfig.cpp:2961 msgid "Wipe into this object" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2959 +#: src/libslic3r/PrintConfig.cpp:2962 msgid "" "Object will be used to purge the nozzle after a toolchange to save material " "that would otherwise end up in the wipe tower and decrease print time. " "Colours of the objects will be mixed as a result." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2965 +#: src/libslic3r/PrintConfig.cpp:2968 msgid "Maximal bridging distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2966 +#: src/libslic3r/PrintConfig.cpp:2969 msgid "Maximal distance between supports on sparse infill sections." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2972 +#: src/libslic3r/PrintConfig.cpp:2975 msgid "XY Size Compensation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2974 +#: src/libslic3r/PrintConfig.cpp:2977 msgid "" "The object will be grown/shrunk in the XY plane by the configured value " "(negative = inwards, positive = outwards). This might be useful for fine-" "tuning hole sizes." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2982 +#: src/libslic3r/PrintConfig.cpp:2985 msgid "Z offset" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2983 +#: src/libslic3r/PrintConfig.cpp:2986 msgid "" "This value will be added (or subtracted) from all the Z coordinates in the " "output G-code. It is used to compensate for bad Z endstop position: for " @@ -12399,414 +12593,414 @@ msgid "" "print bed, set this to -0.3 (or fix your endstop)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3050 +#: src/libslic3r/PrintConfig.cpp:3053 msgid "Display width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3051 +#: src/libslic3r/PrintConfig.cpp:3054 msgid "Width of the display" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3056 +#: src/libslic3r/PrintConfig.cpp:3059 msgid "Display height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3057 +#: src/libslic3r/PrintConfig.cpp:3060 msgid "Height of the display" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3062 +#: src/libslic3r/PrintConfig.cpp:3065 msgid "Number of pixels in" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3064 +#: src/libslic3r/PrintConfig.cpp:3067 msgid "Number of pixels in X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3070 +#: src/libslic3r/PrintConfig.cpp:3073 msgid "Number of pixels in Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3075 +#: src/libslic3r/PrintConfig.cpp:3078 msgid "Display horizontal mirroring" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3076 +#: src/libslic3r/PrintConfig.cpp:3079 msgid "Mirror horizontally" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3077 +#: src/libslic3r/PrintConfig.cpp:3080 msgid "Enable horizontal mirroring of output images" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3082 +#: src/libslic3r/PrintConfig.cpp:3085 msgid "Display vertical mirroring" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3083 +#: src/libslic3r/PrintConfig.cpp:3086 msgid "Mirror vertically" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3084 +#: src/libslic3r/PrintConfig.cpp:3087 msgid "Enable vertical mirroring of output images" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3089 +#: src/libslic3r/PrintConfig.cpp:3092 msgid "Display orientation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3090 +#: src/libslic3r/PrintConfig.cpp:3093 msgid "" "Set the actual LCD display orientation inside the SLA printer. Portrait mode " "will flip the meaning of display width and height parameters and the output " "images will be rotated by 90 degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3096 +#: src/libslic3r/PrintConfig.cpp:3099 msgid "Landscape" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3097 +#: src/libslic3r/PrintConfig.cpp:3100 msgid "Portrait" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3102 +#: src/libslic3r/PrintConfig.cpp:3105 msgid "Fast" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3103 +#: src/libslic3r/PrintConfig.cpp:3106 msgid "Fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3104 +#: src/libslic3r/PrintConfig.cpp:3107 msgid "Time of the fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3111 +#: src/libslic3r/PrintConfig.cpp:3114 msgid "Slow" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3112 +#: src/libslic3r/PrintConfig.cpp:3115 msgid "Slow tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3113 +#: src/libslic3r/PrintConfig.cpp:3116 msgid "Time of the slow tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3120 +#: src/libslic3r/PrintConfig.cpp:3123 msgid "Area fill" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3121 +#: src/libslic3r/PrintConfig.cpp:3124 msgid "" "The percentage of the bed area. \n" "If the print area exceeds the specified value, \n" "then a slow tilt will be used, otherwise - a fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3128 src/libslic3r/PrintConfig.cpp:3129 -#: src/libslic3r/PrintConfig.cpp:3130 +#: src/libslic3r/PrintConfig.cpp:3131 src/libslic3r/PrintConfig.cpp:3132 +#: src/libslic3r/PrintConfig.cpp:3133 msgid "Printer scaling correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3136 src/libslic3r/PrintConfig.cpp:3137 +#: src/libslic3r/PrintConfig.cpp:3139 src/libslic3r/PrintConfig.cpp:3140 msgid "Printer absolute correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3138 +#: src/libslic3r/PrintConfig.cpp:3141 msgid "" "Will inflate or deflate the sliced 2D polygons according to the sign of the " "correction." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3144 +#: src/libslic3r/PrintConfig.cpp:3147 msgid "Elephant foot minimum width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3146 +#: src/libslic3r/PrintConfig.cpp:3149 msgid "" "Minimum width of features to maintain when doing elephant foot compensation." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3153 src/libslic3r/PrintConfig.cpp:3154 +#: src/libslic3r/PrintConfig.cpp:3156 src/libslic3r/PrintConfig.cpp:3157 msgid "Printer gamma correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3155 +#: src/libslic3r/PrintConfig.cpp:3158 msgid "" "This will apply a gamma correction to the rasterized 2D polygons. A gamma " "value of zero means thresholding with the threshold in the middle. This " "behaviour eliminates antialiasing without losing holes in polygons." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3167 src/libslic3r/PrintConfig.cpp:3168 +#: src/libslic3r/PrintConfig.cpp:3177 src/libslic3r/PrintConfig.cpp:3178 msgid "SLA material type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3179 src/libslic3r/PrintConfig.cpp:3180 +#: src/libslic3r/PrintConfig.cpp:3189 src/libslic3r/PrintConfig.cpp:3190 msgid "Initial layer height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3186 src/libslic3r/PrintConfig.cpp:3187 +#: src/libslic3r/PrintConfig.cpp:3196 src/libslic3r/PrintConfig.cpp:3197 msgid "Bottle volume" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3188 +#: src/libslic3r/PrintConfig.cpp:3198 msgid "ml" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3193 src/libslic3r/PrintConfig.cpp:3194 +#: src/libslic3r/PrintConfig.cpp:3203 src/libslic3r/PrintConfig.cpp:3204 msgid "Bottle weight" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3195 +#: src/libslic3r/PrintConfig.cpp:3205 msgid "kg" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3202 +#: src/libslic3r/PrintConfig.cpp:3212 msgid "g/ml" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3209 +#: src/libslic3r/PrintConfig.cpp:3219 msgid "money/bottle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3214 +#: src/libslic3r/PrintConfig.cpp:3224 msgid "Faded layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3215 +#: src/libslic3r/PrintConfig.cpp:3225 msgid "" "Number of the layers needed for the exposure time fade from initial exposure " "time to the exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3222 src/libslic3r/PrintConfig.cpp:3223 +#: src/libslic3r/PrintConfig.cpp:3232 src/libslic3r/PrintConfig.cpp:3233 msgid "Minimum exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3230 src/libslic3r/PrintConfig.cpp:3231 +#: src/libslic3r/PrintConfig.cpp:3240 src/libslic3r/PrintConfig.cpp:3241 msgid "Maximum exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3238 src/libslic3r/PrintConfig.cpp:3239 +#: src/libslic3r/PrintConfig.cpp:3248 src/libslic3r/PrintConfig.cpp:3249 msgid "Exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3245 src/libslic3r/PrintConfig.cpp:3246 +#: src/libslic3r/PrintConfig.cpp:3255 src/libslic3r/PrintConfig.cpp:3256 msgid "Minimum initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3253 src/libslic3r/PrintConfig.cpp:3254 +#: src/libslic3r/PrintConfig.cpp:3263 src/libslic3r/PrintConfig.cpp:3264 msgid "Maximum initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3261 src/libslic3r/PrintConfig.cpp:3262 +#: src/libslic3r/PrintConfig.cpp:3271 src/libslic3r/PrintConfig.cpp:3272 msgid "Initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3268 src/libslic3r/PrintConfig.cpp:3269 +#: src/libslic3r/PrintConfig.cpp:3278 src/libslic3r/PrintConfig.cpp:3279 msgid "Correction for expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3275 +#: src/libslic3r/PrintConfig.cpp:3285 msgid "SLA print material notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3276 +#: src/libslic3r/PrintConfig.cpp:3286 msgid "You can put your notes regarding the SLA print material here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3288 src/libslic3r/PrintConfig.cpp:3299 +#: src/libslic3r/PrintConfig.cpp:3298 src/libslic3r/PrintConfig.cpp:3309 msgid "Default SLA material profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3310 +#: src/libslic3r/PrintConfig.cpp:3320 msgid "Generate supports" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3312 +#: src/libslic3r/PrintConfig.cpp:3322 msgid "Generate supports for the models" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3317 +#: src/libslic3r/PrintConfig.cpp:3327 msgid "Pinhead front diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3319 +#: src/libslic3r/PrintConfig.cpp:3329 msgid "Diameter of the pointing side of the head" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3326 +#: src/libslic3r/PrintConfig.cpp:3336 msgid "Head penetration" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3328 +#: src/libslic3r/PrintConfig.cpp:3338 msgid "How much the pinhead has to penetrate the model surface" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3335 +#: src/libslic3r/PrintConfig.cpp:3345 msgid "Pinhead width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3337 +#: src/libslic3r/PrintConfig.cpp:3347 msgid "Width from the back sphere center to the front sphere center" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3345 +#: src/libslic3r/PrintConfig.cpp:3355 msgid "Pillar diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3347 +#: src/libslic3r/PrintConfig.cpp:3357 msgid "Diameter in mm of the support pillars" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3355 +#: src/libslic3r/PrintConfig.cpp:3365 msgid "Small pillar diameter percent" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3357 +#: src/libslic3r/PrintConfig.cpp:3367 msgid "" "The percentage of smaller pillars compared to the normal pillar diameter " "which are used in problematic areas where a normal pilla cannot fit." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3366 +#: src/libslic3r/PrintConfig.cpp:3376 msgid "Max bridges on a pillar" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3368 +#: src/libslic3r/PrintConfig.cpp:3378 msgid "" "Maximum number of bridges that can be placed on a pillar. Bridges hold " "support point pinheads and connect to pillars as small branches." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3376 +#: src/libslic3r/PrintConfig.cpp:3386 msgid "Pillar connection mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3377 +#: src/libslic3r/PrintConfig.cpp:3387 msgid "" "Controls the bridge type between two neighboring pillars. Can be zig-zag, " "cross (double zig-zag) or dynamic which will automatically switch between " "the first two depending on the distance of the two pillars." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3385 +#: src/libslic3r/PrintConfig.cpp:3395 msgid "Zig-Zag" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3386 +#: src/libslic3r/PrintConfig.cpp:3396 msgid "Cross" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3387 +#: src/libslic3r/PrintConfig.cpp:3397 msgid "Dynamic" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3399 +#: src/libslic3r/PrintConfig.cpp:3409 msgid "Pillar widening factor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3401 +#: src/libslic3r/PrintConfig.cpp:3411 msgid "" "Merging bridges or pillars into another pillars can increase the radius. " "Zero means no increase, one means full increase." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3410 +#: src/libslic3r/PrintConfig.cpp:3420 msgid "Support base diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3412 +#: src/libslic3r/PrintConfig.cpp:3422 msgid "Diameter in mm of the pillar base" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3420 +#: src/libslic3r/PrintConfig.cpp:3430 msgid "Support base height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3422 +#: src/libslic3r/PrintConfig.cpp:3432 msgid "The height of the pillar base cone" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3429 +#: src/libslic3r/PrintConfig.cpp:3439 msgid "Support base safety distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3432 +#: src/libslic3r/PrintConfig.cpp:3442 msgid "" "The minimum distance of the pillar base from the model in mm. Makes sense in " "zero elevation mode where a gap according to this parameter is inserted " "between the model and the pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3442 +#: src/libslic3r/PrintConfig.cpp:3452 msgid "Critical angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3444 +#: src/libslic3r/PrintConfig.cpp:3454 msgid "The default angle for connecting support sticks and junctions." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3452 +#: src/libslic3r/PrintConfig.cpp:3462 msgid "Max bridge length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3454 +#: src/libslic3r/PrintConfig.cpp:3464 msgid "The max length of a bridge" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3461 +#: src/libslic3r/PrintConfig.cpp:3471 msgid "Max pillar linking distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3463 +#: src/libslic3r/PrintConfig.cpp:3473 msgid "" "The max distance of two pillars to get linked with each other. A zero value " "will prohibit pillar cascading." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3473 +#: src/libslic3r/PrintConfig.cpp:3483 msgid "" "How much the supports should lift up the supported object. If \"Pad around " "object\" is enabled, this value is ignored." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3484 +#: src/libslic3r/PrintConfig.cpp:3494 msgid "This is a relative measure of support points density." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3490 +#: src/libslic3r/PrintConfig.cpp:3500 msgid "Minimal distance of the support points" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3492 +#: src/libslic3r/PrintConfig.cpp:3502 msgid "No support points will be placed closer than this threshold." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3498 +#: src/libslic3r/PrintConfig.cpp:3508 msgid "Use pad" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3500 +#: src/libslic3r/PrintConfig.cpp:3510 msgid "Add a pad underneath the supported model" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3505 +#: src/libslic3r/PrintConfig.cpp:3515 msgid "Pad wall thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3507 +#: src/libslic3r/PrintConfig.cpp:3517 msgid "The thickness of the pad and its optional cavity walls." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3515 +#: src/libslic3r/PrintConfig.cpp:3525 msgid "Pad wall height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3516 +#: src/libslic3r/PrintConfig.cpp:3526 msgid "" "Defines the pad cavity depth. Set to zero to disable the cavity. Be careful " "when enabling this feature, as some resins may produce an extreme suction " @@ -12814,111 +13008,111 @@ msgid "" "difficult." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3529 +#: src/libslic3r/PrintConfig.cpp:3539 msgid "Pad brim size" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3530 +#: src/libslic3r/PrintConfig.cpp:3540 msgid "How far should the pad extend around the contained geometry" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3540 +#: src/libslic3r/PrintConfig.cpp:3550 msgid "Max merge distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3542 +#: src/libslic3r/PrintConfig.cpp:3552 msgid "" "Some objects can get along with a few smaller pads instead of a single big " "one. This parameter defines how far the center of two smaller pads should " "be. If theyare closer, they will get merged into one pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3562 +#: src/libslic3r/PrintConfig.cpp:3572 msgid "Pad wall slope" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3564 +#: src/libslic3r/PrintConfig.cpp:3574 msgid "" "The slope of the pad wall relative to the bed plane. 90 degrees means " "straight walls." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3575 +#: src/libslic3r/PrintConfig.cpp:3585 msgid "Create pad around object and ignore the support elevation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3580 +#: src/libslic3r/PrintConfig.cpp:3590 msgid "Pad around object everywhere" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3582 +#: src/libslic3r/PrintConfig.cpp:3592 msgid "Force pad around object everywhere" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3587 +#: src/libslic3r/PrintConfig.cpp:3597 msgid "Pad object gap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3589 +#: src/libslic3r/PrintConfig.cpp:3599 msgid "" "The gap between the object bottom and the generated pad in zero elevation " "mode." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3598 +#: src/libslic3r/PrintConfig.cpp:3608 msgid "Pad object connector stride" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3600 +#: src/libslic3r/PrintConfig.cpp:3610 msgid "" "Distance between two connector sticks which connect the object and the " "generated pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3607 +#: src/libslic3r/PrintConfig.cpp:3617 msgid "Pad object connector width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3609 +#: src/libslic3r/PrintConfig.cpp:3619 msgid "" "Width of the connector sticks which connect the object and the generated pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3616 +#: src/libslic3r/PrintConfig.cpp:3626 msgid "Pad object connector penetration" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3619 +#: src/libslic3r/PrintConfig.cpp:3629 msgid "How much should the tiny connectors penetrate into the model body." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3626 +#: src/libslic3r/PrintConfig.cpp:3636 msgid "Enable hollowing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3628 +#: src/libslic3r/PrintConfig.cpp:3638 msgid "Hollow out a model to have an empty interior" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3633 +#: src/libslic3r/PrintConfig.cpp:3643 msgid "Wall thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3635 +#: src/libslic3r/PrintConfig.cpp:3645 msgid "Minimum wall thickness of a hollowed model." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3643 +#: src/libslic3r/PrintConfig.cpp:3653 msgid "Accuracy" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3645 +#: src/libslic3r/PrintConfig.cpp:3655 msgid "" "Performance vs accuracy of calculation. Lower values may produce unwanted " "artifacts." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3655 +#: src/libslic3r/PrintConfig.cpp:3665 msgid "" "Hollowing is done in two steps: first, an imaginary interior is calculated " "deeper (offset plus the closing distance) in the object and then it's " @@ -12927,310 +13121,310 @@ msgid "" "most." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4077 +#: src/libslic3r/PrintConfig.cpp:4093 msgid "Export OBJ" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4078 +#: src/libslic3r/PrintConfig.cpp:4094 msgid "Export the model(s) as OBJ." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4089 +#: src/libslic3r/PrintConfig.cpp:4105 msgid "Export SLA" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4090 +#: src/libslic3r/PrintConfig.cpp:4106 msgid "Slice the model and export SLA printing layers as PNG." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4095 +#: src/libslic3r/PrintConfig.cpp:4111 msgid "Export 3MF" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4096 +#: src/libslic3r/PrintConfig.cpp:4112 msgid "Export the model(s) as 3MF." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4100 +#: src/libslic3r/PrintConfig.cpp:4116 msgid "Export AMF" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4101 +#: src/libslic3r/PrintConfig.cpp:4117 msgid "Export the model(s) as AMF." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4105 +#: src/libslic3r/PrintConfig.cpp:4121 msgid "Export STL" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4106 +#: src/libslic3r/PrintConfig.cpp:4122 msgid "Export the model(s) as STL." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4111 +#: src/libslic3r/PrintConfig.cpp:4127 msgid "Slice the model and export toolpaths as G-code." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4116 +#: src/libslic3r/PrintConfig.cpp:4132 msgid "G-code viewer" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4117 +#: src/libslic3r/PrintConfig.cpp:4133 msgid "Visualize an already sliced and saved G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4122 +#: src/libslic3r/PrintConfig.cpp:4138 msgid "Slice" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4123 +#: src/libslic3r/PrintConfig.cpp:4139 msgid "" "Slice the model as FFF or SLA based on the printer_technology configuration " "value." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4128 +#: src/libslic3r/PrintConfig.cpp:4144 msgid "Help" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4129 +#: src/libslic3r/PrintConfig.cpp:4145 msgid "Show this help." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4134 +#: src/libslic3r/PrintConfig.cpp:4150 msgid "Help (FFF options)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4135 +#: src/libslic3r/PrintConfig.cpp:4151 msgid "Show the full list of print/G-code configuration options." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4139 +#: src/libslic3r/PrintConfig.cpp:4155 msgid "Help (SLA options)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4140 +#: src/libslic3r/PrintConfig.cpp:4156 msgid "Show the full list of SLA print configuration options." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4144 +#: src/libslic3r/PrintConfig.cpp:4160 msgid "Output Model Info" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4145 +#: src/libslic3r/PrintConfig.cpp:4161 msgid "Write information about the model to the console." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4149 +#: src/libslic3r/PrintConfig.cpp:4165 msgid "Save config file" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4150 +#: src/libslic3r/PrintConfig.cpp:4166 msgid "Save configuration to the specified file." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4160 +#: src/libslic3r/PrintConfig.cpp:4176 msgid "Align XY" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4161 +#: src/libslic3r/PrintConfig.cpp:4177 msgid "Align the model to the given point." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4166 +#: src/libslic3r/PrintConfig.cpp:4182 msgid "Cut model at the given Z." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4187 +#: src/libslic3r/PrintConfig.cpp:4203 msgid "Center" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4188 +#: src/libslic3r/PrintConfig.cpp:4204 msgid "Center the print around the given center." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4192 +#: src/libslic3r/PrintConfig.cpp:4208 msgid "Don't arrange" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4193 +#: src/libslic3r/PrintConfig.cpp:4209 msgid "" "Do not rearrange the given models before merging and keep their original XY " "coordinates." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4196 +#: src/libslic3r/PrintConfig.cpp:4212 msgid "Ensure on bed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4197 +#: src/libslic3r/PrintConfig.cpp:4213 msgid "" "Lift the object above the bed when it is partially below. Enabled by " "default, use --no-ensure-on-bed to disable." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4201 +#: src/libslic3r/PrintConfig.cpp:4217 msgid "Duplicate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4202 +#: src/libslic3r/PrintConfig.cpp:4218 msgid "Multiply copies by this factor." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4206 +#: src/libslic3r/PrintConfig.cpp:4222 msgid "Duplicate by grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4207 +#: src/libslic3r/PrintConfig.cpp:4223 msgid "Multiply copies by creating a grid." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4211 +#: src/libslic3r/PrintConfig.cpp:4227 msgid "" "Arrange the supplied models in a plate and merge them in a single model in " "order to perform actions once." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4216 +#: src/libslic3r/PrintConfig.cpp:4232 msgid "" "Try to repair any non-manifold meshes (this option is implicitly added " "whenever we need to slice the model to perform the requested action)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4220 +#: src/libslic3r/PrintConfig.cpp:4236 msgid "Rotation angle around the Z axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4224 +#: src/libslic3r/PrintConfig.cpp:4240 msgid "Rotate around X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4225 +#: src/libslic3r/PrintConfig.cpp:4241 msgid "Rotation angle around the X axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4229 +#: src/libslic3r/PrintConfig.cpp:4245 msgid "Rotate around Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4230 +#: src/libslic3r/PrintConfig.cpp:4246 msgid "Rotation angle around the Y axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4235 +#: src/libslic3r/PrintConfig.cpp:4251 msgid "Scaling factor or percentage." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4240 +#: src/libslic3r/PrintConfig.cpp:4256 msgid "" "Detect unconnected parts in the given model(s) and split them into separate " "objects." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4243 +#: src/libslic3r/PrintConfig.cpp:4259 msgid "Scale to Fit" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4244 +#: src/libslic3r/PrintConfig.cpp:4260 msgid "Scale to fit the given volume." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4253 +#: src/libslic3r/PrintConfig.cpp:4269 msgid "Ignore non-existent config files" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4254 +#: src/libslic3r/PrintConfig.cpp:4270 msgid "Do not fail if a file supplied to --load does not exist." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4257 +#: src/libslic3r/PrintConfig.cpp:4273 msgid "" "Forward-compatibility rule when loading configurations from config files and " "project files (3MF, AMF)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4258 +#: src/libslic3r/PrintConfig.cpp:4274 msgid "" "This version of PrusaSlicer may not understand configurations produced by " -"newest PrusaSlicer versions. For example, newer PrusaSlicer may extend the " -"list of supported firmware flavors. One may decide to bail out or to " +"the newest PrusaSlicer versions. For example, newer PrusaSlicer may extend " +"the list of supported firmware flavors. One may decide to bail out or to " "substitute an unknown value with a default silently or verbosely." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4265 +#: src/libslic3r/PrintConfig.cpp:4281 msgid "Bail out on unknown configuration values" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4266 +#: src/libslic3r/PrintConfig.cpp:4282 msgid "" "Enable reading unknown configuration values by verbosely substituting them " "with defaults." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4267 +#: src/libslic3r/PrintConfig.cpp:4283 msgid "" "Enable reading unknown configuration values by silently substituting them " "with defaults." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4271 +#: src/libslic3r/PrintConfig.cpp:4287 msgid "Load config file" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4272 +#: src/libslic3r/PrintConfig.cpp:4288 msgid "" "Load configuration from the specified file. It can be used more than once to " "load options from multiple files." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4275 +#: src/libslic3r/PrintConfig.cpp:4291 msgid "Output File" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4276 +#: src/libslic3r/PrintConfig.cpp:4292 msgid "" "The file where the output will be written (if not specified, it will be " "based on the input file)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4280 +#: src/libslic3r/PrintConfig.cpp:4296 msgid "Single instance mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4281 +#: src/libslic3r/PrintConfig.cpp:4297 msgid "" "If enabled, the command line arguments are sent to an existing instance of " "GUI PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides " "the \"single_instance\" configuration value from application preferences." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4292 +#: src/libslic3r/PrintConfig.cpp:4308 msgid "Data directory" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4293 +#: src/libslic3r/PrintConfig.cpp:4309 msgid "" "Load and store settings at the given directory. This is useful for " "maintaining different profiles or including configurations from a network " "storage." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4296 +#: src/libslic3r/PrintConfig.cpp:4312 msgid "Logging level" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4297 +#: src/libslic3r/PrintConfig.cpp:4313 msgid "" "Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" "trace\n" "For example. loglevel=2 logs fatal, error and warning level messages." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4303 +#: src/libslic3r/PrintConfig.cpp:4319 msgid "Render with a software renderer" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4304 +#: src/libslic3r/PrintConfig.cpp:4320 msgid "" "Render with a software renderer. The bundled MESA software renderer is " "loaded instead of the default OpenGL driver." @@ -13257,11 +13451,11 @@ msgid "Fuzzy skin\nDid you know that you can create rough fibre-like texture on msgstr "" #: resources/data/hints.ini: [hint:Shapes gallery] -msgid "Shapes gallery\nDid you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery." +msgid "Shapes gallery\nDid you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery." msgstr "" -#: resources/data/hints.ini: [hint:Auto-arrange settings] -msgid "Auto-arrange settings\nDid you know that you can right-click theauto-arrange iconto adjust the size of the gap between objects and to allow automatic rotations?" +#: resources/data/hints.ini: [hint:Arrange settings] +msgid "Arrange settings\nDid you know that you can right-click theArrange iconto adjust the size of the gap between objects and to allow automatic rotations?" msgstr "" #: resources/data/hints.ini: [hint:Negative volume] @@ -13277,7 +13471,7 @@ msgid "Reload from disk\nDid you know that if you created a newer version of you msgstr "" #: resources/data/hints.ini: [hint:Hiding sidebar] -msgid "Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences." +msgid "Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences." msgstr "" #: resources/data/hints.ini: [hint:Perspective camera] @@ -13297,7 +13491,7 @@ msgid "Set number of instances\nDid you know that you can right-click a model an msgstr "" #: resources/data/hints.ini: [hint:Combine infill] -msgid "Combine infill\nDid you know that you can print the infill with a higher layer height compared to perimeters to save print time using the settingCombine infill every." +msgid "Combine infill\nDid you know that you can print the infill with a higher layer height compared to perimeters to save print time using the settingCombine infill every." msgstr "" #: resources/data/hints.ini: [hint:Variable layer height] @@ -13313,7 +13507,7 @@ msgid "Different layer height for each model\nDid you know that you can print ea msgstr "" #: resources/data/hints.ini: [hint:Solid infill threshold area] -msgid "Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.)" +msgid "Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.)" msgstr "" #: resources/data/hints.ini: [hint:Search functionality] @@ -13341,7 +13535,7 @@ msgid "PageUp / PageDown quick rotation by 45 degrees\nDid you know that you can msgstr "" #: resources/data/hints.ini: [hint:Load config from G-code] -msgid "Load config from G-code\nDid you know that you can use File-Import Config to load print, filament and printer profiles from an existing G-code file? Similarly, you can use File-Import SL1 archive, which also lets you reconstruct 3D models from the voxel data." +msgid "Load config from G-code\nDid you know that you can use File-Import-Import Config to load print, filament and printer profiles from an existing G-code file? Similarly, you can use File-Import-Import SL1 / SL1S archive, which also lets you reconstruct 3D models from the voxel data." msgstr "" #: resources/data/hints.ini: [hint:Ironing] @@ -13365,7 +13559,7 @@ msgid "Insert Custom G-code\nDid you know that you can insert a custom G-code at msgstr "" #: resources/data/hints.ini: [hint:Configuration snapshots] -msgid "Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu." +msgid "Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu." msgstr "" #: resources/data/hints.ini: [hint:Minimum wall thickness] diff --git a/resources/profiles/Artillery.idx b/resources/profiles/Artillery.idx index b76f625848..0c45cb2e34 100644 --- a/resources/profiles/Artillery.idx +++ b/resources/profiles/Artillery.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.3.1-beta +0.0.4 Fixed first layer height in 0.28mm profile. 0.0.3 Fixed Genius bed size. 0.0.2 Updated start g-code. 0.0.1 Initial Artillery bundle diff --git a/resources/profiles/Artillery.ini b/resources/profiles/Artillery.ini index d58d71c602..82c7daddc2 100644 --- a/resources/profiles/Artillery.ini +++ b/resources/profiles/Artillery.ini @@ -11,7 +11,7 @@ name = Artillery # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.0.3 +config_version = 0.0.4 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Artillery/ # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -300,6 +300,7 @@ top_solid_layers = 4 [print:*0.28mm*] inherits = *common* layer_height = 0.28 +first_layer_height = 0.36 top_infill_extrusion_width = 0.45 first_layer_extrusion_width = 0.75 bottom_solid_layers = 3 diff --git a/resources/profiles/INAT.idx b/resources/profiles/INAT.idx index 47632c29a0..a756b34b54 100644 --- a/resources/profiles/INAT.idx +++ b/resources/profiles/INAT.idx @@ -1,3 +1,4 @@ min_slic3r_version = 2.3.1-beta -0.0.1 Initial version +0.0.3 Set default filament profile. 0.0.2 Improved start gcode, changed filename format +0.0.1 Initial version diff --git a/resources/profiles/INAT.ini b/resources/profiles/INAT.ini index 81a4f90ef4..3c1a753b58 100644 --- a/resources/profiles/INAT.ini +++ b/resources/profiles/INAT.ini @@ -3,7 +3,7 @@ [vendor] # Vendor name will be shown by the Config Wizard. name = INAT -config_version = 0.0.2 +config_version = 0.0.3 config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/INAT/ ### @@ -15,12 +15,14 @@ name = INAT Proton X Rail variants = 0.4 technology = FFF family = Proton +default_materials = PLA @PROTON_X [printer_model:PROTON_X_ROD] name = INAT Proton X Rod variants = 0.4 technology = FFF family = Proton +default_materials = PLA @PROTON_X ### diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index f73bedebfc..34d0c09583 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.4.0-beta0 +1.4.0-beta2 Added SLA material colors. Updated BASF filament profiles. 1.4.0-beta1 Updated pad wall slope angle for SLA printers. Updated Filatech Filacarbon profile for Prusa MINI. 1.4.0-beta0 Added multiple Filatech and BASF filament profiles. Added material profiles for SL1S. min_slic3r_version = 2.4.0-alpha0 diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 25ce1c2701..0f9a75a99b 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.4.0-beta1 +config_version = 1.4.0-beta2 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -2925,9 +2925,14 @@ bridge_fan_speed = 100 filament_type = PET disable_fan_first_layers = 1 full_fan_speed_layer = 3 + +filament_notes = "BASF Forward AM Ultrafuse PET\nMaterial profile version 1.0\n\nMaterial Description\nUltrafuse PET is made from a premium PET and prints as easy as PLA, but is much stronger. The filament has a large operating window for printing (temperature vs. speed), so it can be used on every 3D-printer. PET will give you outstanding printing results: a good layer adhesion, a high resolution and it is easy to handle. Ultrafuse PET can be 100% recycled, is watertight and has great colors and finish.\n\nPrinting Recommendations:\nUltrafuse PET can be printed directly onto a clean build plate. For challenging prints, use 3dLac to improve adhesion.\n" +filament_retract_length = 2 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_wipe = 0 +filament_retract_layer_change = 0 filament_retract_lift = 0 -# filament_retract_length = 3 -# filament_max_volumetric_speed = 7 [filament:Ultrafuse PET @MINI] inherits = Ultrafuse PET; *PETMINI* @@ -2939,11 +2944,21 @@ filament_cost = filament_density = 1.25 filament_spool_weight = 0 filament_colour = #FFFFFF -# filament overrides -# filament_retract_length = 2 -# filament_retract_speed = 40 -# filament_retract_before_travel = 2 -# filament_wipe = 0 +filament_notes = "BASF Forward AM Ultrafuse PLA PRO1\nMaterial profile version 1.0\n\nMaterial Description\nPLA PRO1 is an extremely versatile tough PLA filament made for professionals. It reduces your printing time by 30% – 80%, (subject to printer and object limitations) and the strength exceeds overall mechanical properties of printed ABS parts. Printer settings can be tuned to achieve blazing fast speeds or an unrivaled surface finish. The excellent quality control ensures the highest levels of consistency between colors and batches, it will perform as expected, every time.\n\nPrinting Recommendations:\nUltrafuse PLA PRO1 can be printed directly onto a clean build plate.\n" +filament_retract_length = 2 +filament_retract_lift = 0 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_retract_layer_change = 0 +compatible_printers_condition = printer_model!="MINI" and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) + +[filament:Ultrafuse PRO1 @MINI] +inherits = Ultrafuse PRO1 +filament_retract_length = nil +filament_retract_speed = nil +filament_retract_before_travel = nil +filament_retract_layer_change = nil +compatible_printers_condition = printer_model=="MINI" [filament:Ultrafuse ABS] inherits = *ABSC* @@ -2955,17 +2970,19 @@ max_fan_speed = 20 bed_temperature = 100 disable_fan_first_layers = 3 filament_colour = #FFFFFF -# filament overrides -# filament_retract_length = 2 -# filament_retract_speed = 40 -# filament_retract_before_travel = 2 -# filament_wipe = 0 +filament_notes = "BASF Forward AM Ultrafuse ABS\nMaterial profile version 1.0\n\nMaterial Description\nABS is the second most used 3D printing material. It is strong, flexible and has a high heat resistance. ABS is a preferred plastic for engineers and professional applications. ABS can be smoothened with acetone. To make a proper 3D print with ABS you will need a heated print bed. The filament is available in 9 colors.\n\nPrinting Recommendations:\n\nApply Tape, adhesion spray or glue to a clean build plate to improve adhesion.\n" +filament_retract_length = 2 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_wipe = 0 +filament_retract_layer_change = 0 [filament:Ultrafuse ABS @MINI] inherits = Ultrafuse ABS; *ABSMINI* -[filament:Ultrafuse 17-4 PH] +[filament:Ultrafuse Metal] inherits = *ABSC* +renamed_from = "Ultrafuse 17-4 PH" filament_vendor = BASF filament_cost = filament_density = 4.5 @@ -4607,6 +4624,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-Vulcan Gold @0.025] inherits = *common 0.025* @@ -4614,6 +4632,7 @@ exposure_time = 12 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #B0B000 [sla_material:3DM-TOUGH Clear @0.025] inherits = *common 0.025* @@ -4621,6 +4640,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:3DM-HR Red Wine @0.025] inherits = *common 0.025* @@ -4628,6 +4648,7 @@ exposure_time = 14 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #EC0000 [sla_material:BlueCast Phrozen Wax @0.025] inherits = *common 0.025* @@ -4635,6 +4656,7 @@ exposure_time = 15 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Castable Wax @0.025] inherits = *common 0.025* @@ -4642,6 +4664,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Casting material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast EcoGray @0.025] inherits = *common 0.025* @@ -4649,6 +4672,7 @@ exposure_time = 6 initial_exposure_time = 40 material_type = Tough material_vendor = BlueCast +material_colour = #808080 [sla_material:BlueCast Kera Master Dental @0.025] inherits = *common 0.025* @@ -4656,6 +4680,7 @@ exposure_time = 6 initial_exposure_time = 45 material_type = Dental material_vendor = BlueCast +material_colour = #B0B000 [sla_material:BlueCast Model Dental Gray @0.025] inherits = *common 0.025* @@ -4663,6 +4688,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Dental material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast X10 @0.025] inherits = *common 0.025* @@ -4670,6 +4696,7 @@ exposure_time = 4 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:DruckWege Type D High Temp @0.025] inherits = *common 0.025* @@ -4677,6 +4704,7 @@ exposure_time = 6 initial_exposure_time = 20 material_type = Tough material_vendor = DruckWege +material_colour = #E800E8 [sla_material:Esun Bio-Photopolymer Resin White @0.025] inherits = *common 0.025* @@ -4684,6 +4712,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #FFFFFF [sla_material:FunToDo Castable Blend Red @0.025] inherits = *common 0.025* @@ -4691,6 +4720,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Casting material_vendor = FunToDo +material_colour = #EC0000 [sla_material:FunToDo Snow White @0.025] inherits = *common 0.025* @@ -4698,6 +4728,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #FFFFFF [sla_material:Harz Labs Basic Resin Red @0.025] inherits = *common 0.025* @@ -4705,6 +4736,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Cherry @0.025] inherits = *common 0.025* @@ -4712,6 +4744,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Black @0.025] inherits = *common 0.025* @@ -4719,6 +4752,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #595959 [sla_material:Harz Labs Dental Cast Red @0.025] inherits = *common 0.025* @@ -4726,6 +4760,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Dental material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Esun Standard Resin Black @0.025] inherits = *common 0.025* @@ -4733,6 +4768,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #595959 [sla_material:Photocentric Ash Grey @0.025] inherits = *common 0.025* @@ -4740,6 +4776,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #C0C0C0 [sla_material:Resinworks 3D Violet @0.025] inherits = *common 0.025* @@ -4747,6 +4784,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #E800E8 [sla_material:Resinworks 3D Green @0.025] inherits = *common 0.025* @@ -4754,6 +4792,7 @@ exposure_time = 17 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #00B900 [sla_material:Monocure 3D Black Rapid Resin @0.025] inherits = *common 0.025* @@ -4761,6 +4800,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #595959 [sla_material:Monocure 3D Blue Rapid Resin @0.025] inherits = *common 0.025* @@ -4768,6 +4808,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD ## Prusa Polymers 0.025 @@ -4777,6 +4818,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.025] inherits = *common 0.025* @@ -4784,6 +4826,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.025] inherits = *common 0.025* @@ -4791,6 +4834,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Prusa 0.025 @@ -4800,6 +4844,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Grey Tough @0.025] inherits = *common 0.025* @@ -4807,6 +4852,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Azure Blue Tough @0.025] inherits = *common 0.025* @@ -4814,6 +4860,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Blue Tough @0.025] ## inherits = *common 0.025* @@ -4828,6 +4875,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa Beige Tough @0.025] inherits = *common 0.025* @@ -4835,6 +4883,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Pink Tough @0.025] inherits = *common 0.025* @@ -4842,6 +4891,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa White Tough @0.025] inherits = *common 0.025* @@ -4849,6 +4899,7 @@ exposure_time = 6.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Transparent Tough @0.025] inherits = *common 0.025* @@ -4856,6 +4907,7 @@ exposure_time = 6 initial_exposure_time = 15 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Green Dental Casting @0.025] inherits = *common 0.025* @@ -4863,6 +4915,7 @@ exposure_time = 12 initial_exposure_time = 40 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Green Tough @0.025] inherits = *common 0.025* @@ -4870,6 +4923,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Clear ABS like @0.025] inherits = *common 0.025* @@ -4877,6 +4931,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa White ABS like @0.025] inherits = *common 0.025* @@ -4884,6 +4939,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Grey High Tenacity @0.025] inherits = *common 0.025* @@ -4891,6 +4947,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Super Low Odor Cyan Tough @0.025] inherits = *common 0.025* @@ -4898,6 +4955,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #79FFFF [sla_material:Prusa Super Low Odor Magenta Tough @0.025] inherits = *common 0.025* @@ -4905,6 +4963,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Super Low Odor Yellow Tough @0.025] inherits = *common 0.025* @@ -4912,6 +4971,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Orange-Yellow Teeth Model @0.025] inherits = *common 0.025* @@ -4919,6 +4979,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Vibrant Orange Tough @0.025] inherits = *common 0.025* @@ -4926,6 +4987,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Rich Black Tough @0.025] inherits = *common 0.025* @@ -4933,6 +4995,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Deep Blue Transparent Tough @0.025] inherits = *common 0.025* @@ -4940,6 +5003,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Yellow Jewelry Casting @0.025] inherits = *common 0.025* @@ -4947,6 +5011,7 @@ exposure_time = 8 initial_exposure_time = 45 material_type = Casting material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Siraya Tech Simple Clear @0.025] inherits = *common 0.025* @@ -4954,6 +5019,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Clear V2 @0.025] inherits = *common 0.025* @@ -4961,6 +5027,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Blue @0.025] inherits = *common 0.025* @@ -4968,6 +5035,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:Siraya Tech Fast Grey @0.025] inherits = *common 0.025* @@ -4975,6 +5043,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Tenacious @0.025] inherits = *common 0.025* @@ -4982,6 +5051,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Easy @0.025] inherits = *common 0.025* @@ -4989,6 +5059,7 @@ exposure_time = 11 initial_exposure_time = 15 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Sculpt @0.025] inherits = *common 0.025* @@ -4996,6 +5067,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Fast Black @0.025] inherits = *common 0.025* @@ -5003,6 +5075,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:NextDent Model 2.0 Grey @0.025] inherits = *common 0.025* @@ -5010,6 +5083,7 @@ exposure_time = 14 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #808080 [sla_material:NextDent Surgical Guide @0.025] inherits = *common 0.025* @@ -5017,6 +5091,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FF8040 [sla_material:NextDent Cast Purple @0.025] inherits = *common 0.025* @@ -5024,6 +5099,7 @@ exposure_time = 7 initial_exposure_time = 20 material_type = Casting material_vendor = NextDent +material_colour = #E800E8 [sla_material:MakerJuice Labs Standard Red @0.025] inherits = *common 0.025* @@ -5031,6 +5107,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = MakerJuice Labs +material_colour = #EC0000 [sla_material:3DJake High Precision Grey @0.025] inherits = *common 0.025* @@ -5038,6 +5115,7 @@ exposure_time = 8.5 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #C0C0C0 [sla_material:3DJake High Precision Blue @0.025] inherits = *common 0.025* @@ -5045,6 +5123,7 @@ exposure_time = 6.5 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #007EFD [sla_material:Zortrax Black @0.025] inherits = *common 0.025* @@ -5052,6 +5131,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax +material_colour = #595959 ########### Materials 0.05 @@ -5061,6 +5141,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Dental material_vendor = Asiga +material_colour = #FFEEE6 [sla_material:Asiga PlasGRAY @0.05] inherits = *common 0.05* @@ -5068,6 +5149,7 @@ exposure_time = 29 initial_exposure_time = 60 material_type = Tough material_vendor = Asiga +material_colour = #C0C0C0 [sla_material:Ameralabs AMD 3 LED @0.05] inherits = *common 0.05* @@ -5075,6 +5157,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Ameralabs +material_colour = #808080 [sla_material:BlueCast EcoGray @0.05] inherits = *common 0.05* @@ -5082,6 +5165,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = BlueCast +material_colour = #808080 [sla_material:BlueCast Kera Master Dental @0.05] inherits = *common 0.05* @@ -5089,6 +5173,7 @@ exposure_time = 7 initial_exposure_time = 50 material_type = Dental material_vendor = BlueCast +material_colour = #FFEEE6 [sla_material:BlueCast Model Dental Gray @0.05] inherits = *common 0.05* @@ -5096,6 +5181,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Dental material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast LCD-DLP Original @0.05] inherits = *common 0.05* @@ -5103,6 +5189,7 @@ exposure_time = 10 initial_exposure_time = 60 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Phrozen Wax @0.05] inherits = *common 0.05* @@ -5110,6 +5197,7 @@ exposure_time = 16 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Castable Wax @0.05] inherits = *common 0.05* @@ -5117,6 +5205,7 @@ exposure_time = 11 initial_exposure_time = 35 material_type = Casting material_vendor = BlueCast +material_colour = #E800E8 [sla_material:BlueCast S+ @0.05] inherits = *common 0.05* @@ -5124,6 +5213,7 @@ exposure_time = 9 initial_exposure_time = 45 material_type = Tough material_vendor = BlueCast +material_colour = #00B900 [sla_material:BlueCast X5 @0.05] inherits = *common 0.05* @@ -5131,6 +5221,7 @@ exposure_time = 9 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast X10 @0.05] inherits = *common 0.05* @@ -5138,6 +5229,7 @@ exposure_time = 6 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast 23LS @0.05] inherits = *common 0.05* @@ -5145,6 +5237,7 @@ exposure_time = 8 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:DruckWege Type D High Temp @0.05] inherits = *common 0.05* @@ -5152,6 +5245,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = DruckWege +material_colour = #E800E8 [sla_material:Monocure 3D Black Rapid Resin @0.05] inherits = *common 0.05* @@ -5159,6 +5253,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #595959 [sla_material:Monocure 3D Blue Rapid Resin @0.05] inherits = *common 0.05* @@ -5166,6 +5261,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD [sla_material:Monocure 3D Clear Rapid Resin @0.05] inherits = *common 0.05* @@ -5173,6 +5269,7 @@ exposure_time = 8 initial_exposure_time = 40 material_type = Tough material_vendor = Monocure +material_colour = #F8F8F8 [sla_material:Monocure 3D Grey Rapid Resin @0.05] inherits = *common 0.05* @@ -5180,6 +5277,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Monocure +material_colour = #C0C0C0 [sla_material:Monocure 3D White Rapid Resin @0.05] inherits = *common 0.05* @@ -5187,6 +5285,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #FFFFFF [sla_material:3DM-HTR140 (high temperature) @0.05] inherits = *common 0.05* @@ -5194,6 +5293,7 @@ exposure_time = 12 initial_exposure_time = 45 material_type = Tough material_vendor = Monocure +material_colour = #EC0000 [sla_material:Esun Bio-Photopolymer Resin White @0.05] inherits = *common 0.05* @@ -5201,6 +5301,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #FFFFFF [sla_material:Esun Standard Resin Black @0.05] inherits = *common 0.05* @@ -5208,6 +5309,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #595959 [sla_material:FunToDo Castable Blend Red @0.05] inherits = *common 0.05* @@ -5215,6 +5317,7 @@ exposure_time = 15 initial_exposure_time = 35 material_type = Casting material_vendor = FunToDo +material_colour = #EC0000 [sla_material:FunToDo Industrial Blend Unpigmented @0.05] inherits = *common 0.05* @@ -5222,6 +5325,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #F8F8F8 [sla_material:FunToDo Snow White @0.05] inherits = *common 0.05* @@ -5229,6 +5333,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #FFFFFF [sla_material:3DM-ABS @0.05] inherits = *common 0.05* @@ -5236,6 +5341,7 @@ exposure_time = 13 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-BLACK @0.05] inherits = *common 0.05* @@ -5243,6 +5349,7 @@ exposure_time = 20 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM +material_colour = #595959 [sla_material:3DM-DENT @0.05] inherits = *common 0.05* @@ -5250,6 +5357,7 @@ exposure_time = 7 initial_exposure_time = 45 material_type = Dental material_vendor = 3DM +material_colour = #FFEEE6 [sla_material:3DM-HR Green @0.05] inherits = *common 0.05* @@ -5257,6 +5365,7 @@ exposure_time = 15 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM +material_colour = #00B900 [sla_material:3DM-HR Red Wine @0.05] inherits = *common 0.05* @@ -5264,6 +5373,7 @@ exposure_time = 18 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #EC0000 [sla_material:3DM-XPRO White @0.05] inherits = *common 0.05* @@ -5271,6 +5381,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #FFFFFF [sla_material:3DM-Vulcan Gold @0.05] inherits = *common 0.05* @@ -5278,6 +5389,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #B0B000 [sla_material:3DM-TOUGH Clear @0.05] inherits = *common 0.05* @@ -5285,6 +5397,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:FunToDo Ash Grey @0.05] inherits = *common 0.05* @@ -5292,6 +5405,7 @@ exposure_time = 9 initial_exposure_time = 40 material_type = Tough material_vendor = FunToDo +material_colour = #808080 [sla_material:Harz Labs Model Resin Cherry @0.05] inherits = *common 0.05* @@ -5299,6 +5413,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Basic Resin Red @0.05] inherits = *common 0.05* @@ -5306,6 +5421,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Black @0.05] inherits = *common 0.05* @@ -5313,6 +5429,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #595959 [sla_material:Harz Labs Dental Cast Red @0.05] inherits = *common 0.05* @@ -5320,6 +5437,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Dental material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Resinworks 3D Violet @0.05] inherits = *common 0.05* @@ -5327,6 +5445,7 @@ exposure_time = 17 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #E800E8 [sla_material:Resinworks 3D Green @0.05] inherits = *common 0.05* @@ -5334,6 +5453,7 @@ exposure_time = 21 initial_exposure_time = 35 material_type = Tough material_vendor = Resinworks 3D +material_colour = #00B900 [sla_material:Photocentric Hard Grey @0.05] inherits = *common 0.05* @@ -5341,6 +5461,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #808080 [sla_material:Photocentric Ash Grey @0.05] inherits = *common 0.05* @@ -5348,6 +5469,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #C0C0C0 [sla_material:Siraya Tech Simple Clear @0.05] inherits = *common 0.05* @@ -5355,6 +5477,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Clear V2 @0.05] inherits = *common 0.05* @@ -5362,6 +5485,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Blue @0.05] inherits = *common 0.05* @@ -5369,6 +5493,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:Siraya Tech Fast Grey @0.05] inherits = *common 0.05* @@ -5376,6 +5501,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Tenacious @0.05] inherits = *common 0.05* @@ -5383,6 +5509,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Easy @0.05] inherits = *common 0.05* @@ -5390,6 +5517,7 @@ exposure_time = 12 initial_exposure_time = 15 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Sculpt @0.05] inherits = *common 0.05* @@ -5397,6 +5525,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Fast Black @0.05] inherits = *common 0.05* @@ -5404,6 +5533,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #595959 [sla_material:NextDent Model 2.0 Grey @0.05] inherits = *common 0.05* @@ -5411,6 +5541,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #C0C0C0 [sla_material:NextDent Surgical Guide @0.05] inherits = *common 0.05* @@ -5418,6 +5549,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FFEEE6 [sla_material:NextDent Cast Purple @0.05] inherits = *common 0.05* @@ -5425,6 +5557,7 @@ exposure_time = 9 initial_exposure_time = 20 material_type = Casting material_vendor = NextDent +material_colour = #E800E8 [sla_material:NextDent Crown Bridge @0.05] inherits = *common 0.05* @@ -5432,6 +5565,7 @@ exposure_time = 11 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FFFFFF [sla_material:MakerJuice Labs Standard Red @0.05] inherits = *common 0.05* @@ -5439,6 +5573,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = MakerJuice Labs +material_colour = #EC0000 [sla_material:3DJake High Precision Grey @0.05] inherits = *common 0.05* @@ -5446,6 +5581,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #C0C0C0 [sla_material:3DJake High Precision Blue @0.05] inherits = *common 0.05* @@ -5453,6 +5589,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #007EFD [sla_material:Dragon Resin Metalshine Metal Grey @0.05] inherits = *common 0.05* @@ -5460,6 +5597,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #808080 [sla_material:Dragon Resin Metalshine Dark Brass @0.05] inherits = *common 0.05* @@ -5467,6 +5605,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #B0B000 [sla_material:Dragon Resin Metalshine Brass @0.05] inherits = *common 0.05* @@ -5474,6 +5613,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #B0B000 [sla_material:Zortrax Black @0.05] inherits = *common 0.05* @@ -5481,6 +5621,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax +material_colour = #595959 ## Prusa Polymers 0.05 @@ -5490,6 +5631,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.05] inherits = *common 0.05* @@ -5497,6 +5639,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.05] inherits = *common 0.05* @@ -5504,6 +5647,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #C0C0C0 ## Prusa 0.05 @@ -5513,6 +5657,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Orange Tough @0.05] inherits = *common 0.05* @@ -5520,6 +5665,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Grey Tough @0.05] inherits = *common 0.05* @@ -5527,6 +5673,7 @@ exposure_time = 8.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #808080 [sla_material:Prusa Black Tough @0.05] inherits = *common 0.05* @@ -5534,6 +5681,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 ## [sla_material:Prusa Super Low Odor Beige Tough @0.05] ## inherits = *common 0.05* @@ -5562,6 +5710,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #79FFFF [sla_material:Prusa Super Low Odor Magenta Tough @0.05] inherits = *common 0.05* @@ -5569,6 +5718,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Super Low Odor Yellow Tough @0.05] inherits = *common 0.05* @@ -5576,6 +5726,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F ## [sla_material:Prusa Black High Tenacity @0.05] ## inherits = *common 0.05* @@ -5590,6 +5741,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Green Dental Casting @0.05] inherits = *common 0.05* @@ -5597,6 +5749,7 @@ exposure_time = 13 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 ## [sla_material:Prusa Yellow Solid @0.05] ## inherits = *common 0.05* @@ -5609,6 +5762,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Transparent Green Tough @0.05] inherits = *common 0.05* @@ -5616,6 +5770,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Red Tough @0.05] inherits = *common 0.05* @@ -5623,6 +5778,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #EC0000 [sla_material:Prusa Maroon Tough @0.05] inherits = *common 0.05* @@ -5630,6 +5786,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa Pink Tough @0.05] inherits = *common 0.05* @@ -5637,6 +5794,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Azure Blue Tough @0.05] inherits = *common 0.05* @@ -5644,6 +5802,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Blue Tough @0.05] ## inherits = *common 0.05* @@ -5658,6 +5817,7 @@ exposure_time = 7 initial_exposure_time = 15 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 ## [sla_material:Prusa Yellow Flexible @0.05] ## inherits = *common 0.05* @@ -5670,6 +5830,7 @@ exposure_time = 5 initial_exposure_time = 15 material_type = Flexible material_vendor = Made for Prusa +material_colour = #F8F8F8 ## [sla_material:Prusa White Flexible @0.05] ## inherits = *common 0.05* @@ -5682,6 +5843,7 @@ exposure_time = 5 initial_exposure_time = 15 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Black Flexible @0.05] ## inherits = *common 0.05* @@ -5699,6 +5861,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa White ABS like @0.05] inherits = *common 0.05* @@ -5706,6 +5869,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Yellow Jewelry Casting @0.05] inherits = *common 0.05* @@ -5713,6 +5877,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Casting material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Grey High Tenacity @0.05] inherits = *common 0.05* @@ -5720,6 +5885,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.05] inherits = *common 0.05* @@ -5727,6 +5893,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Rich Black Tough @0.05] inherits = *common 0.05* @@ -5734,6 +5901,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Deep Blue Transparent Tough @0.05] inherits = *common 0.05* @@ -5741,6 +5909,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ########### Materials 0.035 @@ -5750,6 +5919,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 ########### Materials 0.1 @@ -5759,6 +5929,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast Kera Master Dental @0.1] inherits = *common 0.1* @@ -5766,6 +5937,7 @@ exposure_time = 13 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #FFEEE6 ## Prusa Polymers 0.1 @@ -5775,6 +5947,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.1] inherits = *common 0.1* @@ -5782,6 +5955,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.1] inherits = *common 0.1* @@ -5789,6 +5963,7 @@ exposure_time = 14 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Prusa 0.1 @@ -5798,6 +5973,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Beige Tough @0.1] inherits = *common 0.1* @@ -5805,6 +5981,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Pink Tough @0.1] inherits = *common 0.1* @@ -5812,6 +5989,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Azure Blue Tough @0.1] inherits = *common 0.1* @@ -5819,6 +5997,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Maroon Tough @0.1] inherits = *common 0.1* @@ -5826,6 +6005,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.1] inherits = *common 0.1* @@ -5833,6 +6013,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Black Tough @0.1] inherits = *common 0.1* @@ -5840,6 +6021,7 @@ exposure_time = 13 initial_exposure_time = 55 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Transparent Tough @0.1] inherits = *common 0.1* @@ -5847,6 +6029,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Green Dental Casting @0.1] inherits = *common 0.1* @@ -5854,6 +6037,7 @@ exposure_time = 15 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Green Tough @0.1] inherits = *common 0.1* @@ -5861,6 +6045,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Vibrant Orange Tough @0.1] inherits = *common 0.1* @@ -5868,6 +6053,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 ## SL1S materials ## @@ -5881,6 +6067,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.025 SL1S] inherits = *0.025_sl1s* @@ -5888,6 +6075,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -5895,6 +6083,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.025 @@ -5904,6 +6093,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.025 SL1S] inherits = *0.025_sl1s* @@ -5911,6 +6101,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5918,6 +6109,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5925,6 +6117,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5932,6 +6125,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #79FFFF [sla_material:Prusa Magenta Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5939,6 +6133,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5946,6 +6141,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5953,6 +6149,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5960,6 +6157,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Grey Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5967,6 +6165,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Blue Flexible @0.025 SL1S] inherits = *0.025_sl1s* @@ -5974,6 +6173,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey High Tenacity @0.025 SL1S] inherits = *0.025_sl1s* @@ -5981,6 +6181,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5988,6 +6189,7 @@ exposure_time = 4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5995,6 +6197,7 @@ exposure_time = 4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.025 SL1S] inherits = *0.025_sl1s* @@ -6002,6 +6205,7 @@ exposure_time = 3 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -6009,6 +6213,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6016,6 +6221,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6023,6 +6229,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6030,6 +6237,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.025 SL1S] inherits = *0.025_sl1s* @@ -6037,6 +6245,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.025 SL1S] inherits = *0.025_sl1s* @@ -6044,6 +6253,7 @@ exposure_time = 1.2 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:DruckWege Type D Standard White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6051,6 +6261,7 @@ exposure_time = 1.6 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #FFFFFF [sla_material:DruckWege Type D Standard Pigmentfrei Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6058,6 +6269,7 @@ exposure_time = 1.8 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #F8F8F8 [sla_material:3DM-ABS Orange @0.025 SL1S] inherits = *0.025_sl1s* @@ -6065,6 +6277,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6072,6 +6285,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6079,6 +6293,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6086,6 +6301,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 ## 0.05 SL1S @@ -6097,6 +6313,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.05 SL1S] inherits = *0.05_sl1s* @@ -6104,6 +6321,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6111,6 +6329,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.05 @@ -6120,6 +6339,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.05 SL1S] inherits = *0.05_sl1s* @@ -6127,6 +6347,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6134,6 +6355,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6141,6 +6363,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6148,6 +6371,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #79FFFF [sla_material:Prusa Magenta Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6155,6 +6379,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6162,6 +6387,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6169,6 +6395,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6176,6 +6403,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Blue Flexible @0.05 SL1S] inherits = *0.05_sl1s* @@ -6183,6 +6411,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6190,6 +6419,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Grey High Tenacity @0.05 SL1S] inherits = *0.05_sl1s* @@ -6197,6 +6427,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6204,6 +6435,7 @@ exposure_time = 5 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6211,6 +6443,7 @@ exposure_time = 5 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.05 SL1S] inherits = *0.05_sl1s* @@ -6218,6 +6451,7 @@ exposure_time = 4 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6225,6 +6459,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6232,6 +6467,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6239,6 +6475,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6246,6 +6483,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.05 SL1S] inherits = *0.05_sl1s* @@ -6253,6 +6491,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.05 SL1S] inherits = *0.05_sl1s* @@ -6260,6 +6499,7 @@ exposure_time = 1.4 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:DruckWege Type D Standard White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6267,6 +6507,7 @@ exposure_time = 2 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #FFFFFF [sla_material:DruckWege Type D Standard Pigmentfrei Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6274,6 +6515,7 @@ exposure_time = 2 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #F8F8F8 [sla_material:3DM-ABS Orange @0.05 SL1S] inherits = *0.05_sl1s* @@ -6281,6 +6523,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6288,6 +6531,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6295,6 +6539,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6302,6 +6547,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 ## 0.1 SL1S @@ -6313,6 +6559,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.1 SL1S] inherits = *0.1_sl1s* @@ -6320,6 +6567,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6327,6 +6575,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.1 @@ -6336,6 +6585,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.1 SL1S] inherits = *0.1_sl1s* @@ -6343,6 +6593,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6350,6 +6601,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6357,6 +6609,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6364,6 +6617,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #79FFFF [sla_material:Prusa Magenta Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6371,6 +6625,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6378,6 +6633,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6385,6 +6641,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6392,6 +6649,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Blue Flexible @0.1 SL1S] inherits = *0.1_sl1s* @@ -6399,6 +6657,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6406,6 +6665,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey High Tenacity @0.1 SL1S] inherits = *0.1_sl1s* @@ -6413,6 +6673,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #808080 [sla_material:Prusa Vibrant Orange Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6420,6 +6681,7 @@ exposure_time = 10 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6427,6 +6689,7 @@ exposure_time = 10 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.1 SL1S] inherits = *0.1_sl1s* @@ -6434,6 +6697,7 @@ exposure_time = 8 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6441,6 +6705,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6448,6 +6713,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.1 SL1S] inherits = *0.1_sl1s* @@ -6455,6 +6721,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6462,6 +6729,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.1 SL1S] inherits = *0.1_sl1s* @@ -6469,6 +6737,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.1 SL1S] inherits = *0.1_sl1s* @@ -6476,6 +6745,7 @@ exposure_time = 2.6 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:3DM-ABS Orange @0.1 SL1S] inherits = *0.1_sl1s* @@ -6483,6 +6753,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6490,6 +6761,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.1 SL1S] inherits = *0.1_sl1s* @@ -6497,6 +6769,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6504,6 +6777,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 [printer:*common*] printer_technology = FFF diff --git a/resources/profiles/Ultimaker.idx b/resources/profiles/Ultimaker.idx new file mode 100644 index 0000000000..a593d2fb4b --- /dev/null +++ b/resources/profiles/Ultimaker.idx @@ -0,0 +1,2 @@ +min_slic3r_version = 2.4.0-beta0 +1.0.0 Initial version diff --git a/resources/profiles/Ultimaker.ini b/resources/profiles/Ultimaker.ini new file mode 100644 index 0000000000..363e0dec8a --- /dev/null +++ b/resources/profiles/Ultimaker.ini @@ -0,0 +1,400 @@ +# Print profiles for the Ultimaker printers. +# https://github.com/prusa3d/PrusaSlicer-settings/issues/143 +# author: https://github.com/foreachthing + + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Ultimaker + +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the PrusaSlicer configuration to be downgraded. +config_version = 1.0.0 + +# Where to get the updates from? +config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Ultimaker/ + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. +# Printer model name will be shown by the installation wizard. + +[printer_model:ULTIMAKER2] +name = Ultimaker 2 +variants = 0.4 +technology = FFF +bed_model = ultimaker2_bed.stl +bed_texture = ultimaker2.svg +default_materials = Generic PLA @ULTIMAKER2; Generic PETG @ULTIMAKER2; Generic ABS @ULTIMAKER2 + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface. + +# Common print preset +[print:*common*] +avoid_crossing_perimeters = 1 +avoid_crossing_perimeters_max_detour = 0 +bottom_fill_pattern = rectilinear +bottom_solid_layers = 4 +bottom_solid_min_thickness = 0 +bridge_acceleration = 0 +bridge_angle = 0 +bridge_flow_ratio = 1 +bridge_speed = 60 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +clip_multipart_objects = 0 +compatible_printers = +compatible_printers_condition = +complete_objects = 0 +default_acceleration = 0 +dont_support_bridges = 0 +draft_shield = disabled +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 0 +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 75% +external_perimeters_first = 0 +extra_perimeters = 1 +extruder_clearance_height = 50 +extruder_clearance_radius = 60 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 0 +first_layer_acceleration_over_raft = 0 +first_layer_extrusion_width = 0.45 +first_layer_height = 0.2 +first_layer_speed = 30 +first_layer_speed_over_raft = 30 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 20 +gcode_comments = 1 +gcode_label_objects = 0 +infill_acceleration = 0 +infill_anchor = 600% +infill_anchor_max = 50 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.5 +infill_first = 1 +infill_only_where_needed = 0 +infill_overlap = 35% +infill_speed = 60 +inherits = +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_height = 0.2 +max_print_speed = 80 +max_volumetric_speed = 0 +min_skirt_length = 2 +mmu_segmented_region_max_width = 0 +notes = Ultimaker 2, 0.4 mm Nozzle +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode +overhangs = 1 +perimeter_acceleration = 0 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 50 +perimeters = 2 +post_process = +print_settings_id = +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +resolution = 0 +seam_position = aligned +single_extruder_multi_material_priming = 1 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +small_perimeter_speed = 75% +solid_infill_below_area = 10 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 40 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 45 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 1 +support_material_closing_radius = 2 +support_material_contact_distance = 0.2 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0.4 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = auto +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear-grid +support_material_spacing = 4 +support_material_speed = 60 +support_material_style = grid +support_material_synchronize_layers = 0 +support_material_threshold = 0 +support_material_with_sheath = 0 +support_material_xy_spacing = 0.8 +thick_bridges = 1 +thin_walls = 0 +threads = 8 +top_fill_pattern = rectilinear +top_infill_extrusion_width = 0.45 +top_solid_infill_speed = 40 +top_solid_layers = 4 +top_solid_min_thickness = 0 +travel_speed = 120 +travel_speed_z = 0 +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + + +[print:*0.12mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.12 +perimeters = 3 +top_infill_extrusion_width = 0.4 +bottom_solid_layers = 6 +top_solid_layers = 7 + +[print:*0.20mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.20 +top_infill_extrusion_width = 0.4 +bottom_solid_layers = 4 +top_solid_layers = 5 + +[print:*0.25mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.25 +top_infill_extrusion_width = 0.45 +bottom_solid_layers = 3 +top_solid_layers = 4 + +[print:0.12mm DETAIL @ULTIMAKER2] +inherits = *0.12mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +[print:0.20mm NORMAL @ULTIMAKER2] +inherits = *0.20mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +[print:0.25mm DRAFT @ULTIMAKER2] +inherits = *0.25mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +# Common filament preset +[filament:*common*] +cooling = 0 +compatible_printers = +extrusion_multiplier = 1 +filament_cost = 0 +filament_density = 0 +filament_diameter = 2.85 +filament_notes = "" +filament_settings_id = "" +filament_soluble = 0 +min_print_speed = 15 +slowdown_below_layer_time = 20 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ULTIMAKER.*/ + +[filament:*PLA*] +inherits = *common* +bed_temperature = 60 +fan_below_layer_time = 100 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = PLA +filament_density = 1.24 +first_layer_bed_temperature = 55 +first_layer_temperature = 205 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 100 +max_fan_speed = 100 +bridge_fan_speed = 100 +disable_fan_first_layers = 3 +temperature = 210 + +[filament:*PET*] +inherits = *common* +fan_below_layer_time = 15 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = PETG +filament_density = 1.27 +first_layer_bed_temperature = 85 +bed_temperature = 85 +first_layer_temperature = 240 +temperature = 235 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 20 +max_fan_speed = 40 +bridge_fan_speed = 40 +slowdown_below_layer_time = 15 +min_print_speed = 10 +disable_fan_first_layers = 3 + +[filament:*ABS*] +inherits = *common* +fan_below_layer_time = 15 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = ABS +filament_density = 1.10 +first_layer_bed_temperature = 80 +bed_temperature = 80 +first_layer_temperature = 240 +temperature = 235 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 5 +max_fan_speed = 5 +bridge_fan_speed = 10 +slowdown_below_layer_time = 15 +min_print_speed = 10 +disable_fan_first_layers = 3 + +[filament:Generic PLA @ULTIMAKER2] +inherits = *PLA* +filament_vendor = Generic +filament_cost = + +[filament:Generic Black PLA @ULTIMAKER2] +inherits = *PLA* +filament_vendor = Generic +filament_colour = #0E3F3F +filament_cost = + +[filament:Generic PETG @ULTIMAKER2] +inherits = *PET* +filament_vendor = Generic +filament_cost = + +[filament:Generic ABS @ULTIMAKER2] +inherits = *ABS* +filament_vendor = Generic +filament_cost = + +# Common printer preset +[printer:*common*] +printer_technology = FFF +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;layer:[layer_num];\nM117 Layer [layer_num];\n +between_objects_gcode = +deretract_speed = 0 +extruder_colour = #FFF0E0 +extruder_offset = 0x0 +gcode_flavor = reprap +silent_mode = 0 +remaining_times = 0 +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1500 +machine_max_acceleration_retracting = 1500 +machine_max_acceleration_x = 3000 +machine_max_acceleration_y = 3000 +machine_max_acceleration_z = 500 +machine_max_feedrate_e = 120 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 12 +machine_max_jerk_e = 2.5 +machine_max_jerk_x = 20 +machine_max_jerk_y = 20 +machine_max_jerk_z = 0.4 +machine_min_extruding_rate = 0 +machine_min_travel_rate = 0 +layer_gcode = +max_print_height = 212 +octoprint_apikey = +octoprint_host = +printer_notes = +printer_settings_id = +retract_before_travel = 5 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 6 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0 +retract_lift_below = 0 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 50 +serial_port = +single_extruder_multi_material = 0 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 0 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + +[printer:Ultimaker 2] +inherits = *common* +printer_model = ULTIMAKER2 +bed_shape = 0x0,224x0,224x225,0x225 +printer_variant = 0.4 +max_layer_height = 0.3 +min_layer_height = 0.08 +printer_notes = Dont remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_ULTIMAKER\nPRINTER_MODEL_ULTIMAKER2 +nozzle_diameter = 0.4 +default_print_profile = 0.20mm NORMAL @ULTIMAKER2 +default_filament_profile = Generic PLA @ULTIMAKER2 +start_gcode = ; Printer_Settings_ID: [printer_settings_id]\n\n; # # # # # # START Header\nG21 ; metric values\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nM107 ; start with the fan off\n\nG28 X0 Y0 Z0 ; move X/Y/Z to endstops\nG1 X1 Y6 F15000 ; move X/Y to start position\nG1 Z35 F9000 ; move Z to start position\n\n; Heat up bed and nozzle\nM190 S{first_layer_bed_temperature[0] - 5} ; wait for bed temperature - 5\nM140 S[first_layer_bed_temperature] ; continue bed heating\nM109 S[first_layer_temperature] ; wait for nozzle temperature\n\nG92 E0 ; zero the extruded length\nG1 F150 E22 ; purge nozzle with filament\nG92 E0 ; zero the extruded length again\nG1 F75 E7 ; additional priming\nG92 E0 ; zero the extruded length again\n\n; # # # # # # END Header +end_gcode = ; # # # # # # START Footer\nG91 ; relative coordinates\n;G1 E-1 F1200 ; retract the filament\nG1 Z+15 X-10 Y-10 E-7 F6000 ; move Z a bit\n; G1 X-10 Y-10 F6000 ; move XY a bit\nG1 E-5.5 F300 ; retract the filament\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nM104 S0 ; extruder heater off\nM140 S0 ; heated bed heater off (if you have it)\nM84 ; disable motors\n; # # # # # # END Footer\n diff --git a/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png b/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png new file mode 100644 index 0000000000..bdcd7dcd9f Binary files /dev/null and b/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png differ diff --git a/resources/profiles/Ultimaker/ultimaker2.svg b/resources/profiles/Ultimaker/ultimaker2.svg new file mode 100644 index 0000000000..237bf85d08 --- /dev/null +++ b/resources/profiles/Ultimaker/ultimaker2.svg @@ -0,0 +1,1531 @@ + + + UM2_Plate + + + + image/svg+xml + + UM2_Bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Ultimaker/ultimaker2_bed.stl b/resources/profiles/Ultimaker/ultimaker2_bed.stl new file mode 100644 index 0000000000..a192d8eb2b Binary files /dev/null and b/resources/profiles/Ultimaker/ultimaker2_bed.stl differ diff --git a/resources/profiles/Voron.idx b/resources/profiles/Voron.idx new file mode 100644 index 0000000000..a593d2fb4b --- /dev/null +++ b/resources/profiles/Voron.idx @@ -0,0 +1,2 @@ +min_slic3r_version = 2.4.0-beta0 +1.0.0 Initial version diff --git a/resources/profiles/Voron.ini b/resources/profiles/Voron.ini new file mode 100644 index 0000000000..fb024870ac --- /dev/null +++ b/resources/profiles/Voron.ini @@ -0,0 +1,1558 @@ +# Print profiles for the Voron printers. +# Source: https://github.com/slic3r/slic3r-profiles +# Modified for PrusaSlicer + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Voron +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the PrusaSlicer configuration to be downgraded. +config_version = 1.0.0 +# Where to get the updates from? +config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Voron/ + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. + +# Printer model name will be shown by the installation wizard. + +[printer_model:Voron_v2_250_afterburner] +name = Voron v2 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-250.stl +bed_texture = bedtexture-v2-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_300_afterburner] +name = Voron v2 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-300.stl +bed_texture = bedtexture-v2-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_350_afterburner] +name = Voron v2 350mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-350.stl +bed_texture = bedtexture-v2-350.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_250] +name = Voron v2 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-250.stl +bed_texture = bedtexture-v2-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_300] +name = Voron v2 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-300.stl +bed_texture = bedtexture-v2-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_350] +name = Voron v2 350mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-350.stl +bed_texture = bedtexture-v2-350.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v1_250_afterburner] +name = Voron v1 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v1 Afterburner +bed_model = printbed-v1-250.stl +bed_texture = bedtexture-v1-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v1_300_afterburner] +name = Voron v1 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v1 Afterburner +bed_model = printbed-v1-300.stl +bed_texture = bedtexture-v1-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v0_120] +name = Voron Zero 120mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v0 +bed_model = printbed-v0-120.stl +bed_texture = bedtexture-v0-120.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface + +[printer:*0.25nozzle*] +nozzle_diameter = 0.25 +max_layer_height = 0.175 +min_layer_height = 0.025 +retract_lift_above = 0.15 +printer_variant = 0.25 +default_print_profile = 0.10mm 0.25nozzle + +[printer:*0.3nozzle*] +nozzle_diameter = 0.3 +max_layer_height = 0.225 +min_layer_height = 0.025 +retract_lift_above = 0.2 +printer_variant = 0.3 +default_print_profile = 0.10mm 0.3nozzle + +[printer:*0.4nozzle*] +nozzle_diameter = 0.4 +max_layer_height = 0.3 +min_layer_height = 0.0375 +retract_lift_above = 0.2 +printer_variant = 0.4 +default_print_profile = 0.15mm 0.4nozzle + +[printer:*0.5nozzle*] +nozzle_diameter = 0.5 +max_layer_height = 0.375 +min_layer_height = 0.05 +retract_lift_above = 0.2 +printer_variant = 0.5 +default_print_profile = 0.2mm 0.5nozzle + +[printer:*0.6nozzle*] +nozzle_diameter = 0.6 +max_layer_height = 0.45 +min_layer_height = 0.075 +retract_lift_above = 0.3 +printer_variant = 0.6 +default_print_profile = 0.2mm 0.6nozzle + +[printer:*0.8nozzle*] +nozzle_diameter = 0.8 +max_layer_height = 0.6 +min_layer_height = 0.0875 +retract_lift_above = 0.4 +printer_variant = 0.8 +default_print_profile = 0.3mm 0.8nozzle + +[printer:*1.0nozzle*] +nozzle_diameter = 1.0 +max_layer_height = 0.75 +min_layer_height = 0.1 +retract_lift_above = 0.4 +printer_variant = 1.0 +default_print_profile = 0.4mm 1.0nozzle + +[printer:*1.2nozzle*] +nozzle_diameter = 1.2 +max_layer_height = 0.9 +min_layer_height = 0.125 +retract_lift_above = 0.4 +printer_variant = 1.2 +default_print_profile = 0.4mm 1.2nozzle + + +# Common printer preset +[printer:*common*] +printer_technology = FFF +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 25 +end_gcode = print_end ;end script from macro +extruder_colour = #FFE3CA +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1500 +machine_max_acceleration_retracting = 1500 +machine_max_acceleration_x = 9000 +machine_max_acceleration_y = 9000 +machine_max_acceleration_z = 500 +machine_max_feedrate_e = 120 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 12 +machine_max_jerk_e = 2.5 +machine_max_jerk_x = 10 +machine_max_jerk_y = 10 +machine_max_jerk_z = 0.2 +machine_min_extruding_rate = 0 +machine_min_travel_rate = 0 +machine_limits_usage = time_estimate_only +remaining_times = 0 +silent_mode = 0 +printer_notes = voron +printer_settings_id = +retract_before_travel = 3 +retract_before_wipe = 0% +retract_layer_change = 0 +retract_length = 5.8 +retract_length_toolchange = 10 +retract_lift = 0.4 +retract_lift_above = 0 +retract_lift_below = 500 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +single_extruder_multi_material = 0 +start_gcode = ; M190 S0\n; M109 S0 ; uncomment to remove set&wait temp gcode added automatically after this start gcode\nprint_start EXTRUDER=[first_layer_temperature[initial_tool]] BED=[first_layer_bed_temperature] +thumbnails = 64x64,400x300 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 +default_filament_profile = Basic PLA @VORON + +[printer:*volcano*] +retract_length = 6.8 + +[printer:*volcano_afterburner*] +retract_length = 5.5 + +[printer:*afterburner*] +retract_length = 0.75 +deretract_speed = 30 +retract_speed = 50 + +[printer:*zero*] +retract_length = 2.0 +deretract_speed = 30 +retract_speed = 50 + +[printer:*Voron_v2_250*] +inherits = *common* +bed_shape = 0x0,250x0,250x250,0x250 +max_print_height = 250 +printer_model = Voron_v2_250 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_300*] +inherits = *common* +bed_shape = 0x0,300x0,300x300,0x300 +max_print_height = 300 +printer_model = Voron_v2_300 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_350*] +inherits = *common* +bed_shape = 0x0,350x0,350x350,0x350 +max_print_height = 350 +printer_model = Voron_v2_350 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_250_afterburner*] +inherits = *Voron_v2_250*; *afterburner* +printer_model = Voron_v2_250_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v2_300_afterburner*] +inherits = *Voron_v2_300*; *afterburner* +printer_model = Voron_v2_300_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v2_350_afterburner*] +inherits = *Voron_v2_350*; *afterburner* +printer_model = Voron_v2_350_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v1_250_afterburner*] +inherits = *common*; *afterburner* +bed_shape = 0x0,250x0,250x250,0x250 +max_print_height = 230 +printer_model = Voron_v1_250_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v1_300_afterburner*] +inherits = *common*; *afterburner* +bed_shape = 0x0,300x0,300x300,0x300 +max_print_height = 230 +printer_model = Voron_v1_300_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v0_120*] +inherits = *common* +bed_shape = 0x0,120x0,120x120,0x120 +max_print_height = 120 +printer_model = Voron_v0_120 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:Voron_v2_250 0.25 nozzle] +inherits = *Voron_v2_250*; *0.25nozzle* + +[printer:Voron_v2_250 0.3 nozzle] +inherits = *Voron_v2_250*; *0.3nozzle* + +[printer:Voron_v2_250 0.4 nozzle] +inherits = *Voron_v2_250*; *0.4nozzle* + +[printer:Voron_v2_250 0.5 nozzle] +inherits = *Voron_v2_250*; *0.5nozzle* + +[printer:Voron_v2_250 0.6 nozzle] +inherits = *Voron_v2_250*; *0.6nozzle* + +[printer:Voron_v2_250 0.8 nozzle] +inherits = *Voron_v2_250*; *0.8nozzle* + +[printer:Voron_v2_250 0.6 volcano] +inherits = *Voron_v2_250*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 0.8 volcano] +inherits = *Voron_v2_250*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 1.0 volcano] +inherits = *Voron_v2_250*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 1.2 volcano] +inherits = *Voron_v2_250*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 0.25 nozzle] +inherits = *Voron_v2_300*; *0.25nozzle* + +[printer:Voron_v2_300 0.3 nozzle] +inherits = *Voron_v2_300*; *0.3nozzle* + +[printer:Voron_v2_300 0.4 nozzle] +inherits = *Voron_v2_300*; *0.4nozzle* + +[printer:Voron_v2_300 0.5 nozzle] +inherits = *Voron_v2_300*; *0.5nozzle* + +[printer:Voron_v2_300 0.6 nozzle] +inherits = *Voron_v2_300*; *0.6nozzle* + +[printer:Voron_v2_300 0.8 nozzle] +inherits = *Voron_v2_300*; *0.8nozzle* + +[printer:Voron_v2_300 0.6 volcano] +inherits = *Voron_v2_300*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 0.8 volcano] +inherits = *Voron_v2_300*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 1.0 volcano] +inherits = *Voron_v2_300*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 1.2 volcano] +inherits = *Voron_v2_300*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 0.25 nozzle] +inherits = *Voron_v2_350*; *0.25nozzle* + +[printer:Voron_v2_350 0.3 nozzle] +inherits = *Voron_v2_350*; *0.3nozzle* + +[printer:Voron_v2_350 0.4 nozzle] +inherits = *Voron_v2_350*; *0.4nozzle* + +[printer:Voron_v2_350 0.5 nozzle] +inherits = *Voron_v2_350*; *0.5nozzle* + +[printer:Voron_v2_350 0.6 nozzle] +inherits = *Voron_v2_350*; *0.6nozzle* + +[printer:Voron_v2_350 0.8 nozzle] +inherits = *Voron_v2_350*; *0.8nozzle* + +[printer:Voron_v2_350 volcano 0.6 nozzle] +inherits = *Voron_v2_350*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 0.8 nozzle] +inherits = *Voron_v2_350*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 1.0 nozzle] +inherits = *Voron_v2_350*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 1.2 nozzle] +inherits = *Voron_v2_350*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v1_250_afterburner 0.25 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.25nozzle* + +[printer:Voron_v1_250_afterburner 0.3 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.3nozzle* + +[printer:Voron_v1_250_afterburner 0.4 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.4nozzle* + +[printer:Voron_v1_250_afterburner 0.5 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.5nozzle* + +[printer:Voron_v1_250_afterburner 0.6 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.6nozzle* + +[printer:Voron_v1_250_afterburner 0.8 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.8nozzle* + +[printer:Voron_v1_300_afterburner 0.25 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.25nozzle* + +[printer:Voron_v1_300_afterburner 0.3 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.3nozzle* + +[printer:Voron_v1_300_afterburner 0.4 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.4nozzle* + +[printer:Voron_v1_300_afterburner 0.5 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.5nozzle* + +[printer:Voron_v1_300_afterburner 0.6 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.6nozzle* + +[printer:Voron_v1_300_afterburner 0.8 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.8nozzle* + +[printer:Voron_v2_250_afterburner 0.25 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.25nozzle* + +[printer:Voron_v2_250_afterburner 0.3 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.3nozzle* + +[printer:Voron_v2_250_afterburner 0.4 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.4nozzle* + +[printer:Voron_v2_250_afterburner 0.5 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.5nozzle* + +[printer:Voron_v2_250_afterburner 0.6 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.6nozzle* + +[printer:Voron_v2_250_afterburner 0.8 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.8nozzle* + +[printer:Voron_v2_250_afterburner 0.6 volcano] +inherits = *Voron_v2_250_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 0.8 volcano] +inherits = *Voron_v2_250_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 1.0 volcano] +inherits = *Voron_v2_250_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 1.2 volcano] +inherits = *Voron_v2_250_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 0.25 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.25nozzle* + +[printer:Voron_v2_300_afterburner 0.3 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.3nozzle* + +[printer:Voron_v2_300_afterburner 0.4 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.4nozzle* + +[printer:Voron_v2_300_afterburner 0.5 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.5nozzle* + +[printer:Voron_v2_300_afterburner 0.6 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.6nozzle* + +[printer:Voron_v2_300_afterburner 0.8 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.8nozzle* + +[printer:Voron_v2_300_afterburner 0.6 volcano] +inherits = *Voron_v2_300_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 0.8 volcano] +inherits = *Voron_v2_300_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 1.0 volcano] +inherits = *Voron_v2_300_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 1.2 volcano] +inherits = *Voron_v2_300_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner 0.25 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.25nozzle* + +[printer:Voron_v2_350_afterburner 0.3 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.3nozzle* + +[printer:Voron_v2_350_afterburner 0.4 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.4nozzle* + +[printer:Voron_v2_350_afterburner 0.5 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.5nozzle* + +[printer:Voron_v2_350_afterburner 0.6 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.6nozzle* + +[printer:Voron_v2_350_afterburner 0.8 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.8nozzle* + +[printer:Voron_v2_350_afterburner volcano 0.6 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 0.8 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 1.0 nozzle] +inherits = *Voron_v2_350_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 1.2 nozzle] +inherits = *Voron_v2_350_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 0.25 nozzle] +inherits = *Voron_v0_120*; *0.25nozzle*; *zero* + +[printer:Voron_v0 0.3 nozzle] +inherits = *Voron_v0_120*; *0.3nozzle*; *zero* + +[printer:Voron_v0 0.4 nozzle] +inherits = *Voron_v0_120*; *0.4nozzle*; *zero* + +[printer:Voron_v0 0.5 nozzle] +inherits = *Voron_v0_120*; *0.5nozzle*; *zero* + +[printer:Voron_v0 0.6 nozzle] +inherits = *Voron_v0_120*; *0.6nozzle*; *zero* + +[printer:Voron_v0 0.8 nozzle] +inherits = *Voron_v0_120*; *0.8nozzle*; *zero* + +[printer:Voron_v0 volcano 0.6 nozzle] +inherits = *Voron_v0_120*; *0.6nozzle*; *volcano*; *zero* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 0.8 nozzle] +inherits = *Voron_v0_120*; *0.8nozzle*; *volcano*; *zero* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 1.0 nozzle] +inherits = *Voron_v0_120*; *1.0nozzle*; *volcano*; *zero* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 1.2 nozzle] +inherits = *Voron_v0_120*; *1.2nozzle*; *volcano*; *zero* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + + +# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. +# All other print presets will derive from the *common* print preset. +[print:*common*] +avoid_crossing_perimeters = 0 +bridge_acceleration = 3000 +bridge_angle = 0 +bridge_flow_ratio = 0.9 +bottom_fill_pattern = monotonic +bridge_speed = 60 +brim_inside_holes = 0 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +complete_objects = 0 +default_acceleration = 3000 +dont_support_bridges = 1 +ensure_vertical_shell_thickness = 1 +external_perimeters_first = 0 +external_perimeter_speed = 40 +extra_perimeters = 0 +extra_perimeters_overhangs = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 70 +elefant_foot_compensation = 0.1 +fill_angle = 45 +fill_density = 15% +fill_pattern = gyroid +first_layer_acceleration = 1000 +first_layer_height = 75% +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 4000 +infill_extruder = 1 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 125 +interface_shells = 0 +label_printed_objects = 1 +max_print_speed = 300 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 20 +notes = TODO: check the size of the extruder and the y-bar clearance. Optimize & test supports. +only_one_perimeter_top = 1 +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +perimeters = 3 +perimeter_acceleration = 2000 +perimeter_extruder = 1 +perimeter_speed = 100 +post_process = +print_settings_id = +raft_layers = 0 +seam_position = nearest +single_extruder_multi_material_priming = 1 +skirts = 3 +skirt_distance = 3 +skirt_height = 1 +small_perimeter_speed = 40 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_speed = 120 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_extruder = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_enforce_layers = 0 +support_material_contact_distance = 0.15 +support_material_interface_contact_loops = 0 +support_material_interface_layers = 1 +support_material_interface_spacing = 0 +support_material_interface_speed = 70 +support_material_pattern = rectilinear +support_material_interface_extruder = 0 +support_material_solid_first_layer = 1 +support_material_spacing = 1.5 +support_material_speed = 90 +support_material_synchronize_layers = 0 +support_material_threshold = 30 +support_material_with_sheath = 0 +support_material_xy_spacing = 0.6 +thin_perimeters = 1 +thin_walls = 0 +top_fill_pattern = monotonic +top_solid_infill_speed = 50 +travel_speed = 300 +wipe_tower = 1 +wipe_tower_bridging = 10 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 +extrusion_width = 0 +external_perimeter_extrusion_width = 0 +first_layer_extrusion_width = 0 +infill_extrusion_width = 0 +perimeter_extrusion_width = 0 +solid_infill_extrusion_width = 0 +top_infill_extrusion_width = 0 +support_material_extrusion_width = 0 +infill_anchor = 0 + +[print:*zero_toolhead*] +extruder_clearance_height = 38 +extruder_clearance_radius = 34 + +# Print parameters common to a 0.25mm diameter nozzle. +[print:*0.25nozzle*] +perimeters = 5 +support_material_interface_spacing = 0.1 +support_material_spacing = 1 +first_layer_height = 0.15 +extrusion_width = 0.27 +external_perimeter_extrusion_width = 0.26 +first_layer_extrusion_width = 0.35 +infill_extrusion_width = 0.27 +perimeter_extrusion_width = 0.27 +solid_infill_extrusion_width = 0.27 +top_infill_extrusion_width = 0.27 +support_material_extrusion_width = 0.27 +elefant_foot_compensation = 0 + +# Print parameters common to a 0.3mm diameter nozzle. +[print:*0.3nozzle*] +perimeters = 4 +support_material_interface_spacing = 0.15 +support_material_spacing = 1 +first_layer_height = 0.2 +extrusion_width = 0.33 +external_perimeter_extrusion_width = 0.31 +first_layer_extrusion_width = 0.42 +infill_extrusion_width = 0.33 +perimeter_extrusion_width = 0.33 +solid_infill_extrusion_width = 0.33 +top_infill_extrusion_width = 0.33 +support_material_extrusion_width = 0.33 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.4nozzle*] +perimeters = 3 +support_material_interface_spacing = 0.2 +support_material_spacing = 1 +first_layer_height = 0.2 +extrusion_width = 0.44 +external_perimeter_extrusion_width = 0.42 +first_layer_extrusion_width = 0.56 +infill_extrusion_width = 0.44 +perimeter_extrusion_width = 0.44 +solid_infill_extrusion_width = 0.44 +top_infill_extrusion_width = 0.44 +support_material_extrusion_width = 0.44 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.5nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.2 +support_material_spacing = 1.1 +first_layer_height = 0.2 +extrusion_width = 0.55 +external_perimeter_extrusion_width = 0.52 +first_layer_extrusion_width = 0.7 +infill_extrusion_width = 0.55 +perimeter_extrusion_width = 0.55 +solid_infill_extrusion_width = 0.55 +top_infill_extrusion_width = 0.55 +support_material_extrusion_width = 0.55 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.6nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.3 +support_material_spacing = 1.2 +first_layer_height = 0.3 +extrusion_width = 0.66 +external_perimeter_extrusion_width = 0.63 +first_layer_extrusion_width = 0.84 +infill_extrusion_width = 0.66 +perimeter_extrusion_width = 0.66 +solid_infill_extrusion_width = 0.66 +top_infill_extrusion_width = 0.66 +support_material_extrusion_width = 0.66 + +# Print parameters common to a 0.8mm diameter nozzle. +[print:*0.8nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.3 +support_material_spacing = 1.2 +first_layer_height = 0.4 +extrusion_width = 0.88 +external_perimeter_extrusion_width = 0.84 +first_layer_extrusion_width = 1.12 +infill_extrusion_width = 0.88 +perimeter_extrusion_width = 0.88 +solid_infill_extrusion_width = 0.88 +top_infill_extrusion_width = 0.88 +support_material_extrusion_width = 0.88 + +[print:*1.0nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.4 +support_material_spacing = 1.4 +first_layer_height = 0.4 +extrusion_width = 1.1 +external_perimeter_extrusion_width = 1.05 +first_layer_extrusion_width = 1.4 +infill_extrusion_width = 1.1 +perimeter_extrusion_width = 1.1 +solid_infill_extrusion_width = 1.1 +top_infill_extrusion_width = 1.1 +support_material_extrusion_width = 1.1 + +[print:*1.2nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.5 +support_material_spacing = 1.6 +first_layer_height = 0.4 +extrusion_width = 1.32 +external_perimeter_extrusion_width = 1.26 +first_layer_extrusion_width = 1.68 +infill_extrusion_width = 1.32 +perimeter_extrusion_width = 1.32 +solid_infill_extrusion_width = 1.32 +top_infill_extrusion_width = 1.32 +support_material_extrusion_width = 1.32 + +[print:*0.05mm*] +inherits = *common* +bottom_solid_layers = 11 +top_solid_layers = 12 +layer_height = 0.05 +bridge_flow_ratio = 0.5 +infill_acceleration = 1500 +infill_speed = 100 +max_print_speed = 100 +perimeter_speed = 70 +external_perimeter_speed = 30 +solid_infill_speed = 60 +top_solid_infill_speed = 40 +bridge_speed = 30 + +[print:*0.10mm*] +inherits = *common* +bottom_solid_layers = 8 +top_solid_layers = 9 +layer_height = 0.1 +bridge_flow_ratio = 0.6 +infill_acceleration = 1500 +infill_speed = 100 +max_print_speed = 200 +perimeter_speed = 85 +external_perimeter_speed = 35 +solid_infill_speed = 80 +top_solid_infill_speed = 40 +bridge_speed = 30 + +[print:*0.15mm*] +inherits = *common* +bottom_solid_layers = 6 +top_solid_layers = 7 +layer_height = 0.15 +bridge_flow_ratio = 0.7 +max_print_speed = 250 +solid_infill_speed = 100 + +[print:*0.2mm*] +inherits = *common* +bottom_solid_layers = 5 +top_solid_layers = 6 +layer_height = 0.2 +bridge_flow_ratio = 0.8 + +[print:*0.25mm*] +inherits = *common* +bottom_solid_layers = 4 +top_solid_layers = 5 +layer_height = 0.25 +bridge_flow_ratio = 0.85 + +[print:*0.3mm*] +inherits = *common* +bottom_solid_layers = 3 +top_solid_layers = 4 +layer_height = 0.3 +bridge_flow_ratio = 0.9 + +[print:*0.4mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.4 +bridge_flow_ratio = 0.9 + +[print:*0.6mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.6 +bridge_flow_ratio = 0.9 + +[print:*0.8mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.8 +bridge_flow_ratio = 0.9 + +[print:0.05mm 0.25nozzle V2] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V2] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V2] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V2] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.05mm 0.25nozzle V1] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V1] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V1] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V1] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.05mm 0.25nozzle V0] +inherits = *0.05mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V0] +inherits = *0.05mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V0] +inherits = *0.05mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V0] +inherits = *0.05mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.25nozzle V2] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V2] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V2] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V2] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V2] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V2] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.10mm 0.25nozzle V1] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V1] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V1] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V1] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V1] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V1] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.10mm 0.25nozzle V0] +inherits = *0.10mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V0] +inherits = *0.10mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V0] +inherits = *0.10mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V0] +inherits = *0.10mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V0] +inherits = *0.10mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V0] +inherits = *0.10mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 0.25nozzle V2] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V2] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V2] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V2] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V2] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V2] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle V2] +inherits = *0.15mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle V2] +inherits = *0.15mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.15mm 0.25nozzle V1] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V1] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V1] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V1] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V1] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V1] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 0.25nozzle V0] +inherits = *0.15mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V0] +inherits = *0.15mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V0] +inherits = *0.15mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V0] +inherits = *0.15mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V0] +inherits = *0.15mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V0] +inherits = *0.15mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle V0] +inherits = *0.15mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle V0] +inherits = *0.15mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.2mm 0.3nozzle V2] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V2] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V2] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V2] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V2] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle V2] +inherits = *0.2mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle V2] +inherits = *0.2mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.2mm 0.25nozzle V1] +inherits = *0.2mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.2mm 0.3nozzle V1] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V1] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V1] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V1] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V1] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 0.3nozzle V0] +inherits = *0.2mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V0] +inherits = *0.2mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V0] +inherits = *0.2mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V0] +inherits = *0.2mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V0] +inherits = *0.2mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle V0] +inherits = *0.2mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle V0] +inherits = *0.2mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.3mm 0.4nozzle V2] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V2] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V2] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V2] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle V2] +inherits = *0.3mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle V2] +inherits = *0.3mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.3mm 0.25nozzle V1] +inherits = *0.3mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.3mm 0.3nozzle V1] +inherits = *0.3mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.3mm 0.4nozzle V1] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V1] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V1] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V1] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 0.4nozzle V0] +inherits = *0.3mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V0] +inherits = *0.3mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V0] +inherits = *0.3mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V0] +inherits = *0.3mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle V0] +inherits = *0.3mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle V0] +inherits = *0.3mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.4mm 0.6nozzle V2] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V2] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle V2] +inherits = *0.4mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle V2] +inherits = *0.4mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.4mm 0.25nozzle V1] +inherits = *0.4mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.4mm 0.3nozzle V1] +inherits = *0.4mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.4mm 0.4nozzle V1] +inherits = *0.4mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.4mm 0.5nozzle V1] +inherits = *0.4mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.4mm 0.6nozzle V1] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V1] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 0.6nozzle V0] +inherits = *0.4mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V0] +inherits = *0.4mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle V0] +inherits = *0.4mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle V0] +inherits = *0.4mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V2] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V2] +inherits = *0.6mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V2] +inherits = *0.6mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_2.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V1] +inherits = *0.6mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V1] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V1] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V0] +inherits = *0.6mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V0] +inherits = *0.6mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V0] +inherits = *0.6mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V2] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V1] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V0] +inherits = *0.8mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[filament:*common*] +cooling = 1 +compatible_printers = +compatible_printers_condition = +end_filament_gcode = "" +extrusion_multiplier = 1 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 4 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_load_time = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_notes = "" +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_settings_id = "" +filament_soluble = 0 +filament_toolchange_delay = 0 +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +min_print_speed = 15 +slowdown_below_layer_time = 20 +start_filament_gcode = "" + + +[filament:*BasicPLA*] +inherits = *common* +bed_temperature = 55 +fan_below_layer_time = 100 +filament_colour = #FF3232 +filament_type = PLA +filament_density = 1.24 +filament_cost = 20 +first_layer_bed_temperature = 55 +first_layer_temperature = 215 +disable_fan_first_layers = 1 +fan_always_on = 1 +max_fan_speed = 100 +min_fan_speed = 100 +bridge_fan_speed = 100 +temperature = 205 + +[filament:Basic PLA @VORON] +inherits = *BasicPLA* +filament_vendor = Generic +filament_max_volumetric_speed = 13 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic PLA VOLCANO @VORON] +inherits = *BasicPLA* +filament_vendor = Generic +filament_max_volumetric_speed = 20 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*BasicPET*] +inherits = *common* +bed_temperature = 70 +cooling = 0 +disable_fan_first_layers = 2 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_type = PET +filament_density = 1.27 +filament_cost = 30 +first_layer_bed_temperature =70 +first_layer_temperature = 240 +fan_always_on = 1 +max_fan_speed = 30 +min_fan_speed = 20 +bridge_fan_speed = 100 +temperature = 245 + +[filament:Basic PET @VORON] +inherits = *BasicPET* +filament_vendor = Generic +filament_max_volumetric_speed = 8 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic PET VOLCANO @VORON] +inherits = *BasicPET* +filament_vendor = Generic +filament_max_volumetric_speed = 14 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*BasicABS*] +inherits = *common* +bed_temperature = 90 +cooling = 0 +disable_fan_first_layers = 3 +fan_below_layer_time = 20 +filament_colour = #3A80CA +filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_type = ABS +filament_density = 1.04 +filament_cost = 20 +first_layer_bed_temperature = 100 +first_layer_temperature = 250 +fan_always_on = 0 +max_fan_speed = 0 +min_fan_speed = 0 +bridge_fan_speed = 30 +slowdown_below_layer_time = 15 +temperature = 250 + +[filament:Basic ABS @VORON] +inherits = *BasicABS* +filament_vendor = Generic +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic ABS VOLCANO @VORON] +inherits = *BasicABS* +filament_vendor = Generic +filament_max_volumetric_speed = 17 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*kvpABS*] +inherits = *BasicABS* +bed_temperature = 105 +cooling = 1 +disable_fan_first_layers = 5 +filament_colour = #FFFF00 +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_density = 1.05 +filament_cost = 22 +first_layer_bed_temperature = 110 +first_layer_temperature = 240 +fan_always_on = 1 +fan_below_layer_time = 45 +max_fan_speed = 30 +min_fan_speed = 15 +bridge_fan_speed = 30 +temperature = 235 + +[filament:KVP ABS @VORON] +inherits = *kvpABS* +filament_vendor = KVP +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:KVP ABS VOLCANO @VORON] +inherits = *kvpABS* +filament_vendor = KVP +filament_max_volumetric_speed = 17 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + diff --git a/resources/profiles/Voron/Voron_v0_120_thumbnail.png b/resources/profiles/Voron/Voron_v0_120_thumbnail.png new file mode 100644 index 0000000000..b00586b6f6 Binary files /dev/null and b/resources/profiles/Voron/Voron_v0_120_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png new file mode 100644 index 0000000000..07c3202cac Binary files /dev/null and b/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png new file mode 100644 index 0000000000..07c3202cac Binary files /dev/null and b/resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png new file mode 100644 index 0000000000..02a2d3358c Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_250_thumbnail.png b/resources/profiles/Voron/Voron_v2_250_thumbnail.png new file mode 100644 index 0000000000..02a2d3358c Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_250_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png new file mode 100644 index 0000000000..02a2d3358c Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_300_thumbnail.png b/resources/profiles/Voron/Voron_v2_300_thumbnail.png new file mode 100644 index 0000000000..02a2d3358c Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_300_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png new file mode 100644 index 0000000000..02a2d3358c Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_350_thumbnail.png b/resources/profiles/Voron/Voron_v2_350_thumbnail.png new file mode 100644 index 0000000000..02a2d3358c Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_350_thumbnail.png differ diff --git a/resources/profiles/Voron/bedtexture-v0-120.png b/resources/profiles/Voron/bedtexture-v0-120.png new file mode 100644 index 0000000000..27d6f343a3 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v0-120.png differ diff --git a/resources/profiles/Voron/bedtexture-v1-250.png b/resources/profiles/Voron/bedtexture-v1-250.png new file mode 100644 index 0000000000..f81d0b869e Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v1-250.png differ diff --git a/resources/profiles/Voron/bedtexture-v1-300.png b/resources/profiles/Voron/bedtexture-v1-300.png new file mode 100644 index 0000000000..6d6b27bc80 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v1-300.png differ diff --git a/resources/profiles/Voron/bedtexture-v2-250.png b/resources/profiles/Voron/bedtexture-v2-250.png new file mode 100644 index 0000000000..f81d0b869e Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v2-250.png differ diff --git a/resources/profiles/Voron/bedtexture-v2-300.png b/resources/profiles/Voron/bedtexture-v2-300.png new file mode 100644 index 0000000000..6d6b27bc80 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v2-300.png differ diff --git a/resources/profiles/Voron/bedtexture-v2-350.png b/resources/profiles/Voron/bedtexture-v2-350.png new file mode 100644 index 0000000000..1c511b35b1 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v2-350.png differ diff --git a/resources/profiles/Voron/printbed-v0-120.stl b/resources/profiles/Voron/printbed-v0-120.stl new file mode 100644 index 0000000000..ddadca2a3e Binary files /dev/null and b/resources/profiles/Voron/printbed-v0-120.stl differ diff --git a/resources/profiles/Voron/printbed-v1-250.stl b/resources/profiles/Voron/printbed-v1-250.stl new file mode 100644 index 0000000000..ea0cd01974 Binary files /dev/null and b/resources/profiles/Voron/printbed-v1-250.stl differ diff --git a/resources/profiles/Voron/printbed-v1-300.stl b/resources/profiles/Voron/printbed-v1-300.stl new file mode 100644 index 0000000000..13e33560ad Binary files /dev/null and b/resources/profiles/Voron/printbed-v1-300.stl differ diff --git a/resources/profiles/Voron/printbed-v2-250.stl b/resources/profiles/Voron/printbed-v2-250.stl new file mode 100644 index 0000000000..84835f5a32 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-250.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-250 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 -9.961947e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 -9.961947e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 -9.961947e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 -9.961947e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 -8.191476e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 -8.191476e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 -8.191476e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 -8.191476e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 -5.735914e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 -5.735914e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 -5.735914e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 -5.735914e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191503e-01 -5.735790e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191503e-01 -5.735790e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191636e-01 -5.735599e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 -5.735599e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 -5.735599e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 -5.735790e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191636e-01 -5.735599e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 -5.735790e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 -9.659280e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 -9.659280e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 -9.659290e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 -9.659290e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 -9.659290e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 -9.659280e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 -9.659290e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 -9.659280e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 9.659280e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 9.659290e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.645697e-01 9.863655e-01 -0.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 3.247049e-01 9.458154e-01 -0.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal 3.247049e-01 9.458154e-01 0.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.247141e-01 9.458122e-01 0.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.247141e-01 9.458122e-01 0.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.759586e-01 8.794677e-01 -0.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.759586e-01 8.794677e-01 0.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.759460e-01 8.794745e-01 0.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.759460e-01 8.794745e-01 0.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 6.142196e-01 7.891352e-01 -0.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal 6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.357056e-01 6.773015e-01 -0.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.357056e-01 6.773015e-01 0.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.357206e-01 6.772852e-01 0.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.357206e-01 6.772852e-01 0.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 5.735599e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 5.735599e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 5.735790e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 5.735790e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.371778e-01 5.469309e-01 -0.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.371778e-01 5.469309e-01 0.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.371640e-01 5.469520e-01 0.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.371640e-01 5.469520e-01 0.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.157690e-01 4.017053e-01 -0.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.694039e-01 2.454712e-01 -0.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.965842e-01 8.258254e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 5.735914e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 8.191476e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 9.961947e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/profiles/Voron/printbed-v2-300.stl b/resources/profiles/Voron/printbed-v2-300.stl new file mode 100644 index 0000000000..dd1c028c01 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-300.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-300 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.853360e-02 -9.969115e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.853360e-02 -9.969115e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 -9.063261e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 -9.063261e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 -9.063261e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 -9.063261e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.494452e-01 -7.604084e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.494452e-01 -7.604084e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal -7.604049e-01 -6.494492e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.604049e-01 -6.494492e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal -8.526285e-01 -5.225175e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.526285e-01 -5.225175e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 -4.225625e-01 -0.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 -4.225625e-01 -0.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 -4.225625e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 -4.225625e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 -8.719770e-02 -0.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 -8.719770e-02 -0.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 -8.719770e-02 0.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 -8.719770e-02 0.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 -5.735924e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 -5.735924e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 -5.735733e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 -5.735733e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 -5.735733e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 -5.735924e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 -5.735733e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 -5.735924e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 9.659306e-01 -0.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 -0.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 5.735924e-01 -0.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 5.735733e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 -0.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 8.719770e-02 -0.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 4.225625e-01 -0.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 -0.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 9.063261e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 -0.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/profiles/Voron/printbed-v2-350.stl b/resources/profiles/Voron/printbed-v2-350.stl new file mode 100644 index 0000000000..b64dbea961 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-350.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-350 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 -9.961991e-01 -0.000000e+00 + outer loop + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 -9.961991e-01 -0.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.843923e-02 -9.969189e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.843923e-02 -9.969189e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 -9.961991e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 -9.961984e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 -9.961984e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 -9.961984e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 -9.961984e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 -9.961991e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.495001e-01 -7.603615e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.495001e-01 -7.603615e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal -7.603649e-01 -6.494961e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.603649e-01 -6.494961e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 -5.735541e-01 -0.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 -5.735541e-01 -0.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 -5.735541e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 -5.735541e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal -8.526545e-01 -5.224752e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.526545e-01 -5.224752e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 -8.710545e-02 -0.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 -8.710545e-02 -0.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 -8.710545e-02 0.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 -8.710545e-02 0.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 -2.588348e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 -2.588348e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 -2.588083e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 -2.588083e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 -2.588083e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 -2.588348e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 -2.588083e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 -2.588348e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 -2.588277e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 -2.588277e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 -2.588277e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 -2.588277e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 -5.735656e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 -5.735656e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 -5.735465e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 -5.735465e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 -5.735465e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 -5.735656e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 -5.735465e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 -5.735656e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 -9.659183e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 -9.659183e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 -9.659183e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 -9.659183e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 9.659183e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 -0.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 2.588277e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 5.735656e-01 -0.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 5.735465e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 -0.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 2.588348e-01 -0.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 2.588083e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 8.710545e-02 -0.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 5.735541e-01 -0.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 -0.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 9.961984e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 9.961991e-01 -0.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/shaders/gouraud.fs b/resources/shaders/gouraud.fs index b2c38e4a13..a1ba85b5c1 100644 --- a/resources/shaders/gouraud.fs +++ b/resources/shaders/gouraud.fs @@ -22,6 +22,19 @@ const vec3 WHITE = vec3(1.0, 1.0, 1.0); const float EPSILON = 0.0001; const float BANDS_WIDTH = 10.0; +struct PrintVolumeDetection +{ + // 0 = rectangle, 1 = circle, 2 = custom, 3 = invalid + int type; + // type = 0 (rectangle): + // x = min.x, y = min.y, z = max.x, w = max.y + // type = 1 (circle): + // x = center.x, y = center.y, z = radius + vec4 xy_data; + // x = min z, y = max z + vec2 z_data; +}; + struct SlopeDetection { bool actived; @@ -44,11 +57,10 @@ varying vec3 clipping_planes_dots; // x = diffuse, y = specular; varying vec2 intensity; -varying vec3 delta_box_min; -varying vec3 delta_box_max; +uniform PrintVolumeDetection print_volume; varying vec4 model_pos; -varying float world_pos_z; +varying vec4 world_pos; varying float world_normal_z; varying vec3 eye_normal; @@ -63,15 +75,30 @@ void main() color = vec3(0.7, 0.7, 1.0); alpha = 1.0; } + // if the fragment is outside the print volume -> use darker color - color = (any(lessThan(delta_box_min, ZERO)) || any(greaterThan(delta_box_max, ZERO))) ? mix(color, ZERO, 0.3333) : color; + vec3 pv_check_min = ZERO; + vec3 pv_check_max = ZERO; + if (print_volume.type == 0) { + // rectangle + pv_check_min = world_pos.xyz - vec3(print_volume.xy_data.x, print_volume.xy_data.y, print_volume.z_data.x); + pv_check_max = world_pos.xyz - vec3(print_volume.xy_data.z, print_volume.xy_data.w, print_volume.z_data.y); + } + else if (print_volume.type == 1) { + // circle + float delta_radius = print_volume.xy_data.z - distance(world_pos.xy, print_volume.xy_data.xy); + pv_check_min = vec3(delta_radius, 0.0, world_pos.z - print_volume.z_data.x); + pv_check_max = vec3(0.0, 0.0, world_pos.z - print_volume.z_data.y); + } + color = (any(lessThan(pv_check_min, ZERO)) || any(greaterThan(pv_check_max, ZERO))) ? mix(color, ZERO, 0.3333) : color; + #ifdef ENABLE_ENVIRONMENT_MAP if (use_environment_tex) gl_FragColor = vec4(0.45 * texture2D(environment_tex, normalize(eye_normal).xy * 0.5 + 0.5).xyz + 0.8 * color * intensity.x, alpha); else #endif gl_FragColor = vec4(vec3(intensity.y) + color * intensity.x, alpha); - + // In the support painting gizmo and the seam painting gizmo are painted triangles rendered over the already // rendered object. To resolved z-fighting between previously rendered object and painted triangles, values // inside the depth buffer are offset by small epsilon for painted triangles inside those gizmos. diff --git a/resources/shaders/gouraud.vs b/resources/shaders/gouraud.vs index d5e74b60b0..79d7a63c07 100644 --- a/resources/shaders/gouraud.vs +++ b/resources/shaders/gouraud.vs @@ -18,14 +18,6 @@ const vec3 LIGHT_FRONT_DIR = vec3(0.6985074, 0.1397015, 0.6985074); const vec3 ZERO = vec3(0.0, 0.0, 0.0); -struct PrintBoxDetection -{ - bool actived; - vec3 min; - vec3 max; - mat4 volume_world_matrix; -}; - struct SlopeDetection { bool actived; @@ -33,7 +25,7 @@ struct SlopeDetection mat3 volume_world_normal_matrix; }; -uniform PrintBoxDetection print_box; +uniform mat4 volume_world_matrix; uniform SlopeDetection slope; // Clipping plane, x = min z, y = max z. Used by the FFF and SLA previews to clip with a top / bottom plane. @@ -44,46 +36,33 @@ uniform vec4 clipping_plane; // x = diffuse, y = specular; varying vec2 intensity; -varying vec3 delta_box_min; -varying vec3 delta_box_max; - varying vec3 clipping_planes_dots; varying vec4 model_pos; -varying float world_pos_z; +varying vec4 world_pos; varying float world_normal_z; varying vec3 eye_normal; void main() { - // First transform the normal into camera space and normalize the result. - eye_normal = normalize(gl_NormalMatrix * gl_Normal); + // First transform the normal into camera space and normalize the result. + eye_normal = normalize(gl_NormalMatrix * gl_Normal); - // Compute the cos of the angle between the normal and lights direction. The light is directional so the direction is constant for every vertex. - // Since these two are normalized the cosine is the dot product. We also need to clamp the result to the [0,1] range. - float NdotL = max(dot(eye_normal, LIGHT_TOP_DIR), 0.0); + // Compute the cos of the angle between the normal and lights direction. The light is directional so the direction is constant for every vertex. + // Since these two are normalized the cosine is the dot product. We also need to clamp the result to the [0,1] range. + float NdotL = max(dot(eye_normal, LIGHT_TOP_DIR), 0.0); - intensity.x = INTENSITY_AMBIENT + NdotL * LIGHT_TOP_DIFFUSE; - vec3 position = (gl_ModelViewMatrix * gl_Vertex).xyz; - intensity.y = LIGHT_TOP_SPECULAR * pow(max(dot(-normalize(position), reflect(-LIGHT_TOP_DIR, eye_normal)), 0.0), LIGHT_TOP_SHININESS); + intensity.x = INTENSITY_AMBIENT + NdotL * LIGHT_TOP_DIFFUSE; + vec3 position = (gl_ModelViewMatrix * gl_Vertex).xyz; + intensity.y = LIGHT_TOP_SPECULAR * pow(max(dot(-normalize(position), reflect(-LIGHT_TOP_DIR, eye_normal)), 0.0), LIGHT_TOP_SHININESS); - // Perform the same lighting calculation for the 2nd light source (no specular applied). - NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0); - intensity.x += NdotL * LIGHT_FRONT_DIFFUSE; + // Perform the same lighting calculation for the 2nd light source (no specular applied). + NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0); + intensity.x += NdotL * LIGHT_FRONT_DIFFUSE; model_pos = gl_Vertex; // Point in homogenous coordinates. - vec4 world_pos = print_box.volume_world_matrix * gl_Vertex; - world_pos_z = world_pos.z; - - // compute deltas for out of print volume detection (world coordinates) - if (print_box.actived) { - delta_box_min = world_pos.xyz - print_box.min; - delta_box_max = world_pos.xyz - print_box.max; - } else { - delta_box_min = ZERO; - delta_box_max = ZERO; - } + world_pos = volume_world_matrix * gl_Vertex; // z component of normal vector in world coordinate used for slope shading world_normal_z = slope.actived ? (normalize(slope.volume_world_normal_matrix * gl_Normal)).z : 0.0; diff --git a/resources/shaders/gouraud_mod.fs b/resources/shaders/gouraud_mod.fs deleted file mode 100644 index a1ba85b5c1..0000000000 --- a/resources/shaders/gouraud_mod.fs +++ /dev/null @@ -1,106 +0,0 @@ -#version 110 - -#define INTENSITY_CORRECTION 0.6 - -// normalized values for (-0.6/1.31, 0.6/1.31, 1./1.31) -const vec3 LIGHT_TOP_DIR = vec3(-0.4574957, 0.4574957, 0.7624929); -#define LIGHT_TOP_DIFFUSE (0.8 * INTENSITY_CORRECTION) -#define LIGHT_TOP_SPECULAR (0.125 * INTENSITY_CORRECTION) -#define LIGHT_TOP_SHININESS 20.0 - -// normalized values for (1./1.43, 0.2/1.43, 1./1.43) -const vec3 LIGHT_FRONT_DIR = vec3(0.6985074, 0.1397015, 0.6985074); -#define LIGHT_FRONT_DIFFUSE (0.3 * INTENSITY_CORRECTION) - -#define INTENSITY_AMBIENT 0.3 - -const vec3 ZERO = vec3(0.0, 0.0, 0.0); -const vec3 GREEN = vec3(0.0, 0.7, 0.0); -const vec3 YELLOW = vec3(0.5, 0.7, 0.0); -const vec3 RED = vec3(0.7, 0.0, 0.0); -const vec3 WHITE = vec3(1.0, 1.0, 1.0); -const float EPSILON = 0.0001; -const float BANDS_WIDTH = 10.0; - -struct PrintVolumeDetection -{ - // 0 = rectangle, 1 = circle, 2 = custom, 3 = invalid - int type; - // type = 0 (rectangle): - // x = min.x, y = min.y, z = max.x, w = max.y - // type = 1 (circle): - // x = center.x, y = center.y, z = radius - vec4 xy_data; - // x = min z, y = max z - vec2 z_data; -}; - -struct SlopeDetection -{ - bool actived; - float normal_z; - mat3 volume_world_normal_matrix; -}; - -uniform vec4 uniform_color; -uniform SlopeDetection slope; - -uniform bool offset_depth_buffer; - -#ifdef ENABLE_ENVIRONMENT_MAP - uniform sampler2D environment_tex; - uniform bool use_environment_tex; -#endif // ENABLE_ENVIRONMENT_MAP - -varying vec3 clipping_planes_dots; - -// x = diffuse, y = specular; -varying vec2 intensity; - -uniform PrintVolumeDetection print_volume; - -varying vec4 model_pos; -varying vec4 world_pos; -varying float world_normal_z; -varying vec3 eye_normal; - -void main() -{ - if (any(lessThan(clipping_planes_dots, ZERO))) - discard; - vec3 color = uniform_color.rgb; - float alpha = uniform_color.a; - - if (slope.actived && world_normal_z < slope.normal_z - EPSILON) { - color = vec3(0.7, 0.7, 1.0); - alpha = 1.0; - } - - // if the fragment is outside the print volume -> use darker color - vec3 pv_check_min = ZERO; - vec3 pv_check_max = ZERO; - if (print_volume.type == 0) { - // rectangle - pv_check_min = world_pos.xyz - vec3(print_volume.xy_data.x, print_volume.xy_data.y, print_volume.z_data.x); - pv_check_max = world_pos.xyz - vec3(print_volume.xy_data.z, print_volume.xy_data.w, print_volume.z_data.y); - } - else if (print_volume.type == 1) { - // circle - float delta_radius = print_volume.xy_data.z - distance(world_pos.xy, print_volume.xy_data.xy); - pv_check_min = vec3(delta_radius, 0.0, world_pos.z - print_volume.z_data.x); - pv_check_max = vec3(0.0, 0.0, world_pos.z - print_volume.z_data.y); - } - color = (any(lessThan(pv_check_min, ZERO)) || any(greaterThan(pv_check_max, ZERO))) ? mix(color, ZERO, 0.3333) : color; - -#ifdef ENABLE_ENVIRONMENT_MAP - if (use_environment_tex) - gl_FragColor = vec4(0.45 * texture2D(environment_tex, normalize(eye_normal).xy * 0.5 + 0.5).xyz + 0.8 * color * intensity.x, alpha); - else -#endif - gl_FragColor = vec4(vec3(intensity.y) + color * intensity.x, alpha); - - // In the support painting gizmo and the seam painting gizmo are painted triangles rendered over the already - // rendered object. To resolved z-fighting between previously rendered object and painted triangles, values - // inside the depth buffer are offset by small epsilon for painted triangles inside those gizmos. - gl_FragDepth = gl_FragCoord.z - (offset_depth_buffer ? EPSILON : 0.0); -} diff --git a/resources/shaders/gouraud_mod.vs b/resources/shaders/gouraud_mod.vs deleted file mode 100644 index 79d7a63c07..0000000000 --- a/resources/shaders/gouraud_mod.vs +++ /dev/null @@ -1,73 +0,0 @@ -#version 110 - -#define INTENSITY_CORRECTION 0.6 - -// normalized values for (-0.6/1.31, 0.6/1.31, 1./1.31) -const vec3 LIGHT_TOP_DIR = vec3(-0.4574957, 0.4574957, 0.7624929); -#define LIGHT_TOP_DIFFUSE (0.8 * INTENSITY_CORRECTION) -#define LIGHT_TOP_SPECULAR (0.125 * INTENSITY_CORRECTION) -#define LIGHT_TOP_SHININESS 20.0 - -// normalized values for (1./1.43, 0.2/1.43, 1./1.43) -const vec3 LIGHT_FRONT_DIR = vec3(0.6985074, 0.1397015, 0.6985074); -#define LIGHT_FRONT_DIFFUSE (0.3 * INTENSITY_CORRECTION) -//#define LIGHT_FRONT_SPECULAR (0.0 * INTENSITY_CORRECTION) -//#define LIGHT_FRONT_SHININESS 5.0 - -#define INTENSITY_AMBIENT 0.3 - -const vec3 ZERO = vec3(0.0, 0.0, 0.0); - -struct SlopeDetection -{ - bool actived; - float normal_z; - mat3 volume_world_normal_matrix; -}; - -uniform mat4 volume_world_matrix; -uniform SlopeDetection slope; - -// Clipping plane, x = min z, y = max z. Used by the FFF and SLA previews to clip with a top / bottom plane. -uniform vec2 z_range; -// Clipping plane - general orientation. Used by the SLA gizmo. -uniform vec4 clipping_plane; - -// x = diffuse, y = specular; -varying vec2 intensity; - -varying vec3 clipping_planes_dots; - -varying vec4 model_pos; -varying vec4 world_pos; -varying float world_normal_z; -varying vec3 eye_normal; - -void main() -{ - // First transform the normal into camera space and normalize the result. - eye_normal = normalize(gl_NormalMatrix * gl_Normal); - - // Compute the cos of the angle between the normal and lights direction. The light is directional so the direction is constant for every vertex. - // Since these two are normalized the cosine is the dot product. We also need to clamp the result to the [0,1] range. - float NdotL = max(dot(eye_normal, LIGHT_TOP_DIR), 0.0); - - intensity.x = INTENSITY_AMBIENT + NdotL * LIGHT_TOP_DIFFUSE; - vec3 position = (gl_ModelViewMatrix * gl_Vertex).xyz; - intensity.y = LIGHT_TOP_SPECULAR * pow(max(dot(-normalize(position), reflect(-LIGHT_TOP_DIR, eye_normal)), 0.0), LIGHT_TOP_SHININESS); - - // Perform the same lighting calculation for the 2nd light source (no specular applied). - NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0); - intensity.x += NdotL * LIGHT_FRONT_DIFFUSE; - - model_pos = gl_Vertex; - // Point in homogenous coordinates. - world_pos = volume_world_matrix * gl_Vertex; - - // z component of normal vector in world coordinate used for slope shading - world_normal_z = slope.actived ? (normalize(slope.volume_world_normal_matrix * gl_Normal)).z : 0.0; - - gl_Position = ftransform(); - // Fill in the scalars for fragment shader clipping. Fragments with any of these components lower than zero are discarded. - clipping_planes_dots = vec3(dot(world_pos, clipping_plane), world_pos.z - z_range.x, z_range.y - world_pos.z); -} diff --git a/src/imgui/imconfig.h b/src/imgui/imconfig.h index c5627f16bb..09c80a9d9b 100644 --- a/src/imgui/imconfig.h +++ b/src/imgui/imconfig.h @@ -139,22 +139,23 @@ namespace ImGui const wchar_t EjectHoverButton = 0x13; const wchar_t CancelButton = 0x14; const wchar_t CancelHoverButton = 0x15; - const wchar_t VarLayerHeightMarker = 0x16; +// const wchar_t VarLayerHeightMarker = 0x16; const wchar_t RightArrowButton = 0x18; const wchar_t RightArrowHoverButton = 0x19; const wchar_t PreferencesButton = 0x1A; const wchar_t PreferencesHoverButton = 0x1B; - const wchar_t SinkingObjectMarker = 0x1C; - const wchar_t CustomSupportsMarker = 0x1D; - const wchar_t CustomSeamMarker = 0x1E; - const wchar_t MmuSegmentationMarker = 0x1F; +// const wchar_t SinkingObjectMarker = 0x1C; +// const wchar_t CustomSupportsMarker = 0x1D; +// const wchar_t CustomSeamMarker = 0x1E; +// const wchar_t MmuSegmentationMarker = 0x1F; // Do not forget use following letters only in wstring const wchar_t DocumentationButton = 0x2600; const wchar_t DocumentationHoverButton = 0x2601; const wchar_t ClippyMarker = 0x2602; const wchar_t InfoMarker = 0x2603; - + const wchar_t SliderFloatEditBtnIcon = 0x2604; + // void MyFunction(const char* name, const MyMatrix44& v); } diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index e8e2753728..60e08659ca 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -72,8 +72,6 @@ void AppConfig::set_defaults() if (get("drop_project_action").empty()) set("drop_project_action", "1"); - if (get("version_check").empty()) - set("version_check", "1"); if (get("preset_update").empty()) set("preset_update", "1"); @@ -183,6 +181,9 @@ void AppConfig::set_defaults() if (get("dark_color_mode").empty()) set("dark_color_mode", "0"); + + if (get("sys_menu_enabled").empty()) + set("sys_menu_enabled", "1"); #endif // _WIN32 // Remove legacy window positions/sizes @@ -249,11 +250,11 @@ std::string AppConfig::load() bool recovered = false; try { - ifs.open(AppConfig::config_path()); + ifs.open(AppConfig::loading_path()); #ifdef WIN32 // Verify the checksum of the config file without taking just for debugging purpose. if (!verify_config_file_checksum(ifs)) - BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::config_path() << + BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::loading_path() << " has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit."; ifs.seekg(0, boost::nowide::ifstream::beg); @@ -263,32 +264,32 @@ std::string AppConfig::load() #ifdef WIN32 // The configuration file is corrupted, try replacing it with the backup configuration. ifs.close(); - std::string backup_path = (boost::format("%1%.bak") % AppConfig::config_path()).str(); + std::string backup_path = (boost::format("%1%.bak") % AppConfig::loading_path()).str(); if (boost::filesystem::exists(backup_path)) { // Compute checksum of the configuration backup file and try to load configuration from it when the checksum is correct. boost::nowide::ifstream backup_ifs(backup_path); if (!verify_config_file_checksum(backup_ifs)) { - BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::config_path(), backup_path); + BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::loading_path(), backup_path); backup_ifs.close(); boost::filesystem::remove(backup_path); - } else if (std::string error_message; copy_file(backup_path, AppConfig::config_path(), error_message, false) != SUCCESS) { - BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::config_path(), backup_path, error_message); + } else if (std::string error_message; copy_file(backup_path, AppConfig::loading_path(), error_message, false) != SUCCESS) { + BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::loading_path(), backup_path, error_message); backup_ifs.close(); boost::filesystem::remove(backup_path); } else { - BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::config_path(), backup_path); + BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::loading_path(), backup_path); // Try parse configuration file after restore from backup. try { - ifs.open(AppConfig::config_path()); + ifs.open(AppConfig::loading_path()); pt::read_ini(ifs, tree); recovered = true; } catch (pt::ptree_error& ex) { - BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::config_path(), ex.what()); + BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::loading_path(), ex.what()); } } } else #endif // WIN32 - BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::config_path(), ex.what()); + BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::loading_path(), ex.what()); if (! recovered) { // Report the initial error of parsing PrusaSlicer.ini. // Error while parsing config file. We'll customize the error message and rethrow to be displayed. diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 1fc208482b..02af17c8c8 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -148,6 +148,9 @@ public: // Does the config file exist? bool exists(); + void set_loading_path(const std::string& path) { m_loading_path = path; } + std::string loading_path() { return (m_loading_path.empty() ? config_path() : m_loading_path); } + std::vector get_recent_projects() const; void set_recent_projects(const std::vector& recent_projects); @@ -197,6 +200,8 @@ private: Semver m_orig_version; // Whether the existing version is before system profiles & configuration updating bool m_legacy_datadir; + + std::string m_loading_path; }; } // namespace Slic3r diff --git a/src/libslic3r/BoundingBox.hpp b/src/libslic3r/BoundingBox.hpp index 37483fc3e2..6b06f8babb 100644 --- a/src/libslic3r/BoundingBox.hpp +++ b/src/libslic3r/BoundingBox.hpp @@ -111,7 +111,7 @@ public: void translate(coordf_t x, coordf_t y, coordf_t z) { assert(this->defined); PointClass v(x, y, z); this->min += v; this->max += v; } void translate(const Vec3d &v) { this->min += v; this->max += v; } void offset(coordf_t delta); - BoundingBoxBase inflated(coordf_t delta) const throw() { BoundingBoxBase out(*this); out.offset(delta); return out; } + BoundingBox3Base inflated(coordf_t delta) const throw() { BoundingBox3Base out(*this); out.offset(delta); return out; } PointClass center() const; coordf_t max_size() const; diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 8f31b0695c..858ca770b0 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -72,10 +72,6 @@ static ConstPrintObjectPtrs get_top_level_objects_with_brim(const Print &print, ConstPrintObjectPtrs island_to_object; for(size_t print_object_idx = 0; print_object_idx < print.objects().size(); ++print_object_idx) { const PrintObject *object = print.objects()[print_object_idx]; - - if (! object->has_brim()) - continue; - Polygons islands_object; islands_object.reserve(bottom_layers_expolygons[print_object_idx].size()); for (const ExPolygon &ex_poly : bottom_layers_expolygons[print_object_idx]) @@ -134,6 +130,9 @@ static Polygons top_level_outer_brim_islands(const ConstPrintObjectPtrs &top_lev { Polygons islands; for (const PrintObject *object : top_level_objects_with_brim) { + if (!object->has_brim()) + continue; + //FIXME how about the brim type? auto brim_separation = float(scale_(object->config().brim_separation.value)); Polygons islands_object; @@ -177,11 +176,14 @@ static ExPolygons top_level_outer_brim_area(const Print &print if ((brim_type == BrimType::btOuterOnly || brim_type == BrimType::btOuterAndInner) && is_top_outer_brim) append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_separation, ClipperLib::jtSquare), offset(ex_poly.contour, brim_separation, ClipperLib::jtSquare))); + // After 7ff76d07684858fd937ef2f5d863f105a10f798e offset and shrink don't work with CW polygons (holes), so let's make it CCW. + Polygons ex_poly_holes_reversed = ex_poly.holes; + polygons_reverse(ex_poly_holes_reversed); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly.holes, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare)); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly.holes)); + append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type != BrimType::btNoBrim) append(no_brim_area_object, offset_ex(ExPolygon(ex_poly.contour), brim_separation, ClipperLib::jtSquare)); @@ -230,16 +232,19 @@ static ExPolygons inner_brim_area(const Print &print, append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_separation, ClipperLib::jtSquare), offset(ex_poly.contour, brim_separation, ClipperLib::jtSquare))); } + // After 7ff76d07684858fd937ef2f5d863f105a10f798e offset and shrink don't work with CW polygons (holes), so let's make it CCW. + Polygons ex_poly_holes_reversed = ex_poly.holes; + polygons_reverse(ex_poly_holes_reversed); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btOuterAndInner) - append(brim_area_object, diff_ex(shrink_ex(ex_poly.holes, brim_separation, ClipperLib::jtSquare), shrink_ex(ex_poly.holes, brim_width + brim_separation, ClipperLib::jtSquare))); + append(brim_area_object, diff_ex(shrink_ex(ex_poly_holes_reversed, brim_separation, ClipperLib::jtSquare), shrink_ex(ex_poly_holes_reversed, brim_width + brim_separation, ClipperLib::jtSquare))); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly.holes)); + append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly.holes, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, diff_ex(ExPolygon(ex_poly.contour), shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare))); - append(holes_object, ex_poly.holes); + append(holes_object, ex_poly_holes_reversed); } append(no_brim_area_object, offset_ex(bottom_layers_expolygons[print_object_idx], brim_separation, ClipperLib::jtSquare)); diff --git a/src/libslic3r/BuildVolume.cpp b/src/libslic3r/BuildVolume.cpp new file mode 100644 index 0000000000..f8fcef76f6 --- /dev/null +++ b/src/libslic3r/BuildVolume.cpp @@ -0,0 +1,414 @@ +#include "BuildVolume.hpp" +#include "ClipperUtils.hpp" +#include "Geometry/ConvexHull.hpp" +#include "GCode/GCodeProcessor.hpp" +#include "Point.hpp" + +#include + +namespace Slic3r { + +BuildVolume::BuildVolume(const std::vector &bed_shape, const double max_print_height) : m_bed_shape(bed_shape), m_max_print_height(max_print_height) +{ + assert(max_print_height >= 0); + + m_polygon = Polygon::new_scale(bed_shape); + + // Calcuate various metrics of the input polygon. + m_convex_hull = Geometry::convex_hull(m_polygon.points); + m_bbox = get_extents(m_convex_hull); + m_area = m_polygon.area(); + + BoundingBoxf bboxf = get_extents(bed_shape); + m_bboxf = BoundingBoxf3{ to_3d(bboxf.min, 0.), to_3d(bboxf.max, max_print_height) }; + + if (bed_shape.size() >= 4 && std::abs((m_area - double(m_bbox.size().x()) * double(m_bbox.size().y()))) < sqr(SCALED_EPSILON)) { + // Square print bed, use the bounding box for collision detection. + m_type = Type::Rectangle; + m_circle.center = 0.5 * (m_bbox.min.cast() + m_bbox.max.cast()); + m_circle.radius = 0.5 * m_bbox.size().cast().norm(); + } else if (bed_shape.size() > 3) { + // Circle was discretized, formatted into text with limited accuracy, thus the circle was deformed. + // RANSAC is slightly more accurate than the iterative Taubin / Newton method with such an input. +// m_circle = Geometry::circle_taubin_newton(bed_shape); + m_circle = Geometry::circle_ransac(bed_shape); + bool is_circle = true; +#ifndef NDEBUG + // Measuring maximum absolute error of interpolating an input polygon with circle. + double max_error = 0; +#endif // NDEBUG + Vec2d prev = bed_shape.back(); + for (const Vec2d &p : bed_shape) { +#ifndef NDEBUG + max_error = std::max(max_error, std::abs((p - m_circle.center).norm() - m_circle.radius)); +#endif // NDEBUG + if (// Polygon vertices must lie very close the circle. + std::abs((p - m_circle.center).norm() - m_circle.radius) > 0.005 || + // Midpoints of polygon edges must not undercat more than 3mm. This corresponds to 72 edges per circle generated by BedShapePanel::update_shape(). + m_circle.radius - (0.5 * (prev + p) - m_circle.center).norm() > 3.) { + is_circle = false; + break; + } + prev = p; + } + if (is_circle) { + m_type = Type::Circle; + m_circle.center = scaled(m_circle.center); + m_circle.radius = scaled(m_circle.radius); + } + } + + if (bed_shape.size() >= 3 && m_type == Type::Invalid) { + // Circle check is not used for Convex / Custom shapes, fill it with something reasonable. + m_circle = Geometry::smallest_enclosing_circle_welzl(m_convex_hull.points); + m_type = (m_convex_hull.area() - m_area) < sqr(SCALED_EPSILON) ? Type::Convex : Type::Custom; + // Initialize the top / bottom decomposition for inside convex polygon check. Do it with two different epsilons applied. + auto convex_decomposition = [](const Polygon &in, double epsilon) { + Polygon src = expand(in, float(epsilon)).front(); + std::vector pts; + pts.reserve(src.size()); + for (const Point &pt : src.points) + pts.emplace_back(unscaled(pt.cast().eval())); + return Geometry::decompose_convex_polygon_top_bottom(pts); + }; + m_top_bottom_convex_hull_decomposition_scene = convex_decomposition(m_convex_hull, SceneEpsilon); + m_top_bottom_convex_hull_decomposition_bed = convex_decomposition(m_convex_hull, BedEpsilon); + } + + BOOST_LOG_TRIVIAL(debug) << "BuildVolume bed_shape clasified as: " << this->type_name(); +} + +#if 0 +// Tests intersections of projected triangles, not just their vertices against a bounding box. +// This test also correctly evaluates collision of a non-convex object with the bounding box. +// Not used, slower than simple bounding box collision check and nobody complained about the inaccuracy of the simple test. +static inline BuildVolume::ObjectState rectangle_test(const indexed_triangle_set &its, const Transform3f &trafo, const Vec2f min, const Vec2f max, const float max_z) +{ + bool inside = false; + bool outside = false; + + auto sign = [](const Vec3f& pt) -> char { return pt.z() > 0 ? 1 : pt.z() < 0 ? -1 : 0; }; + + // Returns true if both inside and outside are set, thus early exit. + auto test_intersection = [&inside, &outside, min, max, max_z](const Vec3f& p1, const Vec3f& p2, const Vec3f& p3) -> bool { + // First test whether the triangle is completely inside or outside the bounding box. + Vec3f pmin = p1.cwiseMin(p2).cwiseMin(p3); + Vec3f pmax = p1.cwiseMax(p2).cwiseMax(p3); + bool tri_inside = false; + bool tri_outside = false; + if (pmax.x() < min.x() || pmin.x() > max.x() || pmax.y() < min.y() || pmin.y() > max.y()) { + // Separated by one of the rectangle sides. + tri_outside = true; + } else if (pmin.x() >= min.x() && pmax.x() <= max.x() && pmin.y() >= min.y() && pmax.y() <= max.y()) { + // Fully inside the rectangle. + tri_inside = true; + } else { + // Bounding boxes overlap. Test triangle sides against the bbox corners. + Vec2f v1(- p2.y() + p1.y(), p2.x() - p1.x()); + Vec2f v2(- p2.y() + p2.y(), p3.x() - p2.x()); + Vec2f v3(- p1.y() + p3.y(), p1.x() - p3.x()); + bool ccw = cross2(v1, v2) > 0; + for (const Vec2f &p : { Vec2f{ min.x(), min.y() }, Vec2f{ min.x(), max.y() }, Vec2f{ max.x(), min.y() }, Vec2f{ max.x(), max.y() } }) { + auto dot = v1.dot(p); + if (ccw ? dot >= 0 : dot <= 0) + tri_inside = true; + else + tri_outside = true; + } + } + inside |= tri_inside; + outside |= tri_outside; + return inside && outside; + }; + + // Edge crosses the z plane. Calculate intersection point with the plane. + auto clip_edge = [](const Vec3f &p1, const Vec3f &p2) -> Vec3f { + const float t = (world_min_z - p1.z()) / (p2.z() - p1.z()); + return { p1.x() + (p2.x() - p1.x()) * t, p1.y() + (p2.y() - p1.y()) * t, world_min_z }; + }; + + // Clip at (p1, p2), p3 must be on the clipping plane. + // Returns true if both inside and outside are set, thus early exit. + auto clip_and_test1 = [&test_intersection, &clip_edge](const Vec3f &p1, const Vec3f &p2, const Vec3f &p3, bool p1above) -> bool { + Vec3f pa = clip_edge(p1, p2); + return p1above ? test_intersection(p1, pa, p3) : test_intersection(pa, p2, p3); + }; + + // Clip at (p1, p2) and (p2, p3). + // Returns true if both inside and outside are set, thus early exit. + auto clip_and_test2 = [&test_intersection, &clip_edge](const Vec3f &p1, const Vec3f &p2, const Vec3f &p3, bool p2above) -> bool { + Vec3f pa = clip_edge(p1, p2); + Vec3f pb = clip_edge(p2, p3); + return p2above ? test_intersection(pa, p2, pb) : test_intersection(p1, pa, p3) || test_intersection(p3, pa, pb); + }; + + for (const stl_triangle_vertex_indices &tri : its.indices) { + const Vec3f pts[3] = { trafo * its.vertices[tri(0)], trafo * its.vertices[tri(1)], trafo * its.vertices[tri(2)] }; + char signs[3] = { sign(pts[0]), sign(pts[1]), sign(pts[2]) }; + bool clips[3] = { signs[0] * signs[1] == -1, signs[1] * signs[2] == -1, signs[2] * signs[0] == -1 }; + if (clips[0]) { + if (clips[1]) { + // Clipping at (pt0, pt1) and (pt1, pt2). + if (clip_and_test2(pts[0], pts[1], pts[2], signs[1] > 0)) + break; + } else if (clips[2]) { + // Clipping at (pt0, pt1) and (pt0, pt2). + if (clip_and_test2(pts[2], pts[0], pts[1], signs[0] > 0)) + break; + } else { + // Clipping at (pt0, pt1), pt2 must be on the clipping plane. + if (clip_and_test1(pts[0], pts[1], pts[2], signs[0] > 0)) + break; + } + } else if (clips[1]) { + if (clips[2]) { + // Clipping at (pt1, pt2) and (pt0, pt2). + if (clip_and_test2(pts[0], pts[1], pts[2], signs[1] > 0)) + break; + } else { + // Clipping at (pt1, pt2), pt0 must be on the clipping plane. + if (clip_and_test1(pts[1], pts[2], pts[0], signs[1] > 0)) + break; + } + } else if (clips[2]) { + // Clipping at (pt0, pt2), pt1 must be on the clipping plane. + if (clip_and_test1(pts[2], pts[0], pts[1], signs[2] > 0)) + break; + } else if (signs[0] >= 0 && signs[1] >= 0 && signs[2] >= 0) { + // The triangle is above or on the clipping plane. + if (test_intersection(pts[0], pts[1], pts[2])) + break; + } + } + return inside ? (outside ? BuildVolume::ObjectState::Colliding : BuildVolume::ObjectState::Inside) : BuildVolume::ObjectState::Outside; +} +#endif + +// Trim the input transformed triangle mesh with print bed and test the remaining vertices with is_inside callback. +// Return inside / colliding / outside state. +template +BuildVolume::ObjectState object_state_templ(const indexed_triangle_set &its, const Transform3f &trafo, bool may_be_below_bed, InsideFn is_inside) +{ + size_t num_inside = 0; + size_t num_above = 0; + bool inside = false; + bool outside = false; + static constexpr const auto world_min_z = float(-BuildVolume::SceneEpsilon); + + if (may_be_below_bed) + { + // Slower test, needs to clip the object edges with the print bed plane. + // 1) Allocate transformed vertices with their position with respect to print bed surface. + std::vector sides; + sides.reserve(its.vertices.size()); + + const auto sign = [](const stl_vertex& pt) { return pt.z() > world_min_z ? 1 : pt.z() < world_min_z ? -1 : 0; }; + + for (const stl_vertex &v : its.vertices) { + const stl_vertex pt = trafo * v; + const int s = sign(pt); + sides.emplace_back(s); + if (s >= 0) { + // Vertex above or on print bed surface. Test whether it is inside the build volume. + ++ num_above; + if (is_inside(pt)) + ++ num_inside; + } + } + + if (num_above == 0) + // Special case, the object is completely below the print bed, thus it is outside, + // however we want to allow an object to be still printable if some of its parts are completely below the print bed. + return BuildVolume::ObjectState::Below; + + // 2) Calculate intersections of triangle edges with the build surface. + inside = num_inside > 0; + outside = num_inside < num_above; + if (num_above < its.vertices.size() && ! (inside && outside)) { + // Not completely above the build surface and status may still change by testing edges intersecting the build platform. + for (const stl_triangle_vertex_indices &tri : its.indices) { + const int s[3] = { sides[tri(0)], sides[tri(1)], sides[tri(2)] }; + if (std::min(s[0], std::min(s[1], s[2])) < 0 && std::max(s[0], std::max(s[1], s[2])) > 0) { + // Some edge of this triangle intersects the build platform. Calculate the intersection. + int iprev = 2; + for (int iedge = 0; iedge < 3; ++ iedge) { + if (s[iprev] * s[iedge] == -1) { + // edge intersects the build surface. Calculate intersection point. + const stl_vertex p1 = trafo * its.vertices[tri(iprev)]; + const stl_vertex p2 = trafo * its.vertices[tri(iedge)]; + assert(sign(p1) == s[iprev]); + assert(sign(p2) == s[iedge]); + assert(p1.z() * p2.z() < 0); + // Edge crosses the z plane. Calculate intersection point with the plane. + const float t = (world_min_z - p1.z()) / (p2.z() - p1.z()); + (is_inside(Vec3f(p1.x() + (p2.x() - p1.x()) * t, p1.y() + (p2.y() - p1.y()) * t, world_min_z)) ? inside : outside) = true; + } + iprev = iedge; + } + if (inside && outside) + break; + } + } + } + } + else + { + // Much simpler and faster code, not clipping the object with the print bed. + assert(! may_be_below_bed); + num_above = its.vertices.size(); + for (const stl_vertex &v : its.vertices) { + const stl_vertex pt = trafo * v; + assert(pt.z() >= world_min_z); + if (is_inside(pt)) + ++ num_inside; + } + inside = num_inside > 0; + outside = num_inside < num_above; + } + + return inside ? (outside ? BuildVolume::ObjectState::Colliding : BuildVolume::ObjectState::Inside) : BuildVolume::ObjectState::Outside; +} + +BuildVolume::ObjectState BuildVolume::object_state(const indexed_triangle_set &its, const Transform3f &trafo, bool may_be_below_bed) const +{ + switch (m_type) { + case Type::Rectangle: + { + BoundingBox3Base build_volume = this->bounding_volume().inflated(SceneEpsilon); + BoundingBox3Base build_volumef(build_volume.min.cast(), build_volume.max.cast()); + if (m_max_print_height == 0) + build_volume.max.z() = std::numeric_limits::max(); + // The following test correctly interprets intersection of a non-convex object with a rectangular build volume. + //return rectangle_test(its, trafo, to_2d(build_volume.min), to_2d(build_volume.max), build_volume.max.z()); + //FIXME This test does NOT correctly interprets intersection of a non-convex object with a rectangular build volume. + return object_state_templ(its, trafo, may_be_below_bed, [build_volumef](const Vec3f &pt) { return build_volumef.contains(pt); }); + } + case Type::Circle: + { + Geometry::Circlef circle { unscaled(m_circle.center), unscaled(m_circle.radius + SceneEpsilon) }; + return m_max_print_height == 0 ? + object_state_templ(its, trafo, may_be_below_bed, [circle](const Vec3f &pt) { return circle.contains(to_2d(pt)); }) : + object_state_templ(its, trafo, may_be_below_bed, [circle, z = m_max_print_height + SceneEpsilon](const Vec3f &pt) { return pt.z() < z && circle.contains(to_2d(pt)); }); + } + case Type::Convex: + //FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently. + case Type::Custom: + return m_max_print_height == 0 ? + object_state_templ(its, trafo, may_be_below_bed, [this](const Vec3f &pt) { return Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_scene, to_2d(pt).cast()); }) : + object_state_templ(its, trafo, may_be_below_bed, [this, z = m_max_print_height + SceneEpsilon](const Vec3f &pt) { return pt.z() < z && Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_scene, to_2d(pt).cast()); }); + case Type::Invalid: + default: + return ObjectState::Inside; + } +} + +BuildVolume::ObjectState BuildVolume::volume_state_bbox(const BoundingBoxf3 &volume_bbox) const +{ + assert(m_type == Type::Rectangle); + BoundingBox3Base build_volume = this->bounding_volume().inflated(SceneEpsilon); + if (m_max_print_height == 0) + build_volume.max.z() = std::numeric_limits::max(); + return build_volume.max.z() <= - SceneEpsilon ? ObjectState::Below : + build_volume.contains(volume_bbox) ? ObjectState::Inside : + build_volume.intersects(volume_bbox) ? ObjectState::Colliding : ObjectState::Outside; +} + +bool BuildVolume::all_paths_inside(const GCodeProcessorResult &paths, const BoundingBoxf3 &paths_bbox) const +{ + auto move_valid = [](const GCodeProcessorResult::MoveVertex &move) { + return move.type == EMoveType::Extrude && move.extrusion_role != erCustom && move.width != 0.f && move.height != 0.f; + }; + static constexpr const double epsilon = BedEpsilon; + + switch (m_type) { + case Type::Rectangle: + { + BoundingBox3Base build_volume = this->bounding_volume().inflated(epsilon); + if (m_max_print_height == 0) + build_volume.max.z() = std::numeric_limits::max(); + return build_volume.contains(paths_bbox); + } + case Type::Circle: + { + const Vec2f c = unscaled(m_circle.center); + const float r = unscaled(m_circle.radius) + epsilon; + const float r2 = sqr(r); + return m_max_print_height == 0 ? + std::all_of(paths.moves.begin(), paths.moves.end(), [move_valid, c, r2](const GCodeProcessorResult::MoveVertex &move) + { return ! move_valid(move) || (to_2d(move.position) - c).squaredNorm() <= r2; }) : + std::all_of(paths.moves.begin(), paths.moves.end(), [move_valid, c, r2, z = m_max_print_height + epsilon](const GCodeProcessorResult::MoveVertex& move) + { return ! move_valid(move) || ((to_2d(move.position) - c).squaredNorm() <= r2 && move.position.z() <= z); }); + } + case Type::Convex: + //FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently. + case Type::Custom: + return m_max_print_height == 0 ? + std::all_of(paths.moves.begin(), paths.moves.end(), [move_valid, this](const GCodeProcessorResult::MoveVertex &move) + { return ! move_valid(move) || Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(move.position).cast()); }) : + std::all_of(paths.moves.begin(), paths.moves.end(), [move_valid, this, z = m_max_print_height + epsilon](const GCodeProcessorResult::MoveVertex &move) + { return ! move_valid(move) || (Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(move.position).cast()) && move.position.z() <= z); }); + default: + return true; + } +} + +template +inline bool all_inside_vertices_normals_interleaved(const std::vector &paths, Fn fn) +{ + for (auto it = paths.begin(); it != paths.end(); ) { + it += 3; + if (! fn({ *it, *(it + 1), *(it + 2) })) + return false; + it += 3; + } + return true; +} + +bool BuildVolume::all_paths_inside_vertices_and_normals_interleaved(const std::vector &paths, const Eigen::AlignedBox &paths_bbox) const +{ + assert(paths.size() % 6 == 0); + static constexpr const double epsilon = BedEpsilon; + switch (m_type) { + case Type::Rectangle: + { + BoundingBox3Base build_volume = this->bounding_volume().inflated(epsilon); + if (m_max_print_height == 0) + build_volume.max.z() = std::numeric_limits::max(); + return build_volume.contains(paths_bbox.min().cast()) && build_volume.contains(paths_bbox.max().cast()); + } + case Type::Circle: + { + const Vec2f c = unscaled(m_circle.center); + const float r = unscaled(m_circle.radius) + float(epsilon); + const float r2 = sqr(r); + return m_max_print_height == 0 ? + all_inside_vertices_normals_interleaved(paths, [c, r2](Vec3f p) { return (to_2d(p) - c).squaredNorm() <= r2; }) : + all_inside_vertices_normals_interleaved(paths, [c, r2, z = m_max_print_height + epsilon](Vec3f p) { return (to_2d(p) - c).squaredNorm() <= r2 && p.z() <= z; }); + } + case Type::Convex: + //FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently. + case Type::Custom: + return m_max_print_height == 0 ? + all_inside_vertices_normals_interleaved(paths, [this](Vec3f p) { return Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(p).cast()); }) : + all_inside_vertices_normals_interleaved(paths, [this, z = m_max_print_height + epsilon](Vec3f p) { return Geometry::inside_convex_polygon(m_top_bottom_convex_hull_decomposition_bed, to_2d(p).cast()) && p.z() <= z; }); + default: + return true; + } +} + +std::string_view BuildVolume::type_name(Type type) +{ + using namespace std::literals; + switch (type) { + case Type::Invalid: return "Invalid"sv; + case Type::Rectangle: return "Rectangle"sv; + case Type::Circle: return "Circle"sv; + case Type::Convex: return "Convex"sv; + case Type::Custom: return "Custom"sv; + } + // make visual studio happy + assert(false); + return {}; +} + +} // namespace Slic3r diff --git a/src/libslic3r/BuildVolume.hpp b/src/libslic3r/BuildVolume.hpp new file mode 100644 index 0000000000..e757108822 --- /dev/null +++ b/src/libslic3r/BuildVolume.hpp @@ -0,0 +1,126 @@ +#ifndef slic3r_BuildVolume_hpp_ +#define slic3r_BuildVolume_hpp_ + +#include "Point.hpp" +#include "Geometry/Circle.hpp" +#include "Polygon.hpp" +#include "BoundingBox.hpp" +#include + +#include + +namespace Slic3r { + +struct GCodeProcessorResult; + +// For collision detection of objects and G-code (extrusion paths) against the build volume. +class BuildVolume +{ +public: + enum class Type : unsigned char + { + // Not set yet or undefined. + Invalid, + // Rectangular print bed. Most common, cheap to work with. + Rectangle, + // Circular print bed. Common on detals, cheap to work with. + Circle, + // Convex print bed. Complex to process. + Convex, + // Some non convex shape. + Custom + }; + + // Initialized to empty, all zeros, Invalid. + BuildVolume() {} + // Initialize from PrintConfig::bed_shape and PrintConfig::max_print_height + BuildVolume(const std::vector &bed_shape, const double max_print_height); + + // Source data, unscaled coordinates. + const std::vector& bed_shape() const { return m_bed_shape; } + double max_print_height() const { return m_max_print_height; } + + // Derived data + Type type() const { return m_type; } + // Format the type for console output. + static std::string_view type_name(Type type); + std::string_view type_name() const { return type_name(m_type); } + bool valid() const { return m_type != Type::Invalid; } + // Same as bed_shape(), but scaled coordinates. + const Polygon& polygon() const { return m_polygon; } + // Bounding box of polygon(), scaled. + const BoundingBox& bounding_box() const { return m_bbox; } + // Bounding volume of bed_shape(), max_print_height(), unscaled. + const BoundingBoxf3& bounding_volume() const { return m_bboxf; } + BoundingBoxf bounding_volume2d() const { return { to_2d(m_bboxf.min), to_2d(m_bboxf.max) }; } + + // Center of the print bed, unscaled. + Vec2d bed_center() const { return to_2d(m_bboxf.center()); } + // Convex hull of polygon(), scaled. + const Polygon& convex_hull() const { return m_convex_hull; } + // Smallest enclosing circle of polygon(), scaled. + const Geometry::Circled& circle() const { return m_circle; } + + enum class ObjectState : unsigned char + { + // Inside the build volume, thus printable. + Inside, + // Colliding with the build volume boundary, thus not printable and error is shown. + Colliding, + // Outside of the build volume means the object is ignored: Not printed and no error is shown. + Outside, + // Completely below the print bed. The same as Outside, but an object with one printable part below the print bed + // and at least one part above the print bed is still printable. + Below, + }; + + // 1) Tests called on the plater. + // Using SceneEpsilon for all tests. + static constexpr const double SceneEpsilon = EPSILON; + // Called by Plater to update Inside / Colliding / Outside state of ModelObjects before slicing. + // Called from Model::update_print_volume_state() -> ModelObject::update_instances_print_volume_state() + // Using SceneEpsilon + ObjectState object_state(const indexed_triangle_set &its, const Transform3f &trafo, bool may_be_below_bed) const; + // Called by GLVolumeCollection::check_outside_state() after an object is manipulated with gizmos for example. + // Called for a rectangular bed: + ObjectState volume_state_bbox(const BoundingBoxf3 &volume_bbox) const; + + // 2) Test called on G-code paths. + // Using BedEpsilon for all tests. + static constexpr const double BedEpsilon = 3. * EPSILON; + // Called on final G-code paths. + //FIXME The test does not take the thickness of the extrudates into account! + bool all_paths_inside(const GCodeProcessorResult &paths, const BoundingBoxf3 &paths_bbox) const; + // Called on initial G-code preview on OpenGL vertex buffer interleaved normals and vertices. + bool all_paths_inside_vertices_and_normals_interleaved(const std::vector &paths, const Eigen::AlignedBox &bbox) const; + +private: + // Source definition of the print bed geometry (PrintConfig::bed_shape) + std::vector m_bed_shape; + // Source definition of the print volume height (PrintConfig::max_print_height) + double m_max_print_height; + + // Derived values. + Type m_type { Type::Invalid }; + // Geometry of the print bed, scaled copy of m_bed_shape. + Polygon m_polygon; + // Scaled snug bounding box around m_polygon. + BoundingBox m_bbox; + // 3D bounding box around m_shape, m_max_print_height. + BoundingBoxf3 m_bboxf; + // Area of m_polygon, scaled. + double m_area { 0. }; + // Convex hull of m_polygon, scaled. + Polygon m_convex_hull; + // For collision detection against a convex build volume. Only filled in for m_type == Convex or Custom. + // Variant with SceneEpsilon applied. + std::pair, std::vector> m_top_bottom_convex_hull_decomposition_scene; + // Variant with BedEpsilon applied. + std::pair, std::vector> m_top_bottom_convex_hull_decomposition_bed; + // Smallest enclosing circle of m_polygon, scaled. + Geometry::Circled m_circle { Vec2d::Zero(), 0 }; +}; + +} // namespace Slic3r + +#endif // slic3r_BuildVolume_hpp_ diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index ffd3094c7b..62d959b2f2 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -23,6 +23,8 @@ add_library(libslic3r STATIC BridgeDetector.hpp Brim.cpp Brim.hpp + BuildVolume.cpp + BuildVolume.hpp clipper.cpp clipper.hpp ClipperUtils.cpp @@ -116,6 +118,16 @@ add_library(libslic3r STATIC GCodeWriter.hpp Geometry.cpp Geometry.hpp + Geometry/Circle.cpp + Geometry/Circle.hpp + Geometry/ConvexHull.cpp + Geometry/ConvexHull.hpp + Geometry/MedialAxis.cpp + Geometry/MedialAxis.hpp + Geometry/Voronoi.hpp + Geometry/VoronoiOffset.cpp + Geometry/VoronoiOffset.hpp + Geometry/VoronoiVisualUtils.hpp Int128.hpp KDTreeIndirect.hpp Layer.cpp @@ -223,18 +235,12 @@ add_library(libslic3r STATIC TriangleSelector.cpp TriangleSelector.hpp MTUtils.hpp - VoronoiOffset.cpp - VoronoiOffset.hpp - VoronoiVisualUtils.hpp Zipper.hpp Zipper.cpp MinAreaBoundingBox.hpp MinAreaBoundingBox.cpp miniz_extension.hpp miniz_extension.cpp - SimplifyMesh.hpp - SimplifyMeshImpl.hpp - SimplifyMesh.cpp MarchingSquares.hpp Execution/Execution.hpp Execution/ExecutionSeq.hpp @@ -287,7 +293,7 @@ set(CGAL_DO_NOT_WARN_ABOUT_CMAKE_BUILD_TYPE ON CACHE BOOL "" FORCE) cmake_policy(PUSH) cmake_policy(SET CMP0011 NEW) -find_package(CGAL REQUIRED) +find_package(CGAL 4.13.2 REQUIRED) cmake_policy(POP) add_library(libslic3r_cgal STATIC MeshBoolean.hpp MeshBoolean.cpp diff --git a/src/libslic3r/ClipperUtils.cpp b/src/libslic3r/ClipperUtils.cpp index 28fb093130..25454d5001 100644 --- a/src/libslic3r/ClipperUtils.cpp +++ b/src/libslic3r/ClipperUtils.cpp @@ -542,6 +542,8 @@ static inline Polygons _clipper(ClipperLib::ClipType clipType, TSubj &&subject, return to_polygons(clipper_do(clipType, std::forward(subject), std::forward(clip), ClipperLib::pftNonZero, do_safety_offset)); } +Slic3r::Polygons diff(const Slic3r::Polygon &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset) + { return _clipper(ClipperLib::ctDifference, ClipperUtils::SinglePathProvider(subject.points), ClipperUtils::SinglePathProvider(clip.points), do_safety_offset); } Slic3r::Polygons diff(const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset) { return _clipper(ClipperLib::ctDifference, ClipperUtils::PolygonsProvider(subject), ClipperUtils::PolygonsProvider(clip), do_safety_offset); } Slic3r::Polygons diff(const Slic3r::Polygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset) diff --git a/src/libslic3r/ClipperUtils.hpp b/src/libslic3r/ClipperUtils.hpp index bbd91c0fd5..d7027e0ec8 100644 --- a/src/libslic3r/ClipperUtils.hpp +++ b/src/libslic3r/ClipperUtils.hpp @@ -331,6 +331,8 @@ Slic3r::ExPolygons union_safety_offset_ex(const Slic3r::Polygons &polygons); Slic3r::ExPolygons union_safety_offset_ex(const Slic3r::ExPolygons &expolygons); // Aliases for the various offset(...) functions, conveying the purpose of the offset. +inline Slic3r::Polygons expand(const Slic3r::Polygon &polygon, const float delta, ClipperLib::JoinType joinType = DefaultJoinType, double miterLimit = DefaultMiterLimit) + { assert(delta > 0); return offset(polygon, delta, joinType, miterLimit); } inline Slic3r::Polygons expand(const Slic3r::Polygons &polygons, const float delta, ClipperLib::JoinType joinType = DefaultJoinType, double miterLimit = DefaultMiterLimit) { assert(delta > 0); return offset(polygons, delta, joinType, miterLimit); } inline Slic3r::ExPolygons expand_ex(const Slic3r::Polygons &polygons, const float delta, ClipperLib::JoinType joinType = DefaultJoinType, double miterLimit = DefaultMiterLimit) @@ -378,6 +380,7 @@ inline Slic3r::ExPolygons opening_ex(const Slic3r::Surfaces &surfaces, const flo Slic3r::Lines _clipper_ln(ClipperLib::ClipType clipType, const Slic3r::Lines &subject, const Slic3r::Polygons &clip); // Safety offset is applied to the clipping polygons only. +Slic3r::Polygons diff(const Slic3r::Polygon &subject, const Slic3r::Polygon &clip, ApplySafetyOffset do_safety_offset = ApplySafetyOffset::No); Slic3r::Polygons diff(const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset = ApplySafetyOffset::No); Slic3r::Polygons diff(const Slic3r::Polygons &subject, const Slic3r::ExPolygons &clip, ApplySafetyOffset do_safety_offset = ApplySafetyOffset::No); Slic3r::Polygons diff(const Slic3r::ExPolygons &subject, const Slic3r::Polygons &clip, ApplySafetyOffset do_safety_offset = ApplySafetyOffset::No); diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index dd121c90af..429f5901c8 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -1764,6 +1764,8 @@ public: // By setting min=0, only nonnegative input is allowed. int min = INT_MIN; int max = INT_MAX; + // To check if it's not a typo and a % is missing + double max_literal = 1; ConfigOptionMode mode = comSimple; // Legacy names for this configuration option. // Used when parsing legacy configuration file. diff --git a/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index bfe0479fea..069c6e6020 100644 --- a/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp @@ -1,7 +1,7 @@ #include "BoundingBox.hpp" #include "ExPolygon.hpp" #include "Exception.hpp" -#include "Geometry.hpp" +#include "Geometry/MedialAxis.hpp" #include "Polygon.hpp" #include "Line.hpp" #include "ClipperUtils.hpp" diff --git a/src/libslic3r/ExPolygonCollection.cpp b/src/libslic3r/ExPolygonCollection.cpp index c33df0f298..a0de8f6de6 100644 --- a/src/libslic3r/ExPolygonCollection.cpp +++ b/src/libslic3r/ExPolygonCollection.cpp @@ -1,5 +1,6 @@ #include "ExPolygonCollection.hpp" -#include "Geometry.hpp" +#include "Geometry/ConvexHull.hpp" +#include "BoundingBox.hpp" namespace Slic3r { diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index a41a11cb79..52653f9759 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -4,6 +4,7 @@ #include "../ClipperUtils.hpp" #include "../EdgeGrid.hpp" #include "../Geometry.hpp" +#include "../Geometry/Circle.hpp" #include "../Point.hpp" #include "../PrintConfig.hpp" #include "../Surface.hpp" diff --git a/src/libslic3r/Format/SL1.cpp b/src/libslic3r/Format/SL1.cpp index c4b8f030f7..6ed8c5ebed 100644 --- a/src/libslic3r/Format/SL1.cpp +++ b/src/libslic3r/Format/SL1.cpp @@ -19,6 +19,7 @@ #include "libslic3r/SLA/RasterBase.hpp" #include "libslic3r/miniz_extension.hpp" #include "libslic3r/PNGReadWrite.hpp" +#include "libslic3r/LocalesUtils.hpp" #include #include @@ -135,7 +136,7 @@ ArchiveData extract_sla_archive(const std::string &zipfname, ExPolygons rings_to_expolygons(const std::vector &rings, double px_w, double px_h) { - ExPolygons polys; polys.reserve(rings.size()); + auto polys = reserve_vector(rings.size()); for (const marchsq::Ring &ring : rings) { Polygon poly; Points &pts = poly.points; @@ -147,7 +148,7 @@ ExPolygons rings_to_expolygons(const std::vector &rings, polys.emplace_back(poly); } - // reverse the raster transformations + // TODO: Is a union necessary? return union_ex(polys); } @@ -270,11 +271,11 @@ std::vector extract_slices_from_sla_archive( png::ReadBuf rb{arch.images[i].buf.data(), arch.images[i].buf.size()}; if (!png::decode_png(rb, img)) return; - auto rings = marchsq::execute(img, 128, rstp.win); + uint8_t isoval = 128; + auto rings = marchsq::execute(img, isoval, rstp.win); ExPolygons expolys = rings_to_expolygons(rings, rstp.px_w, rstp.px_h); - // Invert the raster transformations indicated in - // the profile metadata + // Invert the raster transformations indicated in the profile metadata invert_raster_trafo(expolys, rstp.trafo, rstp.width, rstp.height); slices[i] = std::move(expolys); @@ -310,7 +311,26 @@ ConfigSubstitutions import_sla_archive( std::string exclude_entries{"thumbnail"}; ArchiveData arch = extract_sla_archive(zipfname, exclude_entries); DynamicPrintConfig profile_in, profile_use; - ConfigSubstitutions config_substitutions = profile_in.load(arch.profile, ForwardCompatibilitySubstitutionRule::Enable); + ConfigSubstitutions config_substitutions = + profile_in.load(arch.profile, + ForwardCompatibilitySubstitutionRule::Enable); + + if (profile_in.empty()) { // missing profile... do guess work + // try to recover the layer height from the config.ini which was + // present in all versions of sl1 files. + if (auto lh_opt = arch.config.find("layerHeight"); + lh_opt != arch.config.not_found()) + { + auto lh_str = lh_opt->second.data(); + + size_t pos; + double lh = string_to_double_decimal_point(lh_str, &pos); + if (pos) { // TODO: verify that pos is 0 when parsing fails + profile_out.set("layer_height", lh); + profile_out.set("initial_layer_height", lh); + } + } + } // If the archive contains an empty profile, use the one that was passed as output argument // then replace it with the readed profile to report that it was empty. @@ -362,6 +382,7 @@ void fill_iniconf(ConfMap &m, const SLAPrint &print) m["layerHeight"] = get_cfg_value(cfg, "layer_height"); m["expTime"] = get_cfg_value(cfg, "exposure_time"); m["expTimeFirst"] = get_cfg_value(cfg, "initial_exposure_time"); + m["expUserProfile"] = get_cfg_value(cfg, "material_print_speed") == "slow" ? "1" : "0"; m["materialName"] = get_cfg_value(cfg, "sla_material_settings_id"); m["printerModel"] = get_cfg_value(cfg, "printer_model"); m["printerVariant"] = get_cfg_value(cfg, "printer_variant"); diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 8f8d8dbe0b..f9f116f8e2 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -4,7 +4,7 @@ #include "Exception.hpp" #include "ExtrusionEntity.hpp" #include "EdgeGrid.hpp" -#include "Geometry.hpp" +#include "Geometry/ConvexHull.hpp" #include "GCode/PrintExtents.hpp" #include "GCode/WipeTower.hpp" #include "ShortestPath.hpp" @@ -475,6 +475,7 @@ std::vector GCode::collect_layers_to_print(const PrintObjec std::vector layers_to_print; layers_to_print.reserve(object.layers().size() + object.support_layers().size()); + /* // Calculate a minimum support layer height as a minimum over all extruders, but not smaller than 10um. // This is the same logic as in support generator. //FIXME should we use the printing extruders instead? @@ -488,7 +489,9 @@ std::vector GCode::collect_layers_to_print(const PrintObjec for (auto lh : object.print()->config().min_layer_height.values) support_layer_height_min = std::min(support_layer_height_min, std::max(0.01, lh)); gap_over_supports += support_layer_height_min; - } + }*/ + + std::vector> warning_ranges; // Pair the object layers with the support layers by z. size_t idx_object_layer = 0; @@ -526,29 +529,40 @@ std::vector GCode::collect_layers_to_print(const PrintObjec if ((layer_to_print.object_layer && layer_to_print.object_layer->has_extrusions()) // Allow empty support layers, as the support generator may produce no extrusions for non-empty support regions. || (layer_to_print.support_layer /* && layer_to_print.support_layer->has_extrusions() */)) { - double support_contact_z = (last_extrusion_layer && last_extrusion_layer->support_layer) - ? gap_over_supports - : 0.; + double top_cd = object.config().support_material_contact_distance; + double bottom_cd = object.config().support_material_bottom_contact_distance == 0. ? top_cd : object.config().support_material_bottom_contact_distance; + + double extra_gap = (layer_to_print.support_layer ? bottom_cd : top_cd); + double maximal_print_z = (last_extrusion_layer ? last_extrusion_layer->print_z() : 0.) + layer_to_print.layer()->height - + support_contact_z; + + std::max(0., extra_gap); // Negative support_contact_z is not taken into account, it can result in false positives in cases // where previous layer has object extrusions too (https://github.com/prusa3d/PrusaSlicer/issues/2752) - if (has_extrusions && layer_to_print.print_z() > maximal_print_z + 2. * EPSILON) { - const_cast(object.print())->active_step_add_warning(PrintStateBase::WarningLevel::CRITICAL, - Slic3r::format(_(L("Empty layer detected between heights %1% and %2%. Make sure the object is printable.")), - (last_extrusion_layer ? last_extrusion_layer->print_z() : 0.), - layers_to_print.back().print_z()) - + "\n" + Slic3r::format(_(L("Object name: %1%")), object.model_object()->name) + "\n\n" - + _(L("This is usually caused by negligibly small extrusions or by a faulty model. " - "Try to repair the model or change its orientation on the bed."))); - } - - // Remember last layer with extrusions. - if (has_extrusions) - last_extrusion_layer = &layers_to_print.back(); + if (has_extrusions && layer_to_print.print_z() > maximal_print_z + 2. * EPSILON) + warning_ranges.emplace_back(std::make_pair((last_extrusion_layer ? last_extrusion_layer->print_z() : 0.), layers_to_print.back().print_z())); } + // Remember last layer with extrusions. + if (has_extrusions) + last_extrusion_layer = &layers_to_print.back(); + } + + if (! warning_ranges.empty()) { + std::string warning; + size_t i = 0; + for (i = 0; i < std::min(warning_ranges.size(), size_t(3)); ++i) + warning += Slic3r::format(_(L("Empty layer between %1% and %2%.")), + warning_ranges[i].first, warning_ranges[i].second) + "\n"; + if (i < warning_ranges.size()) + warning += _(L("(Some lines not shown)")) + "\n"; + warning += "\n"; + warning += Slic3r::format(_(L("Object name: %1%")), object.model_object()->name) + "\n\n" + + _(L("Make sure the object is printable. This is usually caused by negligibly small extrusions or by a faulty model. " + "Try to repair the model or change its orientation on the bed.")); + + const_cast(object.print())->active_step_add_warning( + PrintStateBase::WarningLevel::CRITICAL, warning); } return layers_to_print; @@ -610,7 +624,7 @@ std::vector>> GCode::collec namespace DoExport { // static void update_print_estimated_times_stats(const GCodeProcessor& processor, PrintStatistics& print_statistics) // { -// const GCodeProcessor::Result& result = processor.get_result(); +// const GCodeProcessorResult& result = processor.get_result(); // print_statistics.estimated_normal_print_time = get_time_dhms(result.print_statistics.modes[static_cast(PrintEstimatedStatistics::ETimeMode::Normal)].time); // print_statistics.estimated_silent_print_time = processor.is_stealth_time_estimator_enabled() ? // get_time_dhms(result.print_statistics.modes[static_cast(PrintEstimatedStatistics::ETimeMode::Stealth)].time) : "N/A"; @@ -618,7 +632,7 @@ namespace DoExport { static void update_print_estimated_stats(const GCodeProcessor& processor, const std::vector& extruders, PrintStatistics& print_statistics) { - const GCodeProcessor::Result& result = processor.get_result(); + const GCodeProcessorResult& result = processor.get_result(); print_statistics.estimated_normal_print_time = get_time_dhms(result.print_statistics.modes[static_cast(PrintEstimatedStatistics::ETimeMode::Normal)].time); print_statistics.estimated_silent_print_time = processor.is_stealth_time_estimator_enabled() ? get_time_dhms(result.print_statistics.modes[static_cast(PrintEstimatedStatistics::ETimeMode::Stealth)].time) : "N/A"; @@ -711,7 +725,7 @@ namespace DoExport { } } // namespace DoExport -void GCode::do_export(Print* print, const char* path, GCodeProcessor::Result* result, ThumbnailsGeneratorCallback thumbnail_cb) +void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* result, ThumbnailsGeneratorCallback thumbnail_cb) { PROFILE_CLEAR(); @@ -732,7 +746,7 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessor::Result* re reports += source + ": \"" + keyword + "\"\n"; } print->active_step_add_warning(PrintStateBase::WarningLevel::NON_CRITICAL, - _(L("Found reserved keyword(s) into custom g-code:")) + "\n" + + _(L("In the custom G-code were found reserved keywords:")) + "\n" + reports + _(L("This may cause problems in g-code visualization and printing time estimation."))); } diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 93a11821e4..8dfe0fdcea 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -143,7 +143,7 @@ public: // throws std::runtime_exception on error, // throws CanceledException through print->throw_if_canceled(). - void do_export(Print* print, const char* path, GCodeProcessor::Result* result = nullptr, ThumbnailsGeneratorCallback thumbnail_cb = nullptr); + void do_export(Print* print, const char* path, GCodeProcessorResult* result = nullptr, ThumbnailsGeneratorCallback thumbnail_cb = nullptr); // Exported for the helper classes (OozePrevention, Wipe) and for the Perl binding for unit tests. const Vec2d& origin() const { return m_origin; } diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 3dcc121c1e..5657b60fb1 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -769,27 +769,31 @@ std::string CoolingBuffer::apply_layer_cooldown( // Find the 'F' word. const char *fpos = strstr(line_start + 2, " F") + 2; int new_feedrate = current_feedrate; + // Modify the F word of the current G-code line. bool modify = false; + // Remove the F word from the current G-code line. + bool remove = false; assert(fpos != nullptr); - if (line->slowdown) { - modify = true; - new_feedrate = int(floor(60. * line->feedrate + 0.5)); - } else { - new_feedrate = atoi(fpos); - if (new_feedrate != current_feedrate) { - // Append the line without the comment. - new_gcode.append(line_start, end - line_start); - current_feedrate = new_feedrate; - } else if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) { + new_feedrate = line->slowdown ? int(floor(60. * line->feedrate + 0.5)) : atoi(fpos); + if (new_feedrate == current_feedrate) { + // No need to change the F value. + if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) // Feedrate does not change and this line does not move the print head. Skip the complete G-code line including the G-code comment. end = line_end; - } else { - // Remove the feedrate from the G0/G1 line. - modify = true; - } + else + // Remove the feedrate from the G0/G1 line. The G-code line may become empty! + remove = true; + } else if (line->slowdown) { + // The F value will be overwritten. + modify = true; + } else { + // The F value is different from current_feedrate, but not slowed down, thus the G-code line will not be modified. + // Emit the line without the comment. + new_gcode.append(line_start, end - line_start); + current_feedrate = new_feedrate; } - if (modify) { - if (new_feedrate != current_feedrate) { + if (modify || remove) { + if (modify) { // Replace the feedrate. new_gcode.append(line_start, fpos - line_start); current_feedrate = new_feedrate; @@ -805,12 +809,16 @@ std::string CoolingBuffer::apply_layer_cooldown( new_gcode.append(line_start, f - line_start + 1); } // Skip the non-whitespaces of the F parameter up the comment or end of line. - for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++fpos); + for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++ fpos); // Append the rest of the line without the comment. if (fpos < end) + // The G-code line is not empty yet. Emit the rest of it. new_gcode.append(fpos, end - fpos); - // There should never be an empty G1 statement emited by the filter. Such lines should be removed completely. - assert(new_gcode.size() < 4 || new_gcode.substr(new_gcode.size() - 4) != "G1 \n"); + else if (remove && new_gcode == "G1") { + // The G-code line only contained the F word, now it is empty. Remove it completely including the comments. + new_gcode.resize(new_gcode.size() - 2); + end = line_end; + } } // Process the rest of the line. if (end < line_end) { diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index e146fb5178..b28d3d706b 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -343,7 +343,7 @@ void GCodeProcessor::TimeProcessor::reset() machines[static_cast(PrintEstimatedStatistics::ETimeMode::Normal)].enabled = true; } -void GCodeProcessor::TimeProcessor::post_process(const std::string& filename, std::vector& moves, std::vector& lines_ends) +void GCodeProcessor::TimeProcessor::post_process(const std::string& filename, std::vector& moves, std::vector& lines_ends) { FilePtr in{ boost::nowide::fopen(filename.c_str(), "rb") }; if (in.f == nullptr) @@ -636,7 +636,7 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename, st // updates moves' gcode ids which have been modified by the insertion of the M73 lines unsigned int curr_offset_id = 0; unsigned int total_offset = 0; - for (MoveVertex& move : moves) { + for (GCodeProcessorResult::MoveVertex& move : moves) { while (curr_offset_id < static_cast(offsets.size()) && offsets[curr_offset_id].first <= move.gcode_id) { total_offset += offsets[curr_offset_id].second; ++curr_offset_id; @@ -716,12 +716,10 @@ void GCodeProcessor::UsedFilaments::process_caches(GCodeProcessor* processor) } #if ENABLE_GCODE_VIEWER_STATISTICS -void GCodeProcessor::Result::reset() { - moves = std::vector(); +void GCodeProcessorResult::reset() { + moves = std::vector(); bed_shape = Pointfs(); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS max_print_height = 0.0f; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS settings_ids.reset(); extruders_count = 0; extruder_colors = std::vector(); @@ -731,14 +729,12 @@ void GCodeProcessor::Result::reset() { time = 0; } #else -void GCodeProcessor::Result::reset() { +void GCodeProcessorResult::reset() { moves.clear(); lines_ends.clear(); bed_shape = Pointfs(); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS max_print_height = 0.0f; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS settings_ids.reset(); extruders_count = 0; extruder_colors = std::vector(); @@ -889,9 +885,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config) if (first_layer_height != nullptr) m_first_layer_height = std::abs(first_layer_height->value); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS m_result.max_print_height = config.max_print_height; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS } void GCodeProcessor::apply_config(const DynamicPrintConfig& config) @@ -1122,11 +1116,9 @@ void GCodeProcessor::apply_config(const DynamicPrintConfig& config) if (first_layer_height != nullptr) m_first_layer_height = std::abs(first_layer_height->value); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS const ConfigOptionFloat* max_print_height = config.option("max_print_height"); if (max_print_height != nullptr) m_result.max_print_height = max_print_height->value; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS } void GCodeProcessor::enable_stealth_time_estimator(bool enabled) @@ -1256,7 +1248,7 @@ void GCodeProcessor::process_file(const std::string& filename, std::function filament; + std::string printer; + + void reset() { + print.clear(); + filament.clear(); + printer.clear(); + } + }; + + struct MoveVertex + { + unsigned int gcode_id{ 0 }; + EMoveType type{ EMoveType::Noop }; + ExtrusionRole extrusion_role{ erNone }; + unsigned char extruder_id{ 0 }; + unsigned char cp_color_id{ 0 }; + Vec3f position{ Vec3f::Zero() }; // mm + float delta_extruder{ 0.0f }; // mm + float feedrate{ 0.0f }; // mm/s + float width{ 0.0f }; // mm + float height{ 0.0f }; // mm + float mm3_per_mm{ 0.0f }; + float fan_speed{ 0.0f }; // percentage + float temperature{ 0.0f }; // Celsius degrees + float time{ 0.0f }; // s + + float volumetric_rate() const { return feedrate * mm3_per_mm; } + }; + + std::string filename; + unsigned int id; + std::vector moves; + // Positions of ends of lines of the final G-code this->filename after TimeProcessor::post_process() finalizes the G-code. + std::vector lines_ends; + Pointfs bed_shape; + float max_print_height; + SettingsIds settings_ids; + size_t extruders_count; + std::vector extruder_colors; + std::vector filament_diameters; + std::vector filament_densities; + PrintEstimatedStatistics print_statistics; + std::vector custom_gcode_per_print_z; + +#if ENABLE_GCODE_VIEWER_STATISTICS + int64_t time{ 0 }; +#endif // ENABLE_GCODE_VIEWER_STATISTICS + void reset(); + }; + + class GCodeProcessor { static const std::vector Reserved_Tags; @@ -190,26 +247,6 @@ namespace Slic3r { float time() const; }; - struct MoveVertex - { - unsigned int gcode_id{ 0 }; - EMoveType type{ EMoveType::Noop }; - ExtrusionRole extrusion_role{ erNone }; - unsigned char extruder_id{ 0 }; - unsigned char cp_color_id{ 0 }; - Vec3f position{ Vec3f::Zero() }; // mm - float delta_extruder{ 0.0f }; // mm - float feedrate{ 0.0f }; // mm/s - float width{ 0.0f }; // mm - float height{ 0.0f }; // mm - float mm3_per_mm{ 0.0f }; - float fan_speed{ 0.0f }; // percentage - float temperature{ 0.0f }; // Celsius degrees - float time{ 0.0f }; // s - - float volumetric_rate() const { return feedrate * mm3_per_mm; } - }; - private: struct TimeMachine { @@ -304,7 +341,7 @@ namespace Slic3r { // post process the file with the given filename to add remaining time lines M73 // and updates moves' gcode ids accordingly - void post_process(const std::string& filename, std::vector& moves, std::vector& lines_ends); + void post_process(const std::string& filename, std::vector& moves, std::vector& lines_ends); }; struct UsedFilaments // filaments per ColorChange @@ -331,43 +368,6 @@ namespace Slic3r { }; public: - struct Result - { - struct SettingsIds - { - std::string print; - std::vector filament; - std::string printer; - - void reset() { - print.clear(); - filament.clear(); - printer.clear(); - } - }; - std::string filename; - unsigned int id; - std::vector moves; - // Positions of ends of lines of the final G-code this->filename after TimeProcessor::post_process() finalizes the G-code. - std::vector lines_ends; - Pointfs bed_shape; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - float max_print_height; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - SettingsIds settings_ids; - size_t extruders_count; - std::vector extruder_colors; - std::vector filament_diameters; - std::vector filament_densities; - PrintEstimatedStatistics print_statistics; - std::vector custom_gcode_per_print_z; - -#if ENABLE_GCODE_VIEWER_STATISTICS - int64_t time{ 0 }; -#endif // ENABLE_GCODE_VIEWER_STATISTICS - void reset(); - }; - class SeamsDetector { bool m_active{ false }; @@ -394,12 +394,12 @@ namespace Slic3r { // custom gcode markes class OptionsZCorrector { - Result& m_result; + GCodeProcessorResult& m_result; std::optional m_move_id; std::optional m_custom_gcode_per_print_z_id; public: - explicit OptionsZCorrector(Result& result) : m_result(result) { + explicit OptionsZCorrector(GCodeProcessorResult& result) : m_result(result) { } void set() { @@ -413,7 +413,7 @@ namespace Slic3r { const Vec3f position = m_result.moves.back().position; - MoveVertex& move = m_result.moves.emplace_back(m_result.moves[*m_move_id]); + GCodeProcessorResult::MoveVertex& move = m_result.moves.emplace_back(m_result.moves[*m_move_id]); move.position = position; move.height = height; m_result.moves.erase(m_result.moves.begin() + *m_move_id); @@ -562,7 +562,7 @@ namespace Slic3r { TimeProcessor m_time_processor; UsedFilaments m_used_filaments; - Result m_result; + GCodeProcessorResult m_result; static unsigned int s_result_id; #if ENABLE_GCODE_VIEWER_DATA_CHECKING @@ -582,8 +582,8 @@ namespace Slic3r { void enable_machine_envelope_processing(bool enabled) { m_time_processor.machine_envelope_processing_enabled = enabled; } void reset(); - const Result& get_result() const { return m_result; } - Result&& extract_result() { return std::move(m_result); } + const GCodeProcessorResult& get_result() const { return m_result; } + GCodeProcessorResult&& extract_result() { return std::move(m_result); } // Load a G-code into a stand-alone G-code viewer. // throws CanceledException through print->throw_if_canceled() (sent by the caller as callback). diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index f57e254061..35dcdaa360 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -533,10 +533,9 @@ std::string GCodeWriter::set_fan(unsigned int speed) const return GCodeWriter::set_fan(this->config.gcode_flavor, this->config.gcode_comments, speed); } - void GCodeFormatter::emit_axis(const char axis, const double v, size_t digits) { - assert(digits <= 6); - static constexpr const std::array pow_10{1, 10, 100, 1000, 10000, 100000, 1000000}; + assert(digits <= 9); + static constexpr const std::array pow_10{1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000}; *ptr_err.ptr++ = ' '; *ptr_err.ptr++ = axis; char *base_ptr = this->ptr_err.ptr; @@ -576,6 +575,21 @@ void GCodeFormatter::emit_axis(const char axis, const double v, size_t digits) { if ((this->ptr_err.ptr + 1) == base_ptr || *this->ptr_err.ptr == '-') *(++this->ptr_err.ptr) = '0'; this->ptr_err.ptr++; + +#if 0 // #ifndef NDEBUG + { + // Verify that the optimized formatter produces the same result as the standard sprintf(). + double v1 = atof(std::string(base_ptr, this->ptr_err.ptr).c_str()); + char buf[2048]; + sprintf(buf, "%.*lf", int(digits), v); + double v2 = atof(buf); + // Numbers may differ when rounding at exactly or very close to 0.5 due to numerical issues when scaling the double to an integer. + // Thus the complex assert. +// assert(v1 == v2); + assert(std::abs(v1 - v) * pow_10[digits] < 0.50001); + assert(std::abs(v2 - v) * pow_10[digits] < 0.50001); + } +#endif // NDEBUG } } // namespace Slic3r diff --git a/src/libslic3r/GCodeWriter.hpp b/src/libslic3r/GCodeWriter.hpp index 6e2c08d3b5..e8a54737e0 100644 --- a/src/libslic3r/GCodeWriter.hpp +++ b/src/libslic3r/GCodeWriter.hpp @@ -104,8 +104,22 @@ public: GCodeFormatter(const GCodeFormatter&) = delete; GCodeFormatter& operator=(const GCodeFormatter&) = delete; + // At layer height 0.15mm, extrusion width 0.2mm and filament diameter 1.75mm, + // the crossection of extrusion is 0.4 * 0.15 = 0.06mm2 + // and the filament crossection is 1.75^2 = 3.063mm2 + // thus the filament moves 3.063 / 0.6 = 51x slower than the XY axes + // and we need roughly two decimal digits more on extruder than on XY. +#if 1 static constexpr const int XYZF_EXPORT_DIGITS = 3; static constexpr const int E_EXPORT_DIGITS = 5; +#else + // order of magnitude smaller extrusion rate erros + static constexpr const int XYZF_EXPORT_DIGITS = 4; + static constexpr const int E_EXPORT_DIGITS = 6; + // excessive accuracy +// static constexpr const int XYZF_EXPORT_DIGITS = 6; +// static constexpr const int E_EXPORT_DIGITS = 9; +#endif void emit_axis(const char axis, const double v, size_t digits); diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index dfc463dde5..ecb29d4b81 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -24,286 +24,8 @@ #define BOOST_NO_CXX17_HDR_STRING_VIEW #endif -#include - -#ifdef SLIC3R_DEBUG -#include "SVG.hpp" -#endif - -#ifdef SLIC3R_DEBUG -namespace boost { namespace polygon { - -// The following code for the visualization of the boost Voronoi diagram is based on: -// -// Boost.Polygon library voronoi_graphic_utils.hpp header file -// Copyright Andrii Sydorchuk 2010-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -template -class voronoi_visual_utils { - public: - // Discretize parabolic Voronoi edge. - // Parabolic Voronoi edges are always formed by one point and one segment - // from the initial input set. - // - // Args: - // point: input point. - // segment: input segment. - // max_dist: maximum discretization distance. - // discretization: point discretization of the given Voronoi edge. - // - // Template arguments: - // InCT: coordinate type of the input geometries (usually integer). - // Point: point type, should model point concept. - // Segment: segment type, should model segment concept. - // - // Important: - // discretization should contain both edge endpoints initially. - template class Point, - template class Segment> - static - typename enable_if< - typename gtl_and< - typename gtl_if< - typename is_point_concept< - typename geometry_concept< Point >::type - >::type - >::type, - typename gtl_if< - typename is_segment_concept< - typename geometry_concept< Segment >::type - >::type - >::type - >::type, - void - >::type discretize( - const Point& point, - const Segment& segment, - const CT max_dist, - std::vector< Point >* discretization) { - // Apply the linear transformation to move start point of the segment to - // the point with coordinates (0, 0) and the direction of the segment to - // coincide the positive direction of the x-axis. - CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); - CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); - CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; - - // Compute x-coordinates of the endpoints of the edge - // in the transformed space. - CT projection_start = sqr_segment_length * - get_point_projection((*discretization)[0], segment); - CT projection_end = sqr_segment_length * - get_point_projection((*discretization)[1], segment); - - // Compute parabola parameters in the transformed space. - // Parabola has next representation: - // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). - CT point_vec_x = cast(x(point)) - cast(x(low(segment))); - CT point_vec_y = cast(y(point)) - cast(y(low(segment))); - CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; - CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; - - // Save the last point. - Point last_point = (*discretization)[1]; - discretization->pop_back(); - - // Use stack to avoid recursion. - std::stack point_stack; - point_stack.push(projection_end); - CT cur_x = projection_start; - CT cur_y = parabola_y(cur_x, rot_x, rot_y); - - // Adjust max_dist parameter in the transformed space. - const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; - while (!point_stack.empty()) { - CT new_x = point_stack.top(); - CT new_y = parabola_y(new_x, rot_x, rot_y); - - // Compute coordinates of the point of the parabola that is - // furthest from the current line segment. - CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; - CT mid_y = parabola_y(mid_x, rot_x, rot_y); - - // Compute maximum distance between the given parabolic arc - // and line segment that discretize it. - CT dist = (new_y - cur_y) * (mid_x - cur_x) - - (new_x - cur_x) * (mid_y - cur_y); - dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + - (new_x - cur_x) * (new_x - cur_x)); - if (dist <= max_dist_transformed) { - // Distance between parabola and line segment is less than max_dist. - point_stack.pop(); - CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / - sqr_segment_length + cast(x(low(segment))); - CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / - sqr_segment_length + cast(y(low(segment))); - discretization->push_back(Point(inter_x, inter_y)); - cur_x = new_x; - cur_y = new_y; - } else { - point_stack.push(mid_x); - } - } - - // Update last point. - discretization->back() = last_point; - } - - private: - // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). - static CT parabola_y(CT x, CT a, CT b) { - return ((x - a) * (x - a) + b * b) / (b + b); - } - - // Get normalized length of the distance between: - // 1) point projection onto the segment - // 2) start point of the segment - // Return this length divided by the segment length. This is made to avoid - // sqrt computation during transformation from the initial space to the - // transformed one and vice versa. The assumption is made that projection of - // the point lies between the start-point and endpoint of the segment. - template class Point, - template class Segment> - static - typename enable_if< - typename gtl_and< - typename gtl_if< - typename is_point_concept< - typename geometry_concept< Point >::type - >::type - >::type, - typename gtl_if< - typename is_segment_concept< - typename geometry_concept< Segment >::type - >::type - >::type - >::type, - CT - >::type get_point_projection( - const Point& point, const Segment& segment) { - CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); - CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); - CT point_vec_x = x(point) - cast(x(low(segment))); - CT point_vec_y = y(point) - cast(y(low(segment))); - CT sqr_segment_length = - segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; - CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; - return vec_dot / sqr_segment_length; - } - - template - static CT cast(const InCT& value) { - return static_cast(value); - } -}; - -} } // namespace boost::polygon -#endif - -using namespace boost::polygon; // provides also high() and low() - namespace Slic3r { namespace Geometry { -// This implementation is based on Andrew's monotone chain 2D convex hull algorithm -Polygon convex_hull(Points pts) -{ - std::sort(pts.begin(), pts.end(), [](const Point& a, const Point& b) { return a.x() < b.x() || (a.x() == b.x() && a.y() < b.y()); }); - pts.erase(std::unique(pts.begin(), pts.end(), [](const Point& a, const Point& b) { return a.x() == b.x() && a.y() == b.y(); }), pts.end()); - - Polygon hull; - int n = (int)pts.size(); - if (n >= 3) { - int k = 0; - hull.points.resize(2 * n); - // Build lower hull - for (int i = 0; i < n; ++ i) { - while (k >= 2 && pts[i].ccw(hull[k-2], hull[k-1]) <= 0) - -- k; - hull[k ++] = pts[i]; - } - // Build upper hull - for (int i = n-2, t = k+1; i >= 0; i--) { - while (k >= t && pts[i].ccw(hull[k-2], hull[k-1]) <= 0) - -- k; - hull[k ++] = pts[i]; - } - hull.points.resize(k); - assert(hull.points.front() == hull.points.back()); - hull.points.pop_back(); - } - return hull; -} - -Pointf3s convex_hull(Pointf3s points) -{ - assert(points.size() >= 3); - // sort input points - std::sort(points.begin(), points.end(), [](const Vec3d &a, const Vec3d &b){ return a.x() < b.x() || (a.x() == b.x() && a.y() < b.y()); }); - - int n = points.size(), k = 0; - Pointf3s hull; - - if (n >= 3) - { - hull.resize(2 * n); - - // Build lower hull - for (int i = 0; i < n; ++i) - { - Point p = Point::new_scale(points[i](0), points[i](1)); - while (k >= 2) - { - Point k1 = Point::new_scale(hull[k - 1](0), hull[k - 1](1)); - Point k2 = Point::new_scale(hull[k - 2](0), hull[k - 2](1)); - - if (p.ccw(k2, k1) <= 0) - --k; - else - break; - } - - hull[k++] = points[i]; - } - - // Build upper hull - for (int i = n - 2, t = k + 1; i >= 0; --i) - { - Point p = Point::new_scale(points[i](0), points[i](1)); - while (k >= t) - { - Point k1 = Point::new_scale(hull[k - 1](0), hull[k - 1](1)); - Point k2 = Point::new_scale(hull[k - 2](0), hull[k - 2](1)); - - if (p.ccw(k2, k1) <= 0) - --k; - else - break; - } - - hull[k++] = points[i]; - } - - hull.resize(k); - - assert(hull.front() == hull.back()); - hull.pop_back(); - } - - return hull; -} - -Polygon convex_hull(const Polygons &polygons) -{ - Points pp; - for (Polygons::const_iterator p = polygons.begin(); p != polygons.end(); ++p) { - pp.insert(pp.end(), p->points.begin(), p->points.end()); - } - return convex_hull(std::move(pp)); -} - bool directions_parallel(double angle1, double angle2, double max_diff) { double diff = fabs(angle1 - angle2); @@ -311,14 +33,12 @@ bool directions_parallel(double angle1, double angle2, double max_diff) return diff < max_diff || fabs(diff - PI) < max_diff; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool directions_perpendicular(double angle1, double angle2, double max_diff) { double diff = fabs(angle1 - angle2); max_diff += EPSILON; return fabs(diff - 0.5 * PI) < max_diff || fabs(diff - 1.5 * PI) < max_diff; } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS template bool contains(const std::vector &vector, const Point &point) @@ -337,93 +57,6 @@ double rad2deg_dir(double angle) return rad2deg(angle); } -Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) -{ - Vec2ds tmp; - tmp.reserve(std::distance(input_begin, input_end)); - std::transform(input_begin, input_end, std::back_inserter(tmp), [] (const Point& in) { return unscale(in); } ); - Vec2d center = circle_center_taubin_newton(tmp.cbegin(), tmp.end(), cycles); - return Point::new_scale(center.x(), center.y()); -} - -/// Adapted from work in "Circular and Linear Regression: Fitting circles and lines by least squares", pg 126 -/// Returns a point corresponding to the center of a circle for which all of the points from input_begin to input_end -/// lie on. -Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_begin, const Vec2ds::const_iterator& input_end, size_t cycles) -{ - // calculate the centroid of the data set - const Vec2d sum = std::accumulate(input_begin, input_end, Vec2d(0,0)); - const size_t n = std::distance(input_begin, input_end); - const double n_flt = static_cast(n); - const Vec2d centroid { sum / n_flt }; - - // Compute the normalized moments of the data set. - double Mxx = 0, Myy = 0, Mxy = 0, Mxz = 0, Myz = 0, Mzz = 0; - for (auto it = input_begin; it < input_end; ++it) { - // center/normalize the data. - double Xi {it->x() - centroid.x()}; - double Yi {it->y() - centroid.y()}; - double Zi {Xi*Xi + Yi*Yi}; - Mxy += (Xi*Yi); - Mxx += (Xi*Xi); - Myy += (Yi*Yi); - Mxz += (Xi*Zi); - Myz += (Yi*Zi); - Mzz += (Zi*Zi); - } - - // divide by number of points to get the moments - Mxx /= n_flt; - Myy /= n_flt; - Mxy /= n_flt; - Mxz /= n_flt; - Myz /= n_flt; - Mzz /= n_flt; - - // Compute the coefficients of the characteristic polynomial for the circle - // eq 5.60 - const double Mz {Mxx + Myy}; // xx + yy = z - const double Cov_xy {Mxx*Myy - Mxy*Mxy}; // this shows up a couple times so cache it here. - const double C3 {4.0*Mz}; - const double C2 {-3.0*(Mz*Mz) - Mzz}; - const double C1 {Mz*(Mzz - (Mz*Mz)) + 4.0*Mz*Cov_xy - (Mxz*Mxz) - (Myz*Myz)}; - const double C0 {(Mxz*Mxz)*Myy + (Myz*Myz)*Mxx - 2.0*Mxz*Myz*Mxy - Cov_xy*(Mzz - (Mz*Mz))}; - - const double C22 = {C2 + C2}; - const double C33 = {C3 + C3 + C3}; - - // solve the characteristic polynomial with Newton's method. - double xnew = 0.0; - double ynew = 1e20; - - for (size_t i = 0; i < cycles; ++i) { - const double yold {ynew}; - ynew = C0 + xnew * (C1 + xnew*(C2 + xnew * C3)); - if (std::abs(ynew) > std::abs(yold)) { - BOOST_LOG_TRIVIAL(error) << "Geometry: Fit is going in the wrong direction.\n"; - return Vec2d(std::nan(""), std::nan("")); - } - const double Dy {C1 + xnew*(C22 + xnew*C33)}; - - const double xold {xnew}; - xnew = xold - (ynew / Dy); - - if (std::abs((xnew-xold) / xnew) < 1e-12) i = cycles; // converged, we're done here - - if (xnew < 0) { - // reset, we went negative - xnew = 0.0; - } - } - - // compute the determinant and the circle's parameters now that we've solved. - double DET = xnew*xnew - xnew*Mz + Cov_xy; - - Vec2d center(Mxz * (Myy - xnew) - Myz * Mxy, Myz * (Mxx - xnew) - Mxz*Mxy); - center /= (DET * 2.); - return center + centroid; -} - void simplify_polygons(const Polygons &polygons, double tolerance, Polygons* retval) { Polygons pp; @@ -649,212 +282,6 @@ arrange(size_t total_parts, const Vec2d &part_size, coordf_t dist, const Boundin } #endif -#ifdef SLIC3R_DEBUG -// The following code for the visualization of the boost Voronoi diagram is based on: -// -// Boost.Polygon library voronoi_visualizer.cpp file -// Copyright Andrii Sydorchuk 2010-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -namespace Voronoi { namespace Internal { - - typedef double coordinate_type; - typedef boost::polygon::point_data point_type; - typedef boost::polygon::segment_data segment_type; - typedef boost::polygon::rectangle_data rect_type; - typedef boost::polygon::voronoi_diagram VD; - typedef VD::cell_type cell_type; - typedef VD::cell_type::source_index_type source_index_type; - typedef VD::cell_type::source_category_type source_category_type; - typedef VD::edge_type edge_type; - typedef VD::cell_container_type cell_container_type; - typedef VD::cell_container_type vertex_container_type; - typedef VD::edge_container_type edge_container_type; - typedef VD::const_cell_iterator const_cell_iterator; - typedef VD::const_vertex_iterator const_vertex_iterator; - typedef VD::const_edge_iterator const_edge_iterator; - - static const std::size_t EXTERNAL_COLOR = 1; - - inline void color_exterior(const VD::edge_type* edge) - { - if (edge->color() == EXTERNAL_COLOR) - return; - edge->color(EXTERNAL_COLOR); - edge->twin()->color(EXTERNAL_COLOR); - const VD::vertex_type* v = edge->vertex1(); - if (v == NULL || !edge->is_primary()) - return; - v->color(EXTERNAL_COLOR); - const VD::edge_type* e = v->incident_edge(); - do { - color_exterior(e); - e = e->rot_next(); - } while (e != v->incident_edge()); - } - - inline point_type retrieve_point(const std::vector &segments, const cell_type& cell) - { - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); - } - - inline void clip_infinite_edge(const std::vector &segments, const edge_type& edge, coordinate_type bbox_max_size, std::vector* clipped_edge) - { - const cell_type& cell1 = *edge.cell(); - const cell_type& cell2 = *edge.twin()->cell(); - point_type origin, direction; - // Infinite edges could not be created by two segment sites. - if (cell1.contains_point() && cell2.contains_point()) { - point_type p1 = retrieve_point(segments, cell1); - point_type p2 = retrieve_point(segments, cell2); - origin.x((p1.x() + p2.x()) * 0.5); - origin.y((p1.y() + p2.y()) * 0.5); - direction.x(p1.y() - p2.y()); - direction.y(p2.x() - p1.x()); - } else { - origin = cell1.contains_segment() ? retrieve_point(segments, cell2) : retrieve_point(segments, cell1); - segment_type segment = cell1.contains_segment() ? segments[cell1.source_index()] : segments[cell2.source_index()]; - coordinate_type dx = high(segment).x() - low(segment).x(); - coordinate_type dy = high(segment).y() - low(segment).y(); - if ((low(segment) == origin) ^ cell1.contains_point()) { - direction.x(dy); - direction.y(-dx); - } else { - direction.x(-dy); - direction.y(dx); - } - } - coordinate_type koef = bbox_max_size / (std::max)(fabs(direction.x()), fabs(direction.y())); - if (edge.vertex0() == NULL) { - clipped_edge->push_back(point_type( - origin.x() - direction.x() * koef, - origin.y() - direction.y() * koef)); - } else { - clipped_edge->push_back( - point_type(edge.vertex0()->x(), edge.vertex0()->y())); - } - if (edge.vertex1() == NULL) { - clipped_edge->push_back(point_type( - origin.x() + direction.x() * koef, - origin.y() + direction.y() * koef)); - } else { - clipped_edge->push_back( - point_type(edge.vertex1()->x(), edge.vertex1()->y())); - } - } - - inline void sample_curved_edge(const std::vector &segments, const edge_type& edge, std::vector &sampled_edge, coordinate_type max_dist) - { - point_type point = edge.cell()->contains_point() ? - retrieve_point(segments, *edge.cell()) : - retrieve_point(segments, *edge.twin()->cell()); - segment_type segment = edge.cell()->contains_point() ? - segments[edge.twin()->cell()->source_index()] : - segments[edge.cell()->source_index()]; - ::boost::polygon::voronoi_visual_utils::discretize(point, segment, max_dist, &sampled_edge); - } - -} /* namespace Internal */ } // namespace Voronoi - -static inline void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi_diagram &vd, const ThickPolylines *polylines, const char *path) -{ - const double scale = 0.2; - const std::string inputSegmentPointColor = "lightseagreen"; - const coord_t inputSegmentPointRadius = coord_t(0.09 * scale / SCALING_FACTOR); - const std::string inputSegmentColor = "lightseagreen"; - const coord_t inputSegmentLineWidth = coord_t(0.03 * scale / SCALING_FACTOR); - - const std::string voronoiPointColor = "black"; - const coord_t voronoiPointRadius = coord_t(0.06 * scale / SCALING_FACTOR); - const std::string voronoiLineColorPrimary = "black"; - const std::string voronoiLineColorSecondary = "green"; - const std::string voronoiArcColor = "red"; - const coord_t voronoiLineWidth = coord_t(0.02 * scale / SCALING_FACTOR); - - const bool internalEdgesOnly = false; - const bool primaryEdgesOnly = false; - - BoundingBox bbox = BoundingBox(lines); - bbox.min(0) -= coord_t(1. / SCALING_FACTOR); - bbox.min(1) -= coord_t(1. / SCALING_FACTOR); - bbox.max(0) += coord_t(1. / SCALING_FACTOR); - bbox.max(1) += coord_t(1. / SCALING_FACTOR); - - ::Slic3r::SVG svg(path, bbox); - - if (polylines != NULL) - svg.draw(*polylines, "lime", "lime", voronoiLineWidth); - -// bbox.scale(1.2); - // For clipping of half-lines to some reasonable value. - // The line will then be clipped by the SVG viewer anyway. - const double bbox_dim_max = double(bbox.max(0) - bbox.min(0)) + double(bbox.max(1) - bbox.min(1)); - // For the discretization of the Voronoi parabolic segments. - const double discretization_step = 0.0005 * bbox_dim_max; - - // Make a copy of the input segments with the double type. - std::vector segments; - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++ it) - segments.push_back(Voronoi::Internal::segment_type( - Voronoi::Internal::point_type(double(it->a(0)), double(it->a(1))), - Voronoi::Internal::point_type(double(it->b(0)), double(it->b(1))))); - - // Color exterior edges. - for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) - if (!it->is_finite()) - Voronoi::Internal::color_exterior(&(*it)); - - // Draw the end points of the input polygon. - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) { - svg.draw(it->a, inputSegmentPointColor, inputSegmentPointRadius); - svg.draw(it->b, inputSegmentPointColor, inputSegmentPointRadius); - } - // Draw the input polygon. - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) - svg.draw(Line(Point(coord_t(it->a(0)), coord_t(it->a(1))), Point(coord_t(it->b(0)), coord_t(it->b(1)))), inputSegmentColor, inputSegmentLineWidth); - -#if 1 - // Draw voronoi vertices. - for (boost::polygon::voronoi_diagram::const_vertex_iterator it = vd.vertices().begin(); it != vd.vertices().end(); ++it) - if (! internalEdgesOnly || it->color() != Voronoi::Internal::EXTERNAL_COLOR) - svg.draw(Point(coord_t(it->x()), coord_t(it->y())), voronoiPointColor, voronoiPointRadius); - - for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) { - if (primaryEdgesOnly && !it->is_primary()) - continue; - if (internalEdgesOnly && (it->color() == Voronoi::Internal::EXTERNAL_COLOR)) - continue; - std::vector samples; - std::string color = voronoiLineColorPrimary; - if (!it->is_finite()) { - Voronoi::Internal::clip_infinite_edge(segments, *it, bbox_dim_max, &samples); - if (! it->is_primary()) - color = voronoiLineColorSecondary; - } else { - // Store both points of the segment into samples. sample_curved_edge will split the initial line - // until the discretization_step is reached. - samples.push_back(Voronoi::Internal::point_type(it->vertex0()->x(), it->vertex0()->y())); - samples.push_back(Voronoi::Internal::point_type(it->vertex1()->x(), it->vertex1()->y())); - if (it->is_curved()) { - Voronoi::Internal::sample_curved_edge(segments, *it, samples, discretization_step); - color = voronoiArcColor; - } else if (! it->is_primary()) - color = voronoiLineColorSecondary; - } - for (std::size_t i = 0; i + 1 < samples.size(); ++i) - svg.draw(Line(Point(coord_t(samples[i].x()), coord_t(samples[i].y())), Point(coord_t(samples[i+1].x()), coord_t(samples[i+1].y()))), color, voronoiLineWidth); - } -#endif - - if (polylines != NULL) - svg.draw(*polylines, "blue", voronoiLineWidth); - - svg.Close(); -} -#endif /* SLIC3R_DEBUG */ - // Euclidian distance of two boost::polygon points. template T dist(const boost::polygon::point_data &p1,const boost::polygon::point_data &p2) @@ -878,331 +305,6 @@ inline point_type project_point_to_segment(segment_type &seg, point_type &px) return point_type(p0(0) + t*dir(0), p0(1) + t*dir(1)); } -template -inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) -{ - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); -} - -template -inline std::pair -measure_edge_thickness(const VD &vd, const typename VD::edge_type& edge, const SEGMENTS &segments) -{ - typedef typename VD::coord_type T; - const typename VD::point_type pa(edge.vertex0()->x(), edge.vertex0()->y()); - const typename VD::point_type pb(edge.vertex1()->x(), edge.vertex1()->y()); - const typename VD::cell_type &cell1 = *edge.cell(); - const typename VD::cell_type &cell2 = *edge.twin()->cell(); - if (cell1.contains_segment()) { - if (cell2.contains_segment()) { - // Both cells contain a linear segment, the left / right cells are symmetric. - // Project pa, pb to the left segment. - const typename VD::segment_type segment1 = segments[cell1.source_index()]; - const typename VD::point_type p1a = project_point_to_segment(segment1, pa); - const typename VD::point_type p1b = project_point_to_segment(segment1, pb); - return std::pair(T(2.)*dist(pa, p1a), T(2.)*dist(pb, p1b)); - } else { - // 1st cell contains a linear segment, 2nd cell contains a point. - // The medial axis between the cells is a parabolic arc. - // Project pa, pb to the left segment. - const typename VD::point_type p2 = retrieve_cell_point(cell2, segments); - return std::pair(T(2.)*dist(pa, p2), T(2.)*dist(pb, p2)); - } - } else if (cell2.contains_segment()) { - // 1st cell contains a point, 2nd cell contains a linear segment. - // The medial axis between the cells is a parabolic arc. - const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); - return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); - } else { - // Both cells contain a point. The left / right regions are triangular and symmetric. - const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); - return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); - } -} - -// Converts the Line instances of Lines vector to VD::segment_type. -template -class Lines2VDSegments -{ -public: - Lines2VDSegments(const Lines &alines) : lines(alines) {} - typename VD::segment_type operator[](size_t idx) const { - return typename VD::segment_type( - typename VD::point_type(typename VD::coord_type(lines[idx].a(0)), typename VD::coord_type(lines[idx].a(1))), - typename VD::point_type(typename VD::coord_type(lines[idx].b(0)), typename VD::coord_type(lines[idx].b(1)))); - } -private: - const Lines &lines; -}; - -void -MedialAxis::build(ThickPolylines* polylines) -{ - construct_voronoi(this->lines.begin(), this->lines.end(), &this->vd); - - /* - // DEBUG: dump all Voronoi edges - { - for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { - if (edge->is_infinite()) continue; - - ThickPolyline polyline; - polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); - polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); - polylines->push_back(polyline); - } - return; - } - */ - - //typedef const VD::vertex_type vert_t; - typedef const VD::edge_type edge_t; - - // collect valid edges (i.e. prune those not belonging to MAT) - // note: this keeps twins, so it inserts twice the number of the valid edges - this->valid_edges.clear(); - { - std::set seen_edges; - for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { - // if we only process segments representing closed loops, none if the - // infinite edges (if any) would be part of our MAT anyway - if (edge->is_secondary() || edge->is_infinite()) continue; - - // don't re-validate twins - if (seen_edges.find(&*edge) != seen_edges.end()) continue; // TODO: is this needed? - seen_edges.insert(&*edge); - seen_edges.insert(edge->twin()); - - if (!this->validate_edge(&*edge)) continue; - this->valid_edges.insert(&*edge); - this->valid_edges.insert(edge->twin()); - } - } - this->edges = this->valid_edges; - - // iterate through the valid edges to build polylines - while (!this->edges.empty()) { - const edge_t* edge = *this->edges.begin(); - - // start a polyline - ThickPolyline polyline; - polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); - polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); - polyline.width.push_back(this->thickness[edge].first); - polyline.width.push_back(this->thickness[edge].second); - - // remove this edge and its twin from the available edges - (void)this->edges.erase(edge); - (void)this->edges.erase(edge->twin()); - - // get next points - this->process_edge_neighbors(edge, &polyline); - - // get previous points - { - ThickPolyline rpolyline; - this->process_edge_neighbors(edge->twin(), &rpolyline); - polyline.points.insert(polyline.points.begin(), rpolyline.points.rbegin(), rpolyline.points.rend()); - polyline.width.insert(polyline.width.begin(), rpolyline.width.rbegin(), rpolyline.width.rend()); - polyline.endpoints.first = rpolyline.endpoints.second; - } - - assert(polyline.width.size() == polyline.points.size()*2 - 2); - - // prevent loop endpoints from being extended - if (polyline.first_point() == polyline.last_point()) { - polyline.endpoints.first = false; - polyline.endpoints.second = false; - } - - // append polyline to result - polylines->push_back(polyline); - } - - #ifdef SLIC3R_DEBUG - { - static int iRun = 0; - dump_voronoi_to_svg(this->lines, this->vd, polylines, debug_out_path("MedialAxis-%d.svg", iRun ++).c_str()); - printf("Thick lines: "); - for (ThickPolylines::const_iterator it = polylines->begin(); it != polylines->end(); ++ it) { - ThickLines lines = it->thicklines(); - for (ThickLines::const_iterator it2 = lines.begin(); it2 != lines.end(); ++ it2) { - printf("%f,%f ", it2->a_width, it2->b_width); - } - } - printf("\n"); - } - #endif /* SLIC3R_DEBUG */ -} - -void -MedialAxis::build(Polylines* polylines) -{ - ThickPolylines tp; - this->build(&tp); - polylines->insert(polylines->end(), tp.begin(), tp.end()); -} - -void -MedialAxis::process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline) -{ - while (true) { - // Since rot_next() works on the edge starting point but we want - // to find neighbors on the ending point, we just swap edge with - // its twin. - const VD::edge_type* twin = edge->twin(); - - // count neighbors for this edge - std::vector neighbors; - for (const VD::edge_type* neighbor = twin->rot_next(); neighbor != twin; - neighbor = neighbor->rot_next()) { - if (this->valid_edges.count(neighbor) > 0) neighbors.push_back(neighbor); - } - - // if we have a single neighbor then we can continue recursively - if (neighbors.size() == 1) { - const VD::edge_type* neighbor = neighbors.front(); - - // break if this is a closed loop - if (this->edges.count(neighbor) == 0) return; - - Point new_point(neighbor->vertex1()->x(), neighbor->vertex1()->y()); - polyline->points.push_back(new_point); - polyline->width.push_back(this->thickness[neighbor].first); - polyline->width.push_back(this->thickness[neighbor].second); - (void)this->edges.erase(neighbor); - (void)this->edges.erase(neighbor->twin()); - edge = neighbor; - } else if (neighbors.size() == 0) { - polyline->endpoints.second = true; - return; - } else { - // T-shaped or star-shaped joint - return; - } - } -} - -bool MedialAxis::validate_edge(const VD::edge_type* edge) -{ - // prevent overflows and detect almost-infinite edges -#ifndef CLIPPERLIB_INT32 - if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) - return false; -#endif // CLIPPERLIB_INT32 - - // construct the line representing this edge of the Voronoi diagram - const Line line( - Point( edge->vertex0()->x(), edge->vertex0()->y() ), - Point( edge->vertex1()->x(), edge->vertex1()->y() ) - ); - - // discard edge if it lies outside the supplied shape - // this could maybe be optimized (checking inclusion of the endpoints - // might give false positives as they might belong to the contour itself) - if (this->expolygon != NULL) { - if (line.a == line.b) { - // in this case, contains(line) returns a false positive - if (!this->expolygon->contains(line.a)) return false; - } else { - if (!this->expolygon->contains(line)) return false; - } - } - - // retrieve the original line segments which generated the edge we're checking - const VD::cell_type* cell_l = edge->cell(); - const VD::cell_type* cell_r = edge->twin()->cell(); - const Line &segment_l = this->retrieve_segment(cell_l); - const Line &segment_r = this->retrieve_segment(cell_r); - - /* - SVG svg("edge.svg"); - svg.draw(*this->expolygon); - svg.draw(line); - svg.draw(segment_l, "red"); - svg.draw(segment_r, "blue"); - svg.Close(); - */ - - /* Calculate thickness of the cross-section at both the endpoints of this edge. - Our Voronoi edge is part of a CCW sequence going around its Voronoi cell - located on the left side. (segment_l). - This edge's twin goes around segment_r. Thus, segment_r is - oriented in the same direction as our main edge, and segment_l is oriented - in the same direction as our twin edge. - We used to only consider the (half-)distances to segment_r, and that works - whenever segment_l and segment_r are almost specular and facing. However, - at curves they are staggered and they only face for a very little length - (our very short edge represents such visibility). - Both w0 and w1 can be calculated either towards cell_l or cell_r with equal - results by Voronoi definition. - When cell_l or cell_r don't refer to the segment but only to an endpoint, we - calculate the distance to that endpoint instead. */ - - coordf_t w0 = cell_r->contains_segment() - ? segment_r.distance_to(line.a)*2 - : (this->retrieve_endpoint(cell_r) - line.a).cast().norm()*2; - - coordf_t w1 = cell_l->contains_segment() - ? segment_l.distance_to(line.b)*2 - : (this->retrieve_endpoint(cell_l) - line.b).cast().norm()*2; - - if (cell_l->contains_segment() && cell_r->contains_segment()) { - // calculate the relative angle between the two boundary segments - double angle = fabs(segment_r.orientation() - segment_l.orientation()); - if (angle > PI) angle = 2*PI - angle; - assert(angle >= 0 && angle <= PI); - - // fabs(angle) ranges from 0 (collinear, same direction) to PI (collinear, opposite direction) - // we're interested only in segments close to the second case (facing segments) - // so we allow some tolerance. - // this filter ensures that we're dealing with a narrow/oriented area (longer than thick) - // we don't run it on edges not generated by two segments (thus generated by one segment - // and the endpoint of another segment), since their orientation would not be meaningful - if (PI - angle > PI/8) { - // angle is not narrow enough - - // only apply this filter to segments that are not too short otherwise their - // angle could possibly be not meaningful - if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON || line.length() >= this->min_width) - return false; - } - } else { - if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON) - return false; - } - - if (w0 < this->min_width && w1 < this->min_width) - return false; - - if (w0 > this->max_width && w1 > this->max_width) - return false; - - this->thickness[edge] = std::make_pair(w0, w1); - this->thickness[edge->twin()] = std::make_pair(w1, w0); - - return true; -} - -const Line& MedialAxis::retrieve_segment(const VD::cell_type* cell) const -{ - return this->lines[cell->source_index()]; -} - -const Point& MedialAxis::retrieve_endpoint(const VD::cell_type* cell) const -{ - const Line& line = this->retrieve_segment(cell); - if (cell->source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) { - return line.a; - } else { - return line.b; - } -} - void assemble_transform(Transform3d& transform, const Vec3d& translation, const Vec3d& rotation, const Vec3d& scale, const Vec3d& mirror) { transform = Transform3d::Identity(); @@ -1558,205 +660,4 @@ double rotation_diff_z(const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to) return (axis.z() < 0) ? -angle : angle; } -namespace rotcalip { - -using int256_t = boost::multiprecision::int256_t; -using int128_t = boost::multiprecision::int128_t; - -template -inline Scalar magnsq(const Point &p) -{ - return Scalar(p.x()) * p.x() + Scalar(p.y()) * p.y(); -} - -template -inline Scalar dot(const Point &a, const Point &b) -{ - return Scalar(a.x()) * b.x() + Scalar(a.y()) * b.y(); -} - -template -inline Scalar dotperp(const Point &a, const Point &b) -{ - return Scalar(a.x()) * b.y() - Scalar(a.y()) * b.x(); -} - -using boost::multiprecision::abs; - -// Compares the angle enclosed by vectors dir and dirA (alpha) with the angle -// enclosed by -dir and dirB (beta). Returns -1 if alpha is less than beta, 0 -// if they are equal and 1 if alpha is greater than beta. Note that dir is -// reversed for beta, because it represents the opposite side of a caliper. -int cmp_angles(const Point &dir, const Point &dirA, const Point &dirB) { - int128_t dotA = dot(dir, dirA); - int128_t dotB = dot(-dir, dirB); - int256_t dcosa = int256_t(magnsq(dirB)) * int256_t(abs(dotA)) * dotA; - int256_t dcosb = int256_t(magnsq(dirA)) * int256_t(abs(dotB)) * dotB; - int256_t diff = dcosa - dcosb; - - return diff > 0? -1 : (diff < 0 ? 1 : 0); -} - -// A helper class to navigate on a polygon. Given a vertex index, one can -// get the edge belonging to that vertex, the coordinates of the vertex, the -// next and previous edges. Stuff that is needed in the rotating calipers algo. -class Idx -{ - size_t m_idx; - const Polygon *m_poly; -public: - explicit Idx(const Polygon &p): m_idx{0}, m_poly{&p} {} - explicit Idx(size_t idx, const Polygon &p): m_idx{idx}, m_poly{&p} {} - - size_t idx() const { return m_idx; } - void set_idx(size_t i) { m_idx = i; } - size_t next() const { return (m_idx + 1) % m_poly->size(); } - size_t inc() { return m_idx = (m_idx + 1) % m_poly->size(); } - Point prev_dir() const { - return pt() - (*m_poly)[(m_idx + m_poly->size() - 1) % m_poly->size()]; - } - - const Point &pt() const { return (*m_poly)[m_idx]; } - const Point dir() const { return (*m_poly)[next()] - pt(); } - const Point next_dir() const - { - return (*m_poly)[(m_idx + 2) % m_poly->size()] - (*m_poly)[next()]; - } - const Polygon &poly() const { return *m_poly; } -}; - -enum class AntipodalVisitMode { Full, EdgesOnly }; - -// Visit all antipodal pairs starting from the initial ia, ib pair which -// has to be a valid antipodal pair (not checked). fn is called for every -// antipodal pair encountered including the initial one. -// The callback Fn has a signiture of bool(size_t i, size_t j, const Point &dir) -// where i,j are the vertex indices of the antipodal pair and dir is the -// direction of the calipers touching the i vertex. -template -void visit_antipodals (Idx& ia, Idx &ib, Fn &&fn) -{ - // Set current caliper direction to be the lower edge angle from X axis - int cmp = cmp_angles(ia.prev_dir(), ia.dir(), ib.dir()); - Idx *current = cmp <= 0 ? &ia : &ib, *other = cmp <= 0 ? &ib : &ia; - Idx *initial = current; - bool visitor_continue = true; - - size_t start = initial->idx(); - bool finished = false; - - while (visitor_continue && !finished) { - Point current_dir_a = current == &ia ? current->dir() : -current->dir(); - visitor_continue = fn(ia.idx(), ib.idx(), current_dir_a); - - // Parallel edges encountered. An additional pair of antipodals - // can be yielded. - if constexpr (mode == AntipodalVisitMode::Full) - if (cmp == 0 && visitor_continue) { - visitor_continue = fn(current == &ia ? ia.idx() : ia.next(), - current == &ib ? ib.idx() : ib.next(), - current_dir_a); - } - - cmp = cmp_angles(current->dir(), current->next_dir(), other->dir()); - - current->inc(); - if (cmp > 0) { - std::swap(current, other); - } - - if (initial->idx() == start) finished = true; - } -} - -} // namespace rotcalip - -bool convex_polygons_intersect(const Polygon &A, const Polygon &B) -{ - using namespace rotcalip; - - // Establish starting antipodals as extremes in XY plane. Use the - // easily obtainable bounding boxes to check if A and B is disjoint - // and return false if the are. - struct BB - { - size_t xmin = 0, xmax = 0, ymin = 0, ymax = 0; - const Polygon &P; - static bool cmpy(const Point &l, const Point &u) - { - return l.y() < u.y() || (l.y() == u.y() && l.x() < u.x()); - } - - BB(const Polygon &poly): P{poly} - { - for (size_t i = 0; i < P.size(); ++i) { - if (P[i] < P[xmin]) xmin = i; - if (P[xmax] < P[i]) xmax = i; - if (cmpy(P[i], P[ymin])) ymin = i; - if (cmpy(P[ymax], P[i])) ymax = i; - } - } - }; - - BB bA{A}, bB{B}; - BoundingBox bbA{{A[bA.xmin].x(), A[bA.ymin].y()}, {A[bA.xmax].x(), A[bA.ymax].y()}}; - BoundingBox bbB{{B[bB.xmin].x(), B[bB.ymin].y()}, {B[bB.xmax].x(), B[bB.ymax].y()}}; - -// if (!bbA.overlap(bbB)) -// return false; - - // Establish starting antipodals as extreme vertex pairs in X or Y direction - // which reside on different polygons. If no such pair is found, the two - // polygons are certainly not disjoint. - Idx imin{bA.xmin, A}, imax{bB.xmax, B}; - if (B[bB.xmin] < imin.pt()) imin = Idx{bB.xmin, B}; - if (imax.pt() < A[bA.xmax]) imax = Idx{bA.xmax, A}; - if (&imin.poly() == &imax.poly()) { - imin = Idx{bA.ymin, A}; - imax = Idx{bB.ymax, B}; - if (B[bB.ymin] < imin.pt()) imin = Idx{bB.ymin, B}; - if (imax.pt() < A[bA.ymax]) imax = Idx{bA.ymax, A}; - } - - if (&imin.poly() == &imax.poly()) - return true; - - bool found_divisor = false; - visit_antipodals( - imin, imax, - [&imin, &imax, &found_divisor](size_t ia, size_t ib, const Point &dir) { - // std::cout << "A" << ia << " B" << ib << " dir " << - // dir.x() << " " << dir.y() << std::endl; - const Polygon &A = imin.poly(), &B = imax.poly(); - - Point ref_a = A[(ia + 2) % A.size()], ref_b = B[(ib + 2) % B.size()]; - - bool is_left_a = dotperp( dir, ref_a - A[ia]) > 0; - bool is_left_b = dotperp(-dir, ref_b - B[ib]) > 0; - - // If both reference points are on the left (or right) of their - // respective support lines and the opposite support line is to - // the right (or left), the divisor line is found. We only test - // the reference point, as by definition, if that is on one side, - // all the other points must be on the same side of a support - // line. If the support lines are collinear, the polygons must be - // on the same side of their respective support lines. - - auto d = dotperp(dir, B[ib] - A[ia]); - if (d == 0) { - // The caliper lines are collinear, not just parallel - found_divisor = (is_left_a && is_left_b) || (!is_left_a && !is_left_b); - } else if (d > 0) { // B is to the left of (A, A+1) - found_divisor = !is_left_a && !is_left_b; - } else { // B is to the right of (A, A+1) - found_divisor = is_left_a && is_left_b; - } - - return !found_divisor; - }); - - // Intersects if the divisor was not found - return !found_divisor; -} - }} // namespace Slic3r::Geometry diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index d98cab9c7b..e84a7aace9 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -10,18 +10,6 @@ // Serialization through the Cereal library #include -#define BOOST_VORONOI_USE_GMP 1 - -#ifdef _MSC_VER -// Suppress warning C4146 in OpenVDB: unary minus operator applied to unsigned type, result still unsigned -#pragma warning(push) -#pragma warning(disable : 4146) -#endif // _MSC_VER -#include "boost/polygon/voronoi.hpp" -#ifdef _MSC_VER -#pragma warning(pop) -#endif // _MSC_VER - namespace Slic3r { namespace ClipperLib { @@ -47,7 +35,7 @@ enum Orientation // and d is limited to 63 bits + signum and we are good. static inline Orientation orient(const Point &a, const Point &b, const Point &c) { - // BOOST_STATIC_ASSERT(sizeof(coord_t) * 2 == sizeof(int64_t)); + static_assert(sizeof(coord_t) * 2 == sizeof(int64_t), "orient works with 32 bit coordinates"); int64_t u = int64_t(b(0)) * int64_t(c(1)) - int64_t(b(1)) * int64_t(c(0)); int64_t v = int64_t(a(0)) * int64_t(c(1)) - int64_t(a(1)) * int64_t(c(0)); int64_t w = int64_t(a(0)) * int64_t(b(1)) - int64_t(a(1)) * int64_t(b(0)); @@ -84,32 +72,6 @@ static inline bool is_ccw(const Polygon &poly) return o == ORIENTATION_CCW; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -// returns true if the given polygons are identical -static inline bool are_approx(const Polygon& lhs, const Polygon& rhs) -{ - if (lhs.points.size() != rhs.points.size()) - return false; - - size_t rhs_id = 0; - while (rhs_id < rhs.points.size()) { - if (rhs.points[rhs_id].isApprox(lhs.points.front())) - break; - ++rhs_id; - } - - if (rhs_id == rhs.points.size()) - return false; - - for (size_t i = 0; i < lhs.points.size(); ++i) { - if (!lhs.points[i].isApprox(rhs.points[(i + rhs_id) % lhs.points.size()])) - return false; - } - - return true; -} -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - inline bool ray_ray_intersection(const Vec2d &p1, const Vec2d &v1, const Vec2d &p2, const Vec2d &v2, Vec2d &res) { double denom = v1(0) * v2(1) - v2(0) * v1(1); @@ -325,46 +287,8 @@ bool liang_barsky_line_clipping( return liang_barsky_line_clipping(x0clip, x1clip, bbox); } -// Ugly named variant, that accepts the squared line -// Don't call me with a nearly zero length vector! -// sympy: -// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[0]) -// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[1]) -template -int ray_circle_intersections_r2_lv2_c(T r2, T a, T b, T lv2, T c, std::pair, Eigen::Matrix> &out) -{ - T x0 = - a * c; - T y0 = - b * c; - T d2 = r2 * lv2 - c * c; - if (d2 < T(0)) - return 0; - T d = sqrt(d2); - out.first.x() = (x0 + b * d) / lv2; - out.first.y() = (y0 - a * d) / lv2; - out.second.x() = (x0 - b * d) / lv2; - out.second.y() = (y0 + a * d) / lv2; - return d == T(0) ? 1 : 2; -} -template -int ray_circle_intersections(T r, T a, T b, T c, std::pair, Eigen::Matrix> &out) -{ - T lv2 = a * a + b * b; - if (lv2 < T(SCALED_EPSILON * SCALED_EPSILON)) { - //FIXME what is the correct epsilon? - // What if the line touches the circle? - return false; - } - return ray_circle_intersections_r2_lv2_c2(r * r, a, b, a * a + b * b, c, out); -} - -Pointf3s convex_hull(Pointf3s points); -Polygon convex_hull(Points points); -Polygon convex_hull(const Polygons &polygons); - bool directions_parallel(double angle1, double angle2, double max_diff = 0); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool directions_perpendicular(double angle1, double angle2, double max_diff = 0); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS template bool contains(const std::vector &vector, const Point &point); template T rad2deg(T angle) { return T(180.0) * angle / T(PI); } double rad2deg_dir(double angle); @@ -384,14 +308,6 @@ template T angle_to_0_2PI(T angle) return angle; } -/// Find the center of the circle corresponding to the vector of Points as an arc. -Point circle_center_taubin_newton(const Points::const_iterator& input_start, const Points::const_iterator& input_end, size_t cycles = 20); -inline Point circle_center_taubin_newton(const Points& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } - -/// Find the center of the circle corresponding to the vector of Pointfs as an arc. -Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_start, const Vec2ds::const_iterator& input_end, size_t cycles = 20); -inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } - void simplify_polygons(const Polygons &polygons, double tolerance, Polygons* retval); double linint(double value, double oldmin, double oldmax, double newmin, double newmax); @@ -401,36 +317,6 @@ bool arrange( // output Pointfs &positions); -class VoronoiDiagram : public boost::polygon::voronoi_diagram { -public: - typedef double coord_type; - typedef boost::polygon::point_data point_type; - typedef boost::polygon::segment_data segment_type; - typedef boost::polygon::rectangle_data rect_type; -}; - -class MedialAxis { -public: - Lines lines; - const ExPolygon* expolygon; - double max_width; - double min_width; - MedialAxis(double _max_width, double _min_width, const ExPolygon* _expolygon = NULL) - : expolygon(_expolygon), max_width(_max_width), min_width(_min_width) {}; - void build(ThickPolylines* polylines); - void build(Polylines* polylines); - -private: - using VD = VoronoiDiagram; - VD vd; - std::set edges, valid_edges; - std::map > thickness; - void process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline); - bool validate_edge(const VD::edge_type* edge); - const Line& retrieve_segment(const VD::cell_type* cell) const; - const Point& retrieve_endpoint(const VD::cell_type* cell) const; -}; - // Sets the given transform by assembling the given transformations in the following order: // 1) mirror // 2) scale @@ -561,10 +447,6 @@ inline bool is_rotation_ninety_degrees(const Vec3d &rotation) return is_rotation_ninety_degrees(rotation.x()) && is_rotation_ninety_degrees(rotation.y()) && is_rotation_ninety_degrees(rotation.z()); } -// Returns true if the intersection of the two convex polygons A and B -// is not an empty set. -bool convex_polygons_intersect(const Polygon &A, const Polygon &B); - } } // namespace Slicer::Geometry #endif diff --git a/src/libslic3r/Geometry/Circle.cpp b/src/libslic3r/Geometry/Circle.cpp new file mode 100644 index 0000000000..4d7c38ccc2 --- /dev/null +++ b/src/libslic3r/Geometry/Circle.cpp @@ -0,0 +1,138 @@ +#include "Circle.hpp" + +#include "../Polygon.hpp" + +#include +#include +#include + +namespace Slic3r { namespace Geometry { + +Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) +{ + Vec2ds tmp; + tmp.reserve(std::distance(input_begin, input_end)); + std::transform(input_begin, input_end, std::back_inserter(tmp), [] (const Point& in) { return unscale(in); } ); + Vec2d center = circle_center_taubin_newton(tmp.cbegin(), tmp.end(), cycles); + return Point::new_scale(center.x(), center.y()); +} + +/// Adapted from work in "Circular and Linear Regression: Fitting circles and lines by least squares", pg 126 +/// Returns a point corresponding to the center of a circle for which all of the points from input_begin to input_end +/// lie on. +Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_begin, const Vec2ds::const_iterator& input_end, size_t cycles) +{ + // calculate the centroid of the data set + const Vec2d sum = std::accumulate(input_begin, input_end, Vec2d(0,0)); + const size_t n = std::distance(input_begin, input_end); + const double n_flt = static_cast(n); + const Vec2d centroid { sum / n_flt }; + + // Compute the normalized moments of the data set. + double Mxx = 0, Myy = 0, Mxy = 0, Mxz = 0, Myz = 0, Mzz = 0; + for (auto it = input_begin; it < input_end; ++it) { + // center/normalize the data. + double Xi {it->x() - centroid.x()}; + double Yi {it->y() - centroid.y()}; + double Zi {Xi*Xi + Yi*Yi}; + Mxy += (Xi*Yi); + Mxx += (Xi*Xi); + Myy += (Yi*Yi); + Mxz += (Xi*Zi); + Myz += (Yi*Zi); + Mzz += (Zi*Zi); + } + + // divide by number of points to get the moments + Mxx /= n_flt; + Myy /= n_flt; + Mxy /= n_flt; + Mxz /= n_flt; + Myz /= n_flt; + Mzz /= n_flt; + + // Compute the coefficients of the characteristic polynomial for the circle + // eq 5.60 + const double Mz {Mxx + Myy}; // xx + yy = z + const double Cov_xy {Mxx*Myy - Mxy*Mxy}; // this shows up a couple times so cache it here. + const double C3 {4.0*Mz}; + const double C2 {-3.0*(Mz*Mz) - Mzz}; + const double C1 {Mz*(Mzz - (Mz*Mz)) + 4.0*Mz*Cov_xy - (Mxz*Mxz) - (Myz*Myz)}; + const double C0 {(Mxz*Mxz)*Myy + (Myz*Myz)*Mxx - 2.0*Mxz*Myz*Mxy - Cov_xy*(Mzz - (Mz*Mz))}; + + const double C22 = {C2 + C2}; + const double C33 = {C3 + C3 + C3}; + + // solve the characteristic polynomial with Newton's method. + double xnew = 0.0; + double ynew = 1e20; + + for (size_t i = 0; i < cycles; ++i) { + const double yold {ynew}; + ynew = C0 + xnew * (C1 + xnew*(C2 + xnew * C3)); + if (std::abs(ynew) > std::abs(yold)) { + BOOST_LOG_TRIVIAL(error) << "Geometry: Fit is going in the wrong direction.\n"; + return Vec2d(std::nan(""), std::nan("")); + } + const double Dy {C1 + xnew*(C22 + xnew*C33)}; + + const double xold {xnew}; + xnew = xold - (ynew / Dy); + + if (std::abs((xnew-xold) / xnew) < 1e-12) i = cycles; // converged, we're done here + + if (xnew < 0) { + // reset, we went negative + xnew = 0.0; + } + } + + // compute the determinant and the circle's parameters now that we've solved. + double DET = xnew*xnew - xnew*Mz + Cov_xy; + + Vec2d center(Mxz * (Myy - xnew) - Myz * Mxy, Myz * (Mxx - xnew) - Mxz*Mxy); + center /= (DET * 2.); + return center + centroid; +} + +Circled circle_taubin_newton(const Vec2ds& input, size_t cycles) +{ + Circled out; + if (input.size() < 3) { + out = Circled::make_invalid(); + } else { + out.center = circle_center_taubin_newton(input, cycles); + out.radius = std::accumulate(input.begin(), input.end(), 0., [&out](double acc, const Vec2d& pt) { return (pt - out.center).norm() + acc; }); + out.radius /= double(input.size()); + } + return out; +} + +Circled circle_ransac(const Vec2ds& input, size_t iterations) +{ + if (input.size() < 3) + return Circled::make_invalid(); + + std::mt19937 rng; + std::vector samples; + Circled circle_best = Circled::make_invalid(); + double err_min = std::numeric_limits::max(); + for (size_t iter = 0; iter < iterations; ++ iter) { + samples.clear(); + std::sample(input.begin(), input.end(), std::back_inserter(samples), 3, rng); + Circled c; + c.center = Geometry::circle_center(samples[0], samples[1], samples[2], EPSILON); + c.radius = std::accumulate(input.begin(), input.end(), 0., [&c](double acc, const Vec2d& pt) { return (pt - c.center).norm() + acc; }); + c.radius /= double(input.size()); + double err = 0; + for (const Vec2d &pt : input) + err = std::max(err, std::abs((pt - c.center).norm() - c.radius)); + if (err < err_min) { + err_min = err; + circle_best = c; + } + } + return circle_best; +} + +} } // namespace Slic3r::Geometry diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp new file mode 100644 index 0000000000..39973d916d --- /dev/null +++ b/src/libslic3r/Geometry/Circle.hpp @@ -0,0 +1,187 @@ +#ifndef slic3r_Geometry_Circle_hpp_ +#define slic3r_Geometry_Circle_hpp_ + +#include "../Point.hpp" + +#include + +namespace Slic3r { namespace Geometry { + +// https://en.wikipedia.org/wiki/Circumscribed_circle +// Circumcenter coordinates, Cartesian coordinates +template +Vector circle_center(const Vector &a, const Vector &bsrc, const Vector &csrc, typename Vector::Scalar epsilon) +{ + using Scalar = typename Vector::Scalar; + Vector b = bsrc - a; + Vector c = csrc - a; + Scalar lb = b.squaredNorm(); + Scalar lc = c.squaredNorm(); + if (Scalar d = b.x() * c.y() - b.y() * c.x(); std::abs(d) < epsilon) { + // The three points are collinear. Take the center of the two points + // furthest away from each other. + Scalar lbc = (csrc - bsrc).squaredNorm(); + return Scalar(0.5) * ( + lb > lc && lb > lbc ? a + bsrc : + lc > lb && lc > lbc ? a + csrc : bsrc + csrc); + } else { + Vector v = lc * b - lb * c; + return a + Vector(- v.y(), v.x()) / (2 * d); + } +} + +// 2D circle defined by its center and squared radius +template +struct CircleSq { + using Scalar = typename Vector::Scalar; + + Vector center; + Scalar radius2; + + CircleSq() {} + CircleSq(const Vector ¢er, const Scalar radius2) : center(center), radius2(radius2) {} + CircleSq(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius2 = (a - center).squaredNorm(); } + CircleSq(const Vector &a, const Vector &b, const Vector &c, Scalar epsilon) { + this->center = circle_center(a, b, c, epsilon); + this->radius2 = (a - this->center).squaredNorm(); + } + + bool invalid() const { return this->radius2 < 0; } + bool valid() const { return ! this->invalid(); } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() < this->radius2; } + bool contains(const Vector &p, const Scalar epsilon2) const { return (p - this->center).squaredNorm() < this->radius2 + epsilon2; } + + CircleSq inflated(Scalar epsilon) const + { assert(this->radius2 >= 0); Scalar r = sqrt(this->radius2) + epsilon; return { this->center, r * r }; } + + static CircleSq make_invalid() { return CircleSq { { 0, 0 }, -1 }; } +}; + +// 2D circle defined by its center and radius +template +struct Circle { + using Scalar = typename Vector::Scalar; + + Vector center; + Scalar radius; + + Circle() {} + Circle(const Vector ¢er, const Scalar radius) : center(center), radius(radius) {} + Circle(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius = (a - center).norm(); } + Circle(const Vector &a, const Vector &b, const Vector &c, const Scalar epsilon) { *this = CircleSq(a, b, c, epsilon); } + + // Conversion from CircleSq + template + explicit Circle(const CircleSq &c) : center(c.center), radius(c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2)) {} + template + Circle operator=(const CircleSq& c) { this->center = c.center; this->radius = c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2); } + + bool invalid() const { return this->radius < 0; } + bool valid() const { return ! this->invalid(); } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() <= this->radius * this->radius; } + bool contains(const Vector &p, const Scalar epsilon) const + { Scalar re = this->radius + epsilon; return (p - this->center).squaredNorm() < re * re; } + + Circle inflated(Scalar epsilon) const { assert(this->radius >= 0); return { this->center, this->radius + epsilon }; } + + static Circle make_invalid() { return Circle { { 0, 0 }, -1 }; } +}; + +using Circlef = Circle; +using Circled = Circle; +using CircleSqf = CircleSq; +using CircleSqd = CircleSq; + +/// Find the center of the circle corresponding to the vector of Points as an arc. +Point circle_center_taubin_newton(const Points::const_iterator& input_start, const Points::const_iterator& input_end, size_t cycles = 20); +inline Point circle_center_taubin_newton(const Points& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } + +/// Find the center of the circle corresponding to the vector of Pointfs as an arc. +Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_start, const Vec2ds::const_iterator& input_end, size_t cycles = 20); +inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } +Circled circle_taubin_newton(const Vec2ds& input, size_t cycles = 20); + +// Find circle using RANSAC randomized algorithm. +Circled circle_ransac(const Vec2ds& input, size_t iterations = 20); + +// Randomized algorithm by Emo Welzl, working with squared radii for efficiency. The returned circle radius is inflated by epsilon. +template +CircleSq smallest_enclosing_circle2_welzl(const Points &points, const typename Vector::Scalar epsilon) +{ + using Scalar = typename Vector::Scalar; + CircleSq circle; + + if (! points.empty()) { + const auto &p0 = points[0].template cast(); + if (points.size() == 1) { + circle.center = p0; + circle.radius2 = epsilon * epsilon; + } else { + circle = CircleSq(p0, points[1].template cast()).inflated(epsilon); + for (size_t i = 2; i < points.size(); ++ i) + if (const Vector &p = points[i].template cast(); ! circle.contains(p)) { + // p is the first point on the smallest circle enclosing points[0..i] + circle = CircleSq(p0, p).inflated(epsilon); + for (size_t j = 1; j < i; ++ j) + if (const Vector &q = points[j].template cast(); ! circle.contains(q)) { + // q is the second point on the smallest circle enclosing points[0..i] + circle = CircleSq(p, q).inflated(epsilon); + for (size_t k = 0; k < j; ++ k) + if (const Vector &r = points[k].template cast(); ! circle.contains(r)) + circle = CircleSq(p, q, r, epsilon).inflated(epsilon); + } + } + } + } + + return circle; +} + +// Randomized algorithm by Emo Welzl. The returned circle radius is inflated by epsilon. +template +Circle smallest_enclosing_circle_welzl(const Points &points, const typename Vector::Scalar epsilon) +{ + return Circle(smallest_enclosing_circle2_welzl(points, epsilon)); +} + +// Randomized algorithm by Emo Welzl. The returned circle radius is inflated by SCALED_EPSILON. +inline Circled smallest_enclosing_circle_welzl(const Points &points) +{ + return smallest_enclosing_circle_welzl(points, SCALED_EPSILON); +} + +// Ugly named variant, that accepts the squared line +// Don't call me with a nearly zero length vector! +// sympy: +// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[0]) +// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[1]) +template +int ray_circle_intersections_r2_lv2_c(T r2, T a, T b, T lv2, T c, std::pair, Eigen::Matrix> &out) +{ + T x0 = - a * c; + T y0 = - b * c; + T d2 = r2 * lv2 - c * c; + if (d2 < T(0)) + return 0; + T d = sqrt(d2); + out.first.x() = (x0 + b * d) / lv2; + out.first.y() = (y0 - a * d) / lv2; + out.second.x() = (x0 - b * d) / lv2; + out.second.y() = (y0 + a * d) / lv2; + return d == T(0) ? 1 : 2; +} +template +int ray_circle_intersections(T r, T a, T b, T c, std::pair, Eigen::Matrix> &out) +{ + T lv2 = a * a + b * b; + if (lv2 < T(SCALED_EPSILON * SCALED_EPSILON)) { + //FIXME what is the correct epsilon? + // What if the line touches the circle? + return false; + } + return ray_circle_intersections_r2_lv2_c2(r * r, a, b, a * a + b * b, c, out); +} + +} } // namespace Slic3r::Geometry + +#endif // slic3r_Geometry_Circle_hpp_ diff --git a/src/libslic3r/Geometry/ConvexHull.cpp b/src/libslic3r/Geometry/ConvexHull.cpp new file mode 100644 index 0000000000..b1ff77f801 --- /dev/null +++ b/src/libslic3r/Geometry/ConvexHull.cpp @@ -0,0 +1,399 @@ +#include "libslic3r.h" +#include "ConvexHull.hpp" +#include "BoundingBox.hpp" + +#include + +namespace Slic3r { namespace Geometry { + +// This implementation is based on Andrew's monotone chain 2D convex hull algorithm +Polygon convex_hull(Points pts) +{ + std::sort(pts.begin(), pts.end(), [](const Point& a, const Point& b) { return a.x() < b.x() || (a.x() == b.x() && a.y() < b.y()); }); + pts.erase(std::unique(pts.begin(), pts.end(), [](const Point& a, const Point& b) { return a.x() == b.x() && a.y() == b.y(); }), pts.end()); + + Polygon hull; + int n = (int)pts.size(); + if (n >= 3) { + int k = 0; + hull.points.resize(2 * n); + // Build lower hull + for (int i = 0; i < n; ++ i) { + while (k >= 2 && pts[i].ccw(hull[k-2], hull[k-1]) <= 0) + -- k; + hull[k ++] = pts[i]; + } + // Build upper hull + for (int i = n-2, t = k+1; i >= 0; i--) { + while (k >= t && pts[i].ccw(hull[k-2], hull[k-1]) <= 0) + -- k; + hull[k ++] = pts[i]; + } + hull.points.resize(k); + assert(hull.points.front() == hull.points.back()); + hull.points.pop_back(); + } + return hull; +} + +Pointf3s convex_hull(Pointf3s points) +{ + assert(points.size() >= 3); + // sort input points + std::sort(points.begin(), points.end(), [](const Vec3d &a, const Vec3d &b){ return a.x() < b.x() || (a.x() == b.x() && a.y() < b.y()); }); + + int n = points.size(), k = 0; + Pointf3s hull; + + if (n >= 3) + { + hull.resize(2 * n); + + // Build lower hull + for (int i = 0; i < n; ++i) + { + Point p = Point::new_scale(points[i](0), points[i](1)); + while (k >= 2) + { + Point k1 = Point::new_scale(hull[k - 1](0), hull[k - 1](1)); + Point k2 = Point::new_scale(hull[k - 2](0), hull[k - 2](1)); + + if (p.ccw(k2, k1) <= 0) + --k; + else + break; + } + + hull[k++] = points[i]; + } + + // Build upper hull + for (int i = n - 2, t = k + 1; i >= 0; --i) + { + Point p = Point::new_scale(points[i](0), points[i](1)); + while (k >= t) + { + Point k1 = Point::new_scale(hull[k - 1](0), hull[k - 1](1)); + Point k2 = Point::new_scale(hull[k - 2](0), hull[k - 2](1)); + + if (p.ccw(k2, k1) <= 0) + --k; + else + break; + } + + hull[k++] = points[i]; + } + + hull.resize(k); + + assert(hull.front() == hull.back()); + hull.pop_back(); + } + + return hull; +} + +Polygon convex_hull(const Polygons &polygons) +{ + Points pp; + for (Polygons::const_iterator p = polygons.begin(); p != polygons.end(); ++p) { + pp.insert(pp.end(), p->points.begin(), p->points.end()); + } + return convex_hull(std::move(pp)); +} + + +namespace rotcalip { + +using int256_t = boost::multiprecision::int256_t; +using int128_t = boost::multiprecision::int128_t; + +template +inline Scalar magnsq(const Point &p) +{ + return Scalar(p.x()) * p.x() + Scalar(p.y()) * p.y(); +} + +template +inline Scalar dot(const Point &a, const Point &b) +{ + return Scalar(a.x()) * b.x() + Scalar(a.y()) * b.y(); +} + +template +inline Scalar dotperp(const Point &a, const Point &b) +{ + return Scalar(a.x()) * b.y() - Scalar(a.y()) * b.x(); +} + +using boost::multiprecision::abs; + +// Compares the angle enclosed by vectors dir and dirA (alpha) with the angle +// enclosed by -dir and dirB (beta). Returns -1 if alpha is less than beta, 0 +// if they are equal and 1 if alpha is greater than beta. Note that dir is +// reversed for beta, because it represents the opposite side of a caliper. +int cmp_angles(const Point &dir, const Point &dirA, const Point &dirB) { + int128_t dotA = dot(dir, dirA); + int128_t dotB = dot(-dir, dirB); + int256_t dcosa = int256_t(magnsq(dirB)) * int256_t(abs(dotA)) * dotA; + int256_t dcosb = int256_t(magnsq(dirA)) * int256_t(abs(dotB)) * dotB; + int256_t diff = dcosa - dcosb; + + return diff > 0? -1 : (diff < 0 ? 1 : 0); +} + +// A helper class to navigate on a polygon. Given a vertex index, one can +// get the edge belonging to that vertex, the coordinates of the vertex, the +// next and previous edges. Stuff that is needed in the rotating calipers algo. +class Idx +{ + size_t m_idx; + const Polygon *m_poly; +public: + explicit Idx(const Polygon &p): m_idx{0}, m_poly{&p} {} + explicit Idx(size_t idx, const Polygon &p): m_idx{idx}, m_poly{&p} {} + + size_t idx() const { return m_idx; } + void set_idx(size_t i) { m_idx = i; } + size_t next() const { return (m_idx + 1) % m_poly->size(); } + size_t inc() { return m_idx = (m_idx + 1) % m_poly->size(); } + Point prev_dir() const { + return pt() - (*m_poly)[(m_idx + m_poly->size() - 1) % m_poly->size()]; + } + + const Point &pt() const { return (*m_poly)[m_idx]; } + const Point dir() const { return (*m_poly)[next()] - pt(); } + const Point next_dir() const + { + return (*m_poly)[(m_idx + 2) % m_poly->size()] - (*m_poly)[next()]; + } + const Polygon &poly() const { return *m_poly; } +}; + +enum class AntipodalVisitMode { Full, EdgesOnly }; + +// Visit all antipodal pairs starting from the initial ia, ib pair which +// has to be a valid antipodal pair (not checked). fn is called for every +// antipodal pair encountered including the initial one. +// The callback Fn has a signiture of bool(size_t i, size_t j, const Point &dir) +// where i,j are the vertex indices of the antipodal pair and dir is the +// direction of the calipers touching the i vertex. +template +void visit_antipodals (Idx& ia, Idx &ib, Fn &&fn) +{ + // Set current caliper direction to be the lower edge angle from X axis + int cmp = cmp_angles(ia.prev_dir(), ia.dir(), ib.dir()); + Idx *current = cmp <= 0 ? &ia : &ib, *other = cmp <= 0 ? &ib : &ia; + Idx *initial = current; + bool visitor_continue = true; + + size_t start = initial->idx(); + bool finished = false; + + while (visitor_continue && !finished) { + Point current_dir_a = current == &ia ? current->dir() : -current->dir(); + visitor_continue = fn(ia.idx(), ib.idx(), current_dir_a); + + // Parallel edges encountered. An additional pair of antipodals + // can be yielded. + if constexpr (mode == AntipodalVisitMode::Full) + if (cmp == 0 && visitor_continue) { + visitor_continue = fn(current == &ia ? ia.idx() : ia.next(), + current == &ib ? ib.idx() : ib.next(), + current_dir_a); + } + + cmp = cmp_angles(current->dir(), current->next_dir(), other->dir()); + + current->inc(); + if (cmp > 0) { + std::swap(current, other); + } + + if (initial->idx() == start) finished = true; + } +} + +} // namespace rotcalip + +bool convex_polygons_intersect(const Polygon &A, const Polygon &B) +{ + using namespace rotcalip; + + // Establish starting antipodals as extremes in XY plane. Use the + // easily obtainable bounding boxes to check if A and B is disjoint + // and return false if the are. + struct BB + { + size_t xmin = 0, xmax = 0, ymin = 0, ymax = 0; + const Polygon &P; + static bool cmpy(const Point &l, const Point &u) + { + return l.y() < u.y() || (l.y() == u.y() && l.x() < u.x()); + } + + BB(const Polygon &poly): P{poly} + { + for (size_t i = 0; i < P.size(); ++i) { + if (P[i] < P[xmin]) xmin = i; + if (P[xmax] < P[i]) xmax = i; + if (cmpy(P[i], P[ymin])) ymin = i; + if (cmpy(P[ymax], P[i])) ymax = i; + } + } + }; + + BB bA{A}, bB{B}; + BoundingBox bbA{{A[bA.xmin].x(), A[bA.ymin].y()}, {A[bA.xmax].x(), A[bA.ymax].y()}}; + BoundingBox bbB{{B[bB.xmin].x(), B[bB.ymin].y()}, {B[bB.xmax].x(), B[bB.ymax].y()}}; + +// if (!bbA.overlap(bbB)) +// return false; + + // Establish starting antipodals as extreme vertex pairs in X or Y direction + // which reside on different polygons. If no such pair is found, the two + // polygons are certainly not disjoint. + Idx imin{bA.xmin, A}, imax{bB.xmax, B}; + if (B[bB.xmin] < imin.pt()) imin = Idx{bB.xmin, B}; + if (imax.pt() < A[bA.xmax]) imax = Idx{bA.xmax, A}; + if (&imin.poly() == &imax.poly()) { + imin = Idx{bA.ymin, A}; + imax = Idx{bB.ymax, B}; + if (B[bB.ymin] < imin.pt()) imin = Idx{bB.ymin, B}; + if (imax.pt() < A[bA.ymax]) imax = Idx{bA.ymax, A}; + } + + if (&imin.poly() == &imax.poly()) + return true; + + bool found_divisor = false; + visit_antipodals( + imin, imax, + [&imin, &imax, &found_divisor](size_t ia, size_t ib, const Point &dir) { + // std::cout << "A" << ia << " B" << ib << " dir " << + // dir.x() << " " << dir.y() << std::endl; + const Polygon &A = imin.poly(), &B = imax.poly(); + + Point ref_a = A[(ia + 2) % A.size()], ref_b = B[(ib + 2) % B.size()]; + + bool is_left_a = dotperp( dir, ref_a - A[ia]) > 0; + bool is_left_b = dotperp(-dir, ref_b - B[ib]) > 0; + + // If both reference points are on the left (or right) of their + // respective support lines and the opposite support line is to + // the right (or left), the divisor line is found. We only test + // the reference point, as by definition, if that is on one side, + // all the other points must be on the same side of a support + // line. If the support lines are collinear, the polygons must be + // on the same side of their respective support lines. + + auto d = dotperp(dir, B[ib] - A[ia]); + if (d == 0) { + // The caliper lines are collinear, not just parallel + found_divisor = (is_left_a && is_left_b) || (!is_left_a && !is_left_b); + } else if (d > 0) { // B is to the left of (A, A+1) + found_divisor = !is_left_a && !is_left_b; + } else { // B is to the right of (A, A+1) + found_divisor = is_left_a && is_left_b; + } + + return !found_divisor; + }); + + // Intersects if the divisor was not found + return !found_divisor; +} + +// Decompose source convex hull points into a top / bottom chains with monotonically increasing x, +// creating an implicit trapezoidal decomposition of the source convex polygon. +// The source convex polygon has to be CCW oriented. O(n) time complexity. +std::pair, std::vector> decompose_convex_polygon_top_bottom(const std::vector &src) +{ + std::pair, std::vector> out; + std::vector &bottom = out.first; + std::vector &top = out.second; + + // Find the minimum point. + auto left_bottom = std::min_element(src.begin(), src.end(), [](const auto &l, const auto &r) { return l.x() < r.x() || (l.x() == r.x() && l.y() < r.y()); }); + auto right_top = std::max_element(src.begin(), src.end(), [](const auto &l, const auto &r) { return l.x() < r.x() || (l.x() == r.x() && l.y() < r.y()); }); + if (left_bottom != src.end() && left_bottom != right_top) { + // Produce the bottom and bottom chains. + if (left_bottom < right_top) { + bottom.assign(left_bottom, right_top + 1); + size_t cnt = (src.end() - right_top) + (left_bottom + 1 - src.begin()); + top.reserve(cnt); + top.assign(right_top, src.end()); + top.insert(top.end(), src.begin(), left_bottom + 1); + } else { + size_t cnt = (src.end() - left_bottom) + (right_top + 1 - src.begin()); + bottom.reserve(cnt); + bottom.assign(left_bottom, src.end()); + bottom.insert(bottom.end(), src.begin(), right_top + 1); + top.assign(right_top, left_bottom + 1); + } + // Remove strictly vertical segments at the end. + if (bottom.size() > 1) { + auto it = bottom.end(); + for (-- it; it != bottom.begin() && (it - 1)->x() == bottom.back().x(); -- it) ; + bottom.erase(it + 1, bottom.end()); + } + if (top.size() > 1) { + auto it = top.end(); + for (-- it; it != top.begin() && (it - 1)->x() == top.back().x(); -- it) ; + top.erase(it + 1, top.end()); + } + std::reverse(top.begin(), top.end()); + } + + if (top.size() < 2 || bottom.size() < 2) { + // invalid + top.clear(); + bottom.clear(); + } + return out; +} + +// Convex polygon check using a top / bottom chain decomposition with O(log n) time complexity. +bool inside_convex_polygon(const std::pair, std::vector> &top_bottom_decomposition, const Vec2d &pt) +{ + auto it_bottom = std::lower_bound(top_bottom_decomposition.first.begin(), top_bottom_decomposition.first.end(), pt, [](const auto &l, const auto &r){ return l.x() < r.x(); }); + auto it_top = std::lower_bound(top_bottom_decomposition.second.begin(), top_bottom_decomposition.second.end(), pt, [](const auto &l, const auto &r){ return l.x() < r.x(); }); + if (it_bottom == top_bottom_decomposition.first.end()) { + // Above max x. + assert(it_top == top_bottom_decomposition.second.end()); + return false; + } + if (it_bottom == top_bottom_decomposition.first.begin()) { + // Below or at min x. + if (pt.x() < it_bottom->x()) { + // Below min x. + assert(pt.x() < it_top->x()); + return false; + } + // At min x. + assert(pt.x() == it_bottom->x()); + assert(pt.x() == it_top->x()); + assert(it_bottom->y() <= pt.y() <= it_top->y()); + return pt.y() >= it_bottom->y() && pt.y() <= it_top->y(); + } + + // Trapezoid or a triangle. + assert(it_bottom != top_bottom_decomposition.first .begin() && it_bottom != top_bottom_decomposition.first .end()); + assert(it_top != top_bottom_decomposition.second.begin() && it_top != top_bottom_decomposition.second.end()); + assert(pt.x() <= it_bottom->x()); + assert(pt.x() <= it_top->x()); + auto it_top_prev = it_top - 1; + auto it_bottom_prev = it_bottom - 1; + assert(pt.x() >= it_top_prev->x()); + assert(pt.x() >= it_bottom_prev->x()); + double det = cross2(*it_bottom - *it_bottom_prev, pt - *it_bottom_prev); + if (det < 0) + return false; + det = cross2(*it_top - *it_top_prev, pt - *it_top_prev); + return det <= 0; +} + +} // namespace Geometry +} // namespace Slic3r + diff --git a/src/libslic3r/Geometry/ConvexHull.hpp b/src/libslic3r/Geometry/ConvexHull.hpp new file mode 100644 index 0000000000..03f00af6ae --- /dev/null +++ b/src/libslic3r/Geometry/ConvexHull.hpp @@ -0,0 +1,27 @@ +#ifndef slic3r_Geometry_ConvexHull_hpp_ +#define slic3r_Geometry_ConvexHull_hpp_ + +#include "../Polygon.hpp" + +namespace Slic3r { +namespace Geometry { + +Pointf3s convex_hull(Pointf3s points); +Polygon convex_hull(Points points); +Polygon convex_hull(const Polygons &polygons); + +// Returns true if the intersection of the two convex polygons A and B +// is not an empty set. +bool convex_polygons_intersect(const Polygon &A, const Polygon &B); + +// Decompose source convex hull points into top / bottom chains with monotonically increasing x, +// creating an implicit trapezoidal decomposition of the source convex polygon. +// The source convex polygon has to be CCW oriented. O(n) time complexity. +std::pair, std::vector> decompose_convex_polygon_top_bottom(const std::vector &src); + +// Convex polygon check using a top / bottom chain decomposition with O(log n) time complexity. +bool inside_convex_polygon(const std::pair, std::vector> &top_bottom_decomposition, const Vec2d &pt); + +} } // namespace Slicer::Geometry + +#endif diff --git a/src/libslic3r/Geometry/MedialAxis.cpp b/src/libslic3r/Geometry/MedialAxis.cpp new file mode 100644 index 0000000000..ce38a6c705 --- /dev/null +++ b/src/libslic3r/Geometry/MedialAxis.cpp @@ -0,0 +1,712 @@ +#include "MedialAxis.hpp" + +#include "clipper.hpp" + +#ifdef SLIC3R_DEBUG +namespace boost { namespace polygon { + +// The following code for the visualization of the boost Voronoi diagram is based on: +// +// Boost.Polygon library voronoi_graphic_utils.hpp header file +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +template +class voronoi_visual_utils { + public: + // Discretize parabolic Voronoi edge. + // Parabolic Voronoi edges are always formed by one point and one segment + // from the initial input set. + // + // Args: + // point: input point. + // segment: input segment. + // max_dist: maximum discretization distance. + // discretization: point discretization of the given Voronoi edge. + // + // Template arguments: + // InCT: coordinate type of the input geometries (usually integer). + // Point: point type, should model point concept. + // Segment: segment type, should model segment concept. + // + // Important: + // discretization should contain both edge endpoints initially. + template class Point, + template class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment >::type + >::type + >::type + >::type, + void + >::type discretize( + const Point& point, + const Segment& segment, + const CT max_dist, + std::vector< Point >* discretization) { + // Apply the linear transformation to move start point of the segment to + // the point with coordinates (0, 0) and the direction of the segment to + // coincide the positive direction of the x-axis. + CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; + + // Compute x-coordinates of the endpoints of the edge + // in the transformed space. + CT projection_start = sqr_segment_length * + get_point_projection((*discretization)[0], segment); + CT projection_end = sqr_segment_length * + get_point_projection((*discretization)[1], segment); + + // Compute parabola parameters in the transformed space. + // Parabola has next representation: + // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). + CT point_vec_x = cast(x(point)) - cast(x(low(segment))); + CT point_vec_y = cast(y(point)) - cast(y(low(segment))); + CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; + CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; + + // Save the last point. + Point last_point = (*discretization)[1]; + discretization->pop_back(); + + // Use stack to avoid recursion. + std::stack point_stack; + point_stack.push(projection_end); + CT cur_x = projection_start; + CT cur_y = parabola_y(cur_x, rot_x, rot_y); + + // Adjust max_dist parameter in the transformed space. + const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; + while (!point_stack.empty()) { + CT new_x = point_stack.top(); + CT new_y = parabola_y(new_x, rot_x, rot_y); + + // Compute coordinates of the point of the parabola that is + // furthest from the current line segment. + CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; + CT mid_y = parabola_y(mid_x, rot_x, rot_y); + + // Compute maximum distance between the given parabolic arc + // and line segment that discretize it. + CT dist = (new_y - cur_y) * (mid_x - cur_x) - + (new_x - cur_x) * (mid_y - cur_y); + dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + + (new_x - cur_x) * (new_x - cur_x)); + if (dist <= max_dist_transformed) { + // Distance between parabola and line segment is less than max_dist. + point_stack.pop(); + CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / + sqr_segment_length + cast(x(low(segment))); + CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / + sqr_segment_length + cast(y(low(segment))); + discretization->push_back(Point(inter_x, inter_y)); + cur_x = new_x; + cur_y = new_y; + } else { + point_stack.push(mid_x); + } + } + + // Update last point. + discretization->back() = last_point; + } + + private: + // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). + static CT parabola_y(CT x, CT a, CT b) { + return ((x - a) * (x - a) + b * b) / (b + b); + } + + // Get normalized length of the distance between: + // 1) point projection onto the segment + // 2) start point of the segment + // Return this length divided by the segment length. This is made to avoid + // sqrt computation during transformation from the initial space to the + // transformed one and vice versa. The assumption is made that projection of + // the point lies between the start-point and endpoint of the segment. + template class Point, + template class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment >::type + >::type + >::type + >::type, + CT + >::type get_point_projection( + const Point& point, const Segment& segment) { + CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT point_vec_x = x(point) - cast(x(low(segment))); + CT point_vec_y = y(point) - cast(y(low(segment))); + CT sqr_segment_length = + segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; + CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; + return vec_dot / sqr_segment_length; + } + + template + static CT cast(const InCT& value) { + return static_cast(value); + } +}; + +} } // namespace boost::polygon +#endif // SLIC3R_DEBUG + +namespace Slic3r { namespace Geometry { + + +#ifdef SLIC3R_DEBUG +// The following code for the visualization of the boost Voronoi diagram is based on: +// +// Boost.Polygon library voronoi_visualizer.cpp file +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +namespace Voronoi { namespace Internal { + + typedef double coordinate_type; + typedef boost::polygon::point_data point_type; + typedef boost::polygon::segment_data segment_type; + typedef boost::polygon::rectangle_data rect_type; + typedef boost::polygon::voronoi_diagram VD; + typedef VD::cell_type cell_type; + typedef VD::cell_type::source_index_type source_index_type; + typedef VD::cell_type::source_category_type source_category_type; + typedef VD::edge_type edge_type; + typedef VD::cell_container_type cell_container_type; + typedef VD::cell_container_type vertex_container_type; + typedef VD::edge_container_type edge_container_type; + typedef VD::const_cell_iterator const_cell_iterator; + typedef VD::const_vertex_iterator const_vertex_iterator; + typedef VD::const_edge_iterator const_edge_iterator; + + static const std::size_t EXTERNAL_COLOR = 1; + + inline void color_exterior(const VD::edge_type* edge) + { + if (edge->color() == EXTERNAL_COLOR) + return; + edge->color(EXTERNAL_COLOR); + edge->twin()->color(EXTERNAL_COLOR); + const VD::vertex_type* v = edge->vertex1(); + if (v == NULL || !edge->is_primary()) + return; + v->color(EXTERNAL_COLOR); + const VD::edge_type* e = v->incident_edge(); + do { + color_exterior(e); + e = e->rot_next(); + } while (e != v->incident_edge()); + } + + inline point_type retrieve_point(const std::vector &segments, const cell_type& cell) + { + assert(cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); + } + + inline void clip_infinite_edge(const std::vector &segments, const edge_type& edge, coordinate_type bbox_max_size, std::vector* clipped_edge) + { + const cell_type& cell1 = *edge.cell(); + const cell_type& cell2 = *edge.twin()->cell(); + point_type origin, direction; + // Infinite edges could not be created by two segment sites. + if (cell1.contains_point() && cell2.contains_point()) { + point_type p1 = retrieve_point(segments, cell1); + point_type p2 = retrieve_point(segments, cell2); + origin.x((p1.x() + p2.x()) * 0.5); + origin.y((p1.y() + p2.y()) * 0.5); + direction.x(p1.y() - p2.y()); + direction.y(p2.x() - p1.x()); + } else { + origin = cell1.contains_segment() ? retrieve_point(segments, cell2) : retrieve_point(segments, cell1); + segment_type segment = cell1.contains_segment() ? segments[cell1.source_index()] : segments[cell2.source_index()]; + coordinate_type dx = high(segment).x() - low(segment).x(); + coordinate_type dy = high(segment).y() - low(segment).y(); + if ((low(segment) == origin) ^ cell1.contains_point()) { + direction.x(dy); + direction.y(-dx); + } else { + direction.x(-dy); + direction.y(dx); + } + } + coordinate_type koef = bbox_max_size / (std::max)(fabs(direction.x()), fabs(direction.y())); + if (edge.vertex0() == NULL) { + clipped_edge->push_back(point_type( + origin.x() - direction.x() * koef, + origin.y() - direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex0()->x(), edge.vertex0()->y())); + } + if (edge.vertex1() == NULL) { + clipped_edge->push_back(point_type( + origin.x() + direction.x() * koef, + origin.y() + direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex1()->x(), edge.vertex1()->y())); + } + } + + inline void sample_curved_edge(const std::vector &segments, const edge_type& edge, std::vector &sampled_edge, coordinate_type max_dist) + { + point_type point = edge.cell()->contains_point() ? + retrieve_point(segments, *edge.cell()) : + retrieve_point(segments, *edge.twin()->cell()); + segment_type segment = edge.cell()->contains_point() ? + segments[edge.twin()->cell()->source_index()] : + segments[edge.cell()->source_index()]; + ::boost::polygon::voronoi_visual_utils::discretize(point, segment, max_dist, &sampled_edge); + } + +} /* namespace Internal */ } // namespace Voronoi + +void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi_diagram &vd, const ThickPolylines *polylines, const char *path) +{ + const double scale = 0.2; + const std::string inputSegmentPointColor = "lightseagreen"; + const coord_t inputSegmentPointRadius = coord_t(0.09 * scale / SCALING_FACTOR); + const std::string inputSegmentColor = "lightseagreen"; + const coord_t inputSegmentLineWidth = coord_t(0.03 * scale / SCALING_FACTOR); + + const std::string voronoiPointColor = "black"; + const coord_t voronoiPointRadius = coord_t(0.06 * scale / SCALING_FACTOR); + const std::string voronoiLineColorPrimary = "black"; + const std::string voronoiLineColorSecondary = "green"; + const std::string voronoiArcColor = "red"; + const coord_t voronoiLineWidth = coord_t(0.02 * scale / SCALING_FACTOR); + + const bool internalEdgesOnly = false; + const bool primaryEdgesOnly = false; + + BoundingBox bbox = BoundingBox(lines); + bbox.min(0) -= coord_t(1. / SCALING_FACTOR); + bbox.min(1) -= coord_t(1. / SCALING_FACTOR); + bbox.max(0) += coord_t(1. / SCALING_FACTOR); + bbox.max(1) += coord_t(1. / SCALING_FACTOR); + + ::Slic3r::SVG svg(path, bbox); + + if (polylines != NULL) + svg.draw(*polylines, "lime", "lime", voronoiLineWidth); + +// bbox.scale(1.2); + // For clipping of half-lines to some reasonable value. + // The line will then be clipped by the SVG viewer anyway. + const double bbox_dim_max = double(bbox.max(0) - bbox.min(0)) + double(bbox.max(1) - bbox.min(1)); + // For the discretization of the Voronoi parabolic segments. + const double discretization_step = 0.0005 * bbox_dim_max; + + // Make a copy of the input segments with the double type. + std::vector segments; + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++ it) + segments.push_back(Voronoi::Internal::segment_type( + Voronoi::Internal::point_type(double(it->a(0)), double(it->a(1))), + Voronoi::Internal::point_type(double(it->b(0)), double(it->b(1))))); + + // Color exterior edges. + for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) + if (!it->is_finite()) + Voronoi::Internal::color_exterior(&(*it)); + + // Draw the end points of the input polygon. + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) { + svg.draw(it->a, inputSegmentPointColor, inputSegmentPointRadius); + svg.draw(it->b, inputSegmentPointColor, inputSegmentPointRadius); + } + // Draw the input polygon. + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) + svg.draw(Line(Point(coord_t(it->a(0)), coord_t(it->a(1))), Point(coord_t(it->b(0)), coord_t(it->b(1)))), inputSegmentColor, inputSegmentLineWidth); + +#if 1 + // Draw voronoi vertices. + for (boost::polygon::voronoi_diagram::const_vertex_iterator it = vd.vertices().begin(); it != vd.vertices().end(); ++it) + if (! internalEdgesOnly || it->color() != Voronoi::Internal::EXTERNAL_COLOR) + svg.draw(Point(coord_t(it->x()), coord_t(it->y())), voronoiPointColor, voronoiPointRadius); + + for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) { + if (primaryEdgesOnly && !it->is_primary()) + continue; + if (internalEdgesOnly && (it->color() == Voronoi::Internal::EXTERNAL_COLOR)) + continue; + std::vector samples; + std::string color = voronoiLineColorPrimary; + if (!it->is_finite()) { + Voronoi::Internal::clip_infinite_edge(segments, *it, bbox_dim_max, &samples); + if (! it->is_primary()) + color = voronoiLineColorSecondary; + } else { + // Store both points of the segment into samples. sample_curved_edge will split the initial line + // until the discretization_step is reached. + samples.push_back(Voronoi::Internal::point_type(it->vertex0()->x(), it->vertex0()->y())); + samples.push_back(Voronoi::Internal::point_type(it->vertex1()->x(), it->vertex1()->y())); + if (it->is_curved()) { + Voronoi::Internal::sample_curved_edge(segments, *it, samples, discretization_step); + color = voronoiArcColor; + } else if (! it->is_primary()) + color = voronoiLineColorSecondary; + } + for (std::size_t i = 0; i + 1 < samples.size(); ++i) + svg.draw(Line(Point(coord_t(samples[i].x()), coord_t(samples[i].y())), Point(coord_t(samples[i+1].x()), coord_t(samples[i+1].y()))), color, voronoiLineWidth); + } +#endif + + if (polylines != NULL) + svg.draw(*polylines, "blue", voronoiLineWidth); + + svg.Close(); +} +#endif // SLIC3R_DEBUG + +template +inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) +{ + assert(cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); +} + +template +inline std::pair +measure_edge_thickness(const VD &vd, const typename VD::edge_type& edge, const SEGMENTS &segments) +{ + typedef typename VD::coord_type T; + const typename VD::point_type pa(edge.vertex0()->x(), edge.vertex0()->y()); + const typename VD::point_type pb(edge.vertex1()->x(), edge.vertex1()->y()); + const typename VD::cell_type &cell1 = *edge.cell(); + const typename VD::cell_type &cell2 = *edge.twin()->cell(); + if (cell1.contains_segment()) { + if (cell2.contains_segment()) { + // Both cells contain a linear segment, the left / right cells are symmetric. + // Project pa, pb to the left segment. + const typename VD::segment_type segment1 = segments[cell1.source_index()]; + const typename VD::point_type p1a = project_point_to_segment(segment1, pa); + const typename VD::point_type p1b = project_point_to_segment(segment1, pb); + return std::pair(T(2.)*dist(pa, p1a), T(2.)*dist(pb, p1b)); + } else { + // 1st cell contains a linear segment, 2nd cell contains a point. + // The medial axis between the cells is a parabolic arc. + // Project pa, pb to the left segment. + const typename VD::point_type p2 = retrieve_cell_point(cell2, segments); + return std::pair(T(2.)*dist(pa, p2), T(2.)*dist(pb, p2)); + } + } else if (cell2.contains_segment()) { + // 1st cell contains a point, 2nd cell contains a linear segment. + // The medial axis between the cells is a parabolic arc. + const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); + return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); + } else { + // Both cells contain a point. The left / right regions are triangular and symmetric. + const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); + return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); + } +} + +// Converts the Line instances of Lines vector to VD::segment_type. +template +class Lines2VDSegments +{ +public: + Lines2VDSegments(const Lines &alines) : lines(alines) {} + typename VD::segment_type operator[](size_t idx) const { + return typename VD::segment_type( + typename VD::point_type(typename VD::coord_type(lines[idx].a(0)), typename VD::coord_type(lines[idx].a(1))), + typename VD::point_type(typename VD::coord_type(lines[idx].b(0)), typename VD::coord_type(lines[idx].b(1)))); + } +private: + const Lines &lines; +}; + +void +MedialAxis::build(ThickPolylines* polylines) +{ + construct_voronoi(this->lines.begin(), this->lines.end(), &this->vd); + + /* + // DEBUG: dump all Voronoi edges + { + for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { + if (edge->is_infinite()) continue; + + ThickPolyline polyline; + polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); + polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); + polylines->push_back(polyline); + } + return; + } + */ + + //typedef const VD::vertex_type vert_t; + typedef const VD::edge_type edge_t; + + // collect valid edges (i.e. prune those not belonging to MAT) + // note: this keeps twins, so it inserts twice the number of the valid edges + this->valid_edges.clear(); + { + std::set seen_edges; + for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { + // if we only process segments representing closed loops, none if the + // infinite edges (if any) would be part of our MAT anyway + if (edge->is_secondary() || edge->is_infinite()) continue; + + // don't re-validate twins + if (seen_edges.find(&*edge) != seen_edges.end()) continue; // TODO: is this needed? + seen_edges.insert(&*edge); + seen_edges.insert(edge->twin()); + + if (!this->validate_edge(&*edge)) continue; + this->valid_edges.insert(&*edge); + this->valid_edges.insert(edge->twin()); + } + } + this->edges = this->valid_edges; + + // iterate through the valid edges to build polylines + while (!this->edges.empty()) { + const edge_t* edge = *this->edges.begin(); + + // start a polyline + ThickPolyline polyline; + polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); + polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); + polyline.width.push_back(this->thickness[edge].first); + polyline.width.push_back(this->thickness[edge].second); + + // remove this edge and its twin from the available edges + (void)this->edges.erase(edge); + (void)this->edges.erase(edge->twin()); + + // get next points + this->process_edge_neighbors(edge, &polyline); + + // get previous points + { + ThickPolyline rpolyline; + this->process_edge_neighbors(edge->twin(), &rpolyline); + polyline.points.insert(polyline.points.begin(), rpolyline.points.rbegin(), rpolyline.points.rend()); + polyline.width.insert(polyline.width.begin(), rpolyline.width.rbegin(), rpolyline.width.rend()); + polyline.endpoints.first = rpolyline.endpoints.second; + } + + assert(polyline.width.size() == polyline.points.size()*2 - 2); + + // prevent loop endpoints from being extended + if (polyline.first_point() == polyline.last_point()) { + polyline.endpoints.first = false; + polyline.endpoints.second = false; + } + + // append polyline to result + polylines->push_back(polyline); + } + + #ifdef SLIC3R_DEBUG + { + static int iRun = 0; + dump_voronoi_to_svg(this->lines, this->vd, polylines, debug_out_path("MedialAxis-%d.svg", iRun ++).c_str()); + printf("Thick lines: "); + for (ThickPolylines::const_iterator it = polylines->begin(); it != polylines->end(); ++ it) { + ThickLines lines = it->thicklines(); + for (ThickLines::const_iterator it2 = lines.begin(); it2 != lines.end(); ++ it2) { + printf("%f,%f ", it2->a_width, it2->b_width); + } + } + printf("\n"); + } + #endif /* SLIC3R_DEBUG */ +} + +void +MedialAxis::build(Polylines* polylines) +{ + ThickPolylines tp; + this->build(&tp); + polylines->insert(polylines->end(), tp.begin(), tp.end()); +} + +void +MedialAxis::process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline) +{ + while (true) { + // Since rot_next() works on the edge starting point but we want + // to find neighbors on the ending point, we just swap edge with + // its twin. + const VD::edge_type* twin = edge->twin(); + + // count neighbors for this edge + std::vector neighbors; + for (const VD::edge_type* neighbor = twin->rot_next(); neighbor != twin; + neighbor = neighbor->rot_next()) { + if (this->valid_edges.count(neighbor) > 0) neighbors.push_back(neighbor); + } + + // if we have a single neighbor then we can continue recursively + if (neighbors.size() == 1) { + const VD::edge_type* neighbor = neighbors.front(); + + // break if this is a closed loop + if (this->edges.count(neighbor) == 0) return; + + Point new_point(neighbor->vertex1()->x(), neighbor->vertex1()->y()); + polyline->points.push_back(new_point); + polyline->width.push_back(this->thickness[neighbor].first); + polyline->width.push_back(this->thickness[neighbor].second); + (void)this->edges.erase(neighbor); + (void)this->edges.erase(neighbor->twin()); + edge = neighbor; + } else if (neighbors.size() == 0) { + polyline->endpoints.second = true; + return; + } else { + // T-shaped or star-shaped joint + return; + } + } +} + +bool MedialAxis::validate_edge(const VD::edge_type* edge) +{ + // prevent overflows and detect almost-infinite edges +#ifndef CLIPPERLIB_INT32 + if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) + return false; +#endif // CLIPPERLIB_INT32 + + // construct the line representing this edge of the Voronoi diagram + const Line line( + Point( edge->vertex0()->x(), edge->vertex0()->y() ), + Point( edge->vertex1()->x(), edge->vertex1()->y() ) + ); + + // discard edge if it lies outside the supplied shape + // this could maybe be optimized (checking inclusion of the endpoints + // might give false positives as they might belong to the contour itself) + if (this->expolygon != NULL) { + if (line.a == line.b) { + // in this case, contains(line) returns a false positive + if (!this->expolygon->contains(line.a)) return false; + } else { + if (!this->expolygon->contains(line)) return false; + } + } + + // retrieve the original line segments which generated the edge we're checking + const VD::cell_type* cell_l = edge->cell(); + const VD::cell_type* cell_r = edge->twin()->cell(); + const Line &segment_l = this->retrieve_segment(cell_l); + const Line &segment_r = this->retrieve_segment(cell_r); + + /* + SVG svg("edge.svg"); + svg.draw(*this->expolygon); + svg.draw(line); + svg.draw(segment_l, "red"); + svg.draw(segment_r, "blue"); + svg.Close(); + */ + + /* Calculate thickness of the cross-section at both the endpoints of this edge. + Our Voronoi edge is part of a CCW sequence going around its Voronoi cell + located on the left side. (segment_l). + This edge's twin goes around segment_r. Thus, segment_r is + oriented in the same direction as our main edge, and segment_l is oriented + in the same direction as our twin edge. + We used to only consider the (half-)distances to segment_r, and that works + whenever segment_l and segment_r are almost specular and facing. However, + at curves they are staggered and they only face for a very little length + (our very short edge represents such visibility). + Both w0 and w1 can be calculated either towards cell_l or cell_r with equal + results by Voronoi definition. + When cell_l or cell_r don't refer to the segment but only to an endpoint, we + calculate the distance to that endpoint instead. */ + + coordf_t w0 = cell_r->contains_segment() + ? segment_r.distance_to(line.a)*2 + : (this->retrieve_endpoint(cell_r) - line.a).cast().norm()*2; + + coordf_t w1 = cell_l->contains_segment() + ? segment_l.distance_to(line.b)*2 + : (this->retrieve_endpoint(cell_l) - line.b).cast().norm()*2; + + if (cell_l->contains_segment() && cell_r->contains_segment()) { + // calculate the relative angle between the two boundary segments + double angle = fabs(segment_r.orientation() - segment_l.orientation()); + if (angle > PI) angle = 2*PI - angle; + assert(angle >= 0 && angle <= PI); + + // fabs(angle) ranges from 0 (collinear, same direction) to PI (collinear, opposite direction) + // we're interested only in segments close to the second case (facing segments) + // so we allow some tolerance. + // this filter ensures that we're dealing with a narrow/oriented area (longer than thick) + // we don't run it on edges not generated by two segments (thus generated by one segment + // and the endpoint of another segment), since their orientation would not be meaningful + if (PI - angle > PI/8) { + // angle is not narrow enough + + // only apply this filter to segments that are not too short otherwise their + // angle could possibly be not meaningful + if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON || line.length() >= this->min_width) + return false; + } + } else { + if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON) + return false; + } + + if (w0 < this->min_width && w1 < this->min_width) + return false; + + if (w0 > this->max_width && w1 > this->max_width) + return false; + + this->thickness[edge] = std::make_pair(w0, w1); + this->thickness[edge->twin()] = std::make_pair(w1, w0); + + return true; +} + +const Line& MedialAxis::retrieve_segment(const VD::cell_type* cell) const +{ + return this->lines[cell->source_index()]; +} + +const Point& MedialAxis::retrieve_endpoint(const VD::cell_type* cell) const +{ + const Line& line = this->retrieve_segment(cell); + if (cell->source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) { + return line.a; + } else { + return line.b; + } +} + +} } // namespace Slicer::Geometry diff --git a/src/libslic3r/Geometry/MedialAxis.hpp b/src/libslic3r/Geometry/MedialAxis.hpp new file mode 100644 index 0000000000..cfbb5f0805 --- /dev/null +++ b/src/libslic3r/Geometry/MedialAxis.hpp @@ -0,0 +1,33 @@ +#ifndef slic3r_Geometry_MedialAxis_hpp_ +#define slic3r_Geometry_MedialAxis_hpp_ + +#include "Voronoi.hpp" +#include "../ExPolygon.hpp" + +namespace Slic3r { namespace Geometry { + +class MedialAxis { +public: + Lines lines; + const ExPolygon* expolygon; + double max_width; + double min_width; + MedialAxis(double _max_width, double _min_width, const ExPolygon* _expolygon = NULL) + : expolygon(_expolygon), max_width(_max_width), min_width(_min_width) {}; + void build(ThickPolylines* polylines); + void build(Polylines* polylines); + +private: + using VD = VoronoiDiagram; + VD vd; + std::set edges, valid_edges; + std::map > thickness; + void process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline); + bool validate_edge(const VD::edge_type* edge); + const Line& retrieve_segment(const VD::cell_type* cell) const; + const Point& retrieve_endpoint(const VD::cell_type* cell) const; +}; + +} } // namespace Slicer::Geometry + +#endif // slic3r_Geometry_MedialAxis_hpp_ diff --git a/src/libslic3r/Geometry/Voronoi.hpp b/src/libslic3r/Geometry/Voronoi.hpp new file mode 100644 index 0000000000..5529750f3b --- /dev/null +++ b/src/libslic3r/Geometry/Voronoi.hpp @@ -0,0 +1,33 @@ +#ifndef slic3r_Geometry_Voronoi_hpp_ +#define slic3r_Geometry_Voronoi_hpp_ + +#include "../Line.hpp" +#include "../Polyline.hpp" + +#define BOOST_VORONOI_USE_GMP 1 + +#ifdef _MSC_VER +// Suppress warning C4146 in OpenVDB: unary minus operator applied to unsigned type, result still unsigned +#pragma warning(push) +#pragma warning(disable : 4146) +#endif // _MSC_VER +#include "boost/polygon/voronoi.hpp" +#ifdef _MSC_VER +#pragma warning(pop) +#endif // _MSC_VER + +namespace Slic3r { + +namespace Geometry { + +class VoronoiDiagram : public boost::polygon::voronoi_diagram { +public: + typedef double coord_type; + typedef boost::polygon::point_data point_type; + typedef boost::polygon::segment_data segment_type; + typedef boost::polygon::rectangle_data rect_type; +}; + +} } // namespace Slicer::Geometry + +#endif // slic3r_Geometry_Voronoi_hpp_ diff --git a/src/libslic3r/VoronoiOffset.cpp b/src/libslic3r/Geometry/VoronoiOffset.cpp similarity index 99% rename from src/libslic3r/VoronoiOffset.cpp rename to src/libslic3r/Geometry/VoronoiOffset.cpp index e8d13a6ad0..46105220a4 100644 --- a/src/libslic3r/VoronoiOffset.cpp +++ b/src/libslic3r/Geometry/VoronoiOffset.cpp @@ -1,5 +1,6 @@ // Polygon offsetting using Voronoi diagram prodiced by boost::polygon. +#include "Geometry.hpp" #include "VoronoiOffset.hpp" #include "libslic3r.h" diff --git a/src/libslic3r/VoronoiOffset.hpp b/src/libslic3r/Geometry/VoronoiOffset.hpp similarity index 99% rename from src/libslic3r/VoronoiOffset.hpp rename to src/libslic3r/Geometry/VoronoiOffset.hpp index 17b590ed71..359fe010c8 100644 --- a/src/libslic3r/VoronoiOffset.hpp +++ b/src/libslic3r/Geometry/VoronoiOffset.hpp @@ -3,9 +3,9 @@ #ifndef slic3r_VoronoiOffset_hpp_ #define slic3r_VoronoiOffset_hpp_ -#include "libslic3r.h" +#include "../libslic3r.h" -#include "Geometry.hpp" +#include "Voronoi.hpp" namespace Slic3r { diff --git a/src/libslic3r/VoronoiVisualUtils.hpp b/src/libslic3r/Geometry/VoronoiVisualUtils.hpp similarity index 100% rename from src/libslic3r/VoronoiVisualUtils.hpp rename to src/libslic3r/Geometry/VoronoiVisualUtils.hpp diff --git a/src/libslic3r/Line.cpp b/src/libslic3r/Line.cpp index 773df34424..3a180f7478 100644 --- a/src/libslic3r/Line.cpp +++ b/src/libslic3r/Line.cpp @@ -70,7 +70,6 @@ bool Line::parallel_to(const Line& line) const return sqr(cross2(v1, v2)) < sqr(EPSILON) * v1.squaredNorm() * v2.squaredNorm(); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool Line::perpendicular_to(double angle) const { return Slic3r::Geometry::directions_perpendicular(this->direction(), angle); @@ -82,7 +81,6 @@ bool Line::perpendicular_to(const Line& line) const const Vec2d v2 = (line.b - line.a).cast(); return sqr(v1.dot(v2)) < sqr(EPSILON) * v1.squaredNorm() * v2.squaredNorm(); } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool Line::intersection(const Line &l2, Point *intersection) const { diff --git a/src/libslic3r/Line.hpp b/src/libslic3r/Line.hpp index a4dcd827ca..751e594583 100644 --- a/src/libslic3r/Line.hpp +++ b/src/libslic3r/Line.hpp @@ -105,10 +105,8 @@ public: double perp_distance_to(const Point &point) const; bool parallel_to(double angle) const; bool parallel_to(const Line& line) const; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool perpendicular_to(double angle) const; bool perpendicular_to(const Line& line) const; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS double atan2_() const { return atan2(this->b(1) - this->a(1), this->b(0) - this->a(0)); } double orientation() const; double direction() const; diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp index 95daa33a60..00ee1717f6 100644 --- a/src/libslic3r/MeshBoolean.cpp +++ b/src/libslic3r/MeshBoolean.cpp @@ -12,11 +12,6 @@ #include #include #include -#include -#include -#include -#include -#include #include namespace Slic3r { @@ -148,19 +143,23 @@ template TriangleMesh cgal_to_triangle_mesh(const _Mesh &cgalmesh) its.vertices.reserve(cgalmesh.num_vertices()); its.indices.reserve(cgalmesh.num_faces()); - for (auto &vi : cgalmesh.vertices()) { + const auto &faces = cgalmesh.faces(); + const auto &vertices = cgalmesh.vertices(); + int vsize = int(vertices.size()); + + for (auto &vi : vertices) { auto &v = cgalmesh.point(vi); // Don't ask... its.vertices.emplace_back(to_vec3f(v)); } - - for (auto &face : cgalmesh.faces()) { + + for (auto &face : faces) { auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face)); int i = 0; Vec3i facet; for (auto v : vtc) { int iv = v; - if (i > 2 || iv < 0 || iv >= int(cgalmesh.vertices().size())) { i = 0; break; } + if (i > 2 || iv < 0 || iv >= vsize) { i = 0; break; } facet(i++) = iv; } diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 2dcf342116..b900a62984 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1,8 +1,10 @@ +#include "Model.hpp" #include "libslic3r.h" +#include "BuildVolume.hpp" #include "Exception.hpp" #include "Model.hpp" #include "ModelArrange.hpp" -#include "Geometry.hpp" +#include "Geometry/ConvexHull.hpp" #include "MTUtils.hpp" #include "TriangleMeshSlicer.hpp" #include "TriangleSelector.hpp" @@ -26,38 +28,6 @@ namespace Slic3r { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -// Using rotating callipers to check for collision of two convex polygons. Thus both printbed_shape and obj_hull_2d are convex polygons. -ModelInstanceEPrintVolumeState printbed_collision_state(const Polygon& printbed_shape, double print_volume_height, const Polygon& obj_hull_2d, double obj_min_z, double obj_max_z) -{ - if (!Geometry::convex_polygons_intersect(printbed_shape, obj_hull_2d)) - return ModelInstancePVS_Fully_Outside; - - bool contained_xy = true; - for (const Point& p : obj_hull_2d) { - if (!printbed_shape.contains(p)) { - contained_xy = false; - break; - } - } - const bool contained_z = -1e10 < obj_min_z && obj_max_z < print_volume_height; - return (contained_xy && contained_z) ? ModelInstancePVS_Inside : ModelInstancePVS_Partly_Outside; -} - -/* -ModelInstanceEPrintVolumeState printbed_collision_state(const Polygon& printbed_shape, double print_volume_height, const BoundingBoxf3& box) -{ - const Polygon box_hull_2d({ - { scale_(box.min.x()), scale_(box.min.y()) }, - { scale_(box.max.x()), scale_(box.min.y()) }, - { scale_(box.max.x()), scale_(box.max.y()) }, - { scale_(box.min.x()), scale_(box.max.y()) } - }); - return printbed_collision_state(printbed_shape, print_volume_height, box_hull_2d, box.min.z(), box.max.z()); -} -*/ -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Model& Model::assign_copy(const Model &rhs) { this->copy_id(rhs); @@ -212,6 +182,8 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig CustomGCode::update_custom_gcode_per_print_z_from_config(model.custom_gcode_per_print_z, config); CustomGCode::check_mode_for_custom_gcode_per_print_z(model.custom_gcode_per_print_z); + handle_legacy_sla(*config); + return model; } @@ -362,24 +334,13 @@ BoundingBoxf3 Model::bounding_box() const return bb; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -// printbed_shape is convex polygon -unsigned int Model::update_print_volume_state(const Polygon& printbed_shape, double print_volume_height) +unsigned int Model::update_print_volume_state(const BuildVolume &build_volume) { unsigned int num_printable = 0; for (ModelObject* model_object : this->objects) - num_printable += model_object->check_instances_print_volume_state(printbed_shape, print_volume_height); + num_printable += model_object->update_instances_print_volume_state(build_volume); return num_printable; } -#else -unsigned int Model::update_print_volume_state(const BoundingBoxf3 &print_volume) -{ - unsigned int num_printable = 0; - for (ModelObject *model_object : this->objects) - num_printable += model_object->check_instances_print_volume_state(print_volume); - return num_printable; -} -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool Model::center_instances_around_point(const Vec2d &point) { @@ -1263,10 +1224,10 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr instances[instance]->get_mirror() ); - z -= instances[instance]->get_offset()(2); + z -= instances[instance]->get_offset().z(); - // Lower part per-instance bounding boxes - std::vector lower_bboxes { instances.size() }; + // Displacement (in instance coordinates) to be applied to place the upper parts + Vec3d local_displace = Vec3d::Zero(); for (ModelVolume *volume : volumes) { const auto volume_matrix = volume->get_matrix(); @@ -1286,8 +1247,7 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr if (attributes.has(ModelObjectCutAttribute::KeepLower)) lower->add_volume(*volume); } - else if (! volume->mesh().empty()) { - + else if (! volume->mesh().empty()) { // Transform the mesh by the combined transformation matrix. // Flip the triangles in case the composite transformation is left handed. TriangleMesh mesh(volume->mesh()); @@ -1327,13 +1287,10 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr assert(vol->config.id() != volume->config.id()); vol->set_material(volume->material_id(), *volume->material()); - // Compute the lower part instances' bounding boxes to figure out where to place - // the upper part - if (attributes.has(ModelObjectCutAttribute::KeepUpper)) { - for (size_t i = 0; i < instances.size(); i++) { - lower_bboxes[i].merge(instances[i]->transform_mesh_bounding_box(lower_mesh, true)); - } - } + // Compute the displacement (in instance coordinates) to be applied to place the upper parts + // The upper part displacement is set to half of the lower part bounding box + // this is done in hope at least a part of the upper part will always be visible and draggable + local_displace = lower->full_raw_mesh_bounding_box().size().cwiseProduct(Vec3d(-0.5, -0.5, 0.0)); } } } @@ -1341,17 +1298,18 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr ModelObjectPtrs res; if (attributes.has(ModelObjectCutAttribute::KeepUpper) && upper->volumes.size() > 0) { - upper->invalidate_bounding_box(); - upper->center_around_origin(); + if (!upper->origin_translation.isApprox(Vec3d::Zero()) && instances[instance]->get_offset().isApprox(Vec3d::Zero())) { + upper->center_around_origin(); + upper->translate_instances(-upper->origin_translation); + upper->origin_translation = Vec3d::Zero(); + } // Reset instance transformation except offset and Z-rotation - for (size_t i = 0; i < instances.size(); i++) { + for (size_t i = 0; i < instances.size(); ++i) { auto &instance = upper->instances[i]; const Vec3d offset = instance->get_offset(); - const double rot_z = instance->get_rotation()(2); - // The upper part displacement is set to half of the lower part bounding box - // this is done in hope at least a part of the upper part will always be visible and draggable - const Vec3d displace = lower_bboxes[i].size().cwiseProduct(Vec3d(-0.5, -0.5, 0.0)); + const double rot_z = instance->get_rotation().z(); + const Vec3d displace = Geometry::assemble_transform(Vec3d::Zero(), instance->get_rotation()) * local_displace; instance->set_transformation(Geometry::Transformation()); instance->set_offset(offset + displace); @@ -1361,14 +1319,16 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr res.push_back(upper); } if (attributes.has(ModelObjectCutAttribute::KeepLower) && lower->volumes.size() > 0) { - lower->invalidate_bounding_box(); - lower->center_around_origin(); + if (!lower->origin_translation.isApprox(Vec3d::Zero()) && instances[instance]->get_offset().isApprox(Vec3d::Zero())) { + lower->center_around_origin(); + lower->translate_instances(-lower->origin_translation); + lower->origin_translation = Vec3d::Zero(); + } // Reset instance transformation except offset and Z-rotation for (auto *instance : lower->instances) { const Vec3d offset = instance->get_offset(); - const double rot_z = instance->get_rotation()(2); - + const double rot_z = instance->get_rotation().z(); instance->set_transformation(Geometry::Transformation()); instance->set_offset(offset); instance->set_rotation(Vec3d(attributes.has(ModelObjectCutAttribute::FlipLower) ? Geometry::deg2rad(180.0) : 0.0, 0.0, rot_z)); @@ -1572,9 +1532,7 @@ double ModelObject::get_instance_max_z(size_t instance_idx) const return max_z + inst->get_offset(Z); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -// printbed_shape is convex polygon -unsigned int ModelObject::check_instances_print_volume_state(const Polygon& printbed_shape, double print_volume_height) +unsigned int ModelObject::update_instances_print_volume_state(const BuildVolume &build_volume) { unsigned int num_printable = 0; enum { @@ -1586,53 +1544,28 @@ unsigned int ModelObject::check_instances_print_volume_state(const Polygon& prin for (const ModelVolume* vol : this->volumes) if (vol->is_model_part()) { const Transform3d matrix = model_instance->get_matrix() * vol->get_matrix(); - const BoundingBoxf3 bb = vol->mesh().transformed_bounding_box(matrix, 0.0); - const Polygon volume_hull_2d = its_convex_hull_2d_above(vol->mesh().its, matrix.cast(), 0.0f); - ModelInstanceEPrintVolumeState state = printbed_collision_state(printbed_shape, print_volume_height, volume_hull_2d, bb.min.z(), bb.max.z()); - if (state == ModelInstancePVS_Inside) + BuildVolume::ObjectState state = build_volume.object_state(vol->mesh().its, matrix.cast(), true /* may be below print bed */); + if (state == BuildVolume::ObjectState::Inside) + // Volume is completely inside. inside_outside |= INSIDE; - else if (state == ModelInstancePVS_Fully_Outside) + else if (state == BuildVolume::ObjectState::Outside) + // Volume is completely outside. inside_outside |= OUTSIDE; - else + else if (state == BuildVolume::ObjectState::Below) { + // Volume below the print bed, thus it is completely outside, however this does not prevent the object to be printable + // if some of its volumes are still inside the build volume. + } else + // Volume colliding with the build volume. inside_outside |= INSIDE | OUTSIDE; } model_instance->print_volume_state = - (inside_outside == (INSIDE | OUTSIDE)) ? ModelInstancePVS_Partly_Outside : - (inside_outside == INSIDE) ? ModelInstancePVS_Inside : ModelInstancePVS_Fully_Outside; + inside_outside == (INSIDE | OUTSIDE) ? ModelInstancePVS_Partly_Outside : + inside_outside == INSIDE ? ModelInstancePVS_Inside : ModelInstancePVS_Fully_Outside; if (inside_outside == INSIDE) ++num_printable; } return num_printable; } -#else -unsigned int ModelObject::check_instances_print_volume_state(const BoundingBoxf3& print_volume) -{ - unsigned int num_printable = 0; - enum { - INSIDE = 1, - OUTSIDE = 2 - }; - for (ModelInstance *model_instance : this->instances) { - unsigned int inside_outside = 0; - for (const ModelVolume *vol : this->volumes) - if (vol->is_model_part()) { - BoundingBoxf3 bb = vol->get_convex_hull().transformed_bounding_box(model_instance->get_matrix() * vol->get_matrix()); - if (print_volume.contains(bb)) - inside_outside |= INSIDE; - else if (print_volume.intersects(bb)) - inside_outside |= INSIDE | OUTSIDE; - else - inside_outside |= OUTSIDE; - } - model_instance->print_volume_state = - (inside_outside == (INSIDE | OUTSIDE)) ? ModelInstancePVS_Partly_Outside : - (inside_outside == INSIDE) ? ModelInstancePVS_Inside : ModelInstancePVS_Fully_Outside; - if (inside_outside == INSIDE) - ++ num_printable; - } - return num_printable; -} -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS void ModelObject::print_info() const { @@ -1697,9 +1630,6 @@ std::string ModelObject::get_export_filename() const TriangleMeshStats ModelObject::get_object_stl_stats() const { - if (this->volumes.size() == 1) - return this->volumes[0]->mesh().stats(); - TriangleMeshStats full_stats; full_stats.volume = 0.f; @@ -1714,7 +1644,8 @@ TriangleMeshStats ModelObject::get_object_stl_stats() const // another used satistics value if (volume->is_model_part()) { - full_stats.volume += stats.volume; + Transform3d trans = instances.empty() ? volume->get_matrix() : (volume->get_matrix() * instances[0]->get_matrix()); + full_stats.volume += stats.volume * std::fabs(trans.matrix().block(0, 0, 3, 3).determinant()); full_stats.number_of_parts += stats.number_of_parts; } } @@ -1856,18 +1787,17 @@ size_t ModelVolume::split(unsigned int max_extruders) size_t idx = 0; size_t ivolume = std::find(this->object->volumes.begin(), this->object->volumes.end(), this) - this->object->volumes.begin(); - std::string name = this->name; + const std::string name = this->name; unsigned int extruder_counter = 0; - Vec3d offset = this->get_offset(); + const Vec3d offset = this->get_offset(); for (TriangleMesh &mesh : meshes) { if (mesh.empty()) // Repair may have removed unconnected triangles, thus emptying the mesh. continue; - if (idx == 0) - { + if (idx == 0) { this->set_mesh(std::move(mesh)); this->calculate_convex_hull(); // Assign a new unique ID, so that a new GLVolume will be generated. @@ -1886,7 +1816,19 @@ size_t ModelVolume::split(unsigned int max_extruders) this->object->volumes[ivolume]->m_is_splittable = 0; ++ idx; } - + + // discard volumes for which the convex hull was not generated or is degenerate + size_t i = 0; + while (i < this->object->volumes.size()) { + const std::shared_ptr &hull = this->object->volumes[i]->get_convex_hull_shared_ptr(); + if (hull == nullptr || hull->its.vertices.empty() || hull->its.indices.empty()) { + this->object->delete_volume(i); + --idx; + --i; + } + ++i; + } + return idx; } diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 9052c20eb2..e8b08ed94b 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -36,6 +36,7 @@ namespace cereal { namespace Slic3r { enum class ConversionType; +class BuildVolume; class Model; class ModelInstance; class ModelMaterial; @@ -359,13 +360,6 @@ public: double get_instance_min_z(size_t instance_idx) const; double get_instance_max_z(size_t instance_idx) const; - // Called by Print::validate() from the UI thread. -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - unsigned int check_instances_print_volume_state(const Polygon& printbed_shape, double print_volume_height); -#else - unsigned int check_instances_print_volume_state(const BoundingBoxf3& print_volume); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - // Print object statistics to console. void print_info() const; @@ -498,6 +492,9 @@ private: sla_support_points, sla_points_status, sla_drain_holes, printable, origin_translation, m_bounding_box, m_bounding_box_valid, m_raw_bounding_box, m_raw_bounding_box_valid, m_raw_mesh_bounding_box, m_raw_mesh_bounding_box_valid); } + + // Called by Print::validate() from the UI thread. + unsigned int update_instances_print_volume_state(const BuildVolume &build_volume); }; enum class EnforcerBlockerType : int8_t { @@ -681,7 +678,7 @@ public: void calculate_convex_hull(); const TriangleMesh& get_convex_hull() const; - std::shared_ptr get_convex_hull_shared_ptr() const { return m_convex_hull; } + const std::shared_ptr& get_convex_hull_shared_ptr() const { return m_convex_hull; } // Get count of errors in the mesh int get_repaired_errors_count() const; @@ -908,17 +905,6 @@ enum ModelInstanceEPrintVolumeState : unsigned char ModelInstanceNum_BedStates }; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -// return the state of the given object's volume (extrusion along z of obj_hull_2d from obj_min_z to obj_max_z) -// with respect to the given print volume (extrusion along z of printbed_shape from zero to print_volume_height) -// Using rotating callipers to check for collision of two convex polygons. -ModelInstanceEPrintVolumeState printbed_collision_state(const Polygon& printbed_shape, double print_volume_height, const Polygon& obj_hull_2d, double obj_min_z, double obj_max_z); -// return the state of the given box -// with respect to the given print volume (extrusion along z of printbed_shape from zero to print_volume_height) -// Commented out, using rotating callipers is quite expensive for a bounding box test. -//ModelInstanceEPrintVolumeState printbed_collision_state(const Polygon& printbed_shape, double print_volume_height, const BoundingBoxf3& box); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - // A single instance of a ModelObject. // Knows the affine transformation of an object. class ModelInstance final : public ObjectBase @@ -1123,12 +1109,7 @@ public: BoundingBoxf3 bounding_box() const; // Set the print_volume_state of PrintObject::instances, // return total number of printable objects. -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - // printbed_shape is convex polygon - unsigned int update_print_volume_state(const Polygon& printbed_shape, double print_volume_height); -#else - unsigned int update_print_volume_state(const BoundingBoxf3 &print_volume); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + unsigned int update_print_volume_state(const BuildVolume &build_volume); // Returns true if any ModelObject was modified. bool center_instances_around_point(const Vec2d &point); void translate(coordf_t x, coordf_t y, coordf_t z) { for (ModelObject *o : this->objects) o->translate(x, y, z); } diff --git a/src/libslic3r/ModelArrange.cpp b/src/libslic3r/ModelArrange.cpp index fcea7e14e0..01a89a8e56 100644 --- a/src/libslic3r/ModelArrange.cpp +++ b/src/libslic3r/ModelArrange.cpp @@ -1,6 +1,7 @@ #include "ModelArrange.hpp" #include +#include #include "MTUtils.hpp" namespace Slic3r { diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 3220a1e022..737514901e 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -3,7 +3,7 @@ #include "EdgeGrid.hpp" #include "Layer.hpp" #include "Print.hpp" -#include "VoronoiVisualUtils.hpp" +#include "Geometry/VoronoiVisualUtils.hpp" #include "MutablePolygon.hpp" #include "format.hpp" @@ -44,6 +44,8 @@ struct segment_traits { //#define MMU_SEGMENTATION_DEBUG_GRAPH //#define MMU_SEGMENTATION_DEBUG_REGIONS //#define MMU_SEGMENTATION_DEBUG_INPUT +//#define MMU_SEGMENTATION_DEBUG_PAINTED_LINES +//#define MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS namespace Slic3r { @@ -147,18 +149,6 @@ struct PaintedLineVisitor static inline const double append_threshold2 = Slic3r::sqr(append_threshold); }; -static std::vector to_colored_lines(const EdgeGrid::Contour &contour, int color) -{ - std::vector lines; - if (contour.num_segments() > 2) { - lines.reserve(contour.num_segments()); - for (auto it = contour.begin(); it != contour.end() - 1; ++it) - lines.push_back({Line(*it, *(it + 1)), color}); - lines.push_back({Line(contour.back(), contour.front()), color}); - } - return lines; -} - static Polygon colored_points_to_polygon(const std::vector &lines) { Polygon out; @@ -242,25 +232,18 @@ static std::vector>> get_all_segments(cons return all_segments; } -static std::vector colorize_line(const Line & line_to_process, - const size_t start_idx, - const size_t end_idx, - std::vector &painted_lines) +static std::vector filter_painted_lines(const Line &line_to_process, const size_t start_idx, const size_t end_idx, const std::vector &painted_lines) { - std::vector internal_painted; - for (size_t line_idx = start_idx; line_idx <= end_idx; ++line_idx) - internal_painted.emplace_back(painted_lines[line_idx]); - const int filter_eps_value = scale_(0.1f); std::vector filtered_lines; - filtered_lines.emplace_back(internal_painted.front()); - for (size_t line_idx = 1; line_idx < internal_painted.size(); ++line_idx) { + filtered_lines.emplace_back(painted_lines[start_idx]); + for (size_t line_idx = start_idx + 1; line_idx <= end_idx; ++line_idx) { // line_to_process is already all colored. Skip another possible duplicate coloring. if(filtered_lines.back().projected_line.b == line_to_process.b) break; PaintedLine &prev = filtered_lines.back(); - PaintedLine &curr = internal_painted[line_idx]; + const PaintedLine &curr = painted_lines[line_idx]; double prev_length = prev.projected_line.length(); double curr_dist_start = (curr.projected_line.a - prev.projected_line.a).cast().norm(); @@ -278,31 +261,84 @@ static std::vector colorize_line(const Line & line_to_ } } else { double curr_dist_end = (curr.projected_line.b - prev.projected_line.a).cast().norm(); - if (curr_dist_end <= prev_length) { - } else { - if (prev.color == curr.color) { + if (curr_dist_end > prev_length) { + if (prev.color == curr.color) prev.projected_line.b = curr.projected_line.b; - } else { - curr.projected_line.a = prev.projected_line.b; - filtered_lines.emplace_back(curr); - } + else + filtered_lines.push_back({curr.contour_idx, curr.line_idx, Line{prev.projected_line.b, curr.projected_line.b}, curr.color}); } } } - std::vector final_lines; - double dist_to_start = (filtered_lines.front().projected_line.a - line_to_process.a).cast().norm(); - if (dist_to_start <= filter_eps_value) { + if (double dist_to_start = (filtered_lines.front().projected_line.a - line_to_process.a).cast().norm(); dist_to_start <= filter_eps_value) filtered_lines.front().projected_line.a = line_to_process.a; - final_lines.push_back({filtered_lines.front().projected_line, filtered_lines.front().color}); - } else { - final_lines.push_back({Line(line_to_process.a, filtered_lines.front().projected_line.a), 0}); - final_lines.push_back({filtered_lines.front().projected_line, filtered_lines.front().color}); + + if (double dist_to_end = (filtered_lines.back().projected_line.b - line_to_process.b).cast().norm(); dist_to_end <= filter_eps_value) + filtered_lines.back().projected_line.b = line_to_process.b; + + return filtered_lines; +} + +static std::vector> post_process_painted_lines(const std::vector &contours, std::vector &&painted_lines) +{ + if (painted_lines.empty()) + return {}; + + auto comp = [&contours](const PaintedLine &first, const PaintedLine &second) { + Point first_start_p = contours[first.contour_idx].segment_start(first.line_idx); + return first.contour_idx < second.contour_idx || + (first.contour_idx == second.contour_idx && + (first.line_idx < second.line_idx || + (first.line_idx == second.line_idx && + ((first.projected_line.a - first_start_p).cast().squaredNorm() < (second.projected_line.a - first_start_p).cast().squaredNorm() || + ((first.projected_line.a - first_start_p).cast().squaredNorm() == (second.projected_line.a - first_start_p).cast().squaredNorm() && + (first.projected_line.b - first.projected_line.a).cast().squaredNorm() < (second.projected_line.b - second.projected_line.a).cast().squaredNorm()))))); + }; + std::sort(painted_lines.begin(), painted_lines.end(), comp); + + std::vector> filtered_painted_lines(contours.size()); + size_t prev_painted_line_idx = 0; + for (size_t curr_painted_line_idx = 0; curr_painted_line_idx < painted_lines.size(); ++curr_painted_line_idx) { + size_t next_painted_line_idx = curr_painted_line_idx + 1; + if (next_painted_line_idx >= painted_lines.size() || painted_lines[curr_painted_line_idx].contour_idx != painted_lines[next_painted_line_idx].contour_idx || painted_lines[curr_painted_line_idx].line_idx != painted_lines[next_painted_line_idx].line_idx) { + const PaintedLine &start_line = painted_lines[prev_painted_line_idx]; + const Line &line_to_process = contours[start_line.contour_idx].get_segment(start_line.line_idx); + Slic3r::append(filtered_painted_lines[painted_lines[curr_painted_line_idx].contour_idx], filter_painted_lines(line_to_process, prev_painted_line_idx, curr_painted_line_idx, painted_lines)); + prev_painted_line_idx = next_painted_line_idx; + } } - for (size_t line_idx = 1; line_idx < filtered_lines.size(); ++line_idx) { - ColoredLine &prev = final_lines.back(); - PaintedLine &curr = filtered_lines[line_idx]; + return filtered_painted_lines; +} + +#ifndef NDEBUG +static bool are_lines_connected(const std::vector &colored_lines) +{ + for (size_t line_idx = 1; line_idx < colored_lines.size(); ++line_idx) + if (colored_lines[line_idx - 1].line.b != colored_lines[line_idx].line.a) + return false; + return true; +} +#endif + +static std::vector colorize_line(const Line &line_to_process, + const size_t start_idx, + const size_t end_idx, + const std::vector &painted_contour) +{ + assert(start_idx < painted_contour.size() && end_idx < painted_contour.size() && start_idx <= end_idx); + assert(std::all_of(painted_contour.begin() + start_idx, painted_contour.begin() + end_idx + 1, [&painted_contour, &start_idx](const auto &p_line) { return painted_contour[start_idx].line_idx == p_line.line_idx; })); + + const int filter_eps_value = scale_(0.1f); + std::vector final_lines; + const PaintedLine &first_line = painted_contour[start_idx]; + if (double dist_to_start = (first_line.projected_line.a - line_to_process.a).cast().norm(); dist_to_start > filter_eps_value) + final_lines.push_back({Line(line_to_process.a, first_line.projected_line.a), 0}); + final_lines.push_back({first_line.projected_line, first_line.color}); + + for (size_t line_idx = start_idx + 1; line_idx <= end_idx; ++line_idx) { + ColoredLine &prev = final_lines.back(); + const PaintedLine &curr = painted_contour[line_idx]; double line_dist = (curr.projected_line.a - prev.line.b).cast().norm(); if (line_dist <= filter_eps_value) { @@ -318,18 +354,16 @@ static std::vector colorize_line(const Line & line_to_ } } - double dist_to_end = (final_lines.back().line.b - line_to_process.b).cast().norm(); - if (dist_to_end <= filter_eps_value) - final_lines.back().line.b = line_to_process.b; - else + // If there is non-painted space, then inserts line painted by a default color. + if (double dist_to_end = (final_lines.back().line.b - line_to_process.b).cast().norm(); dist_to_end > filter_eps_value) final_lines.push_back({Line(final_lines.back().line.b, line_to_process.b), 0}); - for (size_t line_idx = 1; line_idx < final_lines.size(); ++line_idx) - assert(final_lines[line_idx - 1].line.b == final_lines[line_idx].line.a); + // Make sure all the lines are connected. + assert(are_lines_connected(final_lines)); for (size_t line_idx = 2; line_idx < final_lines.size(); ++line_idx) { const ColoredLine &line_0 = final_lines[line_idx - 2]; - ColoredLine & line_1 = final_lines[line_idx - 1]; + ColoredLine &line_1 = final_lines[line_idx - 1]; const ColoredLine &line_2 = final_lines[line_idx - 0]; if (line_0.color == line_2.color && line_0.color != line_1.color) @@ -349,52 +383,25 @@ static std::vector colorize_line(const Line & line_to_ final_lines = colored_lines_simple; - if (final_lines.size() > 1) { + if (final_lines.size() > 1) if (final_lines.front().color != final_lines[1].color && final_lines.front().line.length() <= scale_(0.2)) { final_lines[1].line.a = final_lines.front().line.a; final_lines.erase(final_lines.begin()); } - } - if (final_lines.size() > 1) { + if (final_lines.size() > 1) if (final_lines.back().color != final_lines[final_lines.size() - 2].color && final_lines.back().line.length() <= scale_(0.2)) { final_lines[final_lines.size() - 2].line.b = final_lines.back().line.b; final_lines.pop_back(); } - } return final_lines; } -static std::vector colorize_polygon(const EdgeGrid::Contour &contour, const size_t start_idx, const size_t end_idx, std::vector &painted_lines) -{ - std::vector new_lines; - new_lines.reserve(end_idx - start_idx + 1); - for (size_t idx = 0; idx < painted_lines[start_idx].line_idx; ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - - for (size_t first_idx = start_idx; first_idx <= end_idx; ++first_idx) { - size_t second_idx = first_idx; - while (second_idx <= end_idx && painted_lines[first_idx].line_idx == painted_lines[second_idx].line_idx) ++second_idx; - --second_idx; - - assert(painted_lines[first_idx].line_idx == painted_lines[second_idx].line_idx); - std::vector lines_c_line = colorize_line(contour.get_segment(painted_lines[first_idx].line_idx), first_idx, second_idx, painted_lines); - new_lines.insert(new_lines.end(), lines_c_line.begin(), lines_c_line.end()); - - if (second_idx + 1 <= end_idx) - for (size_t idx = painted_lines[second_idx].line_idx + 1; idx < painted_lines[second_idx + 1].line_idx; ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - - first_idx = second_idx; - } - - for (size_t idx = painted_lines[end_idx].line_idx + 1; idx < contour.num_segments(); ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - +static std::vector filter_colorized_polygon(std::vector &&new_lines) { for (size_t line_idx = 2; line_idx < new_lines.size(); ++line_idx) { const ColoredLine &line_0 = new_lines[line_idx - 2]; - ColoredLine & line_1 = new_lines[line_idx - 1]; + ColoredLine &line_1 = new_lines[line_idx - 1]; const ColoredLine &line_2 = new_lines[line_idx - 0]; if (line_0.color == line_2.color && line_0.color != line_1.color && line_0.color >= 1) { @@ -404,8 +411,8 @@ static std::vector colorize_polygon(const EdgeGrid::Contour &contou for (size_t line_idx = 3; line_idx < new_lines.size(); ++line_idx) { const ColoredLine &line_0 = new_lines[line_idx - 3]; - ColoredLine & line_1 = new_lines[line_idx - 2]; - ColoredLine & line_2 = new_lines[line_idx - 1]; + ColoredLine &line_1 = new_lines[line_idx - 2]; + ColoredLine &line_2 = new_lines[line_idx - 1]; const ColoredLine &line_3 = new_lines[line_idx - 0]; if (line_0.color == line_3.color && (line_0.color != line_1.color || line_0.color != line_2.color) && line_0.color >= 1 && line_3.color >= 1) { @@ -425,79 +432,110 @@ static std::vector colorize_polygon(const EdgeGrid::Contour &contou return total_length; }; - for (size_t pair_idx = 1; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 1].first].color; - int color1 = new_lines[segments[pair_idx - 0].first].color; + if (segments.size() >= 2) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + assert(curr_idx != next_idx); - double seg0l = segment_length(segments[pair_idx - 1]); - double seg1l = segment_length(segments[pair_idx - 0]); + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; - if (color0 != color1 && seg0l >= scale_(0.1) && seg1l <= scale_(0.2)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + double seg0l = segment_length(segments[curr_idx]); + double seg1l = segment_length(segments[next_idx]); + + if (color0 != color1 && seg0l >= scale_(0.1) && seg1l <= scale_(0.2)) { + for (size_t seg_start_idx = segments[next_idx].first; seg_start_idx != segments[next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_idx].second].color = color0; + } } - } segments = get_segments(new_lines); - for (size_t pair_idx = 1; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 1].first].color; - int color1 = new_lines[segments[pair_idx - 0].first].color; - double seg1l = segment_length(segments[pair_idx - 0]); + if (segments.size() >= 2) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + assert(curr_idx != next_idx); - if (color0 >= 1 && color0 != color1 && seg1l <= scale_(0.2)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; + double seg1l = segment_length(segments[next_idx]); + + if (color0 >= 1 && color0 != color1 && seg1l <= scale_(0.2)) { + for (size_t seg_start_idx = segments[next_idx].first; seg_start_idx != segments[next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_idx].second].color = color0; + } } - } - for (size_t pair_idx = 2; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 2].first].color; - int color1 = new_lines[segments[pair_idx - 1].first].color; - int color2 = new_lines[segments[pair_idx - 0].first].color; + segments = get_segments(new_lines); + if (segments.size() >= 3) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + size_t next_next_idx = next_idx_modulo(next_idx, segments.size()); - if (color0 > 0 && color0 == color2 && color0 != color1 && segment_length(segments[pair_idx - 1]) <= scale_(0.5)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; + int color2 = new_lines[segments[next_next_idx].first].color; + + if (color0 > 0 && color0 == color2 && color0 != color1 && segment_length(segments[next_idx]) <= scale_(0.5)) { + for (size_t seg_start_idx = segments[next_next_idx].first; seg_start_idx != segments[next_next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_next_idx].second].color = color0; + } } - } - return new_lines; + return std::move(new_lines); } -static std::vector> colorize_polygons(const std::vector &contours, std::vector &painted_lines) -{ - const size_t start_idx = 0; - const size_t end_idx = painted_lines.size() - 1; +static std::vector colorize_contour(const EdgeGrid::Contour &contour, const std::vector &painted_contour) { + assert(painted_contour.empty() || std::all_of(painted_contour.begin(), painted_contour.end(), [&painted_contour](const auto &p_line) { return painted_contour.front().contour_idx == p_line.contour_idx; })); - std::vector> new_polygons; - new_polygons.reserve(contours.size()); - - for (size_t idx = 0; idx < painted_lines[start_idx].contour_idx; ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); - - for (size_t first_idx = start_idx; first_idx <= end_idx; ++first_idx) { - size_t second_idx = first_idx; - while (second_idx <= end_idx && painted_lines[first_idx].contour_idx == painted_lines[second_idx].contour_idx) - ++second_idx; - --second_idx; - - assert(painted_lines[first_idx].contour_idx == painted_lines[second_idx].contour_idx); - new_polygons.emplace_back(colorize_polygon(contours[painted_lines[first_idx].contour_idx], first_idx, second_idx, painted_lines)); - - if (second_idx + 1 <= end_idx) - for (size_t idx = painted_lines[second_idx].contour_idx + 1; idx < painted_lines[second_idx + 1].contour_idx; ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); - - first_idx = second_idx; + std::vector colorized_contour; + if (painted_contour.empty()) { + // Appends contour with default color for lines before the first PaintedLine. + colorized_contour.reserve(contour.num_segments()); + for (const Line &line : contour.get_segments()) + colorized_contour.emplace_back(ColoredLine{line, 0}); + return colorized_contour; } - for (size_t idx = painted_lines[end_idx].contour_idx + 1; idx < contours.size(); ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); + colorized_contour.reserve(contour.num_segments() + painted_contour.size()); + for (size_t idx = 0; idx < painted_contour.front().line_idx; ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - return new_polygons; + size_t prev_painted_line_idx = 0; + for (size_t curr_painted_line_idx = 0; curr_painted_line_idx < painted_contour.size(); ++curr_painted_line_idx) { + size_t next_painted_line_idx = curr_painted_line_idx + 1; + if (next_painted_line_idx >= painted_contour.size() || painted_contour[curr_painted_line_idx].line_idx != painted_contour[next_painted_line_idx].line_idx) { + const std::vector &painted_contour_copy = painted_contour; + Slic3r::append(colorized_contour, colorize_line(contour.get_segment(painted_contour[prev_painted_line_idx].line_idx), prev_painted_line_idx, curr_painted_line_idx, painted_contour_copy)); + + // Appends contour with default color for lines between the current and the next PaintedLine. + if (next_painted_line_idx < painted_contour.size()) + for (size_t idx = painted_contour[curr_painted_line_idx].line_idx + 1; idx < painted_contour[next_painted_line_idx].line_idx; ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); + + prev_painted_line_idx = next_painted_line_idx; + } + } + + // Appends contour with default color for lines after the last PaintedLine. + for (size_t idx = painted_contour.back().line_idx + 1; idx < contour.num_segments(); ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); + + assert(!colorized_contour.empty()); + return filter_colorized_polygon(std::move(colorized_contour)); +} + +static std::vector> colorize_contours(const std::vector &contours, const std::vector> &painted_contours) +{ + assert(contours.size() == painted_contours.size()); + std::vector> colorized_contours(contours.size()); + for (const std::vector &painted_contour : painted_contours) { + size_t contour_idx = &painted_contour - &painted_contours.front(); + colorized_contours[contour_idx] = colorize_contour(contours[contour_idx], painted_contours[contour_idx]); + } + return colorized_contours; } using boost::polygon::voronoi_diagram; @@ -1075,7 +1113,7 @@ static inline Polygon to_polygon(const std::vector &lines) // It iterates through all nodes on the border between two different colors, and from this point, // start selection always left most edges for every node to construct CCW polygons. // Assumes that graph is planar (without self-intersection edges) -static std::vector> extract_colored_segments(const MMU_Graph &graph) +static std::vector extract_colored_segments(const MMU_Graph &graph, const size_t num_extruders) { std::vector used_arcs(graph.arcs.size(), false); // When there is no next arc, then is returned original_arc or edge with is marked as used @@ -1115,7 +1153,7 @@ static std::vector> extract_colored_segments(const MM return std::all_of(node.arc_idxs.cbegin(), node.arc_idxs.cend(), [&used_arcs](const size_t &arc_idx) -> bool { return used_arcs[arc_idx]; }); }; - std::vector> polygons_segments; + std::vector expolygons_segments(num_extruders + 1); for (size_t node_idx = 0; node_idx < graph.all_border_points; ++node_idx) { const MMU_Graph::Node &node = graph.nodes[node_idx]; @@ -1145,12 +1183,11 @@ static std::vector> extract_colored_segments(const MM p_arc = &next; } while (graph.nodes[p_arc->to_idx].point != start_p || !all_arc_used(graph.nodes[p_arc->to_idx])); - Polygon poly = to_polygon(face_lines); - if (poly.is_counter_clockwise() && poly.is_valid()) - polygons_segments.emplace_back(poly, arc.color); + if (Polygon poly = to_polygon(face_lines); poly.is_counter_clockwise() && poly.is_valid()) + expolygons_segments[arc.color].emplace_back(std::move(poly)); } } - return polygons_segments; + return expolygons_segments; } // Used in remove_multiple_edges_in_vertices() @@ -1231,21 +1268,20 @@ static void remove_multiple_edges_in_vertices(MMU_Graph &graph, const std::vecto } } -static void cut_segmented_layers(const std::vector &input_expolygons, - std::vector>> &segmented_regions, - const float cut_width, - const std::function &throw_on_cancel_callback) +static void cut_segmented_layers(const std::vector &input_expolygons, + std::vector> &segmented_regions, + const float cut_width, + const std::function &throw_on_cancel_callback) { BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - cutting segmented layers in parallel - begin"; tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()),[&segmented_regions, &input_expolygons, &cut_width, &throw_on_cancel_callback](const tbb::blocked_range& range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - std::vector> segmented_regions_cuts; - for (const std::pair &colored_expoly : segmented_regions[layer_idx]) { - ExPolygons cut_colored_expoly = diff_ex(colored_expoly.first, offset_ex(input_expolygons[layer_idx], cut_width)); - for (ExPolygon &expoly : cut_colored_expoly) - segmented_regions_cuts.emplace_back(std::move(expoly), colored_expoly.second); - } + const size_t num_extruders_plus_one = segmented_regions[layer_idx].size(); + std::vector segmented_regions_cuts(num_extruders_plus_one); // Indexed by extruder_id + for (size_t extruder_idx = 0; extruder_idx < num_extruders_plus_one; ++extruder_idx) + if (const ExPolygons &ex_polygons = segmented_regions[layer_idx][extruder_idx]; !ex_polygons.empty()) + segmented_regions_cuts[extruder_idx] = diff_ex(ex_polygons, offset_ex(input_expolygons[layer_idx], cut_width)); segmented_regions[layer_idx] = std::move(segmented_regions_cuts); } }); // end of parallel_for @@ -1285,7 +1321,7 @@ static inline std::vector> mmu_segmentation_top_and_bott // Project upwards pointing painted triangles over top surfaces, // project downards pointing painted triangles over bottom surfaces. std::vector> top_raw(num_extruders), bottom_raw(num_extruders); - std::vector zs = zs_from_layers(print_object.layers()); + std::vector zs = zs_from_layers(layers); Transform3d object_trafo = print_object.trafo_centered(); #ifdef MMU_SEGMENTATION_DEBUG_TOP_BOTTOM @@ -1494,31 +1530,42 @@ static inline std::vector> mmu_segmentation_top_and_bott return triangles_by_color_merged; } -static std::vector>> merge_segmented_layers( - const std::vector>> &segmented_regions, - std::vector> &&top_and_bottom_layers, - const std::function &throw_on_cancel_callback) +static std::vector> merge_segmented_layers( + const std::vector> &segmented_regions, + std::vector> &&top_and_bottom_layers, + const size_t num_extruders, + const std::function &throw_on_cancel_callback) { - std::vector>> segmented_regions_merged(segmented_regions.size()); + const size_t num_layers = segmented_regions.size(); + std::vector> segmented_regions_merged(num_layers); + segmented_regions_merged.assign(num_layers, std::vector(num_extruders)); + assert(num_extruders + 1 == top_and_bottom_layers.size()); BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - merging segmented layers in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()), [&segmented_regions, &top_and_bottom_layers, &segmented_regions_merged, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&segmented_regions, &top_and_bottom_layers, &segmented_regions_merged, &num_extruders, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { - for (const std::pair &colored_expoly : segmented_regions[layer_idx]) { + assert(segmented_regions[layer_idx].size() == num_extruders + 1); + // Zero is skipped because it is the default color of the volume + for (size_t extruder_id = 1; extruder_id < num_extruders + 1; ++extruder_id) { throw_on_cancel_callback(); - // Zero is the default color of the volume. - if(colored_expoly.second == 0) - continue; - ExPolygons cut_colored_expoly = {colored_expoly.first}; - for (const std::vector &top_and_bottom_layer : top_and_bottom_layers) - cut_colored_expoly = diff_ex(cut_colored_expoly, top_and_bottom_layer[layer_idx]); - for (ExPolygon &ex_poly : cut_colored_expoly) - segmented_regions_merged[layer_idx].emplace_back(std::move(ex_poly), colored_expoly.second - 1); - } + if (!segmented_regions[layer_idx][extruder_id].empty()) { + ExPolygons segmented_regions_trimmed = segmented_regions[layer_idx][extruder_id]; + for (const std::vector &top_and_bottom_by_extruder : top_and_bottom_layers) + if (!top_and_bottom_by_extruder[layer_idx].empty() && !segmented_regions_trimmed.empty()) + segmented_regions_trimmed = diff_ex(segmented_regions_trimmed, top_and_bottom_by_extruder[layer_idx]); - for (size_t color_idx = 1; color_idx < top_and_bottom_layers.size(); ++color_idx) - for (ExPolygon &expoly : top_and_bottom_layers[color_idx][layer_idx]) - segmented_regions_merged[layer_idx].emplace_back(std::move(expoly), color_idx - 1); + segmented_regions_merged[layer_idx][extruder_id - 1] = std::move(segmented_regions_trimmed); + } + + if (!top_and_bottom_layers[extruder_id][layer_idx].empty()) { + bool was_top_and_bottom_empty = segmented_regions_merged[layer_idx][extruder_id - 1].empty(); + append(segmented_regions_merged[layer_idx][extruder_id - 1], top_and_bottom_layers[extruder_id][layer_idx]); + + // Remove dimples (#7235) appearing after merging side segmentation of the model with tops and bottoms painted layers. + if (!was_top_and_bottom_empty) + segmented_regions_merged[layer_idx][extruder_id - 1] = offset2_ex(union_ex(segmented_regions_merged[layer_idx][extruder_id - 1]), float(SCALED_EPSILON), -float(SCALED_EPSILON)); + } + } } }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - merging segmented layers in parallel - end"; @@ -1527,7 +1574,7 @@ static std::vector>> merge_segmented_la } #ifdef MMU_SEGMENTATION_DEBUG_REGIONS -static void export_regions_to_svg(const std::string &path, const std::vector> ®ions, const ExPolygons &lslices) +static void export_regions_to_svg(const std::string &path, const std::vector ®ions, const ExPolygons &lslices) { const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; coordf_t stroke_width = scale_(0.05); @@ -1536,12 +1583,12 @@ static void export_regions_to_svg(const std::string &path, const std::vector ®ion : regions) { - int region_color = int(region.second); - if (region_color >= 0 && region_color < int(colors.size())) - svg.draw(region.first, colors[region_color]); + for (const ExPolygons &by_extruder : regions) { + size_t extrude_idx = &by_extruder - ®ions.front(); + if (extrude_idx >= 0 && extrude_idx < int(colors.size())) + svg.draw(by_extruder, colors[extrude_idx], stroke_width); else - svg.draw(region.first, "black"); + svg.draw(by_extruder, "black", stroke_width); } } #endif // MMU_SEGMENTATION_DEBUG_REGIONS @@ -1582,6 +1629,39 @@ void export_processed_input_expolygons_to_svg(const std::string &path, const Lay } #endif // MMU_SEGMENTATION_DEBUG_INPUT +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES +static void export_painted_lines_to_svg(const std::string &path, const std::vector> &all_painted_lines, const ExPolygons &lslices) +{ + const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; + coordf_t stroke_width = scale_(0.05); + BoundingBox bbox = get_extents(lslices); + bbox.offset(scale_(1.)); + ::Slic3r::SVG svg(path.c_str(), bbox); + + for (const Line &line : to_lines(lslices)) + svg.draw(line, "green", stroke_width); + + for (const std::vector &painted_lines : all_painted_lines) + for (const PaintedLine &painted_line : painted_lines) + svg.draw(painted_line.projected_line, painted_line.color < int(colors.size()) ? colors[painted_line.color] : "black", stroke_width); +} +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + +#ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS +static void export_colorized_polygons_to_svg(const std::string &path, const std::vector> &colorized_polygons, const ExPolygons &lslices) +{ + const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "green", "yellow"}; + coordf_t stroke_width = scale_(0.05); + BoundingBox bbox = get_extents(lslices); + bbox.offset(scale_(1.)); + ::Slic3r::SVG svg(path.c_str(), bbox); + + for (const std::vector &colorized_polygon : colorized_polygons) + for (const ColoredLine &colorized_line : colorized_polygon) + svg.draw(colorized_line.line, colorized_line.color < int(colors.size())? colors[colorized_line.color] : "black", stroke_width); +} +#endif // MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + // Check if all ColoredLine representing a single layer uses the same color. static bool has_layer_only_one_color(const std::vector> &colored_polygons) { @@ -1596,20 +1676,23 @@ static bool has_layer_only_one_color(const std::vector> return true; } -std::vector>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback) +std::vector> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback) { - std::vector>> segmented_regions(print_object.layers().size()); - std::vector> painted_lines(print_object.layers().size()); - std::array painted_lines_mutex; - std::vector edge_grids(print_object.layers().size()); - const ConstLayerPtrsAdaptor layers = print_object.layers(); - std::vector input_expolygons(layers.size()); + const size_t num_extruders = print_object.print()->config().nozzle_diameter.size(); + const size_t num_layers = print_object.layers().size(); + std::vector> segmented_regions(num_layers); + segmented_regions.assign(num_layers, std::vector(num_extruders + 1)); + std::vector> painted_lines(num_layers); + std::array painted_lines_mutex; + std::vector edge_grids(num_layers); + const ConstLayerPtrsAdaptor layers = print_object.layers(); + std::vector input_expolygons(num_layers); throw_on_cancel_callback(); // Merge all regions and remove small holes BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - slices preparation in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, layers.size()), [&layers, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&layers, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); ExPolygons ex_polygons; @@ -1640,10 +1723,21 @@ std::vector>> multi_material_segmentati }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - slices preparation in parallel - end"; - for (size_t layer_idx = 0; layer_idx < layers.size(); ++layer_idx) { + std::vector layer_bboxes(num_layers); + for (size_t layer_idx = 0; layer_idx < num_layers; ++layer_idx) { throw_on_cancel_callback(); - BoundingBox bbox(get_extents(layers[layer_idx]->regions())); - bbox.merge(get_extents(input_expolygons[layer_idx])); + layer_bboxes[layer_idx] = get_extents(layers[layer_idx]->regions()); + layer_bboxes[layer_idx].merge(get_extents(input_expolygons[layer_idx])); + } + + for (size_t layer_idx = 0; layer_idx < num_layers; ++layer_idx) { + throw_on_cancel_callback(); + BoundingBox bbox = layer_bboxes[layer_idx]; + // Projected triangles could, in rare cases (as in GH issue #7299), belongs to polygons printed in the previous or the next layer. + // Let's merge the bounding box of the current layer with bounding boxes of the previous and the next layer to ensure that + // every projected triangle will be inside the resulting bounding box. + if (layer_idx > 1) bbox.merge(layer_bboxes[layer_idx - 1]); + if (layer_idx < num_layers - 1) bbox.merge(layer_bboxes[layer_idx + 1]); // Projected triangles may slightly exceed the input polygons. bbox.offset(20 * SCALED_EPSILON); edge_grids[layer_idx].set_bbox(bbox); @@ -1652,8 +1746,7 @@ std::vector>> multi_material_segmentati BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - projection of painted triangles - begin"; for (const ModelVolume *mv : print_object.model_object()->volumes) { - const size_t num_extruders = print_object.print()->config().nozzle_diameter.size() + 1; - tbb::parallel_for(tbb::blocked_range(1, num_extruders), [&mv, &print_object, &edge_grids, &painted_lines, &painted_lines_mutex, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(1, num_extruders + 1), [&mv, &print_object, &layers, &edge_grids, &painted_lines, &painted_lines_mutex, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t extruder_idx = range.begin(); extruder_idx < range.end(); ++extruder_idx) { throw_on_cancel_callback(); const indexed_triangle_set custom_facets = mv->mmu_segmentation_facets.get_facets(*mv, EnforcerBlockerType(extruder_idx)); @@ -1661,7 +1754,7 @@ std::vector>> multi_material_segmentati continue; const Transform3f tr = print_object.trafo().cast() * mv->get_matrix().cast(); - tbb::parallel_for(tbb::blocked_range(0, custom_facets.indices.size()), [&tr, &custom_facets, &print_object, &edge_grids, &input_expolygons, &painted_lines, &painted_lines_mutex, &extruder_idx](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, custom_facets.indices.size()), [&tr, &custom_facets, &print_object, &layers, &edge_grids, &input_expolygons, &painted_lines, &painted_lines_mutex, &extruder_idx](const tbb::blocked_range &range) { for (size_t facet_idx = range.begin(); facet_idx < range.end(); ++facet_idx) { float min_z = std::numeric_limits::max(); float max_z = std::numeric_limits::lowest(); @@ -1677,15 +1770,15 @@ std::vector>> multi_material_segmentati std::sort(facet.begin(), facet.end(), [](const Vec3f &p1, const Vec3f &p2) { return p1.z() < p2.z(); }); // Find lowest slice not below the triangle. - auto first_layer = std::upper_bound(print_object.layers().begin(), print_object.layers().end(), float(min_z - EPSILON), + auto first_layer = std::upper_bound(layers.begin(), layers.end(), float(min_z - EPSILON), [](float z, const Layer *l1) { return z < l1->slice_z; }); - auto last_layer = std::upper_bound(print_object.layers().begin(), print_object.layers().end(), float(max_z + EPSILON), + auto last_layer = std::upper_bound(layers.begin(), layers.end(), float(max_z + EPSILON), [](float z, const Layer *l1) { return z < l1->slice_z; }); --last_layer; for (auto layer_it = first_layer; layer_it != (last_layer + 1); ++layer_it) { const Layer *layer = *layer_it; - size_t layer_idx = layer_it - print_object.layers().begin(); + size_t layer_idx = layer_it - layers.begin(); if (input_expolygons[layer_idx].empty() || facet[0].z() > layer->slice_z || layer->slice_z > facet[2].z()) continue; @@ -1728,31 +1821,40 @@ std::vector>> multi_material_segmentati << std::count_if(painted_lines.begin(), painted_lines.end(), [](const std::vector &pl) { return !pl.empty(); }); BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - layers segmentation in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, print_object.layers().size()), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &num_extruders, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - auto comp = [&edge_grids, layer_idx](const PaintedLine &first, const PaintedLine &second) { - Point first_start_p = edge_grids[layer_idx].contours()[first.contour_idx].segment_start(first.line_idx); - return first.contour_idx < second.contour_idx || - (first.contour_idx == second.contour_idx && - (first.line_idx < second.line_idx || - (first.line_idx == second.line_idx && - ((first.projected_line.a - first_start_p).cast().squaredNorm() < (second.projected_line.a - first_start_p).cast().squaredNorm() || - ((first.projected_line.a - first_start_p).cast().squaredNorm() == (second.projected_line.a - first_start_p).cast().squaredNorm() && - (first.projected_line.b - first.projected_line.a).cast().squaredNorm() < (second.projected_line.b - second.projected_line.a).cast().squaredNorm()))))); - }; + if (!painted_lines[layer_idx].empty()) { +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES + { + static int iRun = 0; + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-%d-%d.svg", layer_idx, iRun++), {painted_lines[layer_idx]}, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES - std::sort(painted_lines[layer_idx].begin(), painted_lines[layer_idx].end(), comp); - std::vector &painted_lines_single = painted_lines[layer_idx]; + std::vector> post_processed_painted_lines = post_process_painted_lines(edge_grids[layer_idx].contours(), std::move(painted_lines[layer_idx])); + +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES + { + static int iRun = 0; + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-post-processed-%d-%d.svg", layer_idx, iRun++), post_processed_painted_lines, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + + std::vector> color_poly = colorize_contours(edge_grids[layer_idx].contours(), post_processed_painted_lines); + +#ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + { + static int iRun = 0; + export_colorized_polygons_to_svg(debug_out_path("mm-colorized_polygons-%d-%d.svg", layer_idx, iRun++), color_poly, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS - if (!painted_lines_single.empty()) { - std::vector> color_poly = colorize_polygons(edge_grids[layer_idx].contours(), painted_lines_single); assert(!color_poly.empty()); assert(!color_poly.front().empty()); if (has_layer_only_one_color(color_poly)) { // If the whole layer is painted using the same color, it is not needed to construct a Voronoi diagram for the segmentation of this layer. - for (const ExPolygon &ex_polygon : input_expolygons[layer_idx]) - segmented_regions[layer_idx].emplace_back(ex_polygon, size_t(color_poly.front().front().color)); + segmented_regions[layer_idx][size_t(color_poly.front().front().color)] = input_expolygons[layer_idx]; } else { MMU_Graph graph = build_graph(layer_idx, color_poly); remove_multiple_edges_in_vertices(graph, color_poly); @@ -1765,9 +1867,7 @@ std::vector>> multi_material_segmentati } #endif // MMU_SEGMENTATION_DEBUG_GRAPH - std::vector> segmentation = extract_colored_segments(graph); - for (std::pair ®ion : segmentation) - segmented_regions[layer_idx].emplace_back(std::move(region)); + segmented_regions[layer_idx] = extract_colored_segments(graph, num_extruders); } #ifdef MMU_SEGMENTATION_DEBUG_REGIONS @@ -1787,11 +1887,11 @@ std::vector>> multi_material_segmentati throw_on_cancel_callback(); } -// return segmented_regions; - std::vector> top_and_bottom_layers = mmu_segmentation_top_and_bottom_layers(print_object, input_expolygons, throw_on_cancel_callback); + // The first index is extruder number (includes default extruder), and the second one is layer number + std::vector> top_and_bottom_layers = mmu_segmentation_top_and_bottom_layers(print_object, input_expolygons, throw_on_cancel_callback); throw_on_cancel_callback(); - std::vector>> segmented_regions_merged = merge_segmented_layers(segmented_regions, std::move(top_and_bottom_layers), throw_on_cancel_callback); + std::vector> segmented_regions_merged = merge_segmented_layers(segmented_regions, std::move(top_and_bottom_layers), num_extruders, throw_on_cancel_callback); throw_on_cancel_callback(); #ifdef MMU_SEGMENTATION_DEBUG_REGIONS diff --git a/src/libslic3r/MultiMaterialSegmentation.hpp b/src/libslic3r/MultiMaterialSegmentation.hpp index 07767111a8..4efdc69514 100644 --- a/src/libslic3r/MultiMaterialSegmentation.hpp +++ b/src/libslic3r/MultiMaterialSegmentation.hpp @@ -11,7 +11,7 @@ class PrintObject; class ExPolygon; // Returns MMU segmentation based on painting in MMU segmentation gizmo -std::vector>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback); +std::vector> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback); } // namespace Slic3r diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 6f2b7f3eac..f763c8bb6c 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -238,6 +238,7 @@ namespace client int i() const { return data.i; } void set_i(int v) { this->reset(); this->data.i = v; this->type = TYPE_INT; } int as_i() const { return (this->type == TYPE_INT) ? this->i() : int(this->d()); } + int as_i_rounded() const { return (this->type == TYPE_INT) ? this->i() : int(std::round(this->d())); } double& d() { return data.d; } double d() const { return data.d; } void set_d(double v) { this->reset(); this->data.d = v; this->type = TYPE_DOUBLE; } @@ -319,7 +320,7 @@ namespace client expr unary_integer(const Iterator start_pos) const { switch (this->type) { - case TYPE_INT : + case TYPE_INT: return expr(this->i(), start_pos, this->it_range.end()); case TYPE_DOUBLE: return expr(static_cast(this->d()), start_pos, this->it_range.end()); @@ -331,10 +332,25 @@ namespace client return expr(); } + expr round(const Iterator start_pos) const + { + switch (this->type) { + case TYPE_INT: + return expr(this->i(), start_pos, this->it_range.end()); + case TYPE_DOUBLE: + return expr(static_cast(std::round(this->d())), start_pos, this->it_range.end()); + default: + this->throw_exception("Cannot round a non-numeric value."); + } + assert(false); + // Suppress compiler warnings. + return expr(); + } + expr unary_not(const Iterator start_pos) const { switch (this->type) { - case TYPE_BOOL : + case TYPE_BOOL: return expr(! this->b(), start_pos, this->it_range.end()); default: this->throw_exception("Cannot apply a not operator."); @@ -549,6 +565,30 @@ namespace client } } + // Store the result into param1. + // param3 is optional + template + static void digits(expr ¶m1, expr ¶m2, expr ¶m3) + { + throw_if_not_numeric(param1); + if (param2.type != TYPE_INT) + param2.throw_exception("digits: second parameter must be integer"); + bool has_decimals = param3.type != TYPE_EMPTY; + if (has_decimals && param3.type != TYPE_INT) + param3.throw_exception("digits: third parameter must be integer"); + + char buf[256]; + int ndigits = std::clamp(param2.as_i(), 0, 64); + if (has_decimals) { + // Format as double. + int decimals = std::clamp(param3.as_i(), 0, 64); + sprintf(buf, leading_zeros ? "%0*.*lf" : "%*.*lf", ndigits, decimals, param1.as_d()); + } else + // Format as int. + sprintf(buf, leading_zeros ? "%0*d" : "%*d", ndigits, param1.as_i_rounded()); + param1.set_s(buf); + } + static void regex_op(expr &lhs, boost::iterator_range &rhs, char op) { const std::string *subject = nullptr; @@ -930,6 +970,7 @@ namespace client { "additive_expression", "Expecting an expression." }, { "multiplicative_expression", "Expecting an expression." }, { "unary_expression", "Expecting an expression." }, + { "optional_parameter", "Expecting a closing brace or an optional parameter." }, { "scalar_variable_reference", "Expecting a scalar variable reference."}, { "variable_reference", "Expecting a variable reference."}, { "regular_expression", "Expecting a regular expression."} @@ -1194,6 +1235,10 @@ namespace client { out = value.unary_not(out.it_range.begin()); } static void to_int(expr &value, expr &out) { out = value.unary_integer(out.it_range.begin()); } + static void round(expr &value, expr &out) + { out = value.round(out.it_range.begin()); } + // For indicating "no optional parameter". + static void noexpr(expr &out) { out.reset(); } }; unary_expression = iter_pos[px::bind(&FactorActions::set_start_pos, _1, _val)] >> ( scalar_variable_reference(_r1) [ _val = _1 ] @@ -1207,7 +1252,12 @@ namespace client [ px::bind(&expr::max, _val, _2) ] | (kw["random"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > ')') [ px::bind(&MyContext::random, _r1, _val, _2) ] - | (kw["int"] > '(' > unary_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["digits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) + [ px::bind(&expr::template digits, _val, _2, _3) ] + | (kw["zdigits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) + [ px::bind(&expr::template digits, _val, _2, _3) ] + | (kw["int"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["round"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::round, _1, _val) ] | (strict_double > iter_pos) [ px::bind(&FactorActions::double_, _1, _2, _val) ] | (int_ > iter_pos) [ px::bind(&FactorActions::int_, _1, _2, _val) ] | (kw[bool_] > iter_pos) [ px::bind(&FactorActions::bool_, _1, _2, _val) ] @@ -1216,6 +1266,12 @@ namespace client ); unary_expression.name("unary_expression"); + optional_parameter = iter_pos[px::bind(&FactorActions::set_start_pos, _1, _val)] >> ( + lit(')') [ px::bind(&FactorActions::noexpr, _val) ] + | (lit(',') > conditional_expression(_r1) > ')') [ _val = _1 ] + ); + optional_parameter.name("optional_parameter"); + scalar_variable_reference = variable_reference(_r1)[_a=_1] >> ( @@ -1234,6 +1290,8 @@ namespace client keywords.add ("and") + ("digits") + ("zdigits") ("if") ("int") //("inf") @@ -1244,6 +1302,7 @@ namespace client ("min") ("max") ("random") + ("round") ("not") ("or") ("true"); @@ -1266,6 +1325,7 @@ namespace client debug(additive_expression); debug(multiplicative_expression); debug(unary_expression); + debug(optional_parameter); debug(scalar_variable_reference); debug(variable_reference); debug(regular_expression); @@ -1303,6 +1363,8 @@ namespace client RuleExpression multiplicative_expression; // Number literals, functions, braced expressions, variable references, variable indexing references. RuleExpression unary_expression; + // Accepting an optional parameter. + RuleExpression optional_parameter; // Rule to capture a regular expression enclosed in //. qi::rule(), spirit_encoding::space_type> regular_expression; // Evaluate boolean expression into bool. diff --git a/src/libslic3r/Point.cpp b/src/libslic3r/Point.cpp index b1f3a74bb0..b2427d46db 100644 --- a/src/libslic3r/Point.cpp +++ b/src/libslic3r/Point.cpp @@ -201,6 +201,14 @@ BoundingBox get_extents(const std::vector &pts) return bbox; } +BoundingBoxf get_extents(const std::vector &pts) +{ + BoundingBoxf bbox; + for (const Vec2d &p : pts) + bbox.merge(p); + return bbox; +} + std::ostream& operator<<(std::ostream &stm, const Vec2d &pointf) { return stm << pointf(0) << "," << pointf(1); diff --git a/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index 499ab073d4..8848279e75 100644 --- a/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp @@ -16,6 +16,7 @@ namespace Slic3r { class BoundingBox; +class BoundingBoxf; class Line; class MultiPoint; class Point; @@ -133,6 +134,7 @@ public: Point(const Eigen::MatrixBase &other) : Vec2crd(other) {} static Point new_scale(coordf_t x, coordf_t y) { return Point(coord_t(scale_(x)), coord_t(scale_(y))); } static Point new_scale(const Vec2d &v) { return Point(coord_t(scale_(v.x())), coord_t(scale_(v.y()))); } + static Point new_scale(const Vec2f &v) { return Point(coord_t(scale_(v.x())), coord_t(scale_(v.y()))); } // This method allows you to assign Eigen expressions to MyVectorType template @@ -213,6 +215,7 @@ inline Point lerp(const Point &a, const Point &b, double t) BoundingBox get_extents(const Points &pts); BoundingBox get_extents(const std::vector &pts); +BoundingBoxf get_extents(const std::vector &pts); // Test for duplicate points in a vector of points. // The points are copied, sorted and checked for duplicates globally. diff --git a/src/libslic3r/Polygon.cpp b/src/libslic3r/Polygon.cpp index 42a6cc2095..c7bbe97066 100644 --- a/src/libslic3r/Polygon.cpp +++ b/src/libslic3r/Polygon.cpp @@ -334,6 +334,25 @@ extern std::vector get_extents_vector(const Polygons &polygons) return out; } +// Polygon must be valid (at least three points), collinear points and duplicate points removed. +bool polygon_is_convex(const Points &poly) +{ + if (poly.size() < 3) + return false; + + Point p0 = poly[poly.size() - 2]; + Point p1 = poly[poly.size() - 1]; + for (size_t i = 0; i < poly.size(); ++ i) { + Point p2 = poly[i]; + auto det = cross2((p1 - p0).cast(), (p2 - p1).cast()); + if (det < 0) + return false; + p0 = p1; + p1 = p2; + } + return true; +} + bool has_duplicate_points(const Polygons &polys) { #if 1 diff --git a/src/libslic3r/Polygon.hpp b/src/libslic3r/Polygon.hpp index 913ab3f6ee..6ef4e3caa0 100644 --- a/src/libslic3r/Polygon.hpp +++ b/src/libslic3r/Polygon.hpp @@ -84,6 +84,10 @@ BoundingBox get_extents_rotated(const Polygon &poly, double angle); BoundingBox get_extents_rotated(const Polygons &polygons, double angle); std::vector get_extents_vector(const Polygons &polygons); +// Polygon must be valid (at least three points), collinear points and duplicate points removed. +bool polygon_is_convex(const Points &poly); +inline bool polygon_is_convex(const Polygon &poly) { return polygon_is_convex(poly.points); } + // Test for duplicate points. The points are copied, sorted and checked for duplicates globally. inline bool has_duplicate_points(Polygon &&poly) { return has_duplicate_points(std::move(poly.points)); } inline bool has_duplicate_points(const Polygon &poly) { return has_duplicate_points(poly.points); } diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 09cd384687..7950d38de9 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -303,6 +303,8 @@ void Preset::normalize(DynamicPrintConfig &config) first_layer_height->value = first_layer_height->get_abs_value(layer_height->value); first_layer_height->percent = false; } + + handle_legacy_sla(config); } std::string Preset::remove_invalid_keys(DynamicPrintConfig &config, const DynamicPrintConfig &default_config) @@ -534,6 +536,7 @@ static std::vector s_Preset_sla_print_options { }; static std::vector s_Preset_sla_material_options { + "material_colour", "material_type", "initial_layer_height", "bottle_cost", @@ -543,8 +546,12 @@ static std::vector s_Preset_sla_material_options { "exposure_time", "initial_exposure_time", "material_correction", + "material_correction_x", + "material_correction_y", + "material_correction_z", "material_notes", "material_vendor", + "material_print_speed", "default_sla_material_profile", "compatible_prints", "compatible_prints_condition", "compatible_printers", "compatible_printers_condition", "inherits" @@ -558,6 +565,9 @@ static std::vector s_Preset_sla_printer_options { "display_orientation", "fast_tilt_time", "slow_tilt_time", "area_fill", "relative_correction", + "relative_correction_x", + "relative_correction_y", + "relative_correction_z", "absolute_correction", "elefant_foot_compensation", "elefant_foot_min_width", @@ -1378,6 +1388,14 @@ const Preset* PrinterPresetCollection::find_system_preset_by_model_and_variant(c return it != cend() ? &*it : nullptr; } +bool PrinterPresetCollection::only_default_printers() const +{ + for (const auto& printer : get_presets()) { + if (!boost::starts_with(printer.name,"- default")) + return false; + } + return true; +} // ------------------------- // *** PhysicalPrinter *** // ------------------------- diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 849dd7b809..6764b197d1 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -597,6 +597,7 @@ public: const Preset* find_system_preset_by_model_and_variant(const std::string &model_id, const std::string &variant) const; + bool only_default_printers() const; private: PrinterPresetCollection() = default; PrinterPresetCollection(const PrinterPresetCollection &other) = default; diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index feaf0cac7d..b6e7fbd5ec 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -188,6 +188,61 @@ void PresetBundle::setup_directories() } } +// recursively copy all files and dirs in from_dir to to_dir +static void copy_dir(const boost::filesystem::path& from_dir, const boost::filesystem::path& to_dir) +{ + if(!boost::filesystem::is_directory(from_dir)) + return; + // i assume to_dir.parent surely exists + if (!boost::filesystem::is_directory(to_dir)) + boost::filesystem::create_directory(to_dir); + for (auto& dir_entry : boost::filesystem::directory_iterator(from_dir)) { + if (!boost::filesystem::is_directory(dir_entry.path())) { + std::string em; + CopyFileResult cfr = copy_file(dir_entry.path().string(), (to_dir / dir_entry.path().filename()).string(), em, false); + if (cfr != SUCCESS) { + BOOST_LOG_TRIVIAL(error) << "Error when copying files from " << from_dir << " to " << to_dir << ": " << em; + } + } else { + copy_dir(dir_entry.path(), to_dir / dir_entry.path().filename()); + } + } +} + +void PresetBundle::copy_files(const std::string& from) +{ + boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir()); + // list of searched paths based on current directory system in setup_directories() + // do not copy cache and snapshots + boost::filesystem::path from_data_dir = boost::filesystem::path(from); + std::initializer_list from_dirs= { + from_data_dir / "vendor", + from_data_dir / "shapes", +#ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR + // Store the print/filament/printer presets into a "presets" directory. + data_dir / "presets", + data_dir / "presets" / "print", + data_dir / "presets" / "filament", + data_dir / "presets" / "sla_print", + data_dir / "presets" / "sla_material", + data_dir / "presets" / "printer", + data_dir / "presets" / "physical_printer" +#else + // Store the print/filament/printer presets at the same location as the upstream Slic3r. + from_data_dir / "print", + from_data_dir / "filament", + from_data_dir / "sla_print", + from_data_dir / "sla_material", + from_data_dir / "printer", + from_data_dir / "physical_printer" +#endif + }; + // copy recursively all files + for (const boost::filesystem::path& from_dir : from_dirs) { + copy_dir(from_dir, data_dir / from_dir.filename()); + } +} + PresetsConfigSubstitutions PresetBundle::load_presets(AppConfig &config, ForwardCompatibilitySubstitutionRule substitution_rule, const PresetPreferences& preferred_selection/* = PresetPreferences()*/) { @@ -501,13 +556,15 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p auto printer_technology = printers.get_selected_preset().printer_technology(); if (printer_technology == ptFFF && ! preferred_selection.filament.empty()) { std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_FILAMENT, preferred_selection.filament); - if (auto it = filaments.find_preset_internal(preferred_preset_name); it != filaments.end() && it->is_visible) { + if (auto it = filaments.find_preset_internal(preferred_preset_name); + it != filaments.end() && it->is_visible && it->is_compatible) { filaments.select_preset_by_name_strict(preferred_preset_name); this->filament_presets.front() = filaments.get_selected_preset_name(); } } else if (printer_technology == ptSLA && ! preferred_selection.sla_material.empty()) { std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_SLA_MATERIAL, preferred_selection.sla_material); - if (auto it = sla_materials.find_preset_internal(preferred_preset_name); it != sla_materials.end() && it->is_visible) + if (auto it = sla_materials.find_preset_internal(preferred_preset_name); + it != sla_materials.end() && it->is_visible && it->is_compatible) sla_materials.select_preset_by_name_strict(preferred_preset_name); } } diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index e5e49fb470..a975e37fe3 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -24,6 +24,7 @@ public: void reset(bool delete_files); void setup_directories(); + void copy_files(const std::string& from); struct PresetPreferences { std::string printer_model_id;// name of a preferred printer model diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 03a3d1e575..086aeb2c46 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -5,7 +5,7 @@ #include "ClipperUtils.hpp" #include "Extruder.hpp" #include "Flow.hpp" -#include "Geometry.hpp" +#include "Geometry/ConvexHull.hpp" #include "I18N.hpp" #include "ShortestPath.hpp" #include "SupportMaterial.hpp" @@ -850,7 +850,7 @@ void Print::process() // The export_gcode may die for various reasons (fails to process output_filename_format, // write error into the G-code, cannot execute post-processing scripts). // It is up to the caller to show an error message. -std::string Print::export_gcode(const std::string& path_template, GCodeProcessor::Result* result, ThumbnailsGeneratorCallback thumbnail_cb) +std::string Print::export_gcode(const std::string& path_template, GCodeProcessorResult* result, ThumbnailsGeneratorCallback thumbnail_cb) { // output everything to a G-code file // The following call may die if the output_filename_format template substitution fails. diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index ac986216e5..e818cad0da 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -521,7 +521,7 @@ public: void process() override; // Exports G-code into a file name based on the path_template, returns the file path of the generated G-code file. // If preview_data is not null, the preview_data is filled in for the G-code visualization (not used by the command line Slic3r). - std::string export_gcode(const std::string& path_template, GCodeProcessor::Result* result, ThumbnailsGeneratorCallback thumbnail_cb = nullptr); + std::string export_gcode(const std::string& path_template, GCodeProcessorResult* result, ThumbnailsGeneratorCallback thumbnail_cb = nullptr); // methods for handling state bool is_step_done(PrintStep step) const { return Inherited::is_step_done(step); } diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index 0f70cf3cc1..84ff555988 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -604,12 +604,24 @@ void print_objects_regions_invalidate_keep_some_volumes(PrintObjectRegions &prin print_object_regions.cached_volume_ids.erase(print_object_regions.cached_volume_ids.begin() + last_cached_volume, print_object_regions.cached_volume_ids.end()); } +// Find a bounding box of a volume's part intersecting layer_range. Such a bounding box will likely be smaller in XY than the full bounding box, +// thus it will intersect with lower number of other volumes. const PrintObjectRegions::BoundingBox* find_volume_extents(const PrintObjectRegions::LayerRangeRegions &layer_range, const ModelVolume &volume) { auto it = lower_bound_by_predicate(layer_range.volumes.begin(), layer_range.volumes.end(), [&volume](const PrintObjectRegions::VolumeExtents &l){ return l.volume_id < volume.id(); }); return it != layer_range.volumes.end() && it->volume_id == volume.id() ? &it->bbox : nullptr; } +// Find a bounding box of a topmost printable volume referenced by this modifier given this_region_id. +const PrintObjectRegions::BoundingBox* find_modifier_volume_extents(const PrintObjectRegions::LayerRangeRegions &layer_range, const int this_region_id) +{ + // Find the top-most printable volume of this modifier, or the printable volume itself. + int parent_region_id = this_region_id; + for (; ! layer_range.volume_regions[parent_region_id].model_volume->is_model_part(); parent_region_id = layer_range.volume_regions[parent_region_id].parent) + assert(parent_region_id >= 0); + return find_volume_extents(layer_range, *layer_range.volume_regions[parent_region_id].model_volume); +} + PrintRegionConfig region_config_from_model_volume(const PrintRegionConfig &default_or_parent_region_config, const DynamicPrintConfig *layer_range_config, const ModelVolume &volume, size_t num_extruders); void print_region_ref_inc(PrintRegion &r) { ++ r.m_ref_cnt; } @@ -634,11 +646,54 @@ bool verify_update_print_object_regions( print_region_ref_reset(*region); // Verify and / or update PrintRegions produced by ModelVolumes, layer range modifiers, modifier volumes. - for (PrintObjectRegions::LayerRangeRegions &layer_range : print_object_regions.layer_ranges) + for (PrintObjectRegions::LayerRangeRegions &layer_range : print_object_regions.layer_ranges) { + // Each modifier ModelVolume intersecting this layer_range shall be referenced here at least once if it intersects some + // printable ModelVolume at this layer_range even if it does not modify its overlapping printable ModelVolume configuration yet. + // VolumeRegions reference ModelVolumes in layer_range.volume_regions the order they are stored in ModelObject volumes. + // Remember whether a given modifier ModelVolume was visited already. + auto it_model_volume_modifier_last = model_volumes.end(); for (PrintObjectRegions::VolumeRegion ®ion : layer_range.volume_regions) if (region.model_volume->is_model_part() || region.model_volume->is_modifier()) { auto it_model_volume = lower_bound_by_predicate(model_volumes.begin(), model_volumes.end(), [®ion](const ModelVolume *l){ return l->id() < region.model_volume->id(); }); assert(it_model_volume != model_volumes.end() && (*it_model_volume)->id() == region.model_volume->id()); + if (region.model_volume->is_modifier() && it_model_volume != it_model_volume_modifier_last) { + // A modifier ModelVolume is visited for the first time. + // A visited modifier may not have had parent volume_regions created overlapping with some model parts or modifiers, + // if the visited modifier did not modify their properties. Now the visited modifier's configuration may have changed, + // which may require new regions to be created. + it_model_volume_modifier_last = it_model_volume; + int this_region_id = int(®ion - layer_range.volume_regions.data()); + int next_region_id = this_region_id + 1; + const PrintObjectRegions::BoundingBox *bbox = find_volume_extents(layer_range, *region.model_volume); + assert(bbox); + for (int parent_region_id = this_region_id - 1; parent_region_id >= 0; -- parent_region_id) { + const PrintObjectRegions::VolumeRegion &parent_region = layer_range.volume_regions[parent_region_id]; + assert(parent_region.model_volume != region.model_volume); + if (parent_region.model_volume->is_model_part() || parent_region.model_volume->is_modifier()) { + // volume_regions are produced in decreasing order of parent volume_regions ids. + // Some regions may not have been generated the last time by generate_print_object_regions(). + assert(next_region_id == int(layer_range.volume_regions.size()) || + layer_range.volume_regions[next_region_id].model_volume != region.model_volume || + layer_range.volume_regions[next_region_id].parent <= parent_region_id); + if (next_region_id < int(layer_range.volume_regions.size()) && + layer_range.volume_regions[next_region_id].model_volume == region.model_volume && + layer_range.volume_regions[next_region_id].parent == parent_region_id) { + // A parent region is already overridden. + ++ next_region_id; + } else { + // Such parent region does not exist. If it is needed, then we need to reslice. + const PrintObjectRegions::BoundingBox *parent_bbox = find_modifier_volume_extents(layer_range, parent_region_id); + assert(parent_bbox != nullptr); + if (parent_bbox->intersects(*bbox)) + // Only create new region for a modifier, which actually modifies config of it's parent. + if (PrintRegionConfig config = region_config_from_model_volume(parent_region.region->config(), nullptr, **it_model_volume, num_extruders); + config != parent_region.region->config()) + // This modifier newly overrides a region, which it did not before. We need to reslice. + return false; + } + } + } + } PrintRegionConfig cfg = region.parent == -1 ? region_config_from_model_volume(default_region_config, layer_range.config, **it_model_volume, num_extruders) : region_config_from_model_volume(layer_range.volume_regions[region.parent].region->config(), nullptr, **it_model_volume, num_extruders); @@ -657,6 +712,7 @@ bool verify_update_print_object_regions( } print_region_ref_inc(*region.region); } + } // Verify and / or update PrintRegions produced by color painting. for (const PrintObjectRegions::LayerRangeRegions &layer_range : print_object_regions.layer_ranges) @@ -851,18 +907,28 @@ static PrintObjectRegions* generate_print_object_regions( } else { assert(volume.is_modifier()); // Modifiers may be chained one over the other. Check for overlap, merge DynamicPrintConfigs. - for (int parent_region_id = int(layer_range.volume_regions.size()) - 1; parent_region_id >= 0; -- parent_region_id) - if (const PrintObjectRegions::VolumeRegion &parent_region = layer_range.volume_regions[parent_region_id]; - parent_region.model_volume->is_model_part() || parent_region.model_volume->is_modifier()) { - const PrintObjectRegions::BoundingBox *parent_bbox = find_volume_extents(layer_range, *parent_region.model_volume); - assert(parent_bbox != nullptr); - if (parent_bbox->intersects(*bbox)) - layer_range.volume_regions.push_back({ - &volume, parent_region_id, - get_create_region(region_config_from_model_volume(parent_region.region->config(), nullptr, volume, num_extruders)), - bbox - }); + bool added = false; + int parent_model_part_id = -1; + for (int parent_region_id = int(layer_range.volume_regions.size()) - 1; parent_region_id >= 0; -- parent_region_id) { + const PrintObjectRegions::VolumeRegion &parent_region = layer_range.volume_regions[parent_region_id]; + const ModelVolume &parent_volume = *parent_region.model_volume; + if (parent_volume.is_model_part() || parent_volume.is_modifier()) { + const PrintObjectRegions::BoundingBox *parent_bbox = find_modifier_volume_extents(layer_range, parent_region_id); + assert(parent_bbox != nullptr); + if (parent_bbox->intersects(*bbox)) + // Only create new region for a modifier, which actually modifies config of it's parent. + if (PrintRegionConfig config = region_config_from_model_volume(parent_region.region->config(), nullptr, volume, num_extruders); + config != parent_region.region->config()) { + added = true; + layer_range.volume_regions.push_back({ &volume, parent_region_id, get_create_region(std::move(config)), bbox }); + } else if (parent_model_part_id == -1 && parent_volume.is_model_part()) + parent_model_part_id = parent_region_id; } + } + if (! added && parent_model_part_id >= 0) + // This modifier does not override any printable volume's configuration, however it may in the future. + // Store it so that verify_update_print_object_regions() will handle this modifier correctly if its configuration changes. + layer_range.volume_regions.push_back({ &volume, parent_model_part_id, layer_range.volume_regions[parent_model_part_id].region, bbox }); } } } diff --git a/src/libslic3r/PrintBase.cpp b/src/libslic3r/PrintBase.cpp index 7de74035bc..b60401e96f 100644 --- a/src/libslic3r/PrintBase.cpp +++ b/src/libslic3r/PrintBase.cpp @@ -26,14 +26,17 @@ void PrintBase::update_object_placeholders(DynamicConfig &config, const std::str // get the first input file name std::string input_file; std::vector v_scale; + int num_objects = 0; + int num_instances = 0; for (const ModelObject *model_object : m_model.objects) { ModelInstance *printable = nullptr; for (ModelInstance *model_instance : model_object->instances) if (model_instance->is_printable()) { printable = model_instance; - break; + ++ num_instances; } if (printable) { + ++ num_objects; // CHECK_ME -> Is the following correct ? v_scale.push_back("x:" + boost::lexical_cast(printable->get_scaling_factor(X) * 100) + "% y:" + boost::lexical_cast(printable->get_scaling_factor(Y) * 100) + @@ -43,6 +46,9 @@ void PrintBase::update_object_placeholders(DynamicConfig &config, const std::str } } + config.set_key_value("num_objects", new ConfigOptionInt(num_objects)); + config.set_key_value("num_instances", new ConfigOptionInt(num_instances)); + config.set_key_value("scale", new ConfigOptionStrings(v_scale)); if (! input_file.empty()) { // get basename with and without suffix diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 232e724e76..c637804495 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -165,6 +165,12 @@ static const t_config_enum_values s_keys_map_SLAPillarConnectionMode = { }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SLAPillarConnectionMode) +static const t_config_enum_values s_keys_map_SLAMaterialSpeed = { + {"slow", slamsSlow}, + {"fast", slamsFast} +}; +CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SLAMaterialSpeed); + static const t_config_enum_values s_keys_map_BrimType = { {"no_brim", btNoBrim}, {"outer_only", btOuterOnly}, @@ -374,6 +380,7 @@ void PrintConfigDef::init_fff_params() "Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path."); def->sidetext = L("mm or % (zero to disable)"); def->min = 0; + def->max_literal = 1000; def->mode = comExpert; def->set_default_value(new ConfigOptionFloatOrPercent(0., false)); @@ -481,7 +488,7 @@ void PrintConfigDef::init_fff_params() def = this->add("brim_width", coFloat); def->label = L("Brim width"); def->category = L("Skirt and brim"); - def->tooltip = L("Horizontal width of the brim that will be printed around each object on the first layer." + def->tooltip = L("The horizontal width of the brim that will be printed around each object on the first layer. " "When raft is used, no brim is generated (use raft_first_layer_expansion)."); def->sidetext = L("mm"); def->min = 0; @@ -720,6 +727,7 @@ void PrintConfigDef::init_fff_params() "If expressed as percentage (for example 200%), it will be computed over layer height."); def->sidetext = L("mm or %"); def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -831,6 +839,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm or %"); def->min = 0; def->max = 1000; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -1181,6 +1190,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm or %"); def->ratio_over = "first_layer_height"; def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(200, true)); @@ -1200,6 +1210,7 @@ void PrintConfigDef::init_fff_params() "(for example: 40%) it will scale the default speeds."); def->sidetext = L("mm/s or %"); def->min = 0; + def->max_literal = 20; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(30, false)); @@ -1252,7 +1263,8 @@ void PrintConfigDef::init_fff_params() def = this->add("fuzzy_skin_thickness", coFloat); def->label = L("Fuzzy skin thickness"); def->category = L("Fuzzy Skin"); - def->tooltip = ""; + def->tooltip = L("The maximum distance that each skin point can be offset (both ways), " + "measured perpendicular to the perimeter wall."); def->sidetext = L("mm"); def->min = 0; def->mode = comAdvanced; @@ -1261,7 +1273,8 @@ void PrintConfigDef::init_fff_params() def = this->add("fuzzy_skin_point_dist", coFloat); def->label = L("Fuzzy skin point distance"); def->category = L("Fuzzy Skin"); - def->tooltip = ""; + def->tooltip = L("Perimeters will be split into multiple segments by inserting Fuzzy skin points. " + "Lowering the Fuzzy skin point distance will increase the number of randomly offset points on the perimeter wall."); def->sidetext = L("mm"); def->min = 0; def->mode = comAdvanced; @@ -1372,6 +1385,7 @@ void PrintConfigDef::init_fff_params() "Set this parameter to zero to disable anchoring perimeters connected to a single infill line."); def->sidetext = L("mm or %"); def->ratio_over = "infill_extrusion_width"; + def->max_literal = 1000; def->gui_type = ConfigOptionDef::GUIType::f_enum_open; def->enum_values.push_back("0"); def->enum_values.push_back("1"); @@ -1399,6 +1413,7 @@ void PrintConfigDef::init_fff_params() "Set this parameter to zero to disable anchoring."); def->sidetext = def_infill_anchor_min->sidetext; def->ratio_over = def_infill_anchor_min->ratio_over; + def->max_literal = def_infill_anchor_min->max_literal; def->gui_type = def_infill_anchor_min->gui_type; def->enum_values = def_infill_anchor_min->enum_values; def->enum_labels.push_back(L("0 (not anchored)")); @@ -1427,6 +1442,7 @@ void PrintConfigDef::init_fff_params() "If expressed as percentage (for example 90%) it will be computed over layer height."); def->sidetext = L("mm or %"); def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -1926,6 +1942,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm or %"); def->aliases = { "perimeters_extrusion_width" }; def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -2298,6 +2315,7 @@ void PrintConfigDef::init_fff_params() "If expressed as percentage (for example 90%) it will be computed over layer height."); def->sidetext = L("mm or %"); def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -2439,13 +2457,13 @@ void PrintConfigDef::init_fff_params() def = this->add("slicing_mode", coEnum); def->label = L("Slicing Mode"); def->category = L("Advanced"); - def->tooltip = L("Use \"Even / Odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model."); + def->tooltip = L("Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model."); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("regular"); def->enum_values.push_back("even_odd"); def->enum_values.push_back("close_holes"); def->enum_labels.push_back(L("Regular")); - def->enum_labels.push_back(L("Even / Odd")); + def->enum_labels.push_back(L("Even-odd")); def->enum_labels.push_back(L("Close holes")); def->mode = comAdvanced; def->set_default_value(new ConfigOptionEnum(SlicingMode::Regular)); @@ -2472,6 +2490,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("mm or %"); def->ratio_over = "external_perimeter_extrusion_width"; def->min = 0; + def->max_literal = 10; def->mode = comAdvanced; // Default is half the external perimeter width. def->set_default_value(new ConfigOptionFloatOrPercent(50, true)); @@ -2558,6 +2577,7 @@ void PrintConfigDef::init_fff_params() "If expressed as percentage (for example 90%) it will be computed over layer height."); def->sidetext = L("mm or %"); def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -2745,7 +2765,8 @@ void PrintConfigDef::init_fff_params() def = this->add("thick_bridges", coBool); def->label = L("Thick bridges"); def->category = L("Layers and Perimeters"); - def->tooltip = L("Print bridges with round extrusions."); + def->tooltip = L("If enabled, bridges are more reliable, can bridge longer distances, but may look worse. " + "If disabled, bridges look better but are reliable just for shorter bridged distances."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(true)); @@ -2790,6 +2811,7 @@ void PrintConfigDef::init_fff_params() "If expressed as percentage (for example 90%) it will be computed over layer height."); def->sidetext = L("mm or %"); def->min = 0; + def->max_literal = 50; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloatOrPercent(0, false)); @@ -3130,7 +3152,31 @@ void PrintConfigDef::init_sla_params() def->tooltip = L("Printer scaling correction"); def->min = 0; def->mode = comExpert; - def->set_default_value(new ConfigOptionFloats( { 1., 1. } )); + def->set_default_value(new ConfigOptionFloats( { 1., 1.} )); + + def = this->add("relative_correction_x", coFloat); + def->label = L("Printer scaling correction in X axis"); + def->full_label = L("Printer scaling X axis correction"); + def->tooltip = L("Printer scaling correction in X axis"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloat(1.)); + + def = this->add("relative_correction_y", coFloat); + def->label = L("Printer scaling correction in Y axis"); + def->full_label = L("Printer scaling X axis correction"); + def->tooltip = L("Printer scaling correction in Y axis"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloat(1.)); + + def = this->add("relative_correction_z", coFloat); + def->label = L("Printer scaling correction in Z axis"); + def->full_label = L("Printer scaling X axis correction"); + def->tooltip = L("Printer scaling correction in Z axis"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloat(1.)); def = this->add("absolute_correction", coFloat); def->label = L("Printer absolute correction"); @@ -3163,6 +3209,13 @@ void PrintConfigDef::init_sla_params() // SLA Material settings. + + def = this->add("material_colour", coString); + def->label = L("Color"); + def->tooltip = L("This is only used in the Slic3r interface as a visual help."); + def->gui_type = ConfigOptionDef::GUIType::color; + def->set_default_value(new ConfigOptionString("#29B2B2")); + def = this->add("material_type", coString); def->label = L("SLA material type"); def->tooltip = L("SLA material type"); @@ -3269,7 +3322,28 @@ void PrintConfigDef::init_sla_params() def->tooltip = L("Correction for expansion"); def->min = 0; def->mode = comExpert; - def->set_default_value(new ConfigOptionFloats( { 1. , 1. } )); + def->set_default_value(new ConfigOptionFloats( { 1., 1., 1. } )); + + def = this->add("material_correction_x", coFloat); + def->full_label = L("Correction for expansion in X axis"); + def->tooltip = L("Correction for expansion in X axis"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloat(1.)); + + def = this->add("material_correction_y", coFloat); + def->full_label = L("Correction for expansion in Y axis"); + def->tooltip = L("Correction for expansion in Y axis"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloat(1.)); + + def = this->add("material_correction_z", coFloat); + def->full_label = L("Correction for expansion in Z axis"); + def->tooltip = L("Correction for expansion in Z axis"); + def->min = 0; + def->mode = comExpert; + def->set_default_value(new ConfigOptionFloat(1.)); def = this->add("material_notes", coString); def->label = L("SLA print material notes"); @@ -3662,6 +3736,19 @@ void PrintConfigDef::init_sla_params() def->max = 10; def->mode = comExpert; def->set_default_value(new ConfigOptionFloat(2.0)); + + def = this->add("material_print_speed", coEnum); + def->label = L("Print speed"); + def->tooltip = L( + "A slower printing profile might be necessary when using materials with higher viscosity " + "or with some hollowed parts. It slows down the tilt movement and adds a delay before exposure."); + def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); + def->enum_values.push_back("slow"); + def->enum_values.push_back("fast"); + def->enum_labels.push_back(L("Slow")); + def->enum_labels.push_back(L("Fast")); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionEnum(slamsSlow)); } void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &value) @@ -3726,7 +3813,16 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va opt_key = "printhost_apikey"; } else if (opt_key == "preset_name") { opt_key = "preset_names"; - } + } /*else if (opt_key == "material_correction" || opt_key == "relative_correction") { + ConfigOptionFloats p; + p.deserialize(value); + + if (p.values.size() < 3) { + double firstval = p.values.front(); + p.values.emplace(p.values.begin(), firstval); + value = p.serialize(); + } + }*/ // Ignore the following obsolete configuration keys: static std::set ignore = { @@ -3843,6 +3939,28 @@ void DynamicPrintConfig::normalize_fdm() } } +void handle_legacy_sla(DynamicPrintConfig &config) +{ + for (std::string corr : {"relative_correction", "material_correction"}) { + if (config.has(corr)) { + if (std::string corr_x = corr + "_x"; !config.has(corr_x)) { + auto* opt = config.opt(corr_x, true); + opt->value = config.opt(corr)->values[0]; + } + + if (std::string corr_y = corr + "_y"; !config.has(corr_y)) { + auto* opt = config.opt(corr_y, true); + opt->value = config.opt(corr)->values[0]; + } + + if (std::string corr_z = corr + "_z"; !config.has(corr_z)) { + auto* opt = config.opt(corr_z, true); + opt->value = config.opt(corr)->values[1]; + } + } + } +} + void DynamicPrintConfig::set_num_extruders(unsigned int num_extruders) { const auto &defaults = FullPrintConfig::defaults(); @@ -4261,7 +4379,7 @@ CLIMiscConfigDef::CLIMiscConfigDef() def = this->add("config_compatibility", coEnum); def->label = L("Forward-compatibility rule when loading configurations from config files and project files (3MF, AMF)."); - def->tooltip = L("This version of PrusaSlicer may not understand configurations produced by newest PrusaSlicer versions. " + def->tooltip = L("This version of PrusaSlicer may not understand configurations produced by the newest PrusaSlicer versions. " "For example, newer PrusaSlicer may extend the list of supported firmware flavors. One may decide to " "bail out or to substitute an unknown value with a default silently or verbosely."); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index d7409d12ce..68dbd68d35 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -224,6 +224,8 @@ public: { PrintConfigDef::handle_legacy(opt_key, value); } }; +void handle_legacy_sla(DynamicPrintConfig &config); + class StaticPrintConfig : public StaticConfig { public: @@ -913,6 +915,8 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionFloat, hollowing_closing_distance)) ) +enum SLAMaterialSpeed { slamsSlow, slamsFast }; + PRINT_CONFIG_CLASS_DEFINE( SLAMaterialConfig, @@ -924,6 +928,10 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionFloat, exposure_time)) ((ConfigOptionFloat, initial_exposure_time)) ((ConfigOptionFloats, material_correction)) + ((ConfigOptionFloat, material_correction_x)) + ((ConfigOptionFloat, material_correction_y)) + ((ConfigOptionFloat, material_correction_z)) + ((ConfigOptionEnum, material_print_speed)) ) PRINT_CONFIG_CLASS_DEFINE( @@ -940,6 +948,9 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, display_mirror_x)) ((ConfigOptionBool, display_mirror_y)) ((ConfigOptionFloats, relative_correction)) + ((ConfigOptionFloat, relative_correction_x)) + ((ConfigOptionFloat, relative_correction_y)) + ((ConfigOptionFloat, relative_correction_z)) ((ConfigOptionFloat, absolute_correction)) ((ConfigOptionFloat, elefant_foot_compensation)) ((ConfigOptionFloat, elefant_foot_min_width)) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index cd973ac9de..eee0c2abab 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2284,6 +2284,7 @@ void PrintObject::project_and_append_custom_facets( seam, out); else { std::vector projected; + // Support blockers or enforcers. Project downward facing painted areas upwards to their respective slicing plane. slice_mesh_slabs(custom_facets, zs_from_layers(this->layers()), this->trafo_centered() * mv->get_matrix(), nullptr, &projected, [](){}); // Merge these projections with the output, layer by layer. assert(! projected.empty()); diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index e2844a624c..84b2129389 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -538,7 +538,7 @@ template static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCancel throw_on_cancel) { // Returns MMU segmentation based on painting in MMU segmentation gizmo - std::vector>> segmentation = multi_material_segmentation_by_painting(print_object, throw_on_cancel); + std::vector> segmentation = multi_material_segmentation_by_painting(print_object, throw_on_cancel); assert(segmentation.size() == print_object.layer_count()); tbb::parallel_for( tbb::blocked_range(0, segmentation.size(), std::max(segmentation.size() / 128, size_t(1))), @@ -568,9 +568,7 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance bool layer_split = false; for (size_t extruder_id = 0; extruder_id < num_extruders; ++ extruder_id) { ByExtruder ®ion = by_extruder[extruder_id]; - for (const std::pair &colored_polygon : segmentation[layer_id]) - if (colored_polygon.second == extruder_id) - region.expolygons.emplace_back(std::move(colored_polygon.first)); + append(region.expolygons, std::move(segmentation[layer_id][extruder_id])); if (! region.expolygons.empty()) { region.bbox = get_extents(region.expolygons); layer_split = true; @@ -632,6 +630,13 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance if (mine.empty()) break; } + // Filter out unprintable polygons produced by subtraction multi-material painted regions from layerm.region(). + // ExPolygon returned from multi-material segmentation does not precisely match ExPolygons in layerm.region() + // (because of preprocessing of the input regions in multi-material segmentation). Therefore, subtraction from + // layerm.region() could produce a huge number of small unprintable regions for the model's base extruder. + // This could, on some models, produce bulges with the model's base color (#7109). + if (! mine.empty()) + mine = opening(union_ex(mine), float(scale_(5 * EPSILON)), float(scale_(5 * EPSILON))); if (! mine.empty()) { ByRegion &dst = by_region[layerm.region().print_object_region_id()]; if (dst.expolygons.empty()) { diff --git a/src/libslic3r/QuadricEdgeCollapse.cpp b/src/libslic3r/QuadricEdgeCollapse.cpp index 7efe15bb24..48a72e6d84 100644 --- a/src/libslic3r/QuadricEdgeCollapse.cpp +++ b/src/libslic3r/QuadricEdgeCollapse.cpp @@ -2,7 +2,6 @@ #include #include #include "MutablePriorityQueue.hpp" -#include "SimplifyMeshImpl.hpp" #include using namespace Slic3r; @@ -13,10 +12,47 @@ using namespace Slic3r; // only private namespace not neccessary be in .hpp namespace QuadricEdgeCollapse { + // SymetricMatrix + class SymMat { + using T = double; + static const constexpr size_t N = 10; + T m[N]; + public: + explicit SymMat(ArithmeticOnly c = T()) { std::fill(m, m + N, c); } + + // Make plane + SymMat(T a, T b, T c, T d) + { + m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d; + m[4] = b * b; m[5] = b * c; m[6] = b * d; + m[7] = c * c; m[8] = c * d; + m[9] = d * d; + } + + T operator[](int c) const { return m[c]; } + + // Determinant + T det(int a11, int a12, int a13, + int a21, int a22, int a23, + int a31, int a32, int a33) const + { + T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + + m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] - + m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33]; + + return det; + } + + const SymMat &operator+=(const SymMat &n) + { + for (size_t i = 0; i < N; ++i) m[i] += n[i]; + return *this; + } + }; + using Vertices = std::vector; using Triangle = stl_triangle_vertex_indices; using Indices = std::vector; - using SymMat = SimplifyMesh::implementation::SymetricMatrix; using ThrowOnCancel = std::function; using StatusFn = std::function; // smallest error caused by edges, identify smallest edge in triangle diff --git a/src/libslic3r/SLA/Hollowing.cpp b/src/libslic3r/SLA/Hollowing.cpp index 9cac7f63bc..b0d33a0cad 100644 --- a/src/libslic3r/SLA/Hollowing.cpp +++ b/src/libslic3r/SLA/Hollowing.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include @@ -132,7 +132,10 @@ InteriorPtr generate_interior(const TriangleMesh & mesh, // flip normals back... swap_normals(interior->mesh); - Slic3r::simplify_mesh(interior->mesh); + + // simplify mesh lossless + float loss_less_max_error = 2*std::numeric_limits::epsilon(); + its_quadric_edge_collapse(interior->mesh, 0U, &loss_less_max_error); its_compactify_vertices(interior->mesh); its_merge_vertices(interior->mesh); diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index 43ac958b59..55acd38465 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -807,7 +807,13 @@ bool SLAPrint::invalidate_state_by_config_options(const std::vector steps_full = { "initial_layer_height", "material_correction", + "material_correction_x", + "material_correction_y", + "material_correction_z", "relative_correction", + "relative_correction_x", + "relative_correction_y", + "relative_correction_z", "absolute_correction", "elefant_foot_compensation", "elefant_foot_min_width", @@ -1047,15 +1053,15 @@ Vec3d SLAPrint::relative_correction() const Vec3d corr(1., 1., 1.); if(printer_config().relative_correction.values.size() >= 2) { - corr.x() = printer_config().relative_correction.values[0]; - corr.y() = corr.x(); - corr.z() = printer_config().relative_correction.values[1]; + corr.x() = printer_config().relative_correction_x.value; + corr.y() = printer_config().relative_correction_y.value; + corr.z() = printer_config().relative_correction_z.value; } if(material_config().material_correction.values.size() >= 2) { - corr.x() *= material_config().material_correction.values[0]; - corr.y() = corr.x(); - corr.z() *= material_config().material_correction.values[1]; + corr.x() *= material_config().material_correction_x.value; + corr.y() *= material_config().material_correction_y.value; + corr.z() *= material_config().material_correction_z.value; } return corr; diff --git a/src/libslic3r/SLAPrintSteps.cpp b/src/libslic3r/SLAPrintSteps.cpp index adec5735a8..fa7348781d 100644 --- a/src/libslic3r/SLAPrintSteps.cpp +++ b/src/libslic3r/SLAPrintSteps.cpp @@ -559,7 +559,7 @@ void SLAPrint::Steps::slice_model(SLAPrintObject &po) if(po.m_config.supports_enable.getBool() || po.m_config.pad_enable.getBool()) { - po.m_supportdata.reset(new SLAPrintObject::SupportData(mesh)); + po.m_supportdata.reset(new SLAPrintObject::SupportData(po.get_mesh_to_print())); } } @@ -570,10 +570,8 @@ void SLAPrint::Steps::support_points(SLAPrintObject &po) // If supports are disabled, we can skip the model scan. if(!po.m_config.supports_enable.getBool()) return; - const TriangleMesh &mesh = po.get_mesh_to_slice(); - if (!po.m_supportdata) - po.m_supportdata.reset(new SLAPrintObject::SupportData(mesh)); + po.m_supportdata.reset(new SLAPrintObject::SupportData(po.get_mesh_to_print())); const ModelObject& mo = *po.m_model_object; diff --git a/src/libslic3r/SimplifyMesh.cpp b/src/libslic3r/SimplifyMesh.cpp deleted file mode 100644 index d30ecfec57..0000000000 --- a/src/libslic3r/SimplifyMesh.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "SimplifyMesh.hpp" -#include "SimplifyMeshImpl.hpp" - -namespace SimplifyMesh { - -template<> struct vertex_traits { - using coord_type = float; - using compute_type = double; - - static inline float x(const stl_vertex &v) { return v.x(); } - static inline float& x(stl_vertex &v) { return v.x(); } - - static inline float y(const stl_vertex &v) { return v.y(); } - static inline float& y(stl_vertex &v) { return v.y(); } - - static inline float z(const stl_vertex &v) { return v.z(); } - static inline float& z(stl_vertex &v) { return v.z(); } -}; - -template<> struct mesh_traits { - using vertex_t = stl_vertex; - static size_t face_count(const indexed_triangle_set &m) - { - return m.indices.size(); - } - static size_t vertex_count(const indexed_triangle_set &m) - { - return m.vertices.size(); - } - static vertex_t vertex(const indexed_triangle_set &m, size_t idx) - { - return m.vertices[idx]; - } - static void vertex(indexed_triangle_set &m, size_t idx, const vertex_t &v) - { - m.vertices[idx] = v; - } - static Index3 triangle(const indexed_triangle_set &m, size_t idx) - { - std::array t; - for (size_t i = 0; i < 3; ++i) t[i] = size_t(m.indices[idx](int(i))); - return t; - } - static void triangle(indexed_triangle_set &m, size_t fidx, const Index3 &t) - { - auto &face = m.indices[fidx]; - face(0) = int(t[0]); face(1) = int(t[1]); face(2) = int(t[2]); - } - static void update(indexed_triangle_set &m, size_t vc, size_t fc) - { - m.vertices.resize(vc); - m.indices.resize(fc); - } -}; - -} // namespace SimplifyMesh - -namespace Slic3r { - -void simplify_mesh(indexed_triangle_set &m) -{ - SimplifyMesh::implementation::SimplifiableMesh sm{&m}; - sm.simplify_mesh_lossless(); -} - -} diff --git a/src/libslic3r/SimplifyMesh.hpp b/src/libslic3r/SimplifyMesh.hpp deleted file mode 100644 index 23eb343d1c..0000000000 --- a/src/libslic3r/SimplifyMesh.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef MESHSIMPLIFY_HPP -#define MESHSIMPLIFY_HPP - -#include - -#include - -namespace Slic3r { - -void simplify_mesh(indexed_triangle_set &); - -// TODO: (but this can be done with IGL as well) -// void simplify_mesh(indexed_triangle_set &, int face_count, float agressiveness = 0.5f); - -template void simplify_mesh(TriangleMesh &m, Args &&...a) -{ - simplify_mesh(m.its, std::forward(a)...); - m = TriangleMesh{ std::move(m.its) }; -} - -} // namespace Slic3r - -#endif // MESHSIMPLIFY_H diff --git a/src/libslic3r/SimplifyMeshImpl.hpp b/src/libslic3r/SimplifyMeshImpl.hpp deleted file mode 100644 index d143b6d876..0000000000 --- a/src/libslic3r/SimplifyMeshImpl.hpp +++ /dev/null @@ -1,670 +0,0 @@ -// /////////////////////////////////////////// -// -// Mesh Simplification Tutorial -// -// (C) by Sven Forstmann in 2014 -// -// License : MIT -// http://opensource.org/licenses/MIT -// -// https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification -// -// 5/2016: Chris Rorden created minimal version for OSX/Linux/Windows compile -// https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification/ -// -// libslic3r refactor by tamasmeszaros - -#ifndef SIMPLIFYMESHIMPL_HPP -#define SIMPLIFYMESHIMPL_HPP - -#include -#include -#include -#include -#include - -#ifndef NDEBUG -#include -#include -#endif - -namespace SimplifyMesh { - -using Bary = std::array; -using Index3 = std::array; - -template struct vertex_traits { - using coord_type = typename Vertex::coord_type; - using compute_type = coord_type; - - static coord_type x(const Vertex &v); - static coord_type& x(Vertex &v); - - static coord_type y(const Vertex &v); - static coord_type& y(Vertex &v); - - static coord_type z(const Vertex &v); - static coord_type& z(Vertex &v); -}; - -template struct mesh_traits { - using vertex_t = typename Mesh::vertex_t; - - static size_t face_count(const Mesh &m); - static size_t vertex_count(const Mesh &m); - static vertex_t vertex(const Mesh &m, size_t vertex_idx); - static void vertex(Mesh &m, size_t vertex_idx, const vertex_t &v); - static Index3 triangle(const Mesh &m, size_t face_idx); - static void triangle(Mesh &m, size_t face_idx, const Index3 &t); - static void update(Mesh &m, size_t vertex_count, size_t face_count); -}; - -namespace implementation { - -// A shorter C++14 style form of the enable_if metafunction -template -using enable_if_t = typename std::enable_if::type; - -// Meta predicates for floating, integer and generic arithmetic types -template -using FloatingOnly = enable_if_t::value, O>; - -template -using IntegerOnly = enable_if_t::value, O>; - -template -using ArithmeticOnly = enable_if_t::value, O>; - -template< class T > -struct remove_cvref { - using type = typename std::remove_cv< - typename std::remove_reference::type>::type; -}; - -template< class T > -using remove_cvref_t = typename remove_cvref::type; - -template FloatingOnly is_approx(T val, T ref) { return std::abs(val - ref) < 1e-8; } -template IntegerOnly is_approx(T val, T ref) { val == ref; } - -template class SymetricMatrix { - static const constexpr size_t N = 10; -public: - - explicit SymetricMatrix(ArithmeticOnly c = T()) { std::fill(m, m + N, c); } - - // Make plane - SymetricMatrix(T a, T b, T c, T d) - { - m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d; - m[4] = b * b; m[5] = b * c; m[6] = b * d; - m[7] = c * c; m[8] = c * d; - m[9] = d * d; - } - - T operator[](int c) const { return m[c]; } - - // Determinant - T det(int a11, int a12, int a13, - int a21, int a22, int a23, - int a31, int a32, int a33) const - { - T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + - m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] - - m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33]; - - return det; - } - - const SymetricMatrix& operator+=(const SymetricMatrix& n) - { - for (size_t i = 0; i < N; ++i) m[i] += n[i]; - return *this; - } - - SymetricMatrix operator+(const SymetricMatrix& n) - { - SymetricMatrix self = *this; - return self += n; - } - - T m[N]; -}; - -template using TCoord = typename vertex_traits>::coord_type; -template using TCompute = typename vertex_traits>::compute_type; -template inline TCoord x(const V &v) { return vertex_traits>::x(v); } -template inline TCoord y(const V &v) { return vertex_traits>::y(v); } -template inline TCoord z(const V &v) { return vertex_traits>::z(v); } -template inline TCoord& x(V &v) { return vertex_traits>::x(v); } -template inline TCoord& y(V &v) { return vertex_traits>::y(v); } -template inline TCoord& z(V &v) { return vertex_traits>::z(v); } -template using TVertex = typename mesh_traits>::vertex_t; -template using TMeshCoord = TCoord>; - -template TCompute dot(const Vertex &v1, const Vertex &v2) -{ - return TCompute(x(v1)) * x(v2) + - TCompute(y(v1)) * y(v2) + - TCompute(z(v1)) * z(v2); -} - -template Vertex cross(const Vertex &a, const Vertex &b) -{ - return Vertex{y(a) * z(b) - z(a) * y(b), - z(a) * x(b) - x(a) * z(b), - x(a) * y(b) - y(a) * x(b)}; -} - -template TCompute lengthsq(const Vertex &v) -{ - return TCompute(x(v)) * x(v) + TCompute(y(v)) * y(v) + - TCompute(z(v)) * z(v); -} - -template void normalize(Vertex &v) -{ - double square = std::sqrt(lengthsq(v)); - x(v) /= square; y(v) /= square; z(v) /= square; -} - -using Bary = std::array; - -template -Bary barycentric(const Vertex &p, const Vertex &a, const Vertex &b, const Vertex &c) -{ - Vertex v0 = (b - a); - Vertex v1 = (c - a); - Vertex v2 = (p - a); - - double d00 = dot(v0, v0); - double d01 = dot(v0, v1); - double d11 = dot(v1, v1); - double d20 = dot(v2, v0); - double d21 = dot(v2, v1); - double denom = d00 * d11 - d01 * d01; - double v = (d11 * d20 - d01 * d21) / denom; - double w = (d00 * d21 - d01 * d20) / denom; - double u = 1.0 - v - w; - - return {u, v, w}; -} - -template class SimplifiableMesh { - Mesh *m_mesh; - - using Vertex = TVertex; - using Coord = TMeshCoord; - using HiPrecison = TCompute>; - using SymMat = SymetricMatrix; - - struct FaceInfo { - size_t idx; - double err[4] = {0.}; - bool deleted = false, dirty = false; - Vertex n; - explicit FaceInfo(size_t id): idx(id) {} - }; - - struct VertexInfo { - size_t idx; - size_t tstart = 0, tcount = 0; - bool border = false; - SymMat q; - explicit VertexInfo(size_t id): idx(id) {} - }; - - struct Ref { size_t face; size_t vertex; }; - - std::vector m_refs; - std::vector m_faceinfo; - std::vector m_vertexinfo; - - void compact_faces(); - void compact(); - - size_t mesh_vcount() const { return mesh_traits::vertex_count(*m_mesh); } - size_t mesh_facecount() const { return mesh_traits::face_count(*m_mesh); } - - size_t vcount() const { return m_vertexinfo.size(); } - - inline Vertex read_vertex(size_t vi) const - { - return mesh_traits::vertex(*m_mesh, vi); - } - - inline Vertex read_vertex(const VertexInfo &vinf) const - { - return read_vertex(vinf.idx); - } - - inline void write_vertex(size_t idx, const Vertex &v) const - { - mesh_traits::vertex(*m_mesh, idx, v); - } - - inline void write_vertex(const VertexInfo &vinf, const Vertex &v) const - { - write_vertex(vinf.idx, v); - } - - inline Index3 read_triangle(size_t fi) const - { - return mesh_traits::triangle(*m_mesh, fi); - } - - inline Index3 read_triangle(const FaceInfo &finf) const - { - return read_triangle(finf.idx); - } - - inline void write_triangle(size_t idx, const Index3 &t) - { - return mesh_traits::triangle(*m_mesh, idx, t); - } - - inline void write_triangle(const FaceInfo &finf, const Index3 &t) - { - return write_triangle(finf.idx, t); - } - - inline std::array triangle_vertices(const Index3 &f) const - { - std::array p; - for (size_t i = 0; i < 3; ++i) p[i] = read_vertex(f[i]); - return p; - } - - // Error between vertex and Quadric - static double vertex_error(const SymMat &q, const Vertex &v) - { - Coord _x = x(v) , _y = y(v), _z = z(v); - return q[0] * _x * _x + 2 * q[1] * _x * _y + 2 * q[2] * _x * _z + - 2 * q[3] * _x + q[4] * _y * _y + 2 * q[5] * _y * _z + - 2 * q[6] * _y + q[7] * _z * _z + 2 * q[8] * _z + q[9]; - } - - // Error for one edge - double calculate_error(size_t id_v1, size_t id_v2, Vertex &p_result); - - void calculate_error(FaceInfo &fi) - { - Vertex p; - Index3 t = read_triangle(fi); - for (size_t j = 0; j < 3; ++j) - fi.err[j] = calculate_error(t[j], t[(j + 1) % 3], p); - - fi.err[3] = std::min(fi.err[0], std::min(fi.err[1], fi.err[2])); - } - - void update_mesh(int iteration); - - // Update triangle connections and edge error after a edge is collapsed - void update_triangles(size_t i, VertexInfo &vi, std::vector &deleted, int &deleted_triangles); - - // Check if a triangle flips when this edge is removed - bool flipped(const Vertex &p, size_t i0, size_t i1, VertexInfo &v0, VertexInfo &v1, std::vector &deleted); - -public: - - explicit SimplifiableMesh(Mesh *m) : m_mesh{m} - { - static_assert( - std::is_arithmetic::value, - "Coordinate type of mesh has to be an arithmetic type!"); - - m_faceinfo.reserve(mesh_traits::face_count(*m)); - m_vertexinfo.reserve(mesh_traits::vertex_count(*m)); - for (size_t i = 0; i < mesh_facecount(); ++i) m_faceinfo.emplace_back(i); - for (size_t i = 0; i < mesh_vcount(); ++i) m_vertexinfo.emplace_back(i); - - } - - template void simplify_mesh_lossless(ProgressFn &&fn); - void simplify_mesh_lossless() { simplify_mesh_lossless([](int){}); } -}; - -template void SimplifiableMesh::compact_faces() -{ - auto it = std::remove_if(m_faceinfo.begin(), m_faceinfo.end(), - [](const FaceInfo &inf) { return inf.deleted; }); - - m_faceinfo.erase(it, m_faceinfo.end()); -} - -template void SimplifiableMesh::compact() -{ - for (auto &vi : m_vertexinfo) vi.tcount = 0; - - compact_faces(); - - for (FaceInfo &fi : m_faceinfo) - for (size_t vidx : read_triangle(fi)) m_vertexinfo[vidx].tcount = 1; - - size_t dst = 0; - for (VertexInfo &vi : m_vertexinfo) { - if (vi.tcount) { - vi.tstart = dst; - write_vertex(dst++, read_vertex(vi)); - } - } - - size_t vertex_count = dst; - - dst = 0; - for (const FaceInfo &fi : m_faceinfo) { - Index3 t = read_triangle(fi); - for (size_t &idx : t) idx = m_vertexinfo[idx].tstart; - write_triangle(dst++, t); - } - - mesh_traits::update(*m_mesh, vertex_count, m_faceinfo.size()); -} - -template -double SimplifiableMesh::calculate_error(size_t id_v1, size_t id_v2, Vertex &p_result) -{ - // compute interpolated vertex - - SymMat q = m_vertexinfo[id_v1].q + m_vertexinfo[id_v2].q; - - bool border = m_vertexinfo[id_v1].border & m_vertexinfo[id_v2].border; - double error = 0; - HiPrecison det = q.det(0, 1, 2, 1, 4, 5, 2, 5, 7); - - if (!is_approx(det, HiPrecison(0)) && !border) - { - // q_delta is invertible - x(p_result) = Coord(-1) / det * q.det(1, 2, 3, 4, 5, 6, 5, 7, 8); // vx = A41/det(q_delta) - y(p_result) = Coord( 1) / det * q.det(0, 2, 3, 1, 5, 6, 2, 7, 8); // vy = A42/det(q_delta) - z(p_result) = Coord(-1) / det * q.det(0, 1, 3, 1, 4, 6, 2, 5, 8); // vz = A43/det(q_delta) - - error = vertex_error(q, p_result); - } else { - // det = 0 -> try to find best result - Vertex p1 = read_vertex(id_v1); - Vertex p2 = read_vertex(id_v2); - Vertex p3 = (p1 + p2) / 2; - double error1 = vertex_error(q, p1); - double error2 = vertex_error(q, p2); - double error3 = vertex_error(q, p3); - error = std::min(error1, std::min(error2, error3)); - - if (is_approx(error1, error)) p_result = p1; - if (is_approx(error2, error)) p_result = p2; - if (is_approx(error3, error)) p_result = p3; - } - - return error; -} - -template void SimplifiableMesh::update_mesh(int iteration) -{ - if (iteration > 0) compact_faces(); - - assert(mesh_vcount() == m_vertexinfo.size()); - - // - // Init Quadrics by Plane & Edge Errors - // - // required at the beginning ( iteration == 0 ) - // recomputing during the simplification is not required, - // but mostly improves the result for closed meshes - // - if (iteration == 0) { - - for (VertexInfo &vinf : m_vertexinfo) vinf.q = SymMat{}; - for (FaceInfo &finf : m_faceinfo) { - Index3 t = read_triangle(finf); - std::array p = triangle_vertices(t); - Vertex n = cross(Vertex(p[1] - p[0]), Vertex(p[2] - p[0])); - normalize(n); - finf.n = n; - - for (size_t fi : t) - m_vertexinfo[fi].q += SymMat(x(n), y(n), z(n), -dot(n, p[0])); - - calculate_error(finf); - } - } - - // Init Reference ID list - for (VertexInfo &vi : m_vertexinfo) { vi.tstart = 0; vi.tcount = 0; } - - for (FaceInfo &fi : m_faceinfo) - for (size_t vidx : read_triangle(fi)) - m_vertexinfo[vidx].tcount++; - - size_t tstart = 0; - for (VertexInfo &vi : m_vertexinfo) { - vi.tstart = tstart; - tstart += vi.tcount; - vi.tcount = 0; - } - - // Write References - m_refs.resize(m_faceinfo.size() * 3); - for (size_t i = 0; i < m_faceinfo.size(); ++i) { - const FaceInfo &fi = m_faceinfo[i]; - Index3 t = read_triangle(fi); - for (size_t j = 0; j < 3; ++j) { - VertexInfo &vi = m_vertexinfo[t[j]]; - - assert(vi.tstart + vi.tcount < m_refs.size()); - - Ref &ref = m_refs[vi.tstart + vi.tcount]; - ref.face = i; - ref.vertex = j; - vi.tcount++; - } - } - - // Identify boundary : vertices[].border=0,1 - if (iteration == 0) { - for (VertexInfo &vi: m_vertexinfo) vi.border = false; - - std::vector vcount, vids; - - for (VertexInfo &vi: m_vertexinfo) { - vcount.clear(); - vids.clear(); - - for(size_t j = 0; j < vi.tcount; ++j) { - assert(vi.tstart + j < m_refs.size()); - FaceInfo &fi = m_faceinfo[m_refs[vi.tstart + j].face]; - Index3 t = read_triangle(fi); - - for (size_t fid : t) { - size_t ofs=0; - while (ofs < vcount.size()) - { - if (vids[ofs] == fid) break; - ofs++; - } - if (ofs == vcount.size()) - { - vcount.emplace_back(1); - vids.emplace_back(fid); - } - else - vcount[ofs]++; - } - } - - for (size_t j = 0; j < vcount.size(); ++j) - if(vcount[j] == 1) m_vertexinfo[vids[j]].border = true; - } - } -} - -template -void SimplifiableMesh::update_triangles(size_t i0, - VertexInfo & vi, - std::vector &deleted, - int &deleted_triangles) -{ - Vertex p; - for (size_t k = 0; k < vi.tcount; ++k) { - assert(vi.tstart + k < m_refs.size()); - - Ref &r = m_refs[vi.tstart + k]; - FaceInfo &fi = m_faceinfo[r.face]; - - if (fi.deleted) continue; - - if (deleted[k]) { - fi.deleted = true; - deleted_triangles++; - continue; - } - - Index3 t = read_triangle(fi); - t[r.vertex] = i0; - write_triangle(fi, t); - - fi.dirty = true; - fi.err[0] = calculate_error(t[0], t[1], p); - fi.err[1] = calculate_error(t[1], t[2], p); - fi.err[2] = calculate_error(t[2], t[0], p); - fi.err[3] = std::min(fi.err[0], std::min(fi.err[1], fi.err[2])); - m_refs.emplace_back(r); - } -} - -template -bool SimplifiableMesh::flipped(const Vertex & p, - size_t /*i0*/, - size_t i1, - VertexInfo & v0, - VertexInfo & /*v1*/, - std::vector &deleted) -{ - for (size_t k = 0; k < v0.tcount; ++k) { - size_t ridx = v0.tstart + k; - assert(ridx < m_refs.size()); - - FaceInfo &fi = m_faceinfo[m_refs[ridx].face]; - if (fi.deleted) continue; - - Index3 t = read_triangle(fi); - int s = m_refs[ridx].vertex; - size_t id1 = t[(s+1) % 3]; - size_t id2 = t[(s+2) % 3]; - - if(id1 == i1 || id2 == i1) // delete ? - { - deleted[k] = true; - continue; - } - - Vertex d1 = read_vertex(id1) - p; - normalize(d1); - Vertex d2 = read_vertex(id2) - p; - normalize(d2); - - if (std::abs(dot(d1, d2)) > 0.999) return true; - - Vertex n = cross(d1, d2); - normalize(n); - - deleted[k] = false; - if (dot(n, fi.n) < 0.2) return true; - } - - return false; -} - -template -template void SimplifiableMesh::simplify_mesh_lossless(Fn &&fn) -{ - // init - for (FaceInfo &fi : m_faceinfo) fi.deleted = false; - - // main iteration loop - int deleted_triangles=0; - std::vector deleted0, deleted1; - - for (int iteration = 0; iteration < 9999; iteration ++) { - // update mesh constantly - update_mesh(iteration); - - // clear dirty flag - for (FaceInfo &fi : m_faceinfo) fi.dirty = false; - - // - // All triangles with edges below the threshold will be removed - // - // The following numbers works well for most models. - // If it does not, try to adjust the 3 parameters - // - double threshold = std::numeric_limits::epsilon(); //1.0E-3 EPS; // Really? (tm) - - fn(iteration); - - for (FaceInfo &fi : m_faceinfo) { - if (fi.err[3] > threshold || fi.deleted || fi.dirty) continue; - - for (size_t j = 0; j < 3; ++j) { - if (fi.err[j] > threshold) continue; - - Index3 t = read_triangle(fi); - size_t i0 = t[j]; - VertexInfo &v0 = m_vertexinfo[i0]; - - size_t i1 = t[(j + 1) % 3]; - VertexInfo &v1 = m_vertexinfo[i1]; - - // Border check - if(v0.border != v1.border) continue; - - // Compute vertex to collapse to - Vertex p; - calculate_error(i0, i1, p); - - deleted0.resize(v0.tcount); // normals temporarily - deleted1.resize(v1.tcount); // normals temporarily - - // don't remove if flipped - if (flipped(p, i0, i1, v0, v1, deleted0)) continue; - if (flipped(p, i1, i0, v1, v0, deleted1)) continue; - - // not flipped, so remove edge - write_vertex(v0, p); - v0.q = v1.q + v0.q; - size_t tstart = m_refs.size(); - - update_triangles(i0, v0, deleted0, deleted_triangles); - update_triangles(i0, v1, deleted1, deleted_triangles); - - assert(m_refs.size() >= tstart); - - size_t tcount = m_refs.size() - tstart; - - if(tcount <= v0.tcount) - { - // save ram - if (tcount) { - auto from = m_refs.begin() + tstart, to = from + tcount; - std::copy(from, to, m_refs.begin() + v0.tstart); - } - } - else - // append - v0.tstart = tstart; - - v0.tcount = tcount; - break; - } - } - - if (deleted_triangles <= 0) break; - deleted_triangles = 0; - } - - compact(); -} - -} // namespace implementation -} // namespace SimplifyMesh - -#endif // SIMPLIFYMESHIMPL_HPP diff --git a/src/libslic3r/SlicesToTriangleMesh.cpp b/src/libslic3r/SlicesToTriangleMesh.cpp index 7a2975d12d..3b55cf066b 100644 --- a/src/libslic3r/SlicesToTriangleMesh.cpp +++ b/src/libslic3r/SlicesToTriangleMesh.cpp @@ -1,3 +1,4 @@ +#include #include "SlicesToTriangleMesh.hpp" @@ -22,11 +23,16 @@ inline indexed_triangle_set wall_strip(const Polygon &poly, ret.vertices.reserve(ret.vertices.size() + 2 *offs); + // The expression unscaled(p).cast().eval() is important here + // as it ensures identical conversion of 2D scaled coordinates to float 3D + // to that used by the tesselation. This way, the duplicated vertices in the + // output mesh can be found with the == operator of the points. + // its_merge_vertices will then reliably remove the duplicates. for (const Point &p : poly.points) - ret.vertices.emplace_back(to_3d(unscaled(p), float(lower_z_mm))); + ret.vertices.emplace_back(to_3d(unscaled(p).cast().eval(), float(lower_z_mm))); for (const Point &p : poly.points) - ret.vertices.emplace_back(to_3d(unscaled(p), float(upper_z_mm))); + ret.vertices.emplace_back(to_3d(unscaled(p).cast().eval(), float(upper_z_mm))); for (size_t i = startidx + 1; i < startidx + offs; ++i) { ret.indices.emplace_back(i - 1, i, i + offs - 1); @@ -84,12 +90,14 @@ indexed_triangle_set slices_to_mesh( const ExPolygons &upper = slices[i + 1]; const ExPolygons &lower = slices[i]; - ExPolygons dff1 = diff_ex(lower, upper); - ExPolygons dff2 = diff_ex(upper, lower); - its_merge(layers[i], triangulate_expolygons_3d(dff1, grid[i], NORMALS_UP)); - its_merge(layers[i], triangulate_expolygons_3d(dff2, grid[i], NORMALS_DOWN)); + // Small 0 area artefacts can be created by diff_ex, and the + // tesselation also can create 0 area triangles. These will be removed + // by its_remove_degenerate_faces. + ExPolygons free_top = diff_ex(lower, upper); + ExPolygons overhang = diff_ex(upper, lower); + its_merge(layers[i], triangulate_expolygons_3d(free_top, grid[i], NORMALS_UP)); + its_merge(layers[i], triangulate_expolygons_3d(overhang, grid[i], NORMALS_DOWN)); its_merge(layers[i], straight_walls(upper, grid[i], grid[i + 1])); - }); auto merge_fn = []( const indexed_triangle_set &a, const indexed_triangle_set &b ) { @@ -99,37 +107,30 @@ indexed_triangle_set slices_to_mesh( auto ret = execution::reduce(ex_tbb, layers.begin(), layers.end(), indexed_triangle_set{}, merge_fn); - // sla::Contour3D ret = tbb::parallel_reduce( - // tbb::blocked_range(layers.begin(), layers.end()), - // sla::Contour3D{}, - // [](const tbb::blocked_range& r, sla::Contour3D - // init) { - // for(auto it = r.begin(); it != r.end(); ++it ) - // init.merge(*it); return init; - // }, - // []( const sla::Contour3D &a, const sla::Contour3D &b ) { - // sla::Contour3D res{a}; res.merge(b); return res; - // }); - its_merge(ret, triangulate_expolygons_3d(slices.front(), zmin, NORMALS_DOWN)); its_merge(ret, straight_walls(slices.front(), zmin, grid.front())); its_merge(ret, triangulate_expolygons_3d(slices.back(), grid.back(), NORMALS_UP)); - + + // FIXME: these repairs do not fix the mesh entirely. There will be cracks + // in the output. It is very hard to do the meshing in a way that does not + // leave errors. + its_merge_vertices(ret); + its_remove_degenerate_faces(ret); + its_compactify_vertices(ret); + return ret; } void slices_to_mesh(indexed_triangle_set & mesh, - const std::vector &slices, - double zmin, - double lh, - double ilh) + const std::vector &slices, + double zmin, + double lh, + double ilh) { - std::vector wall_meshes(slices.size()); std::vector grid(slices.size(), zmin + ilh); - - for (size_t i = 1; i < grid.size(); ++i) - grid[i] = grid[i - 1] + lh; - + + for (size_t i = 1; i < grid.size(); ++i) grid[i] = grid[i - 1] + lh; + indexed_triangle_set cntr = slices_to_mesh(slices, zmin, grid); its_merge(mesh, cntr); } diff --git a/src/libslic3r/SlicesToTriangleMesh.hpp b/src/libslic3r/SlicesToTriangleMesh.hpp index 2fd1778851..57b540d9fb 100644 --- a/src/libslic3r/SlicesToTriangleMesh.hpp +++ b/src/libslic3r/SlicesToTriangleMesh.hpp @@ -7,10 +7,10 @@ namespace Slic3r { void slices_to_mesh(indexed_triangle_set & mesh, - const std::vector &slices, - double zmin, - double lh, - double ilh); + const std::vector &slices, + double zmin, + double lh, + double ilh); inline indexed_triangle_set slices_to_mesh( const std::vector &slices, double zmin, double lh, double ilh) diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index 9e1eb3e75e..7ef289757d 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -383,7 +383,9 @@ PrintObjectSupportMaterial::PrintObjectSupportMaterial(const PrintObject *object SupportMaterialPattern support_pattern = m_object_config->support_material_pattern; m_support_params.with_sheath = m_object_config->support_material_with_sheath; - m_support_params.base_fill_pattern = support_pattern == smpHoneycomb ? ipHoneycomb : (m_support_params.support_density > 0.95 ? ipRectilinear : ipSupportBase); + m_support_params.base_fill_pattern = + support_pattern == smpHoneycomb ? ipHoneycomb : + m_support_params.support_density > 0.95 || m_support_params.with_sheath ? ipRectilinear : ipSupportBase; m_support_params.interface_fill_pattern = (m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase); m_support_params.contact_fill_pattern = (m_object_config->support_material_interface_pattern == smipAuto && m_slicing_params.soluble_interface) || @@ -1645,26 +1647,29 @@ static inline std::tuple detect_overhangs( polygons_append(contact_polygons, diff_polygons); } // for each layer.region - if (has_enforcer) { - // Enforce supports (as if with 90 degrees of slope) for the regions covered by the enforcer meshes. -#ifdef SLIC3R_DEBUG - ExPolygons enforcers_united = union_ex(annotations.enforcers_layers[layer_id]); -#endif // SLIC3R_DEBUG - enforcer_polygons = diff(intersection(layer.lslices, annotations.enforcers_layers[layer_id]), - // Inflate just a tiny bit to avoid intersection of the overhang areas with the object. - expand(lower_layer_polygons, 0.05f * no_interface_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)); -#ifdef SLIC3R_DEBUG - SVG::export_expolygons(debug_out_path("support-top-contacts-enforcers-run%d-layer%d-z%f.svg", iRun, layer_id, layer.print_z), - { { layer.lslices, { "layer.lslices", "gray", 0.2f } }, - { { union_ex(lower_layer_polygons) }, { "lower_layer_polygons", "green", 0.5f } }, - { enforcers_united, { "enforcers", "blue", 0.5f } }, - { { union_safety_offset_ex(enforcer_polygons) }, { "new_contacts", "red", "black", "", scaled(0.1f), 0.5f } } }); -#endif /* SLIC3R_DEBUG */ - polygons_append(overhang_polygons, enforcer_polygons); - slices_margin_update(std::min(lower_layer_offset, float(scale_(gap_xy))), no_interface_offset); - polygons_append(contact_polygons, diff(enforcer_polygons, slices_margin.all_polygons.empty() ? slices_margin.polygons : slices_margin.all_polygons)); + if (has_enforcer) + if (const Polygons &enforcer_polygons_src = annotations.enforcers_layers[layer_id]; ! enforcer_polygons_src.empty()) { + // Enforce supports (as if with 90 degrees of slope) for the regions covered by the enforcer meshes. + #ifdef SLIC3R_DEBUG + ExPolygons enforcers_united = union_ex(enforcer_polygons_src); + #endif // SLIC3R_DEBUG + enforcer_polygons = diff(intersection(layer.lslices, enforcer_polygons_src), + // Inflate just a tiny bit to avoid intersection of the overhang areas with the object. + expand(lower_layer_polygons, 0.05f * no_interface_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)); + #ifdef SLIC3R_DEBUG + SVG::export_expolygons(debug_out_path("support-top-contacts-enforcers-run%d-layer%d-z%f.svg", iRun, layer_id, layer.print_z), + { { layer.lslices, { "layer.lslices", "gray", 0.2f } }, + { { union_ex(lower_layer_polygons) }, { "lower_layer_polygons", "green", 0.5f } }, + { enforcers_united, { "enforcers", "blue", 0.5f } }, + { { union_safety_offset_ex(enforcer_polygons) }, { "new_contacts", "red", "black", "", scaled(0.1f), 0.5f } } }); + #endif /* SLIC3R_DEBUG */ + if (! enforcer_polygons.empty()) { + polygons_append(overhang_polygons, enforcer_polygons); + slices_margin_update(std::min(lower_layer_offset, float(scale_(gap_xy))), no_interface_offset); + polygons_append(contact_polygons, diff(enforcer_polygons, slices_margin.all_polygons.empty() ? slices_margin.polygons : slices_margin.all_polygons)); + } + } } - } return std::make_tuple(std::move(overhang_polygons), std::move(contact_polygons), std::move(enforcer_polygons), no_interface_offset); } @@ -4057,7 +4062,8 @@ void PrintObjectSupportMaterial::generate_toolpaths( // Pointer to the 1st layer interface filler. auto filler_first_layer = filler_first_layer_ptr ? filler_first_layer_ptr.get() : filler_interface.get(); // Filler for the base interface (to be used for soluble interface / non soluble base, to produce non soluble interface layer below soluble interface layer). - auto filler_base_interface = std::unique_ptr(base_interface_layers.empty() ? nullptr : Fill::new_from_type(m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase)); + auto filler_base_interface = std::unique_ptr(base_interface_layers.empty() ? nullptr : + Fill::new_from_type(m_support_params.interface_density > 0.95 || m_support_params.with_sheath ? ipRectilinear : ipSupportBase)); auto filler_support = std::unique_ptr(Fill::new_from_type(m_support_params.base_fill_pattern)); filler_interface->set_bounding_box(bbox_object); if (filler_first_layer_ptr) diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index b22448a88b..39f1fa4c79 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -74,16 +74,22 @@ //==================== -// 2.4.0.alpha4 techs +// 2.4.0.beta1 techs //==================== -#define ENABLE_2_4_0_ALPHA4 1 +#define ENABLE_2_4_0_BETA1 1 // Enable rendering modifiers and similar objects always as transparent -#define ENABLE_MODIFIERS_ALWAYS_TRANSPARENT (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_MODIFIERS_ALWAYS_TRANSPARENT (1 && ENABLE_2_4_0_BETA1) -// Enable the fix for the detection of the out of bed state for sinking objects -// and detection of out of bed using the bed perimeter -#define ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS (1 && ENABLE_2_4_0_ALPHA4) +//==================== +// 2.4.0.beta2 techs +//==================== +#define ENABLE_2_4_0_BETA2 1 + +// Enable modified ImGuiWrapper::slider_float() to create a compound widget where +// an additional button can be used to set the keyboard focus into the slider +// to allow the user to type in the desired value +#define ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT (1 && ENABLE_2_4_0_BETA2) #endif // _prusaslicer_technologies_h_ diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index fb2621225a..5eafd68842 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -4,6 +4,7 @@ #include "MeshSplitImpl.hpp" #include "ClipperUtils.hpp" #include "Geometry.hpp" +#include "Geometry/ConvexHull.hpp" #include "Point.hpp" #include "Execution/ExecutionTBB.hpp" #include "Execution/ExecutionSeq.hpp" @@ -435,30 +436,56 @@ BoundingBoxf3 TriangleMesh::transformed_bounding_box(const Transform3d &trafo) c return bbox; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -BoundingBoxf3 TriangleMesh::transformed_bounding_box(const Transform3d& trafo, double world_min_z) const +BoundingBoxf3 TriangleMesh::transformed_bounding_box(const Transform3d& trafod, double world_min_z) const { - BoundingBoxf3 bbox; - const Transform3f ftrafo = trafo.cast(); - for (const stl_triangle_vertex_indices& tri : its.indices) { - const Vec3f pts[3] = { ftrafo * its.vertices[tri(0)], ftrafo * its.vertices[tri(1)], ftrafo * its.vertices[tri(2)] }; - int iprev = 2; - for (int iedge = 0; iedge < 3; ++iedge) { - const Vec3f& p1 = pts[iprev]; - const Vec3f& p2 = pts[iedge]; - if ((p1.z() < world_min_z && p2.z() > world_min_z) || (p2.z() < world_min_z && p1.z() > world_min_z)) { - // Edge crosses the z plane. Calculate intersection point with the plane. - const float t = (world_min_z - p1.z()) / (p2.z() - p1.z()); - bbox.merge(Vec3f(p1.x() + (p2.x() - p1.x()) * t, p1.y() + (p2.y() - p1.y()) * t, world_min_z).cast()); - } - if (p2.z() >= world_min_z) - bbox.merge(p2.cast()); - iprev = iedge; + // 1) Allocate transformed vertices with their position with respect to print bed surface. + std::vector sides; + size_t num_above = 0; + Eigen::AlignedBox bbox; + Transform3f trafo = trafod.cast(); + sides.reserve(its.vertices.size()); + for (const stl_vertex &v : this->its.vertices) { + const stl_vertex pt = trafo * v; + const int sign = pt.z() > world_min_z ? 1 : pt.z() < world_min_z ? -1 : 0; + sides.emplace_back(sign); + if (sign >= 0) { + // Vertex above or on print bed surface. Test whether it is inside the build volume. + ++ num_above; + bbox.extend(pt); } } - return bbox; + + // 2) Calculate intersections of triangle edges with the build surface. + if (num_above < its.vertices.size()) { + // Not completely above the build surface and status may still change by testing edges intersecting the build platform. + for (const stl_triangle_vertex_indices &tri : its.indices) { + const int s[3] = { sides[tri(0)], sides[tri(1)], sides[tri(2)] }; + if (std::min(s[0], std::min(s[1], s[2])) < 0 && std::max(s[0], std::max(s[1], s[2])) > 0) { + // Some edge of this triangle intersects the build platform. Calculate the intersection. + int iprev = 2; + for (int iedge = 0; iedge < 3; ++ iedge) { + if (s[iprev] * s[iedge] == -1) { + // edge intersects the build surface. Calculate intersection point. + const stl_vertex p1 = trafo * its.vertices[tri(iprev)]; + const stl_vertex p2 = trafo * its.vertices[tri(iedge)]; + // Edge crosses the z plane. Calculate intersection point with the plane. + const float t = (world_min_z - p1.z()) / (p2.z() - p1.z()); + bbox.extend(Vec3f(p1.x() + (p2.x() - p1.x()) * t, p1.y() + (p2.y() - p1.y()) * t, world_min_z)); + } + iprev = iedge; + } + } + } + } + + BoundingBoxf3 out; + if (! bbox.isEmpty()) { + out.min = bbox.min().cast(); + out.max = bbox.max().cast(); + out.defined = true; + }; + return out; } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS TriangleMesh TriangleMesh::convex_hull_3d() const { @@ -705,22 +732,16 @@ void its_flip_triangles(indexed_triangle_set &its) int its_remove_degenerate_faces(indexed_triangle_set &its, bool shrink_to_fit) { - int last = 0; - for (int i = 0; i < int(its.indices.size()); ++ i) { - const stl_triangle_vertex_indices &face = its.indices[i]; - if (face(0) != face(1) && face(0) != face(2) && face(1) != face(2)) { - if (last < i) - its.indices[last] = its.indices[i]; - ++ last; - } - } - int removed = int(its.indices.size()) - last; - if (removed) { - its.indices.erase(its.indices.begin() + last, its.indices.end()); - // Optionally shrink the vertices. - if (shrink_to_fit) - its.indices.shrink_to_fit(); - } + auto it = std::remove_if(its.indices.begin(), its.indices.end(), [](auto &face) { + return face(0) == face(1) || face(0) == face(2) || face(1) == face(2); + }); + + int removed = std::distance(it, its.indices.end()); + its.indices.erase(it, its.indices.end()); + + if (removed && shrink_to_fit) + its.indices.shrink_to_fit(); + return removed; } @@ -1196,11 +1217,11 @@ std::vector its_split(const indexed_triangle_set &its) } // Number of disconnected patches (faces are connected if they share an edge, shared edge defined with 2 shared vertex indices). -bool its_number_of_patches(const indexed_triangle_set &its) +size_t its_number_of_patches(const indexed_triangle_set &its) { return its_number_of_patches<>(its); } -bool its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors) +size_t its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors) { return its_number_of_patches<>(ItsNeighborsWrapper{ its, face_neighbors }); } diff --git a/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp index 951e351fee..3a0b2c2cec 100644 --- a/src/libslic3r/TriangleMesh.hpp +++ b/src/libslic3r/TriangleMesh.hpp @@ -125,10 +125,8 @@ public: BoundingBoxf3 bounding_box() const; // Returns the bbox of this TriangleMesh transformed by the given transformation BoundingBoxf3 transformed_bounding_box(const Transform3d &trafo) const; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // Variant returning the bbox of the part of this TriangleMesh above the given world_min_z BoundingBoxf3 transformed_bounding_box(const Transform3d& trafo, double world_min_z) const; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // Return the size of the mesh in coordinates. Vec3d size() const { return m_stats.size.cast(); } /// Return the center of the related bounding box. @@ -219,8 +217,8 @@ std::vector its_split(const indexed_triangle_set &its); std::vector its_split(const indexed_triangle_set &its, std::vector &face_neighbors); // Number of disconnected patches (faces are connected if they share an edge, shared edge defined with 2 shared vertex indices). -bool its_number_of_patches(const indexed_triangle_set &its); -bool its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors); +size_t its_number_of_patches(const indexed_triangle_set &its); +size_t its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors); // Same as its_number_of_patches(its) > 1, but faster. bool its_is_splittable(const indexed_triangle_set &its); bool its_is_splittable(const indexed_triangle_set &its, const std::vector &face_neighbors); diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index e61128c64f..38db180434 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -458,23 +458,33 @@ void slice_facet_with_slabs( // Slicing a horizontal triangle with a slicing plane. The triangle has to be upwards facing for ProjectionFromTop // and downwards facing for ! ProjectionFromTop. assert(min_layer != max_layer); - size_t line_id = min_layer - zs.begin(); - for (int iedge = 0; iedge < 3; ++ iedge) - if (facet_neighbors(iedge) == -1) { - int i = iedge; - int j = next_idx_modulo(i, 3); - assert(vertices[i].z() == zs[line_id]); - assert(vertices[j].z() == zs[line_id]); - IntersectionLine il { - { to_2d(vertices[i]).cast(), to_2d(vertices[j]).cast() }, - indices(i), indices(j), -1, -1, - ProjectionFromTop ? IntersectionLine::FacetEdgeType::Bottom : IntersectionLine::FacetEdgeType::Top - }; - // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. - // if (! ProjectionFromTop) il.reverse(); - boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); - lines.at_slice[line_id].emplace_back(il); - } + // Slicing plane with which the triangle is coplanar. + size_t slice_id = min_layer - zs.begin(); +#if 0 + // Project the coplanar bottom facing triangles to their slicing plane for both top and bottom facing surfaces. + // This behavior is different from slice_mesh() / slice_mesh_ex(), which do not slice bottom facing faces exactly on slicing plane. + size_t line_id = slice_id; +#else + // Project the coplanar bottom facing triangles to the plane above the slicing plane to match the behavior of slice_mesh() / slice_mesh_ex(), + // where the slicing plane slices the top facing surfaces, but misses the bottom facing surfaces. + if (size_t line_id = ProjectionFromTop ? slice_id : slice_id + 1; ProjectionFromTop || line_id < lines.at_slice.size()) +#endif + for (int iedge = 0; iedge < 3; ++ iedge) + if (facet_neighbors(iedge) == -1) { + int i = iedge; + int j = next_idx_modulo(i, 3); + assert(vertices[i].z() == zs[slice_id]); + assert(vertices[j].z() == zs[slice_id]); + IntersectionLine il { + { to_2d(vertices[i]).cast(), to_2d(vertices[j]).cast() }, + indices(i), indices(j), -1, -1, + ProjectionFromTop ? IntersectionLine::FacetEdgeType::Bottom : IntersectionLine::FacetEdgeType::Top + }; + // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. + // if (! ProjectionFromTop) il.reverse(); + boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); + lines.at_slice[line_id].emplace_back(il); + } } else { // Triangle is completely between two slicing planes, the triangle may or may not be horizontal, which // does not matter for the processing of such a triangle. @@ -539,6 +549,7 @@ void slice_facet_with_slabs( assert(il.b_id == indices(next_idx_modulo(edge_id, 3))); } else { // The edge is oriented CW along the face perimeter. + assert(type == FacetSliceType::Slicing); assert(il.edge_type == IntersectionLine::FacetEdgeType::Top); edge_id = il.b_id == indices(0) ? 0 : il.b_id == indices(1) ? 1 : 2; assert(il.b_id == indices(edge_id)); @@ -555,8 +566,11 @@ void slice_facet_with_slabs( int num_on_plane = (mesh_vertices[neighbor(0)].z() == z) + (mesh_vertices[neighbor(1)].z() == z) + (mesh_vertices[neighbor(2)].z() == z); assert(num_on_plane == 2 || num_on_plane == 3); #endif // NDEBUG +#if 0 if (mesh_vertices[neighbor(0)].z() == z && mesh_vertices[neighbor(1)].z() == z && mesh_vertices[neighbor(2)].z() == z) { // The neighbor triangle is horizontal. + // Assign the horizontal projections to slicing planes differently from the usual triangle mesh slicing: + // Slicing plane slices top surfaces when projecting from top, it slices bottom surfaces when projecting from bottom. // Is the corner convex or concave? if (il.edge_type == (ProjectionFromTop ? IntersectionLine::FacetEdgeType::Top : IntersectionLine::FacetEdgeType::Bottom)) { // Convex corner. Add this edge to both slabs, the edge is a boundary edge of both the projection patch below and @@ -567,7 +581,12 @@ void slice_facet_with_slabs( // Concave corner. Ignore this edge, it is internal to the projection patch. type = FacetSliceType::Cutting; } - } else if (il.edge_type == IntersectionLine::FacetEdgeType::Top) { + } else +#else + // Project the coplanar bottom facing triangles to the plane above the slicing plane to match the behavior of slice_mesh() / slice_mesh_ex(), + // where the slicing plane slices the top facing surfaces, but misses the bottom facing surfaces. +#endif + if (il.edge_type == IntersectionLine::FacetEdgeType::Top) { // Indicate that the edge belongs to both the slab below and above the plane. assert(type == FacetSliceType::Slicing); il.edge_type = IntersectionLine::FacetEdgeType::TopBottom; diff --git a/src/libslic3r/TriangleMeshSlicer.hpp b/src/libslic3r/TriangleMeshSlicer.hpp index 5e08b58e77..fbe7244332 100644 --- a/src/libslic3r/TriangleMeshSlicer.hpp +++ b/src/libslic3r/TriangleMeshSlicer.hpp @@ -46,6 +46,17 @@ struct MeshSlicingParamsEx : public MeshSlicingParams double resolution { 0 }; }; +// All the following slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters. +// Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by +// slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh(). +// +// If a slicing plane slices a horizontal face of a mesh exactly, +// an upward facing horizontal face is is considered on slicing plane, +// while a downward facing horizontal face is considered not on slicing plane. +// +// slice_mesh_slabs() thus projects an upward facing horizontal slice to the slicing plane, +// while slice_mesh_slabs() projects a downward facing horizontal slice to the slicing plane above if it exists. + std::vector slice_mesh( const indexed_triangle_set &mesh, const std::vector &zs, diff --git a/src/nanosvg/README-prusa.txt b/src/nanosvg/README-prusa.txt new file mode 100644 index 0000000000..8388aa8ef3 --- /dev/null +++ b/src/nanosvg/README-prusa.txt @@ -0,0 +1 @@ +Upstream source: https://github.com/memononen/nanosvg/tree/c1f6e209c16b18b46aa9f45d7e619acf42c29726 \ No newline at end of file diff --git a/src/nanosvg/nanosvg.h b/src/nanosvg/nanosvg.h index b9063213e0..57bcb7c2c1 100644 --- a/src/nanosvg/nanosvg.h +++ b/src/nanosvg/nanosvg.h @@ -189,6 +189,8 @@ void nsvgDelete(NSVGimage* image); #include #include +#include + #define NSVG_PI (3.14159265358979323846264338327f) #define NSVG_KAPPA90 (0.5522847493f) // Length proportional to radius of a cubic bezier handle for 90deg arcs. @@ -2916,9 +2918,9 @@ NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) if (fread(data, 1, size, fp) != size) goto error; data[size] = '\0'; // Must be null terminated. fclose(fp); + image = nsvgParse(data, units, dpi); free(data); - return image; error: diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index dd95bad6cb..4ddf49cec7 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -195,6 +195,7 @@ set(SLIC3R_GUI_SOURCES GUI/Mouse3DController.hpp GUI/DoubleSlider.cpp GUI/DoubleSlider.hpp + GUI/DoubleSlider_Utils.hpp GUI/Notebook.cpp GUI/Notebook.hpp GUI/ObjectDataViewModel.cpp diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index 23713dd119..77a74bffeb 100644 --- a/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp @@ -22,6 +22,7 @@ #include "../GUI/GUI_App.hpp" #include "../GUI/I18N.hpp" #include "../GUI/MainFrame.hpp" +#include "../GUI/MsgDialog.hpp" #include @@ -591,7 +592,7 @@ bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot: SnapshotDB::singleton().take_snapshot(app_config, reason, comment); return true; } catch (std::exception &err) { - wxRichMessageDialog dlg(static_cast(wxGetApp().mainframe), + RichMessageDialog dlg(static_cast(wxGetApp().mainframe), _L("PrusaSlicer has encountered an error while taking a configuration snapshot.") + "\n\n" + from_u8(err.what()) + "\n\n" + from_u8(message), _L("PrusaSlicer error"), wxYES_NO); diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 8e68673116..a8d7dbdf25 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -5,7 +5,7 @@ #include "libslic3r/Polygon.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/BoundingBox.hpp" -#include "libslic3r/Geometry.hpp" +#include "libslic3r/Geometry/Circle.hpp" #include "libslic3r/Tesselate.hpp" #include "libslic3r/PresetBundle.hpp" @@ -137,7 +137,7 @@ void Bed3D::Axes::render() const glsafe(::glDisable(GL_DEPTH_TEST)); } -bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture, const std::string& custom_model, bool force_as_custom) +bool Bed3D::set_shape(const Pointfs& bed_shape, const double max_print_height, const std::string& custom_texture, const std::string& custom_model, bool force_as_custom) { auto check_texture = [](const std::string& texture) { boost::system::error_code ec; // so the exists call does not throw (e.g. after a permission problem) @@ -149,17 +149,13 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture, c return !model.empty() && boost::algorithm::iends_with(model, ".stl") && boost::filesystem::exists(model, ec); }; - EType type; + Type type; std::string model; std::string texture; if (force_as_custom) -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - type = EType::Custom; -#else - type = Custom; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + type = Type::Custom; else { - auto [new_type, system_model, system_texture] = detect_type(shape); + auto [new_type, system_model, system_texture] = detect_type(bed_shape); type = new_type; model = system_model; texture = system_texture; @@ -177,29 +173,18 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture, c model_filename.clear(); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - EShapeType shape_type = detect_shape_type(shape); - if (m_shape == shape && m_type == type && m_shape_type == shape_type && m_texture_filename == texture_filename && m_model_filename == model_filename) -#else - if (m_shape == shape && m_type == type && m_texture_filename == texture_filename && m_model_filename == model_filename) -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + + if (m_build_volume.bed_shape() == bed_shape && m_type == type && m_texture_filename == texture_filename && m_model_filename == model_filename) // No change, no need to update the UI. return false; - m_shape = shape; + m_type = type; + m_build_volume = BuildVolume { bed_shape, max_print_height }; m_texture_filename = texture_filename; m_model_filename = model_filename; - m_type = type; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - m_shape_type = shape_type; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + m_extended_bounding_box = this->calc_extended_bounding_box(); - calc_bounding_boxes(); - - ExPolygon poly; - for (const Vec2d& p : m_shape) { - poly.contour.append({ scale_(p(0)), scale_(p(1)) }); - } + ExPolygon poly{ Polygon::new_scale(bed_shape) }; calc_triangles(poly); @@ -208,13 +193,13 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture, c m_polygon = offset(poly.contour, (float)bed_bbox.radius() * 1.7f, jtRound, scale_(0.5))[0]; - reset(); + this->release_VBOs(); m_texture.reset(); m_model.reset(); // Set the origin and size for rendering the coordinate system axes. m_axes.set_origin({ 0.0, 0.0, static_cast(GROUND_Z) }); - m_axes.set_stem_length(0.1f * static_cast(m_bounding_box.max_size())); + m_axes.set_stem_length(0.1f * static_cast(m_build_volume.bounding_volume().max_size())); // Let the calee to update the UI. return true; @@ -240,85 +225,6 @@ void Bed3D::render_for_picking(GLCanvas3D& canvas, bool bottom, float scale_fact render_internal(canvas, bottom, scale_factor, false, false, true); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -bool Bed3D::is_rectangle(const Pointfs& shape, Vec2d* min, Vec2d* max) -{ - const Lines lines = Polygon::new_scale(shape).lines(); - bool ret = lines.size() == 4 && lines[0].parallel_to(lines[2]) && lines[1].parallel_to(lines[3]) && lines[0].perpendicular_to(lines[1]); - if (ret) { - if (min != nullptr) { - *min = shape.front(); - for (const Vec2d& pt : shape) { - min->x() = std::min(min->x(), pt.x()); - min->y() = std::min(min->y(), pt.y()); - } - } - if (max != nullptr) { - *max = shape.front(); - for (const Vec2d& pt : shape) { - max->x() = std::max(max->x(), pt.x()); - max->y() = std::max(max->y(), pt.y()); - } - } - } - return ret; -} - -bool Bed3D::is_circle(const Pointfs& shape, Vec2d* center, double* radius) -{ - if (shape.size() < 3) - return false; - - // Analyze the array of points. - // Do they reside on a circle ? - const Vec2d box_center = Geometry::circle_center_taubin_newton(shape); - - std::vector vertex_distances; - double avg_dist = 0.0; - for (const Vec2d& pt : shape) { - double distance = (pt - box_center).norm(); - vertex_distances.push_back(distance); - avg_dist += distance; - } - - avg_dist /= vertex_distances.size(); - - double tolerance = avg_dist * 0.01; - - bool defined_value = true; - for (double el : vertex_distances) { - if (fabs(el - avg_dist) > tolerance) - defined_value = false; - break; - } - - if (center != nullptr) - *center = box_center; - - if (radius != nullptr) - *radius = avg_dist; - - return defined_value; -} - -bool Bed3D::is_convex(const Pointfs& shape) -{ - return Polygon::new_scale(shape).convex_points().size() == shape.size(); -} - -Bed3D::EShapeType Bed3D::detect_shape_type(const Pointfs& shape) -{ - if (shape.size() < 3) - return EShapeType::Invalid; - else if (is_rectangle(shape)) - return EShapeType::Rectangle; - else if (is_circle(shape)) - return EShapeType::Circle; - else - return EShapeType::Custom; -} -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - void Bed3D::render_internal(GLCanvas3D& canvas, bool bottom, float scale_factor, bool show_axes, bool show_texture, bool picking) { @@ -334,41 +240,35 @@ void Bed3D::render_internal(GLCanvas3D& canvas, bool bottom, float scale_factor, switch (m_type) { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - case EType::System: { render_system(canvas, bottom, show_texture); break; } + case Type::System: { render_system(canvas, bottom, show_texture); break; } default: - case EType::Custom: { render_custom(canvas, bottom, show_texture, picking); break; } -#else - case System: { render_system(canvas, bottom, show_texture); break; } - default: - case Custom: { render_custom(canvas, bottom, show_texture, picking); break; } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + case Type::Custom: { render_custom(canvas, bottom, show_texture, picking); break; } } glsafe(::glDisable(GL_DEPTH_TEST)); } -void Bed3D::calc_bounding_boxes() const +// Calculate an extended bounding box from axes and current model for visualization purposes. +BoundingBoxf3 Bed3D::calc_extended_bounding_box() const { - BoundingBoxf3* bounding_box = const_cast(&m_bounding_box); - *bounding_box = BoundingBoxf3(); - for (const Vec2d& p : m_shape) { - bounding_box->merge({ p.x(), p.y(), 0.0 }); - } - - BoundingBoxf3* extended_bounding_box = const_cast(&m_extended_bounding_box); - *extended_bounding_box = m_bounding_box; - + BoundingBoxf3 out { m_build_volume.bounding_volume() }; + const Vec3d size = out.size(); + // ensures that the bounding box is set as defined or the following calls to merge() will not work as intented + if (size.x() > 0.0 && size.y() > 0.0 && !out.defined) + out.defined = true; + // Reset the build volume Z, we don't want to zoom to the top of the build volume if it is empty. + out.min.z() = 0.0; + out.max.z() = 0.0; // extend to contain axes - extended_bounding_box->merge(m_axes.get_origin() + m_axes.get_total_length() * Vec3d::Ones()); - extended_bounding_box->merge(extended_bounding_box->min + Vec3d(-Axes::DefaultTipRadius, -Axes::DefaultTipRadius, extended_bounding_box->max(2))); - + out.merge(m_axes.get_origin() + m_axes.get_total_length() * Vec3d::Ones()); + out.merge(out.min + Vec3d(-Axes::DefaultTipRadius, -Axes::DefaultTipRadius, out.max.z())); // extend to contain model, if any BoundingBoxf3 model_bb = m_model.get_bounding_box(); if (model_bb.defined) { model_bb.translate(m_model_offset); - extended_bounding_box->merge(model_bb); + out.merge(model_bb); } + return out; } void Bed3D::calc_triangles(const ExPolygon& poly) @@ -404,8 +304,9 @@ void Bed3D::calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox) BOOST_LOG_TRIVIAL(error) << "Unable to create bed grid lines\n"; } - -std::tuple Bed3D::detect_type(const Pointfs& shape) const +// Try to match the print bed shape with the shape of an active profile. If such a match exists, +// return the print bed model. +std::tuple Bed3D::detect_type(const Pointfs& shape) { auto bundle = wxGetApp().preset_bundle; if (bundle != nullptr) { @@ -416,11 +317,7 @@ std::tuple Bed3D::detect_type(const Poin std::string model_filename = PresetUtils::system_printer_bed_model(*curr); std::string texture_filename = PresetUtils::system_printer_bed_texture(*curr); if (!model_filename.empty() && !texture_filename.empty()) -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - return { EType::System, model_filename, texture_filename }; -#else - return { System, model_filename, texture_filename }; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + return { Type::System, model_filename, texture_filename }; } } @@ -428,16 +325,12 @@ std::tuple Bed3D::detect_type(const Poin } } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - return { EType::Custom, "", "" }; -#else - return { Custom, "", "" }; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + return { Type::Custom, {}, {} }; } void Bed3D::render_axes() const { - if (!m_shape.empty()) + if (m_build_volume.valid()) m_axes.render(); } @@ -596,12 +489,10 @@ void Bed3D::render_model() const model->set_color(-1, DEFAULT_MODEL_COLOR); // move the model so that its origin (0.0, 0.0, 0.0) goes into the bed shape center and a bit down to avoid z-fighting with the texture quad - Vec3d shift = m_bounding_box.center(); - shift(2) = -0.03; - *const_cast(&m_model_offset) = shift; + *const_cast(&m_model_offset) = to_3d(m_build_volume.bounding_volume2d().center(), -0.03); // update extended bounding box - calc_bounding_boxes(); + const_cast(m_extended_bounding_box) = this->calc_extended_bounding_box(); } if (!model->get_filename().empty()) { @@ -673,7 +564,7 @@ void Bed3D::render_default(bool bottom, bool picking) const } } -void Bed3D::reset() +void Bed3D::release_VBOs() { if (m_vbo_id > 0) { glsafe(::glDeleteBuffers(1, &m_vbo_id)); diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 07b9f17585..639dc6c163 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -5,6 +5,8 @@ #include "3DScene.hpp" #include "GLModel.hpp" +#include + #include #include @@ -62,41 +64,22 @@ class Bed3D }; public: -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - enum class EType : unsigned char + enum class Type : unsigned char { + // The print bed model and texture are available from some printer preset. System, + // The print bed model is unknown, thus it is rendered procedurally. Custom }; - enum class EShapeType : unsigned char - { - Rectangle, - Circle, - Custom, - Invalid - }; -#else - enum EType : unsigned char - { - System, - Custom, - Num_Types - }; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - private: -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - EType m_type{ EType::Custom }; - EShapeType m_shape_type{ EShapeType::Invalid }; -#else - EType m_type{ Custom }; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Pointfs m_shape; + BuildVolume m_build_volume; + Type m_type{ Type::Custom }; std::string m_texture_filename; std::string m_model_filename; - BoundingBoxf3 m_bounding_box; + // Print volume bounding box exteded with axes and model. BoundingBoxf3 m_extended_bounding_box; + // Slightly expanded print bed polygon, for collision detection. Polygon m_polygon; GeometryBuffer m_triangles; GeometryBuffer m_gridlines; @@ -112,42 +95,39 @@ private: public: Bed3D() = default; - ~Bed3D() { reset(); } + ~Bed3D() { release_VBOs(); } - EType get_type() const { return m_type; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - EShapeType get_shape_type() const { return m_shape_type; } - bool is_custom() const { return m_type == EType::Custom; } -#else - bool is_custom() const { return m_type == Custom; } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - - const Pointfs& get_shape() const { return m_shape; } + // Update print bed model from configuration. // Return true if the bed shape changed, so the calee will update the UI. - bool set_shape(const Pointfs& shape, const std::string& custom_texture, const std::string& custom_model, bool force_as_custom = false); + //FIXME if the build volume max print height is updated, this function still returns zero + // as this class does not use it, thus there is no need to update the UI. + bool set_shape(const Pointfs& bed_shape, const double max_print_height, const std::string& custom_texture, const std::string& custom_model, bool force_as_custom = false); - const BoundingBoxf3& get_bounding_box(bool extended) const { return extended ? m_extended_bounding_box : m_bounding_box; } + // Build volume geometry for various collision detection tasks. + const BuildVolume& build_volume() const { return m_build_volume; } + // Was the model provided, or was it generated procedurally? + Type get_type() const { return m_type; } + // Was the model generated procedurally? + bool is_custom() const { return m_type == Type::Custom; } + + // Bounding box around the print bed, axes and model, for rendering. + const BoundingBoxf3& extended_bounding_box() const { return m_extended_bounding_box; } + + // Check against an expanded 2d bounding box. + //FIXME shall one check against the real build volume? bool contains(const Point& point) const; Point point_projection(const Point& point) const; - void render(GLCanvas3D& canvas, bool bottom, float scale_factor, - bool show_axes, bool show_texture); - + void render(GLCanvas3D& canvas, bool bottom, float scale_factor, bool show_axes, bool show_texture); void render_for_picking(GLCanvas3D& canvas, bool bottom, float scale_factor); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - static bool is_rectangle(const Pointfs& shape, Vec2d* min = nullptr, Vec2d* max = nullptr); - static bool is_circle(const Pointfs& shape, Vec2d* center = nullptr, double* radius = nullptr); - static bool is_convex(const Pointfs& shape); - static EShapeType detect_shape_type(const Pointfs& shape); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - private: - void calc_bounding_boxes() const; + // Calculate an extended bounding box from axes and current model for visualization purposes. + BoundingBoxf3 calc_extended_bounding_box() const; void calc_triangles(const ExPolygon& poly); void calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); - std::tuple detect_type(const Pointfs& shape) const; + static std::tuple detect_type(const Pointfs& shape); void render_internal(GLCanvas3D& canvas, bool bottom, float scale_factor, bool show_axes, bool show_texture, bool picking); void render_axes() const; @@ -156,7 +136,7 @@ private: void render_model() const; void render_custom(GLCanvas3D& canvas, bool bottom, bool show_texture, bool picking) const; void render_default(bool bottom, bool picking) const; - void reset(); + void release_VBOs(); }; } // GUI diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index ee28fd718f..6aa12431c4 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -11,10 +11,8 @@ #include "GUI_App.hpp" #include "Plater.hpp" #include "BitmapCache.hpp" -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -#include "3DBed.hpp" -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +#include "libslic3r/BuildVolume.hpp" #include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/ExtrusionEntityCollection.hpp" #include "libslic3r/Geometry.hpp" @@ -27,6 +25,7 @@ #include "libslic3r/PresetBundle.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/Tesselate.hpp" +#include "libslic3r/PrintConfig.hpp" #include #include @@ -264,11 +263,9 @@ void GLIndexedVertexArray::render( const std::pair& tverts_range, const std::pair& qverts_range) const { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // this method has been called before calling finalize() ? if (this->vertices_and_normals_interleaved_VBO_id == 0 && !this->vertices_and_normals_interleaved.empty()) return; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS assert(this->vertices_and_normals_interleaved_VBO_id != 0); assert(this->triangle_indices_VBO_id != 0 || this->quad_indices_VBO_id != 0); @@ -526,7 +523,6 @@ BoundingBoxf3 GLVolume::transformed_convex_hull_bounding_box(const Transform3d & bounding_box().transformed(trafo); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS BoundingBoxf3 GLVolume::transformed_non_sinking_bounding_box(const Transform3d& trafo) const { return GUI::wxGetApp().plater()->model().objects[object_idx()]->volumes[volume_idx()]->mesh().transformed_bounding_box(trafo, 0.0); @@ -541,7 +537,6 @@ const BoundingBoxf3& GLVolume::transformed_non_sinking_bounding_box() const } return *m_transformed_non_sinking_bounding_box; } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS void GLVolume::set_range(double min_z, double max_z) { @@ -617,22 +612,6 @@ void GLVolume::render_sinking_contours() m_sinking_contours.render(); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -void GLVolume::calc_convex_hull_3d() -{ - const std::vector &src = this->indexed_vertex_array.vertices_and_normals_interleaved; - std::vector pts; - assert(src.size() % 6 == 0); - pts.reserve(src.size() / 6); - for (auto it = src.begin(); it != src.end(); ) { - it += 3; - pts.push_back({ *it, *(it + 1), *(it + 2) }); - it += 3; - } - this->set_convex_hull(TriangleMesh(its_convex_hull(pts))); -} -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - std::vector GLVolumeCollection::load_object( const ModelObject *model_object, int obj_idx, @@ -791,9 +770,7 @@ int GLVolumeCollection::load_wipe_tower_preview( volumes.emplace_back(new GLVolume(color)); GLVolume& v = *volumes.back(); v.indexed_vertex_array.load_mesh(mesh); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS v.set_convex_hull(mesh.convex_hull_3d()); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS v.indexed_vertex_array.finalize_geometry(opengl_initialized); v.set_volume_offset(Vec3d(pos_x, pos_y, 0.0)); v.set_volume_rotation(Vec3d(0., 0., (M_PI / 180.) * rotation_angle)); @@ -900,17 +877,10 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, bool disab shader->set_uniform("uniform_color", volume.first->render_color); shader->set_uniform("z_range", m_z_range, 2); shader->set_uniform("clipping_plane", m_clipping_plane, 4); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS shader->set_uniform("print_volume.type", static_cast(m_print_volume.type)); shader->set_uniform("print_volume.xy_data", m_print_volume.data); shader->set_uniform("print_volume.z_data", m_print_volume.zs); shader->set_uniform("volume_world_matrix", volume.first->world_matrix()); -#else - shader->set_uniform("print_box.min", m_print_box_min, 3); - shader->set_uniform("print_box.max", m_print_box_max, 3); - shader->set_uniform("print_box.actived", volume.first->shader_outside_printer_detection_enabled); - shader->set_uniform("print_box.volume_world_matrix", volume.first->world_matrix()); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS shader->set_uniform("slope.actived", m_slope.active && !volume.first->is_modifier && !volume.first->is_wipe_tower); shader->set_uniform("slope.volume_world_normal_matrix", static_cast(volume.first->world_matrix().matrix().block(0, 0, 3, 3).inverse().transpose().cast())); shader->set_uniform("slope.normal_z", m_slope.normal_z); @@ -959,136 +929,58 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, bool disab glsafe(::glDisable(GL_BLEND)); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, ModelInstanceEPrintVolumeState* out_state, bool as_toolpaths) const -#else -bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, ModelInstanceEPrintVolumeState* out_state) const -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +bool GLVolumeCollection::check_outside_state(const BuildVolume &build_volume, ModelInstanceEPrintVolumeState *out_state) const { - if (config == nullptr) - return false; - - const ConfigOptionPoints* opt = dynamic_cast(config->option("bed_shape")); - if (opt == nullptr) - return false; - -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - const Polygon bed_poly = offset(Polygon::new_scale(opt->values), static_cast(scale_(BedEpsilon))).front(); - const float bed_height = config->opt_float("max_print_height"); - const BoundingBox bed_box_2D = get_extents(bed_poly); - BoundingBoxf3 print_volume({ unscale(bed_box_2D.min.x()), unscale(bed_box_2D.min.y()), -1e10 }, - { unscale(bed_box_2D.max.x()), unscale(bed_box_2D.max.y()), bed_height }); - - auto check_against_rectangular_bed = [&print_volume](GLVolume& volume, ModelInstanceEPrintVolumeState& state) { - const BoundingBoxf3* const bb = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1) ? &volume.transformed_non_sinking_bounding_box() : &volume.transformed_convex_hull_bounding_box(); - volume.is_outside = !print_volume.contains(*bb); - if (volume.printable) { - if (state == ModelInstancePVS_Inside && volume.is_outside) - state = ModelInstancePVS_Fully_Outside; - if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && print_volume.intersects(*bb)) - state = ModelInstancePVS_Partly_Outside; - } - }; - - auto check_against_circular_bed = [bed_height](GLVolume& volume, ModelInstanceEPrintVolumeState& state, const Vec2d& center, double radius) { - const TriangleMesh* mesh = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1) ? &GUI::wxGetApp().plater()->model().objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : volume.convex_hull(); - const double sq_radius = sqr(radius); - size_t outside_count = 0; - size_t valid_count = 0; - for (const Vec3f& v : mesh->its.vertices) { - const Vec3f world_v = volume.world_matrix().cast() * v; - if (0.0f <= world_v.z()) { - ++valid_count; - if (sq_radius < sqr(world_v.x() - center.x()) + sqr(world_v.y() - center.y()) || bed_height < world_v.z()) - ++outside_count; - } - } - volume.is_outside = outside_count > 0; - if (volume.printable) { - if (state == ModelInstancePVS_Inside && volume.is_outside) - state = ModelInstancePVS_Fully_Outside; - if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && outside_count < valid_count) - state = ModelInstancePVS_Partly_Outside; - } - }; - - auto check_against_convex_bed = [&bed_poly, bed_height](GLVolume& volume, ModelInstanceEPrintVolumeState& state) { - const TriangleMesh* mesh = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1) ? &GUI::wxGetApp().plater()->model().objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : volume.convex_hull(); - const Polygon volume_hull_2d = its_convex_hull_2d_above(mesh->its, volume.world_matrix().cast(), 0.0f); - const BoundingBoxf3* const bb = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1) ? &volume.transformed_non_sinking_bounding_box() : &volume.transformed_convex_hull_bounding_box(); - // Using rotating callipers to check for collision of two convex polygons. - ModelInstanceEPrintVolumeState volume_state = printbed_collision_state(bed_poly, bed_height, volume_hull_2d, bb->min.z(), bb->max.z()); - bool contained = (volume_state == ModelInstancePVS_Inside); - bool intersects = (volume_state == ModelInstancePVS_Partly_Outside); - - volume.is_outside = !contained; - if (volume.printable) { - if (state == ModelInstancePVS_Inside && volume.is_outside) - state = ModelInstancePVS_Fully_Outside; - - if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && intersects) - state = ModelInstancePVS_Partly_Outside; - } - }; -#else - const BoundingBox bed_box_2D = get_extents(Polygon::new_scale(opt->values)); - BoundingBoxf3 print_volume({ unscale(bed_box_2D.min.x()), unscale(bed_box_2D.min.y()), 0.0 }, - { unscale(bed_box_2D.max.x()), unscale(bed_box_2D.max.y()), config->opt_float("max_print_height") }); - // Allow the objects to protrude below the print bed - print_volume.min.z() = -1e10; - print_volume.min.x() -= BedEpsilon; - print_volume.min.y() -= BedEpsilon; - print_volume.max.x() += BedEpsilon; - print_volume.max.y() += BedEpsilon; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + const Model& model = GUI::wxGetApp().plater()->model(); + auto volume_below = [](GLVolume& volume) -> bool + { return volume.object_idx() != -1 && volume.volume_idx() != -1 && volume.is_below_printbed(); }; + // Volume is partially below the print bed, thus a pre-calculated convex hull cannot be used. + auto volume_sinking = [](GLVolume& volume) -> bool + { return volume.object_idx() != -1 && volume.volume_idx() != -1 && volume.is_sinking(); }; + // Cached bounding box of a volume above the print bed. + auto volume_bbox = [volume_sinking](GLVolume& volume) -> BoundingBoxf3 + { return volume_sinking(volume) ? volume.transformed_non_sinking_bounding_box() : volume.transformed_convex_hull_bounding_box(); }; + // Cached 3D convex hull of a volume above the print bed. + auto volume_convex_mesh = [volume_sinking, &model](GLVolume& volume) -> const TriangleMesh& + { return volume_sinking(volume) ? model.objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : *volume.convex_hull(); }; ModelInstanceEPrintVolumeState overall_state = ModelInstancePVS_Inside; bool contained_min_one = false; - enum class BedShape { Rectangle, Circle, Convex, NonConvex }; - Vec2d center; - double radius; - BedShape bed_shape = - GUI::Bed3D::is_rectangle(opt->values) ? BedShape::Rectangle : - GUI::Bed3D::is_circle(opt->values, ¢er, &radius) ? BedShape::Circle : - GUI::Bed3D::is_convex(opt->values) ? BedShape::Convex : BedShape::NonConvex; - - for (GLVolume* volume : this->volumes) { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - if (as_toolpaths && !volume->is_extrusion_path) - continue; - else if (!as_toolpaths && (volume->is_modifier || (!volume->shader_outside_printer_detection_enabled && (volume->is_wipe_tower || volume->composite_id.volume_id < 0)))) - continue; - - switch (bed_shape) { - case BedShape::Rectangle: check_against_rectangular_bed(*volume, overall_state); break; - case BedShape::Circle: check_against_circular_bed(*volume, overall_state, center, radius); break; - case BedShape::Convex: check_against_convex_bed(*volume, overall_state); break; - default: break; + for (GLVolume* volume : this->volumes) + if (! volume->is_modifier && (volume->shader_outside_printer_detection_enabled || (! volume->is_wipe_tower && volume->composite_id.volume_id >= 0))) { + BuildVolume::ObjectState state; + if (volume_below(*volume)) + state = BuildVolume::ObjectState::Below; + else { + switch (build_volume.type()) { + case BuildVolume::Type::Rectangle: + //FIXME this test does not evaluate collision of a build volume bounding box with non-convex objects. + state = build_volume.volume_state_bbox(volume_bbox(*volume)); + break; + case BuildVolume::Type::Circle: + case BuildVolume::Type::Convex: + //FIXME doing test on convex hull until we learn to do test on non-convex polygons efficiently. + case BuildVolume::Type::Custom: + state = build_volume.object_state(volume_convex_mesh(*volume).its, volume->world_matrix().cast(), volume_sinking(*volume)); + break; + default: + // Ignore, don't produce any collision. + state = BuildVolume::ObjectState::Inside; + break; + } + assert(state != BuildVolume::ObjectState::Below); + } + volume->is_outside = state != BuildVolume::ObjectState::Inside; + if (volume->printable) { + if (overall_state == ModelInstancePVS_Inside && volume->is_outside) + overall_state = ModelInstancePVS_Fully_Outside; + if (overall_state == ModelInstancePVS_Fully_Outside && volume->is_outside && state == BuildVolume::ObjectState::Colliding) + overall_state = ModelInstancePVS_Partly_Outside; + contained_min_one |= !volume->is_outside; + } } - contained_min_one |= !volume->is_outside; -#else - if (volume->is_modifier || (!volume->shader_outside_printer_detection_enabled && (volume->is_wipe_tower || volume->composite_id.volume_id < 0))) - continue; - - const BoundingBoxf3& bb = volume->transformed_convex_hull_bounding_box(); - bool contained = print_volume.contains(bb); - - volume->is_outside = !contained; - if (!volume->printable) - continue; - - contained_min_one |= contained; - - if (overall_state == ModelInstancePVS_Inside && volume->is_outside) - overall_state = ModelInstancePVS_Fully_Outside; - - if (overall_state == ModelInstancePVS_Fully_Outside && volume->is_outside && print_volume.intersects(bb)) - overall_state = ModelInstancePVS_Partly_Outside; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - } - if (out_state != nullptr) *out_state = overall_state; @@ -1131,29 +1023,43 @@ void GLVolumeCollection::update_colors_by_extruder(const DynamicPrintConfig* con if (config == nullptr) return; - const ConfigOptionStrings* extruders_opt = dynamic_cast(config->option("extruder_colour")); - if (extruders_opt == nullptr) - return; - - const ConfigOptionStrings* filamemts_opt = dynamic_cast(config->option("filament_colour")); - if (filamemts_opt == nullptr) - return; - - unsigned int colors_count = std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size()); - if (colors_count == 0) - return; - - std::vector colors(colors_count); - unsigned char rgb[3]; - for (unsigned int i = 0; i < colors_count; ++i) { - const std::string& txt_color = config->opt_string("extruder_colour", i); - if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) - colors[i].set(txt_color, rgb); - else { - const std::string& txt_color = config->opt_string("filament_colour", i); + std::vector colors; + + if (static_cast(config->opt_int("printer_technology")) == ptSLA) + { + const std::string& txt_color = config->opt_string("material_colour").empty() ? + print_config_def.get("material_colour")->get_default_value()->value : + config->opt_string("material_colour"); + if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) { + colors.resize(1); + colors[0].set(txt_color, rgb); + } + } + else + { + const ConfigOptionStrings* extruders_opt = dynamic_cast(config->option("extruder_colour")); + if (extruders_opt == nullptr) + return; + + const ConfigOptionStrings* filamemts_opt = dynamic_cast(config->option("filament_colour")); + if (filamemts_opt == nullptr) + return; + + unsigned int colors_count = std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size()); + if (colors_count == 0) + return; + colors.resize(colors_count); + + for (unsigned int i = 0; i < colors_count; ++i) { + const std::string& txt_color = config->opt_string("extruder_colour", i); if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) colors[i].set(txt_color, rgb); + else { + const std::string& txt_color = config->opt_string("filament_colour", i); + if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) + colors[i].set(txt_color, rgb); + } } } diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp index 14597f22aa..6d82e3bb7c 100644 --- a/src/slic3r/GUI/3DScene.hpp +++ b/src/slic3r/GUI/3DScene.hpp @@ -13,7 +13,10 @@ #include #include +#ifndef NDEBUG #define HAS_GLSAFE +#endif // NDEBUG + #ifdef HAS_GLSAFE extern void glAssertRecentCallImpl(const char *file_name, unsigned int line, const char *function_name); inline void glAssertRecentCall() { glAssertRecentCallImpl(__FILE__, __LINE__, __FUNCTION__); } @@ -28,6 +31,7 @@ namespace Slic3r { class SLAPrintObject; enum SLAPrintObjectStep : unsigned int; +class BuildVolume; class DynamicPrintConfig; class ExtrusionPath; class ExtrusionMultiPath; @@ -278,10 +282,8 @@ private: std::shared_ptr m_convex_hull; // Bounding box of this volume, in unscaled coordinates. std::optional m_transformed_convex_hull_bounding_box; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // Bounding box of the non sinking part of this volume, in unscaled coordinates. std::optional m_transformed_non_sinking_bounding_box; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS class SinkingContours { @@ -472,12 +474,10 @@ public: BoundingBoxf3 transformed_convex_hull_bounding_box(const Transform3d &trafo) const; // caching variant const BoundingBoxf3& transformed_convex_hull_bounding_box() const; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // non-caching variant BoundingBoxf3 transformed_non_sinking_bounding_box(const Transform3d& trafo) const; // caching variant const BoundingBoxf3& transformed_non_sinking_bounding_box() const; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // convex hull const TriangleMesh* convex_hull() const { return m_convex_hull.get(); } @@ -490,15 +490,11 @@ public: void finalize_geometry(bool opengl_initialized) { this->indexed_vertex_array.finalize_geometry(opengl_initialized); } void release_geometry() { this->indexed_vertex_array.release_geometry(); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS void set_bounding_boxes_as_dirty() { m_transformed_bounding_box.reset(); m_transformed_convex_hull_bounding_box.reset(); m_transformed_non_sinking_bounding_box.reset(); } -#else - void set_bounding_boxes_as_dirty() { m_transformed_bounding_box.reset(); m_transformed_convex_hull_bounding_box.reset(); } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS bool is_sla_support() const; bool is_sla_pad() const; @@ -515,12 +511,6 @@ public: // Return an estimate of the memory held by GPU vertex buffers. size_t gpu_memory_used() const { return this->indexed_vertex_array.gpu_memory_used(); } size_t total_memory_used() const { return this->cpu_memory_used() + this->gpu_memory_used(); } - -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - // calculates the 3D convex hull from indexed_vertex_array.vertices_and_normals_interleaved - // must be called before calling indexed_vertex_array.finalize_geometry(); - void calc_convex_hull_3d(); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS }; typedef std::vector GLVolumePtrs; @@ -537,7 +527,6 @@ public: All }; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS struct PrintVolume { // see: Bed3D::EShapeType @@ -551,16 +540,9 @@ public: // [0] = min z, [1] = max z std::array zs; }; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS private: -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS PrintVolume m_print_volume; -#else - // min and max vertex of the print box volume - float m_print_box_min[3]; - float m_print_box_max[3]; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // z range for clipping in shaders float m_z_range[2]; @@ -632,14 +614,7 @@ public: bool empty() const { return volumes.empty(); } void set_range(double low, double high) { for (GLVolume *vol : this->volumes) vol->set_range(low, high); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS void set_print_volume(const PrintVolume& print_volume) { m_print_volume = print_volume; } -#else - void set_print_box(float min_x, float min_y, float min_z, float max_x, float max_y, float max_z) { - m_print_box_min[0] = min_x; m_print_box_min[1] = min_y; m_print_box_min[2] = min_z; - m_print_box_max[0] = max_x; m_print_box_max[1] = max_y; m_print_box_max[2] = max_z; - } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS void set_z_range(float min_z, float max_z) { m_z_range[0] = min_z; m_z_range[1] = max_z; } void set_clipping_plane(const double* coeffs) { m_clipping_plane[0] = coeffs[0]; m_clipping_plane[1] = coeffs[1]; m_clipping_plane[2] = coeffs[2]; m_clipping_plane[3] = coeffs[3]; } @@ -654,11 +629,7 @@ public: // returns true if all the volumes are completely contained in the print volume // returns the containment state in the given out_state, if non-null -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - bool check_outside_state(const DynamicPrintConfig* config, ModelInstanceEPrintVolumeState* out_state, bool as_toolpaths = false) const; -#else - bool check_outside_state(const DynamicPrintConfig* config, ModelInstanceEPrintVolumeState* out_state) const; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + bool check_outside_state(const Slic3r::BuildVolume& build_volume, ModelInstanceEPrintVolumeState* out_state) const; void reset_outside_state(); void update_colors_by_extruder(const DynamicPrintConfig* config); @@ -696,8 +667,6 @@ struct _3DScene static void point3_to_verts(const Vec3crd& point, double width, double height, GLVolume& volume); }; -static constexpr float BedEpsilon = 3.f * float(EPSILON); - } #endif diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.hpp b/src/slic3r/GUI/BackgroundSlicingProcess.hpp index f87a58fd6b..5fba237e35 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.hpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.hpp @@ -86,7 +86,7 @@ public: void set_fff_print(Print *print) { m_fff_print = print; } void set_sla_print(SLAPrint *print) { m_sla_print = print; m_sla_print->set_printer(&m_sla_archive); } void set_thumbnail_cb(ThumbnailsGeneratorCallback cb) { m_thumbnail_cb = cb; } - void set_gcode_result(GCodeProcessor::Result* result) { m_gcode_result = result; } + void set_gcode_result(GCodeProcessorResult* result) { m_gcode_result = result; } // The following wxCommandEvent will be sent to the UI thread / Plater window, when the slicing is finished // and the background processing will transition into G-code export. @@ -216,7 +216,7 @@ private: Print *m_fff_print = nullptr; SLAPrint *m_sla_print = nullptr; // Data structure, to which the G-code export writes its annotations. - GCodeProcessor::Result *m_gcode_result = nullptr; + GCodeProcessorResult *m_gcode_result = nullptr; // Callback function, used to write thumbnails into gcode. ThumbnailsGeneratorCallback m_thumbnail_cb = nullptr; SL1Archive m_sla_archive; diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 0b8e31e13e..2d46a5228c 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -22,98 +22,7 @@ namespace GUI { BedShape::BedShape(const ConfigOptionPoints& points) { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - if (points.size() < 3) { - m_type = Bed3D::EShapeType::Invalid; - return; - } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - - // is this a rectangle ? -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Vec2d min; - Vec2d max; - if (Bed3D::is_rectangle(points.values, &min, &max)) { - m_type = Bed3D::EShapeType::Rectangle; - m_rectSize = max - min; - m_rectOrigin = -min; - return; - } -#else - Polygon polygon = Polygon::new_scale(points.values); - if (points.size() == 4) { - auto lines = polygon.lines(); - if (lines[0].parallel_to(lines[2]) && lines[1].parallel_to(lines[3])) { - // okay, it's a rectangle - // find origin - coordf_t x_min, x_max, y_min, y_max; - x_max = x_min = points.values[0](0); - y_max = y_min = points.values[0](1); - for (auto pt : points.values) - { - x_min = std::min(x_min, pt(0)); - x_max = std::max(x_max, pt(0)); - y_min = std::min(y_min, pt(1)); - y_max = std::max(y_max, pt(1)); - } - - m_type = Type::Rectangular; - m_rectSize = Vec2d(x_max - x_min, y_max - y_min); - m_rectOrigin = Vec2d(-x_min, -y_min); - - return; - } - } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - - // is this a circle ? -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Vec2d center; - double radius; - if (Bed3D::is_circle(points.values, ¢er, &radius)) { - m_type = Bed3D::EShapeType::Circle; - m_diameter = 2.0 * radius; - return; - } - - // This is a custom bed shape, use the polygon provided. - m_type = Bed3D::EShapeType::Custom; -#else - { - // Analyze the array of points.Do they reside on a circle ? - auto center = polygon.bounding_box().center(); - std::vector vertex_distances; - double avg_dist = 0; - for (auto pt : polygon.points) - { - double distance = (pt - center).cast().norm(); - vertex_distances.push_back(distance); - avg_dist += distance; - } - - avg_dist /= vertex_distances.size(); - bool defined_value = true; - for (auto el : vertex_distances) - { - if (abs(el - avg_dist) > 10 * SCALED_EPSILON) - defined_value = false; - break; - } - if (defined_value) { - // all vertices are equidistant to center - m_type = Type::Circular; - m_diameter = unscale(avg_dist * 2); - - return; - } - } - - if (points.size() < 3) - return; - - // This is a custom bed shape, use the polygon provided. - m_type = Type::Custom; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + m_build_volume = { points.values, 0. }; } static std::string get_option_label(BedShape::Parameter param) @@ -122,119 +31,101 @@ static std::string get_option_label(BedShape::Parameter param) case BedShape::Parameter::RectSize : return L("Size"); case BedShape::Parameter::RectOrigin: return L("Origin"); case BedShape::Parameter::Diameter : return L("Diameter"); - default: return ""; + default: assert(false); return {}; } } void BedShape::append_option_line(ConfigOptionsGroupShp optgroup, Parameter param) { ConfigOptionDef def; - - if (param == Parameter::RectSize) { + t_config_option_key key; + switch (param) { + case Parameter::RectSize: def.type = coPoints; def.set_default_value(new ConfigOptionPoints{ Vec2d(200, 200) }); def.min = 0; def.max = 1200; def.label = get_option_label(param); def.tooltip = L("Size in X and Y of the rectangular plate."); - - Option option(def, "rect_size"); - optgroup->append_single_option_line(option); - } - else if (param == Parameter::RectOrigin) { + key = "rect_size"; + break; + case Parameter::RectOrigin: def.type = coPoints; def.set_default_value(new ConfigOptionPoints{ Vec2d(0, 0) }); def.min = -600; def.max = 600; def.label = get_option_label(param); def.tooltip = L("Distance of the 0,0 G-code coordinate from the front left corner of the rectangle."); - - Option option(def, "rect_origin"); - optgroup->append_single_option_line(option); - } - else if (param == Parameter::Diameter) { + key = "rect_origin"; + break; + case Parameter::Diameter: def.type = coFloat; def.set_default_value(new ConfigOptionFloat(200)); def.sidetext = L("mm"); def.label = get_option_label(param); def.tooltip = L("Diameter of the print bed. It is assumed that origin (0,0) is located in the center."); - - Option option(def, "diameter"); - optgroup->append_single_option_line(option); + key = "diameter"; + break; + default: + assert(false); } + + optgroup->append_single_option_line({ def, std::move(key) }); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -wxString BedShape::get_name(Bed3D::EShapeType type) +wxString BedShape::get_name(PageType type) { switch (type) { - case Bed3D::EShapeType::Rectangle: { return _L("Rectangular"); } - case Bed3D::EShapeType::Circle: { return _L("Circular"); } - case Bed3D::EShapeType::Custom: { return _L("Custom"); } - case Bed3D::EShapeType::Invalid: - default: return _L("Invalid"); + case PageType::Rectangle: return _L("Rectangular"); + case PageType::Circle: return _L("Circular"); + case PageType::Custom: return _L("Custom"); } + // make visual studio happy + assert(false); + return {}; } -#else -wxString BedShape::get_name(Type type) -{ - switch (type) { - case Type::Rectangular: return _L("Rectangular"); - case Type::Circular: return _L("Circular"); - case Type::Custom: return _L("Custom"); - case Type::Invalid: - default: return _L("Invalid"); - } -} -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -size_t BedShape::get_type() +BedShape::PageType BedShape::get_page_type() { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - return static_cast(m_type == Bed3D::EShapeType::Invalid ? Bed3D::EShapeType::Rectangle : m_type); -#else - return static_cast(m_type == Type::Invalid ? Type::Rectangular : m_type); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + switch (m_build_volume.type()) { + case BuildVolume::Type::Rectangle: + case BuildVolume::Type::Invalid: return PageType::Rectangle; + case BuildVolume::Type::Circle: return PageType::Circle; + case BuildVolume::Type::Convex: + case BuildVolume::Type::Custom: return PageType::Custom; + } + // make visual studio happy + assert(false); + return PageType::Rectangle; } wxString BedShape::get_full_name_with_params() { - wxString out = _L("Shape") + ": " + get_name(m_type); - -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - if (m_type == Bed3D::EShapeType::Rectangle) { -#else - if (m_type == Type::Rectangular) { -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - out += "\n" + _(get_option_label(Parameter::RectSize)) + ": [" + ConfigOptionPoint(m_rectSize).serialize() + "]"; - out += "\n" + _(get_option_label(Parameter::RectOrigin))+ ": [" + ConfigOptionPoint(m_rectOrigin).serialize() + "]"; + wxString out = _L("Shape") + ": " + get_name(this->get_page_type()); + switch (m_build_volume.type()) { + case BuildVolume::Type::Circle: + out += "\n" + _L(get_option_label(Parameter::Diameter)) + ": [" + double_to_string(2. * unscaled(m_build_volume.circle().radius)) + "]"; + break; + default: + // rectangle, convex, concave... + out += "\n" + _(get_option_label(Parameter::RectSize)) + ": [" + ConfigOptionPoint(to_2d(m_build_volume.bounding_volume().size())).serialize() + "]"; + out += "\n" + _(get_option_label(Parameter::RectOrigin)) + ": [" + ConfigOptionPoint(to_2d(m_build_volume.bounding_volume().min)).serialize() + "]"; + break; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - else if (m_type == Bed3D::EShapeType::Circle) -#else - else if (m_type == Type::Circular) -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - out += "\n" + _L(get_option_label(Parameter::Diameter)) + ": [" + double_to_string(m_diameter) + "]"; - return out; } void BedShape::apply_optgroup_values(ConfigOptionsGroupShp optgroup) { -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - if (m_type == Bed3D::EShapeType::Rectangle || m_type == Bed3D::EShapeType::Invalid) { -#else - if (m_type == Type::Rectangular || m_type == Type::Invalid) { -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - optgroup->set_value("rect_size" , new ConfigOptionPoints{ m_rectSize }); - optgroup->set_value("rect_origin" , new ConfigOptionPoints{ m_rectOrigin }); + switch (m_build_volume.type()) { + case BuildVolume::Type::Circle: + optgroup->set_value("diameter", double_to_string(2. * unscaled(m_build_volume.circle().radius))); + break; + default: + // rectangle, convex, concave... + optgroup->set_value("rect_size" , new ConfigOptionPoints{ to_2d(m_build_volume.bounding_volume().size()) }); + optgroup->set_value("rect_origin" , new ConfigOptionPoints{ to_2d(m_build_volume.bounding_volume().min) }); } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - else if (m_type == Bed3D::EShapeType::Circle) -#else - else if (m_type == Type::Circular) -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - optgroup->set_value("diameter", double_to_string(m_diameter)); } void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) @@ -295,28 +186,16 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf sbsizer->Add(m_shape_options_book); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - auto optgroup = init_shape_options_page(BedShape::get_name(Bed3D::EShapeType::Rectangle)); -#else - auto optgroup = init_shape_options_page(BedShape::get_name(BedShape::Type::Rectangular)); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + auto optgroup = init_shape_options_page(BedShape::get_name(BedShape::PageType::Rectangle)); BedShape::append_option_line(optgroup, BedShape::Parameter::RectSize); BedShape::append_option_line(optgroup, BedShape::Parameter::RectOrigin); activate_options_page(optgroup); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - optgroup = init_shape_options_page(BedShape::get_name(Bed3D::EShapeType::Circle)); -#else - optgroup = init_shape_options_page(BedShape::get_name(BedShape::Type::Circular)); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + optgroup = init_shape_options_page(BedShape::get_name(BedShape::PageType::Circle)); BedShape::append_option_line(optgroup, BedShape::Parameter::Diameter); activate_options_page(optgroup); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - optgroup = init_shape_options_page(BedShape::get_name(Bed3D::EShapeType::Custom)); -#else - optgroup = init_shape_options_page(BedShape::get_name(BedShape::Type::Custom)); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + optgroup = init_shape_options_page(BedShape::get_name(BedShape::PageType::Custom)); Line line{ "", "" }; line.full_width = 1; @@ -538,8 +417,8 @@ void BedShapePanel::set_shape(const ConfigOptionPoints& points) { BedShape shape(points); - m_shape_options_book->SetSelection(shape.get_type()); - shape.apply_optgroup_values(m_optgroups[shape.get_type()]); + m_shape_options_book->SetSelection(int(shape.get_page_type())); + shape.apply_optgroup_values(m_optgroups[int(shape.get_page_type())]); // Copy the polygon to the canvas, make a copy of the array, if custom shape is selected if (shape.is_custom()) @@ -562,17 +441,9 @@ void BedShapePanel::update_shape() auto page_idx = m_shape_options_book->GetSelection(); auto opt_group = m_optgroups[page_idx]; -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Bed3D::EShapeType page_type = static_cast(page_idx); -#else - BedShape::Type page_type = static_cast(page_idx); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - if (page_type == Bed3D::EShapeType::Rectangle) { -#else - if (page_type == BedShape::Type::Rectangular) { -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + switch (static_cast(page_idx)) { + case BedShape::PageType::Rectangle: + { Vec2d rect_size(Vec2d::Zero()); Vec2d rect_origin(Vec2d::Zero()); @@ -602,12 +473,10 @@ void BedShapePanel::update_shape() Vec2d(x1, y0), Vec2d(x1, y1), Vec2d(x0, y1) }; + break; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - else if (page_type == Bed3D::EShapeType::Circle) { -#else - else if (page_type == BedShape::Type::Circular) { -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + case BedShape::PageType::Circle: + { double diameter; try { diameter = boost::any_cast(opt_group->get_value("diameter")); } catch (const std::exception & /* e */) { return; } @@ -615,6 +484,7 @@ void BedShapePanel::update_shape() if (diameter == 0.0) return ; auto r = diameter / 2; auto twopi = 2 * PI; + // Don't change this value without adjusting BuildVolume constructor detecting circle diameter! auto edges = 72; std::vector points; for (int i = 1; i <= edges; ++i) { @@ -622,13 +492,12 @@ void BedShapePanel::update_shape() points.push_back(Vec2d(r*cos(angle), r*sin(angle))); } m_shape = points; + break; } -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - else if (page_type == Bed3D::EShapeType::Custom) -#else - else if (page_type == BedShape::Type::Custom) -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + case BedShape::PageType::Custom: m_shape = m_loaded_shape; + break; + } update_preview(); } diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index af84ffb959..032aa28800 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -5,11 +5,10 @@ #include "GUI_Utils.hpp" #include "2DBed.hpp" -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS -#include "3DBed.hpp" -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS #include "I18N.hpp" +#include + #include #include @@ -22,14 +21,11 @@ using ConfigOptionsGroupShp = std::shared_ptr; struct BedShape { -#if !ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - enum class Type { - Rectangular = 0, - Circular, - Custom, - Invalid + enum class PageType { + Rectangle, + Circle, + Custom }; -#endif // !ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS enum class Parameter { RectSize, @@ -39,34 +35,18 @@ struct BedShape BedShape(const ConfigOptionPoints& points); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - bool is_custom() { return m_type == Bed3D::EShapeType::Custom; } -#else - bool is_custom() { return m_type == Type::Custom; } -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + bool is_custom() { return m_build_volume.type() == BuildVolume::Type::Convex || m_build_volume.type() == BuildVolume::Type::Custom; } static void append_option_line(ConfigOptionsGroupShp optgroup, Parameter param); -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - static wxString get_name(Bed3D::EShapeType type); -#else - static wxString get_name(Type type); -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + static wxString get_name(PageType type); - // convert Type to size_t - size_t get_type(); + PageType get_page_type(); wxString get_full_name_with_params(); void apply_optgroup_values(ConfigOptionsGroupShp optgroup); private: -#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Bed3D::EShapeType m_type{ Bed3D::EShapeType::Invalid }; -#else - Type m_type {Type::Invalid}; -#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Vec2d m_rectSize {200, 200}; - Vec2d m_rectOrigin {0, 0}; - double m_diameter {0}; + BuildVolume m_build_volume; }; class BedShapePanel : public wxPanel diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 2c756c3b95..39ba849d33 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -260,52 +260,66 @@ wxBitmap* BitmapCache::load_png(const std::string &bitmap_name, unsigned width, return this->insert(bitmap_key, wxImage_to_wxBitmap_with_alpha(std::move(image))); } +NSVGimage* BitmapCache::nsvgParseFromFileWithReplace(const char* filename, const char* units, float dpi, const std::map& replaces) +{ + std::string str; + FILE* fp = NULL; + size_t size; + char* data = NULL; + NSVGimage* image = NULL; + + fp = boost::nowide::fopen(filename, "rb"); + if (!fp) goto error; + fseek(fp, 0, SEEK_END); + size = ftell(fp); + fseek(fp, 0, SEEK_SET); + data = (char*)malloc(size + 1); + if (data == NULL) goto error; + if (fread(data, 1, size, fp) != size) goto error; + data[size] = '\0'; // Must be null terminated. + fclose(fp); + + if (replaces.empty()) + image = nsvgParse(data, units, dpi); + else { + str.assign(data); + for (auto val : replaces) + boost::replace_all(str, val.first, val.second); + image = nsvgParse(str.data(), units, dpi); + } + free(data); + return image; + +error: + if (fp) fclose(fp); + if (data) free(data); + if (image) nsvgDelete(image); + return NULL; +} + wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_width, unsigned target_height, - const bool grayscale/* = false*/, const bool dark_mode/* = false*/) + const bool grayscale/* = false*/, const bool dark_mode/* = false*/, const std::string& new_color /*= ""*/) { std::string bitmap_key = bitmap_name + ( target_height !=0 ? "-h" + std::to_string(target_height) : "-w" + std::to_string(target_width)) + (m_scale != 1.0f ? "-s" + float_to_string_decimal_point(m_scale) : "") - + (grayscale ? "-gs" : ""); + + (dark_mode ? "-dm" : "") + + (grayscale ? "-gs" : "") + + new_color; - /* For the Dark mode of any platform, we should draw icons in respect to OS background - * Note: All standard(regular) icons are collected in "icons" folder, - * SVG-icons, which have "Dark mode" variant, are collected in "icons/white" folder - */ - std::string folder; + auto it = m_map.find(bitmap_key); + if (it != m_map.end()) + return it->second; + + // map of color replaces + std::map replaces; if (dark_mode) - { -#ifdef __WXMSW__ - folder = "white\\"; -#else - folder = "white/"; -#endif - auto it = m_map.find(folder + bitmap_key); - if (it != m_map.end()) - return it->second; - // It's expensive to check if the bitmap exists every time, but otherwise: - // For the case, when application was started in Light mode and then switched to the Dark, - // we will never get a white bitmaps, if check m_map.find(bitmap_key) - // before boost::filesystem::exists(var(folder + bitmap_name + ".svg")) - if (!boost::filesystem::exists(var(folder + bitmap_name + ".svg"))) { - folder.clear(); - - it = m_map.find(bitmap_key); - if (it != m_map.end()) - return it->second; - } + replaces["\"#808080\""] = "\"#FFFFFF\""; + if (!new_color.empty()) + replaces["\"#ED6B21\""] = "\"" + new_color + "\""; - bitmap_key = folder + bitmap_key; - } - else - { - auto it = m_map.find(bitmap_key); - if (it != m_map.end()) - return it->second; - } - - NSVGimage *image = ::nsvgParseFromFile(Slic3r::var(folder + bitmap_name + ".svg").c_str(), "px", 96.0f); + NSVGimage *image = nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, replaces); if (image == nullptr) return nullptr; diff --git a/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index 8147de9963..4d1d383c41 100644 --- a/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp @@ -9,6 +9,8 @@ #include #endif +struct NSVGimage; + namespace Slic3r { namespace GUI { class BitmapCache @@ -32,8 +34,13 @@ public: // Load png from resources/icons. bitmap_key is given without the .png suffix. Bitmap will be rescaled to provided height/width if nonzero. wxBitmap* load_png(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false); + + // Parses SVG file from a file, returns SVG image as paths. + // And makes replases befor parsing + // replace_map containes old_value->new_value + static NSVGimage* nsvgParseFromFileWithReplace(const char* filename, const char* units, float dpi, const std::map& replaces); // Load svg from resources/icons. bitmap_key is given without the .svg suffix. SVG will be rasterized to provided height/width. - wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false, const bool dark_mode = false); + wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false, const bool dark_mode = false, const std::string& new_color = ""); wxBitmap mksolid(size_t width, size_t height, unsigned char r, unsigned char g, unsigned char b, unsigned char transparency, bool suppress_scaling = false, size_t border_width = 0, bool dark_mode = false); wxBitmap mksolid(size_t width, size_t height, const unsigned char rgb[3], bool suppress_scaling = false, size_t border_width = 0, bool dark_mode = false) { return mksolid(width, height, rgb[0], rgb[1], rgb[2], wxALPHA_OPAQUE, suppress_scaling, border_width, dark_mode); } diff --git a/src/slic3r/GUI/BonjourDialog.cpp b/src/slic3r/GUI/BonjourDialog.cpp index be0e20eb20..516b1ab4a5 100644 --- a/src/slic3r/GUI/BonjourDialog.cpp +++ b/src/slic3r/GUI/BonjourDialog.cpp @@ -53,7 +53,7 @@ struct LifetimeGuard BonjourDialog::BonjourDialog(wxWindow *parent, Slic3r::PrinterTechnology tech) : wxDialog(parent, wxID_ANY, _(L("Network lookup")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) - , list(new wxListView(this, wxID_ANY)) + , list(new wxListView(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxSIMPLE_BORDER)) , replies(new ReplySet) , label(new wxStaticText(this, wxID_ANY, "")) , timer(new wxTimer()) diff --git a/src/slic3r/GUI/CameraUtils.cpp b/src/slic3r/GUI/CameraUtils.cpp index 0b73349bd4..95842b47d0 100644 --- a/src/slic3r/GUI/CameraUtils.cpp +++ b/src/slic3r/GUI/CameraUtils.cpp @@ -2,6 +2,7 @@ #include // projecting points #include "slic3r/GUI/3DScene.hpp" // GLVolume +#include "libslic3r/Geometry/ConvexHull.hpp" using namespace Slic3r; using namespace GUI; diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 0b2af37b8e..7e64abcde1 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -162,8 +162,8 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con if (config->opt_bool("support_material")) { // Ask only once. - if (!m_support_material_overhangs_queried) { - m_support_material_overhangs_queried = true; + if (!support_material_overhangs_queried) { + support_material_overhangs_queried = true; if (!config->opt_bool("overhangs")/* != 1*/) { wxString msg_text = _(L("Supports work better, if the following feature is enabled:\n" "- Detect bridging perimeters")); @@ -182,7 +182,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con } } else { - m_support_material_overhangs_queried = false; + support_material_overhangs_queried = false; } if (config->option("fill_density")->value == 100) { diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp index 0b50c8ab0f..0d6250b5af 100644 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ b/src/slic3r/GUI/ConfigManipulation.hpp @@ -17,11 +17,14 @@ class ModelConfig; namespace GUI { +// This variable have to be static because of use its value from Preset configuration +// and from object/parts configuration from the Settings in sidebar +static bool support_material_overhangs_queried {false}; + class ConfigManipulation { bool is_msg_dlg_already_exist{ false }; - bool m_support_material_overhangs_queried{false}; bool m_is_initialized_support_material_overhangs_queried{ false }; // function to loading of changed configuration @@ -63,7 +66,7 @@ public: void initialize_support_material_overhangs_queried(bool queried) { m_is_initialized_support_material_overhangs_queried = true; - m_support_material_overhangs_queried = queried; + support_material_overhangs_queried = queried; } }; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index cceaff2e2b..85268fca15 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -27,6 +27,10 @@ #include #include +#ifdef _MSW_DARK_MODE +#include +#endif // _MSW_DARK_MODE + #include "libslic3r/Platform.hpp" #include "libslic3r/Utils.hpp" #include "libslic3r/Config.hpp" @@ -551,11 +555,13 @@ PagePrinters::PagePrinters(ConfigWizard *parent, wizard_p()->on_printer_pick(this, evt); }); - append(new wxStaticLine(this)); + append(new StaticLine(this)); append(picker); printer_pickers.push_back(picker); + has_printers = true; } + } void PagePrinters::select_all(bool select, bool alternates) @@ -595,7 +601,7 @@ std::set PagePrinters::get_selected_models() void PagePrinters::set_run_reason(ConfigWizard::RunReason run_reason) { - if (technology == T_FFF + if (is_primary_printer_page && (run_reason == ConfigWizard::RR_DATA_EMPTY || run_reason == ConfigWizard::RR_DATA_LEGACY) && printer_pickers.size() > 0 && printer_pickers[0]->vendor_id == PresetBundle::PRUSA_BUNDLE) { @@ -766,7 +772,11 @@ void PageMaterials::set_compatible_printers_html_window(const std::vectortechnology == T_FFF ? _L("filament") : _L("SLA material")); + wxString second_line; + if (!printer_names.empty()) + second_line = (materials->technology == T_FFF ? + _L("Only the following installed printers are compatible with the selected filaments") : + _L("Only the following installed printers are compatible with the selected SLA materials")) + ":"; text = wxString::Format( "" "