- trying to optimize the resulting geometry in DXF import (and in SVG import) by merging contiguous lines; reduced the lines to about one third of the original

This commit is contained in:
Marius Stanciu 2020-07-02 05:53:59 +03:00
parent 2fb786f498
commit ce4b6a5a85
2 changed files with 10 additions and 1 deletions

View File

@ -7,6 +7,10 @@ CHANGELOG for FlatCAM beta
=================================================
2.07.2020
- trying to optimize the resulting geometry in DXF import (and in SVG import) by merging contiguous lines; reduced the lines to about one third of the original
30.06.2020
- fixed the SVG parser so the SVG files with no information regarding the 'height' can be opened in FlatCAM; fixed issue #433

View File

@ -25,7 +25,7 @@ from lxml import etree as ET
from shapely.geometry import Polygon, LineString, Point, LinearRing, MultiLineString, MultiPoint, MultiPolygon
from shapely.geometry import box as shply_box
from shapely.ops import cascaded_union, unary_union, substring
from shapely.ops import cascaded_union, unary_union, substring, linemerge
import shapely.affinity as affinity
from shapely.wkt import loads as sloads
from shapely.wkt import dumps as sdumps
@ -1057,6 +1057,9 @@ class Geometry(object):
if flip:
geos = [translate(scale(g, 1.0, -1.0, origin=(0, 0)), yoff=h) for g in geos]
# trying to optimize the resulting geometry by merging contiguous lines
geos = linemerge(geos)
# Add to object
if self.solid_geometry is None:
self.solid_geometry = []
@ -1098,6 +1101,8 @@ class Geometry(object):
# Parse into list of shapely objects
dxf = ezdxf.readfile(filename)
geos = getdxfgeo(dxf)
# trying to optimize the resulting geometry by merging contiguous lines
geos = linemerge(geos)
# Add to object
if self.solid_geometry is None: