Flamingo Pype tools

Info about new implemented features, classes, modules or APIs. Might get technical!
PLEASE DO NOT POST HELP REQUESTS OR OTHER DISCUSSIONS HERE!
renatorivo
Posts: 1954
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Flamingo Pype tools

Postby renatorivo » Sun Mar 26, 2017 8:14 pm

I just want to point out that Flamingo is equipped with new tools for piping. Upgrade your Flamingo.
@oddtopus Very helpful. Thank you!

https://github.com/oddtopus/flamingo
https://github.com/oddtopus/flamingo/tr ... /tutorials
pablogil
Posts: 675
Joined: Wed Nov 26, 2014 3:19 pm
Location: Badajoz (Spain)
Contact:

Re: Flamingo Pype tools

Postby pablogil » Tue Mar 28, 2017 10:32 pm

Amazing!
Dark and Light stylesheets v2.0 to theme your FreeCAD UI, more information here
jidoeuf
Posts: 43
Joined: Sun Mar 01, 2015 4:06 pm

Re: Flamingo Pype tools

Postby jidoeuf » Mon Apr 03, 2017 5:01 pm

Yes, it's the beginning of a Plant Design Workbench !
Well done @oddtopus !
ikua
Posts: 114
Joined: Fri Apr 07, 2017 1:32 pm

Re: Flamingo Pype tools

Postby ikua » Mon Apr 10, 2017 3:48 pm

Awesome tool! Thank you very much vor that. I was searching a long time for something like that.

Playing around with it, I consturdted a pipyline with and added flanges to it. when i updated the profile with the pypeline Manger all tubes and curves updatet but the flanges did not. Do not know if this is a bug or i did something wrong!
eds
Posts: 24
Joined: Mon Feb 20, 2017 2:55 pm

Re: Flamingo Pype tools

Postby eds » Fri Apr 14, 2017 2:59 am

Just gonna chime in and say that this workbench is awesome! It has a lot of potential to do skids and piping modeling!
User avatar
TT-RS
Posts: 70
Joined: Fri Oct 24, 2014 9:19 pm

Re: Flamingo Pype tools

Postby TT-RS » Sat Apr 15, 2017 12:34 pm

Impressive, very promising tool!
renatorivo
Posts: 1954
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Re: Flamingo Pype tools

Postby renatorivo » Fri May 05, 2017 7:56 pm

Here are some data sets to expand the standard part library. I hope without mistakes.
Elbow_DIN_1626_90.csv

Code: Select all

PSize;OD;thk;BendAngle;BendRadius
DN20;26.9;2;90;29
DN25;33.7;2.3;90;38
DN32;42.4;2.6;90;48
DN40;48.3;2.6;90;57
DN50;60.3;2.9;90;76
DN65;76.1;2.9;90;95
DN80;88.9;3.2;90;114
DN100;114.3;3.6;90;152
DN125;139.7;4;90;190
DN150;168.3;4.5;90;229
DN200;219.1;5.9;90;305
DN250;273;6.3;90;381
DN300;323.9;7.1;90;457
Elbow_DIN_1626_45.csv Note For other angles, just replace 90 (or 45) with the desired value

Code: Select all

PSize;OD;thk;BendAngle;BendRadius
DN20;26.9;2;45;29
DN25;33.7;2.3;45;38
DN32;42.4;2.6;45;48
DN40;48.3;2.6;45;57
DN50;60.3;2.9;45;76
DN65;76.1;2.9;45;95
DN80;88.9;3.2;45;114
DN100;114.3;3.6;45;152
DN125;139.7;4;45;190
DN150;168.3;4.5;45;229
DN200;219.1;5.9;45;305
DN250;273;6.3;45;381
DN300;323.9;7.1;45;457
Elbow_-EN_10253_Inox_90.csv Note Here I used "-EN" because to me, in this case, does not accept "EN"

Code: Select all

