Draft PointArray: Difference between revisions

From FreeCAD Documentation
(Code example)
m (cleanup changed page name)
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>
<!--T:21-->
{{Docnav
|[[Draft_PathArray|Path Array]]
|[[Draft_Clone|Clone]]
|[[Draft_Module|Draft]]
|IconL=Draft_PathArray.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_Clone.svg
}}

<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand|Name=Draft PointArray|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]|MenuLocation=Draft → PointArray|SeeAlso=[[Draft Array|Draft Array]], [[Draft PathArray]]|Icon=Draft_PointArray.svg|Version=0.18}}
|Name=Draft PointArray
|Icon=Draft_PointArray.svg
|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]
|MenuLocation=Draft → PointArray
|Version=0.18
|SeeAlso=[[Draft Array|Draft Array]], [[Draft PathArray|Draft PathArray]]
}}


==Description== <!--T:2-->
==Description== <!--T:2-->


<!--T:3-->
<!--T:3-->
The PointArray tool places copies of a selected shape along various selected points.
The {{Button|[[Image:Draft_PointArray.svg|16px]] [[Draft PointArray|Draft PointArray]]}} tool places copies of a selected shape along various selected points.

<!--T:15-->
The PointArray tool can be used on 2D shapes created with the [[Draft Workbench|Draft Workbench]], but can also be used on many types of 3D objects such as those created with the [[Part Workbench|Part]], [[PartDesign Workbench|PartDesign]], or [[Arch Workbench|Arch Workbench]]es.

<!--T:16-->
To position copies in an orthogonal array use [[Draft Array|Draft Array]]; to position copies along a path use [[Draft PathArray|Draft PathArray]]; to create copies or clones, and manually place them use [[Draft Move|Draft Move]], [[Draft Rotate|Draft Rotate]], and [[Draft Clone|Draft Clone]].

</translate>
</translate>
[[Image:Draft_PointArray_Example.png|400px]]
[[Image:Draft_PointArray_Example.png|400px]]
<translate>
<translate>
<!--T:17-->
{{Caption|Object arranged at specific points}}


==How to use== <!--T:4-->
==Usage== <!--T:4-->


<!--T:5-->
<!--T:5-->
# Select an object that you wish to distribute.
# Create a shape object you wish to distribute. You will get the best results if your object is '''centred around the origin''', even if the path starts somewhere else.
# Select a point compound.
# Place points using [[Draft Point]]
# Press the {{Button|[[Image:Draft_PointArray.svg|16px]] [[Draft PointArray|Draft PointArray]]}} button.
# Select the points and create a compound of them using [[Draft Upgrade]]

# First select your shape, then the new point compound, and then press the {{KEY|[[Image:Draft_PointArray.svg|16px]] [[Draft PointArray]]}} button.
<!--T:18-->
To create a point compound select various [[Draft Point|Draft Point]]s and then press the {{Button|[[Image:Draft Upgrade.svg|16px]] [[Draft Upgrade|Draft Upgrade]]}} button.

<!--T:19-->
Each element in the array is an exact clone of the original object, but the entire array is considered a single unit in terms of properties and appearance.


==Options== <!--T:6-->
==Options== <!--T:6-->


<!--T:7-->
<!--T:7-->
There are no options for this tool. Either it works with the selected objects or not.
* 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== <!--T:8-->
==Properties== <!--T:8-->


<!--T:9-->
<!--T:9-->
* {{PropertyData|Base}}: The shape object
* {{PropertyData|Base}}: the object to duplicate.
* {{PropertyData|Count}}: The number of times to copy the shape (read only)
* {{PropertyData|Count}}: (read-only) specifies the number of copies of the base object. This number will depend on the number of [[Draft Point|Draft Point]]s in the compound.
* {{PropertyData|PointList}}: a compound of points
* {{PropertyData|PointList}}: specifies a compound object with point objects that indicate where the copies of the {{PropertyData|Base}} object will appear.
The compound object needs to have a {{PropertyData|Links}}, {{PropertyData|Componets}}, or {{PropertyData|Geometry}} attribute. Each of the objects inside the compound should be [[Draft Point|Draft Points]] that have {{PropertyData|X}}, {{PropertyData|Y}}, and {{PropertyData|Z}} attributes.
The compounds could be created with [[Part Compound|Part Compound]] ({{PropertyData|Links}} attribute) or with [[Draft Upgrade|Draft Upgrade]] ({{PropertyData|Componets}} attribute).


