FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

AddVertex
Cables

Cables WireFlex

Menu location
Cable Wires → WireFlex
Workbenches
Cables
Default shortcut
W F
Introduced in version
0.1.0
See also
Cables AddVertex, Cables DelVertex, Cables AttachVertex, Cables RemoveVertexAttachment, Cables Edit

Description

The WireFlex object is derived from Draft Wire and inherits all its properties. The main difference is that WireFlex is able to attach every of its vertexes to external vertex or object (attachment to object is understood as an attachment to its Placement.Base). Not every vertex has to be attached, some of them can be left to move freely depending on current needs. Another difference is that the WireFlex can take on three different shapes (see Path Type Proterty).

Main purpose of a WireFlex is to serve as a base for a Cable or a Cable Conduit.

All WireFlex vertexes can be edited like Draft Wire vertexes with the Cables Edit command (just double-click on the WireFlex in the Tree View). See Notes.

Some properties of WireFlex inherited from Draft Wire are hidden by default, some of them like Fillet Radius can be controlled from the cable properties if WireFlex is a base of a Cable. From version 0.2.0 onward the following restriction has been removed: in version 0.1.4 and earlier it was strongly recommended to set Fillet Radius as the last step of WireFlex creation. Setting this during WireFlex editing could lead to an error: "Not possible to modify WireFlex due to non zero Chamfer or Fillet or Subdivision".

Sample structure of WireFlex

Path Type Property

(property introduced in version 0.2.0)

WireFlex object can take on three different shapes based on the same Points property. These are: Wire, B-spline-K, B-spline-P. For a Wire shape the Points serve as vertices, for a B-spline-K shape the Points are mapped as knots (like in Draft BSpline) and for a B-spline-P shape the Points act as poles (similar to Draft BezCurve, a B-spline-P is smoother then and easier to control than a B-spline-K).

Curves such as B-spline-K and B-spline-P do not officially exist. Both refer to the B-spline curve. These names were introduced here to distinguish how these two curves are created, resulting in different shapes.

Three Path Types of the same WireFlex: Wire, B-spline-K, B-spline-P

Colors of Vertexes

(feature introduced in version 0.2.0)

By default points representing WireFlex vertexes can have the following colors:

for regular vertex which can be freely moved,

or for attached vertex (see Attach Vertex for details),

or for boundary vertex used with B-spline-K or B-spline-P Path Type.

If necessary, the above colors can be changed (see View Properties).

Usage

  1. Select the first external existing vertex in the 3D View
  2. Select additional vertexes (one or more) in the 3D View holding the CTRL key.
  3. It is also acceptable to select nothing, then the default wire with 5cm length will be created (introduced in version 0.3.0).
  4. Create WireFlex by one of these methods:
    • Press the WireFlex button.
    • Select the Cable Wires → WireFlex option from the menu.
    • Right-click in the Tree View or the 3D View and select the Cable Wires → WireFlex option from the context menu.

Note1: selection of elements other than vertexes is treated as a selection of entire object. In this case the Placement.Base of a selected object is taken as a reference.

Note2: If only one vertex|entire object is selected, then created WireFlex will be built from the Points property of selected object and no vertex attachments are made. If selected object has no Points property, the creation is made from the vertexes of selected object.

After wire creation the first vertex|object which was selected in 3D View is automatically added to Attachment Support of a wire and the Map Mode property is set to Translate origin (general description of part attachment is here: Part EditAttachment). Additionally the same vertex|object is added to Vrtx_start property, the last selected vertex|object is added to Vrtx_end property and the selected mid vertexes|objects are added to Vrtxs_mid and Vrtxs_mid_idx accordingly.

At any time any WireFlex vertex can be detached or reatached to other object by using Attach Vertex or Remove Vertex Attachment tools (or by using Cables Edit command).

It is advised to experiment and familiarize yourself with the various options for possibly moving objects attached to a wire and observe the behavior of the wire depending on how many and which vertexes are attached to external objects and whether the Map Mode property is enabled or disabled for the entire wire. Even more interesting possibilities are provided by using e.g. Support Line or Support Point.

Example1
Movement of the Cube1 which is attached to WireFlex start vertex when Attachment Map Mode of WireFlex is set to Translate origin.

Example2
Movement of the Cube1 which is attached to WireFlex start vertex when Attachment Map Mode of WireFlex is Deactivated.

Animated version of the above images is here