PSize;OD;thk;BendAngle;BendRadius
DN8-1/4";13.7;2;90;20
DN10-3/8";17.2;2;90;28.5
DN15-1/2";21.3;2;90;28
DN15-1/2";21.3;2,5;90;28
DN20-3/4";26.9;2;90;29
DN20-3/4";26.9;2.5;90;29
DN25-1";33.7;2;90;38
DN25-1";33.7;3;90;38
DN25-1";35;2;90;52.5
DN25-1";35;3;90;52.5
DN25-1";40;2;90;60
DN32-1"1/4;42.4;2;90;48
DN32-1"1/4;42.4;3;90;48
DN40-1"1/2;48.3;2;90;57
DN40-1"1/2;48.3;3;90;57
DN40-1"1/2;50;2;90;75
DN40-1"1/2;50;3;90;75
DN40-1"1/2;54;2;90;75
DN40-1"1/2;54;3;90;75
DN50-2";60.3;2;90;76
DN50-2";60.3;3;90;76
DN50-2";70;2;90;92
DN50-2";70;3;90;92
DN65-2"1/2;76.1;2;90;95
DN65-2"1/2;76.1;3;90;95
DN65-2"1/2;80;2;90;120
DN65-2"1/2;84;2;90;120
DN65-2"1/2;84;3;90;120
DN80-3";88.9;2;90;114
DN80-3";88.9;3;90;114
DN80-3";88.9;4;90;114
DN80-3"1/2;101.6;2;90;134
DN80-3"1/2;101.6;3;90;134
DN80-3"1/2;104;2;90;150
DN100-4";114.3;2;90;152
DN100-4";114.3;3;90;152
DN100-4";129;2;90;187
DN125-5";139.7;2;90;190
DN125-5";139.7;3;90;190
DN125-5";139.7;4;90;190
DN125-5";154;2;90;225
DN125-5";156;3;90;225
DN150-6";168.3;2;90;229
DN150-6";168.3;3;90;229
DN150-6";168.3;4;90;229
DN150-6";204;2;90;300
DN150-6";206;3;90;300
DN200-8";219.1;2;90;305
DN200-8";219.1;3;90;305
DN200-8";219.1;4;90;305
DN200-8";254;2;90;375
DN200-8";254;3;90;375
DN200-8";254;4;90;375
DN250-10";273;2;90;381
DN250-10";273;3;90;381
DN250-10";273;4;90;381
DN300-12";323.9;2;90;457
DN300-12";323.9;3;90;457
DN300-12";323.9;4;90;457
Pipe_ASME_B36_19_Tubi inox.csv

Code: Select all

PSize;OD;thk
DN15-1/2";21.34;2.11
DN20-3/4";26.67;2.11
DN25-1";33.4;2.77
DN32-1"1/4;42.16;2.77
DN40-1"1/2;48.26;2.77
DN50-2";60.3;2.77
DN65-2"1/2;73.03;3.05
DN80-3";88.9;3.05
3"1/2;101.6;3.05
4";114.3;3.05
5";141.3;3.4
6";168.3;3.4
8";219.1;3.76
Pipe_DIN_8062_Tubi_di_scarico_PVC_duro.csv

Code: Select all

PSize;OD;thk
DN50;50;1.8
DN60;63;1.9
DN70;75;2.2
DN100;110;3.2
DN125;125;3.7
DN150;160;4.7
Pipe_DIN_19500_Tubi_di_scarico.csv

Code: Select all

PSize;OD;thk
DN50;60;3.5
DN70;80;3.5
DN100;112;4
DN125;137;4
DN150;162;5
DN200;212;6
Pipe_DIN_19532_Tubi_di_scarico_PE.csv

Code: Select all

PSize;OD;thk
DN26;32;3
DN34;40;3
DN40;50;3
DN50;56;3
DN60;63;3
DN70;75;3
DN80;90;3.5
DN100;110;4.3
DN125;125;4.9
DN150;160;6.2
DN200;200;6.2
DN250;250;7.8
DN300;315;9.8
Pipe_EN_1057_Tubi_rame.csv

