EM FHNode/en: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav
|
|[[EM_FHSegment|FHSegment]]
|[[EM_Workbench|EM]]
|IconL=
|IconR=EM_FHSegment.svg
|IconC=EMWorkbench.svg
}}


{{GuiCommand
{{GuiCommand
|Name=EM FHNode
|Name=EM FHNode
|MenuLocation=EM → FHNode
|MenuLocation=EM → FHNode
|Workbenches=[[EM Workbench|EM]] (add-on)
|Workbenches=[[EM_Workbench|EM]]
|Shortcut={{KEY|E}} {{KEY|N}}
|Shortcut={{KEY|E}} {{KEY|N}}
|SeeAlso=[[EM FHSegment|EM FHSegment]], [[EM FHPath|EM FHPath]], [[EM FHPlane|EM FHPlane]], [[EM FHPlaneAddRemoveNodeHole|EM FHPlane Add/Remove Node/Hole]], [[EM FHEquiv|EM FHEquiv]], [[EM FHPort|EM FHPort]]
|Version=0.17
|Version=0.17
|SeeAlso=[[EM_FHSegment|EM FHSegment]], [[EM_FHPath|EM FHPath]], [[EM_FHPlane|EM FHPlane]], [[EM_FHPlaneAddRemoveNodeHole|EM FHPlane Add/Remove Node/Hole]], [[EM_FHEquiv|EM FHEquiv]], [[EM_FHPort|EM FHPort]]
}}
}}


Line 43: Line 52:
==Scripting==
==Scripting==


{{Emphasis|See also:}} [[FreeCAD Scripting Basics]].
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].

The FHNode object can be used in [[Macros|macros]] and from the [[Python|Python]] console by using the following function:


The FHNode object can be used in [[macros]] and from the [[Python]] console by using the following function:
{{Code|code=
{{Code|code=
node = makeFHNode(baseobj=None, X=0.0, Y=0.0, Z=0.0, color=None, size=None, name='FHNode')
node = makeFHNode(baseobj=None, X=0.0, Y=0.0, Z=0.0, color=None, size=None, name='FHNode')
}}
}}

* Creates a {{incode|FHNode}} object.
* Creates a {{incode|FHNode}} object.
* {{incode|baseobj}} is the Draft Point object whose position can be used as base for the FHNode. It has priority over {{incode|X}}, {{incode|Y}}, {{incode|Z}}. If no {{incode|baseobj}} is given, {{incode|X}},{{incode|Y}},{{incode|Z}} are used as coordinates.
* {{incode|baseobj}} is the Draft Point object whose position can be used as base for the FHNode. It has priority over {{incode|X}}, {{incode|Y}}, {{incode|Z}}. If no {{incode|baseobj}} is given, {{incode|X}},{{incode|Y}},{{incode|Z}} are used as coordinates.
Line 61: Line 72:


Additionally, the _FHNode class exposes these methods. The _FHNode class can be accessed through the FHNode object Proxy (e.g. fhnode.Proxy).
Additionally, the _FHNode class exposes these methods. The _FHNode class can be accessed through the FHNode object Proxy (e.g. fhnode.Proxy).

{{Code|code=
{{Code|code=
pos = getAbsCoord()
pos = getAbsCoord()
}}
}}

* Get a {{incode|FreeCAD.Vector}} containing the node coordinates in the absolute reference system
* Get a {{incode|FreeCAD.Vector}} containing the node coordinates in the absolute reference system

{{Code|code=
{{Code|code=
pos = getRelCoord()
pos = getRelCoord()
}}
}}

* Get a {{incode|FreeCAD.Vector}} containing the node coordinates relative to the FHNode Placement
* Get a {{incode|FreeCAD.Vector}} containing the node coordinates relative to the FHNode Placement

{{Code|code=
{{Code|code=
pos = setRelCoord(rel_coord, placement=None)
pos = setRelCoord(rel_coord, placement=None)
}}
}}

* Sets the node position relative to the placement
* Sets the node position relative to the placement
* {{incode|rel_coord}} is a FreeCAD.Vector containing the node coordinates relative to the FHNode Placement
* {{incode|rel_coord}} is a FreeCAD.Vector containing the node coordinates relative to the FHNode Placement
* {{incode|placement}} is a new FHNode placement. If {{incode|None}}, the placement is not changed
* {{incode|placement}} is a new FHNode placement. If {{incode|None}}, the placement is not changed

