def method_4(self): aSFA = None if (self.leg.Type == RnpArLegType.RF): if (self.ui.txtAltitude.text() != "" and self.ui.txtWind.text() != ""): if (self.leg.Segment == RnpArSegmentType.Final): aSFA = self.group.IAS_FA; elif (self.leg.Segment != RnpArSegmentType.Initial): if self.leg.Segment != RnpArSegmentType.Intermediate: aSFA = self.group.IAS_MA else: aSFA = self.group.IAS_I else: aSFA = self.group.IAS_IA try: altitude = Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT) except ValueError: raise UserWarning, "Altitude Value is invalid!" speed = Speed.plus(Speed.smethod_0(aSFA, self.group.ISA, altitude) , Speed(float(self.ui.txtWind.text()))) num = math.pow(speed.Knots, 2) value = Distance(float(self.ui.txtRadius.text()), DistanceUnits.M) num1 = Unit.smethod_1(math.atan(num / (68625 * value.NauticalMiles))) num2 = 3431 * math.tan(Unit.ConvertDegToRad(num1)) / (3.14159265358979 * speed.Knots) self.ui.txtBank.setText(str(round(num1, 2))) self.ui.txtR.setText(str(round(num2, 2))) return self.ui.txtBank.setText("") self.ui.txtR.setText("")
def btnConstruct_Click(self): flag = FlightPlanBaseDlg.btnConstruct_Click(self) if not flag: return value = Speed(float(self.parametersPanel.txtIas.text()),SpeedUnits.KTS); if (self.parametersPanel.chbDeparture.isChecked()): value = value + (value / 10); altitude = Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT); value1 = float(self.parametersPanel.txtIsa.text()); num1 = float (self.parametersPanel.txtBankAngle.text()); self.speedP = self.parametersPanel.pnlWind.Value; self.num2P = Unit.ConvertDegToRad(float(self.parametersPanel.txtTrackRadial.Value)); self.orientationTypeP = self.parametersPanel.cmbOrientation.currentText(); speed1 = Speed.smethod_0(value, value1, altitude); numList = [] distance = Distance.smethod_1(speed1, num1, numList); self.numP = numList[0] self.metresP = distance.Metres; self.originP = Point3D.get_Origin(); self.point3dP = Point3D.get_Origin(); self.origin1P = Point3D.get_Origin(); self.polylineP = PolylineArea(); self.flagP = True; define._canvas.setMapTool(self.CaptureCoordTool)
def __init__(self, parent, parameterList): QDialog.__init__(self, parent) self.setObjectName("PdtCheckResultDlg") self.setWindowTitle("PDT Check") self.resize(350, 400) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setObjectName("verticalLayout") self.tabWidgetPDT = QTabWidget(self) self.tabWidgetPDT.setObjectName("tabWidgetPDT") if len(parameterList) < 1: return for parameters in parameterList: self.tab = tabControl(self) isaValue = parameters[1] altitude = parameters[2] iasValue = parameters[3] speed_1 = Speed.smethod_0(Speed(iasValue, SpeedUnits.KTS), isaValue, altitude) + Speed(25) straitSegment = speed_1.KilometresPerHour * 1000 / 3600 * 9 pdtResultStr = "" K = round( 171233 * math.pow(288 + isaValue - 0.00198 * altitude.Feet, 0.5) / (math.pow(288 - 0.00198 * altitude.Feet, 2.628)), 4) pdtResultStr = "1. K = \t" + str(K) + "\n" V = K * iasValue pdtResultStr += "2. V = \t" + str(V) + "kts\n" h = altitude.Metres pdtResultStr += "3. h = \t" + str(h) + "m\n" # h = altitude.Feet / 1000 pdtResultStr += "4. w = \t" + "46km/h\n" num = 2313.03083707 / (3.14159265358979 * speed_1.KilometresPerHour) if (num > 3): num = 3 r = speed_1.KilometresPerHour / (62.8318530717959 * num) * 1000 pdtResultStr += "5. r = \t" + str(r / 1000) + "km\n" R = 2 * r + straitSegment pdtResultStr += "6. R = \t" + str(R / 1000) + "km\n" # resultStr = MathHelper.pdtCheckResultToString(parameters[1], parameters[2], parameters[3], parameters[4]) self.tab.plainTextEdit.setPlainText(pdtResultStr) try: self.tabWidgetPDT.addTab(self.tab, parameters[0]) except: self.tabWidgetPDT.addTab(self.tab, "") # self.tabWidgetPDT.addTab(self.tab, "A") self.verticalLayout.addWidget(self.tabWidgetPDT)
def putAircraftSpeed(self): speedTas = self.parametersPanel.pnlTas.Value if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H: xDist = self.calcDAndXDistance(speedTas, Speed(10), 5) self.parametersPanel.pnlDistX.Caption = "X(10kts/5s)" self.parametersPanel.pnlDistX.Value = Distance(xDist) else: xDist = self.calcDAndXDistance(speedTas, Speed(10), 15) self.parametersPanel.pnlDistX.Caption = "X(10kts/15s)" self.parametersPanel.pnlDistX.Value = Distance(xDist) if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.A: self.parametersPanel.pnlIas.Value = Speed(100) # self.parametersPanel.pnlIas.Value = Speed(90) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.B: self.parametersPanel.pnlIas.Value = Speed(130) # self.parametersPanel.pnlIas.Value = Speed(120) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.C: self.parametersPanel.pnlIas.Value = Speed(160) # self.parametersPanel.pnlIas.Value = Speed(140) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.D: self.parametersPanel.pnlIas.Value = Speed(185) # self.parametersPanel.pnlIas.Value = Speed(165) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.E: self.parametersPanel.pnlIas.Value = Speed(230) # self.parametersPanel.pnlIas.Value = Speed(210) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom: # self.parametersPanel.pnlIas.Value = self.customIas self.parametersPanel.pnlIas.Value = Speed(185) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H: # self.parametersPanel.pnlIas.Value = self.customIas self.parametersPanel.pnlIas.Value = Speed(90) self.parametersPanel.pnlIas.Enabled = self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom
def putDistances(self): try: point3dThr = self.parametersPanel.pnlThrPosition.Point3d point3dFaf = self.parametersPanel.pnlFafPosition.Point3d point3dMapt = self.parametersPanel.pnlMaPtPosition.Point3d speedTas = self.parametersPanel.pnlTas.Value inboundTrackRad = Unit.ConvertDegToRad(self.parametersPanel.pnlInboundTrack.Value) inboundTrack180Rad = MathHelper.smethod_4(inboundTrackRad + math.pi) dDist = Distance(MathHelper.calcDistance(point3dFaf, point3dMapt)) self.parametersPanel.pnlDistOfFafMapt.Value = dDist aDist = self.parametersPanel.pnlDistA.Value bDist = self.parametersPanel.pnlDistB.Value tasMin = Speed.smethod_0(self.parametersPanel.pnlIas.Value, -10, self.parametersPanel.pnlAerodromeAltitude.Value) tasMax = Speed.smethod_0(self.parametersPanel.pnlIas.Value, 15, self.parametersPanel.pnlAerodromeAltitude.Value) # calculate Distance from earliest MAPt to nominal MAPt: x1 = math.sqrt(math.pow(aDist.NauticalMiles, 2) + math.pow(tasMin.Knots * 10 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMin.Knots, 2)) x2 = math.sqrt(math.pow(aDist.NauticalMiles, 2) + math.pow(tasMax.Knots * 10 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMax.Knots, 2)) distEarliestMaptToNominalMapt = Distance(max(x1, x2), DistanceUnits.NM) self.parametersPanel.pnlDistOfEarliestToNominalMapt.Value = distEarliestMaptToNominalMapt #calculate Distance from nominal MAPt to latest MAPt x3 = math.sqrt(math.pow(bDist.NauticalMiles, 2) + math.pow(tasMin.Knots * 13 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMin.Knots, 2)) x4 = math.sqrt(math.pow(bDist.NauticalMiles, 2) + math.pow(tasMax.Knots * 13 / float(3600), 2) + math.pow(30 * dDist.NauticalMiles / tasMax.Knots, 2)) distNominalMaptToLatestMapt = Distance(max(x3, x4), DistanceUnits.NM) self.parametersPanel.pnlDistOfNominalToLatestMapt.Value = distNominalMaptToLatestMapt #calculate Distance from Mapt to SOC x5 = x3 + 15 * (tasMin.Knots + 10) / float(3600) x6 = x4 + 15 * (tasMax.Knots + 10) / float(3600) distMaptSoc = Distance(max(x5, x6), DistanceUnits.NM) socMaptDistMeters = distMaptSoc.Metres socThrDistMeters = MathHelper.calcDistance(point3dMapt, point3dThr) - socMaptDistMeters sockBearing = inboundTrackRad self.socPoint3d = MathHelper.distanceBearingPoint(point3dMapt, sockBearing, socMaptDistMeters).smethod_167(self.calcSocAltitude()) self.parametersPanel.pnlDistOfMaptSoc.Value = Distance(socMaptDistMeters) self.parametersPanel.pnlDistOfSocThr.Value = Distance(MathHelper.calcDistance(self.socPoint3d, point3dThr)) self.parametersPanel.pnlDistOfFafMapt.Value = Distance(MathHelper.calcDistance(point3dFaf, point3dMapt))#MathHelper.calcDistance(point3dThr, self.socPoint3d)) self.parametersPanel.pnlDistOfMaptThr.Value = Distance(MathHelper.calcDistance(point3dMapt, point3dThr)) except: pass
def isaChanged(self): try: self.parametersPanel.txtTas.setText( str( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) except: raise ValueError("Value Invalid")
def initParametersPan(self): ui = Ui_HoldingRace_P() self.parametersPanel = ui FlightPlanBaseDlg.initParametersPan(self) self.parametersPanel.txtTas.setEnabled(False) self.parametersPanel.pnlInsPos = PositionPanel( self.parametersPanel.gbVorDmePosition) # self.parametersPanel.pnlInsPos.groupBox.setTitle("FAWP") self.parametersPanel.pnlInsPos.btnCalculater.hide() self.parametersPanel.pnlInsPos.hideframe_Altitude() self.parametersPanel.pnlInsPos.setObjectName("pnlInsPos") ui.vl_VorDmePosition.addWidget(self.parametersPanel.pnlInsPos) self.parametersPanel.pnlWind = WindPanel( self.parametersPanel.gbParameters) self.parametersPanel.pnlWind.lblIA.setMinimumSize(250, 0) self.parametersPanel.vl_gbParameters.insertWidget( 6, self.parametersPanel.pnlWind) self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) self.parametersPanel.cmbAircraftCategory.addItems( ["A", "B", "C", "D", "E", "H", "Custom"]) # self.parametersPanel.cmbOutboundLimit.addItems(["Time", "Distance From Waypoint"]) # self.parametersPanel.cmbConstruction.addItems(["2D", "3D"]) self.parametersPanel.cmbOrientation.addItems(["Right", "Left"]) self.parametersPanel.cmbAircraftCategory.setCurrentIndex(3) self.parametersPanel.frameAircraftCategory.hide() self.parametersPanel.frameMoc.hide() # self.parametersPanel.cmbHoldingFunctionality.currentIndexChanged.connect(self.cmbHoldingFunctionalityCurrentIndexChanged) # self.parametersPanel.cmbOutboundLimit.currentIndexChanged.connect(self.cmbOutboundLimitCurrentIndexChanged) # self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing) # self.parametersPanel.btnCaptureDistance.clicked.connect(self.measureDistance) # self.parametersPanel.btnCaptureLength.clicked.connect(self.measureLength) self.parametersPanel.txtAltitude.textChanged.connect( self.altitudeChanged) # self.parametersPanel.cmbAircraftCategory.currentIndexChanged.connect(self.changeCategory) # self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow) self.parametersPanel.txtIas.textChanged.connect(self.iasChanged) self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) self.parametersPanel.txtTas.setText( str( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots))
def method_31(self): self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) try: speed = Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) self.parametersPanel.txtTas.setText(str(round(speed.Knots, 4))) except: raise ValueError("Value Invalid")
def method_5(self): if self.comboBox.currentIndex() == 0: self.speedBox.setText( str(round(Speed.smethod_1(self.altitude).Knots, 1))) elif self.comboBox.currentIndex() == 1: self.speedBox.setText( str(round(Speed.smethod_2(self.altitude).Knots, 1))) else: self.speedBox.setText(str(self.customValue)) if self.comboBox.currentIndex() != 2: self.speedBox.setEnabled(False) else: self.speedBox.setEnabled(True)
def altitudeMChanged(self): if self.flag==0: self.flag=1; if self.flag==2: self.flag=0; if self.flag==1: try: self.parametersPanel.txtAltitudeFt.setText(str(round(Unit.ConvertMeterToFeet(float(self.parametersPanel.txtAltitudeM.text())), 4))) except: self.parametersPanel.txtAltitudeFt.setText("0.0") self.parametersPanel.pnlWind.setAltitude(Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)) try: self.parametersPanel.txtTas.setText(str(Speed.smethod_0(Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)).Knots)) except: raise ValueError("Value Invalid")
def altitudeChanged(self): self.parametersPanel.pnlWind.setAltitude(self.parametersPanel.pnlAerodromeAltitude.Value) try: self.parametersPanel.pnlTas.Value = Speed.smethod_0(self.parametersPanel.pnlIas.Value, self.parametersPanel.pnlIsa.Value, self.parametersPanel.pnlAerodromeAltitude.Value) self.showMarkDaSoc() except: raise ValueError("Value Invalid")
def putDistances(self): try: point3dThr = self.parametersPanel.pnlThrPosition.Point3d point3dFaf = self.parametersPanel.pnlFafPosition.Point3d point3dMapt = self.parametersPanel.pnlMaPtPosition.Point3d self.parametersPanel.pnlDistOfFafMapt.Value = Distance( MathHelper.calcDistance(point3dFaf, point3dMapt)) inboundTrackRad = Unit.ConvertDegToRad( self.parametersPanel.pnlInboundTrack.Value) inboundTrack180Rad = MathHelper.smethod_4(inboundTrackRad + math.pi) speedTas = self.parametersPanel.pnlTas.Value xDist = self.calcDAndXDistance(speedTas, Speed(10), 15) self.parametersPanel.pnlDistX.Caption = "X(10kts/15s)" if self.parametersPanel.cmbAircraftCategory.SelectedIndex == 5: xDist = self.calcDAndXDistance(speedTas, Speed(10), 5) self.parametersPanel.pnlDistX.Caption = "X(10kts/5s)" dDist = self.calcDAndXDistance(speedTas, Speed(10), 3) fixTolerance = 0.0 if self.dlgType == "NpaOnFix": fixTolerance = self.parametersPanel.pnlDistFixTolerance.Value.Metres socMaptDistMeters = fixTolerance + dDist + xDist socThrDistMeters = MathHelper.calcDistance( point3dMapt, point3dThr) - socMaptDistMeters sockBearing = inboundTrackRad self.socPoint3d = MathHelper.distanceBearingPoint( point3dMapt, sockBearing, socMaptDistMeters).smethod_167(self.calcSocAltitude()) self.parametersPanel.pnlDistD.Value = Distance(dDist) self.parametersPanel.pnlDistX.Value = Distance(xDist) self.parametersPanel.pnlDistOfMaptSoc.Value = Distance( socMaptDistMeters) self.parametersPanel.pnlDistOfSocThr.Value = Distance( MathHelper.calcDistance(self.socPoint3d, point3dThr) ) #MathHelper.calcDistance(point3dThr, self.daPoint3d)) # self.parametersPanel.pnlDistOfFafMapt.Value = Distance(MathHelper.calcDistance(point3dFaf, point3dMapt))#MathHelper.calcDistance(point3dThr, self.socPoint3d)) self.parametersPanel.pnlDistOfMaptThr.Value = Distance( MathHelper.calcDistance(point3dMapt, point3dThr)) except: pass
def OK(self): self.leg.Rnp = float(self.ui.txtRnpValue.text()) self.leg.Altitude = Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT) self.leg.Bank = float(self.ui.txtBank.text()) self.leg.Wind = Speed(float(self.ui.txtWind.text())) if (self.ui.chbIsFap.isEnabled()): self.leg.IsFAP = self.ui.chbIsFap.isChecked()
def putAircraftSpeed(self): speedTas = self.parametersPanel.pnlTas.Value if self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.A: self.parametersPanel.pnlIas.Value = Speed(100) # self.parametersPanel.pnlIas.Value = Speed(90) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.B: self.parametersPanel.pnlIas.Value = Speed(130) # self.parametersPanel.pnlIas.Value = Speed(120) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.C: self.parametersPanel.pnlIas.Value = Speed(160) # self.parametersPanel.pnlIas.Value = Speed(140) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.D: self.parametersPanel.pnlIas.Value = Speed(185) # self.parametersPanel.pnlIas.Value = Speed(165) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.E: self.parametersPanel.pnlIas.Value = Speed(230) # self.parametersPanel.pnlIas.Value = Speed(210) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom: # self.parametersPanel.pnlIas.Value = self.customIas self.parametersPanel.pnlIas.Value = Speed(185) elif self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.H: # self.parametersPanel.pnlIas.Value = self.customIas self.parametersPanel.pnlIas.Value = Speed(90) self.parametersPanel.pnlIas.Enabled = self.parametersPanel.cmbAircraftCategory.SelectedIndex == AircraftSpeedCategory.Custom
def iasChanged(self): try: self.parametersPanel.txtTas.Value = Speed.smethod_0( self.parametersPanel.txtIas.Value, float(self.parametersPanel.txtIsa.Value), self.parametersPanel.txtAltitude.Value - self.parametersPanel.pnlNavAid.Altitude()) except: raise ValueError("Value Invalid")
def initParametersPan(self): ui = Ui_TurnArea() self.parametersPanel = ui FlightPlanBaseDlg.initParametersPan(self) self.parametersPanel.txtTas.setEnabled(False) self.CaptureCoordTool = CaptureCoordinateToolUpdate(define._canvas) self.connect(self.CaptureCoordTool, SIGNAL("resultPointValueList"), self.resultPointValueListMethod) self.parametersPanel.pnlWind = WindPanel(self.parametersPanel.gbParameters) self.parametersPanel.pnlWind.lblIA.setMinimumSize(100, 0) self.parametersPanel.pnlWind.lblIA.setMaximumSize(100, 10000) self.parametersPanel.vl_gbParameters.insertWidget(6, self.parametersPanel.pnlWind) self.parametersPanel.pnlWind.setAltitude(Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)) self.parametersPanel.cmbOrientation.addItems(["Right", "Left"]) # self.parametersPanel.cmbHoldingFunctionality.currentIndexChanged.connect(self.cmbHoldingFunctionalityCurrentIndexChanged) # self.parametersPanel.cmbOutboundLimit.currentIndexChanged.connect(self.cmbOutboundLimitCurrentIndexChanged) # self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing) # self.parametersPanel.btnCaptureDistance.clicked.connect(self.measureDistance) # self.parametersPanel.btnCaptureLength.clicked.connect(self.measureLength) self.parametersPanel.txtAltitudeFt.textChanged.connect(self.altitudeFtChanged) self.parametersPanel.txtAltitudeM.textChanged.connect(self.altitudeMChanged) # self.parametersPanel.cmbAircraftCategory.currentIndexChanged.connect(self.changeCategory) # self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow) self.parametersPanel.txtIas.textChanged.connect(self.iasChanged) self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) self.parametersPanel.txtTas.setText(str(round(Speed.smethod_0(Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT)).Knots, 4))) self.flag = 0 if self.flag==0: self.flag=2; if self.flag==1: self.flag=0; if self.flag==2: try: self.parametersPanel.txtAltitudeM.setText(str(round(Unit.ConvertFeetToMeter(float(self.parametersPanel.txtAltitudeFt.text())), 4))) except: self.parametersPanel.txtAltitudeM.setText("0.0")
def changeCategory(self): if self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.A: self.parametersPanel.txtIas.setText(str(Speed(150).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.B: self.parametersPanel.txtIas.setText(str(Speed(180).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.C: self.parametersPanel.txtIas.setText(str(Speed(240).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.D: self.parametersPanel.txtIas.setText(str(Speed(250).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.E: self.parametersPanel.txtIas.setText(str(Speed(250).Knots)) return elif self.parametersPanel.cmbAircraftCategory_2.currentIndex( ) == AircraftSpeedCategory.H: self.parametersPanel.txtIas.setText(str(Speed(250).Knots)) return
def btnEvaluate_Click(self): if not self.method_27(): return holdingTemplate = HoldingTemplate( self.parametersPanel.pnlNavAid.Point3d, float(self.parametersPanel.txtTrack.Value), self.parametersPanel.txtIas.Value, self.parametersPanel.txtAltitude.Value, Speed(float(self.parametersPanel.pnlWind.speedBox.text())), float(self.parametersPanel.txtIsa.Value), float(self.parametersPanel.txtTime.Value), self.parametersPanel.cmbOrientation.SelectedItem) polylineArea = self.method_35() polylineAreaTemp = holdingTemplate.vmethod_0( polylineArea, self.parametersPanel.chbIntercept.Checked, self.parametersPanel.chbSectors12.Checked) polylineArea1 = polylineAreaTemp[0] altitude_0 = self.parametersPanel.txtAltitude.Value altitude_1 = self.parametersPanel.txtMoc.Value if (self.parametersPanel.cmbUsedFor.SelectedIndex != 0): hOSE = HoldingOverheadSecondaryEvaluator( polylineArea1, altitude_0, altitude_1, Distance(2.5, DistanceUnits.NM)) self.obstaclesModel = HoldingOverHeadObstacles( False, "second", None, altitude_0, hOSE.inner, hOSE.outer, hOSE.poly, altitude_1, Distance(2.5, DistanceUnits.NM)) elif (not self.parametersPanel.chbCatH.isChecked()): hOBE = HoldingOverheadBufferEvaluator(polylineArea1, altitude_0, altitude_1) self.obstaclesModel = HoldingOverHeadObstacles( self.parametersPanel.chbCatH.Checked, "buffer", hOBE.areas, altitude_0) else: hOSE = HoldingOverheadSecondaryEvaluator( polylineArea1, altitude_0, altitude_1, Distance(2, DistanceUnits.NM)) self.obstaclesModel = HoldingOverHeadObstacles( True, "second", None, altitude_0, hOSE.inner, hOSE.outer, hOSE.poly, altitude_1, Distance(2, DistanceUnits.NM)) return FlightPlanBaseDlg.btnEvaluate_Click(self)
def initParametersPan(self): ui = Ui_HoldingOverHead() self.parametersPanel = ui FlightPlanBaseDlg.initParametersPan(self) self.connect(self.parametersPanel.pnlNavAid, SIGNAL("positionChanged"), self.initResultPanel) self.connect(self.parametersPanel.pnlNavAid, SIGNAL("positionChanged"), self.iasChanged) self.parametersPanel.pnlWind.setAltitude( self.parametersPanel.txtAltitude.Value) # self.parametersPanel.cmbNavAidType.Items = ["VOR", "NDB"] self.parametersPanel.cmbUsedFor.Items = ["Holding", "Racetrack"] self.parametersPanel.cmbUsedFor.SelectedIndex = 1 self.parametersPanel.cmbConstruction.Items = ["2D", "3D"] self.parametersPanel.cmbOrientation.Items = ["Right", "Left"] self.parametersPanel.chbSector1.Visible = False self.parametersPanel.chbSector2.Visible = False self.parametersPanel.chbSector3.Visible = False self.parametersPanel.chbCatH.Visible = False self.connect(self.parametersPanel.cmbNavAidType, SIGNAL("Event_0"), self.initBasedOnCmb) self.connect(self.parametersPanel.cmbUsedFor, SIGNAL("Event_0"), self.cmbUsedForCurrentIndexChanged) self.connect(self.parametersPanel.txtAltitude, SIGNAL("Event_0"), self.altitudeChanged) self.connect(self.parametersPanel.txtIas, SIGNAL("Event_0"), self.iasChanged) self.connect(self.parametersPanel.txtIsa, SIGNAL("Event_0"), self.iasChanged) self.parametersPanel.txtTas.Value = Speed.smethod_0( self.parametersPanel.txtIas.Value, self.parametersPanel.txtIsa.Value, self.parametersPanel.txtAltitude.Value - self.parametersPanel.pnlNavAid.Altitude())
def __init__(self): self.RecommendedEnt = None self.PointEnt = None self.CenterEnt = None self.CodePhase = "" self.CodeType = CodeTypeProcPathAixm.OTHER self.ValCourse = 0 self.CodeTypeCourse = "" self.CodeDirTurn = "" self.CodeTurnValid = "" self.CodeDescrDistVer = "" self.CodeDistVerUpper = "" self.ValDistVerUpper = Altitude(0) self.CodeDistVerLower = "" self.ValDistVerLower = Altitude(0) self.ValVerAngle = 0 self.ValSpeedLimit = Speed(0) self.CodeSpeedRef = "" self.ValDist = Distance(0) self.ValDur = 0 self.ValTheta = 0 self.ValRho = Distance(0) self.ValBankAngle = 0 self.CodeRepAtc = "" self.CodeRoleFix = "" self.TxtRmk = "" self.dataList = [] self.nameList = [ "Fix Position", "Fix Type", "Recommended Nav. Aid", "Flight Phase", "Leg Type", "Course Type", "Course Angle", "Turn Direction", "Center", "Fly-By", "Bank Angle", "Altitude Interpretation", "Lower Limit Ref.", "Lower Limit", "Upper Limit Ref.", "Upper Limit", "Climb / Descent Angle", "Speed Restriction Ref.", "Speed Restriction", "Segment Length", "Duration", "ATC Reporting" ]
def __init__(self, parent): QFrame.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("OCAHPanel" + str(len(parent.findChildren(OCAHPanel)))) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.hLayout = QHBoxLayout(self) self.hLayout.setSpacing(0) self.hLayout.setMargin(0) self.hLayout.setObjectName(("hLayout")) self.basicFrame = Frame(self, "HL") self.basicFrame.layoutBoxPanel.setSpacing(0) # self.basicFrame.layoutBoxPanel.setMargin(0) self.hLayout.addWidget(self.basicFrame) self.lblIA = QLabel(self.basicFrame) self.lblIA.setMinimumSize(QSize(200, 0)) self.lblIA.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.basicFrame.Add = self.lblIA self.cmbType = QComboBox(self.basicFrame) self.cmbType.setMinimumSize(QSize(70, 0)) self.cmbType.setMaximumWidth(70) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.cmbType.setFont(font) self.cmbType.setObjectName(("cmbType")) self.basicFrame.Add = self.cmbType self.txtAltitudeM = QLineEdit(self.basicFrame) self.txtAltitudeM.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtAltitudeM.setFont(font) self.txtAltitudeM.setObjectName(self.objectName() + "_txtAltitudeM") self.txtAltitudeM.setText("0.0") self.txtAltitudeM.setMinimumWidth(70) self.txtAltitudeM.setMaximumWidth(70) self.basicFrame.Add = self.txtAltitudeM labelM = QLabel(self.basicFrame) labelM.setObjectName(("labelM")) labelM.setText(" m ") self.basicFrame.Add = labelM self.txtAltitude = QLineEdit(self.basicFrame) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.txtAltitude.sizePolicy().hasHeightForWidth()) self.txtAltitude.setSizePolicy(sizePolicy) self.txtAltitude.setMinimumSize(QSize(70, 0)) self.txtAltitude.setMaximumSize(QSize(70, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.txtAltitude.setFont(font) self.txtAltitude.setObjectName(self.objectName() + "_txtAltitude") self.basicFrame.Add = self.txtAltitude labelFt = QLabel(self.basicFrame) labelFt.setObjectName(("labelFt")) labelFt.setText(" ft") self.basicFrame.Add = labelFt spacerItem = QSpacerItem(10,10,QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayout.addItem(spacerItem) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.cmbType.addItems(["OCA", "OCH"]) # self.cmbType.currentIndexChanged.connect(self.changeType) self.cmbType.setCurrentIndex(0) self.lblIA.setText("Intermediate Segment Minimum:") # self.txtAltitude.setEnabled(False) self.txtAltitudeM.textChanged.connect(self.txtAltitudeMChanged) self.txtAltitude.textChanged.connect(self.txtAltitudeChanged) self.captionUnits = "ft" self.flag = 0 self.txtAltitudeM.setText("0.0") self.txtAltitude.setText("0.0")
def __init__(self, parent): QFrame.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("WindPanel" + str(len(parent.findChildren(WindPanel)))) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.hLayout = QHBoxLayout(self) self.hLayout.setSpacing(0) self.hLayout.setMargin(0) self.hLayout.setObjectName(("hLayout")) self.basicFrame = Frame(self, "HL") self.hLayout.addWidget(self.basicFrame) self.lblIA = QLabel(self.basicFrame) self.lblIA.setMinimumSize(QSize(200, 0)) self.lblIA.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.basicFrame.Add = self.lblIA self.comboBox = QComboBox(self.basicFrame) # sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth()) # self.comboBox.setSizePolicy(sizePolicy) # self.comboBox.setMinimumSize(QSize(60, 0)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(("comboBox")) self.basicFrame.Add = self.comboBox self.speedBox = QLineEdit(self.basicFrame) # sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.speedBox.sizePolicy().hasHeightForWidth()) # self.speedBox.setSizePolicy(sizePolicy) # self.speedBox.setMinimumSize(QSize(70, 0)) # self.speedBox.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.speedBox.setFont(font) self.speedBox.setObjectName(("speedBox")) self.speedBox.setMinimumSize(QSize(60, 0)) self.speedBox.setMaximumSize(QSize(60, 16777215)) self.basicFrame.Add = self.speedBox spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.basicFrame.layoutBoxPanel.addItem(spacerItem) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.comboBox.addItems(["ICAO", "UK", "Custom"]) self.comboBox.currentIndexChanged.connect(self.changeWindType) self.comboBox.setCurrentIndex(0) self.lblIA.setText("Wind (kts):") self.speedBox.setEnabled(False)
def get_Value(self): try: return Speed(float(self.textBox.text()), self.CaptionUnits) except: return Speed(None)
def initParametersPan(self): ui = Ui_HoldingRnpGeneral() self.parametersPanel = ui FlightPlanBaseDlg.initParametersPan(self) self.parametersPanel.txtTas.setEnabled(False) self.parametersPanel.pnlWaypoint = PositionPanel( self.parametersPanel.holding) self.parametersPanel.pnlWaypoint.groupBox.setTitle("Waypoint Position") self.parametersPanel.pnlWaypoint.hideframe_Altitude() self.parametersPanel.pnlWaypoint.setObjectName("positionWaypoint") self.parametersPanel.pnlWaypoint.btnCalculater.hide() self.parametersPanel.verticalLayout.insertWidget( 0, self.parametersPanel.pnlWaypoint) self.parametersPanel.pnlWind = WindPanel( self.parametersPanel.grbParameters) self.parametersPanel.vLayout_grbParameters.insertWidget( 5, self.parametersPanel.pnlWind) self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) # self.resize(460,600) self.parametersPanel.cmbConstruction.addItems(["2D", "3D"]) self.parametersPanel.cmbAircraftCategory_2.addItems( ["A", "B", "C", "D", "E", "H", "Custom"]) self.parametersPanel.cmbOrientation.addItems( [OrientationType.Left, OrientationType.Right]) # self.parametersPanel.cmbOrientation.setCurrentIndex(1) # # '''Event Handlers Connect''' # self.parametersPanel.txtAltitude.textChanged.connect(self.method_31) # self.parametersPanel.cmbTurnLimitation.currentIndexChanged.connect(self.method_28) # self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing) self.parametersPanel.cmbAircraftCategory_2.currentIndexChanged.connect( self.changeCategory) self.parametersPanel.cmbAircraftCategory_2.setCurrentIndex(3) self.frame_8_1 = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.frame_8.sizePolicy().hasHeightForWidth()) self.frame_8_1.setSizePolicy(sizePolicy) self.frame_8_1.setFrameShape(QFrame.StyledPanel) self.frame_8_1.setFrameShadow(QFrame.Raised) self.frame_8_1.setObjectName("frame_8") self.horizontalLayout_10_1 = QHBoxLayout(self.frame_8_1) self.horizontalLayout_10_1.setAlignment(Qt.AlignHCenter) self.horizontalLayout_10_1.setSpacing(0) self.horizontalLayout_10_1.setMargin(0) self.horizontalLayout_10_1.setObjectName("horizontalLayout_10") self.label_2_1 = QLabel(self.frame_8_1) self.label_2_1.setMinimumSize(QSize(140, 16777215)) # self.label_2_1.setFixedWidth(100) self.label_2_1.setText("MOCmultiplier") font = QFont() font.setFamily("Arial") font.setBold(False) font.setWeight(50) self.label_2_1.setFont(font) self.label_2_1.setObjectName("label_2_1") self.horizontalLayout_10_1.addWidget(self.label_2_1) self.parametersPanel.mocSpinBox = QSpinBox(self.frame_8_1) self.parametersPanel.mocSpinBox.setFont(font) self.parametersPanel.mocSpinBox.setObjectName("mocSpinBox") sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.parametersPanel.mocSpinBox.sizePolicy().hasHeightForWidth()) self.parametersPanel.mocSpinBox.setSizePolicy(sizePolicy) self.parametersPanel.mocSpinBox.setMinimum(1) self.parametersPanel.mocSpinBox.setMinimumSize(QSize(140, 16777215)) # self.parametersPanel.mocSpinBox.setFixedWidth(100) self.horizontalLayout_10_1.addWidget(self.parametersPanel.mocSpinBox) # self.verticalLayout_9.addWidget(self.frame_8_1) self.parametersPanel.vLayout_grbParameters.addWidget(self.frame_8_1) self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow) self.parametersPanel.frame_ConstructionType_2.hide() self.parametersPanel.txtIas.textChanged.connect(self.iasChanged) self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) # self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged) self.parametersPanel.txtAltitudeM.textChanged.connect( self.txtAltitudeMChanged) self.parametersPanel.txtAltitude.textChanged.connect( self.txtAltitudeFtChanged) self.flag = 0 if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.parametersPanel.txtAltitudeM.setText( str( round( Unit.ConvertFeetToMeter( float( self.parametersPanel.txtAltitude.text())), 4))) except: self.parametersPanel.txtAltitudeM.setText("0.0") self.parametersPanel.txtMoc.textChanged.connect(self.txtMocMChanged) self.parametersPanel.txtMocFt.textChanged.connect(self.txtMocFtChanged) self.flag1 = 0 if self.flag1 == 0: self.flag1 = 1 if self.flag1 == 2: self.flag1 = 0 if self.flag1 == 1: try: self.parametersPanel.txtMocFt.setText( str( round( Unit.ConvertMeterToFeet( float(self.parametersPanel.txtMoc.text())), 4))) except: self.parametersPanel.txtMocFt.setText("0.0") self.parametersPanel.txtTas.setText( str( round( Speed.smethod_0( Speed(float(self.parametersPanel.txtIas.text())), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots, 4)))
def changeCategory(self): if self.parametersPanel.cmbAircraftCategory.currentIndex( ) == AircraftSpeedCategory.A: self.parametersPanel.txtIas.setText( str( Speed.smethod_0( Speed(150), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) return elif self.parametersPanel.cmbAircraftCategory.currentIndex( ) == AircraftSpeedCategory.B: self.parametersPanel.txtIas.setText( str( Speed.smethod_0( Speed(180), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) return elif self.parametersPanel.cmbAircraftCategory.currentIndex( ) == AircraftSpeedCategory.C: self.parametersPanel.txtIas.setText( str( Speed.smethod_0( Speed(240), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) return elif self.parametersPanel.cmbAircraftCategory.currentIndex( ) == AircraftSpeedCategory.D: self.parametersPanel.txtIas.setText( str( Speed.smethod_0( Speed(250), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) return elif self.parametersPanel.cmbAircraftCategory.currentIndex( ) == AircraftSpeedCategory.E: self.parametersPanel.txtIas.setText( str( Speed.smethod_0( Speed(250), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) return elif self.parametersPanel.cmbAircraftCategory.currentIndex( ) == AircraftSpeedCategory.H: self.parametersPanel.txtIas.setText( str( Speed.smethod_0( Speed(70), float(self.parametersPanel.txtIsa.text()), Altitude( float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)).Knots)) return
def __init__(self, point3d_0, double_0, speed_0, altitude_0, speed_1, double_1, double_2, orientationType_0): ''' Constructor ''' # double num; # double num1; # double num2; # double num3; # double num4; # Point3d point3d; # Point3d point3d1; # Point3d point3d2; # Point3d point3d3; # Point3d point3d4; # Point3d point3d5; # Point3d point3d6; # Point3d point3d7; # Point3d point3d8; # Point3d point3d9; # Point3d point3d10; # Point3d point3d11; # Point3d point3d12; # Point3d point3d13; # Point3d point3d14; # Point3d point3d15; # Point3d point3d16; # Point3d point3d17; # Point3d point3d18; # Point3d point3d19; # Point3d point3d20; # Point3d point3d21; # Point3d point3d22; # Point3d point3d23; # Point3d point3d24; # Point3d point3d25; # Point3d point3d26; # Point3d point3d27; # Point3d point3d28; # Point3d point3d29; # Point3d point3d30; # Point3d point3d31; # Point3d point3d32; # Point3d point3d33; # Point3d point3d34; # Point3d point3d35; point3d_0 = point3d_0.smethod_167(0) self.ptBase = point3d_0 self.trackDeg = MathHelper.smethod_3(double_0) self.trackRad = MathHelper.smethod_4(Unit.ConvertDegToRad(double_0)) self.orientation = orientationType_0 self.tas = Speed.smethod_0(speed_0, double_1, altitude_0) self.R = min([943.27 / self.tas.KilometresPerHour, 3]) self.radius = Distance( Unit.ConvertKMToMeters(self.tas.KilometresPerHour / (62.8318530717959 * self.R))) metresPerSecond = self.tas.MetresPerSecond metres = self.radius.Metres kilometresPerHour = speed_1.KilometresPerHour metresPerSecond1 = speed_1.MetresPerSecond r = 45 * metresPerSecond1 / self.R double2 = double_2 * 60 self.ds = Distance(metresPerSecond * double2) self.wd = Distance( math.sqrt(self.ds.Metres * self.ds.Metres + 4 * metres * metres)) num5 = 5 * metresPerSecond num6 = 11 * metresPerSecond num7 = (double2 - 5) * metresPerSecond num8 = (double2 - 5) * metresPerSecond num9 = (double2 + 21) * metresPerSecond num10 = (double2 + 21) * metresPerSecond num11 = 5 * metresPerSecond1 num12 = 11 * metresPerSecond1 num13 = num12 + r num14 = num12 + 2 * r num15 = num12 + 3 * r num16 = num12 + 4 * r num17 = num11 + 5 * r num18 = num11 + 6 * r num19 = (double2 + 6) * metresPerSecond1 + 4 * r num20 = (double2 + 6) * metresPerSecond1 + 4 * r num21 = num19 + 14 * metresPerSecond1 num22 = num19 + 14 * metresPerSecond1 num23 = num21 + r num24 = num21 + 2 * r num25 = num21 + 2 * r num26 = num21 + 3 * r num27 = num19 + 4 * r num28 = num21 + 4 * r r1 = 2 * metres + (double2 + 15) * metresPerSecond + ( double2 + 26 + 195 / self.R) * metresPerSecond1 num29 = 11 * metresPerSecond * math.cos(Unit.ConvertDegToRad( 20)) + metres * (1 + math.sin(Unit.ConvertDegToRad(20))) + ( double2 + 15) * metresPerSecond * math.tan( Unit.ConvertDegToRad(5)) + ( double2 + 26 + 125 / self.R) * metresPerSecond1 self.ias = speed_0 self.wind = speed_1 self.isa = double_1 self.altitude = altitude_0 self.time = double_2 num30 = 1 if (orientationType_0 == OrientationType.Right) else -1 turnDirection = TurnDirection.Right if ( orientationType_0 == OrientationType.Right) else TurnDirection.Left turnDirection1 = TurnDirection.Left if ( orientationType_0 == OrientationType.Right) else TurnDirection.Right point3d36 = MathHelper.distanceBearingPoint(point3d_0, 0, 0) point3d37 = MathHelper.distanceBearingPoint( point3d36, Unit.ConvertDegToRad(double_0), num5) point3d38 = MathHelper.distanceBearingPoint( point3d36, Unit.ConvertDegToRad(double_0), num6) point3d39 = MathHelper.distanceBearingPoint( point3d38, Unit.ConvertDegToRad(double_0 + num30 * 90), metres) point3d40 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + num30 * -45), metres) point3d41 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0), metres) point3d42 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + num30 * 45), metres) point3d43 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + num30 * 90), metres) point3d39 = MathHelper.distanceBearingPoint( point3d37, Unit.ConvertDegToRad(double_0 + num30 * 90), metres) MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + num30 * 90), metres) point3d44 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + num30 * 135), metres) point3d45 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + 180), metres) point3d46 = MathHelper.distanceBearingPoint( point3d43, Unit.ConvertDegToRad(double_0 + 180 - num30 * 5), num7) point3d47 = MathHelper.distanceBearingPoint( point3d43, Unit.ConvertDegToRad(double_0 + 180 - num30 * 5), num9) point3d48 = MathHelper.distanceBearingPoint( point3d43, Unit.ConvertDegToRad(double_0 + 180 + num30 * 5), num8) point3d49 = MathHelper.distanceBearingPoint( point3d43, Unit.ConvertDegToRad(double_0 + 180 + num30 * 5), num10) point3d39 = MathHelper.distanceBearingPoint( point3d47, Unit.ConvertDegToRad(double_0 - num30 * 90), metres) point3d50 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + 180 - num30 * 45), metres) point3d51 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + 180), metres) MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + num30 * 90), metres) point3d39 = MathHelper.distanceBearingPoint( point3d49, Unit.ConvertDegToRad(double_0 - num30 * 90), metres) point3d52 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + 180), metres) point3d53 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 + 180 + num30 * 45), metres) point3d54 = MathHelper.distanceBearingPoint( point3d39, Unit.ConvertDegToRad(double_0 - num30 * 90), metres) point3d55 = MathHelper.distanceBearingPoint( point3d48, Unit.ConvertDegToRad(double_0 - num30 * 90), metres * 2) point3d, num = MathHelper.smethod_193(point3d38, num12, point3d40, num13, point3d41, num14, False) point3d1, num1 = MathHelper.smethod_193(point3d41, num14, point3d42, num15, point3d43, num16, False) point3d2, num2 = MathHelper.smethod_193(point3d43, num16, point3d44, num17, point3d45, num18, False) point3d3, num3 = MathHelper.smethod_193(point3d47, num21, point3d50, num23, point3d51, num24, False) point3d4, num4 = MathHelper.smethod_193(point3d52, num25, point3d53, num26, point3d54, num28, False) point3d56 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(double_0 - num30 * 90), num4) point3d57 = MathHelper.distanceBearingPoint( point3d56, Unit.ConvertDegToRad(double_0 + num30 * 90), num29) point3d58 = MathHelper.distanceBearingPoint( point3d3, Unit.ConvertDegToRad(double_0 + 180), num3) point3d58 = MathHelper.getIntersectionPoint( point3d_0, MathHelper.distanceBearingPoint( point3d_0, Unit.ConvertDegToRad(double_0 + 180), 100), point3d58, MathHelper.distanceBearingPoint( point3d58, Unit.ConvertDegToRad(double_0 + 90), 100)) point3d59 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(double_0 + 180), num4) point3d59 = MathHelper.getIntersectionPoint( point3d_0, MathHelper.distanceBearingPoint( point3d_0, Unit.ConvertDegToRad(double_0 + 180), 100), point3d59, MathHelper.distanceBearingPoint( point3d59, Unit.ConvertDegToRad(double_0 + 90), 100)) point3d5 = MathHelper.distanceBearingPoint( point3d58, Unit.ConvertDegToRad(double_0), r1) if (MathHelper.calcDistance(point3d_0, point3d58) >= MathHelper.calcDistance(point3d_0, point3d59) ) else MathHelper.distanceBearingPoint( point3d59, Unit.ConvertDegToRad(double_0), r1) self.ptE = MathHelper.getIntersectionPoint( point3d5, MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(double_0 + 90), 100), point3d57, MathHelper.distanceBearingPoint(point3d57, Unit.ConvertDegToRad(double_0), 100)) self.nominal = PolylineArea() point3d56 = MathHelper.distanceBearingPoint( point3d_0, Unit.ConvertDegToRad(double_0 + num30 * 90), 2 * metres) point3d58 = MathHelper.distanceBearingPoint( point3d56, Unit.ConvertDegToRad(double_0 + 180), self.ds.Metres) point3d59 = MathHelper.distanceBearingPoint( point3d58, Unit.ConvertDegToRad(double_0 - num30 * 90), 2 * metres) self.nominal.Add( PolylineAreaPoint( point3d_0, MathHelper.smethod_59(Unit.ConvertDegToRad(double_0), point3d_0, point3d56))) self.nominal.method_1(point3d56) self.nominal.Add( PolylineAreaPoint( point3d58, MathHelper.smethod_59(Unit.ConvertDegToRad(double_0 + 180), point3d58, point3d59))) self.nominal.method_1(point3d59) self.nominal.method_1(point3d_0) self.wd = Distance(MathHelper.calcDistance(point3d_0, point3d58)) self.area = PolylineArea() point3dCollection = [] point3dCollection.append( MathHelper.distanceBearingPoint(point3d, Unit.ConvertDegToRad(double_0), num)) point3dCollection.append( MathHelper.distanceBearingPoint(point3d1, Unit.ConvertDegToRad(double_0), num1)) point3dCollection.append( MathHelper.distanceBearingPoint( point3d3, Unit.ConvertDegToRad(double_0 + num30 * 90), num3)) point3dCollection.append( MathHelper.distanceBearingPoint( point3d3, Unit.ConvertDegToRad(double_0 + 180), num3)) point3dCollection.append( MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(double_0 + 180), num4)) point3dCollection.append( MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(double_0 - num30 * 90), num4)) point3dCollection.append( MathHelper.distanceBearingPoint(point3d55, Unit.ConvertDegToRad(double_0), num27)) point3d7, point3d8 = MathHelper.smethod_91(point3d3, num3, point3d4, num4, turnDirection) point3d9, point3d10 = MathHelper.smethod_91(point3d4, num4, point3d55, num27, turnDirection) point3d11, point3d12 = MathHelper.smethod_91(point3d4, num4, point3d, num, turnDirection) point3d13, point3d14 = MathHelper.smethod_91(point3d4, num4, point3d1, num1, turnDirection) point3d15, point3d16 = MathHelper.smethod_91(point3d4, num4, point3d3, num3, turnDirection) point3d17, point3d18 = MathHelper.smethod_91(point3d55, num27, point3d, num, turnDirection) point3d19, point3d20 = MathHelper.smethod_91(point3d55, num27, point3d1, num1, turnDirection) point3d21, point3d22 = MathHelper.smethod_91(point3d55, num27, point3d3, num3, turnDirection) point3d23, point3d6 = MathHelper.smethod_91(point3d, num, point3d1, num1, turnDirection) point3d24, point3d25 = MathHelper.smethod_91(point3d1, num1, point3d46, num19, turnDirection) point3d26, point3d27 = MathHelper.smethod_91(point3d46, num19, point3d3, num3, turnDirection) point3d28, point3d29 = MathHelper.smethod_91(point3d43, num16, point3d48, num20, turnDirection1) point3d30, point3d31 = MathHelper.smethod_91(point3d48, num20, point3d49, num22, turnDirection1) if (num4 >= MathHelper.calcDistance(point3d4, point3d55) + num27): self.area.method_1(point3d7) self.area.method_3( point3d8, MathHelper.smethod_57(turnDirection, point3d8, point3d9, point3d4)) self.area.method_1(point3d9) if (num27 <= MathHelper.calcDistance(point3d55, point3d1) + num1): flag = False if (num27 < MathHelper.calcDistance(point3d55, point3d) + num): point3d39 = MathHelper.distanceBearingPoint( point3d18, MathHelper.getBearing(point3d17, point3d18) + 1.5707963267949 * num30, 100) flag = MathHelper.smethod_119( point3d23, point3d18, point3d39) if (turnDirection != TurnDirection.Right ) else MathHelper.smethod_115( point3d23, point3d18, point3d39) if (flag): self.area.Add( PolylineAreaPoint( point3d10, MathHelper.smethod_57(turnDirection, point3d10, point3d17, point3d55))) self.area.method_1(point3d17) self.area.method_3( point3d18, MathHelper.smethod_57(turnDirection, point3d18, point3d23, point3d)) self.area.method_3( point3d23, MathHelper.smethod_57(turnDirection, point3d23, point3d24, point3d1)) self.area.method_1(point3d24) else: self.area.Add( PolylineAreaPoint( point3d10, MathHelper.smethod_57(turnDirection, point3d10, point3d19, point3d55))) self.area.method_1(point3d19) self.area.Add( PolylineAreaPoint( point3d20, MathHelper.smethod_57(turnDirection, point3d20, point3d24, point3d1))) self.area.method_1(point3d24) self.area.method_3( point3d25, MathHelper.smethod_57(turnDirection, point3d25, point3d26, point3d46)) self.area.method_1(point3d26) self.area.method_3( point3d27, MathHelper.smethod_57(turnDirection, point3d27, point3d7, point3d3)) self.area.method_1(point3d7) else: self.area.method_3( point3d10, MathHelper.smethod_57(turnDirection, point3d10, point3d21, point3d55)) self.area.method_1(point3d21) self.area.method_3( point3d22, MathHelper.smethod_57(turnDirection, point3d22, point3d7, point3d3)) self.area.method_1(point3d7) elif (num4 <= MathHelper.calcDistance(point3d4, point3d1) + num1): flag1 = False if (num4 < MathHelper.calcDistance(point3d4, point3d) + num): point3d39 = MathHelper.distanceBearingPoint( point3d12, MathHelper.getBearing(point3d11, point3d12) + 1.5707963267949 * num30, 100) flag1 = MathHelper.smethod_119( point3d23, point3d12, point3d39) if (turnDirection != TurnDirection.Right ) else MathHelper.smethod_115( point3d23, point3d12, point3d39) if (flag1): self.area.method_1(point3d7) self.area.method_3( point3d8, MathHelper.smethod_57(turnDirection, point3d8, point3d11, point3d4)) self.area.method_1(point3d11) self.area.method_3( point3d12, MathHelper.smethod_57(turnDirection, point3d12, point3d23, point3d)) self.area.method_3( point3d23, MathHelper.smethod_57(turnDirection, point3d23, point3d24, point3d1)) self.area.method_1(point3d24) else: self.area.method_1(point3d7) self.area.method_3( point3d8, MathHelper.smethod_57(turnDirection, point3d8, point3d13, point3d4)) self.area.method_1(point3d13) self.area.method_3( point3d14, MathHelper.smethod_57(turnDirection, point3d14, point3d24, point3d1)) self.area.method_1(point3d24) self.area.method_3( point3d25, MathHelper.smethod_57(turnDirection, point3d25, point3d26, point3d46)) self.area.method_1(point3d26) self.area.method_3( point3d27, MathHelper.smethod_57(turnDirection, point3d27, point3d7, point3d3)) self.area.method_1(point3d7) else: self.area.method_1(point3d7) self.area.method_3( point3d8, MathHelper.smethod_57(turnDirection, point3d8, point3d15, point3d4)) self.area.method_1(point3d15) self.area.method_3( point3d16, MathHelper.smethod_57(turnDirection, point3d16, point3d7, point3d3)) self.area.method_1(point3d7) self.outboundLineTop = PolylineArea() self.outboundLineTop.method_1(point3d24) self.outboundLineTop.method_3( point3d25, MathHelper.smethod_57(turnDirection, point3d25, point3d26, point3d46)) # PolylineArea polylineArea = self.outboundLineTop; point3dArray = [point3d26, point3d27] self.outboundLineTop.method_7(point3dArray) self.outboundLineBottom = PolylineArea() self.outboundLineBottom.method_1(point3d28) self.outboundLineBottom.method_3( point3d29, MathHelper.smethod_57(turnDirection1, point3d29, point3d30, point3d48)) # PolylineArea polylineArea1 = self.outboundLineBottom; point3dArray = [point3d30, point3d31] self.outboundLineBottom.method_7(point3dArray) self.spiral = PolylineArea() if (MathHelper.calcDistance(point3d, point3d_0) <= num): point3d32_39 = [] MathHelper.smethod_34( point3d_0, MathHelper.distanceBearingPoint(point3d_0, Unit.ConvertDegToRad(double_0), 100), point3d, num, point3d32_39) point3d32 = point3d32_39[0] point3d39 = point3d32_39[1] point3d33 = MathHelper.distanceBearingPoint( point3d, MathHelper.getBearing(point3d, point3d38), num) self.spiral.Add( PolylineAreaPoint( point3d32, MathHelper.smethod_57(turnDirection, point3d32, point3d33, point3d))) else: point3d32, point3d33 = MathHelper.smethod_91( point3d_0, 0, point3d, num, turnDirection) self.spiral.method_1(point3d32) point3d34, point3d35 = MathHelper.smethod_91(point3d, num, point3d1, num1, turnDirection) self.spiral.Add( PolylineAreaPoint( point3d33, MathHelper.smethod_57(turnDirection, point3d33, point3d34, point3d))) point3d33 = point3d34 point3d34, point3d35 = MathHelper.smethod_91(point3d1, num1, point3d2, num2, turnDirection) self.spiral.Add( PolylineAreaPoint( point3d33, MathHelper.smethod_57(turnDirection, point3d33, point3d34, point3d1))) point3d33 = point3d34 point3d39 = MathHelper.distanceBearingPoint( point3d2, Unit.ConvertDegToRad(double_0 + 180), num2) self.spiral.Add( PolylineAreaPoint( point3d33, MathHelper.smethod_57(turnDirection, point3d33, point3d39, point3d2))) self.spiral.method_1(point3d39) self.method_0(point3dCollection) self.method_1( MathHelper.distanceBearingPoint(point3d1, Unit.ConvertDegToRad(double_0), num1), MathHelper.distanceBearingPoint( point3d2, Unit.ConvertDegToRad(double_0 + num30 * 90), num2), MathHelper.distanceBearingPoint( point3d2, Unit.ConvertDegToRad(double_0 + 180), num2)) point3d56 = MathHelper.distanceBearingPoint( point3d_0, Unit.ConvertDegToRad(double_0 + 180), 1000) point3d39 = MathHelper.getIntersectionPoint(point3d_0, point3d56, point3d7, point3d8) point3d6_58 = [] MathHelper.smethod_34(point3d_0, point3d56, point3d3, num3, point3d6_58) point3d6 = point3d6_58[0] point3d58 = point3d6_58[1] point3d6_59 = [] MathHelper.smethod_34(point3d_0, point3d56, point3d4, num4, point3d6_59) point3d6 = point3d6_59[0] point3d59 = point3d6_59[1] if (orientationType_0 == OrientationType.Right): if (not MathHelper.smethod_119(point3d39, point3d3, point3d7) or not MathHelper.smethod_115(point3d39, point3d4, point3d8)): self.ptC = point3d58 if (MathHelper.calcDistance( point3d_0, point3d58) > MathHelper.calcDistance( point3d_0, point3d59)) else point3d59 else: self.ptC = point3d39 elif (not MathHelper.smethod_115(point3d39, point3d3, point3d7) or not MathHelper.smethod_119(point3d39, point3d4, point3d8)): self.ptC = point3d58 if ( MathHelper.calcDistance(point3d_0, point3d58) > MathHelper.calcDistance(point3d_0, point3d59)) else point3d59 else: self.ptC = point3d39 num31 = MathHelper.calcDistance(self.ptC, point3d43) point3d60 = MathHelper.distanceBearingPoint( self.ptC, MathHelper.getBearing(self.ptC, point3d43) + math.asin(num16 / num31) * num30, math.sqrt(num31 * num31 - num16 * num16)) point3d6_58 = [] MathHelper.smethod_34(self.ptC, point3d60, point3d1, num1, point3d6_58) point3d6 = point3d6_58[0] point3d58 = point3d6_58[1] point3d6_59 = [] MathHelper.smethod_34(self.ptC, point3d60, point3d2, num2, point3d6_59) point3d6 = point3d6_59[0] point3d59 = point3d6_59[1] self.ptR = point3d58 if ( MathHelper.calcDistance(self.ptC, point3d58) > MathHelper.calcDistance(self.ptC, point3d59)) else point3d59
def __init__(self, parent): QFrame.__init__(self, parent) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.horizontalLayout_32 = QHBoxLayout(self) self.horizontalLayout_32.setSpacing(0) self.horizontalLayout_32.setMargin(0) self.horizontalLayout_32.setObjectName(("horizontalLayout_32")) self.lblIA = QLabel(self) self.lblIA.setMinimumSize(QSize(140, 0)) self.lblIA.setMaximumSize(QSize(100, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.horizontalLayout_32.addWidget(self.lblIA) self.comboBox = QComboBox(self) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.comboBox.sizePolicy().hasHeightForWidth()) self.comboBox.setSizePolicy(sizePolicy) self.comboBox.setMinimumSize(QSize(60, 0)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(("comboBox")) self.horizontalLayout_32.addWidget(self.comboBox) self.speedBox = QLineEdit(self) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.speedBox.sizePolicy().hasHeightForWidth()) self.speedBox.setSizePolicy(sizePolicy) self.speedBox.setMinimumSize(QSize(70, 0)) self.speedBox.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.speedBox.setFont(font) self.speedBox.setObjectName(("speedBox")) self.horizontalLayout_32.addWidget(self.speedBox) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.comboBox.addItems(["ICAO", "UK", "Custom"]) self.comboBox.currentIndexChanged.connect(self.changeWindType) self.comboBox.setCurrentIndex(0) self.lblIA.setText("Wind (kts):") self.speedBox.setEnabled(False)
def get_speed(self): try: return Speed(float(self.speedBox.text())) except: return None
def method_5(self): self.ui.txtWind.setText(str(round((Speed.smethod_3(Altitude(float(self.ui.txtAltitude.text()), AltitudeUnits.FT), self.group.AerodromeElevation)).Knots, 1)))
def method_36_Construct(self, bool_0): polylines = [] point3d5 = self.parametersPanel.pnlWaypoint.Point3d value = float(self.parametersPanel.txtTrack.Value) value1 = float(self.parametersPanel.txtRnpValue.text()) speed = Speed(float(self.parametersPanel.txtIas.text())) altitude = Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT) num1 = float(self.parametersPanel.txtIsa.text()) value2 = float(self.parametersPanel.txtTime.text()) speed1 = Speed(float(self.parametersPanel.pnlWind.speedBox.text())) num = 15 if (altitude.Feet >= 24500) else 23 speed2 = Speed.smethod_0(speed, num1, altitude) metresPerSecond = value2 * 60 * speed2.MetresPerSecond num2 = math.pow(speed2.Knots + speed1.Knots, 2) / ( 34313 * math.tan(Unit.ConvertDegToRad(num))) * 1852 num3 = value1 * 1852 num4 = num2 * (1 - math.sin(Unit.ConvertDegToRad(20))) / ( 2 * math.cos(Unit.ConvertDegToRad(20))) num5 = value1 * 1852 + 3704 if (num5 < 9260): num5 = 9260 point3d4 = MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(value + 90), num2 / 2) if (self.parametersPanel.cmbOrientation.currentText() != OrientationType.Left) else MathHelper.distanceBearingPoint( point3d5, Unit.ConvertDegToRad(value - 90), num2 / 2) point3d6 = MathHelper.distanceBearingPoint(point3d4, Unit.ConvertDegToRad(value), num4) point3d7 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value + 180), metresPerSecond) num6 = num2 / 2 + 1.414 * num3 num7 = num2 / 2 + num3 point3d8 = MathHelper.distanceBearingPoint(point3d6, Unit.ConvertDegToRad(value), num6) point3d9 = MathHelper.distanceBearingPoint( point3d6, Unit.ConvertDegToRad(value + 90) - math.acos(num7 / num6), num6) point3d10 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 90) + math.acos(num7 / num6), num6) point3d11 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 180), num6) point3d12 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value - 90) - math.acos(num7 / num6), num6) point3d13 = MathHelper.distanceBearingPoint( point3d6, Unit.ConvertDegToRad(value - 90) + math.acos(num7 / num6), num6) point3d = MathHelper.getIntersectionPoint( point3d9, MathHelper.distanceBearingPoint( point3d9, MathHelper.getBearing(point3d6, point3d9) - Unit.ConvertDegToRad(90), 100), point3d8, MathHelper.distanceBearingPoint(point3d8, Unit.ConvertDegToRad(value + 90), 100)) point3d1 = MathHelper.getIntersectionPoint( point3d10, MathHelper.distanceBearingPoint( point3d10, MathHelper.getBearing(point3d7, point3d10) + Unit.ConvertDegToRad(90), 100), point3d11, MathHelper.distanceBearingPoint(point3d11, Unit.ConvertDegToRad(value + 90), 100)) point3d2 = MathHelper.getIntersectionPoint( point3d12, MathHelper.distanceBearingPoint( point3d12, MathHelper.getBearing(point3d7, point3d12) - Unit.ConvertDegToRad(90), 100), point3d11, MathHelper.distanceBearingPoint(point3d11, Unit.ConvertDegToRad(value - 90), 100)) point3d3 = MathHelper.getIntersectionPoint( point3d13, MathHelper.distanceBearingPoint( point3d13, MathHelper.getBearing(point3d6, point3d13) + Unit.ConvertDegToRad(90), 100), point3d8, MathHelper.distanceBearingPoint(point3d8, Unit.ConvertDegToRad(value - 90), 100)) polylines1 = [] polylineArea = None if (bool_0): num8 = num2 / 2 point3d14 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value + 90), num8) point3d15 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value + 90), num8) point3d16 = MathHelper.distanceBearingPoint( point3d7, Unit.ConvertDegToRad(value - 90), num8) point3d17 = MathHelper.distanceBearingPoint( point3d4, Unit.ConvertDegToRad(value - 90), num8) point3dArray = [point3d14, point3d15, point3d16, point3d17] polylineArea = PolylineArea(point3dArray) polylineArea.method_19( 1, -1 ) #MathHelper.smethod_57(TurnDirection.Right, point3d15, point3d16, point3d7)) polylineArea.method_19( 3, -1 ) #MathHelper.smethod_57(TurnDirection.Right, point3d17, point3d14, point3d4)) polylines1.append(polylineArea) point3dArray1 = [point3d9, point3d10, point3d12, point3d13] polylineArea1 = PolylineArea(point3dArray1) # for point3d0 in point3dArray1: # polyline1.Add(point3d0) polylineArea1.method_19( 1, MathHelper.smethod_57(TurnDirection.Right, point3d10, point3d12, point3d7)) polylineArea1.method_19( 3, MathHelper.smethod_57(TurnDirection.Right, point3d13, point3d9, point3d6)) # polylineArea1.set_closed(True) # polyline1.SetDatabaseDefaults(); polylines1.append(polylineArea1) polylineAreaLineList = [ PolylineArea( [polylineArea1[0].Position, polylineArea1[1].Position]), PolylineArea( [polylineArea1[2].Position, polylineArea1[3].Position]) ] polylineAreaArc0 = PolylineArea() polylineAreaArc0.Add(polylineArea1[1]) polylineAreaArc0.Add(PolylineAreaPoint(polylineArea1[2].Position)) polylineAreaArc1 = PolylineArea() polylineAreaArc1.Add(polylineArea1[3]) polylineAreaArc1.Add(PolylineAreaPoint(polylineArea1[0].Position)) polylineAreaArcList = [polylineAreaArc0, polylineAreaArc1] num9 = num5 / 5 polylineAreaArcListResult = [] polylineAreaLineListResult = [] for i in range(1, 6): polylineAreaL0 = polylineAreaLineList[0].getOffsetCurveNo( num9 * i, 4) polylineAreaLineListResult.append(polylineAreaL0) polylineAreaA0 = polylineAreaArcList[0].getOffsetCurveNo( num9 * i, 4) polylineAreaT = PolylineArea() polylineAreaT.Add( PolylineAreaPoint( polylineAreaA0[0].Position, MathHelper.smethod_60( polylineAreaA0[0].Position, polylineAreaA0[int(len(polylineAreaA0) / 2)].Position, polylineAreaA0[len(polylineAreaA0) - 1].Position))) polylineAreaT.Add( PolylineAreaPoint(polylineAreaA0[len(polylineAreaA0) - 1].Position)) polylineAreaArcListResult.append(polylineAreaT) polylineAreaL1 = polylineAreaLineList[1].getOffsetCurveNo( num9 * i, 4) polylineAreaLineListResult.append(polylineAreaL1) polylineAreaA1 = polylineAreaArcList[1].getOffsetCurveNo( num9 * i, 4) polylineAreaT = PolylineArea() polylineAreaT.Add( PolylineAreaPoint( polylineAreaA1[0].Position, MathHelper.smethod_60( polylineAreaA1[0].Position, polylineAreaA1[int(len(polylineAreaA1) / 2)].Position, polylineAreaA1[len(polylineAreaA1) - 1].Position))) polylineAreaT.Add( PolylineAreaPoint(polylineAreaA1[len(polylineAreaA1) - 1].Position)) polylineAreaArcListResult.append(polylineAreaT) polylineAreaLineListResult.append( PolylineArea([ polylineAreaL0[len(polylineAreaL0) - 1].Position, polylineAreaA0[0].Position ])) polylineAreaLineListResult.append( PolylineArea([ polylineAreaA0[len(polylineAreaA0) - 1].Position, polylineAreaL1[0].Position ])) polylineAreaLineListResult.append( PolylineArea([ polylineAreaL1[len(polylineAreaL1) - 1].Position, polylineAreaA1[0].Position ])) polylineAreaLineListResult.append( PolylineArea([ polylineAreaA1[len(polylineAreaA1) - 1].Position, polylineAreaL0[0].Position ])) return polylineAreaLineListResult, polylineAreaArcListResult, polylineArea