draftobjects.patharray.PathArray Class Reference

Public Member Functions

def attach (self, obj)
 
def execute (self, obj)
 
def get_wire_from_subelements (self, subelements)
 
def get_wires (self, path_object, subelements)
 
def linkSetup (self, obj)
 
def migrate_properties_0v19 (self, obj)
 
def onChanged (self, obj, prop)
 
def onDocumentRestored (self, obj)
 
def set_align_properties (self, obj, properties)
 
def set_general_properties (self, obj, properties)
 
def set_properties (self, obj)
 
def show_and_hide (self, obj, prop)
 

Additional Inherited Members

- Public Attributes inherited from draftobjects.base.DraftObject
 Type
 

Detailed Description

The Draft Path Array object.

The object distributes copies of an object along a path like a polyline,
spline, or bezier curve.

Attributes
----------
Align: bool
    It defaults to `False`.
    It sets whether the object will be specially aligned to the path.

AlignMode: str
    It defaults to `'Original'`.
    Indicates the type of alignment that will be calculated when
    `Align` is `True`.

    `'Original'` mode is the historic `'Align'` for old (v0.18) documents.
    It is not really the Fernat alignment. It uses the normal parameter
    from `getNormal` (or the default) as a constant, it does not calculate
    curve normal.
    `X` is curve tangent, `Y` is normal parameter, `Z` is the cross product
    `X` x `Y`.

    `'Tangent'` mode is similar to `Original`, but includes a pre-rotation
    (in execute) to align the `Base` object's `X` to `TangentVector`,
    then `X` follows curve tangent, normal input parameter
    is the Z component.

    If `ForceVertical` is `True`, the normal parameter from `getNormal`
    is ignored, and `X` is curve tangent, `Z` is `VerticalVector`,
    and `Y` is the cross product `X` x `Z`.

    `'Frenet'` mode orients the copies to a coordinate system
    along the path.
    `X` is tangent to curve, `Y` is curve normal, `Z` is curve binormal.
    If normal cannot be computed, for example, in a straight line,
    the default is used.

ForceVertical: bool
    It defaults to `False`.
    If it is `True`, and `AlignMode` is `'Original'` or `'Tangent'`,
    it will use the vector in `VerticalVector` as the `Z` axis.

Member Function Documentation

◆ attach()

def draftobjects.patharray.PathArray.attach (   self,
  obj 
)
Set up the properties when the object is attached.

Note: we don't exactly know why the properties are added
in the `attach` method. They should probably be added in the `__init__`
method. Maybe this is related to the link behavior of this class.

For PathLinkArray, DraftLink.attach creates the link to the Base.

Realthunder: before the big merge, there was only the attach() method
in the view object proxy, not the object proxy.
I added that to allow the proxy to override the C++ view provider
type. The view provider type is normally determined by object's
C++ API getViewProviderName(), and cannot be overridden by the proxy.
I introduced the attach() method in proxy to allow the core
to attach the proxy before creating the C++ view provider.

Reimplemented from draftobjects.draftlink.DraftLink.

References draftobjects.array.Array.set_properties(), and draftobjects.patharray.PathArray.set_properties().

◆ execute()

◆ get_wire_from_subelements()

def draftobjects.patharray.PathArray.get_wire_from_subelements (   self,
  subelements 
)
Make a wire from the path object subelements.

Referenced by draftobjects.patharray.PathArray.get_wires().

◆ get_wires()

def draftobjects.patharray.PathArray.get_wires (   self,
  path_object,
  subelements 
)

◆ linkSetup()

def draftobjects.patharray.PathArray.linkSetup (   self,
  obj 
)
Set up the object as a link object.

Reimplemented from draftobjects.draftlink.DraftLink.

◆ migrate_properties_0v19()

def draftobjects.patharray.PathArray.migrate_properties_0v19 (   self,
  obj 
)
Migrate properties of this class, not from the parent class.

Referenced by draftobjects.pointarray.PointArray.onDocumentRestored(), and draftobjects.patharray.PathArray.onDocumentRestored().

◆ onChanged()

◆ onDocumentRestored()