{{Code|code=
{{Code|code=
pos = setAbsCoord(abs_coord, placement=None)
pos = setAbsCoord(abs_coord, placement=None)
}}
}}

* Sets the absolute node position, considering the object placement, and in case forcing a new placement
* Sets the absolute node position, considering the object placement, and in case forcing a new placement
* {{incode|abs_coord}} is a FreeCAD.Vector containing the node coordinates in the absolute reference system
* {{incode|abs_coord}} is a FreeCAD.Vector containing the node coordinates in the absolute reference system
Line 83: Line 102:


Example:
Example:

{{Code|code=
{{Code|code=
import FreeCAD, EM
import FreeCAD, EM


fhnode = EM.makeFHNode(X=1.0,Y=2.0,Z=0.0)
fhnode = EM.makeFHNode(X=1.0,Y=2.0,Z=0.0)
}}


{{Docnav
|
|[[EM_FHSegment|FHSegment]]
|[[EM_Workbench|EM]]
|IconL=
|IconR=EM_FHSegment.svg
|IconC=EMWorkbench.svg
}}
}}


{{EM Tools navi{{#translation:}}}}
{{EM Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 09:09, 19 November 2021

EM FHNode

Menu location
EM → FHNode
Workbenches
EM
Default shortcut
E N
Introduced in version
0.17
See also
EM FHSegment, EM FHPath, EM FHPlane, EM FHPlane Add/Remove Node/Hole, EM FHEquiv, EM FHPort

Description

The FHNode tool inserts a FastHenry node object.

FastHenry FHNode

Usage

The FHNode object can be based on the position of a Draft Point object, or you can select the 3D location of the FHNode.

  1. Press the EM FHNode button, or press E then N keys.
  2. Click a point on the 3D view, or type coordinates and press the add point button.

Alternatively, you can also:

  1. Select one or multiple Draft Point object(s)
  2. Press the EM FHNode button, or press E then N keys. As many FHNodes will be created as the Draft Point objects, at the same coordinates of the Draft Points.

Options

  • To enter coordinates manually, simply enter the numbers, then press Enter between each X, Y and Z component. You can press the add point button when you have the desired values to insert the point.
  • Click the checkbox to toggle continue mode. If continue mode is on, the FHNode tool will restart after you place a node, allowing you to place another one without pressing the tool button again.
  • Press Esc or the Close button to abort the current command.

Properties

  • DataX: the X coordinate of the node
  • DataY: the Y coordinate of the node
  • DataZ: the Z coordinate of the node

Scripting

See also: FreeCAD Scripting Basics.

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

node = makeFHNode(baseobj=None, X=0.0, Y=0.0, Z=0.0, color=None, size=None, name='FHNode')
  • Creates a FHNode object.
  • baseobj is the Draft Point object whose position can be used as base for the FHNode. It has priority over X, Y, Z. If no baseobj is given, X,Y,Z are used as coordinates.
  • X x coordinate of the node, in absolute coordinate system.
  • Y y coordinate of the node, in absolute coordinate system.
  • Z z coordinate of the node, in absolute coordinate system.
  • color is the node color, e.g. a tuple (1.0,0.0,0.0). Defaults to EMFHNODE_DEF_NODECOLOR.
  • size is the node size. Defaults to EMFHNODE_DEF_NODESIZE.
  • name is the name of the object

The placement of the FHNode can be changed by modifying its Placement property, or changing the X,Y,Z properties individually. Changing X,Y,Z modifies the node position in the relative coordinate system of the Placement.

Additionally, the _FHNode class exposes these methods. The _FHNode class can be accessed through the FHNode object Proxy (e.g. fhnode.Proxy).

pos = getAbsCoord()
  • Get a FreeCAD.Vector containing the node coordinates in the absolute reference system
pos = getRelCoord()
  • Get a FreeCAD.Vector containing the node coordinates relative to the FHNode Placement
pos = setRelCoord(rel_coord, placement=None)
  • Sets the node position relative to the placement
  • rel_coord is a FreeCAD.Vector containing the node coordinates relative to the FHNode Placement
  • placement is a new FHNode placement. If None, the placement is not changed
pos = setAbsCoord(abs_coord, placement=None)
  • Sets the absolute node position, considering the object placement, and in case forcing a new placement
  • abs_coord is a FreeCAD.Vector containing the node coordinates in the absolute reference system
  • placement is a new FHNode placement. If None, the placement is not changed

Example:

import FreeCAD, EM

fhnode = EM.makeFHNode(X=1.0,Y=2.0,Z=0.0)