- fixed Film Plugin (Tool) negative generation to have the black background in sync with the actual geometry when transformations are applied
- fixed Film Plugin (Tool) to have mirroring done only with reference 'center' regardless of what is selected in the UI - in Film Plugin now multiple adjustments can be applied at the same time and correctly
This commit is contained in:
@@ -7,6 +7,12 @@ CHANGELOG for FlatCAM beta
|
||||
|
||||
=================================================
|
||||
|
||||
19.06.2021
|
||||
|
||||
- fixed Film Plugin (Tool) negative generation to have the black background in sync with the actual geometry when transformations are applied
|
||||
- fixed Film Plugin (Tool) to have mirroring done only with reference 'center' regardless of what is selected in the UI
|
||||
- in Film Plugin now multiple adjustments can be applied at the same time and correctly
|
||||
|
||||
17.06.2021
|
||||
|
||||
- fixed the setting color functionality on right click on the objects in the Project Tab such that the set color (or opacity) it is stored in a persistent setting correctly and the colors for Gerber objects are restored in order
|
||||
|
||||
@@ -671,6 +671,7 @@ class Film(AppTool):
|
||||
elif reference_point == 'bottomright':
|
||||
ref_val = (xmax, ymin)
|
||||
|
||||
# Transform the box object geometry
|
||||
transformed_box_geo = box_geo
|
||||
|
||||
if scale_factor_x and not scale_factor_y:
|
||||
@@ -690,11 +691,11 @@ class Film(AppTool):
|
||||
|
||||
if mirror:
|
||||
if mirror == 'x':
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin=ref_val)
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin='center')
|
||||
if mirror == 'y':
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin=ref_val)
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin='center')
|
||||
if mirror == 'both':
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin=ref_val)
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin='center')
|
||||
|
||||
bounds = transformed_box_geo.bounds
|
||||
size = bounds[2] - bounds[0], bounds[3] - bounds[1]
|
||||
@@ -703,7 +704,8 @@ class Film(AppTool):
|
||||
scale_factor_x=scale_factor_x, scale_factor_y=scale_factor_y,
|
||||
skew_factor_x=skew_factor_x, skew_factor_y=skew_factor_y,
|
||||
mirror=mirror,
|
||||
scale_reference=reference_point, skew_reference=reference_point
|
||||
scale_reference=reference_point, skew_reference=reference_point,
|
||||
mirror_reference='center'
|
||||
)
|
||||
|
||||
uom = obj.units.lower()
|
||||
@@ -967,11 +969,11 @@ class Film(AppTool):
|
||||
|
||||
if mirror:
|
||||
if mirror == 'x':
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin=ref_val)
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin='center')
|
||||
if mirror == 'y':
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin=ref_val)
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin='center')
|
||||
if mirror == 'both':
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin=ref_val)
|
||||
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin='center')
|
||||
|
||||
bounds = transformed_box_geo.bounds
|
||||
size = bounds[2] - bounds[0], bounds[3] - bounds[1]
|
||||
@@ -980,7 +982,8 @@ class Film(AppTool):
|
||||
scale_factor_x=scale_factor_x, scale_factor_y=scale_factor_y,
|
||||
skew_factor_x=skew_factor_x, skew_factor_y=skew_factor_y,
|
||||
mirror=mirror,
|
||||
scale_reference=reference_point, skew_reference=reference_point
|
||||
scale_reference=reference_point, skew_reference=reference_point,
|
||||
mirror_reference='center'
|
||||
)
|
||||
|
||||
# Change the attributes of the exported SVG
|
||||
|
||||
18
camlib.py
18
camlib.py
@@ -2355,26 +2355,26 @@ class Geometry(object):
|
||||
geom = geom_svg
|
||||
|
||||
if scale_factor_x and not scale_factor_y:
|
||||
geom = affinity.scale(geom_svg, scale_factor_x, 1.0, origin=scale_ref)
|
||||
geom = affinity.scale(geom, scale_factor_x, 1.0, origin=scale_ref)
|
||||
elif not scale_factor_x and scale_factor_y:
|
||||
geom = affinity.scale(geom_svg, 1.0, scale_factor_y, origin=scale_ref)
|
||||
geom = affinity.scale(geom, 1.0, scale_factor_y, origin=scale_ref)
|
||||
elif scale_factor_x and scale_factor_y:
|
||||
geom = affinity.scale(geom_svg, scale_factor_x, scale_factor_y, origin=scale_ref)
|
||||
geom = affinity.scale(geom, scale_factor_x, scale_factor_y, origin=scale_ref)
|
||||
|
||||
if skew_factor_x and not skew_factor_y:
|
||||
geom = affinity.skew(geom_svg, skew_factor_x, 0.0, origin=skew_ref)
|
||||
geom = affinity.skew(geom, skew_factor_x, 0.0, origin=skew_ref)
|
||||
elif not skew_factor_x and skew_factor_y:
|
||||
geom = affinity.skew(geom_svg, 0.0, skew_factor_y, origin=skew_ref)
|
||||
geom = affinity.skew(geom, 0.0, skew_factor_y, origin=skew_ref)
|
||||
elif skew_factor_x and skew_factor_y:
|
||||
geom = affinity.skew(geom_svg, skew_factor_x, skew_factor_y, origin=skew_ref)
|
||||
geom = affinity.skew(geom, skew_factor_x, skew_factor_y, origin=skew_ref)
|
||||
|
||||
if mirror:
|
||||
if mirror == 'x':
|
||||
geom = affinity.scale(geom_svg, 1.0, -1.0, origin=mirror_ref)
|
||||
geom = affinity.scale(geom, 1.0, -1.0, origin=mirror_ref)
|
||||
if mirror == 'y':
|
||||
geom = affinity.scale(geom_svg, -1.0, 1.0, origin=mirror_ref)
|
||||
geom = affinity.scale(geom, -1.0, 1.0, origin=mirror_ref)
|
||||
if mirror == 'both':
|
||||
geom = affinity.scale(geom_svg, -1.0, -1.0, origin=mirror_ref)
|
||||
geom = affinity.scale(geom, -1.0, -1.0, origin=mirror_ref)
|
||||
|
||||
# scale_factor is a multiplication factor for the SVG stroke-width used within shapely's svg export
|
||||
# If 0 or less which is invalid then default to 0.01
|
||||
|
||||
Reference in New Issue
Block a user