def draftobjects.patharray.PathArray.onDocumentRestored (   self,
  obj 
)
Execute code when the document is restored.

Add properties that don't exist.

Reimplemented from draftobjects.draftlink.DraftLink.

References draftobjects.draftlink.DraftLink.buildShape(), ArchFence._Fence.execute(), App::FeaturePythonImp.execute(), importIFCHelper.ProjectImporter.execute(), ArchPrecast._Precast.execute(), App::FeatureCustomT< FeatureT >.execute(), App::InventorObject.execute(), App::VRMLObject.execute(), App::MeasureDistance.execute(), ArchPrecast._PrecastBeam.execute(), draftobjects.base.DraftObject.execute(), DraftLayer.Layer.execute(), ArchFrame._Frame.execute(), App::PropertyExpressionEngine.execute(), ArchReference.ArchReference.execute(), App::FeatureTest.execute(), App::FeatureTestException.execute(), ArchSchedule._ArchSchedule.execute(), App::Origin.execute(), ArchMaterial._ArchMaterialContainer.execute(), App::FeaturePythonT< FeatureT >.execute(), ArchPipe._ArchPipe.execute(), ArchTruss.Truss.execute(), ArchPrecast._PrecastIbeam.execute(), ArchAxis._Axis.execute(), ArchComponent.Component.execute(), ArchProfile._ProfileC.execute(), ArchFloor._Floor.execute(), ArchCurtainWall.CurtainWall.execute(), ArchProfile._ProfileH.execute(), ArchPrecast._PrecastPillar.execute(), ArchRebar._Rebar.execute(), ArchSpace._Space.execute(), ArchProfile._ProfileR.execute(), ArchEquipment._Equipment.execute(), ArchProfile._ProfileRH.execute(), draftobjects.array.Array.execute(), ArchMaterial._ArchMaterial.execute(), ArchProfile._ProfileU.execute(), ArchPipe._ArchPipeConnector.execute(), DraftLayer.LayerContainer.execute(), ArchBuildingPart.BuildingPart.execute(), ArchStairs._Stairs.execute(), ArchPrecast._PrecastPanel.execute(), ArchPanel._Panel.execute(), ArchPrecast._PrecastSlab.execute(), ArchRoof._Roof.execute(), App::DocumentObject.execute(), ArchStructure._Structure.execute(), ArchPrecast._PrecastStairs.execute(), ArchSite._Site.execute(), ArchWall._Wall.execute(), ArchWindow._Window.execute(), ArchAxis._AxisSystem.execute(), ArchPanel.PanelView.execute(), ArchSectionPlane._SectionPlane.execute(), ArchPanel.PanelCut.execute(), ArchAxis.ArchGrid.execute(), ArchSectionPlane._ArchDrawingView.execute(), ArchStructure._StructuralSystem.execute(), ArchPanel.PanelSheet.execute(), draftobjects.draftlink.DraftLink.linkSetup(), draftobjects.array.Array.linkSetup(), draftobjects.draftlink.DraftLink.migrate_attributes(), draftobjects.patharray.PathArray.migrate_properties_0v19(), draftobjects.array.Array.set_properties(), draftobjects.patharray.PathArray.set_properties(), draftobjects.draftlink.DraftLink.use_link, draftguitools.gui_array_simple.Array.use_link, and draftguitools.gui_patharray.PathArray.use_link.

◆ set_align_properties()

def draftobjects.patharray.PathArray.set_align_properties (   self,
  obj,
  properties 
)
Set general properties only if they don't exist.

Referenced by draftobjects.patharray.PathArray.set_properties().

◆ set_general_properties()

def draftobjects.patharray.PathArray.set_general_properties (   self,
  obj,
  properties 
)

◆ set_properties()

◆ show_and_hide()

def draftobjects.patharray.PathArray.show_and_hide (   self,
  obj,
  prop 
)
Show and hide the properties depending on the touched property.

Referenced by draftobjects.patharray.PathArray.onChanged().


The documentation for this class was generated from the following file:
  • src/Mod/Draft/draftobjects/patharray.py