diff --git a/freecad/LaserCladdingWorkbench/Resources/icons/LaserWorkbench.svg b/freecad/LaserCladdingWorkbench/Resources/icons/LaserWorkbench.svg new file mode 100644 index 0000000..a5c94df --- /dev/null +++ b/freecad/LaserCladdingWorkbench/Resources/icons/LaserWorkbench.svg @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Mon Oct 10 13:44:52 2011 +0000 + + + [wmayer] + + + + + FreeCAD LGPL2+ + + + + + FreeCAD + + + FreeCAD/src/Mod/Draft/Resources/icons/Draft_2DShapeView.svg + http://www.freecadweb.org/wiki/index.php?title=Artwork + + + [agryson] Alexander Gryson + + + + + box + plane + rectangle + + + A box floating above a projection of its lower face + + + + + + + + + + + + diff --git a/freecad/LaserCladdingWorkbench/pad.py b/freecad/LaserCladdingWorkbench/pad.py index 000909f..61e385b 100644 --- a/freecad/LaserCladdingWorkbench/pad.py +++ b/freecad/LaserCladdingWorkbench/pad.py @@ -67,6 +67,14 @@ class LaserPad: print("===== coords from shape ======") print("{}", polygon_coords) print("===== ======") + + ## debug + # for poly in polygon_coords: + # c = Part.makeCompound([]) + # vertex_list = [App.Vector(x,y,0) for x,y in poly] + # c.add(Part.makePolygon(vertex_list)) + # Part.show(c) + layer = myHatcher.hatch(polygon_coords) contours_geoms = layer.getContourGeometry() diff --git a/freecad/LaserCladdingWorkbench/utils.py b/freecad/LaserCladdingWorkbench/utils.py index b7f2a75..deab74d 100644 --- a/freecad/LaserCladdingWorkbench/utils.py +++ b/freecad/LaserCladdingWorkbench/utils.py @@ -111,7 +111,8 @@ def get_polygon_from_subshape(subshape): for v in edge.discretize(Number=n, First=edge.FirstParameter, Last=edge.LastParameter): poly_points.append((v.x, v.y)) else: - # print("Line Vertexes:", len(edge.Vertexes)) + # print("Some polygon or rect:") + # print("Num Line Vertexes:", len(edge.Vertexes)) # print("Line Vertexes:", [(v.Point.x, v.Point.y) for v in edge.Vertexes]) for v in edge.Vertexes: poly_points.append((v.Point.x, v.Point.y)) @@ -128,13 +129,22 @@ def get_polygon_from_subshape(subshape): return polygon +def get_polygon_from_wire(wire): + polygon = [] + n = math.floor(wire.Length/2.3) + for v in wire.discretize(Number=n): + polygon.append((v.x, v.y)) + return polygon + + def get_coords_from_shape(face): - outerpoly = get_polygon_from_subshape(face.OuterWire) + #outerpoly = get_polygon_from_subshape(face.OuterWire) + outerpoly = get_polygon_from_wire(face.OuterWire) inner_polys = [] for inner_wire in face.SubShapes[1:]: - tmp = get_polygon_from_subshape(inner_wire) + tmp = get_polygon_from_wire(inner_wire) inner_polys.append(tmp) - poly = Polygon(outerpoly, holes=inner_polys) + poly = Polygon(shell=outerpoly, holes=inner_polys) print("Polygon: ", poly) return path2DToPathList([poly])