# SPDX-License-Identifier: LGPL-2.1-or-later # *************************************************************************** # * Copyright (c) 2015 Yorik van Havre * # * Reimplemented as dressup in 2025 phaseloop 0: ang = self.angle / self.copies * (1 + i) pl = FreeCAD.Placement() pl.rotate(self.centre, FreeCAD.Vector(0, 0, 1), ang) np = PathUtils.applyPlacementToPath(pl, PathUtils.getPathWithPlacement(base)) output += np.toGCode() # return output return Path.Path(output) def Create(base, name="DressupArray"): """Create(base, name='DressupPathBoundary') ... creates a dressup array.""" if not base.isDerivedFrom("Path::Feature"): Path.Log.error(translate("CAM_DressupArray", "The selected object is not a path") + "\n") return None obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name) job = PathUtils.findParentJob(base) obj.Proxy = DressupArray(obj, base, job) job.Proxy.addOperation(obj, base, True) return obj