Notes

  • A WireFlex can be edited with the Cables Edit command (run by double-click on the WireFlex in the Tree View) (introduced in version 0.2.0). Do not use Draft Edit due to the restrictions described below.

In version 0.1.4 and earlier Draft Edit was used with the following restrictions: When in Draft Edit mode DO NOT use "Add point" and "Delete point" from context menu. This can lead to wrong assignment of points attachments. To add or delete point from WireFlex use only Add Vertex or Delete Vertex while not in Draft Edit mode.

Properties

See also: Property View.

A Cables WireFlex object is derived from a Draft Wire and inherits all its properties. Some of the inherited properties are hidden (see Description). WireFlex has also the following additional properties:

Data

Wire Flex

  • DataVrtx_start (LinkSub): specifies the attachment support for the first vertex (point) of the wire.
  • DataVrtx_end (LinkSub): specifies the attachment support for the last vertex (point) of the wire.
  • DataVrtxs_mid (LinkSubList): specifies the list of attachment support for the middle vertexes (points) of the wire. Middle vertexes: all wire vertexes except the first and the last vertex.
  • DataVrtxs_mid_idx (IntegerList): specifies the list of indexes of Vrtxs_mid attachment support list of the wire. The lowest mid idx number can have a value 2, the highest can have a value n-1, where n is the number of vertexes (points) of the wire.

It is recommended to not adjust the above properties manually, but to use Attach Vertex, Remove Vertex Attachment or Cables Edit tools which are designed to do so.

Wire Flex Shape

  • DataFillet Radius (Length): specifies the radius of the fillets at the corners of the wire. It is valid and visible if Path Type = Wire.
  • DataLength (Length): (read-only) specifies the total length of the wire.
  • DataPath Type (Enumeration): specifies the type of the wire shape (introduced in version 0.2.0). Possible values: Wire, BSpline_K, BSpline_P
  • DataBoundary Segment Start (Length): specifies the length of a straight edge at the beginning of a wire. It is valid and visible if Path Type = BSpline_P or BSpline_K. It can be used when beginning of a cable sits inside a connector or if a straight part of BSpline wire is needed. Its value is represented in 3D View as a boundary vertex with a special color. This vertex cannot be attached to other objects. It is recommended to leave the value of this property > 0 if the WireFlex is used as a base for Cable or Cable Conduit.
  • DataBoundary Segment End (Length): specifies the length of a straight edge at the end of a wire. It is valid and visible if Path Type = BSpline_P or BSpline_K. It can be used when end of a cable sits inside a connector or if straight part of BSpline wire is needed. Its value is represented in 3D View as a boundary vertex with a special color. This vertex cannot be attached to other objects. It is recommended to leave the value of this property > 0 if the WireFlex is used as a base for Cable or Cable Conduit.
  • DataBoundary Tangents (Bool): it specifies if the connections between the inner BSpline edge and boundary straight edges of a wire are tangent or not. It is valid and visible if Path Type = BSpline_K.
  • DataInner Tangents (Bool): it enables/disables usage of tangents on inner BSpline knots. It is valid and visible if Path Type = BSpline_K. When enabled, the BSpline is easier to control, otherwise it can be difficult to obtain desired shape, especially if Boundary Tangents are enabled.
  • DataParameterization (Float): affects the shape of the spline. It is valid and visible if Path Type = BSpline_K. Allowed range: [0.0, 3.0] (0 -> Uniform / 0.5 -> Centripetal / 1.0 -> Chord-Length). Same as in Draft BSPline.
  • DataTangency Coefficient (Float): it specifies if inner tangents form symmetric curves around knots (value = 0.5), bent toward start of spline (value < 0.5) or bent toward end of spline (value > 0.5). Allowed range: [0.0, 1.0]. It is valid and visible if Path Type = BSpline_K and Inner Tangents enabled.

View

Object Style

  • DataPoint Color (Color): it sets a color for normal unattached point in the 3D View.
  • DataPoint Color If Attached (Color): it sets a color for attached point in the 3D View.
  • DataPoint Color If Boundary (Color): it sets a color for boundary point in the 3D View.

Example

Example of WireFlex with Path Type = BSpline_K, Boundary Tangents = True. Boundary Segment Start and Boundary Segment End are > 0. On the first image Inner Tangents property is set to True, on the second to False:

Two wires with different Inner Tangents settings. (1), (3) are the boundary straight edges, (2) is the inner spline edge

.


AddVertex
Cables

This page is retrieved from https://wiki.freecad.org/Cables_WireFlex

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub