What this script does:
- Prompts you to select a size
- Creates a new part with a name associated with the standard size you selected
from math import cos,sin,radians # Size of Flange TYPE 11 According to BS/EN-1092 PN16 #--- INPUT HERE ---# print('Input DN Flange size: 10, 15, 20, 25, 32, 40, 50, 65, 80, 100, 125, 150, 200, 250, 300, 350, 400, 450, 500, 600, 700, 800, 900, 1000, 1200, 1400, 1600') DN = int(Read()) #--- INPUT STOP ---# # Measurements table D,C2,H2,H3,R,A,N1,d1,f1,K,L,N from here #http://www.roymech.co.uk/Useful_Tables/Flanges/BSEN1092_16_Dimensions.html DNData = {} DNData[10] = [90,14,35,6,4,17.2,28,40,2,60,14,4] DNData[15] = [95,14,35,6,4,21.3,32,45,2,65,14,4] DNData[20] = [105,14,38,6,4,26.9,39,58,2,75,14,4] DNData[25] = [115,16,38,6,4,33.7,46,68,2,85,14,4] DNData[32] = [140,16,40,6,6,42.4,56,78,2,100,18,4] DNData[40] = [150,16,42,7,6,48.3,64,88,2,110,18,4] DNData[50] = [165,18,45,8,6,60.3,75,102,2,125,18,4] DNData[65] = [185,18,45,10,6,76.1,90,122,2,145,18,4] DNData[80] = [200,20,50,10,8,88.9,105,138,2,160,18,8] DNData[100] = [220,20,52,12,8,114.3,131,158,2,180,18,8] DNData[125] = [250,22,55,12,8,139.7,156,188,2,210,18,8] DNData[150] = [285,22,55,12,10,168.3,192,212,2,240,22,8] DNData[200] = [340,24,62,16,10,219.1,235,268,2,295,22,12] DNData[250] = [405,26,70,16,12,273,292,320,2,355,26,12] DNData[300] = [460,28,78,16,12,323.9,344,378,2,410,26,12] DNData[350] = [520,30,82,16,12,355.6,390,438,2,470,26,16] DNData[400] = [580,32,85,16,12,406.4,445,490,2,525,30,16] DNData[450] = [640,40,87,16,12,457,490,550,2,585,30,20] DNData[500] = [715,44,90,16,12,508,548,610,2,650,33,20] DNData[600] = [840,54,95,18,12,610,652,725,2,770,36,20] DNData[700] = [910,36,100,18,12,711,755,795,2,840,36,24] DNData[800] = [1025,38,105,20,12,813,855,900,2,950,39,24] DNData[900] = [1125,40,110,20,12,914,955,1000,2,1050,39,28] DNData[1000] = [1255,42,120,22,16,1016,1058,1115,2,1170,42,28] DNData[1200] = [1485,48,130,30,16,1219,1262,1330,2,1390,48,32] DNData[1400] = [1685,52,145,30,16,1420,1465,1530,2,1590,48,36] DNData[1600] = [1930,58,160,35,16,1620,1668,1750,2,1820,56,40] D = DNData[DN][0] C2 = DNData[DN][1] H2 = DNData[DN][2] H3 = DNData[DN][3] R = DNData[DN][4] A = DNData[DN][5] N1 = DNData[DN][6] d1 = DNData[DN][7] f1 = DNData[DN][8] K = DNData[DN][9] L = DNData[DN][10] N = DNData[DN][11] # all values are in millimeters Units.Current = UnitTypes.Millimeters # Create part Flange = Part('DN%d Flange PN16' % (DN)) # body Profile = Flange.AddSketch('Profile', Flange.GetPlane('XY-Plane')) Line = Polyline() Line.AddPoint(PolylinePoint(DN/2.,0)) Line.AddPoint(PolylinePoint(d1/2.,0)) Line.AddPoint(PolylinePoint(d1/2.,f1)) Line.AddPoint(PolylinePoint(D/2.,f1)) Line.AddPoint(PolylinePoint(D/2.,C2)) Line.AddPoint(PolylinePoint(N1/2.,C2)) Line.AddPoint(PolylinePoint(A/2.,H2-H3)) Line.AddPoint(PolylinePoint(A/2.,H2)) Line.AddPoint(PolylinePoint(DN/2.,H2)) Line.AddPoint(PolylinePoint(DN/2.,0)) Profile.AddPolyline(Line,False) Flange.AddRevolveBoss('Body', Profile, Flange.GetAxis('Y-Axis'),360) #Chamfer Flange.AddChamfer('Chamfer<1>',Flange.GetFace('Face<2>'),1,False) #Fillet Flange.AddFillet('Fillet<1>',[Flange.GetEdge('Edge<6>'),Flange.GetEdge('Edge<7>')],R,False) # Hole Hole = Flange.AddSketch('Hole',Flange.GetFace('Face<8>')) for i in xrange(N): Ang = (360/N)*i Hole.AddCircle(sin(radians(Ang))*K/2.,cos(radians(Ang))*K/2.,L,False) Flange.AddExtrudeCut('Flange Hole',Hole,C2,True)