Code: Select all

PSize;OD;thk
DN10;10;1
DN12;12;1
DN15;15;1
DN18;18;1
DN22;22;1
DN28;28;1.5
DN35;25;1.5
DN42;42;1.5
DN54;54;2
DN64;64;2
Pipe_EN_10216_Tubi_commerciali_lisci.csv

Code: Select all

PSize;OD;thk
DN50-2";60.3;2.9
DN65-2"1/2;76.1;2.9
DN80-3";88.9;3.2
DN100-4";114.3;3.6
DN125-5";139.7;4
DN150-6";168.3;4.5
DN200-8";219.1;6.3
DN250-10";273;6.3
DN300-12";323.9;8
DN400-16";406.4;8.8
DN450-18";457.2;10
DN500-20";508;11
Pipe_EN_10224_Tubi_neri_saldati.csv

Code: Select all

PSize;OD;thk
DN50-2";60.3;2.9
DN65-2"1/2;76.1;2.9
DN80-3";88.9;2.9
DN100-4";114.3;3.2
DN125-5";139.7;3.6
DN150-6";168.3;4
DN200-8";219.1;5
DN250-10";273;5.6
DN300-12";323.9;5.9
DN350-14";355.6;6.3
DN400-16";406.4;6.3
DN450-18";457.2;6.3
DN500-20";508;6.3
DN600-24";610;6.3
Pipe_EN_10224_Tubi_neri_SS.csv

Code: Select all

PSize;OD;thk
DN50-2";60.3;2.9
DN65-2"1/2;76.1;2.9
DN80-3";88.9;3.2
DN100-4";114.3;4
DN125-5";139.7;4.5
DN150-6";168.3;4.5
DN200-8";219.1;6.3
DN250-10";273;6.3
DN300-12";323.9;8
DN350-14";355.6;8
DN400-16";406.4;8.8
DN450-18";457.2;8.8
DN500-20";508;9.5
DN600-24";610;9.5
Pipe_EN_10255_Tubi_saldati_serie_leggera.csv

Code: Select all

PSize;OD;thk
DN10-3/8";17.2;2
DN15-1/2";21.3;2.3
DN20-3/4";26.9;2.6
DN25-1";33.7;2.6
DN32-1"1/4;42.4;2.9
DN40-1"1/2;48.3;2.9
DN50-2";60.3;3.2
DN65-2"1/2;76.1;3.2
DN80-3";88.9;3.6
DN100-4";114.3;3.6

Pipe_EN_10255_Tubi_SS_serie_leggera.csv

Code: Select all

PSize;OD;thk
DN10-3/8";17.2;2
DN15-1/2";21.3;2.3
DN20-3/4";26.9;2.6
DN25-1";33.7;2.6
DN32-1"1/4;42.4;2.9
DN40-1"1/2;48.3;2.9
DN50-2";60.3;3.2
DN65-2"1/2;76.1;3.2
DN80-3";88.9;3.6
DN100-4";114.3;4
Pipe_EN_10255_Tubi_SS_serie_media.csv

Code: Select all

PSize;OD;thk
DN10-3/8";17.2;2.3
DN15-1/2";21.3;2.6
DN20-3/4";26.9;2.6
DN25-1";33.7;3.2
DN32-1"1/4;42.4;3.2
DN40-1"1/2;48.3;3.2
DN50-2";60.3;3.6
DN65-2"1/2;76.1;3.6
DN80-3";88.9;4
DN100-4";114.3;4.5
DN125-5";139.7;5
DN150-6";165.1;5
Pipe_EN_10255_Tubi_SS_serie_pesante.csv

Code: Select all

