Flamingo Workbench: Difference between revisions

From FreeCAD Documentation
Line 144: Line 144:


==PYPE TOOLS==
==PYPE TOOLS==
===Insert a tube===
1) Insert a tube

Opens a dialog to insert tubes.
Opens a dialog to insert tubes.


Line 161: Line 162:
'''Apply''' button allow to apply a different lenght or Nominal diameter to the tubes currently selected.
'''Apply''' button allow to apply a different lenght or Nominal diameter to the tubes currently selected.


===Insert a curve===
2) Insert a curve

Opens a dialog to insert one elbow.
Opens a dialog to insert one elbow.


Line 172: Line 174:
* nothing; in this case the curve will be placed at origin.
* nothing; in this case the curve will be placed at origin.
If no angle is specified the default is 90 degrees.
If no angle is specified the default is 90 degrees.

===Insert a reduction===
3) Insert a reduction

Opens a dialog to insert concentric reductions.
Opens a dialog to insert concentric reductions.


Line 186: Line 190:


In case two pipes are selected, the tool will try automatically to connect them with the right major and minor diameter.
In case two pipes are selected, the tool will try automatically to connect them with the right major and minor diameter.

===Insert a cap===
4) Insert a cap

Opens dialog to insert caps.
Opens dialog to insert caps.


Line 194: Line 200:
nothing
nothing
If a pipe edge is selected the caps' properties will automatically fit to those of the pipe.
If a pipe edge is selected the caps' properties will automatically fit to those of the pipe.

===Insert a flange===
5) Insert a flange

Opens dialog to insert flanges.
Opens dialog to insert flanges.
To define position and orientation following selections are possible:
To define position and orientation following selections are possible:
Line 201: Line 209:
* nothing.
* nothing.
In case one pipe is selected, its properties are applied to the flange.
In case one pipe is selected, its properties are applied to the flange.

===Insert a U-bolt===
6) Insert a U-bolt

Opens dialog to insert U-bolts.
Opens dialog to insert U-bolts.


Line 211: Line 221:


With '''Ref. face''' button it's possible to select the face of the support to which to orient the U-bolt axis.
With '''Ref. face''' button it's possible to select the face of the support to which to orient the U-bolt axis.

===PypeLine Manager===
7) PypeLine Manager

Before talking about the dialog it's worth to recall what the pype-line object is in the context of Flamingo workbench.
Before talking about the dialog it's worth to recall what the pype-line object is in the context of Flamingo workbench.


Line 246: Line 258:


'''Part list''' generates a .csv file with the bill of material of the piping object included in the pype-line selected in the combo.
'''Part list''' generates a .csv file with the bill of material of the piping object included in the pype-line selected in the combo.

===Break the pipe===
8) Break the pipe

Opens a dialog to break one pipe at a defined point, optionally making a gap between the ends of the two parts. Multiple selection is possible.
Opens a dialog to break one pipe at a defined point, optionally making a gap between the ends of the two parts. Multiple selection is possible.


Line 258: Line 272:


The Pypeline combo, as usual, allow to choose the group to which to assign the new objects created.
The Pypeline combo, as usual, allow to choose the group to which to assign the new objects created.

===Rotate by axis===
9) Rotate by axis

Opens a dialog that allow to rotate one Part around the axis of its Shape.
Opens a dialog that allow to rotate one Part around the axis of its Shape.


Line 270: Line 286:


'''Reverse''' makes the rotation the opposite way round.
'''Reverse''' makes the rotation the opposite way round.

===Rotate by edge===
10) Rotate by edge

Opens a dialog to rotate any object around the axis of one of its circular edges.
Opens a dialog to rotate any object around the axis of one of its circular edges.


