diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.py b/src/Mod/Ship/shipAreasCurve/TaskPanel.py index cbb3c20be..a218c59a0 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.py +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.py @@ -21,6 +21,7 @@ #* * #*************************************************************************** +import math # FreeCAD modules import FreeCAD as App import FreeCADGui as Gui @@ -75,6 +76,8 @@ class TaskPanel: form = mw.findChild(QtGui.QWidget, "TaskPanel") form.draft = form.findChild(QtGui.QDoubleSpinBox, "Draft") form.trim = form.findChild(QtGui.QDoubleSpinBox, "Trim") + form.output = form.findChild(QtGui.QTextEdit, "OutputData") + form.doc = QtGui.QTextDocument(form.output) self.form = form # Initial values if self.initValues(): @@ -148,6 +151,7 @@ class TaskPanel: self.form.trim.setValue(self.ship.AreaCurveTrim) # Update GUI self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) + self.onUpdate() msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False @@ -173,6 +177,29 @@ class TaskPanel: """ if not self.ship: return + # Calculate drafts + angle = math.radians(self.form.trim.value()) + L = self.ship.Length + draftAP = self.form.trim.value() + 0.5*L*math.tan(angle) + if draftAP < 0.0: + draftAP = 0.0 + draftFP = self.form.trim.value() - 0.5*L*math.tan(angle) + if draftFP < 0.0: + draftFP = 0.0 + # Calculate hydrostatics involved + disp = 0.0 + xcb = 0.0 + # Prepare the string in html format + string = 'L = %g [m]
' % (self.ship.Length) + string = string + 'B = %g [m]
' % (self.ship.Beam) + string = string + 'T = %g [m]
' % (self.form.draft.value()) + string = string + 'Trim = %g [degrees]
' % (self.form.trim.value()) + string = string + 'TAP = %g [m]
' % (draftAP) + string = string + 'TFP = %g [m]
' % (draftFP) + string = string + Translator.translate('Displacement') + ' = %g [ton]
' % (disp) + string = string + 'XCB = %g [m]' % (xcb) + # Set the document + self.form.output.setHtml(string) def save(self): """ Saves data into ship instance.