Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-----------------------------------------------------------------------------------
- # ::TURBOCHARGER COMPRESSOR PARAMETRIC MODEL GENERATOR v1.0::
- #
- # Genearates the profile of compressor by means of certain defining parameters
- #
- # Procedure:
- #
- # 1.Insert the values of Compressor Parameters
- # 2.The Profile is generated by our codes
- #
- #
- #
- # Test values:
- # Temperature - 300.5 [K]
- # Pressure - 1 [Bar]
- # Mass flow rate - 0.09 [Kg/s]
- # Speed - 75000 [RPM]
- # Pressure Ratio - 2.4
- # No. of Blades - 16
- # Power Factor - 1.04
- # Losses - 0.5
- #
- #-------------------------------------------------------------------------------------
- import FreeCAD, FreeCADGui, Part, PartGui, math
- from FreeCAD import Base
- from PySide import QtGui, QtCore
- from math import cos, radians
- from PySide.QtGui import QApplication, QDialog, QMainWindow
- App = FreeCAD
- Gui = FreeCADGui
- import Part
- import FreeCAD, FreeCADGui, Draft
- import Draft
- class p():
- def compressor(self):
- try:
- #-------------------
- # INPUTS
- #-------------------
- temp = float(self.dCr1.text()) #ambient temp of air[K]
- pr = float(self.dCr2.text()) #pressure of air[bar]
- mf = float(self.dCr3.text()) #mass flow rate[kg/s]
- rpm = float(self.dCr4.text()) #speed of compressor
- prr = float(self.dCr5.text()) #pressure ratio
- nb = float(self.dCr6.text()) #no. of blades
- eps = float(self.dCr7.text()) #power factor
- loss = float(self.dCr8.text()) #losses at impeller
- #-----------------------
- # PRELIMINARY DESIGN
- #-----------------------
- nc=0.8
- cp=1148 #
- R=287 #
- pi=3.14
- sg=1-((0.63*pi)/nb)
- g1=(prr**0.2857)-1
- g2=((cp*temp)/((nc*sg)*eps))*g1
- u2=g2**0.5
- rps=rpm/60
- d2=1000*(u2/(pi*rps))
- #------------------------
- # DIMENSION RATIOS
- #------------------------
- #PRIMARY OUTER SURFACE
- x1=0.5*d2
- x2=0.895*x1
- x3=0.6857*x1
- x4=0.6171*x1 #Z
- x5=0.5636*x1
- x20=0.5904*x1
- x21=0.8962*x1
- x6=0.6742*x1
- x7=1.0033*x6
- x8=0.1647*x6 #Y
- x9=0.5*x6
- x10=0.8349*x6
- x11=-0.4018*x1
- x12=0.3329*x11
- x13=-0.1815*x11
- x14=-0.5446*x11 #X
- x15=0.6215*x11
- x16=0.243*x11
- x17=-0.0739*x11
- x18=-0.238*x11
- x19=-0.56915*x11
- #PRIMARY INNER SURFACE
- x22=0.06867*x1 #Z
- x23=0.7451*x1
- x24=0.622*x1
- x25=0.3725*x1 #Y
- x26=0.1229*x1
- x27=0.7474*x1
- x28=0.74285*x1
- x29=-0.1737*x1
- x30=-0.0578*x1
- x31=0.0798*x1
- x32=0.2418*x1 #X
- x33=-0.1494*x1
- x34=-0.02354*x1
- x35=0.02971*x1
- x36=0.1094*x1
- x37=0.2434*x1
- #SECONDARY OUTER SURFACE
- x38=0.64*x1
- x39=0.6628*x1 #Z
- x40=0.8228*x1
- x41=0.4091*x1
- x42=0.3428*x1
- x43=0.2985*x1 #Y
- x44=0.0994*x1
- x45=-0.02285*x1
- x46=-0.01142*x1
- x47=0.08*x1
- x48=0.24*x1 #X
- x49=0.0068*x1
- x50=0.02514*x1
- x51=0.1051*x1
- x52=0.2582*x1
- #SECONDARY INNER SURFACE
- x53=0.2742*x1
- x54=0.48*x1
- x55=0.3885*x1
- x56=0.5*x46
- x57=0.1142*x1
- x58=0.01257*x1
- x59=0.1394*x1
- rot_blade=360/nb #ROTATION OF SECONDARY BLADES
- nb1=int(0.5*nb) #No. of each type of blade
- x60=0.2048*x1 #TIP DIA OF IMPELLER
- x61=0.9394*x1 #HEIGHT OF IMPELLER
- x62=0.022857143*x1
- #-----------------------
- # PYTHON SCRIPT
- #-----------------------
- App.newDocument("Compressor")
- App.setActiveDocument("Compressor")
- App.ActiveDocument=App.getDocument("Compressor")
- Gui.ActiveDocument=Gui.getDocument("Compressor")
- import Draft
- Gui.activateWorkbench("DraftWorkbench")
- points=[FreeCAD.Vector(x11,x6,x5),
- FreeCAD.Vector(x12,x10,x4),
- FreeCAD.Vector(0,x9,x3),
- FreeCAD.Vector(x13,x8,x2),
- FreeCAD.Vector(x14,0,x1)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- points=[FreeCAD.Vector(x11,x7,x5),
- FreeCAD.Vector(x15,x6,x20),
- FreeCAD.Vector(x16,x10,x4),
- FreeCAD.Vector(x17,x9,x3),
- FreeCAD.Vector(x18,x8,x21),
- FreeCAD.Vector(x19,0,x1)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- Gui.SendMsgToActiveView("ViewFit")
- Gui.activateWorkbench("PartWorkbench")
- FreeCAD.ActiveDocument.addObject('Part::RuledSurface', 'Ruled Surface')
- FreeCAD.ActiveDocument.ActiveObject.Curve1=(FreeCAD.ActiveDocument.BSpline,['Edge1'])
- FreeCAD.ActiveDocument.ActiveObject.Curve2=(FreeCAD.ActiveDocument.BSpline001,['Edge1'])
- App.ActiveDocument.recompute()
- points=[FreeCAD.Vector(x29,x23,x22),
- FreeCAD.Vector(x30,x24,x22),
- FreeCAD.Vector(0,x25,x22),
- FreeCAD.Vector(x31,x26,x22),
- FreeCAD.Vector(x32,0,x22)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- points=[FreeCAD.Vector(x29,x27,x22),
- FreeCAD.Vector(x33,x28,x22),
- FreeCAD.Vector(x34,x24,x22),
- FreeCAD.Vector(x35,x25,x22),
- FreeCAD.Vector(x36,x26,x22),
- FreeCAD.Vector(x37,0,x22)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- FreeCAD.ActiveDocument.addObject('Part::RuledSurface', 'Ruled Surface')
- FreeCAD.ActiveDocument.ActiveObject.Curve1=(FreeCAD.ActiveDocument.BSpline003,['Edge1'])
- FreeCAD.ActiveDocument.ActiveObject.Curve2=(FreeCAD.ActiveDocument.BSpline002,['Edge1'])
- App.ActiveDocument.recompute()
- from FreeCAD import Base
- import Part
- App.getDocument('Compressor').addObject('Part::Loft','Loft')
- App.getDocument('Compressor').ActiveObject.Sections=[App.getDocument('Compressor').Ruled_Surface, App.getDocument('Compressor').Ruled_Surface001, ]
- App.getDocument('Compressor').ActiveObject.Solid=True
- App.getDocument('Compressor').ActiveObject.Ruled=True
- App.getDocument('Compressor').ActiveObject.Closed=False
- Gui.activeDocument().activeView().viewFront()
- Gui.activeDocument().activeView().viewTop()
- App.ActiveDocument.recompute()
- points=[FreeCAD.Vector(x45,x41,x38),
- FreeCAD.Vector(x46,x42,x39),
- FreeCAD.Vector(0,x43,x3),
- FreeCAD.Vector(x47,x44,x40),
- FreeCAD.Vector(x48,0,x1)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- points=[FreeCAD.Vector(x46,x41,x38),
- FreeCAD.Vector(x49,x42,x39),
- FreeCAD.Vector(x50,x43,x3),
- FreeCAD.Vector(x51,x44,x40),
- FreeCAD.Vector(x52,0,x1)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- Gui.SendMsgToActiveView("ViewFit")
- Gui.activateWorkbench("PartWorkbench")
- FreeCAD.ActiveDocument.addObject('Part::RuledSurface', 'Ruled Surface')
- FreeCAD.ActiveDocument.ActiveObject.Curve1=(FreeCAD.ActiveDocument.BSpline004,['Edge1'])
- FreeCAD.ActiveDocument.ActiveObject.Curve2=(FreeCAD.ActiveDocument.BSpline005,['Edge1'])
- App.ActiveDocument.recompute()
- points=[FreeCAD.Vector(x46,x54,x53),
- FreeCAD.Vector(x56,x55,x53),
- FreeCAD.Vector(0,x43,x53),
- FreeCAD.Vector(x57,x44,x53),
- FreeCAD.Vector(x48,0,x53)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- points=[FreeCAD.Vector(0,x54,x53),
- FreeCAD.Vector(x58,x55,x53),
- FreeCAD.Vector(x50,x43,x53),
- FreeCAD.Vector(x59,x44,x53),
- FreeCAD.Vector(x52,0,x53)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- Gui.SendMsgToActiveView("ViewFit")
- Gui.activateWorkbench("PartWorkbench")
- FreeCAD.ActiveDocument.addObject('Part::RuledSurface', 'Ruled Surface')
- FreeCAD.ActiveDocument.ActiveObject.Curve1=(FreeCAD.ActiveDocument.BSpline006,['Edge1'])
- FreeCAD.ActiveDocument.ActiveObject.Curve2=(FreeCAD.ActiveDocument.BSpline007,['Edge1'])
- App.ActiveDocument.recompute()
- Gui.getDocument("Compressor").getObject("Loft").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline001").Visibility=False
- Gui.getDocument("Compressor").getObject("Ruled_Surface").Visibility=False
- Gui.getDocument("Compressor").getObject("Ruled_Surface001").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline003").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline002").Visibility=False
- App.ActiveDocument.recompute()
- Gui.getDocument("Compressor").getObject("BSpline004").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline005").Visibility=False
- Gui.getDocument("Compressor").getObject("Ruled_Surface003").Visibility=False
- Gui.getDocument("Compressor").getObject("Ruled_Surface002").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline006").Visibility=False
- Gui.getDocument("Compressor").getObject("BSpline007").Visibility=False
- App.getDocument('Compressor').addObject('Part::Loft','Loft')
- App.getDocument('Compressor').ActiveObject.Sections=[App.getDocument('Compressor').Ruled_Surface003, App.getDocument('Compressor').Ruled_Surface002, ]
- App.getDocument('Compressor').ActiveObject.Solid=True
- App.getDocument('Compressor').ActiveObject.Ruled=True
- App.getDocument('Compressor').ActiveObject.Closed=False
- Gui.getDocument("Compressor").getObject("Loft").Visibility=True
- App.getDocument("Compressor").Loft001.Placement=App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,-1,0),rot_blade), App.Vector(0,0,0))
- App.activeDocument().recompute()
- App.activeDocument().addObject('Sketcher::SketchObject','Sketch')
- App.activeDocument().Sketch.Placement = App.Placement(App.Vector(0.000000,0.000000,0.000000),App.Rotation(0.000000,0.000000,0.000000,1.000000))
- Gui.activeDocument().activeView().setCamera('#Inventor V2.1 ascii \n OrthographicCamera {\n viewportMapping ADJUST_CAMERA \n position 0 0 87 \n orientation 0 0 1 0 \n nearDistance -112.88701 \n farDistance 287.28702 \n aspectRatio 1 \n focalDistance 87 \n height 143.52005 }')
- Gui.activeDocument().setEdit('Sketch')
- App.ActiveDocument.Sketch.addGeometry(Part.Line(App.Vector(32.614471,-0.072811,0),App.Vector(0.370602,0.080004,0)),False)
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('PointOnObject',0,1,-1))
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,-1,1))
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Horizontal',0))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addGeometry(Part.Line(App.Vector(0.000000,0.000000,0),App.Vector(0.217790,41.187115,0)),False)
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,1,1))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('PointOnObject',1,2,-2))
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Vertical',1))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addGeometry(Part.Line(App.Vector(0.000000,41.187115,0),App.Vector(6.483186,41.034298,0)),False)
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Horizontal',2))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addGeometry(Part.ArcOfCircle(Part.Circle(App.Vector(52.833928,41.711386,0),App.Vector(0,0,1),46.353707),3.152903,4.261018),False)
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',3,1,2,2))
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Coincident',3,2,0,1))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceX',2,1,2,2,6.483186))
- App.ActiveDocument.Sketch.setDatum(10,App.Units.Quantity(x60))
- App.ActiveDocument.recompute()
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceX',0,2,0,1,32.624541))
- App.ActiveDocument.Sketch.setDatum(11,App.Units.Quantity(x1))
- App.ActiveDocument.recompute()
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceY',1,1,1,2,41.184251))
- App.ActiveDocument.Sketch.setDatum(12,App.Units.Quantity(x61))
- App.ActiveDocument.recompute()
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(3,0,App.Vector(13.512656,27.433807,0),0)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(2,0,App.Vector(1.222517,-0.305630,0),1)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(2,0,App.Vector(-0.305626,-2.292217,0),1)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(0,0,App.Vector(0.305632,1.680960,0),1)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(3,0,App.Vector(18.555534,14.903014,0),0)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(3,0,App.Vector(19.319607,12.457981,0),0)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Radius',3,39.410787))
- App.ActiveDocument.Sketch.setDatum(13,App.Units.Quantity('39.410800 mm'))
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(3,0,App.Vector(13.665469,21.321222,0),0)
- App.ActiveDocument.recompute()
- Gui.getDocument('Compressor').resetEdit()
- App.getDocument('Compressor').recompute()
- App.ActiveDocument.Sketch.movePoint(3,0,App.Vector(9.845107,27.739431,0),0)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.movePoint(0,0,App.Vector(-1.069698,0.764073,0),1)
- App.ActiveDocument.recompute()
- App.ActiveDocument.Sketch.delConstraint(2)
- App.ActiveDocument.Sketch.delConstraint(4)
- Gui.getDocument('Compressor').resetEdit()
- App.getDocument('Compressor').recompute()
- Gui.activateWorkbench("PartWorkbench")
- FreeCAD.ActiveDocument.addObject("Part::Revolution","Revolve")
- FreeCAD.ActiveDocument.Revolve.Source = FreeCAD.ActiveDocument.Sketch
- FreeCAD.ActiveDocument.Revolve.Axis = (0.00,1.00,0.00)
- FreeCAD.ActiveDocument.Revolve.Base = (0.00,0.00,0.00)
- FreeCAD.ActiveDocument.Revolve.Angle = 360.00
- FreeCAD.ActiveDocument.Revolve.Solid = True
- FreeCADGui.ActiveDocument.Sketch.Visibility = False
- Gui.activateWorkbench("DraftWorkbench")
- Draft.makeArray(FreeCAD.ActiveDocument.Loft,FreeCAD.Vector(1,0,0),FreeCAD.Vector(0,1,0),2,2)
- FreeCAD.ActiveDocument.recompute()
- FreeCAD.getDocument("Compressor").getObject("Array").ArrayType = "polar"
- FreeCAD.getDocument("Compressor").getObject("Array").Axis = (0.00, 1.00, 0.00)
- FreeCAD.getDocument("Compressor").getObject("Array").NumberPolar = nb1
- Draft.makeArray(FreeCAD.ActiveDocument.Loft001,FreeCAD.Vector(1,0,0),FreeCAD.Vector(0,1,0),2,2)
- FreeCAD.ActiveDocument.recompute()
- FreeCAD.getDocument("Compressor").getObject("Array001").ArrayType = "polar"
- FreeCAD.getDocument("Compressor").getObject("Array001").Axis = (0.00, 1.00, 0.00)
- FreeCAD.getDocument("Compressor").getObject("Array001").NumberPolar = nb1
- App.ActiveDocument.recompute()
- import Draft
- Gui.activateWorkbench("DraftWorkbench")
- points=[FreeCAD.Vector(70.612816,0,111.944237),FreeCAD.Vector(93.783401,0,103.491882),FreeCAD.Vector(109.884888,0,84.275223),FreeCAD.Vector(114.291458,0,59.181801),FreeCAD.Vector(105.421951,0,34.865116),FreeCAD.Vector(85.270966,0,17.979660),FreeCAD.Vector(58.976410,0,13.361313),FreeCAD.Vector(33.513634,0,22.647987),FreeCAD.Vector(15.844212,0,43.733292),FreeCAD.Vector(11.014069,0,71.228775),FreeCAD.Vector(20.717926,0,97.837860),FreeCAD.Vector(42.737549,0,116.291245)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- App.getDocument("Compressor").BSpline008.Placement=App.Placement(App.Vector(-64,0,-64), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- import Draft
- pl=FreeCAD.Placement()
- pl.Rotation.Q=(0.0,0.707106781187,0.707106781187,-0.0)
- pl.Base=FreeCAD.Vector(6.612816,2.85769938574e-06,47.944237)
- Draft.makeCircle(radius=0.964689342748,placement=pl,face=True,support=None)
- pl=FreeCAD.Placement()
- pl.Rotation.Q=(0.0,0.707106781187,0.707106781187,-0.0)
- pl.Base=FreeCAD.Vector(-21.262451,3.11680126886e-06,52.291245)
- Draft.makeCircle(radius=1.44025776598,placement=pl,face=True,support=None)
- FreeCAD.ActiveDocument.getObject("Circle").MakeFace = False
- FreeCAD.ActiveDocument.getObject("Circle001").MakeFace = False
- FreeCAD.ActiveDocument.getObject("Circle").Radius = '2 mm'
- FreeCAD.ActiveDocument.getObject("Circle001").Radius = '9 mm'
- App.ActiveDocument.Circle.Placement=App.Placement(App.Vector(6.7128,2.8577e-06,47.9442), App.Rotation(App.Vector(0,1,0),99), App.Vector(0,0,0))
- App.ActiveDocument.Circle001.Placement=App.Placement(App.Vector(-21.3625,3.1168e-06,52.2912), App.Rotation(App.Vector(0,1,0),63), App.Vector(0,0,0))
- pl=FreeCAD.Placement()
- pl.Rotation.Q=(0.0,0.707106781187,0.707106781187,-0.0)
- pl.Base=FreeCAD.Vector(-0.0521272420883,3.75140502292e-06,62.9381286215)
- Draft.makeCircle(radius=11.3679802191,placement=pl,face=True,support=None)
- FreeCAD.ActiveDocument.getObject("Circle002").MakeFace = False
- FreeCAD.ActiveDocument.getObject("Circle002").Radius = '11.5 mm'
- App.ActiveDocument.Circle002.Placement=App.Placement(App.Vector(-0.0555272,3.75141e-06,62.9381), App.Rotation(App.Vector(0,1,0),61), App.Vector(0,0,0))
- App.ActiveDocument.Circle002.Placement=App.Placement(App.Vector(-0.0555272,3.75141e-06,62.9381), App.Rotation(App.Vector(0,1,0),63), App.Vector(0,0,0))
- Gui.activateWorkbench("PartWorkbench")
- App.ActiveDocument.Circle.Placement=App.Placement(App.Vector(6.71282,2.8577e-06,47.9442), App.Rotation(App.Vector(0,1,0),100), App.Vector(0,0,0))
- App.ActiveDocument.Circle001.Placement=App.Placement(App.Vector(-21.625,3.1168e-06,52.2912), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- App.ActiveDocument.Circle002.Placement=App.Placement(App.Vector(17,-74.2486,62.9381), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- Gui.activateWorkbench("PartWorkbench")
- App.ActiveDocument.Circle002.Placement=App.Placement(App.Vector(17,-74.2486,69.9381), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- App.getDocument("Compressor").BSpline008.Placement=App.Placement(App.Vector(-64,0,-66), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle002.Placement=App.Placement(App.Vector(17,0,69.9381), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- Gui.activeDocument().activeView().viewRear()
- Gui.activeDocument().activeView().viewRear()
- App.getDocument("Compressor").BSpline008.Placement=App.Placement(App.Vector(-65,0,-65), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle.Placement=App.Placement(App.Vector(6.71282,2.8577e-06,46.9442), App.Rotation(App.Vector(0,1,0),100), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle001.Placement=App.Placement(App.Vector(-22.625,3.1168e-06,51.2912), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle.Placement=App.Placement(App.Vector(5.71282,2.8577e-06,46.9442), App.Rotation(App.Vector(0,1,0),100), App.Vector(0,0,0))
- from FreeCAD import Base
- import Part
- App.getDocument('Compressor').addObject('Part::Sweep','Sweep')
- App.getDocument('Compressor').ActiveObject.Sections=[App.getDocument('Compressor').Circle, App.getDocument('Compressor').Circle001, ]
- App.getDocument('Compressor').ActiveObject.Spine=(App.ActiveDocument.BSpline008,["Edge1"])
- App.getDocument('Compressor').ActiveObject.Solid=True
- App.getDocument('Compressor').ActiveObject.Frenet=True
- from FreeCAD import Base
- import Part
- App.getDocument('Compressor').addObject('Part::Loft','Loft')
- App.getDocument('Compressor').ActiveObject.Sections=[App.getDocument('Compressor').Circle001, App.getDocument('Compressor').Circle002, ]
- App.getDocument('Compressor').ActiveObject.Solid=True
- App.getDocument('Compressor').ActiveObject.Ruled=False
- App.getDocument('Compressor').ActiveObject.Closed=False
- App.getDocument("Compressor").Circle002.Placement=App.Placement(App.Vector(17,0,69.9381), App.Rotation(App.Vector(0,1,0),66), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle002.Placement=App.Placement(App.Vector(17,0,69.9381), App.Rotation(App.Vector(0,1,0),64), App.Vector(0,0,0))
- App.activeDocument().addObject("Part::MultiFuse","Fusion")
- App.activeDocument().Fusion.Shapes = [App.activeDocument().Loft002,App.activeDocument().Sweep,]
- Gui.activeDocument().Loft002.Visibility=False
- Gui.activeDocument().Sweep.Visibility=False
- Gui.ActiveDocument.Fusion.ShapeColor=Gui.ActiveDocument.Loft002.ShapeColor
- Gui.ActiveDocument.Fusion.DisplayMode=Gui.ActiveDocument.Loft002.DisplayMode
- App.ActiveDocument.recompute()
- Gui.getDocument("Compressor").getObject("BSpline008").Visibility=False
- App.ActiveDocument.recompute()
- Gui.getDocument("Compressor").getObject("Circle002").Visibility=False
- Gui.getDocument("Compressor").getObject("Circle").Visibility=False
- Gui.getDocument("Compressor").getObject("Circle001").Visibility=False
- App.getDocument("Compressor").Fusion.Placement=App.Placement(App.Vector(1,0,0), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- import Draft
- Gui.activateWorkbench("DraftWorkbench")
- points=[FreeCAD.Vector(0,29.5,31),
- FreeCAD.Vector(0,24.63,29),
- FreeCAD.Vector(0,14.75,30.5),
- FreeCAD.Vector(0,8.5,35.5),
- FreeCAD.Vector(0,4.86,39.66),
- FreeCAD.Vector(0,1.5,46.96),
- FreeCAD.Vector(0,0,50)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- Gui.getDocument("Compressor").getObject("BSpline008").Visibility=True
- Gui.getDocument("Compressor").getObject("BSpline008").Visibility=False
- Gui.getDocument("Compressor").getObject("Fusion").Visibility=False
- Gui.getDocument("Compressor").getObject("Array001").Visibility=False
- Gui.getDocument("Compressor").getObject("Array").Visibility=False
- points=[FreeCAD.Vector(0.0,0.0,50.0),FreeCAD.Vector(0.0,-7.0,50.0),FreeCAD.Vector(0.0,-7.0,6.0)]
- Draft.makeWire(points,closed=False,face=True,support=None)
- points=[FreeCAD.Vector(0.0,29.5,31.0),FreeCAD.Vector(0.0,44.0,31.0),FreeCAD.Vector(0.0,46.0,32.0)]
- Draft.makeWire(points,closed=False,face=True,support=None)
- Gui.activateWorkbench("PartWorkbench")
- FreeCAD.getDocument("Compressor").addObject("Part::Extrusion","Extrude")
- FreeCAD.getDocument("Compressor").Extrude.Base = FreeCAD.getDocument("Compressor").BSpline009
- FreeCAD.getDocument("Compressor").Extrude.Dir = (0,0,6)
- FreeCAD.getDocument("Compressor").Extrude.Solid = (False)
- FreeCAD.getDocument("Compressor").Extrude.TaperAngle = (0)
- FreeCADGui.getDocument("Compressor").BSpline009.Visibility = False
- FreeCAD.getDocument("Compressor").Extrude.Label = 'Extrude'
- Gui.ActiveDocument.Extrude.ShapeColor=Gui.ActiveDocument.BSpline009.ShapeColor
- Gui.ActiveDocument.Extrude.LineColor=Gui.ActiveDocument.BSpline009.LineColor
- Gui.ActiveDocument.Extrude.PointColor=Gui.ActiveDocument.BSpline009.PointColor
- FreeCAD.getDocument("Compressor").addObject("Part::Extrusion","Extrude001")
- FreeCAD.getDocument("Compressor").Extrude001.Base = FreeCAD.getDocument("Compressor").DWire001
- FreeCAD.getDocument("Compressor").Extrude001.Dir = (0,0,6)
- FreeCAD.getDocument("Compressor").Extrude001.Solid = (False)
- FreeCAD.getDocument("Compressor").Extrude001.TaperAngle = (0)
- FreeCADGui.getDocument("Compressor").DWire001.Visibility = False
- FreeCAD.getDocument("Compressor").Extrude001.Label = 'Extrude001'
- Gui.ActiveDocument.Extrude001.ShapeColor=Gui.ActiveDocument.DWire001.ShapeColor
- Gui.ActiveDocument.Extrude001.LineColor=Gui.ActiveDocument.DWire001.LineColor
- Gui.ActiveDocument.Extrude001.PointColor=Gui.ActiveDocument.DWire001.PointColor
- FreeCAD.getDocument("Compressor").addObject("Part::Extrusion","Extrude002")
- FreeCAD.getDocument("Compressor").Extrude002.Base = FreeCAD.getDocument("Compressor").DWire
- FreeCAD.getDocument("Compressor").Extrude002.Dir = (0,0,6)
- FreeCAD.getDocument("Compressor").Extrude002.Solid = (False)
- FreeCAD.getDocument("Compressor").Extrude002.TaperAngle = (0)
- FreeCADGui.getDocument("Compressor").DWire.Visibility = False
- FreeCAD.getDocument("Compressor").Extrude002.Label = 'Extrude002'
- Gui.ActiveDocument.Extrude002.ShapeColor=Gui.ActiveDocument.DWire.ShapeColor
- Gui.ActiveDocument.Extrude002.LineColor=Gui.ActiveDocument.DWire.LineColor
- Gui.ActiveDocument.Extrude002.PointColor=Gui.ActiveDocument.DWire.PointColor
- FreeCAD.ActiveDocument.addObject("Part::Revolution","Revolve001")
- FreeCAD.ActiveDocument.Revolve001.Source = FreeCAD.ActiveDocument.Extrude
- FreeCAD.ActiveDocument.Revolve001.Axis = (0.00,1.00,0.00)
- FreeCAD.ActiveDocument.Revolve001.Base = (0.00,0.00,0.00)
- FreeCAD.ActiveDocument.Revolve001.Angle = 360.00
- FreeCAD.ActiveDocument.Revolve001.Solid = False
- FreeCADGui.ActiveDocument.Extrude.Visibility = False
- Gui.ActiveDocument.Revolve001.ShapeColor=Gui.ActiveDocument.Extrude.ShapeColor
- Gui.ActiveDocument.Revolve001.LineColor=Gui.ActiveDocument.Extrude.LineColor
- Gui.ActiveDocument.Revolve001.PointColor=Gui.ActiveDocument.Extrude.PointColor
- FreeCAD.ActiveDocument.addObject("Part::Revolution","Revolve002")
- FreeCAD.ActiveDocument.Revolve002.Source = FreeCAD.ActiveDocument.Extrude001
- FreeCAD.ActiveDocument.Revolve002.Axis = (0.00,1.00,0.00)
- FreeCAD.ActiveDocument.Revolve002.Base = (0.00,0.00,0.00)
- FreeCAD.ActiveDocument.Revolve002.Angle = 360.00
- FreeCAD.ActiveDocument.Revolve002.Solid = False
- FreeCADGui.ActiveDocument.Extrude001.Visibility = False
- Gui.ActiveDocument.Revolve002.ShapeColor=Gui.ActiveDocument.Extrude001.ShapeColor
- Gui.ActiveDocument.Revolve002.LineColor=Gui.ActiveDocument.Extrude001.LineColor
- Gui.ActiveDocument.Revolve002.PointColor=Gui.ActiveDocument.Extrude001.PointColor
- FreeCAD.ActiveDocument.addObject("Part::Revolution","Revolve003")
- FreeCAD.ActiveDocument.Revolve003.Source = FreeCAD.ActiveDocument.Extrude002
- FreeCAD.ActiveDocument.Revolve003.Axis = (0.00,1.00,0.00)
- FreeCAD.ActiveDocument.Revolve003.Base = (0.00,0.00,0.00)
- FreeCAD.ActiveDocument.Revolve003.Angle = 360.00
- FreeCAD.ActiveDocument.Revolve003.Solid = False
- FreeCADGui.ActiveDocument.Extrude002.Visibility = False
- Gui.ActiveDocument.Revolve003.ShapeColor=Gui.ActiveDocument.Extrude002.ShapeColor
- Gui.ActiveDocument.Revolve003.LineColor=Gui.ActiveDocument.Extrude002.LineColor
- Gui.ActiveDocument.Revolve003.PointColor=Gui.ActiveDocument.Extrude002.PointColor
- App.activeDocument().addObject("Part::MultiFuse","Fusion001")
- App.activeDocument().Fusion001.Shapes = [App.activeDocument().Revolve003,App.activeDocument().Revolve002,App.activeDocument().Revolve001,]
- Gui.activeDocument().Revolve003.Visibility=False
- Gui.activeDocument().Revolve002.Visibility=False
- Gui.activeDocument().Revolve001.Visibility=False
- Gui.ActiveDocument.Fusion001.ShapeColor=Gui.ActiveDocument.Revolve003.ShapeColor
- Gui.ActiveDocument.Fusion001.DisplayMode=Gui.ActiveDocument.Revolve003.DisplayMode
- App.ActiveDocument.recompute()
- import Draft
- Gui.activateWorkbench("DraftWorkbench")
- points=[FreeCAD.Vector(70.612816,0,111.944237),FreeCAD.Vector(93.783401,0,103.491882),FreeCAD.Vector(109.884888,0,84.275223),FreeCAD.Vector(114.291458,0,59.181801),FreeCAD.Vector(105.421951,0,34.865116),FreeCAD.Vector(85.270966,0,17.979660),FreeCAD.Vector(58.976410,0,13.361313),FreeCAD.Vector(33.513634,0,22.647987),FreeCAD.Vector(15.844212,0,43.733292),FreeCAD.Vector(11.014069,0,71.228775),FreeCAD.Vector(20.717926,0,97.837860),FreeCAD.Vector(42.737549,0,116.291245)]
- Draft.makeBSpline(points,closed=False,face=False,support=None)
- App.ActiveDocument.BSpline010.Placement=App.Placement(App.Vector(-64,0,-64), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- import Draft
- pl=FreeCAD.Placement()
- pl.Rotation.Q=(0.0,0.707106781187,0.707106781187,-0.0)
- pl.Base=FreeCAD.Vector(6.612816,2.85769938574e-06,47.944237)
- Draft.makeCircle(radius=0.964689342748,placement=pl,face=True,support=None)
- pl=FreeCAD.Placement()
- pl.Rotation.Q=(0.0,0.707106781187,0.707106781187,-0.0)
- pl.Base=FreeCAD.Vector(-21.262451,3.11680126886e-06,52.291245)
- Draft.makeCircle(radius=1.44025776598,placement=pl,face=True,support=None)
- FreeCAD.ActiveDocument.getObject("Circle003").MakeFace = False
- FreeCAD.ActiveDocument.getObject("Circle004").MakeFace = False
- FreeCAD.ActiveDocument.getObject("Circle003").Radius = '2 mm'
- FreeCAD.ActiveDocument.getObject("Circle004").Radius = '9 mm'
- App.ActiveDocument.Circle003.Placement=App.Placement(App.Vector(6.7128,2.8577e-06,47.9442), App.Rotation(App.Vector(0,1,0),99), App.Vector(0,0,0))
- App.ActiveDocument.Circle004.Placement=App.Placement(App.Vector(-21.3625,3.1168e-06,52.2912), App.Rotation(App.Vector(0,1,0),63), App.Vector(0,0,0))
- App.ActiveDocument.recompute()
- pl=FreeCAD.Placement()
- pl.Rotation.Q=(0.0,0.707106781187,0.707106781187,-0.0)
- pl.Base=FreeCAD.Vector(-0.0521272420883,3.75140502292e-06,62.9381286215)
- Draft.makeCircle(radius=11.3679802191,placement=pl,face=True,support=None)
- FreeCAD.ActiveDocument.getObject("Circle005").MakeFace = False
- FreeCAD.ActiveDocument.getObject("Circle005").Radius = '11.5 mm'
- App.ActiveDocument.Circle005.Placement=App.Placement(App.Vector(-0.0555272,3.75141e-06,62.9381), App.Rotation(App.Vector(0,1,0),61), App.Vector(0,0,0))
- App.ActiveDocument.Circle005.Placement=App.Placement(App.Vector(-0.0555272,3.75141e-06,62.9381), App.Rotation(App.Vector(0,1,0),63), App.Vector(0,0,0))
- Gui.activateWorkbench("PartWorkbench")
- App.ActiveDocument.Circle003.Placement=App.Placement(App.Vector(6.71282,2.8577e-06,47.9442), App.Rotation(App.Vector(0,1,0),100), App.Vector(0,0,0))
- App.ActiveDocument.Circle004.Placement=App.Placement(App.Vector(-21.625,3.1168e-06,52.2912), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- App.ActiveDocument.Circle005.Placement=App.Placement(App.Vector(17,-74.2486,62.9381), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- Gui.activateWorkbench("PartWorkbench")
- App.ActiveDocument.Circle005.Placement=App.Placement(App.Vector(17,-74.2486,69.9381), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- App.getDocument("Compressor").BSpline010.Placement=App.Placement(App.Vector(-64,0,-66), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle005.Placement=App.Placement(App.Vector(17,0,69.9381), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- Gui.activeDocument().activeView().viewRear()
- Gui.activeDocument().activeView().viewRear()
- App.getDocument("Compressor").BSpline010.Placement=App.Placement(App.Vector(-65,0,-65), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle003.Placement=App.Placement(App.Vector(6.71282,2.8577e-06,46.9442), App.Rotation(App.Vector(0,1,0),100), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle004.Placement=App.Placement(App.Vector(-22.625,3.1168e-06,51.2912), App.Rotation(App.Vector(0,1,0),60), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle003.Placement=App.Placement(App.Vector(5.71282,2.8577e-06,46.9442), App.Rotation(App.Vector(0,1,0),100), App.Vector(0,0,0))
- from FreeCAD import Base
- import Part
- App.getDocument('Compressor').addObject('Part::Sweep','Sweep')
- App.getDocument('Compressor').ActiveObject.Sections=[App.getDocument('Compressor').Circle003, App.getDocument('Compressor').Circle004, ]
- App.getDocument('Compressor').ActiveObject.Spine=(App.ActiveDocument.BSpline010,["Edge1"])
- App.getDocument('Compressor').ActiveObject.Solid=False
- App.getDocument('Compressor').ActiveObject.Frenet=False
- from FreeCAD import Base
- import Part
- App.getDocument('Compressor').addObject('Part::Loft','Loft')
- App.getDocument('Compressor').ActiveObject.Sections=[App.getDocument('Compressor').Circle004, App.getDocument('Compressor').Circle005, ]
- App.getDocument('Compressor').ActiveObject.Solid=False
- App.getDocument('Compressor').ActiveObject.Ruled=False
- App.getDocument('Compressor').ActiveObject.Closed=False
- App.getDocument("Compressor").Circle005.Placement=App.Placement(App.Vector(17,0,69.9381), App.Rotation(App.Vector(0,1,0),66), App.Vector(0,0,0))
- App.getDocument("Compressor").Circle005.Placement=App.Placement(App.Vector(17,0,69.9381), App.Rotation(App.Vector(0,1,0),64), App.Vector(0,0,0))
- App.activeDocument().addObject("Part::MultiFuse","Fusion")
- App.activeDocument().Fusion002.Shapes = [App.activeDocument().Loft003,App.activeDocument().Sweep001,]
- Gui.activeDocument().Loft003.Visibility=False
- Gui.activeDocument().Sweep001.Visibility=False
- Gui.ActiveDocument.Fusion.ShapeColor=Gui.ActiveDocument.Loft003.ShapeColor
- Gui.ActiveDocument.Fusion.DisplayMode=Gui.ActiveDocument.Loft003.DisplayMode
- App.ActiveDocument.recompute()
- App.activeDocument().addObject("Part::Cut","Cut")
- App.activeDocument().Cut.Base = App.activeDocument().Fusion001
- App.activeDocument().Cut.Tool = App.activeDocument().Fusion
- Gui.activeDocument().Fusion001.Visibility=False
- Gui.activeDocument().Fusion.Visibility=False
- Gui.ActiveDocument.Cut.ShapeColor=Gui.ActiveDocument.Fusion001.ShapeColor
- Gui.ActiveDocument.Cut.DisplayMode=Gui.ActiveDocument.Fusion001.DisplayMode
- App.ActiveDocument.recompute()
- import Draft
- Draft.scale(FreeCAD.ActiveDocument.Cut,FreeCAD.Vector(x62,x62,x62))
- Gui.activeDocument().Cut.Visibility=False
- App.ActiveDocument.recompute()
- import Draft
- Draft.scale(FreeCAD.ActiveDocument.Fusion002,FreeCAD.Vector(x62,x62,x62))
- Gui.activeDocument().Fusion002.Visibility=False
- App.ActiveDocument.recompute()
- Gui.getDocument("Compressor").getObject("BSpline010").Visibility=False
- Gui.getDocument("Compressor").getObject("Circle005").Visibility=False
- Gui.getDocument("Compressor").getObject("Circle003").Visibility=False
- Gui.getDocument("Compressor").getObject("Circle004").Visibility=False
- Gui.getDocument("Compressor").getObject("Array").Visibility=True
- Gui.getDocument("Compressor").getObject("Array001").Visibility=True
- App.activeDocument().addObject("Part::MultiFuse","Fusion003")
- App.activeDocument().Fusion003.Shapes = [App.activeDocument().Array001,App.activeDocument().Array,App.activeDocument().Revolve,]
- Gui.activeDocument().Array001.Visibility=False
- Gui.activeDocument().Array.Visibility=False
- Gui.activeDocument().Revolve.Visibility=False
- Gui.ActiveDocument.Fusion003.ShapeColor=Gui.ActiveDocument.Array001.ShapeColor
- Gui.ActiveDocument.Fusion003.DisplayMode=Gui.ActiveDocument.Array001.DisplayMode
- FreeCADGui.getDocument("Compressor").getObject("Scale001").DisplayMode = "Shaded"
- FreeCADGui.getDocument("Compressor").getObject("Scale").DisplayMode = "Shaded"
- App.ActiveDocument.recompute()
- except:
- FreeCAD.Console.PrintError("Unable to complete task. Please recheck your data entries.")
- self.close()
- def close(self):
- self.dialog.hide()
- #-----------------------
- # DIALOG BOX
- #-----------------------
- def __init__(self):
- self.dialog = None
- self.dialog = QtGui.QDialog()
- self.dialog.resize(500,500)
- self.dialog.setWindowTitle("Parametric Compressor Interface")
- la = QtGui.QVBoxLayout(self.dialog)
- DCR1 = QtGui.QLabel("Ambient Temperature of Air[K]")
- la.addWidget(DCR1)
- self.dCr1 = QtGui.QLineEdit()
- la.addWidget(self.dCr1)
- DCR2 = QtGui.QLabel("Pressure of Air at inlet[Bar]")
- la.addWidget(DCR2)
- self.dCr2 = QtGui.QLineEdit()
- la.addWidget(self.dCr2)
- DCR3 = QtGui.QLabel("Mass flow rate[kg/s]")
- la.addWidget(DCR3)
- self.dCr3 = QtGui.QLineEdit()
- la.addWidget(self.dCr3)
- DCR4 = QtGui.QLabel("Speed of turbocharger[RPM]")
- la.addWidget(DCR4)
- self.dCr4 = QtGui.QLineEdit()
- la.addWidget(self.dCr4)
- DCR5 = QtGui.QLabel("Pressure Ratio")
- la.addWidget(DCR5)
- self.dCr5 = QtGui.QLineEdit()
- la.addWidget(self.dCr5)
- DCR6 = QtGui.QLabel("Number of Blades")
- la.addWidget(DCR6)
- self.dCr6 = QtGui.QLineEdit()
- la.addWidget(self.dCr6)
- DCR7 = QtGui.QLabel("Power input factor")
- la.addWidget(DCR7)
- self.dCr7 = QtGui.QLineEdit()
- la.addWidget(self.dCr7)
- DCR8 = QtGui.QLabel("Losses at impeller")
- la.addWidget(DCR8)
- self.dCr8 = QtGui.QLineEdit()
- la.addWidget(self.dCr8)
- okbox = QtGui.QDialogButtonBox(self.dialog)
- okbox.setOrientation(QtCore.Qt.Horizontal)
- okbox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
- la.addWidget(okbox)
- QtCore.QObject.connect(okbox, QtCore.SIGNAL("accepted()"), self.compressor)
- QtCore.QObject.connect(okbox, QtCore.SIGNAL("rejected()"), self.close)
- QtCore.QMetaObject.connectSlotsByName(self.dialog)
- self.dialog.show()
- self.dialog.exec_()
- p()
Add Comment
Please, Sign In to add comment