stereotech / Stereotech-Firmware

Modular, opensource, high performance G-code interpreter and CNC controller written in Object-Oriented C++
http://smoothieware.org/
GNU General Public License v3.0
0 stars 1 forks source link

Update FiveAxisStrategy.cpp #16

Closed ITorubarov closed 4 years ago

ITorubarov commented 4 years ago

Изменён порядок вычислений: сначала c_offset, затем a_offset (вычисляемый с учётом предварительного поворота шаблона на угол c_offset). c_offset вычисляется через синус, а не тангенс, для пущей точности. Я ничего не сломал, пока двигал строки?

In order for a Pull request to be accepted it must meet certain standards and guidelines.

In addition to following the Coding-Standards it is suggested the following be adopted.

It may seem like a pain to follow these rules, but it takes the maintainers valuable time and effort to review and test pull requests, these guidelines help reduce that effort.

frylock34 commented 4 years ago

Есть ошибки сборки

/__w/Stereotech-Firmware/Stereotech-Firmware/gcc-arm-none-eabi/arm-none-eabi/include/c++/4.8.3/tuple:648:9: note:   template argument deduction/substitution failed:
modules/tools/zprobe/FiveAxisStrategy.cpp:379:22: note:   'std::tuple<float, float, float>' is not derived from 'const std::pair<_T1, _T2>'
     std::tie(x2, y2) = actual_probe_points[1];
                      ^
In file included from modules/tools/zprobe/FiveAxisStrategy.h:6:0,
                 from modules/tools/zprobe/FiveAxisStrategy.cpp:1:
/__w/Stereotech-Firmware/Stereotech-Firmware/gcc-arm-none-eabi/arm-none-eabi/include/c++/4.8.3/tuple:657:9: note: template<class _U1, class _U2> std::tuple<_T1, _T2>& std::tuple<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = float&; _T2 = float&]
         operator=(pair<_U1, _U2>&& __in)
         ^
/__w/Stereotech-Firmware/Stereotech-Firmware/gcc-arm-none-eabi/arm-none-eabi/include/c++/4.8.3/tuple:657:9: note:   template argument deduction/substitution failed:
modules/tools/zprobe/FiveAxisStrategy.cpp:379:22: note:   'std::tuple<float, float, float>' is not derived from 'std::pair<_T1, _T2>'
     std::tie(x2, y2) = actual_probe_points[1];

Они из-за того, что actual_probe_points[1] - кортеж размерностью 3, и ты пытаешься свести его в кортеж размерностью 2. надо добавить третью координату, например

float y1, y2, x1, x2, z1, z2; 
std::tie(x2, y2, z2) = ...