Draft PointArray

From FreeCAD Documentation
Revision as of 21:06, 11 November 2018 by Normandc (talk | contribs) (Please do not add translate units manually. They are added automatically once the page is marked for translation. Limitations section removed: no need to mention the tool is not available before v0.18, that's what the Version is for in GuiCommand.)

Draft PointArray

Menu location
Draft → PointArray
Workbenches
Draft, Arch
Default shortcut
None
Introduced in version
0.18
See also
Draft Array, Draft PathArray

Description

The PointArray tool places copies of a selected shape along various selected points.

How to use

  1. Create a shape object you wish to distribute. You will get the best results if your object is centred around the origin, that is, if its Dataposition is [0, 0, 0].
  2. Place points using Draft Point.
  3. Select the points and create a compound of them using Draft Upgrade.
  4. First select your shape, then the new point compound, and then press the Draft PointArray button.

Options

  • The array starts with shape copies which are not aligned to the path, nor translated to a new position by default. You can then change the alignment and/or translation vector in the properties.

Properties

  • DataBase: The shape object
  • DataCount: The number of times to copy the shape (read only)
  • DataPointList: a compound of points

Scripting

The PointArray tool can be used in macros and from the Python console by using the following function:

makePointArray(base, ptlst)
  • base is the shape to copy, and ptlst is an object with Geometry, Links, or Components that define the position of the copies.

Example:

import FreeCAD, Draft

poly = Draft.makePolygon(3, radius=500.0)
p1 = Draft.makePoint(FreeCAD.Vector(1500, 0, 0))
p2 = Draft.makePoint(FreeCAD.Vector(2500, 0, 0))
p3 = Draft.makePoint(FreeCAD.Vector(2000, 1000, 0))

upg = Draft.upgrade([p1, p2, p3], delete=True)
compound = upg[0][0]  # Extract the compound from the list

array = Draft.makePointArray(poly, compound)

Usage Notes

  • in progress