diff --git a/CHANGELOG.md b/CHANGELOG.md index b3eac63b..95ff44cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ CHANGELOG for FlatCAM beta - `skew` feature in Film Plugin now have multiple options. `skew` can be done by length, by angle and by ratio (factor) - fixed an issue when importing GCode which made the loaded GCode object un-plotable - fixed Film Plugin not using the set value in Preferences for the `skew type` +- more work in Film Plugin, in the `ratio` skew feature 9.03.2022 diff --git a/appPlugins/ToolFilm.py b/appPlugins/ToolFilm.py index 5cc26a7f..e1d7b4f1 100644 --- a/appPlugins/ToolFilm.py +++ b/appPlugins/ToolFilm.py @@ -1106,16 +1106,16 @@ class Film(AppTool): else: # "ratio" if skew_factor_x and not skew_factor_y: - future_x = (xmax - xmin) * skew_factor_x + future_x = (xmax - xmin) * skew_factor_x - (xmax - xmin) skew_angle_x = math.degrees(math.atan2(future_x, (ymax - ymin))) skew_angle_y = 0.0 elif not skew_factor_x and skew_factor_y: - future_y = (ymax - ymin) * skew_factor_y + future_y = (ymax - ymin) * skew_factor_y - (ymax - ymin) skew_angle_x = 0.0 skew_angle_y = math.degrees(math.atan2(future_y, (xmax - xmin))) else: - future_x = (xmax - xmin) * skew_factor_x - future_y = (ymax - ymin) * skew_factor_y + future_x = (xmax - xmin) * skew_factor_x - (xmax - xmin) + future_y = (ymax - ymin) * skew_factor_y - (ymax - ymin) skew_angle_x = math.degrees(math.atan2(future_x, (ymax - ymin))) skew_angle_y = math.degrees(math.atan2(future_y, (xmax - xmin))) else: @@ -1142,16 +1142,16 @@ class Film(AppTool): skew_angle_y = skew_factor_y else: # "ratio" if skew_factor_x and not skew_factor_y: - future_x = (xmax - xmin) * skew_factor_x + future_x = (xmax - xmin) * skew_factor_x - (xmax - xmin) skew_angle_x = math.degrees(math.atan2(future_x, ((ymax - ymin) * 0.5))) skew_angle_y = 0.0 elif not skew_factor_x and skew_factor_y: - future_y = (ymax - ymin) * skew_factor_y + future_y = (ymax - ymin) * skew_factor_y - (ymax - ymin) skew_angle_x = 0.0 skew_angle_y = math.degrees(math.atan2(future_y, ((xmax - xmin) * 0.5))) else: - future_x = (xmax - xmin) * skew_factor_x - future_y = (ymax - ymin) * skew_factor_y + future_x = (xmax - xmin) * skew_factor_x - (xmax - xmin) + future_y = (ymax - ymin) * skew_factor_y - (ymax - ymin) skew_angle_x = math.degrees(math.atan2(future_x, ((ymax - ymin) * 0.5))) skew_angle_y = math.degrees(math.atan2(future_y, ((xmax - xmin) * 0.5))) transformed_geo = affinity.skew(transformed_geo, skew_angle_x, skew_angle_y, origin=ref_skew_val)