==Scripting== <!--T:10-->
==Scripting== <!--T:10-->
{{Emphasis|See also:}} [[Draft API|Draft API]] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


<!--T:11-->
<!--T:11-->
The PointArray tool can be used in [[macros]] and from the [[Python]] console by using the following function:
The PointArray tool can be used in [[macros|macros]] and from the [[Python|Python]] console by using the following function:

</translate>
</translate>
{{Code|code=
{{Code|code=
makePointArray(base, ptlst)
PointArray = makePointArray(base, ptlst)
}}
}}
<translate>
<translate>

<!--T:12-->
<!--T:12-->
* {{incode|base}} is the shape to copy, and {{incode|ptlst}} is an object with Geometry, Links, or Components that define the position of the copies.
* Creates a {{incode|PointArray}} object from the {{incode|base}} object, by placing the copies along {{incode|ptlst}}.
* {{incode|ptlst}} is an object with {{incode|Geometry}}, {{incode|Links}}, or {{incode|Components}} attributes that define the position of the copies.


<!--T:13-->
<!--T:13-->
Line 51: Line 86:
import FreeCAD, Draft
import FreeCAD, Draft


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


comp = Draft.upgrade([p1, p2, p3], delete=True)
p1 = Draft.makePoint(FreeCAD.Vector(1500, 0, 0))
p2 = Draft.makePoint(FreeCAD.Vector(2500, 0, 0))
compound = comp[0][0] # Extract the compound from the list
p3 = Draft.makePoint(FreeCAD.Vector(2000, 1000, 0))


# Create a compound of points
array = Draft.makePointArray(poly, compound)
addList, deleteList = Draft.upgrade([p1, p2, p3])

# Extract the compound from the list
compound = addList[0]

PointArray = Draft.makePointArray(Polygon, compound)
}}
}}
<translate>
<translate>


==Usage Notes== <!--T:15-->
<!--T:20-->
{{Docnav
* {{emphasis|in progress}}
|[[Draft_PathArray|Path Array]]

|[[Draft_Clone|Clone]]
==Limitations== <!--T:14-->
|[[Draft_Module|Draft]]
* This tool is not available before version 0.18
|IconL=Draft_PathArray.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_Clone.svg
}}


</translate>
</translate>
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Revision as of 11:45, 25 February 2020

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 Draft PointArray tool places copies of a selected shape along various selected points.

The PointArray tool can be used on 2D shapes created with the Draft Workbench, but can also be used on many types of 3D objects such as those created with the Part, PartDesign, or Arch Workbenches.

To position copies in an orthogonal array use Draft Array; to position copies along a path use Draft PathArray; to create copies or clones, and manually place them use Draft Move, Draft Rotate, and Draft Clone.

Object arranged at specific points

Usage

  1. Select an object that you wish to distribute.
  2. Select a point compound.
  3. Press the Draft PointArray button.

To create a point compound select various Draft Points and then press the Draft Upgrade button.

Each element in the array is an exact clone of the original object, but the entire array is considered a single unit in terms of properties and appearance.

Options

There are no options for this tool. Either it works with the selected objects or not.

Properties

  • DataBase: the object to duplicate.
  • DataCount: (read-only) specifies the number of copies of the base object. This number will depend on the number of Draft Points in the compound.
  • DataPointList: specifies a compound object with point objects that indicate where the copies of the DataBase object will appear.

The compound object needs to have a DataLinks, DataComponets, or DataGeometry attribute. Each of the objects inside the compound should be Draft Points that have DataX, DataY, and DataZ attributes. The compounds could be created with Part Compound (DataLinks attribute) or with Draft Upgrade (DataComponets attribute).

Scripting

See also: Draft API and FreeCAD Scripting Basics.

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

PointArray = makePointArray(base, ptlst)
  • Creates a PointArray object from the base object, by placing the copies along ptlst.
  • ptlst is an object with Geometry, Links, or Components attributes that define the position of the copies.

Example:

import FreeCAD, Draft

Polygon = 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))

# Create a compound of points
addList, deleteList = Draft.upgrade([p1, p2, p3])

# Extract the compound from the list
compound = addList[0]

PointArray = Draft.makePointArray(Polygon, compound)