PSize;OD;thk
DN10-3/8";17.2;2.9
DN15-1/2";21.3;3.2
DN20-3/4";26.9;3.2
DN25-1";33.7;4
DN32-1"1/4;42.4;4
DN40-1"1/2;48.3;4
DN50-2";60.3;4.5
DN65-2"1/2;76.1;4.5
DN80-3";88.9;5
DN100-4";114.3;5.4
DN125-5";139.7;5.4
DN150-6";165.1;5.4
Create the files and copy them into C:\Users\User\AppData\Roaming\FreeCAD\Mod\flamingo\tables

Small improvement request: expand the windows. Thank you.

Renato
oddtopus
Posts: 95
Joined: Tue Sep 20, 2016 6:17 pm

Re: Flamingo Pype tools

Postby oddtopus » Sun May 07, 2017 9:27 am

To @renatorivo: Thanks for the data-sets. I copy&pasted one of those .csv files in the "/tables" directory and it worked fine.
I'm glad to see that "flamingos" are getting usefull. :D
Removed also the "setMaximumWidth()" for the list-boxes in the dialog, so now it can be resized according to the needs.
ByTheWay, I started also to modify the dialogs with QtDesigner and integrate them in the user interface of FreeCAD: if you mind, try the commands "fillFrame" and "shiftTheBeam" and let me know.

To @ikua. At present time pypelines driven by a "path" are conceived as a set of pipes and curves only; so anytime you redraw one pypeline, the method deletes all curves and pipes inside the group of the pypeline and redraw them on the new or modified path. All other components (such as flanges, reductions, supports etc.) are left as they are. (Same as with the "Frameline" class, but with frames you shall also clear the old beams excplicitly before redrawing - I will make a tutorial also for that, sooner or later).
Pypelines are intended to collect objects easily and to draft the route of pipes roughly but refinements must still be "hand-made".
(Thinking about it I could make a new class Pypeline 3.0 that includes also other components using some xml... but it will be quite different from the present concept and quite challenging for me.)
renatorivo
Posts: 1954
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Re: Flamingo Pype tools

Postby renatorivo » Mon May 08, 2017 3:53 pm

Thanks for the window-data changes, now it works fine
finestra.png
finestra.png (11.97 KiB) Viewed 2500 times
oddtopus wrote:if you mind, try the commands "fillFrame" and "shiftTheBeam" and let me know.
It seems to me that the commands work properly. Perhaps, for beginners it may be useful to have some more suggestion.
Example: Join two edges ... The second selection is moved to the first one.

How can I create new profiles and archive them in Tables? Profiles U, L, etc.

Renato
oddtopus
Posts: 95
Joined: Tue Sep 20, 2016 6:17 pm

Re: Flamingo Pype tools

Postby oddtopus » Wed May 10, 2017 6:51 pm

To create the profiles I used the function makeProfile from the Arch module.
That function, beside the width (W), height (H) and thickness of flange and web (tf and ta), accepts a letter that defines the profile type: that is column "stype" of the .csv file. Herebelow you find an example for rectangular-hollow (RH) shaped profiles:

SSize;stype;H;W;ta;tf
RH40x40x5;RH;40;40;5;5
RH50x50x5;RH;50;50;5;5

For more information about the possible parameters, search the makeProfile() function inside ArchProfile.py.

Unfortunately it seems that it's not possible to create L-shaped profiles with that function yet, but there is another way to make it. Just sketch your profile using Sketcher (which I prefer) or Draft workbenches and then drag that sketch or shape into the "Profiles-set" group: that will make it available as a beam's profile.
This latter method may be tricky sometime because you have to care about the origin of your shape and also the orientation of the lines (clockwise or counter-clockwise) but with few experiments you may be able to understand how it works.
Also notice the "Move to origin" check-box when you create a frame-line: if that is checked, it moves the center-of-mass of the section in the origin of the drawing so that it will be coincident to the center-line of beams; otherwise it will leave the section as it is drawn so that the profile is shifted respect to center-line (usefull when an edge must be tangent to one surface, for instance).
Sooner or later I will summarize that in a tutorial, to keep track of it.