The behaviour is similar to the command above but the dialog is simpler, since it's only necessary to select the circular edge of one object in the viewport and press '''OK''' to perform the action.
The behaviour is similar to the command above but the dialog is simpler, since it's only necessary to select the circular edge of one object in the viewport and press '''OK''' to perform the action.

===Mate pipes edges.===
11) Mate pipes edges.

When two circular edges belonging to different objects are selected, pressing this button will make the second object move to make the edges concentric and coplanar.
When two circular edges belonging to different objects are selected, pressing this button will make the second object move to make the edges concentric and coplanar.


Line 280: Line 300:


It may happen that orientation of second object is not the desired one: in that case it's necessary to reverse it using other placing tools available in the workbench.
It may happen that orientation of second object is not the desired one: in that case it's necessary to reverse it using other placing tools available in the workbench.

===Put in the plane===
12) Put in the plane

(this is work-in-progress: at present time it places a curve at the intersection of two pipes)
(this is work-in-progress: at present time it places a curve at the intersection of two pipes)

===Extend pipes to intersection===
13) Extend pipes to intersection

By selecting two pipes, this command extend them both to their intersection point, if exists.
By selecting two pipes, this command extend them both to their intersection point, if exists.

===Extend pipe to intersection===
14) Extend pipe to intersection

By selecting two pipes, this command extend the first to the intersection with the other, if exists.
By selecting two pipes, this command extend the first to the intersection with the other, if exists.

===Lay-down the pipes===
15) Lay-down the pipes

By selecting one face and multiple pipes, this command translates the pipe along the normal of the face in order to make them lie on its plane.
By selecting one face and multiple pipes, this command translates the pipe along the normal of the face in order to make them lie on its plane.
===Raise-up the support===
Similar to the tool above but in this case is the support that is raised or lowered, so that the face is tangent to the pipe.


16) Raise-up the support

Similar to the tool above but in this case is the support that is raised or lowered, so that the face is tangent to the pipe.


==Installation==
==Installation==

Revision as of 12:55, 15 July 2017

Introduction

"Flamingo tools" is a set of commands, collected in different toolbars, made to speed up some actions in FreeCAD. It is available among the list of official addons, so it's possible to get it using the addons-installer macro.

File:Flamingos frame.png

CommandsFrame.py: that is one simple toolbox of 12 commands to arrange frames, trusses and similar in FreeCAD with the Arch`s Structure objects. Read tutorialFrame.pdf for more informations.

CommandsEagle.py: that's basically an addition, and shortcut, to the very fine FreeCAD-PCB workbench, to import position of objects from a .brd Eagle's file on a PCB drawn in FreeCAD with the a.m. workbench relating only on their names. -> "If the parts in the group Parts of the .FCStd file have the same name of the parts in the .brd file, they will be moved to the position of the PCB specified in the .brd file." Read tutorialEagle.pdf for more informations

CommandsPolar.py: to import a set of polar coordinates from a spreadsheet and use them to draw a sketch. That is for future development of a project that includes also a prototype electronic board and a ultrasonic range finder...

File:Flamingos pipe.png

CommandsPipe.py: new toolbar under development from September '16. Read tutorialPype.pdf for some anticipations. Read tutorialPype2.pdf for more specific features.

References


FRAME TOOLS

1) Place one-beam over one-edge (class frameIt)

Given a beam object and an edge in the model, this tool lay down the beam over the edge by selecting them one after the other until ESC is pressed.

2) Fill the frame (class fillFrame)

Dialog to create over multiple edges selected in the viewport the beams of the type of that previously chosen among those present in the model. With the button Select it's possible to change the type of beam.

3) alignFlange (class alignFlange)

Tool to rotate beams (or other objects) so that their surfaces are parallel to one reference plane. If multiple faces are preselected, objects will be rotated according the first face in the selections set. Otherwise the program prompts to select one reference face and then the faces to be reoriented until ESC is pressed.

4) Spin beams by 45 deg. (class spinSect)

Tool to spin one object around the "Z" axis of its shape by 45 degrees.

5) Reverse orientation (class reverseBeam)

Tool to spin one object around the "X" axis of its shape by 180 degrees. Notes: if one edge of the object is selected, that is used as the pivot of rotation.

6) pivotTheBeam (class pivotBeam)

Dialog to rotate one beam or other object around one of its edges. Angle textbox to insert the degree of rotation. Reverse button to rotate in the opposite direction, if necessary. OK to perform the action and Cancel to close the dialog.

7) Flush the surfaces (class levelBeam)

Tool to flush the parallel faces of two objects. Actually the command takes to the same level, respect the position and orientation of the first face selected, the center-of-mass of all faces selected. Thus it translates the objects even if the faces are not parallel.

8) Mate the Edges (class alignEdge)

Tool to mate two parallel edges. Actually the command moves the objects along the minimum distance of their selected edge to the first one. Thus it translates the object even if edges are not parallel and it's a good way to place objects in desired position. It is also possible to select two edges of the same objects. With this method is possible to move quickly one object by steps defined on its own geometry.

9) Rotate + mate the edges (class rotJoin)

Tool to translate and rotate the beams to mate two edges. Same as above but it also makes the edges co-linear.

10) Shift the beam (class shiftBeam)

Dialog to translate and copy objects.

X, Y and Z textboxes for direct input the amount of translation in each direction.

Multiple textbox is the multiple coefficient of the translation amount.

Steps textbox is the denominator of the translation amount. It's used when the amount of translation is to be covered in some steps.

Get displacement button to take the amount and direction of translation from the distance of selected entities (points, edges, faces) or even from a single edge. In the latter case, a green arrow is displayed to show the direction.

OK to perform the action and Cancel to close the dialog.

11) Stretch the beam (class stretchBeam)

Dialog to change the length of beams.

In the textbox write the new length that will be applied to selected beams or pipes. Otherwise Get Length button takes the new length from the selected geometry (either the length of a beam or edge or the distance between geometric entities).

With the slider it's possible to change the length wirtten in the text-box from -100% to +100%.

12) Extend the beam (class extend)

Dialog to extend one beam to one selected target.

If entities are preselected before calling this command, the first entity is automatically taken as target and the object attached to it is removed from the selection set. In any case it's possible to change the target object with the push-button Select.

13) Adjust frames' angle (class adjustFrameAngle)

Tool to adjust the beams at square angles of frames. To understand at best how it works, refer to the previous tutorial.

14) Insert a path (class insertPath)

Tool to create a continuous DWire over the path defined by the edges selected in the viewport, even if these are not touching or are intersecting in the middle or belongs to different objects. The only constraint is that exists the intersection between two subsequent edges, in the order that they were selected. Also the DWire is given the view-properties of a center-line, i.e. orange and dash-dotted.

15) FrameLine manager (class FrameLineManager)

Same as for "pype-line" objects, this is a dialog to create and change properties of "frame-line" objects.

Also similarly to what seen above, the frame-lines are objects that collects properties common to a set of beams (namely the beam's section) which are included in a common group in the tree of the model. They also have an optional property ".Base", by default set to None, which is the centerline of the beams of the frame. After a path, alias .Base, is defined (a DWire or a Sketch) other beams can be added to the frame-line but they will be deleted when Redraw is invoked. The dialog provides the following features:

  • a list of beams' profiles previously included in the model by "Insert Std. Sections" dialog (read further);
  • a combo-box to select the active FrameLine among those already created or <new> to create a new one;
  • a text-box where to write the name of the FrameLine that is going to be created; if nothing or "<name>", the FrameLined will be named as default "Telaio00n";
  • Insert button: creates a new FrameLine object or adds new members to the one selected in the combo-box if edges are selected in the active viewport.
  • Redraw button: creates new beams and places them over the selected path. New beams will be collected inside the group of the FrameLine. Does not create or update beams added to the FrameLine outside its defined path.
  • Clear button: deletes all beams in the FrameLine group. It applies also to beams added to the FrameLine outside its defined path.
  • Get Path button: assigns the Dwire selected to the attribute Path of the FrameLine object.
  • Get Profile button: changes the Profile attribute of the FrameLine object to the one of the beam selected in the viewport or the one selected in the list.
  • Copy profile checkbox: if checked generates a new profile object for each beam in order to avoid multiple references in the model.
  • Move to origin checkbox: if checked, moves the center-of-mass of the profile to the origin of coordinates system: that makes the centerline of the beam coincide with the c.o.m. of the profile.

If the name of a FrameLine object is modified, also the name of the relevant group will change automatically but not viceversa

16) Insert Std. Sections (class insertSection)

Dialog to create the set of profiles to be used in the model for object FrameLine.

  • Section list: it includes all the sections defined in the .csv file corresponding to the selected section type.
  • Section types list: the types of profiles defined with the .csv files included in the folder /tables
  • Insert button: creates the group "Profiles_set", if not already existing, and adds to it the object of the selected profile.

Other profiles tables can be created by adding the relevant .csv file in the /tables folder. The rules to create or customize such tables are similar to those for pipe-lines.

Other profiles can be drafted in the model and dragged inside the group "Profiles_set".

The orientation of the DWires may influence the rendering of beams.

PYPE TOOLS

1) Insert a tube

Opens a dialog to insert tubes.

The top-right combo is a common feature for all "Insert ..." dialogs: it lists the pype-line objects defined in the current document: with this it's possible to select to which pype-line to assign the newly created pipes. You can also leave it to <none> so that the object is created on the root line of the part model. In the top-left corner is printed the currently selected pipe rating, taken from the listbox in the right column. Pipes dimensions for each pipe-rating are defined in .csv files, which is possible to add or modify, with few simple naming rules, according needs. Curves, reductions etc. have the same rules for definition of their tables of dimensions: see files in ../Mod/flamingo/Tables. Read also "tutorialPype.pdf" to know how to customize or create them.

To define position and orientation of pipes, following selections are possible:

  • one or more straight edges
  • one or more curved edges
  • one or more vertexes
  • nothing; in this case the tube will be placed at origin.

If no length is specified, the default is 200 units (just a convenient length, in mm).

Reverse button allow to rotate by 180° the last tube created or those currently selected.

Apply button allow to apply a different lenght or Nominal diameter to the tubes currently selected.

2) Insert a curve

Opens a dialog to insert one elbow.

Beside the common widgets with other "Insert..." dialogs, the Trim/Extend button allow to adjust the length of selected pipes to the selected edge of the curve. To define position and orientation following selections are possible:

  • one vertex,
  • one circular edge
  • one pipe at one of its ends; in this case the curve's diameter and thickness will automatically fit those of the selected pipe
  • a pair of edges or pipes or beams, also not contiguous but intersecting; in this case curve's properties will automatically fit to connect the two selected objects; also selected pipes will be automatically trimmed or extended to the curve's edges
  • nothing; in this case the curve will be placed at origin.

If no angle is specified the default is 90 degrees.

3) Insert a reduction

Opens a dialog to insert concentric reductions.

To define position and orientation following selections are possible: two pipes parallel (possibly co-linear)

  • one pipe at one of its ends
  • one pipe
  • one circular edge
  • one straight edge
  • one vertex
  • nothing (created at origin)

In case one pipe is selected, its properties are applied to the reduction.

In case two pipes are selected, the tool will try automatically to connect them with the right major and minor diameter.

4) Insert a cap

Opens dialog to insert caps.

To define position and orientation following selections are possible: one or more curved edges (axis and origin across the center) one or more vertexes nothing If a pipe edge is selected the caps' properties will automatically fit to those of the pipe.

5) Insert a flange

Opens dialog to insert flanges. To define position and orientation following selections are possible:

  • one or more circular edges,
  • one or more vertexes,
  • nothing.

In case one pipe is selected, its properties are applied to the flange.

6) Insert a U-bolt

Opens dialog to insert U-bolts.

To define position and orientation following selections are possible:

  • one or more circular edges
  • one or more pipes
  • nothing.

In case one pipe is selected, its properties are aplied to the U-bolt. Moreover it's possible to choose to place the U-bolt at the Head or Tail ends or in the Middle of the pipes by checking the relevant box.

With Ref. face button it's possible to select the face of the support to which to orient the U-bolt axis.

7) PypeLine Manager

Before talking about the dialog it's worth to recall what the pype-line object is in the context of Flamingo workbench.

This object represent a collection of objects "PType" that are updated with the methods defined in the Python class itself. At present time it creates, with the method "obj.Proxy.update(obj,[edges])", pipes and curves over the given edges and collect them in a group named according the object's obj.Label. A standard bending radius "3D" (i.e. 1.5xO.D.) is applied for curves. The Bend Radius is a common property of object pype-line, thus it can be changed and then redrawn. When the Label of the object pype-line is renamed, the name of its group is changed accordingly.

The class PypeLine2 has also the optional attribute ".Base", which namely represent the centerline of the piping:

  • If Base is None, PypeLine2 behaves like a bare container of objects, with possibility to group them automatically, assign one color and extract the part-list.
  • .Base can be a Wire or a Sketch or any object which has edges in its Shape.
  • Running "obj.Proxy.update(obj)", without any [edges], the class attempts to render the pypeline (Pipe and Elbow objects) on the "obj.Base" edges: for well defined geometries this usually leads to the desired result. If [edges] are given, pipes and curves will be drawn along them.
  • Running "obj.Proxy.purge(obj)" deletes from the model all Pipes and Elbows that belongs to the pype-line.
  • Remember that the object created outside the .Base won't be updated when the .Base is changed and the pypeline is redrawn and (except pipe and curves) won't be deleted if the pype-line is purged.

This understood, the command opens the dialog to create or modify one pype-line.

The dialog is very similar to those for insert other objects seen before.

The pipe ratings tables, where the O.D. and thickness are defined, are the same of those for tubes (e.g. Pipe_SCH-STD.csv).

When <new> is in the combo and Insert is pressed, a new pype-line object is created in the document with the relevant group.

It is possible to create one pypeline in three ways, according to the objects selected in the viewport when Insert is pushed:

  • nothing is selected. One pype-line is created with property .Base = None and included in its group with the specified name and color (or default values). The piping objects to populate it can be created one-by-one with the commands seen above or alternatively a centerline can be selected afterwards with Get Profile and Redraw buttons.
  • one DWire object is selected. It is automatically taken as Base and converted in a Path (orange, dash-dotted) and pipes and curves are drawn along it.
  • a set of edges are selected (even not contiguous but anyway having intersections extending their ends). One Path is created connecting all the edges (see the Path tool in the Frame toolbar) and assigned as .Base to the newly created pype-line. Then pipes and curves are drawn on it as above.

After that it's still possible to add other objects (such as Flange, Reduct...) using the relevant insertion commands described above. When objects are created within a pype-line they are automatically included in the relevant group of the model and the common properties (i.e. O.D., thickness, color, bending radius etc.) are applied.

If at least one pype-line is already in the model, that can be selected from the combo-box: in this case, pushing Insert creates the pipes and curves like described above but, instead of creating a new pype-line object, it adds them to the selected existing pype-line. Beware that the piping created in this way will be deleted at next Redraw.

Get Path, Get Profile and Color allow to change the .Base property, the nominal size and color of the object respectively.

Redraw re-create tubes and curves along the .Base (if defined) after any modification to the path or the properties of the pype-line.

Part list generates a .csv file with the bill of material of the piping object included in the pype-line selected in the combo.

8) Break the pipe

Opens a dialog to break one pipe at a defined point, optionally making a gap between the ends of the two parts. Multiple selection is possible.

Insert in the Point text-box the length where the pipe or pipes are going to break: this can be an absolute value or just a percentage of the length (a numeral followed by %). In some case it's quicker to use the slide-bar at the bottom to change this value.

The Length button allow to measure the length of the selected pipe and use that as the reference of the slide-bar scale.

If it's needed just to break pipes in two, leave the Gap text-box to 0; otherwise define the length of the gap. If a reference length is choosen, also the gap can be defined as a percentage. As seen in the tutorial, it's possible to measure the gap from geometries in the model with the Get gap button: that's the distance between any geometric entity or even the length of a single edge.

Pushing on Break performs the action.

The Pypeline combo, as usual, allow to choose the group to which to assign the new objects created.

9) Rotate by axis

Opens a dialog that allow to rotate one Part around the axis of its Shape.

The axis can be defined directly by input of its coordinates or by selecting one edge + the part to be rotated and pushing Get shape axis.

Move/Copy radio buttons allow to choose the corresponding action. Notice that when is Copy is choosen, the original object is the one that is moved while the copy lies in the original position. That may be important in retrieving the object in the model tree.

Angle text-box defines the amount of rotation.

Finally press OK once or more time to perform the action and Cancel to close the dialog.

Reverse makes the rotation the opposite way round.

10) Rotate by edge

Opens a dialog to rotate any object around the axis of one of its circular edges.

The behaviour is similar to the command above but the dialog is simpler, since it's only necessary to select the circular edge of one object in the viewport and press OK to perform the action.

11) Mate pipes edges.

When two circular edges belonging to different objects are selected, pressing this button will make the second object move to make the edges concentric and coplanar.

This works not only with pipes.

It may happen that orientation of second object is not the desired one: in that case it's necessary to reverse it using other placing tools available in the workbench.

12) Put in the plane

(this is work-in-progress: at present time it places a curve at the intersection of two pipes)

13) Extend pipes to intersection

By selecting two pipes, this command extend them both to their intersection point, if exists.

14) Extend pipe to intersection

By selecting two pipes, this command extend the first to the intersection with the other, if exists.

15) Lay-down the pipes

By selecting one face and multiple pipes, this command translates the pipe along the normal of the face in order to make them lie on its plane.

16) Raise-up the support

Similar to the tool above but in this case is the support that is raised or lowered, so that the face is tangent to the pipe.

Installation

Automatic installation

See Installing

From GitHub

To install the workbenches, you may copy as usual the files of this repository in a subfolder of \Mod in you FreeCAD installation of your system or use the addons-installer macro.

Links to Flamingo WB

Other useful links