From 764c4ce9baeea715e6449fd0401e0b1b155a1d31 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Tue, 20 Dec 2016 12:28:22 +0100
Subject: [PATCH] ShiftStrategy & GUI: Added Params CLUpshiftMinAcceleration,
 CCUpshiftMinAcceleration in GUI and JSON File; Used in ShiftStrategy for
 Shift-Decisions

---
 VECTO/GUI/GearboxForm.Designer.vb             | 2217 +++++++++--------
 VECTO/GUI/GearboxForm.vb                      |  702 +++---
 VECTO/Input Files/Gearbox.vb                  |  216 +-
 VECTO/OutputData/JSONFileWriter.vb            |  110 +-
 .../InputData/EngineeringInputData.cs         |   17 +-
 .../Utils/StringExtensionMethods.cs           |    7 +
 .../InputData/FileIO/JSON/JSONGearboxData.cs  |   76 +-
 .../TorqueConverterDataReader.cs              |   46 +-
 .../EngineeringDataAdapter.cs                 |   13 +-
 .../Data/Gearbox/TorqueConverterData.cs       |   27 +-
 .../Impl/ATShiftStrategy.cs                   |   13 +-
 .../Impl/CombustionEngine.cs                  |   25 +-
 .../Models/SimulationComponent/Impl/Driver.cs |   58 +-
 .../Impl/EngineOnlyCombustionEngine.cs        |    6 +-
 VectoCore/VectoCore/VectoCore.csproj          |    1 +
 .../VectoCoreTest/Integration/ATPowerTrain.cs |    7 +-
 .../TorqueConverterDataTest.cs                |   34 +-
 17 files changed, 1846 insertions(+), 1729 deletions(-)

diff --git a/VECTO/GUI/GearboxForm.Designer.vb b/VECTO/GUI/GearboxForm.Designer.vb
index e3a6f51e4e..288972f60a 100644
--- a/VECTO/GUI/GearboxForm.Designer.vb
+++ b/VECTO/GUI/GearboxForm.Designer.vb
@@ -35,1081 +35,1135 @@ Partial Class GearboxForm
 	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
 	<DebuggerStepThrough()> _
 	Private Sub InitializeComponent()
-        Me.components = New System.ComponentModel.Container()
-        Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GearboxForm))
-        Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
-        Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton()
-        Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton()
-        Me.ToolStripBtSave = New System.Windows.Forms.ToolStripButton()
-        Me.ToolStripBtSaveAs = New System.Windows.Forms.ToolStripButton()
-        Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
-        Me.ToolStripBtSendTo = New System.Windows.Forms.ToolStripButton()
-        Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
-        Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
-        Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
-        Me.LbStatus = New System.Windows.Forms.ToolStripStatusLabel()
-        Me.ButCancel = New System.Windows.Forms.Button()
-        Me.ButOK = New System.Windows.Forms.Button()
-        Me.TbTracInt = New System.Windows.Forms.TextBox()
-        Me.LvGears = New System.Windows.Forms.ListView()
-        Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-        Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-        Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-        Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-        Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-        Me.TBI_getr = New System.Windows.Forms.TextBox()
-        Me.Label49 = New System.Windows.Forms.Label()
-        Me.Label33 = New System.Windows.Forms.Label()
-        Me.Label48 = New System.Windows.Forms.Label()
-        Me.Label6 = New System.Windows.Forms.Label()
-        Me.Label3 = New System.Windows.Forms.Label()
-        Me.TbName = New System.Windows.Forms.TextBox()
-        Me.PictureBox1 = New System.Windows.Forms.PictureBox()
-        Me.BtRemGear = New System.Windows.Forms.Button()
-        Me.GrGearShift = New System.Windows.Forms.GroupBox()
-        Me.GroupBox1 = New System.Windows.Forms.GroupBox()
-        Me.tbUpshiftMinAcceleration = New System.Windows.Forms.TextBox()
-        Me.tbUpshiftAfterDownshift = New System.Windows.Forms.TextBox()
-        Me.tbDownshiftAfterUpshift = New System.Windows.Forms.TextBox()
-        Me.Label24 = New System.Windows.Forms.Label()
-        Me.Label23 = New System.Windows.Forms.Label()
-        Me.Label22 = New System.Windows.Forms.Label()
-        Me.Label21 = New System.Windows.Forms.Label()
-        Me.Label20 = New System.Windows.Forms.Label()
-        Me.Label19 = New System.Windows.Forms.Label()
-        Me.PnTorqRes = New System.Windows.Forms.Panel()
-        Me.Label25 = New System.Windows.Forms.Label()
-        Me.Label2 = New System.Windows.Forms.Label()
-        Me.Label4 = New System.Windows.Forms.Label()
-        Me.TbTqResv = New System.Windows.Forms.TextBox()
-        Me.TbMinTimeBetweenShifts = New System.Windows.Forms.TextBox()
-        Me.Label12 = New System.Windows.Forms.Label()
-        Me.Label13 = New System.Windows.Forms.Label()
-        Me.GroupBox2 = New System.Windows.Forms.GroupBox()
-        Me.TbStartAcc = New System.Windows.Forms.TextBox()
-        Me.Label11 = New System.Windows.Forms.Label()
-        Me.TbStartSpeed = New System.Windows.Forms.TextBox()
-        Me.Label9 = New System.Windows.Forms.Label()
-        Me.Label10 = New System.Windows.Forms.Label()
-        Me.TbTqResvStart = New System.Windows.Forms.TextBox()
-        Me.Label8 = New System.Windows.Forms.Label()
-        Me.Label5 = New System.Windows.Forms.Label()
-        Me.Label7 = New System.Windows.Forms.Label()
-        Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components)
-        Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-        Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-        Me.GroupBox3 = New System.Windows.Forms.GroupBox()
-        Me.PnTC = New System.Windows.Forms.Panel()
-        Me.Label26 = New System.Windows.Forms.Label()
-        Me.tbTCmaxSpeed = New System.Windows.Forms.TextBox()
-        Me.Label27 = New System.Windows.Forms.Label()
-        Me.BtTCShiftFileBrowse = New System.Windows.Forms.Button()
-        Me.Label17 = New System.Windows.Forms.Label()
-        Me.TBTCShiftPolygon = New System.Windows.Forms.TextBox()
-        Me.LblTCShiftFile = New System.Windows.Forms.Label()
-        Me.Label18 = New System.Windows.Forms.Label()
-        Me.Label15 = New System.Windows.Forms.Label()
-        Me.TbTCinertia = New System.Windows.Forms.TextBox()
-        Me.Label1 = New System.Windows.Forms.Label()
-        Me.Label14 = New System.Windows.Forms.Label()
-        Me.BtTCfileBrowse = New System.Windows.Forms.Button()
-        Me.TbTCfile = New System.Windows.Forms.TextBox()
-        Me.BtTCfileOpen = New System.Windows.Forms.Button()
-        Me.TbTCrefrpm = New System.Windows.Forms.TextBox()
-        Me.Label16 = New System.Windows.Forms.Label()
-        Me.CbGStype = New System.Windows.Forms.ComboBox()
-        Me.BtAddGear = New System.Windows.Forms.Button()
-        Me.GroupBox4 = New System.Windows.Forms.GroupBox()
-        Me.Label32 = New System.Windows.Forms.Label()
-        Me.PnInertiaTI = New System.Windows.Forms.Panel()
-        Me.PicBox = New System.Windows.Forms.PictureBox()
-        Me.GroupBox5 = New System.Windows.Forms.GroupBox()
-        Me.Panel1 = New System.Windows.Forms.Panel()
-        Me.lbAtShiftTime = New System.Windows.Forms.Label()
-        Me.tbATShiftTime = New System.Windows.Forms.TextBox()
-        Me.Label28 = New System.Windows.Forms.Label()
-        Me.Label29 = New System.Windows.Forms.Label()
-        Me.tbATInertiaFactor = New System.Windows.Forms.TextBox()
-        Me.lbATInertiaFactor = New System.Windows.Forms.Label()
-        Me.ToolStrip1.SuspendLayout()
-        Me.StatusStrip1.SuspendLayout()
-        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
-        Me.GrGearShift.SuspendLayout()
-        Me.GroupBox1.SuspendLayout()
-        Me.PnTorqRes.SuspendLayout()
-        Me.GroupBox2.SuspendLayout()
-        Me.CmOpenFile.SuspendLayout()
-        Me.GroupBox3.SuspendLayout()
-        Me.PnTC.SuspendLayout()
-        Me.GroupBox4.SuspendLayout()
-        Me.PnInertiaTI.SuspendLayout()
-        CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit()
-        Me.GroupBox5.SuspendLayout()
-        Me.Panel1.SuspendLayout()
-        Me.SuspendLayout()
-        '
-        'ToolStrip1
-        '
-        Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
-        Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1})
-        Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
-        Me.ToolStrip1.Name = "ToolStrip1"
-        Me.ToolStrip1.Size = New System.Drawing.Size(877, 25)
-        Me.ToolStrip1.TabIndex = 30
-        Me.ToolStrip1.Text = "ToolStrip1"
-        '
-        'ToolStripBtNew
-        '
-        Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-        Me.ToolStripBtNew.Image = Global.TUGraz.VECTO.My.Resources.Resources.blue_document_icon
-        Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta
-        Me.ToolStripBtNew.Name = "ToolStripBtNew"
-        Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22)
-        Me.ToolStripBtNew.Text = "ToolStripButton1"
-        Me.ToolStripBtNew.ToolTipText = "New"
-        '
-        'ToolStripBtOpen
-        '
-        Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-        Me.ToolStripBtOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta
-        Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
-        Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22)
-        Me.ToolStripBtOpen.Text = "ToolStripButton1"
-        Me.ToolStripBtOpen.ToolTipText = "Open..."
-        '
-        'ToolStripBtSave
-        '
-        Me.ToolStripBtSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-        Me.ToolStripBtSave.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_icon
-        Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta
-        Me.ToolStripBtSave.Name = "ToolStripBtSave"
-        Me.ToolStripBtSave.Size = New System.Drawing.Size(23, 22)
-        Me.ToolStripBtSave.Text = "ToolStripButton1"
-        Me.ToolStripBtSave.ToolTipText = "Save"
-        '
-        'ToolStripBtSaveAs
-        '
-        Me.ToolStripBtSaveAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-        Me.ToolStripBtSaveAs.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_as_icon
-        Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
-        Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
-        Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(23, 22)
-        Me.ToolStripBtSaveAs.Text = "ToolStripButton1"
-        Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
-        '
-        'ToolStripSeparator3
-        '
-        Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
-        Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25)
-        '
-        'ToolStripBtSendTo
-        '
-        Me.ToolStripBtSendTo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-        Me.ToolStripBtSendTo.Image = Global.TUGraz.VECTO.My.Resources.Resources.export_icon
-        Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta
-        Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
-        Me.ToolStripBtSendTo.Size = New System.Drawing.Size(23, 22)
-        Me.ToolStripBtSendTo.Text = "Send to Job Editor"
-        Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor"
-        '
-        'ToolStripSeparator1
-        '
-        Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
-        Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25)
-        '
-        'ToolStripButton1
-        '
-        Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-        Me.ToolStripButton1.Image = Global.TUGraz.VECTO.My.Resources.Resources.Help_icon
-        Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
-        Me.ToolStripButton1.Name = "ToolStripButton1"
-        Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22)
-        Me.ToolStripButton1.Text = "Help"
-        '
-        'StatusStrip1
-        '
-        Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus})
-        Me.StatusStrip1.Location = New System.Drawing.Point(0, 680)
-        Me.StatusStrip1.Name = "StatusStrip1"
-        Me.StatusStrip1.Size = New System.Drawing.Size(877, 22)
-        Me.StatusStrip1.SizingGrip = False
-        Me.StatusStrip1.TabIndex = 37
-        Me.StatusStrip1.Text = "StatusStrip1"
-        '
-        'LbStatus
-        '
-        Me.LbStatus.Name = "LbStatus"
-        Me.LbStatus.Size = New System.Drawing.Size(39, 17)
-        Me.LbStatus.Text = "Status"
-        '
-        'ButCancel
-        '
-        Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
-        Me.ButCancel.Location = New System.Drawing.Point(790, 654)
-        Me.ButCancel.Name = "ButCancel"
-        Me.ButCancel.Size = New System.Drawing.Size(75, 23)
-        Me.ButCancel.TabIndex = 7
-        Me.ButCancel.Text = "Cancel"
-        Me.ButCancel.UseVisualStyleBackColor = True
-        '
-        'ButOK
-        '
-        Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.ButOK.Location = New System.Drawing.Point(709, 654)
-        Me.ButOK.Name = "ButOK"
-        Me.ButOK.Size = New System.Drawing.Size(75, 23)
-        Me.ButOK.TabIndex = 6
-        Me.ButOK.Text = "Save"
-        Me.ButOK.UseVisualStyleBackColor = True
-        '
-        'TbTracInt
-        '
-        Me.TbTracInt.Location = New System.Drawing.Point(303, 3)
-        Me.TbTracInt.Name = "TbTracInt"
-        Me.TbTracInt.Size = New System.Drawing.Size(40, 20)
-        Me.TbTracInt.TabIndex = 1
-        '
-        'LvGears
-        '
-        Me.LvGears.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5, Me.ColumnHeader6})
-        Me.LvGears.FullRowSelect = True
-        Me.LvGears.GridLines = True
-        Me.LvGears.HideSelection = False
-        Me.LvGears.Location = New System.Drawing.Point(6, 18)
-        Me.LvGears.MultiSelect = False
-        Me.LvGears.Name = "LvGears"
-        Me.LvGears.Size = New System.Drawing.Size(429, 183)
-        Me.LvGears.TabIndex = 0
-        Me.LvGears.TabStop = False
-        Me.LvGears.UseCompatibleStateImageBehavior = False
-        Me.LvGears.View = System.Windows.Forms.View.Details
-        '
-        'ColumnHeader1
-        '
-        Me.ColumnHeader1.Text = "Gear"
-        Me.ColumnHeader1.Width = 46
-        '
-        'ColumnHeader2
-        '
-        Me.ColumnHeader2.Text = "Ratio"
-        Me.ColumnHeader2.Width = 50
-        '
-        'ColumnHeader3
-        '
-        Me.ColumnHeader3.Text = "Loss Map or Efficiency"
-        Me.ColumnHeader3.Width = 128
-        '
-        'ColumnHeader5
-        '
-        Me.ColumnHeader5.Text = "Shift Polygons"
-        Me.ColumnHeader5.Width = 94
-        '
-        'ColumnHeader6
-        '
-        Me.ColumnHeader6.Text = "Max Torque"
-        Me.ColumnHeader6.Width = 95
-        '
-        'TBI_getr
-        '
-        Me.TBI_getr.Location = New System.Drawing.Point(53, 3)
-        Me.TBI_getr.Name = "TBI_getr"
-        Me.TBI_getr.Size = New System.Drawing.Size(57, 20)
-        Me.TBI_getr.TabIndex = 0
-        '
-        'Label49
-        '
-        Me.Label49.AutoSize = True
-        Me.Label49.Location = New System.Drawing.Point(349, 6)
-        Me.Label49.Name = "Label49"
-        Me.Label49.Size = New System.Drawing.Size(18, 13)
-        Me.Label49.TabIndex = 2
-        Me.Label49.Text = "[s]"
-        '
-        'Label33
-        '
-        Me.Label33.AutoSize = True
-        Me.Label33.Location = New System.Drawing.Point(116, 6)
-        Me.Label33.Name = "Label33"
-        Me.Label33.Size = New System.Drawing.Size(36, 13)
-        Me.Label33.TabIndex = 2
-        Me.Label33.Text = "[kgm²]"
-        '
-        'Label48
-        '
-        Me.Label48.AutoSize = True
-        Me.Label48.Location = New System.Drawing.Point(195, 6)
-        Me.Label48.Name = "Label48"
-        Me.Label48.Size = New System.Drawing.Size(102, 13)
-        Me.Label48.TabIndex = 2
-        Me.Label48.Text = "Traction Interruption"
-        '
-        'Label6
-        '
-        Me.Label6.AutoSize = True
-        Me.Label6.Location = New System.Drawing.Point(11, 6)
-        Me.Label6.Name = "Label6"
-        Me.Label6.Size = New System.Drawing.Size(36, 13)
-        Me.Label6.TabIndex = 2
-        Me.Label6.Text = "Inertia"
-        '
-        'Label3
-        '
-        Me.Label3.AutoSize = True
-        Me.Label3.Location = New System.Drawing.Point(26, 85)
-        Me.Label3.Name = "Label3"
-        Me.Label3.Size = New System.Drawing.Size(87, 13)
-        Me.Label3.TabIndex = 42
-        Me.Label3.Text = "Make and Model"
-        '
-        'TbName
-        '
-        Me.TbName.Location = New System.Drawing.Point(119, 82)
-        Me.TbName.Name = "TbName"
-        Me.TbName.Size = New System.Drawing.Size(334, 20)
-        Me.TbName.TabIndex = 0
-        '
-        'PictureBox1
-        '
-        Me.PictureBox1.BackColor = System.Drawing.Color.White
-        Me.PictureBox1.Image = Global.TUGraz.VECTO.My.Resources.Resources.VECTO_GBX
-        Me.PictureBox1.Location = New System.Drawing.Point(0, 28)
-        Me.PictureBox1.Name = "PictureBox1"
-        Me.PictureBox1.Size = New System.Drawing.Size(461, 40)
-        Me.PictureBox1.TabIndex = 43
-        Me.PictureBox1.TabStop = False
-        '
-        'BtRemGear
-        '
-        Me.BtRemGear.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
-        Me.BtRemGear.Location = New System.Drawing.Point(30, 202)
-        Me.BtRemGear.Name = "BtRemGear"
-        Me.BtRemGear.Size = New System.Drawing.Size(24, 24)
-        Me.BtRemGear.TabIndex = 2
-        Me.BtRemGear.UseVisualStyleBackColor = True
-        '
-        'GrGearShift
-        '
-        Me.GrGearShift.Controls.Add(Me.GroupBox1)
-        Me.GrGearShift.Controls.Add(Me.PnTorqRes)
-        Me.GrGearShift.Controls.Add(Me.TbMinTimeBetweenShifts)
-        Me.GrGearShift.Controls.Add(Me.Label12)
-        Me.GrGearShift.Controls.Add(Me.Label13)
-        Me.GrGearShift.Controls.Add(Me.GroupBox2)
-        Me.GrGearShift.Location = New System.Drawing.Point(12, 377)
-        Me.GrGearShift.Name = "GrGearShift"
-        Me.GrGearShift.Size = New System.Drawing.Size(441, 291)
-        Me.GrGearShift.TabIndex = 3
-        Me.GrGearShift.TabStop = False
-        Me.GrGearShift.Text = "Gear shift parameters"
-        '
-        'GroupBox1
-        '
-        Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration)
-        Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift)
-        Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift)
-        Me.GroupBox1.Controls.Add(Me.Label24)
-        Me.GroupBox1.Controls.Add(Me.Label23)
-        Me.GroupBox1.Controls.Add(Me.Label22)
-        Me.GroupBox1.Controls.Add(Me.Label21)
-        Me.GroupBox1.Controls.Add(Me.Label20)
-        Me.GroupBox1.Controls.Add(Me.Label19)
-        Me.GroupBox1.Location = New System.Drawing.Point(6, 82)
-        Me.GroupBox1.Name = "GroupBox1"
-        Me.GroupBox1.Size = New System.Drawing.Size(429, 100)
-        Me.GroupBox1.TabIndex = 10
-        Me.GroupBox1.TabStop = False
-        Me.GroupBox1.Text = "Shift Strategy Parameters"
-        '
-        'tbUpshiftMinAcceleration
-        '
-        Me.tbUpshiftMinAcceleration.Location = New System.Drawing.Point(209, 71)
-        Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration"
-        Me.tbUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20)
-        Me.tbUpshiftMinAcceleration.TabIndex = 8
-        '
-        'tbUpshiftAfterDownshift
-        '
-        Me.tbUpshiftAfterDownshift.Location = New System.Drawing.Point(209, 45)
-        Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift"
-        Me.tbUpshiftAfterDownshift.Size = New System.Drawing.Size(57, 20)
-        Me.tbUpshiftAfterDownshift.TabIndex = 7
-        '
-        'tbDownshiftAfterUpshift
-        '
-        Me.tbDownshiftAfterUpshift.Location = New System.Drawing.Point(209, 20)
-        Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift"
-        Me.tbDownshiftAfterUpshift.Size = New System.Drawing.Size(57, 20)
-        Me.tbDownshiftAfterUpshift.TabIndex = 6
-        '
-        'Label24
-        '
-        Me.Label24.AutoSize = True
-        Me.Label24.Location = New System.Drawing.Point(275, 74)
-        Me.Label24.Name = "Label24"
-        Me.Label24.Size = New System.Drawing.Size(34, 13)
-        Me.Label24.TabIndex = 5
-        Me.Label24.Text = "[m/s²]"
-        '
-        'Label23
-        '
-        Me.Label23.AutoSize = True
-        Me.Label23.Location = New System.Drawing.Point(275, 48)
-        Me.Label23.Name = "Label23"
-        Me.Label23.Size = New System.Drawing.Size(18, 13)
-        Me.Label23.TabIndex = 4
-        Me.Label23.Text = "[s]"
-        '
-        'Label22
-        '
-        Me.Label22.AutoSize = True
-        Me.Label22.Location = New System.Drawing.Point(275, 25)
-        Me.Label22.Name = "Label22"
-        Me.Label22.Size = New System.Drawing.Size(18, 13)
-        Me.Label22.TabIndex = 3
-        Me.Label22.Text = "[s]"
-        '
-        'Label21
-        '
-        Me.Label21.AutoSize = True
-        Me.Label21.Location = New System.Drawing.Point(20, 74)
-        Me.Label21.Name = "Label21"
-        Me.Label21.Size = New System.Drawing.Size(146, 13)
-        Me.Label21.TabIndex = 2
-        Me.Label21.Text = "Min. acceleration after upshift"
-        '
-        'Label20
-        '
-        Me.Label20.AutoSize = True
-        Me.Label20.Location = New System.Drawing.Point(20, 48)
-        Me.Label20.Name = "Label20"
-        Me.Label20.Size = New System.Drawing.Size(137, 13)
-        Me.Label20.TabIndex = 1
-        Me.Label20.Text = "Upshift afer downshift delay"
-        '
-        'Label19
-        '
-        Me.Label19.AutoSize = True
-        Me.Label19.Location = New System.Drawing.Point(20, 25)
-        Me.Label19.Name = "Label19"
-        Me.Label19.Size = New System.Drawing.Size(137, 13)
-        Me.Label19.TabIndex = 0
-        Me.Label19.Text = "Downshift afer upshift delay"
-        '
-        'PnTorqRes
-        '
-        Me.PnTorqRes.Controls.Add(Me.Label25)
-        Me.PnTorqRes.Controls.Add(Me.Label2)
-        Me.PnTorqRes.Controls.Add(Me.Label4)
-        Me.PnTorqRes.Controls.Add(Me.TbTqResv)
-        Me.PnTorqRes.Location = New System.Drawing.Point(9, 20)
-        Me.PnTorqRes.Name = "PnTorqRes"
-        Me.PnTorqRes.Size = New System.Drawing.Size(426, 32)
-        Me.PnTorqRes.TabIndex = 2
-        '
-        'Label25
-        '
-        Me.Label25.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.Label25.AutoSize = True
-        Me.Label25.Location = New System.Drawing.Point(294, 9)
-        Me.Label25.Name = "Label25"
-        Me.Label25.Size = New System.Drawing.Size(129, 13)
-        Me.Label25.TabIndex = 1
-        Me.Label25.Text = "(Early shift-up, Skip gears)"
-        '
-        'Label2
-        '
-        Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.Label2.AutoSize = True
-        Me.Label2.Location = New System.Drawing.Point(18, 9)
-        Me.Label2.Name = "Label2"
-        Me.Label2.Size = New System.Drawing.Size(79, 13)
-        Me.Label2.TabIndex = 0
-        Me.Label2.Text = "Torque reserve"
-        '
-        'Label4
-        '
-        Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.Label4.AutoSize = True
-        Me.Label4.Location = New System.Drawing.Point(272, 9)
-        Me.Label4.Name = "Label4"
-        Me.Label4.Size = New System.Drawing.Size(21, 13)
-        Me.Label4.TabIndex = 0
-        Me.Label4.Text = "[%]"
-        '
-        'TbTqResv
-        '
-        Me.TbTqResv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.TbTqResv.Location = New System.Drawing.Point(206, 6)
-        Me.TbTqResv.Name = "TbTqResv"
-        Me.TbTqResv.Size = New System.Drawing.Size(57, 20)
-        Me.TbTqResv.TabIndex = 0
-        '
-        'TbMinTimeBetweenShifts
-        '
-        Me.TbMinTimeBetweenShifts.Location = New System.Drawing.Point(215, 52)
-        Me.TbMinTimeBetweenShifts.Name = "TbMinTimeBetweenShifts"
-        Me.TbMinTimeBetweenShifts.Size = New System.Drawing.Size(57, 20)
-        Me.TbMinTimeBetweenShifts.TabIndex = 3
-        '
-        'Label12
-        '
-        Me.Label12.AutoSize = True
-        Me.Label12.Location = New System.Drawing.Point(281, 55)
-        Me.Label12.Name = "Label12"
-        Me.Label12.Size = New System.Drawing.Size(18, 13)
-        Me.Label12.TabIndex = 9
-        Me.Label12.Text = "[s]"
-        '
-        'Label13
-        '
-        Me.Label13.AutoSize = True
-        Me.Label13.Location = New System.Drawing.Point(27, 55)
-        Me.Label13.Name = "Label13"
-        Me.Label13.Size = New System.Drawing.Size(162, 13)
-        Me.Label13.TabIndex = 8
-        Me.Label13.Text = "Minimum time between gearshifts"
-        '
-        'GroupBox2
-        '
-        Me.GroupBox2.Controls.Add(Me.TbStartAcc)
-        Me.GroupBox2.Controls.Add(Me.Label11)
-        Me.GroupBox2.Controls.Add(Me.TbStartSpeed)
-        Me.GroupBox2.Controls.Add(Me.Label9)
-        Me.GroupBox2.Controls.Add(Me.Label10)
-        Me.GroupBox2.Controls.Add(Me.TbTqResvStart)
-        Me.GroupBox2.Controls.Add(Me.Label8)
-        Me.GroupBox2.Controls.Add(Me.Label5)
-        Me.GroupBox2.Controls.Add(Me.Label7)
-        Me.GroupBox2.Location = New System.Drawing.Point(6, 186)
-        Me.GroupBox2.Name = "GroupBox2"
-        Me.GroupBox2.Size = New System.Drawing.Size(429, 99)
-        Me.GroupBox2.TabIndex = 4
-        Me.GroupBox2.TabStop = False
-        Me.GroupBox2.Text = "Start Gear"
-        '
-        'TbStartAcc
-        '
-        Me.TbStartAcc.Location = New System.Drawing.Point(209, 71)
-        Me.TbStartAcc.Name = "TbStartAcc"
-        Me.TbStartAcc.Size = New System.Drawing.Size(57, 20)
-        Me.TbStartAcc.TabIndex = 2
-        '
-        'Label11
-        '
-        Me.Label11.AutoSize = True
-        Me.Label11.Location = New System.Drawing.Point(20, 74)
-        Me.Label11.Name = "Label11"
-        Me.Label11.Size = New System.Drawing.Size(173, 13)
-        Me.Label11.TabIndex = 0
-        Me.Label11.Text = "Reference acceleration at clutch-in"
-        '
-        'TbStartSpeed
-        '
-        Me.TbStartSpeed.Location = New System.Drawing.Point(209, 45)
-        Me.TbStartSpeed.Name = "TbStartSpeed"
-        Me.TbStartSpeed.Size = New System.Drawing.Size(57, 20)
-        Me.TbStartSpeed.TabIndex = 1
-        '
-        'Label9
-        '
-        Me.Label9.AutoSize = True
-        Me.Label9.Location = New System.Drawing.Point(20, 48)
-        Me.Label9.Name = "Label9"
-        Me.Label9.Size = New System.Drawing.Size(181, 13)
-        Me.Label9.TabIndex = 0
-        Me.Label9.Text = "Reference vehicle speed at clutch-in"
-        '
-        'Label10
-        '
-        Me.Label10.AutoSize = True
-        Me.Label10.Location = New System.Drawing.Point(272, 74)
-        Me.Label10.Name = "Label10"
-        Me.Label10.Size = New System.Drawing.Size(34, 13)
-        Me.Label10.TabIndex = 0
-        Me.Label10.Text = "[m/s²]"
-        '
-        'TbTqResvStart
-        '
-        Me.TbTqResvStart.Location = New System.Drawing.Point(209, 19)
-        Me.TbTqResvStart.Name = "TbTqResvStart"
-        Me.TbTqResvStart.Size = New System.Drawing.Size(57, 20)
-        Me.TbTqResvStart.TabIndex = 0
-        '
-        'Label8
-        '
-        Me.Label8.AutoSize = True
-        Me.Label8.Location = New System.Drawing.Point(272, 48)
-        Me.Label8.Name = "Label8"
-        Me.Label8.Size = New System.Drawing.Size(31, 13)
-        Me.Label8.TabIndex = 0
-        Me.Label8.Text = "[m/s]"
-        '
-        'Label5
-        '
-        Me.Label5.AutoSize = True
-        Me.Label5.Location = New System.Drawing.Point(20, 22)
-        Me.Label5.Name = "Label5"
-        Me.Label5.Size = New System.Drawing.Size(79, 13)
-        Me.Label5.TabIndex = 0
-        Me.Label5.Text = "Torque reserve"
-        '
-        'Label7
-        '
-        Me.Label7.AutoSize = True
-        Me.Label7.Location = New System.Drawing.Point(272, 22)
-        Me.Label7.Name = "Label7"
-        Me.Label7.Size = New System.Drawing.Size(21, 13)
-        Me.Label7.TabIndex = 0
-        Me.Label7.Text = "[%]"
-        '
-        'CmOpenFile
-        '
-        Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
-        Me.CmOpenFile.Name = "CmOpenFile"
-        Me.CmOpenFile.Size = New System.Drawing.Size(153, 48)
-        '
-        'OpenWithToolStripMenuItem
-        '
-        Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
-        Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22)
-        Me.OpenWithToolStripMenuItem.Text = "Open with ..."
-        '
-        'ShowInFolderToolStripMenuItem
-        '
-        Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
-        Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22)
-        Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
-        '
-        'GroupBox3
-        '
-        Me.GroupBox3.Controls.Add(Me.PnTC)
-        Me.GroupBox3.Location = New System.Drawing.Point(459, 377)
-        Me.GroupBox3.Name = "GroupBox3"
-        Me.GroupBox3.Size = New System.Drawing.Size(414, 188)
-        Me.GroupBox3.TabIndex = 5
-        Me.GroupBox3.TabStop = False
-        Me.GroupBox3.Text = "Torque Converter"
-        '
-        'PnTC
-        '
-        Me.PnTC.Controls.Add(Me.Label26)
-        Me.PnTC.Controls.Add(Me.tbTCmaxSpeed)
-        Me.PnTC.Controls.Add(Me.Label27)
-        Me.PnTC.Controls.Add(Me.BtTCShiftFileBrowse)
-        Me.PnTC.Controls.Add(Me.Label17)
-        Me.PnTC.Controls.Add(Me.TBTCShiftPolygon)
-        Me.PnTC.Controls.Add(Me.LblTCShiftFile)
-        Me.PnTC.Controls.Add(Me.Label18)
-        Me.PnTC.Controls.Add(Me.Label15)
-        Me.PnTC.Controls.Add(Me.TbTCinertia)
-        Me.PnTC.Controls.Add(Me.Label1)
-        Me.PnTC.Controls.Add(Me.Label14)
-        Me.PnTC.Controls.Add(Me.BtTCfileBrowse)
-        Me.PnTC.Controls.Add(Me.TbTCfile)
-        Me.PnTC.Controls.Add(Me.BtTCfileOpen)
-        Me.PnTC.Controls.Add(Me.TbTCrefrpm)
-        Me.PnTC.Location = New System.Drawing.Point(6, 19)
-        Me.PnTC.Name = "PnTC"
-        Me.PnTC.Size = New System.Drawing.Size(402, 163)
-        Me.PnTC.TabIndex = 36
-        '
-        'Label26
-        '
-        Me.Label26.AutoSize = True
-        Me.Label26.Location = New System.Drawing.Point(5, 77)
-        Me.Label26.Name = "Label26"
-        Me.Label26.Size = New System.Drawing.Size(64, 13)
-        Me.Label26.TabIndex = 38
-        Me.Label26.Text = "Max. Speed"
-        '
-        'tbTCmaxSpeed
-        '
-        Me.tbTCmaxSpeed.Location = New System.Drawing.Point(75, 71)
-        Me.tbTCmaxSpeed.Name = "tbTCmaxSpeed"
-        Me.tbTCmaxSpeed.Size = New System.Drawing.Size(67, 20)
-        Me.tbTCmaxSpeed.TabIndex = 40
-        '
-        'Label27
-        '
-        Me.Label27.AutoSize = True
-        Me.Label27.Location = New System.Drawing.Point(148, 74)
-        Me.Label27.Name = "Label27"
-        Me.Label27.Size = New System.Drawing.Size(30, 13)
-        Me.Label27.TabIndex = 39
-        Me.Label27.Text = "[rpm]"
-        '
-        'BtTCShiftFileBrowse
-        '
-        Me.BtTCShiftFileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.BtTCShiftFileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.BtTCShiftFileBrowse.Location = New System.Drawing.Point(353, 126)
-        Me.BtTCShiftFileBrowse.Name = "BtTCShiftFileBrowse"
-        Me.BtTCShiftFileBrowse.Size = New System.Drawing.Size(24, 24)
-        Me.BtTCShiftFileBrowse.TabIndex = 5
-        Me.BtTCShiftFileBrowse.TabStop = False
-        Me.BtTCShiftFileBrowse.UseVisualStyleBackColor = True
-        '
-        'Label17
-        '
-        Me.Label17.AutoSize = True
-        Me.Label17.Location = New System.Drawing.Point(0, 5)
-        Me.Label17.Name = "Label17"
-        Me.Label17.Size = New System.Drawing.Size(176, 13)
-        Me.Label17.TabIndex = 0
-        Me.Label17.Text = "Torque converter characteristics file"
-        '
-        'TBTCShiftPolygon
-        '
-        Me.TBTCShiftPolygon.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
-            Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.TBTCShiftPolygon.Location = New System.Drawing.Point(4, 126)
-        Me.TBTCShiftPolygon.Name = "TBTCShiftPolygon"
-        Me.TBTCShiftPolygon.Size = New System.Drawing.Size(343, 20)
-        Me.TBTCShiftPolygon.TabIndex = 37
-        '
-        'LblTCShiftFile
-        '
-        Me.LblTCShiftFile.AutoSize = True
-        Me.LblTCShiftFile.Location = New System.Drawing.Point(5, 100)
-        Me.LblTCShiftFile.Name = "LblTCShiftFile"
-        Me.LblTCShiftFile.Size = New System.Drawing.Size(172, 13)
-        Me.LblTCShiftFile.TabIndex = 5
-        Me.LblTCShiftFile.Text = "Torque converter shift polygons file"
-        '
-        'Label18
-        '
-        Me.Label18.AutoSize = True
-        Me.Label18.Location = New System.Drawing.Point(5, 50)
-        Me.Label18.Name = "Label18"
-        Me.Label18.Size = New System.Drawing.Size(36, 13)
-        Me.Label18.TabIndex = 2
-        Me.Label18.Text = "Inertia"
-        '
-        'Label15
-        '
-        Me.Label15.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.Label15.AutoSize = True
-        Me.Label15.Location = New System.Drawing.Point(197, 50)
-        Me.Label15.Name = "Label15"
-        Me.Label15.Size = New System.Drawing.Size(77, 13)
-        Me.Label15.TabIndex = 0
-        Me.Label15.Text = "Reference rpm"
-        '
-        'TbTCinertia
-        '
-        Me.TbTCinertia.Location = New System.Drawing.Point(75, 45)
-        Me.TbTCinertia.Name = "TbTCinertia"
-        Me.TbTCinertia.Size = New System.Drawing.Size(67, 20)
-        Me.TbTCinertia.TabIndex = 3
-        '
-        'Label1
-        '
-        Me.Label1.AutoSize = True
-        Me.Label1.Location = New System.Drawing.Point(148, 48)
-        Me.Label1.Name = "Label1"
-        Me.Label1.Size = New System.Drawing.Size(36, 13)
-        Me.Label1.TabIndex = 2
-        Me.Label1.Text = "[kgm²]"
-        '
-        'Label14
-        '
-        Me.Label14.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.Label14.AutoSize = True
-        Me.Label14.Location = New System.Drawing.Point(353, 50)
-        Me.Label14.Name = "Label14"
-        Me.Label14.Size = New System.Drawing.Size(40, 13)
-        Me.Label14.TabIndex = 0
-        Me.Label14.Text = "[1/min]"
-        '
-        'BtTCfileBrowse
-        '
-        Me.BtTCfileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.BtTCfileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.BtTCfileBrowse.Location = New System.Drawing.Point(348, 19)
-        Me.BtTCfileBrowse.Name = "BtTCfileBrowse"
-        Me.BtTCfileBrowse.Size = New System.Drawing.Size(24, 24)
-        Me.BtTCfileBrowse.TabIndex = 1
-        Me.BtTCfileBrowse.TabStop = False
-        Me.BtTCfileBrowse.UseVisualStyleBackColor = True
-        '
-        'TbTCfile
-        '
-        Me.TbTCfile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
-            Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.TbTCfile.Location = New System.Drawing.Point(4, 21)
-        Me.TbTCfile.Name = "TbTCfile"
-        Me.TbTCfile.Size = New System.Drawing.Size(343, 20)
-        Me.TbTCfile.TabIndex = 0
-        '
-        'BtTCfileOpen
-        '
-        Me.BtTCfileOpen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.BtTCfileOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small
-        Me.BtTCfileOpen.Location = New System.Drawing.Point(372, 19)
-        Me.BtTCfileOpen.Name = "BtTCfileOpen"
-        Me.BtTCfileOpen.Size = New System.Drawing.Size(24, 24)
-        Me.BtTCfileOpen.TabIndex = 2
-        Me.BtTCfileOpen.TabStop = False
-        Me.BtTCfileOpen.UseVisualStyleBackColor = True
-        '
-        'TbTCrefrpm
-        '
-        Me.TbTCrefrpm.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-        Me.TbTCrefrpm.Location = New System.Drawing.Point(280, 47)
-        Me.TbTCrefrpm.Name = "TbTCrefrpm"
-        Me.TbTCrefrpm.Size = New System.Drawing.Size(67, 20)
-        Me.TbTCrefrpm.TabIndex = 4
-        '
-        'Label16
-        '
-        Me.Label16.AutoSize = True
-        Me.Label16.Location = New System.Drawing.Point(18, 111)
-        Me.Label16.Name = "Label16"
-        Me.Label16.Size = New System.Drawing.Size(95, 13)
-        Me.Label16.TabIndex = 45
-        Me.Label16.Text = "Transmission Type"
-        '
-        'CbGStype
-        '
-        Me.CbGStype.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
-        Me.CbGStype.FormattingEnabled = True
-        Me.CbGStype.Location = New System.Drawing.Point(119, 108)
-        Me.CbGStype.Name = "CbGStype"
-        Me.CbGStype.Size = New System.Drawing.Size(227, 21)
-        Me.CbGStype.TabIndex = 1
-        '
-        'BtAddGear
-        '
-        Me.BtAddGear.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
-        Me.BtAddGear.Location = New System.Drawing.Point(6, 202)
-        Me.BtAddGear.Name = "BtAddGear"
-        Me.BtAddGear.Size = New System.Drawing.Size(24, 24)
-        Me.BtAddGear.TabIndex = 1
-        Me.BtAddGear.UseVisualStyleBackColor = True
-        '
-        'GroupBox4
-        '
-        Me.GroupBox4.Controls.Add(Me.Label32)
-        Me.GroupBox4.Controls.Add(Me.LvGears)
-        Me.GroupBox4.Controls.Add(Me.BtRemGear)
-        Me.GroupBox4.Controls.Add(Me.BtAddGear)
-        Me.GroupBox4.Location = New System.Drawing.Point(12, 135)
-        Me.GroupBox4.Name = "GroupBox4"
-        Me.GroupBox4.Size = New System.Drawing.Size(441, 232)
-        Me.GroupBox4.TabIndex = 2
-        Me.GroupBox4.TabStop = False
-        Me.GroupBox4.Text = "Gears"
-        '
-        'Label32
-        '
-        Me.Label32.AutoSize = True
-        Me.Label32.Location = New System.Drawing.Point(331, 202)
-        Me.Label32.Name = "Label32"
-        Me.Label32.Size = New System.Drawing.Size(106, 13)
-        Me.Label32.TabIndex = 3
-        Me.Label32.Text = "(Double-Click to Edit)"
-        '
-        'PnInertiaTI
-        '
-        Me.PnInertiaTI.Controls.Add(Me.Label6)
-        Me.PnInertiaTI.Controls.Add(Me.TBI_getr)
-        Me.PnInertiaTI.Controls.Add(Me.Label33)
-        Me.PnInertiaTI.Controls.Add(Me.Label48)
-        Me.PnInertiaTI.Controls.Add(Me.Label49)
-        Me.PnInertiaTI.Controls.Add(Me.TbTracInt)
-        Me.PnInertiaTI.Location = New System.Drawing.Point(459, 342)
-        Me.PnInertiaTI.Name = "PnInertiaTI"
-        Me.PnInertiaTI.Size = New System.Drawing.Size(398, 30)
-        Me.PnInertiaTI.TabIndex = 4
-        '
-        'PicBox
-        '
-        Me.PicBox.BackColor = System.Drawing.Color.LightGray
-        Me.PicBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
-        Me.PicBox.Location = New System.Drawing.Point(459, 28)
-        Me.PicBox.Name = "PicBox"
-        Me.PicBox.Size = New System.Drawing.Size(406, 308)
-        Me.PicBox.TabIndex = 48
-        Me.PicBox.TabStop = False
-        '
-        'GroupBox5
-        '
-        Me.GroupBox5.Controls.Add(Me.Panel1)
-        Me.GroupBox5.Location = New System.Drawing.Point(459, 572)
-        Me.GroupBox5.Name = "GroupBox5"
-        Me.GroupBox5.Size = New System.Drawing.Size(414, 76)
-        Me.GroupBox5.TabIndex = 49
-        Me.GroupBox5.TabStop = False
-        Me.GroupBox5.Text = "Power shift losses"
-        '
-        'Panel1
-        '
-        Me.Panel1.Controls.Add(Me.Label29)
-        Me.Panel1.Controls.Add(Me.tbATInertiaFactor)
-        Me.Panel1.Controls.Add(Me.lbATInertiaFactor)
-        Me.Panel1.Controls.Add(Me.Label28)
-        Me.Panel1.Controls.Add(Me.tbATShiftTime)
-        Me.Panel1.Controls.Add(Me.lbAtShiftTime)
-        Me.Panel1.Location = New System.Drawing.Point(6, 19)
-        Me.Panel1.Name = "Panel1"
-        Me.Panel1.Size = New System.Drawing.Size(402, 38)
-        Me.Panel1.TabIndex = 0
-        '
-        'lbAtShiftTime
-        '
-        Me.lbAtShiftTime.AutoSize = True
-        Me.lbAtShiftTime.Location = New System.Drawing.Point(8, 4)
-        Me.lbAtShiftTime.Name = "lbAtShiftTime"
-        Me.lbAtShiftTime.Size = New System.Drawing.Size(50, 13)
-        Me.lbAtShiftTime.TabIndex = 0
-        Me.lbAtShiftTime.Text = "Shift time"
-        '
-        'tbATShiftTime
-        '
-        Me.tbATShiftTime.Location = New System.Drawing.Point(75, 1)
-        Me.tbATShiftTime.Name = "tbATShiftTime"
-        Me.tbATShiftTime.Size = New System.Drawing.Size(67, 20)
-        Me.tbATShiftTime.TabIndex = 4
-        '
-        'Label28
-        '
-        Me.Label28.AutoSize = True
-        Me.Label28.Location = New System.Drawing.Point(148, 4)
-        Me.Label28.Name = "Label28"
-        Me.Label28.Size = New System.Drawing.Size(18, 13)
-        Me.Label28.TabIndex = 41
-        Me.Label28.Text = "[s]"
-        '
-        'Label29
-        '
-        Me.Label29.AutoSize = True
-        Me.Label29.Location = New System.Drawing.Point(353, 4)
-        Me.Label29.Name = "Label29"
-        Me.Label29.Size = New System.Drawing.Size(16, 13)
-        Me.Label29.TabIndex = 44
-        Me.Label29.Text = "[-]"
-        '
-        'tbATInertiaFactor
-        '
-        Me.tbATInertiaFactor.Location = New System.Drawing.Point(280, 1)
-        Me.tbATInertiaFactor.Name = "tbATInertiaFactor"
-        Me.tbATInertiaFactor.Size = New System.Drawing.Size(67, 20)
-        Me.tbATInertiaFactor.TabIndex = 43
-        '
-        'lbATInertiaFactor
-        '
-        Me.lbATInertiaFactor.AutoSize = True
-        Me.lbATInertiaFactor.Location = New System.Drawing.Point(213, 4)
-        Me.lbATInertiaFactor.Name = "lbATInertiaFactor"
-        Me.lbATInertiaFactor.Size = New System.Drawing.Size(66, 13)
-        Me.lbATInertiaFactor.TabIndex = 42
-        Me.lbATInertiaFactor.Text = "Inertia factor"
-        '
-        'GearboxForm
-        '
-        Me.AcceptButton = Me.ButOK
-        Me.CancelButton = Me.ButCancel
-        Me.ClientSize = New System.Drawing.Size(877, 702)
-        Me.Controls.Add(Me.GroupBox5)
-        Me.Controls.Add(Me.PicBox)
-        Me.Controls.Add(Me.PnInertiaTI)
-        Me.Controls.Add(Me.GroupBox4)
-        Me.Controls.Add(Me.CbGStype)
-        Me.Controls.Add(Me.Label16)
-        Me.Controls.Add(Me.PictureBox1)
-        Me.Controls.Add(Me.GrGearShift)
-        Me.Controls.Add(Me.GroupBox3)
-        Me.Controls.Add(Me.Label3)
-        Me.Controls.Add(Me.TbName)
-        Me.Controls.Add(Me.ButCancel)
-        Me.Controls.Add(Me.ButOK)
-        Me.Controls.Add(Me.StatusStrip1)
-        Me.Controls.Add(Me.ToolStrip1)
-        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
-        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
-        Me.MaximizeBox = False
-        Me.Name = "GearboxForm"
-        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
-        Me.Text = "F_GBX"
-        Me.ToolStrip1.ResumeLayout(False)
-        Me.ToolStrip1.PerformLayout()
-        Me.StatusStrip1.ResumeLayout(False)
-        Me.StatusStrip1.PerformLayout()
-        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
-        Me.GrGearShift.ResumeLayout(False)
-        Me.GrGearShift.PerformLayout()
-        Me.GroupBox1.ResumeLayout(False)
-        Me.GroupBox1.PerformLayout()
-        Me.PnTorqRes.ResumeLayout(False)
-        Me.PnTorqRes.PerformLayout()
-        Me.GroupBox2.ResumeLayout(False)
-        Me.GroupBox2.PerformLayout()
-        Me.CmOpenFile.ResumeLayout(False)
-        Me.GroupBox3.ResumeLayout(False)
-        Me.PnTC.ResumeLayout(False)
-        Me.PnTC.PerformLayout()
-        Me.GroupBox4.ResumeLayout(False)
-        Me.GroupBox4.PerformLayout()
-        Me.PnInertiaTI.ResumeLayout(False)
-        Me.PnInertiaTI.PerformLayout()
-        CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit()
-        Me.GroupBox5.ResumeLayout(False)
-        Me.Panel1.ResumeLayout(False)
-        Me.Panel1.PerformLayout()
-        Me.ResumeLayout(False)
-        Me.PerformLayout()
+		Me.components = New System.ComponentModel.Container()
+		Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GearboxForm))
+		Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
+		Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripBtSave = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripBtSaveAs = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
+		Me.ToolStripBtSendTo = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
+		Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
+		Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
+		Me.LbStatus = New System.Windows.Forms.ToolStripStatusLabel()
+		Me.ButCancel = New System.Windows.Forms.Button()
+		Me.ButOK = New System.Windows.Forms.Button()
+		Me.TbTracInt = New System.Windows.Forms.TextBox()
+		Me.LvGears = New System.Windows.Forms.ListView()
+		Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.TBI_getr = New System.Windows.Forms.TextBox()
+		Me.Label49 = New System.Windows.Forms.Label()
+		Me.Label33 = New System.Windows.Forms.Label()
+		Me.Label48 = New System.Windows.Forms.Label()
+		Me.Label6 = New System.Windows.Forms.Label()
+		Me.Label3 = New System.Windows.Forms.Label()
+		Me.TbName = New System.Windows.Forms.TextBox()
+		Me.PictureBox1 = New System.Windows.Forms.PictureBox()
+		Me.BtRemGear = New System.Windows.Forms.Button()
+		Me.GrGearShift = New System.Windows.Forms.GroupBox()
+		Me.GroupBox1 = New System.Windows.Forms.GroupBox()
+		Me.tbUpshiftMinAcceleration = New System.Windows.Forms.TextBox()
+		Me.tbUpshiftAfterDownshift = New System.Windows.Forms.TextBox()
+		Me.tbDownshiftAfterUpshift = New System.Windows.Forms.TextBox()
+		Me.Label24 = New System.Windows.Forms.Label()
+		Me.Label23 = New System.Windows.Forms.Label()
+		Me.Label22 = New System.Windows.Forms.Label()
+		Me.Label21 = New System.Windows.Forms.Label()
+		Me.Label20 = New System.Windows.Forms.Label()
+		Me.Label19 = New System.Windows.Forms.Label()
+		Me.PnTorqRes = New System.Windows.Forms.Panel()
+		Me.Label25 = New System.Windows.Forms.Label()
+		Me.Label2 = New System.Windows.Forms.Label()
+		Me.Label4 = New System.Windows.Forms.Label()
+		Me.TbTqResv = New System.Windows.Forms.TextBox()
+		Me.TbMinTimeBetweenShifts = New System.Windows.Forms.TextBox()
+		Me.Label12 = New System.Windows.Forms.Label()
+		Me.Label13 = New System.Windows.Forms.Label()
+		Me.GroupBox2 = New System.Windows.Forms.GroupBox()
+		Me.TbStartAcc = New System.Windows.Forms.TextBox()
+		Me.Label11 = New System.Windows.Forms.Label()
+		Me.TbStartSpeed = New System.Windows.Forms.TextBox()
+		Me.Label9 = New System.Windows.Forms.Label()
+		Me.Label10 = New System.Windows.Forms.Label()
+		Me.TbTqResvStart = New System.Windows.Forms.TextBox()
+		Me.Label8 = New System.Windows.Forms.Label()
+		Me.Label5 = New System.Windows.Forms.Label()
+		Me.Label7 = New System.Windows.Forms.Label()
+		Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components)
+		Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.gbTC = New System.Windows.Forms.GroupBox()
+		Me.Label26 = New System.Windows.Forms.Label()
+		Me.TBTCShiftPolygon = New System.Windows.Forms.TextBox()
+		Me.tbTCmaxSpeed = New System.Windows.Forms.TextBox()
+		Me.TbTCrefrpm = New System.Windows.Forms.TextBox()
+		Me.BtTCfileOpen = New System.Windows.Forms.Button()
+		Me.TbTCfile = New System.Windows.Forms.TextBox()
+		Me.Label27 = New System.Windows.Forms.Label()
+		Me.BtTCfileBrowse = New System.Windows.Forms.Button()
+		Me.Label14 = New System.Windows.Forms.Label()
+		Me.BtTCShiftFileBrowse = New System.Windows.Forms.Button()
+		Me.Label1 = New System.Windows.Forms.Label()
+		Me.TbTCinertia = New System.Windows.Forms.TextBox()
+		Me.Label17 = New System.Windows.Forms.Label()
+		Me.Label15 = New System.Windows.Forms.Label()
+		Me.Label18 = New System.Windows.Forms.Label()
+		Me.LblTCShiftFile = New System.Windows.Forms.Label()
+		Me.tbTCLUpshiftMinAcceleration = New System.Windows.Forms.TextBox()
+		Me.Label30 = New System.Windows.Forms.Label()
+		Me.Label31 = New System.Windows.Forms.Label()
+		Me.Label16 = New System.Windows.Forms.Label()
+		Me.CbGStype = New System.Windows.Forms.ComboBox()
+		Me.BtAddGear = New System.Windows.Forms.Button()
+		Me.GroupBox4 = New System.Windows.Forms.GroupBox()
+		Me.Label32 = New System.Windows.Forms.Label()
+		Me.PnInertiaTI = New System.Windows.Forms.Panel()
+		Me.PicBox = New System.Windows.Forms.PictureBox()
+		Me.GroupBox5 = New System.Windows.Forms.GroupBox()
+		Me.Label29 = New System.Windows.Forms.Label()
+		Me.lbAtShiftTime = New System.Windows.Forms.Label()
+		Me.tbATShiftTime = New System.Windows.Forms.TextBox()
+		Me.tbATInertiaFactor = New System.Windows.Forms.TextBox()
+		Me.Label28 = New System.Windows.Forms.Label()
+		Me.lbATInertiaFactor = New System.Windows.Forms.Label()
+		Me.tbTCCUpshiftMinAcceleration = New System.Windows.Forms.TextBox()
+		Me.Label34 = New System.Windows.Forms.Label()
+		Me.Label35 = New System.Windows.Forms.Label()
+		Me.gbTCAccMin = New System.Windows.Forms.GroupBox()
+		Me.ToolStrip1.SuspendLayout()
+		Me.StatusStrip1.SuspendLayout()
+		CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
+		Me.GrGearShift.SuspendLayout()
+		Me.GroupBox1.SuspendLayout()
+		Me.PnTorqRes.SuspendLayout()
+		Me.GroupBox2.SuspendLayout()
+		Me.CmOpenFile.SuspendLayout()
+		Me.gbTC.SuspendLayout()
+		Me.GroupBox4.SuspendLayout()
+		Me.PnInertiaTI.SuspendLayout()
+		CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit()
+		Me.GroupBox5.SuspendLayout()
+		Me.gbTCAccMin.SuspendLayout()
+		Me.SuspendLayout()
+		'
+		'ToolStrip1
+		'
+		Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+		Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1})
+		Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
+		Me.ToolStrip1.Name = "ToolStrip1"
+		Me.ToolStrip1.Size = New System.Drawing.Size(877, 25)
+		Me.ToolStrip1.TabIndex = 30
+		Me.ToolStrip1.Text = "ToolStrip1"
+		'
+		'ToolStripBtNew
+		'
+		Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtNew.Image = Global.TUGraz.VECTO.My.Resources.Resources.blue_document_icon
+		Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtNew.Name = "ToolStripBtNew"
+		Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtNew.Text = "ToolStripButton1"
+		Me.ToolStripBtNew.ToolTipText = "New"
+		'
+		'ToolStripBtOpen
+		'
+		Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+		Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
+		Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtOpen.Text = "ToolStripButton1"
+		Me.ToolStripBtOpen.ToolTipText = "Open..."
+		'
+		'ToolStripBtSave
+		'
+		Me.ToolStripBtSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSave.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_icon
+		Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtSave.Name = "ToolStripBtSave"
+		Me.ToolStripBtSave.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtSave.Text = "ToolStripButton1"
+		Me.ToolStripBtSave.ToolTipText = "Save"
+		'
+		'ToolStripBtSaveAs
+		'
+		Me.ToolStripBtSaveAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSaveAs.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_as_icon
+		Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
+		Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtSaveAs.Text = "ToolStripButton1"
+		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
+		'
+		'ToolStripSeparator3
+		'
+		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
+		Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25)
+		'
+		'ToolStripBtSendTo
+		'
+		Me.ToolStripBtSendTo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSendTo.Image = Global.TUGraz.VECTO.My.Resources.Resources.export_icon
+		Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
+		Me.ToolStripBtSendTo.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtSendTo.Text = "Send to Job Editor"
+		Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor"
+		'
+		'ToolStripSeparator1
+		'
+		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
+		Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25)
+		'
+		'ToolStripButton1
+		'
+		Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripButton1.Image = Global.TUGraz.VECTO.My.Resources.Resources.Help_icon
+		Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripButton1.Name = "ToolStripButton1"
+		Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripButton1.Text = "Help"
+		'
+		'StatusStrip1
+		'
+		Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus})
+		Me.StatusStrip1.Location = New System.Drawing.Point(0, 674)
+		Me.StatusStrip1.Name = "StatusStrip1"
+		Me.StatusStrip1.Size = New System.Drawing.Size(877, 22)
+		Me.StatusStrip1.SizingGrip = False
+		Me.StatusStrip1.TabIndex = 37
+		Me.StatusStrip1.Text = "StatusStrip1"
+		'
+		'LbStatus
+		'
+		Me.LbStatus.Name = "LbStatus"
+		Me.LbStatus.Size = New System.Drawing.Size(39, 17)
+		Me.LbStatus.Text = "Status"
+		'
+		'ButCancel
+		'
+		Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
+		Me.ButCancel.Location = New System.Drawing.Point(790, 648)
+		Me.ButCancel.Name = "ButCancel"
+		Me.ButCancel.Size = New System.Drawing.Size(75, 23)
+		Me.ButCancel.TabIndex = 7
+		Me.ButCancel.Text = "Cancel"
+		Me.ButCancel.UseVisualStyleBackColor = True
+		'
+		'ButOK
+		'
+		Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.ButOK.Location = New System.Drawing.Point(709, 648)
+		Me.ButOK.Name = "ButOK"
+		Me.ButOK.Size = New System.Drawing.Size(75, 23)
+		Me.ButOK.TabIndex = 6
+		Me.ButOK.Text = "Save"
+		Me.ButOK.UseVisualStyleBackColor = True
+		'
+		'TbTracInt
+		'
+		Me.TbTracInt.Location = New System.Drawing.Point(299, 3)
+		Me.TbTracInt.Name = "TbTracInt"
+		Me.TbTracInt.Size = New System.Drawing.Size(57, 20)
+		Me.TbTracInt.TabIndex = 1
+		'
+		'LvGears
+		'
+		Me.LvGears.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5, Me.ColumnHeader6})
+		Me.LvGears.FullRowSelect = True
+		Me.LvGears.GridLines = True
+		Me.LvGears.HideSelection = False
+		Me.LvGears.Location = New System.Drawing.Point(6, 18)
+		Me.LvGears.MultiSelect = False
+		Me.LvGears.Name = "LvGears"
+		Me.LvGears.Size = New System.Drawing.Size(429, 183)
+		Me.LvGears.TabIndex = 0
+		Me.LvGears.TabStop = False
+		Me.LvGears.UseCompatibleStateImageBehavior = False
+		Me.LvGears.View = System.Windows.Forms.View.Details
+		'
+		'ColumnHeader1
+		'
+		Me.ColumnHeader1.Text = "Gear"
+		Me.ColumnHeader1.Width = 46
+		'
+		'ColumnHeader2
+		'
+		Me.ColumnHeader2.Text = "Ratio"
+		Me.ColumnHeader2.Width = 50
+		'
+		'ColumnHeader3
+		'
+		Me.ColumnHeader3.Text = "Loss Map or Efficiency"
+		Me.ColumnHeader3.Width = 128
+		'
+		'ColumnHeader5
+		'
+		Me.ColumnHeader5.Text = "Shift Polygons"
+		Me.ColumnHeader5.Width = 94
+		'
+		'ColumnHeader6
+		'
+		Me.ColumnHeader6.Text = "Max Torque"
+		Me.ColumnHeader6.Width = 95
+		'
+		'TBI_getr
+		'
+		Me.TBI_getr.Location = New System.Drawing.Point(78, 3)
+		Me.TBI_getr.Name = "TBI_getr"
+		Me.TBI_getr.Size = New System.Drawing.Size(57, 20)
+		Me.TBI_getr.TabIndex = 0
+		'
+		'Label49
+		'
+		Me.Label49.AutoSize = True
+		Me.Label49.Location = New System.Drawing.Point(362, 6)
+		Me.Label49.Name = "Label49"
+		Me.Label49.Size = New System.Drawing.Size(18, 13)
+		Me.Label49.TabIndex = 2
+		Me.Label49.Text = "[s]"
+		'
+		'Label33
+		'
+		Me.Label33.AutoSize = True
+		Me.Label33.Location = New System.Drawing.Point(141, 6)
+		Me.Label33.Name = "Label33"
+		Me.Label33.Size = New System.Drawing.Size(36, 13)
+		Me.Label33.TabIndex = 2
+		Me.Label33.Text = "[kgm²]"
+		'
+		'Label48
+		'
+		Me.Label48.AutoSize = True
+		Me.Label48.Location = New System.Drawing.Point(191, 6)
+		Me.Label48.Name = "Label48"
+		Me.Label48.Size = New System.Drawing.Size(102, 13)
+		Me.Label48.TabIndex = 2
+		Me.Label48.Text = "Traction Interruption"
+		'
+		'Label6
+		'
+		Me.Label6.AutoSize = True
+		Me.Label6.Location = New System.Drawing.Point(6, 6)
+		Me.Label6.Name = "Label6"
+		Me.Label6.Size = New System.Drawing.Size(36, 13)
+		Me.Label6.TabIndex = 2
+		Me.Label6.Text = "Inertia"
+		'
+		'Label3
+		'
+		Me.Label3.AutoSize = True
+		Me.Label3.Location = New System.Drawing.Point(26, 85)
+		Me.Label3.Name = "Label3"
+		Me.Label3.Size = New System.Drawing.Size(87, 13)
+		Me.Label3.TabIndex = 42
+		Me.Label3.Text = "Make and Model"
+		'
+		'TbName
+		'
+		Me.TbName.Location = New System.Drawing.Point(119, 82)
+		Me.TbName.Name = "TbName"
+		Me.TbName.Size = New System.Drawing.Size(334, 20)
+		Me.TbName.TabIndex = 0
+		'
+		'PictureBox1
+		'
+		Me.PictureBox1.BackColor = System.Drawing.Color.White
+		Me.PictureBox1.Image = Global.TUGraz.VECTO.My.Resources.Resources.VECTO_GBX
+		Me.PictureBox1.Location = New System.Drawing.Point(0, 28)
+		Me.PictureBox1.Name = "PictureBox1"
+		Me.PictureBox1.Size = New System.Drawing.Size(453, 40)
+		Me.PictureBox1.TabIndex = 43
+		Me.PictureBox1.TabStop = False
+		'
+		'BtRemGear
+		'
+		Me.BtRemGear.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
+		Me.BtRemGear.Location = New System.Drawing.Point(30, 202)
+		Me.BtRemGear.Name = "BtRemGear"
+		Me.BtRemGear.Size = New System.Drawing.Size(24, 24)
+		Me.BtRemGear.TabIndex = 2
+		Me.BtRemGear.UseVisualStyleBackColor = True
+		'
+		'GrGearShift
+		'
+		Me.GrGearShift.Controls.Add(Me.GroupBox1)
+		Me.GrGearShift.Controls.Add(Me.PnTorqRes)
+		Me.GrGearShift.Controls.Add(Me.TbMinTimeBetweenShifts)
+		Me.GrGearShift.Controls.Add(Me.Label12)
+		Me.GrGearShift.Controls.Add(Me.Label13)
+		Me.GrGearShift.Controls.Add(Me.GroupBox2)
+		Me.GrGearShift.Location = New System.Drawing.Point(12, 377)
+		Me.GrGearShift.Name = "GrGearShift"
+		Me.GrGearShift.Size = New System.Drawing.Size(441, 291)
+		Me.GrGearShift.TabIndex = 3
+		Me.GrGearShift.TabStop = False
+		Me.GrGearShift.Text = "Gear shift parameters"
+		'
+		'GroupBox1
+		'
+		Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration)
+		Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift)
+		Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift)
+		Me.GroupBox1.Controls.Add(Me.Label24)
+		Me.GroupBox1.Controls.Add(Me.Label23)
+		Me.GroupBox1.Controls.Add(Me.Label22)
+		Me.GroupBox1.Controls.Add(Me.Label21)
+		Me.GroupBox1.Controls.Add(Me.Label20)
+		Me.GroupBox1.Controls.Add(Me.Label19)
+		Me.GroupBox1.Location = New System.Drawing.Point(6, 82)
+		Me.GroupBox1.Name = "GroupBox1"
+		Me.GroupBox1.Size = New System.Drawing.Size(429, 100)
+		Me.GroupBox1.TabIndex = 10
+		Me.GroupBox1.TabStop = False
+		Me.GroupBox1.Text = "Shift Strategy Parameters"
+		'
+		'tbUpshiftMinAcceleration
+		'
+		Me.tbUpshiftMinAcceleration.Location = New System.Drawing.Point(209, 71)
+		Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration"
+		Me.tbUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20)
+		Me.tbUpshiftMinAcceleration.TabIndex = 8
+		'
+		'tbUpshiftAfterDownshift
+		'
+		Me.tbUpshiftAfterDownshift.Location = New System.Drawing.Point(209, 45)
+		Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift"
+		Me.tbUpshiftAfterDownshift.Size = New System.Drawing.Size(57, 20)
+		Me.tbUpshiftAfterDownshift.TabIndex = 7
+		'
+		'tbDownshiftAfterUpshift
+		'
+		Me.tbDownshiftAfterUpshift.Location = New System.Drawing.Point(209, 20)
+		Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift"
+		Me.tbDownshiftAfterUpshift.Size = New System.Drawing.Size(57, 20)
+		Me.tbDownshiftAfterUpshift.TabIndex = 6
+		'
+		'Label24
+		'
+		Me.Label24.AutoSize = True
+		Me.Label24.Location = New System.Drawing.Point(275, 74)
+		Me.Label24.Name = "Label24"
+		Me.Label24.Size = New System.Drawing.Size(34, 13)
+		Me.Label24.TabIndex = 5
+		Me.Label24.Text = "[m/s²]"
+		'
+		'Label23
+		'
+		Me.Label23.AutoSize = True
+		Me.Label23.Location = New System.Drawing.Point(275, 48)
+		Me.Label23.Name = "Label23"
+		Me.Label23.Size = New System.Drawing.Size(18, 13)
+		Me.Label23.TabIndex = 4
+		Me.Label23.Text = "[s]"
+		'
+		'Label22
+		'
+		Me.Label22.AutoSize = True
+		Me.Label22.Location = New System.Drawing.Point(275, 25)
+		Me.Label22.Name = "Label22"
+		Me.Label22.Size = New System.Drawing.Size(18, 13)
+		Me.Label22.TabIndex = 3
+		Me.Label22.Text = "[s]"
+		'
+		'Label21
+		'
+		Me.Label21.AutoSize = True
+		Me.Label21.Location = New System.Drawing.Point(20, 74)
+		Me.Label21.Name = "Label21"
+		Me.Label21.Size = New System.Drawing.Size(146, 13)
+		Me.Label21.TabIndex = 2
+		Me.Label21.Text = "Min. acceleration after upshift"
+		'
+		'Label20
+		'
+		Me.Label20.AutoSize = True
+		Me.Label20.Location = New System.Drawing.Point(20, 48)
+		Me.Label20.Name = "Label20"
+		Me.Label20.Size = New System.Drawing.Size(137, 13)
+		Me.Label20.TabIndex = 1
+		Me.Label20.Text = "Upshift afer downshift delay"
+		'
+		'Label19
+		'
+		Me.Label19.AutoSize = True
+		Me.Label19.Location = New System.Drawing.Point(20, 25)
+		Me.Label19.Name = "Label19"
+		Me.Label19.Size = New System.Drawing.Size(137, 13)
+		Me.Label19.TabIndex = 0
+		Me.Label19.Text = "Downshift afer upshift delay"
+		'
+		'PnTorqRes
+		'
+		Me.PnTorqRes.Controls.Add(Me.Label25)
+		Me.PnTorqRes.Controls.Add(Me.Label2)
+		Me.PnTorqRes.Controls.Add(Me.Label4)
+		Me.PnTorqRes.Controls.Add(Me.TbTqResv)
+		Me.PnTorqRes.Location = New System.Drawing.Point(9, 20)
+		Me.PnTorqRes.Name = "PnTorqRes"
+		Me.PnTorqRes.Size = New System.Drawing.Size(426, 32)
+		Me.PnTorqRes.TabIndex = 2
+		'
+		'Label25
+		'
+		Me.Label25.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.Label25.AutoSize = True
+		Me.Label25.Location = New System.Drawing.Point(294, 9)
+		Me.Label25.Name = "Label25"
+		Me.Label25.Size = New System.Drawing.Size(129, 13)
+		Me.Label25.TabIndex = 1
+		Me.Label25.Text = "(Early shift-up, Skip gears)"
+		'
+		'Label2
+		'
+		Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.Label2.AutoSize = True
+		Me.Label2.Location = New System.Drawing.Point(18, 9)
+		Me.Label2.Name = "Label2"
+		Me.Label2.Size = New System.Drawing.Size(79, 13)
+		Me.Label2.TabIndex = 0
+		Me.Label2.Text = "Torque reserve"
+		'
+		'Label4
+		'
+		Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.Label4.AutoSize = True
+		Me.Label4.Location = New System.Drawing.Point(272, 9)
+		Me.Label4.Name = "Label4"
+		Me.Label4.Size = New System.Drawing.Size(21, 13)
+		Me.Label4.TabIndex = 0
+		Me.Label4.Text = "[%]"
+		'
+		'TbTqResv
+		'
+		Me.TbTqResv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.TbTqResv.Location = New System.Drawing.Point(206, 6)
+		Me.TbTqResv.Name = "TbTqResv"
+		Me.TbTqResv.Size = New System.Drawing.Size(57, 20)
+		Me.TbTqResv.TabIndex = 0
+		'
+		'TbMinTimeBetweenShifts
+		'
+		Me.TbMinTimeBetweenShifts.Location = New System.Drawing.Point(215, 52)
+		Me.TbMinTimeBetweenShifts.Name = "TbMinTimeBetweenShifts"
+		Me.TbMinTimeBetweenShifts.Size = New System.Drawing.Size(57, 20)
+		Me.TbMinTimeBetweenShifts.TabIndex = 3
+		'
+		'Label12
+		'
+		Me.Label12.AutoSize = True
+		Me.Label12.Location = New System.Drawing.Point(281, 55)
+		Me.Label12.Name = "Label12"
+		Me.Label12.Size = New System.Drawing.Size(18, 13)
+		Me.Label12.TabIndex = 9
+		Me.Label12.Text = "[s]"
+		'
+		'Label13
+		'
+		Me.Label13.AutoSize = True
+		Me.Label13.Location = New System.Drawing.Point(27, 55)
+		Me.Label13.Name = "Label13"
+		Me.Label13.Size = New System.Drawing.Size(162, 13)
+		Me.Label13.TabIndex = 8
+		Me.Label13.Text = "Minimum time between gearshifts"
+		'
+		'GroupBox2
+		'
+		Me.GroupBox2.Controls.Add(Me.TbStartAcc)
+		Me.GroupBox2.Controls.Add(Me.Label11)
+		Me.GroupBox2.Controls.Add(Me.TbStartSpeed)
+		Me.GroupBox2.Controls.Add(Me.Label9)
+		Me.GroupBox2.Controls.Add(Me.Label10)
+		Me.GroupBox2.Controls.Add(Me.TbTqResvStart)
+		Me.GroupBox2.Controls.Add(Me.Label8)
+		Me.GroupBox2.Controls.Add(Me.Label5)
+		Me.GroupBox2.Controls.Add(Me.Label7)
+		Me.GroupBox2.Location = New System.Drawing.Point(6, 186)
+		Me.GroupBox2.Name = "GroupBox2"
+		Me.GroupBox2.Size = New System.Drawing.Size(429, 99)
+		Me.GroupBox2.TabIndex = 4
+		Me.GroupBox2.TabStop = False
+		Me.GroupBox2.Text = "Start Gear"
+		'
+		'TbStartAcc
+		'
+		Me.TbStartAcc.Location = New System.Drawing.Point(209, 71)
+		Me.TbStartAcc.Name = "TbStartAcc"
+		Me.TbStartAcc.Size = New System.Drawing.Size(57, 20)
+		Me.TbStartAcc.TabIndex = 2
+		'
+		'Label11
+		'
+		Me.Label11.AutoSize = True
+		Me.Label11.Location = New System.Drawing.Point(20, 74)
+		Me.Label11.Name = "Label11"
+		Me.Label11.Size = New System.Drawing.Size(173, 13)
+		Me.Label11.TabIndex = 0
+		Me.Label11.Text = "Reference acceleration at clutch-in"
+		'
+		'TbStartSpeed
+		'
+		Me.TbStartSpeed.Location = New System.Drawing.Point(209, 45)
+		Me.TbStartSpeed.Name = "TbStartSpeed"
+		Me.TbStartSpeed.Size = New System.Drawing.Size(57, 20)
+		Me.TbStartSpeed.TabIndex = 1
+		'
+		'Label9
+		'
+		Me.Label9.AutoSize = True
+		Me.Label9.Location = New System.Drawing.Point(20, 48)
+		Me.Label9.Name = "Label9"
+		Me.Label9.Size = New System.Drawing.Size(181, 13)
+		Me.Label9.TabIndex = 0
+		Me.Label9.Text = "Reference vehicle speed at clutch-in"
+		'
+		'Label10
+		'
+		Me.Label10.AutoSize = True
+		Me.Label10.Location = New System.Drawing.Point(272, 74)
+		Me.Label10.Name = "Label10"
+		Me.Label10.Size = New System.Drawing.Size(34, 13)
+		Me.Label10.TabIndex = 0
+		Me.Label10.Text = "[m/s²]"
+		'
+		'TbTqResvStart
+		'
+		Me.TbTqResvStart.Location = New System.Drawing.Point(209, 19)
+		Me.TbTqResvStart.Name = "TbTqResvStart"
+		Me.TbTqResvStart.Size = New System.Drawing.Size(57, 20)
+		Me.TbTqResvStart.TabIndex = 0
+		'
+		'Label8
+		'
+		Me.Label8.AutoSize = True
+		Me.Label8.Location = New System.Drawing.Point(272, 48)
+		Me.Label8.Name = "Label8"
+		Me.Label8.Size = New System.Drawing.Size(31, 13)
+		Me.Label8.TabIndex = 0
+		Me.Label8.Text = "[m/s]"
+		'
+		'Label5
+		'
+		Me.Label5.AutoSize = True
+		Me.Label5.Location = New System.Drawing.Point(20, 22)
+		Me.Label5.Name = "Label5"
+		Me.Label5.Size = New System.Drawing.Size(79, 13)
+		Me.Label5.TabIndex = 0
+		Me.Label5.Text = "Torque reserve"
+		'
+		'Label7
+		'
+		Me.Label7.AutoSize = True
+		Me.Label7.Location = New System.Drawing.Point(272, 22)
+		Me.Label7.Name = "Label7"
+		Me.Label7.Size = New System.Drawing.Size(21, 13)
+		Me.Label7.TabIndex = 0
+		Me.Label7.Text = "[%]"
+		'
+		'CmOpenFile
+		'
+		Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
+		Me.CmOpenFile.Name = "CmOpenFile"
+		Me.CmOpenFile.Size = New System.Drawing.Size(153, 48)
+		'
+		'OpenWithToolStripMenuItem
+		'
+		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
+		Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22)
+		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
+		'
+		'ShowInFolderToolStripMenuItem
+		'
+		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
+		Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22)
+		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
+		'
+		'gbTC
+		'
+		Me.gbTC.Controls.Add(Me.Label26)
+		Me.gbTC.Controls.Add(Me.TBTCShiftPolygon)
+		Me.gbTC.Controls.Add(Me.tbTCmaxSpeed)
+		Me.gbTC.Controls.Add(Me.TbTCrefrpm)
+		Me.gbTC.Controls.Add(Me.BtTCfileOpen)
+		Me.gbTC.Controls.Add(Me.TbTCfile)
+		Me.gbTC.Controls.Add(Me.Label27)
+		Me.gbTC.Controls.Add(Me.BtTCfileBrowse)
+		Me.gbTC.Controls.Add(Me.Label14)
+		Me.gbTC.Controls.Add(Me.BtTCShiftFileBrowse)
+		Me.gbTC.Controls.Add(Me.Label1)
+		Me.gbTC.Controls.Add(Me.TbTCinertia)
+		Me.gbTC.Controls.Add(Me.Label17)
+		Me.gbTC.Controls.Add(Me.Label15)
+		Me.gbTC.Controls.Add(Me.Label18)
+		Me.gbTC.Controls.Add(Me.LblTCShiftFile)
+		Me.gbTC.Location = New System.Drawing.Point(459, 377)
+		Me.gbTC.Name = "gbTC"
+		Me.gbTC.Size = New System.Drawing.Size(414, 162)
+		Me.gbTC.TabIndex = 5
+		Me.gbTC.TabStop = False
+		Me.gbTC.Text = "Torque Converter"
+		'
+		'Label26
+		'
+		Me.Label26.AutoSize = True
+		Me.Label26.Location = New System.Drawing.Point(6, 93)
+		Me.Label26.Name = "Label26"
+		Me.Label26.Size = New System.Drawing.Size(64, 13)
+		Me.Label26.TabIndex = 38
+		Me.Label26.Text = "Max. Speed"
+		'
+		'TBTCShiftPolygon
+		'
+		Me.TBTCShiftPolygon.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
+			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.TBTCShiftPolygon.Location = New System.Drawing.Point(9, 134)
+		Me.TBTCShiftPolygon.Name = "TBTCShiftPolygon"
+		Me.TBTCShiftPolygon.Size = New System.Drawing.Size(349, 20)
+		Me.TBTCShiftPolygon.TabIndex = 37
+		'
+		'tbTCmaxSpeed
+		'
+		Me.tbTCmaxSpeed.Location = New System.Drawing.Point(80, 90)
+		Me.tbTCmaxSpeed.Name = "tbTCmaxSpeed"
+		Me.tbTCmaxSpeed.Size = New System.Drawing.Size(57, 20)
+		Me.tbTCmaxSpeed.TabIndex = 40
+		'
+		'TbTCrefrpm
+		'
+		Me.TbTCrefrpm.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.TbTCrefrpm.Location = New System.Drawing.Point(301, 64)
+		Me.TbTCrefrpm.Name = "TbTCrefrpm"
+		Me.TbTCrefrpm.Size = New System.Drawing.Size(57, 20)
+		Me.TbTCrefrpm.TabIndex = 4
+		'
+		'BtTCfileOpen
+		'
+		Me.BtTCfileOpen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.BtTCfileOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small
+		Me.BtTCfileOpen.Location = New System.Drawing.Point(383, 35)
+		Me.BtTCfileOpen.Name = "BtTCfileOpen"
+		Me.BtTCfileOpen.Size = New System.Drawing.Size(24, 24)
+		Me.BtTCfileOpen.TabIndex = 2
+		Me.BtTCfileOpen.TabStop = False
+		Me.BtTCfileOpen.UseVisualStyleBackColor = True
+		'
+		'TbTCfile
+		'
+		Me.TbTCfile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
+			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.TbTCfile.Location = New System.Drawing.Point(9, 37)
+		Me.TbTCfile.Name = "TbTCfile"
+		Me.TbTCfile.Size = New System.Drawing.Size(349, 20)
+		Me.TbTCfile.TabIndex = 0
+		'
+		'Label27
+		'
+		Me.Label27.AutoSize = True
+		Me.Label27.Location = New System.Drawing.Point(143, 93)
+		Me.Label27.Name = "Label27"
+		Me.Label27.Size = New System.Drawing.Size(30, 13)
+		Me.Label27.TabIndex = 39
+		Me.Label27.Text = "[rpm]"
+		'
+		'BtTCfileBrowse
+		'
+		Me.BtTCfileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.BtTCfileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+		Me.BtTCfileBrowse.Location = New System.Drawing.Point(359, 35)
+		Me.BtTCfileBrowse.Name = "BtTCfileBrowse"
+		Me.BtTCfileBrowse.Size = New System.Drawing.Size(24, 24)
+		Me.BtTCfileBrowse.TabIndex = 1
+		Me.BtTCfileBrowse.TabStop = False
+		Me.BtTCfileBrowse.UseVisualStyleBackColor = True
+		'
+		'Label14
+		'
+		Me.Label14.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.Label14.AutoSize = True
+		Me.Label14.Location = New System.Drawing.Point(362, 67)
+		Me.Label14.Name = "Label14"
+		Me.Label14.Size = New System.Drawing.Size(40, 13)
+		Me.Label14.TabIndex = 0
+		Me.Label14.Text = "[1/min]"
+		'
+		'BtTCShiftFileBrowse
+		'
+		Me.BtTCShiftFileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.BtTCShiftFileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+		Me.BtTCShiftFileBrowse.Location = New System.Drawing.Point(359, 132)
+		Me.BtTCShiftFileBrowse.Name = "BtTCShiftFileBrowse"
+		Me.BtTCShiftFileBrowse.Size = New System.Drawing.Size(24, 24)
+		Me.BtTCShiftFileBrowse.TabIndex = 5
+		Me.BtTCShiftFileBrowse.TabStop = False
+		Me.BtTCShiftFileBrowse.UseVisualStyleBackColor = True
+		'
+		'Label1
+		'
+		Me.Label1.AutoSize = True
+		Me.Label1.Location = New System.Drawing.Point(143, 67)
+		Me.Label1.Name = "Label1"
+		Me.Label1.Size = New System.Drawing.Size(36, 13)
+		Me.Label1.TabIndex = 2
+		Me.Label1.Text = "[kgm²]"
+		'
+		'TbTCinertia
+		'
+		Me.TbTCinertia.Location = New System.Drawing.Point(80, 64)
+		Me.TbTCinertia.Name = "TbTCinertia"
+		Me.TbTCinertia.Size = New System.Drawing.Size(57, 20)
+		Me.TbTCinertia.TabIndex = 3
+		'
+		'Label17
+		'
+		Me.Label17.AutoSize = True
+		Me.Label17.Location = New System.Drawing.Point(6, 21)
+		Me.Label17.Name = "Label17"
+		Me.Label17.Size = New System.Drawing.Size(209, 13)
+		Me.Label17.TabIndex = 0
+		Me.Label17.Text = "Torque converter characteristics file (.vtcc)"
+		'
+		'Label15
+		'
+		Me.Label15.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.Label15.AutoSize = True
+		Me.Label15.Location = New System.Drawing.Point(218, 67)
+		Me.Label15.Name = "Label15"
+		Me.Label15.Size = New System.Drawing.Size(77, 13)
+		Me.Label15.TabIndex = 0
+		Me.Label15.Text = "Reference rpm"
+		'
+		'Label18
+		'
+		Me.Label18.AutoSize = True
+		Me.Label18.Location = New System.Drawing.Point(6, 67)
+		Me.Label18.Name = "Label18"
+		Me.Label18.Size = New System.Drawing.Size(36, 13)
+		Me.Label18.TabIndex = 2
+		Me.Label18.Text = "Inertia"
+		'
+		'LblTCShiftFile
+		'
+		Me.LblTCShiftFile.AutoSize = True
+		Me.LblTCShiftFile.Location = New System.Drawing.Point(6, 119)
+		Me.LblTCShiftFile.Name = "LblTCShiftFile"
+		Me.LblTCShiftFile.Size = New System.Drawing.Size(207, 13)
+		Me.LblTCShiftFile.TabIndex = 5
+		Me.LblTCShiftFile.Text = "Torque converter shift polygons file (.vgbs)"
+		'
+		'tbTCLUpshiftMinAcceleration
+		'
+		Me.tbTCLUpshiftMinAcceleration.Location = New System.Drawing.Point(78, 19)
+		Me.tbTCLUpshiftMinAcceleration.Name = "tbTCLUpshiftMinAcceleration"
+		Me.tbTCLUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20)
+		Me.tbTCLUpshiftMinAcceleration.TabIndex = 43
+		'
+		'Label30
+		'
+		Me.Label30.AutoSize = True
+		Me.Label30.Location = New System.Drawing.Point(141, 22)
+		Me.Label30.Name = "Label30"
+		Me.Label30.Size = New System.Drawing.Size(34, 13)
+		Me.Label30.TabIndex = 42
+		Me.Label30.Text = "[m/s²]"
+		'
+		'Label31
+		'
+		Me.Label31.AutoSize = True
+		Me.Label31.Location = New System.Drawing.Point(6, 22)
+		Me.Label31.Name = "Label31"
+		Me.Label31.Size = New System.Drawing.Size(69, 13)
+		Me.Label31.TabIndex = 41
+		Me.Label31.Text = "Acc. for C->L"
+		'
+		'Label16
+		'
+		Me.Label16.AutoSize = True
+		Me.Label16.Location = New System.Drawing.Point(18, 111)
+		Me.Label16.Name = "Label16"
+		Me.Label16.Size = New System.Drawing.Size(95, 13)
+		Me.Label16.TabIndex = 45
+		Me.Label16.Text = "Transmission Type"
+		'
+		'CbGStype
+		'
+		Me.CbGStype.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
+		Me.CbGStype.FormattingEnabled = True
+		Me.CbGStype.Location = New System.Drawing.Point(119, 108)
+		Me.CbGStype.Name = "CbGStype"
+		Me.CbGStype.Size = New System.Drawing.Size(227, 21)
+		Me.CbGStype.TabIndex = 1
+		'
+		'BtAddGear
+		'
+		Me.BtAddGear.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
+		Me.BtAddGear.Location = New System.Drawing.Point(6, 202)
+		Me.BtAddGear.Name = "BtAddGear"
+		Me.BtAddGear.Size = New System.Drawing.Size(24, 24)
+		Me.BtAddGear.TabIndex = 1
+		Me.BtAddGear.UseVisualStyleBackColor = True
+		'
+		'GroupBox4
+		'
+		Me.GroupBox4.Controls.Add(Me.Label32)
+		Me.GroupBox4.Controls.Add(Me.LvGears)
+		Me.GroupBox4.Controls.Add(Me.BtRemGear)
+		Me.GroupBox4.Controls.Add(Me.BtAddGear)
+		Me.GroupBox4.Location = New System.Drawing.Point(12, 135)
+		Me.GroupBox4.Name = "GroupBox4"
+		Me.GroupBox4.Size = New System.Drawing.Size(441, 232)
+		Me.GroupBox4.TabIndex = 2
+		Me.GroupBox4.TabStop = False
+		Me.GroupBox4.Text = "Gears"
+		'
+		'Label32
+		'
+		Me.Label32.AutoSize = True
+		Me.Label32.Location = New System.Drawing.Point(331, 202)
+		Me.Label32.Name = "Label32"
+		Me.Label32.Size = New System.Drawing.Size(106, 13)
+		Me.Label32.TabIndex = 3
+		Me.Label32.Text = "(Double-Click to Edit)"
+		'
+		'PnInertiaTI
+		'
+		Me.PnInertiaTI.Controls.Add(Me.Label6)
+		Me.PnInertiaTI.Controls.Add(Me.TBI_getr)
+		Me.PnInertiaTI.Controls.Add(Me.Label33)
+		Me.PnInertiaTI.Controls.Add(Me.Label48)
+		Me.PnInertiaTI.Controls.Add(Me.Label49)
+		Me.PnInertiaTI.Controls.Add(Me.TbTracInt)
+		Me.PnInertiaTI.Location = New System.Drawing.Point(459, 344)
+		Me.PnInertiaTI.Name = "PnInertiaTI"
+		Me.PnInertiaTI.Size = New System.Drawing.Size(411, 30)
+		Me.PnInertiaTI.TabIndex = 4
+		'
+		'PicBox
+		'
+		Me.PicBox.BackColor = System.Drawing.Color.LightGray
+		Me.PicBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+		Me.PicBox.Location = New System.Drawing.Point(459, 28)
+		Me.PicBox.Name = "PicBox"
+		Me.PicBox.Size = New System.Drawing.Size(414, 308)
+		Me.PicBox.TabIndex = 48
+		Me.PicBox.TabStop = False
+		'
+		'GroupBox5
+		'
+		Me.GroupBox5.Controls.Add(Me.Label29)
+		Me.GroupBox5.Controls.Add(Me.lbAtShiftTime)
+		Me.GroupBox5.Controls.Add(Me.tbATShiftTime)
+		Me.GroupBox5.Controls.Add(Me.tbATInertiaFactor)
+		Me.GroupBox5.Controls.Add(Me.Label28)
+		Me.GroupBox5.Controls.Add(Me.lbATInertiaFactor)
+		Me.GroupBox5.Location = New System.Drawing.Point(459, 598)
+		Me.GroupBox5.Name = "GroupBox5"
+		Me.GroupBox5.Size = New System.Drawing.Size(414, 47)
+		Me.GroupBox5.TabIndex = 49
+		Me.GroupBox5.TabStop = False
+		Me.GroupBox5.Text = "Power shift losses"
+		'
+		'Label29
+		'
+		Me.Label29.AutoSize = True
+		Me.Label29.Location = New System.Drawing.Point(362, 22)
+		Me.Label29.Name = "Label29"
+		Me.Label29.Size = New System.Drawing.Size(16, 13)
+		Me.Label29.TabIndex = 44
+		Me.Label29.Text = "[-]"
+		'
+		'lbAtShiftTime
+		'
+		Me.lbAtShiftTime.AutoSize = True
+		Me.lbAtShiftTime.Location = New System.Drawing.Point(6, 22)
+		Me.lbAtShiftTime.Name = "lbAtShiftTime"
+		Me.lbAtShiftTime.Size = New System.Drawing.Size(50, 13)
+		Me.lbAtShiftTime.TabIndex = 0
+		Me.lbAtShiftTime.Text = "Shift time"
+		'
+		'tbATShiftTime
+		'
+		Me.tbATShiftTime.Location = New System.Drawing.Point(78, 19)
+		Me.tbATShiftTime.Name = "tbATShiftTime"
+		Me.tbATShiftTime.Size = New System.Drawing.Size(57, 20)
+		Me.tbATShiftTime.TabIndex = 4
+		'
+		'tbATInertiaFactor
+		'
+		Me.tbATInertiaFactor.Location = New System.Drawing.Point(299, 19)
+		Me.tbATInertiaFactor.Name = "tbATInertiaFactor"
+		Me.tbATInertiaFactor.Size = New System.Drawing.Size(57, 20)
+		Me.tbATInertiaFactor.TabIndex = 43
+		'
+		'Label28
+		'
+		Me.Label28.AutoSize = True
+		Me.Label28.Location = New System.Drawing.Point(141, 22)
+		Me.Label28.Name = "Label28"
+		Me.Label28.Size = New System.Drawing.Size(18, 13)
+		Me.Label28.TabIndex = 41
+		Me.Label28.Text = "[s]"
+		'
+		'lbATInertiaFactor
+		'
+		Me.lbATInertiaFactor.AutoSize = True
+		Me.lbATInertiaFactor.Location = New System.Drawing.Point(227, 22)
+		Me.lbATInertiaFactor.Name = "lbATInertiaFactor"
+		Me.lbATInertiaFactor.Size = New System.Drawing.Size(66, 13)
+		Me.lbATInertiaFactor.TabIndex = 42
+		Me.lbATInertiaFactor.Text = "Inertia factor"
+		'
+		'tbTCCUpshiftMinAcceleration
+		'
+		Me.tbTCCUpshiftMinAcceleration.Location = New System.Drawing.Point(299, 19)
+		Me.tbTCCUpshiftMinAcceleration.Name = "tbTCCUpshiftMinAcceleration"
+		Me.tbTCCUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20)
+		Me.tbTCCUpshiftMinAcceleration.TabIndex = 46
+		'
+		'Label34
+		'
+		Me.Label34.AutoSize = True
+		Me.Label34.Location = New System.Drawing.Point(362, 22)
+		Me.Label34.Name = "Label34"
+		Me.Label34.Size = New System.Drawing.Size(34, 13)
+		Me.Label34.TabIndex = 45
+		Me.Label34.Text = "[m/s²]"
+		'
+		'Label35
+		'
+		Me.Label35.AutoSize = True
+		Me.Label35.Location = New System.Drawing.Point(211, 22)
+		Me.Label35.Name = "Label35"
+		Me.Label35.Size = New System.Drawing.Size(82, 13)
+		Me.Label35.TabIndex = 44
+		Me.Label35.Text = "Acc. for 1C->2C"
+		'
+		'gbTCAccMin
+		'
+		Me.gbTCAccMin.Controls.Add(Me.tbTCLUpshiftMinAcceleration)
+		Me.gbTCAccMin.Controls.Add(Me.tbTCCUpshiftMinAcceleration)
+		Me.gbTCAccMin.Controls.Add(Me.Label34)
+		Me.gbTCAccMin.Controls.Add(Me.Label31)
+		Me.gbTCAccMin.Controls.Add(Me.Label35)
+		Me.gbTCAccMin.Controls.Add(Me.Label30)
+		Me.gbTCAccMin.Location = New System.Drawing.Point(459, 545)
+		Me.gbTCAccMin.Name = "gbTCAccMin"
+		Me.gbTCAccMin.Size = New System.Drawing.Size(414, 47)
+		Me.gbTCAccMin.TabIndex = 50
+		Me.gbTCAccMin.TabStop = False
+		Me.gbTCAccMin.Text = "Torque Converter: Min. acceleration after upshift"
+		'
+		'GearboxForm
+		'
+		Me.AcceptButton = Me.ButOK
+		Me.CancelButton = Me.ButCancel
+		Me.ClientSize = New System.Drawing.Size(877, 696)
+		Me.Controls.Add(Me.gbTCAccMin)
+		Me.Controls.Add(Me.GroupBox5)
+		Me.Controls.Add(Me.PicBox)
+		Me.Controls.Add(Me.PnInertiaTI)
+		Me.Controls.Add(Me.GroupBox4)
+		Me.Controls.Add(Me.CbGStype)
+		Me.Controls.Add(Me.Label16)
+		Me.Controls.Add(Me.PictureBox1)
+		Me.Controls.Add(Me.GrGearShift)
+		Me.Controls.Add(Me.gbTC)
+		Me.Controls.Add(Me.Label3)
+		Me.Controls.Add(Me.TbName)
+		Me.Controls.Add(Me.ButCancel)
+		Me.Controls.Add(Me.ButOK)
+		Me.Controls.Add(Me.StatusStrip1)
+		Me.Controls.Add(Me.ToolStrip1)
+		Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
+		Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+		Me.MaximizeBox = False
+		Me.Name = "GearboxForm"
+		Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+		Me.Text = "F_GBX"
+		Me.ToolStrip1.ResumeLayout(False)
+		Me.ToolStrip1.PerformLayout()
+		Me.StatusStrip1.ResumeLayout(False)
+		Me.StatusStrip1.PerformLayout()
+		CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
+		Me.GrGearShift.ResumeLayout(False)
+		Me.GrGearShift.PerformLayout()
+		Me.GroupBox1.ResumeLayout(False)
+		Me.GroupBox1.PerformLayout()
+		Me.PnTorqRes.ResumeLayout(False)
+		Me.PnTorqRes.PerformLayout()
+		Me.GroupBox2.ResumeLayout(False)
+		Me.GroupBox2.PerformLayout()
+		Me.CmOpenFile.ResumeLayout(False)
+		Me.gbTC.ResumeLayout(False)
+		Me.gbTC.PerformLayout()
+		Me.GroupBox4.ResumeLayout(False)
+		Me.GroupBox4.PerformLayout()
+		Me.PnInertiaTI.ResumeLayout(False)
+		Me.PnInertiaTI.PerformLayout()
+		CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit()
+		Me.GroupBox5.ResumeLayout(False)
+		Me.GroupBox5.PerformLayout()
+		Me.gbTCAccMin.ResumeLayout(False)
+		Me.gbTCAccMin.PerformLayout()
+		Me.ResumeLayout(False)
+		Me.PerformLayout()
 
-    End Sub
-    Friend WithEvents ToolStrip1 As ToolStrip
-    Friend WithEvents ToolStripBtNew As ToolStripButton
-    Friend WithEvents ToolStripBtOpen As ToolStripButton
-    Friend WithEvents ToolStripBtSave As ToolStripButton
-    Friend WithEvents ToolStripBtSaveAs As ToolStripButton
-    Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
-    Friend WithEvents ToolStripBtSendTo As ToolStripButton
-    Friend WithEvents StatusStrip1 As StatusStrip
-    Friend WithEvents LbStatus As ToolStripStatusLabel
-    Friend WithEvents ButCancel As Button
-    Friend WithEvents ButOK As Button
-    Friend WithEvents BtRemGear As Button
-    Friend WithEvents TbTracInt As TextBox
-    Friend WithEvents LvGears As ListView
-    Friend WithEvents ColumnHeader1 As ColumnHeader
-    Friend WithEvents ColumnHeader2 As ColumnHeader
-    Friend WithEvents ColumnHeader3 As ColumnHeader
-    Friend WithEvents TBI_getr As TextBox
-    Friend WithEvents Label49 As Label
-    Friend WithEvents Label33 As Label
-    Friend WithEvents Label48 As Label
-    Friend WithEvents Label6 As Label
-    Friend WithEvents Label3 As Label
-    Friend WithEvents TbName As TextBox
-    Friend WithEvents PictureBox1 As PictureBox
-    Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
-    Friend WithEvents ToolStripButton1 As ToolStripButton
-    Friend WithEvents GrGearShift As GroupBox
-    Friend WithEvents Label2 As Label
-    Friend WithEvents TbTqResvStart As TextBox
-    Friend WithEvents TbTqResv As TextBox
-    Friend WithEvents Label7 As Label
-    Friend WithEvents Label5 As Label
-    Friend WithEvents Label4 As Label
-    Friend WithEvents GroupBox2 As GroupBox
-    Friend WithEvents TbStartAcc As TextBox
-    Friend WithEvents Label11 As Label
-    Friend WithEvents TbStartSpeed As TextBox
-    Friend WithEvents Label9 As Label
-    Friend WithEvents Label10 As Label
-    Friend WithEvents Label8 As Label
-    Friend WithEvents TbMinTimeBetweenShifts As TextBox
+	End Sub
+	Friend WithEvents ToolStrip1 As ToolStrip
+	Friend WithEvents ToolStripBtNew As ToolStripButton
+	Friend WithEvents ToolStripBtOpen As ToolStripButton
+	Friend WithEvents ToolStripBtSave As ToolStripButton
+	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
+	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
+	Friend WithEvents ToolStripBtSendTo As ToolStripButton
+	Friend WithEvents StatusStrip1 As StatusStrip
+	Friend WithEvents LbStatus As ToolStripStatusLabel
+	Friend WithEvents ButCancel As Button
+	Friend WithEvents ButOK As Button
+	Friend WithEvents BtRemGear As Button
+	Friend WithEvents TbTracInt As TextBox
+	Friend WithEvents LvGears As ListView
+	Friend WithEvents ColumnHeader1 As ColumnHeader
+	Friend WithEvents ColumnHeader2 As ColumnHeader
+	Friend WithEvents ColumnHeader3 As ColumnHeader
+	Friend WithEvents TBI_getr As TextBox
+	Friend WithEvents Label49 As Label
+	Friend WithEvents Label33 As Label
+	Friend WithEvents Label48 As Label
+	Friend WithEvents Label6 As Label
+	Friend WithEvents Label3 As Label
+	Friend WithEvents TbName As TextBox
+	Friend WithEvents PictureBox1 As PictureBox
+	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
+	Friend WithEvents ToolStripButton1 As ToolStripButton
+	Friend WithEvents GrGearShift As GroupBox
+	Friend WithEvents Label2 As Label
+	Friend WithEvents TbTqResvStart As TextBox
+	Friend WithEvents TbTqResv As TextBox
+	Friend WithEvents Label7 As Label
+	Friend WithEvents Label5 As Label
+	Friend WithEvents Label4 As Label
+	Friend WithEvents GroupBox2 As GroupBox
+	Friend WithEvents TbStartAcc As TextBox
+	Friend WithEvents Label11 As Label
+	Friend WithEvents TbStartSpeed As TextBox
+	Friend WithEvents Label9 As Label
+	Friend WithEvents Label10 As Label
+	Friend WithEvents Label8 As Label
+	Friend WithEvents TbMinTimeBetweenShifts As TextBox
 	Friend WithEvents Label12 As Label
 	Friend WithEvents Label13 As Label
 	Friend WithEvents CmOpenFile As ContextMenuStrip
 	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
 	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents GroupBox3 As GroupBox
+	Friend WithEvents gbTC As GroupBox
 	Friend WithEvents TbTCfile As TextBox
 	Friend WithEvents BtTCfileBrowse As Button
 	Friend WithEvents BtTCfileOpen As Button
@@ -1119,7 +1173,6 @@ Partial Class GearboxForm
 	Friend WithEvents Label16 As Label
 	Friend WithEvents CbGStype As ComboBox
 	Friend WithEvents Label17 As Label
-	Friend WithEvents PnTC As Panel
 	Friend WithEvents PnTorqRes As Panel
 	Friend WithEvents BtAddGear As Button
 	Friend WithEvents ColumnHeader4 As ColumnHeader
@@ -1148,13 +1201,19 @@ Partial Class GearboxForm
 	Friend WithEvents Label25 As System.Windows.Forms.Label
 	Friend WithEvents Label26 As System.Windows.Forms.Label
 	Friend WithEvents tbTCmaxSpeed As System.Windows.Forms.TextBox
-    Friend WithEvents Label27 As System.Windows.Forms.Label
-    Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox
-    Friend WithEvents Panel1 As System.Windows.Forms.Panel
-    Friend WithEvents Label29 As System.Windows.Forms.Label
-    Friend WithEvents tbATInertiaFactor As System.Windows.Forms.TextBox
-    Friend WithEvents lbATInertiaFactor As System.Windows.Forms.Label
-    Friend WithEvents Label28 As System.Windows.Forms.Label
-    Friend WithEvents tbATShiftTime As System.Windows.Forms.TextBox
-    Friend WithEvents lbAtShiftTime As System.Windows.Forms.Label
+	Friend WithEvents Label27 As System.Windows.Forms.Label
+	Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox
+	Friend WithEvents Label29 As System.Windows.Forms.Label
+	Friend WithEvents tbATInertiaFactor As System.Windows.Forms.TextBox
+	Friend WithEvents lbATInertiaFactor As System.Windows.Forms.Label
+	Friend WithEvents Label28 As System.Windows.Forms.Label
+	Friend WithEvents tbATShiftTime As System.Windows.Forms.TextBox
+	Friend WithEvents lbAtShiftTime As System.Windows.Forms.Label
+	Friend WithEvents tbTCLUpshiftMinAcceleration As System.Windows.Forms.TextBox
+	Friend WithEvents Label30 As System.Windows.Forms.Label
+	Friend WithEvents Label31 As System.Windows.Forms.Label
+	Friend WithEvents tbTCCUpshiftMinAcceleration As System.Windows.Forms.TextBox
+	Friend WithEvents Label34 As System.Windows.Forms.Label
+	Friend WithEvents Label35 As System.Windows.Forms.Label
+	Friend WithEvents gbTCAccMin As System.Windows.Forms.GroupBox
 End Class
diff --git a/VECTO/GUI/GearboxForm.vb b/VECTO/GUI/GearboxForm.vb
index 29c101d3bb..924fd59869 100644
--- a/VECTO/GUI/GearboxForm.vb
+++ b/VECTO/GUI/GearboxForm.vb
@@ -70,12 +70,12 @@ Public Class GearboxForm
 
 		If Cfg.DeclMode Then
 			CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _
-				.Cast(Of GearboxType)() _
+				.Cast (Of GearboxType)() _
 				.Where(Function(type) type.ManualTransmission()) _
 				.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
 		Else
 			CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _
-				.Cast(Of GearboxType) _
+				.Cast (Of GearboxType) _
 				.Where(Function(type) type.AutomaticTransmission() OrElse type.ManualTransmission()) _
 				.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
 		End If
@@ -98,392 +98,373 @@ Public Class GearboxForm
 		gbxType = CType(CbGStype.SelectedValue, GearboxType)	'CType(Me.CbGStype.SelectedIndex, tGearbox)
 
 		TbTracInt.Text = gbxType.TractionInterruption().ToGUIFormat()
-        TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat()    'cDeclaration.MinTimeBetweenGearshift(GStype)
+		TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat()
+		'cDeclaration.MinTimeBetweenGearshift(GStype)
 
-        TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve * 100).ToGUIFormat()     ' cDeclaration.TqResv
-        TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart * 100).ToGUIFormat() 'cDeclaration.TqResvStart
-        TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat()    'cDeclaration.StartSpeed
-        TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat()   ' cDeclaration.StartAcc
+		TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve*100).ToGUIFormat()     ' cDeclaration.TqResv
+		TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart*100).ToGUIFormat() 'cDeclaration.TqResvStart
+		TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat()    'cDeclaration.StartSpeed
+		TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat()   ' cDeclaration.StartAcc
 
-        tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat()
-        tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat()
-        tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat()
+		tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat()
+		tbTCCUpshiftMinAcceleration.Text = ""
+		tbTCLUpshiftMinAcceleration.Text = ""
 
-        'ChTCon.Checked = GStype.AutomaticTransmission()
-        For Each lv0 In LvGears.Items
-            lv0.SubItems(GearboxTbl.ShiftPolygons).Text = ""
-        Next
-    End Sub
+		tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat()
+		tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat()
+
+		'ChTCon.Checked = GStype.AutomaticTransmission()
+		For Each lv0 In LvGears.Items
+			lv0.SubItems(GearboxTbl.ShiftPolygons).Text = ""
+		Next
+	End Sub
 
 #Region "Toolbar"
 
-    Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-        NewGbx()
-    End Sub
-
-    Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-        If GearboxFileBrowser.OpenDialog(_gbxFile) Then
-            Try
-                OpenGbx(GearboxFileBrowser.Files(0))
-            Catch ex As Exception
-                MsgBox("Failed to open Gearbox File: " + ex.Message)
-            End Try
-        End If
-    End Sub
-
-    Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
-        SaveOrSaveAs(False)
-    End Sub
-
-    Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
-        SaveOrSaveAs(True)
-    End Sub
-
-    Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
-
-        If ChangeCheckCancel() Then Exit Sub
-
-        If _gbxFile = "" Then
-            If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
-                If Not SaveOrSaveAs(True) Then Exit Sub
-            Else
-                Exit Sub
-            End If
-        End If
-
-        If Not VectoJobForm.Visible Then
-            JobDir = ""
-            VectoJobForm.Show()
-            VectoJobForm.VectoNew()
-        Else
-            VectoJobForm.WindowState = FormWindowState.Normal
-        End If
-
-        VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(_gbxFile, JobDir)
-    End Sub
-
-    'Help
-    Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
-        If File.Exists(MyAppPath & "User Manual\help.html") Then
-            Dim browserRegistryString As String =
-                    My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-            Dim defaultBrowserPath As String =
-                    Regex.Match(browserRegistryString, "(\"".*?\"")").Captures(0).ToString
-            Process.Start(defaultBrowserPath,
-                        String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor"))
-        Else
-            MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-        End If
-    End Sub
+	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
+		NewGbx()
+	End Sub
+
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+		If GearboxFileBrowser.OpenDialog(_gbxFile) Then
+			Try
+				OpenGbx(GearboxFileBrowser.Files(0))
+			Catch ex As Exception
+				MsgBox("Failed to open Gearbox File: " + ex.Message)
+			End Try
+		End If
+	End Sub
+
+	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
+		SaveOrSaveAs(False)
+	End Sub
+
+	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
+		SaveOrSaveAs(True)
+	End Sub
+
+	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		If _gbxFile = "" Then
+			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+				If Not SaveOrSaveAs(True) Then Exit Sub
+			Else
+				Exit Sub
+			End If
+		End If
+
+		If Not VectoJobForm.Visible Then
+			JobDir = ""
+			VectoJobForm.Show()
+			VectoJobForm.VectoNew()
+		Else
+			VectoJobForm.WindowState = FormWindowState.Normal
+		End If
+
+		VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(_gbxFile, JobDir)
+	End Sub
+
+	'Help
+	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim browserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim defaultBrowserPath As String =
+					Regex.Match(browserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(defaultBrowserPath,
+						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
 
 #End Region
 
-    'New file
-    Private Sub NewGbx()
-        'Dim lvi As ListViewItem
-
-        If ChangeCheckCancel() Then Exit Sub
-
-        'CbGStype.SelectedIndex = 0
-
-        TbName.Text = ""
-        TbTracInt.Text = ""
-        TBI_getr.Text = ""
-
-        LvGears.Items.Clear()
-
-        LvGears.Items.Add(CreateListviewItem("Axle", 1, "1", "", ""))
-
-        'Me.ChSkipGears.Checked = False         'set by CbGStype.SelectedIndexChanged
-        'Me.ChShiftInside.Checked = False       'set by CbGStype.SelectedIndexChanged
-        TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve * 100).ToGUIFormat()
-        TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat()
-        TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart * 100).ToGUIFormat()
-        TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat() ' in m/s!
-        TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat()
-
-        tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat()
-        tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat()
-        tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat()
+	'New file
+	Private Sub NewGbx()
+		'Dim lvi As ListViewItem
 
-        'ChTCon.Checked = False				'set by CbGStype.SelectedIndexChanged
-        TbTCfile.Text = ""
-        TbTCrefrpm.Text = ""
-        TbTCinertia.Text = ""
+		If ChangeCheckCancel() Then Exit Sub
 
-        DeclInit()
-
-        _gbxFile = ""
-        Text = "GBX Editor"
-        LbStatus.Text = ""
-
-
-        _changed = False
-        UpdatePic()
-    End Sub
-
-    'Open file
-    Public Sub OpenGbx(file As String)
-
-        If ChangeCheckCancel() Then Exit Sub
-
-        Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadComponentData(file), 
-                                                                IEngineeringInputDataProvider)
-        Dim gearbox As IGearboxEngineeringInputData = inputData.GearboxInputData
-        Dim axlegear As IAxleGearInputData = inputData.AxleGearInputData
-
-        If Cfg.DeclMode <> gearbox.SavedInDeclarationMode Then
-            Select Case WrongMode()
-                Case 1
-                    Close()
-                    MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
-                    MainForm.OpenVectoFile(file)
-                Case -1
-                    Exit Sub
-            End Select
-        End If
-
-        Dim basePath As String = Path.GetDirectoryName(file)
-        TbName.Text = gearbox.ModelName
-        TbTracInt.Text = gearbox.TractionInterruption.ToGUIFormat()
-        TBI_getr.Text = gearbox.Inertia.ToGUIFormat()
-
-        LvGears.Items.Clear()
-
-        Dim lossmap As String = ""
-        Try
-            lossmap = If(axlegear.LossMap Is Nothing, axlegear.Efficiency.ToGUIFormat(),
-                        GetRelativePath(axlegear.LossMap.Source, basePath))
-        Catch ex As Exception
-        End Try
-
-        LvGears.Items.Add(CreateListviewItem("Axle", axlegear.Ratio, lossmap, "", ""))
-
-        For Each gear As ITransmissionInputData In gearbox.Gears
-            lossmap = ""
-            Try
-                lossmap = If(gear.LossMap Is Nothing, gear.Efficiency.ToGUIFormat(), GetRelativePath(gear.LossMap.Source, basePath))
-            Catch ex As Exception
-
-            End Try
-            LvGears.Items.Add(CreateListviewItem(gear.Gear.ToString("00"), gear.Ratio,
-                                                lossmap,
-                                                If(gear.ShiftPolygon Is Nothing, "", GetRelativePath(gear.ShiftPolygon.Source, basePath)),
-                                                If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.ToGUIFormat())))
-        Next
-
-        TbTqResv.Text = (gearbox.TorqueReserve * 100).ToGUIFormat()
-        TbMinTimeBetweenShifts.Text = gearbox.MinTimeBetweenGearshift.ToGUIFormat()
-        TbTqResvStart.Text = (gearbox.StartTorqueReserve * 100).ToGUIFormat()
-        TbStartSpeed.Text = gearbox.StartSpeed.ToGUIFormat()
-        TbStartAcc.Text = gearbox.StartAcceleration.ToGUIFormat()
-
-        Dim torqueConverter As ITorqueConverterEngineeringInputData = gearbox.TorqueConverter
-        If torqueConverter Is Nothing OrElse gearbox.Type.ManualTransmission() Then
-            TbTCfile.Text = ""
-            TbTCrefrpm.Text = ""
-            TbTCinertia.Text = ""
-            TBTCShiftPolygon.Text = ""
-        Else
-            TbTCfile.Text = If(torqueConverter.TCData Is Nothing, "", GetRelativePath(torqueConverter.TCData.Source, basePath))
-            TbTCrefrpm.Text = If(torqueConverter.ReferenceRPM Is Nothing, "", torqueConverter.ReferenceRPM.AsRPM.ToGUIFormat())
-            TbTCinertia.Text = If(torqueConverter.Inertia Is Nothing, "", torqueConverter.Inertia.ToGUIFormat())
-            TBTCShiftPolygon.Text =
-                If(torqueConverter.ShiftPolygon Is Nothing, "", GetRelativePath(torqueConverter.ShiftPolygon.Source, basePath))
-        End If
-
-        tbUpshiftMinAcceleration.Text = gearbox.UpshiftMinAcceleration.ToGUIFormat()
-        tbDownshiftAfterUpshift.Text = gearbox.DownshiftAferUpshiftDelay.ToGUIFormat()
-        tbUpshiftAfterDownshift.Text = gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat()
-
-        tbATInertiaFactor.Text = gearbox.PowerShiftInertiaFactor.ToGUIFormat()
-        tbATShiftTime.Text = gearbox.PowershiftShiftTime.ToGUIFormat()
-
-        CbGStype.SelectedValue = gearbox.Type
-
-
-        DeclInit()
-
-
-        GearboxFileBrowser.UpdateHistory(file)
-        Text = GetFilenameWithoutPath(file, True)
-        LbStatus.Text = ""
-        _gbxFile = file
-        Activate()
-
-        _changed = False
-        UpdatePic()
-    End Sub
-
-    Private Function CreateListviewItem(gear As String, ratio As Double, getrMap As String,
-                                        shiftPolygon As String, maxTorque As String) As ListViewItem
-        Dim retVal As ListViewItem = New ListViewItem(gear)
-        'retVal.SubItems.Add(tc)
-        retVal.SubItems.Add(ratio.ToGUIFormat())
-        retVal.SubItems.Add(getrMap)
-        retVal.SubItems.Add(shiftPolygon)
-        retVal.SubItems.Add(maxTorque)
-        Return retVal
-    End Function
-
-    'Save or Save As function = true if file is saved
-    Private Function SaveOrSaveAs(saveAs As Boolean) As Boolean
-        If _gbxFile = "" Or saveAs Then
-            If GearboxFileBrowser.SaveDialog(_gbxFile) Then
-                _gbxFile = GearboxFileBrowser.Files(0)
-            Else
-                Return False
-            End If
-        End If
-        Return SaveGbx(_gbxFile)
-    End Function
-
-    'Save file
-    Private Function SaveGbx(file As String) As Boolean
-        Dim gearbox As Gearbox
-        Dim i As Integer
-
-        gearbox = New Gearbox
-        gearbox.FilePath = file
-
-        gearbox.ModelName = TbName.Text
-        If Trim(gearbox.ModelName) = "" Then gearbox.ModelName = "Undefined"
-
-        gearbox.TracIntrSi = TbTracInt.Text.ToDouble(0)
-        gearbox.GbxInertia = TBI_getr.Text.ToDouble(0)
-
-        For i = 0 To LvGears.Items.Count - 1
-            'GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(GearboxTbl.TorqueConverter).Text = "on" And i > 0)
-            gearbox.GearRatios.Add(LvGears.Items(i).SubItems(GearboxTbl.Ratio).Text.ToDouble(0))
-            gearbox.GearLossmaps.Add(New SubPath)
-            gearbox.GearLossMap(i) = LvGears.Items(i).SubItems(GearboxTbl.LossMapEfficiency).Text
-            gearbox.GearshiftFiles.Add(New SubPath)
-            gearbox.ShiftPolygonFile(i) = LvGears.Items(i).SubItems(GearboxTbl.ShiftPolygons).Text
-            'GBX0.FldFiles.Add(New cSubPath)
-            'GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text
-            gearbox.MaxTorque.Add(LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text)
-        Next
-
-        gearbox.TorqueResv = TbTqResv.Text.ToDouble(0)
-        gearbox.ShiftTime = TbMinTimeBetweenShifts.Text.ToDouble(0)
-        gearbox.TorqueResvStart = TbTqResvStart.Text.ToDouble(0)
-        gearbox.StartSpeed = TbStartSpeed.Text.ToDouble(0)
-        gearbox.StartAcc = TbStartAcc.Text.ToDouble(0)
-
-        gearbox.Type = CType(CbGStype.SelectedValue, GearboxType)
-
-        gearbox.Type.AutomaticTransmission()
-        gearbox.TorqueConverterFile = TbTCfile.Text
-        gearbox.TorqueConverterReferenceRpm = TbTCrefrpm.Text.ToDouble(0)
-        gearbox.TorqueConverterInertia = TbTCinertia.Text.ToDouble(0)
-        gearbox.TorqueConverterShiftPolygonFile = TBTCShiftPolygon.Text
-        gearbox.TorqueConverterMaxSpeed = tbTCmaxSpeed.Text.ToDouble(0)
-
-        gearbox.DownshiftAfterUpshift = tbDownshiftAfterUpshift.Text.ToDouble(0)
-        gearbox.UpshiftAfterDownshift = tbUpshiftAfterDownshift.Text.ToDouble(0)
-        gearbox.UpshiftMinAcceleration = tbUpshiftMinAcceleration.Text.ToDouble(0)
-
-        gearbox.PSInertiaFactor = tbATInertiaFactor.Text.ToDouble(0)
-        gearbox.PSShiftTime = tbATShiftTime.Text.ToDouble(0)
-
-
-        If Not gearbox.SaveFile Then
-            MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
-            Return False
-        End If
-
-        If AutoSendTo Then
-            If VectoJobForm.Visible Then
-                If UCase(FileRepl(VectoJobForm.TbGBX.Text, JobDir)) <> UCase(file) Then _
-                    VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(file, JobDir)
-                VectoJobForm.UpdatePic()
-            End If
-        End If
-
-        GearboxFileBrowser.UpdateHistory(file)
-        Text = GetFilenameWithoutPath(file, True)
-        LbStatus.Text = ""
-
-        _changed = False
-
-        Return True
-    End Function
+		'CbGStype.SelectedIndex = 0
 
-#Region "Change Events"
+		TbName.Text = ""
+		TbTracInt.Text = ""
+		TBI_getr.Text = ""
+
+		LvGears.Items.Clear()
 
-    'Change Status ändern |@@| Change Status change
-    Private Sub Change()
-        If Not _changed Then
-            LbStatus.Text = "Unsaved changes in current file"
-            _changed = True
-        End If
-    End Sub
+		LvGears.Items.Add(CreateListviewItem("Axle", 1, "1", "", ""))
+
+		'Me.ChSkipGears.Checked = False         'set by CbGStype.SelectedIndexChanged
+		'Me.ChShiftInside.Checked = False       'set by CbGStype.SelectedIndexChanged
+		TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve*100).ToGUIFormat()
+		TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat()
+		TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart*100).ToGUIFormat()
+		TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat() ' in m/s!
+		TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat()
+
+		tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat()
+		tbTCLUpshiftMinAcceleration.Text = ""
+		tbTCCUpshiftMinAcceleration.Text = ""
+
+		tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat()
+		tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat()
+
+		'ChTCon.Checked = False				'set by CbGStype.SelectedIndexChanged
+		TbTCfile.Text = ""
+		TbTCrefrpm.Text = ""
+		TbTCinertia.Text = ""
+
+		DeclInit()
 
-    ' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts
-    Private Function ChangeCheckCancel() As Boolean
+		_gbxFile = ""
+		Text = "GBX Editor"
+		LbStatus.Text = ""
 
-        If _changed Then
-            Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
-                Case MsgBoxResult.Yes
-                    Return Not SaveOrSaveAs(False)
-                Case MsgBoxResult.Cancel
-                    Return True
-                Case Else 'MsgBoxResult.No
-                    _changed = False
-                    Return False
-            End Select
 
-        Else
+		_changed = False
+		UpdatePic()
+	End Sub
 
-            Return False
+	'Open file
+	Public Sub OpenGbx(file As String)
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadComponentData(file),
+																IEngineeringInputDataProvider)
+		Dim gearbox As IGearboxEngineeringInputData = inputData.GearboxInputData
+		Dim axlegear As IAxleGearInputData = inputData.AxleGearInputData
+
+		If Cfg.DeclMode <> gearbox.SavedInDeclarationMode Then
+			Select Case WrongMode()
+				Case 1
+					Close()
+					MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
+					MainForm.OpenVectoFile(file)
+				Case - 1
+					Exit Sub
+			End Select
+		End If
 
-        End If
-    End Function
+		Dim basePath As String = Path.GetDirectoryName(file)
+		TbName.Text = gearbox.ModelName
+		TbTracInt.Text = gearbox.TractionInterruption.ToGUIFormat()
+		TBI_getr.Text = gearbox.Inertia.ToGUIFormat()
 
-    Private Sub TbName_TextChanged(sender As Object, e As EventArgs) Handles TbName.TextChanged
-        Change()
-    End Sub
+		LvGears.Items.Clear()
 
-    Private Sub TBI_getr_TextChanged(sender As Object, e As EventArgs) Handles TBI_getr.TextChanged
-        Change()
-    End Sub
+		Dim lossmap As String = ""
+		Try
+			lossmap = If(axlegear.LossMap Is Nothing, axlegear.Efficiency.ToGUIFormat(),
+						GetRelativePath(axlegear.LossMap.Source, basePath))
+		Catch ex As Exception
+		End Try
 
-    Private Sub TbTracInt_TextChanged(sender As Object, e As EventArgs) Handles TbTracInt.TextChanged
-        Change()
-    End Sub
+		LvGears.Items.Add(CreateListviewItem("Axle", axlegear.Ratio, lossmap, "", ""))
 
-    Private Sub TbTqResv_TextChanged(sender As Object, e As EventArgs) Handles TbTqResv.TextChanged
-        Change()
-    End Sub
+		For Each gear As ITransmissionInputData In gearbox.Gears
+			lossmap = ""
+			Try
+				lossmap = If(gear.LossMap Is Nothing, gear.Efficiency.ToGUIFormat(), GetRelativePath(gear.LossMap.Source, basePath))
+			Catch ex As Exception
 
-    Private Sub TbShiftTime_TextChanged(sender As Object, e As EventArgs) Handles TbMinTimeBetweenShifts.TextChanged
-        Change()
-    End Sub
+			End Try
+			LvGears.Items.Add(CreateListviewItem(gear.Gear.ToString("00"), gear.Ratio,
+												lossmap,
+												If(gear.ShiftPolygon Is Nothing, "", GetRelativePath(gear.ShiftPolygon.Source, basePath)),
+												If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.ToGUIFormat())))
+		Next
 
-    Private Sub TbTqResvStart_TextChanged(sender As Object, e As EventArgs) Handles TbTqResvStart.TextChanged
-        Change()
-    End Sub
+		TbTqResv.Text = (gearbox.TorqueReserve*100).ToGUIFormat()
+		TbMinTimeBetweenShifts.Text = gearbox.MinTimeBetweenGearshift.ToGUIFormat()
+		TbTqResvStart.Text = (gearbox.StartTorqueReserve*100).ToGUIFormat()
+		TbStartSpeed.Text = gearbox.StartSpeed.ToGUIFormat()
+		TbStartAcc.Text = gearbox.StartAcceleration.ToGUIFormat()
+
+		Dim torqueConverter As ITorqueConverterEngineeringInputData = gearbox.TorqueConverter
+		If torqueConverter Is Nothing OrElse gearbox.Type.ManualTransmission() Then
+			TbTCfile.Text = ""
+			TbTCrefrpm.Text = ""
+			TbTCinertia.Text = ""
+			TBTCShiftPolygon.Text = ""
+			tbTCmaxSpeed.Text = ""
+			tbTCLUpshiftMinAcceleration.Text = ""
+			tbTCCUpshiftMinAcceleration.Text = ""
 
-    Private Sub TbStartSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbStartSpeed.TextChanged
-        Change()
-    End Sub
+		Else
+			TbTCfile.Text = If(torqueConverter.TCData Is Nothing, "", GetRelativePath(torqueConverter.TCData.Source, basePath))
+			TbTCrefrpm.Text = If(torqueConverter.ReferenceRPM Is Nothing, "", torqueConverter.ReferenceRPM.AsRPM.ToGUIFormat())
+			TbTCinertia.Text = If(torqueConverter.Inertia Is Nothing, "", torqueConverter.Inertia.ToGUIFormat())
+			TBTCShiftPolygon.Text =
+				If(torqueConverter.ShiftPolygon Is Nothing, "", GetRelativePath(torqueConverter.ShiftPolygon.Source, basePath))
+			tbTCmaxSpeed.Text =
+				If(torqueConverter.MaxInputSpeed Is Nothing, "", torqueConverter.MaxInputSpeed.AsRPM.ToGUIFormat())
+			tbTCLUpshiftMinAcceleration.Text = torqueConverter.CLUpshiftMinAcceleration.ToGUIFormat()
+			tbTCCUpshiftMinAcceleration.Text = torqueConverter.CCUpshiftMinAcceleration.ToGUIFormat()
+		End If
 
-    Private Sub TbStartAcc_TextChanged(sender As Object, e As EventArgs) Handles TbStartAcc.TextChanged
-        Change()
-    End Sub
+		tbUpshiftMinAcceleration.Text = gearbox.UpshiftMinAcceleration.ToGUIFormat()
+		tbDownshiftAfterUpshift.Text = gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat()
+		tbUpshiftAfterDownshift.Text = gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat()
 
-    Private Sub TbTCfile_TextChanged(sender As Object, e As EventArgs) Handles TbTCfile.TextChanged
-        Change()
-    End Sub
+		tbATInertiaFactor.Text = gearbox.PowerShiftInertiaFactor.ToGUIFormat()
+		tbATShiftTime.Text = gearbox.PowershiftShiftTime.ToGUIFormat()
 
-    Private Sub TbTCrefrpm_TextChanged(sender As Object, e As EventArgs) Handles TbTCrefrpm.TextChanged
-        Change()
-    End Sub
+		CbGStype.SelectedValue = gearbox.Type
 
-    Private Sub TbTCinertia_TextChanged(sender As Object, e As EventArgs) Handles TbTCinertia.TextChanged
-        Change()
-    End Sub
 
+		DeclInit()
+
+
+		GearboxFileBrowser.UpdateHistory(file)
+		Text = GetFilenameWithoutPath(file, True)
+		LbStatus.Text = ""
+		_gbxFile = file
+		Activate()
+
+		_changed = False
+		UpdatePic()
+	End Sub
+
+	Private Function CreateListviewItem(gear As String, ratio As Double, getrMap As String,
+										shiftPolygon As String, maxTorque As String) As ListViewItem
+		Dim retVal As ListViewItem = New ListViewItem(gear)
+		'retVal.SubItems.Add(tc)
+		retVal.SubItems.Add(ratio.ToGUIFormat())
+		retVal.SubItems.Add(getrMap)
+		retVal.SubItems.Add(shiftPolygon)
+		retVal.SubItems.Add(maxTorque)
+		Return retVal
+	End Function
+
+	'Save or Save As function = true if file is saved
+	Private Function SaveOrSaveAs(saveAs As Boolean) As Boolean
+		If _gbxFile = "" Or saveAs Then
+			If GearboxFileBrowser.SaveDialog(_gbxFile) Then
+				_gbxFile = GearboxFileBrowser.Files(0)
+			Else
+				Return False
+			End If
+		End If
+		Return SaveGbx(_gbxFile)
+	End Function
+
+	'Save file
+	Private Function SaveGbx(file As String) As Boolean
+		Dim gearbox As Gearbox
+		Dim i As Integer
+
+		gearbox = New Gearbox
+		gearbox.FilePath = file
+
+		gearbox.ModelName = TbName.Text
+		If Trim(gearbox.ModelName) = "" Then gearbox.ModelName = "Undefined"
+
+		gearbox.TracIntrSi = TbTracInt.Text.ToDouble(0)
+		gearbox.GbxInertia = TBI_getr.Text.ToDouble(0)
+
+		For i = 0 To LvGears.Items.Count - 1
+			'GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(GearboxTbl.TorqueConverter).Text = "on" And i > 0)
+			gearbox.GearRatios.Add(LvGears.Items(i).SubItems(GearboxTbl.Ratio).Text.ToDouble(0))
+			gearbox.GearLossmaps.Add(New SubPath)
+			gearbox.GearLossMap(i) = LvGears.Items(i).SubItems(GearboxTbl.LossMapEfficiency).Text
+			gearbox.GearshiftFiles.Add(New SubPath)
+			gearbox.ShiftPolygonFile(i) = LvGears.Items(i).SubItems(GearboxTbl.ShiftPolygons).Text
+			'GBX0.FldFiles.Add(New cSubPath)
+			'GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text
+			gearbox.MaxTorque.Add(LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text)
+		Next
+
+		gearbox.TorqueResv = TbTqResv.Text.ToDouble(0)
+		gearbox.ShiftTime = TbMinTimeBetweenShifts.Text.ToDouble(0)
+		gearbox.TorqueResvStart = TbTqResvStart.Text.ToDouble(0)
+		gearbox.StartSpeed = TbStartSpeed.Text.ToDouble(0)
+		gearbox.StartAcc = TbStartAcc.Text.ToDouble(0)
+
+		gearbox.Type = CType(CbGStype.SelectedValue, GearboxType)
+
+		gearbox.Type.AutomaticTransmission()
+		gearbox.TorqueConverterFile = TbTCfile.Text
+		gearbox.TorqueConverterReferenceRpm = TbTCrefrpm.Text.ToDouble(0)
+		gearbox.TorqueConverterInertia = TbTCinertia.Text.ToDouble(0)
+		gearbox.TorqueConverterShiftPolygonFile = TBTCShiftPolygon.Text
+		gearbox.TorqueConverterMaxSpeed = tbTCmaxSpeed.Text.ToDouble(0)
+
+		gearbox.DownshiftAfterUpshift = tbDownshiftAfterUpshift.Text.ToDouble(0)
+		gearbox.UpshiftAfterDownshift = tbUpshiftAfterDownshift.Text.ToDouble(0)
+
+		gearbox.UpshiftMinAcceleration = tbUpshiftMinAcceleration.Text.ToDouble(0)
+		gearbox.TCLUpshiftMinAcceleration = tbTCLUpshiftMinAcceleration.Text.ToDouble(0)
+		gearbox.TCCUpshiftMinAcceleration = tbTCCUpshiftMinAcceleration.Text.ToDouble(0)
+
+		gearbox.PSInertiaFactor = tbATInertiaFactor.Text.ToDouble(0)
+		gearbox.PSShiftTime = tbATShiftTime.Text.ToDouble(0)
+
+
+		If Not gearbox.SaveFile Then
+			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
+			Return False
+		End If
+
+		If AutoSendTo Then
+			If VectoJobForm.Visible Then
+				If UCase(FileRepl(VectoJobForm.TbGBX.Text, JobDir)) <> UCase(file) Then _
+					VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(file, JobDir)
+				VectoJobForm.UpdatePic()
+			End If
+		End If
+
+		GearboxFileBrowser.UpdateHistory(file)
+		Text = GetFilenameWithoutPath(file, True)
+		LbStatus.Text = ""
+
+		_changed = False
+
+		Return True
+	End Function
+
+#Region "Change Events"
+
+	'Change Status ändern |@@| Change Status change
+	Private Sub Change()
+		If Not _changed Then
+			LbStatus.Text = "Unsaved changes in current file"
+			_changed = True
+		End If
+	End Sub
+
+	' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts
+	Private Function ChangeCheckCancel() As Boolean
+
+		If _changed Then
+			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
+				Case MsgBoxResult.Yes
+					Return Not SaveOrSaveAs(False)
+				Case MsgBoxResult.Cancel
+					Return True
+				Case Else 'MsgBoxResult.No
+					_changed = False
+					Return False
+			End Select
+
+		Else
+
+			Return False
+
+		End If
+	End Function
+
+	Private Sub TbName_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbName.TextChanged, TBI_getr.TextChanged, TbTracInt.TextChanged, TbTqResv.TextChanged,
+				TbMinTimeBetweenShifts.TextChanged, TbTqResvStart.TextChanged, TbStartSpeed.TextChanged, TbStartAcc.TextChanged,
+				TbTCfile.TextChanged, TbTCrefrpm.TextChanged, TbTCinertia.TextChanged, tbTCmaxSpeed.TextChanged,
+				tbTCCUpshiftMinAcceleration.TextChanged, tbTCLUpshiftMinAcceleration.TextChanged
+		Change()
+	End Sub
 
 #End Region
 
@@ -505,7 +486,8 @@ Public Class GearboxForm
 		Change()
 
 		'ChTCon.Enabled = (GStype.AutomaticTransmission())
-		PnTC.Enabled = gStype.AutomaticTransmission()
+		gbTC.Enabled = gStype.AutomaticTransmission()
+		gbTCAccMin.Enabled = gStype.AutomaticTransmission()
 		TbStartAcc.Enabled = Not gStype.AutomaticTransmission()
 		TbStartSpeed.Enabled = Not gStype.AutomaticTransmission()
 		TbTqResv.Enabled = Not gStype.AutomaticTransmission()
@@ -765,7 +747,7 @@ Public Class GearboxForm
 		Dim jobFile As String = VectoJobForm.VectoFile
 		If Not jobFile Is Nothing AndAlso File.Exists(jobFile) Then
 
-			Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadJsonJob(jobFile), 
+			Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadJsonJob(jobFile),
 																	IEngineeringInputDataProvider)
 			If (inputData Is Nothing) Then
 				Exit Sub
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index 05470421bb..3e4a270c92 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -55,55 +55,56 @@ Public Class Gearbox
 
 	Public Type As GearboxType
 
-    'Torque Converter Input
-    Public TorqueConverterReferenceRpm As Double
-    Private ReadOnly _torqueConverterFile As New SubPath
-    Public TorqueConverterInertia As Double
-    Public TorqueConverterShiftPolygonFile As String
+	'Torque Converter Input
+	Public TorqueConverterReferenceRpm As Double
+	Private ReadOnly _torqueConverterFile As New SubPath
+	Public TorqueConverterInertia As Double
+	Public TorqueConverterShiftPolygonFile As String
+	Public TCLUpshiftMinAcceleration As Double
+	Public TCCUpshiftMinAcceleration As Double
 
+	Public UpshiftMinAcceleration As Double
+	Public DownshiftAfterUpshift As Double
+	Public UpshiftAfterDownshift As Double
+	Public TorqueConverterMaxSpeed As Double
 
-    Public UpshiftMinAcceleration As Double
-    Public DownshiftAfterUpshift As Double
-    Public UpshiftAfterDownshift As Double
-    Public TorqueConverterMaxSpeed As Double
+	Public PSInertiaFactor As Double
 
-    Public PSInertiaFactor As Double
+	Public PSShiftTime As Double
 
-    Public PSShiftTime As Double
 
+	Public Sub New()
+		_myPath = ""
+		_filePath = ""
+		SetDefault()
+	End Sub
 
-    Public Sub New()
-        _myPath = ""
-        _filePath = ""
-        SetDefault()
-    End Sub
+	Private Sub SetDefault()
 
-    Private Sub SetDefault()
+		ModelName = ""
+		GbxInertia = 0
+		TracIntrSi = 0
 
-        ModelName = ""
-        GbxInertia = 0
-        TracIntrSi = 0
+		GearRatios = New List(Of Double)
+		GearLossmaps = New List(Of SubPath)
+		GearshiftFiles = New List(Of SubPath)
+		MaxTorque = New List(Of String)
 
-        GearRatios = New List(Of Double)
-        GearLossmaps = New List(Of SubPath)
-        GearshiftFiles = New List(Of SubPath)
-        MaxTorque = New List(Of String)
+		TorqueResv = 0
+		'SkipGears = False
+		ShiftTime = 0
+		TorqueResvStart = 0
+		StartSpeed = 0
+		StartAcc = 0
+		'ShiftInside = False
 
-        TorqueResv = 0
-        'SkipGears = False
-        ShiftTime = 0
-        TorqueResvStart = 0
-        StartSpeed = 0
-        StartAcc = 0
-        'ShiftInside = False
+		Type = GearboxType.MT
 
-        Type = GearboxType.MT
+		TorqueConverterReferenceRpm = 0
+		_torqueConverterFile.Clear()
 
-        TorqueConverterReferenceRpm = 0
-        _torqueConverterFile.Clear()
-
-        TorqueConverterInertia = 0
-    End Sub
+		TorqueConverterInertia = 0
+	End Sub
 
 	Public Function SaveFile() As Boolean
 
@@ -387,6 +388,21 @@ Public Class Gearbox
 		End Get
 	End Property
 
+	Public ReadOnly Property CLUpshiftMinAcceleration As MeterPerSquareSecond _
+		Implements ITorqueConverterEngineeringInputData.CLUpshiftMinAcceleration
+		Get
+			Return TCLUpshiftMinAcceleration.SI (Of MeterPerSquareSecond)()
+		End Get
+	End Property
+
+	Public ReadOnly Property CCUpshiftMinAcceleration As MeterPerSquareSecond _
+		Implements ITorqueConverterEngineeringInputData.CCUpshiftMinAcceleration
+		Get
+			Return TCCUpshiftMinAcceleration.SI (Of MeterPerSquareSecond)()
+		End Get
+	End Property
+
+
 	Public ReadOnly Property TractionInterruption As Second Implements IGearboxEngineeringInputData.TractionInterruption
 		Get
 			Return TracIntrSi.SI (Of Second)()
@@ -421,7 +437,7 @@ Public Class Gearbox
 	End Property
 
 	Public ReadOnly Property DownshiftAferUpshiftDelay As Second _
-		Implements IGearboxEngineeringInputData.DownshiftAferUpshiftDelay
+		Implements IGearboxEngineeringInputData.DownshiftAfterUpshiftDelay
 		Get
 			Return DownshiftAfterUpshift.SI (Of Second)()
 		End Get
@@ -432,66 +448,68 @@ Public Class Gearbox
 		Get
 			Return UpshiftAfterDownshift.SI (Of Second)()
 		End Get
-    End Property
-
-    Public ReadOnly Property PowershiftShiftTime As Second Implements IGearboxEngineeringInputData.PowershiftShiftTime
-        Get
-            Return PSShiftTime.SI(Of Second)()
-        End Get
-    End Property
-    Public ReadOnly Property PowerShiftInertiaFactor As Double Implements IGearboxEngineeringInputData.PowerShiftInertiaFactor
-        Get
-            Return PSInertiaFactor
-        End Get
-    End Property
-
-    Public ReadOnly Property IGearboxEngineeringInputData_UpshiftMinAcceleration As MeterPerSquareSecond _
-        Implements IGearboxEngineeringInputData.UpshiftMinAcceleration
-        Get
-            Return UpshiftMinAcceleration.SI(Of MeterPerSquareSecond)()
-        End Get
-    End Property
-
-
-    Public ReadOnly Property IGearboxEngineeringInputData_StartSpeed As MeterPerSecond _
-        Implements IGearboxEngineeringInputData.StartSpeed
-        Get
-            Return StartSpeed.SI(Of MeterPerSecond)()
-        End Get
-    End Property
-
-    Public ReadOnly Property MinTimeBetweenGearshift As Second _
-        Implements IGearboxEngineeringInputData.MinTimeBetweenGearshift
-        Get
-            Return ShiftTime.SI(Of Second)()
-        End Get
-    End Property
-
-    Public ReadOnly Property TCData As TableData Implements ITorqueConverterDeclarationInputData.TCData
-        Get
-            If Not File.Exists(_torqueConverterFile.FullPath) Then Return Nothing
-            Return VectoCSVFile.Read(_torqueConverterFile.FullPath)
-        End Get
-    End Property
-
-
-    Public ReadOnly Property Ratio As Double Implements IAxleGearInputData.Ratio
-        Get
-            Return GearRatios(0)
-        End Get
-    End Property
-
-    Public ReadOnly Property LossMap As TableData Implements IAxleGearInputData.LossMap
-        Get
-            If Not File.Exists(GearLossmaps(0).FullPath) Then Return Nothing
-            Return VectoCSVFile.Read(GearLossmaps(0).FullPath)
-        End Get
-    End Property
-
-    Public ReadOnly Property Efficiency As Double Implements IAxleGearInputData.Efficiency
-        Get
-            Return GearLossMap(0, True).ToDouble(0)
-        End Get
-    End Property
+	End Property
+
+	Public ReadOnly Property PowershiftShiftTime As Second Implements IGearboxEngineeringInputData.PowershiftShiftTime
+		Get
+			Return PSShiftTime.SI (Of Second)()
+		End Get
+	End Property
+
+	Public ReadOnly Property PowerShiftInertiaFactor As Double _
+		Implements IGearboxEngineeringInputData.PowerShiftInertiaFactor
+		Get
+			Return PSInertiaFactor
+		End Get
+	End Property
+
+	Public ReadOnly Property IGearboxEngineeringInputData_UpshiftMinAcceleration As MeterPerSquareSecond _
+		Implements IGearboxEngineeringInputData.UpshiftMinAcceleration
+		Get
+			Return UpshiftMinAcceleration.SI (Of MeterPerSquareSecond)()
+		End Get
+	End Property
+
+
+	Public ReadOnly Property IGearboxEngineeringInputData_StartSpeed As MeterPerSecond _
+		Implements IGearboxEngineeringInputData.StartSpeed
+		Get
+			Return StartSpeed.SI (Of MeterPerSecond)()
+		End Get
+	End Property
+
+	Public ReadOnly Property MinTimeBetweenGearshift As Second _
+		Implements IGearboxEngineeringInputData.MinTimeBetweenGearshift
+		Get
+			Return ShiftTime.SI (Of Second)()
+		End Get
+	End Property
+
+	Public ReadOnly Property TCData As TableData Implements ITorqueConverterDeclarationInputData.TCData
+		Get
+			If Not File.Exists(_torqueConverterFile.FullPath) Then Return Nothing
+			Return VectoCSVFile.Read(_torqueConverterFile.FullPath)
+		End Get
+	End Property
+
+
+	Public ReadOnly Property Ratio As Double Implements IAxleGearInputData.Ratio
+		Get
+			Return GearRatios(0)
+		End Get
+	End Property
+
+	Public ReadOnly Property LossMap As TableData Implements IAxleGearInputData.LossMap
+		Get
+			If Not File.Exists(GearLossmaps(0).FullPath) Then Return Nothing
+			Return VectoCSVFile.Read(GearLossmaps(0).FullPath)
+		End Get
+	End Property
+
+	Public ReadOnly Property Efficiency As Double Implements IAxleGearInputData.Efficiency
+		Get
+			Return GearLossMap(0, True).ToDouble(0)
+		End Get
+	End Property
 End Class
 
diff --git a/VECTO/OutputData/JSONFileWriter.vb b/VECTO/OutputData/JSONFileWriter.vb
index a98d968390..295cb28882 100644
--- a/VECTO/OutputData/JSONFileWriter.vb
+++ b/VECTO/OutputData/JSONFileWriter.vb
@@ -78,72 +78,67 @@ Public Class JSONFileWriter
 		'Body
 		Dim body As Dictionary(Of String, Object) = New Dictionary(Of String, Object)
 
-        body.Add(JsonKeys.SavedInDeclMode, Cfg.DeclMode)
-
-        body.Add(JsonKeys.Gearbox_ModelName, gbx.ModelName)
-
-        body.Add(JsonKeys.Gearbox_Inertia, gbx.Inertia.Value())
-        body.Add(JsonKeys.Gearbox_TractionInterruption, gbx.TractionInterruption.Value())
+		body.Add(JsonKeys.SavedInDeclMode, Cfg.DeclMode)
+		body.Add(JsonKeys.Gearbox_ModelName, gbx.ModelName)
+		body.Add(JsonKeys.Gearbox_Inertia, gbx.Inertia.Value())
+		body.Add(JsonKeys.Gearbox_TractionInterruption, gbx.TractionInterruption.Value())
 
 		Dim ls As New List(Of Dictionary(Of String, Object))
 		Dim axlgDict As New Dictionary(Of String, Object)
-        axlgDict.Add(JsonKeys.Gearbox_Gear_Ratio, axl.Ratio)
+		axlgDict.Add(JsonKeys.Gearbox_Gear_Ratio, axl.Ratio)
 		If axl.LossMap Is Nothing Then
-            axlgDict.Add(JsonKeys.Gearbox_Gear_Efficiency, axl.Efficiency)
+			axlgDict.Add(JsonKeys.Gearbox_Gear_Efficiency, axl.Efficiency)
 		Else
-            axlgDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, GetRelativePath(axl.LossMap.Source, Path.GetDirectoryName(filename)))
+			axlgDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, GetRelativePath(axl.LossMap.Source, Path.GetDirectoryName(filename)))
 		End If
 		ls.Add(axlgDict)
 
 		For Each gear As ITransmissionInputData In gbx.Gears
 			Dim gearDict As New Dictionary(Of String, Object)
-            gearDict.Add(JsonKeys.Gearbox_Gear_Ratio, gear.Ratio)
+			gearDict.Add(JsonKeys.Gearbox_Gear_Ratio, gear.Ratio)
 			If gear.LossMap Is Nothing Then
-                gearDict.Add(JsonKeys.Gearbox_Gear_Efficiency, gear.Efficiency)
+				gearDict.Add(JsonKeys.Gearbox_Gear_Efficiency, gear.Efficiency)
 			Else
-                gearDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, GetRelativePath(gear.LossMap.Source, Path.GetDirectoryName(filename)))
+				gearDict.Add(JsonKeys.Gearbox_Gear_LossMapFile,
+							GetRelativePath(gear.LossMap.Source, Path.GetDirectoryName(filename)))
 			End If
-            gearDict.Add(JsonKeys.Gearbox_Gear_ShiftPolygonFile, If _
-                            (Not gbx.SavedInDeclarationMode AndAlso Not gear.ShiftPolygon Is Nothing,
-                            GetRelativePath(gear.ShiftPolygon.Source, Path.GetDirectoryName(filename)), ""))
-            gearDict.Add("MaxTorque", If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.Value().ToString()))
+			gearDict.Add(JsonKeys.Gearbox_Gear_ShiftPolygonFile, If _
+							(Not gbx.SavedInDeclarationMode AndAlso Not gear.ShiftPolygon Is Nothing,
+							GetRelativePath(gear.ShiftPolygon.Source, Path.GetDirectoryName(filename)), ""))
+			gearDict.Add("MaxTorque", If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.Value().ToString()))
 
 			ls.Add(gearDict)
 		Next
-        body.Add(JsonKeys.Gearbox_Gears, ls)
-
-        body.Add(JsonKeys.Gearbox_TorqueReserve, gbx.TorqueReserve * 100)
-		'body.Add("SkipGears", gbx.sk)
-        body.Add(JsonKeys.Gearbox_ShiftTime, gbx.MinTimeBetweenGearshift.Value())
-		'body.Add("EaryShiftUp", gbx.ShiftInside)
-
-        body.Add(JsonKeys.Gearbox_StartTorqueReserve, gbx.StartTorqueReserve * 100)
-        body.Add(JsonKeys.Gearbox_StartSpeed, gbx.StartSpeed.Value())
-        body.Add(JsonKeys.Gearbox_StartAcceleration, gbx.StartAcceleration.Value())
-
-        body.Add(JsonKeys.Gearbox_GearboxType, gbx.Type.ToString())
+		body.Add(JsonKeys.Gearbox_Gears, ls)
+		body.Add(JsonKeys.Gearbox_TorqueReserve, gbx.TorqueReserve*100)
+		body.Add(JsonKeys.Gearbox_ShiftTime, gbx.MinTimeBetweenGearshift.Value())
+		body.Add(JsonKeys.Gearbox_StartTorqueReserve, gbx.StartTorqueReserve*100)
+		body.Add(JsonKeys.Gearbox_StartSpeed, gbx.StartSpeed.Value())
+		body.Add(JsonKeys.Gearbox_StartAcceleration, gbx.StartAcceleration.Value())
+		body.Add(JsonKeys.Gearbox_GearboxType, gbx.Type.ToString())
 
 		Dim torqueConverter As ITorqueConverterEngineeringInputData = gbx.TorqueConverter
 		Dim torqueConverterDict As New Dictionary(Of String, Object)
 		torqueConverterDict.Add("Enabled", Not torqueConverter Is Nothing AndAlso gbx.Type.AutomaticTransmission())
 		If gbx.Type.AutomaticTransmission() AndAlso Not torqueConverter Is Nothing Then
 			torqueConverterDict.Add("File", GetRelativePath(torqueConverter.TCData.Source, Path.GetDirectoryName(filename)))
-            torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM, torqueConverter.ReferenceRPM.AsRPM)
-            torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_Inertia, torqueConverter.Inertia.Value())
-            torqueConverterDict.Add("MaxTCSpeed", torqueConverter.MaxInputSpeed.AsRPM)
-            torqueConverterDict.Add("ShiftPolygon", If _
-                                        (Not gbx.SavedInDeclarationMode AndAlso Not torqueConverter.ShiftPolygon Is Nothing,
-                                        GetRelativePath(torqueConverter.ShiftPolygon.Source, Path.GetDirectoryName(filename)), ""))
+			torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM, torqueConverter.ReferenceRPM.AsRPM)
+			torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_Inertia, torqueConverter.Inertia.Value())
+			torqueConverterDict.Add("MaxTCSpeed", torqueConverter.MaxInputSpeed.AsRPM)
+			torqueConverterDict.Add("ShiftPolygon",
+									If (Not gbx.SavedInDeclarationMode AndAlso Not torqueConverter.ShiftPolygon Is Nothing,
+										GetRelativePath(torqueConverter.ShiftPolygon.Source, Path.GetDirectoryName(filename)), ""))
+			torqueConverterDict.Add("CLUpshiftMinAcceleration", torqueConverter.CLUpshiftMinAcceleration.Value())
+			torqueConverterDict.Add("CCUpshiftMinAcceleration", torqueConverter.CCUpshiftMinAcceleration.Value())
 		End If
-        body.Add(JsonKeys.Gearbox_TorqueConverter, torqueConverterDict)
+		body.Add(JsonKeys.Gearbox_TorqueConverter, torqueConverterDict)
 
-
-		body.Add("DownshiftAferUpshiftDelay", gbx.DownshiftAferUpshiftDelay.Value())
+		body.Add("DownshiftAfterUpshiftDelay", gbx.DownshiftAfterUpshiftDelay.Value())
 		body.Add("UpshiftAfterDownshiftDelay", gbx.UpshiftAfterDownshiftDelay.Value())
-        body.Add("UpshiftMinAcceleration", gbx.UpshiftMinAcceleration.Value())
+		body.Add("UpshiftMinAcceleration", gbx.UpshiftMinAcceleration.Value())
 
-        body.Add("PowershiftShiftTime", gbx.PowershiftShiftTime.Value())
-        body.Add("PowershiftInertiaFactor", gbx.PowerShiftInertiaFactor)
+		body.Add("PowershiftShiftTime", gbx.PowershiftShiftTime.Value())
+		body.Add("PowershiftInertiaFactor", gbx.PowerShiftInertiaFactor)
 
 		WriteFile(header, body, filename)
 	End Sub
@@ -157,8 +152,6 @@ Public Class JSONFileWriter
 		Dim header As Dictionary(Of String, Object) = GetHeader(VehicleFormatVersion)
 
 		'Body
-
-
 		Dim retarderOut As Dictionary(Of String, Object) = New Dictionary(Of String, Object)()
 		If retarder Is Nothing Then
 			retarderOut.Add("Type", RetarderType.None.GetName())
@@ -205,29 +198,24 @@ Public Class JSONFileWriter
 				{"rdyn", vehicle.DynamicTyreRadius.ConvertTo().Milli.Meter.Value()},
 				{"CdCorrMode", vehicle.CrossWindCorrectionMode.GetName()},
 				{"CdCorrFile",
-				If _
-				(
-					(vehicle.CrossWindCorrectionMode = CrossWindCorrectionMode.SpeedDependentCorrectionFactor OrElse
+				If((vehicle.CrossWindCorrectionMode = CrossWindCorrectionMode.SpeedDependentCorrectionFactor OrElse
 					vehicle.CrossWindCorrectionMode = CrossWindCorrectionMode.VAirBetaLookupTable) AndAlso
-					Not vehicle.CrosswindCorrectionMap Is Nothing, GetRelativePath(vehicle.CrosswindCorrectionMap.Source, basePath), "")
+					Not vehicle.CrosswindCorrectionMap Is Nothing, GetRelativePath(vehicle.CrosswindCorrectionMap.Source, basePath),
+					"")
 				},
 				{"Retarder", retarderOut},
 				{"Angledrive", angledriveOut},
 				{"PTO", ptoOut},
 				{"AxleConfig", New Dictionary(Of String, Object) From {
 				{"Type", vehicle.AxleConfiguration.GetName()},
-				{"Axles", (From axle In vehicle.Axles Select New Dictionary(Of String, Object) From {
+				{"Axles", From axle In vehicle.Axles Select New Dictionary(Of String, Object) From {
 				{"Inertia", axle.Inertia.Value()},
 				{"Wheels", axle.Wheels},
 				{"AxleWeightShare", axle.AxleWeightShare},
 				{"TwinTyres", axle.TwinTyres},
 				{"RRCISO", axle.RollResistanceCoefficient},
 				{"FzISO", axle.TyreTestLoad.Value()}
-				}
-				)}
-				}
-				}
-				}
+				}}}}}
 
 		WriteFile(header, body, filename)
 	End Sub
@@ -306,16 +294,14 @@ Public Class JSONFileWriter
 					{"MinTime", driver.StartStop.MinTime.Value()},
 					{"Delay", driver.StartStop.Delay.Value()}})
 		If Not job.SavedInDeclarationMode Then
-			Dim dfTargetSpeed As String = If _
-					(
-						Not driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup Is Nothing AndAlso
-						File.Exists(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source),
-						GetRelativePath(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source, basePath), "")
-			Dim dfVelocityDrop As String = If _
-					(
-						Not driver.Lookahead.CoastingDecisionFactorVelocityDropLookup Is Nothing AndAlso
-						File.Exists(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source),
-						GetRelativePath(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source, basePath), "")
+			Dim dfTargetSpeed As String = If(
+				Not driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup Is Nothing AndAlso
+				File.Exists(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source),
+				GetRelativePath(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source, basePath), "")
+			Dim dfVelocityDrop As String = If(
+				Not driver.Lookahead.CoastingDecisionFactorVelocityDropLookup Is Nothing AndAlso
+				File.Exists(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source),
+				GetRelativePath(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source, basePath), "")
 			body.Add("LAC", New Dictionary(Of String, Object) From {
 						{"Enabled", driver.Lookahead.Enabled},
 						{"PreviewDistanceFactor", driver.Lookahead.LookaheadDistanceFactor},
diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
index 4117146ba0..31cabe02bb 100644
--- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
@@ -30,7 +30,6 @@
 */
 
 using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 
@@ -187,15 +186,15 @@ namespace TUGraz.VectoCommon.InputData
 		/// </summary>
 		ITorqueConverterEngineeringInputData TorqueConverter { get; }
 
-		Second DownshiftAferUpshiftDelay { get; }
+		Second DownshiftAfterUpshiftDelay { get; }
 
 		Second UpshiftAfterDownshiftDelay { get; }
 
 		MeterPerSquareSecond UpshiftMinAcceleration { get; }
 
-        Second PowershiftShiftTime { get; }
+		Second PowershiftShiftTime { get; }
 
-        double PowerShiftInertiaFactor { get; }
+		double PowerShiftInertiaFactor { get; }
 	}
 
 	public interface ITorqueConverterEngineeringInputData : ITorqueConverterDeclarationInputData
@@ -222,6 +221,16 @@ namespace TUGraz.VectoCommon.InputData
 		TableData ShiftPolygon { get; }
 
 		PerSecond MaxInputSpeed { get; }
+
+		/// <summary>
+		/// Min Acceleration after C->L upshifts.
+		/// </summary>
+		MeterPerSquareSecond CLUpshiftMinAcceleration { get; }
+
+		/// <summary>
+		/// Min Acceleration after C->C upshifts.
+		/// </summary>
+		MeterPerSquareSecond CCUpshiftMinAcceleration { get; }
 	}
 
 	public interface IEngineEngineeringInputData : IEngineDeclarationInputData
diff --git a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs
index c78ef4f209..9f05eb3a83 100644
--- a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs
+++ b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs
@@ -41,6 +41,13 @@ namespace TUGraz.VectoCommon.Utils
 	{
 		public static double ToDouble(this string self, double? defaultValue = null)
 		{
+			if (string.IsNullOrWhiteSpace(self)) {
+				if (defaultValue.HasValue) {
+					return defaultValue.Value;
+				}
+				throw new FormatException("Cannot convert an empty string to a number.");
+			}
+
 			try {
 				return double.Parse(self, CultureInfo.InvariantCulture);
 			} catch (FormatException) {
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
index a31d4430c9..758b41c958 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
@@ -30,7 +30,6 @@
 */
 
 using System.Collections.Generic;
-using System.Data;
 using System.Linq;
 using Newtonsoft.Json.Linq;
 using TUGraz.VectoCommon.Exceptions;
@@ -306,7 +305,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get { return this; }
 		}
 
-		public Second DownshiftAferUpshiftDelay
+		public Second DownshiftAfterUpshiftDelay
 		{
 			get
 			{
@@ -336,34 +335,46 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			}
 		}
 
-	    public Second PowershiftShiftTime
-	    {
-	        get
-	        {
-	            return Body["PowershiftShiftTime"] == null
-	                ? 0.8.SI<Second>()
-	                : Body.GetEx<double>("PowershiftShiftTime").SI<Second>();
-	        }
-	    }
+		public Second PowershiftShiftTime
+		{
+			get
+			{
+				return Body["PowershiftShiftTime"] == null
+					? 0.8.SI<Second>()
+					: Body.GetEx<double>("PowershiftShiftTime").SI<Second>();
+			}
+		}
 
-	    public double PowerShiftInertiaFactor
-	    {
-	        get { return Body["PowershiftInertiaFactor"] == null ? 1 : Body.GetEx<double>("PowershiftInertiaFactor"); }
-	    }
+		public double PowerShiftInertiaFactor
+		{
+			get { return Body["PowershiftInertiaFactor"] == null ? 1 : Body.GetEx<double>("PowershiftInertiaFactor"); }
+		}
 
-	    #endregion
+		#endregion
 
 		#region ITorqueConverterInputData
 
-		// deprecated: AT transmission has to have a torque converter. 
-		//public virtual bool Enabled
-		//{
-		//	get
-		//	{
-		//		return false;
-		//		// TODO mk-2016-05-09: JSON ITorqueConverterInputData.Enabled always true --> as soon as TC is implemented, set to correct value!
-		//	}
-		//}
+		public MeterPerSquareSecond CLUpshiftMinAcceleration
+		{
+			get
+			{
+				return Body[JsonKeys.Gearbox_TorqueConverter] != null &&
+						Body[JsonKeys.Gearbox_TorqueConverter]["CLUpshiftMinAcceleration"] != null
+					? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("CLUpshiftMinAcceleration").SI<MeterPerSquareSecond>()
+					: UpshiftMinAcceleration;
+			}
+		}
+
+		public MeterPerSquareSecond CCUpshiftMinAcceleration
+		{
+			get
+			{
+				return Body[JsonKeys.Gearbox_TorqueConverter] != null &&
+						Body[JsonKeys.Gearbox_TorqueConverter]["CCUpshiftMinAcceleration"] != null
+					? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("CCUpshiftMinAcceleration").SI<MeterPerSquareSecond>()
+					: UpshiftMinAcceleration;
+			}
+		}
 
 		public virtual PerSecond ReferenceRPM
 		{
@@ -378,10 +389,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			}
 		}
 
-        public PerSecond MaxInputSpeed
-        {
-            get { return Body[JsonKeys.Gearbox_TorqueConverter] != null && Body[JsonKeys.Gearbox_TorqueConverter]["MaxTCSpeed"] != null ? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("MaxTCSpeed").RPMtoRad() : 5000.RPMtoRad(); }
-        }
+		public PerSecond MaxInputSpeed
+		{
+			get
+			{
+				return Body[JsonKeys.Gearbox_TorqueConverter] != null &&
+						Body[JsonKeys.Gearbox_TorqueConverter]["MaxTCSpeed"] != null
+					? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("MaxTCSpeed").RPMtoRad()
+					: 5000.RPMtoRad();
+			}
+		}
+
 		public virtual TableData TCData
 		{
 			get
diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs
index 1a1320fcdd..136400b61c 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs
@@ -44,17 +44,21 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 {
 	public class TorqueConverterDataReader
 	{
-		public static TorqueConverterData ReadFromFile(string filename, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, double ratio)
+		public static TorqueConverterData ReadFromFile(string filename, PerSecond referenceRpm, PerSecond maxRpm,
+			ExecutionMode mode, double ratio, MeterPerSquareSecond lcMinAcceleration, MeterPerSquareSecond ccMinAcceleration)
 		{
-			return Create(VectoCSVFile.Read(filename), referenceRpm, maxRpm, mode, ratio);
+			return Create(VectoCSVFile.Read(filename), referenceRpm, maxRpm, mode, ratio, lcMinAcceleration, ccMinAcceleration);
 		}
 
-		public static TorqueConverterData ReadFromStream(Stream stream, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, double ratio)
+		public static TorqueConverterData ReadFromStream(Stream stream, PerSecond referenceRpm, PerSecond maxRpm,
+			ExecutionMode mode, double ratio, MeterPerSquareSecond lcMinAcceleration, MeterPerSquareSecond ccMinAcceleration)
 		{
-			return Create(VectoCSVFile.ReadStream(stream), referenceRpm, maxRpm, mode, ratio);
+			return Create(VectoCSVFile.ReadStream(stream), referenceRpm, maxRpm, mode, ratio, lcMinAcceleration,
+				ccMinAcceleration);
 		}
 
-		public static TorqueConverterData Create(DataTable data, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, double ratio)
+		public static TorqueConverterData Create(DataTable data, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode,
+			double ratio, MeterPerSquareSecond lcMinAcceleration, MeterPerSquareSecond ccMinAcceleration)
 		{
 			if (data == null)
 				throw new VectoException("TorqueConverter Characteristics data is missing.");
@@ -70,28 +74,34 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 			if (HeaderIsValid(data.Columns)) {
 				characteristicTorque = (from DataRow row in data.Rows
 					select
-						new TorqueConverterEntry() {
-							SpeedRatio = row.ParseDouble(Fields.SpeedRatio),
-							Torque = row.ParseDouble(Fields.CharacteristicTorque).SI<NewtonMeter>(),
-							TorqueRatio = row.ParseDouble(Fields.TorqueRatio)
-						}).ToArray();
+					new TorqueConverterEntry() {
+						SpeedRatio = row.ParseDouble(Fields.SpeedRatio),
+						Torque = row.ParseDouble(Fields.CharacteristicTorque).SI<NewtonMeter>(),
+						TorqueRatio = row.ParseDouble(Fields.TorqueRatio)
+					}).ToArray();
 			} else {
 				characteristicTorque = (from DataRow row in data.Rows
 					select
-						new TorqueConverterEntry() {
-							SpeedRatio = row.ParseDouble(0),
-							Torque = row.ParseDouble(2).SI<NewtonMeter>(),
-							TorqueRatio = row.ParseDouble(1)
-						}).ToArray();
+					new TorqueConverterEntry() {
+						SpeedRatio = row.ParseDouble(0),
+						Torque = row.ParseDouble(2).SI<NewtonMeter>(),
+						TorqueRatio = row.ParseDouble(1)
+					}).ToArray();
 			}
 			if (mode == ExecutionMode.Declaration) {
-				characteristicTorque = characteristicTorque.Where(x => x.SpeedRatio < ratio).Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio)).ToArray();
+				characteristicTorque =
+					characteristicTorque.Where(x => x.SpeedRatio < ratio)
+						.Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio))
+						.ToArray();
 			} else {
 				if (!characteristicTorque.Any(x => x.SpeedRatio > ratio)) {
-					characteristicTorque = characteristicTorque.Where(x => x.SpeedRatio < ratio).Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio)).ToArray();
+					characteristicTorque =
+						characteristicTorque.Where(x => x.SpeedRatio < ratio)
+							.Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio))
+							.ToArray();
 				}
 			}
-			return new TorqueConverterData(characteristicTorque, referenceRpm, maxRpm);
+			return new TorqueConverterData(characteristicTorque, referenceRpm, maxRpm, lcMinAcceleration, ccMinAcceleration);
 		}
 
 		private static bool HeaderIsValid(DataColumnCollection columns)
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index 6e79022be5..4c13407892 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -215,19 +215,20 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				}
 				var ratio = double.IsNaN(retVal.Gears[1].Ratio) ? 1 : retVal.Gears[1].TorqueConverterRatio / retVal.Gears[1].Ratio;
 				retVal.TorqueConverterData = TorqueConverterDataReader.Create(gearbox.TorqueConverter.TCData,
-					gearbox.TorqueConverter.ReferenceRPM, gearbox.TorqueConverter.MaxInputSpeed, ExecutionMode.Engineering, ratio);
+					gearbox.TorqueConverter.ReferenceRPM, gearbox.TorqueConverter.MaxInputSpeed, ExecutionMode.Engineering, ratio,
+					gearbox.TorqueConverter.CLUpshiftMinAcceleration, gearbox.TorqueConverter.CCUpshiftMinAcceleration);
 			} else {
 				if (retVal.Type.AutomaticTransmission()) {
 					throw new VectoException("AT gearbox model requires torque converter");
 				}
 			}
 
-		    if (retVal.Type.AutomaticTransmission()) {
-		        retVal.PowershiftShiftTime = gearbox.PowershiftShiftTime;
-		        retVal.PowershiftInertiaFactor = gearbox.PowerShiftInertiaFactor;
-		    }
+			if (retVal.Type.AutomaticTransmission()) {
+				retVal.PowershiftShiftTime = gearbox.PowershiftShiftTime;
+				retVal.PowershiftInertiaFactor = gearbox.PowerShiftInertiaFactor;
+			}
 
-			retVal.DownshiftAfterUpshiftDelay = gearbox.DownshiftAferUpshiftDelay;
+			retVal.DownshiftAfterUpshiftDelay = gearbox.DownshiftAfterUpshiftDelay;
 			retVal.UpshiftAfterDownshiftDelay = gearbox.UpshiftAfterDownshiftDelay;
 			retVal.UpshiftMinAcceleration = gearbox.UpshiftMinAcceleration;
 			return retVal;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs
index 3258dad075..69ea91c740 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs
@@ -44,22 +44,29 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
 	{
 		protected internal readonly TorqueConverterEntry[] TorqueConverterEntries;
 
+		[Required, SIRange(0, double.MaxValue)]
 		public PerSecond ReferenceSpeed { get; protected internal set; }
 
-		// the inertia is added to the engine's inertia and not considered separately
-		//public KilogramSquareMeter Inertia { get; protected internal set; }
+		[Required, SIRange(0, double.MaxValue)]
+		public MeterPerSquareSecond CLUpshiftMinAcceleration { get; internal set; }
 
+		[Required, SIRange(0, double.MaxValue)]
+		public MeterPerSquareSecond CCUpshiftMinAcceleration { get; internal set; }
+
+		[Required, SIRange(0, double.MaxValue)]
 		public PerSecond TorqueConverterSpeedLimit { get; protected internal set; }
 
-		// only used for validation!
-		internal double RequiredSpeedRatio { get; set; }
+		internal double RequiredSpeedRatio; // only used for validation!
 
 		protected internal TorqueConverterData(IEnumerable<TorqueConverterEntry> torqueConverterEntries,
-			PerSecond referenceSpeed, PerSecond maxRpm)
+			PerSecond referenceSpeed, PerSecond maxRpm, MeterPerSquareSecond clUpshiftMinAcceleration,
+			MeterPerSquareSecond ccUpshiftMinAcceleration)
 		{
 			TorqueConverterEntries = torqueConverterEntries.ToArray();
 			ReferenceSpeed = referenceSpeed;
 			TorqueConverterSpeedLimit = maxRpm;
+			CLUpshiftMinAcceleration = clUpshiftMinAcceleration;
+			CCUpshiftMinAcceleration = ccUpshiftMinAcceleration;
 		}
 
 		/// <summary>
@@ -151,7 +158,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
 				}
 			}
 
-			// No solution found. Throw Errror
+			// No solution found. Throw Error
 			var nu = outAngularVelocity / inAngularVelocity;
 			var nuMax = TorqueConverterEntries.Last().SpeedRatio;
 
@@ -202,7 +209,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
 			return FindOperatingPoint(inAngularVelocity, solutions.Max().SI<PerSecond>());
 		}
 
-		public TorqueConverterOperatingPoint FindOperatingPointForPowerDemand(Watt power, PerSecond prevInputSpeed, PerSecond nextOutputSpeed, KilogramSquareMeter inertia, Second dt, Watt previousPower)
+		public TorqueConverterOperatingPoint FindOperatingPointForPowerDemand(Watt power, PerSecond prevInputSpeed,
+			PerSecond nextOutputSpeed, KilogramSquareMeter inertia, Second dt, Watt previousPower)
 		{
 			var solutions = new List<double>();
 			var mpNorm = ReferenceSpeed.Value();
@@ -212,9 +220,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
 					new Point(segment.Item2.SpeedRatio, segment.Item2.Torque.Value()));
 
 				var a = mpEdge.OffsetXY / (2 * mpNorm * mpNorm);
-				var b = inertia.Value() / (2 * dt.Value()) + mpEdge.SlopeXY * nextOutputSpeed.Value() / (2*mpNorm * mpNorm);
+				var b = inertia.Value() / (2 * dt.Value()) + mpEdge.SlopeXY * nextOutputSpeed.Value() / (2 * mpNorm * mpNorm);
 				var c = 0;
-				var d = -inertia.Value()* prevInputSpeed.Value() * prevInputSpeed.Value() / (2 * dt.Value())  - power.Value() + previousPower.Value() / 2;
+				var d = -inertia.Value() * prevInputSpeed.Value() * prevInputSpeed.Value() / (2 * dt.Value()) - power.Value() +
+						previousPower.Value() / 2;
 				var sol = VectoMath.CubicEquationSolver(a, b, c, d);
 
 				var selected = sol.Where(x => x > 0 && nextOutputSpeed / x >= mpEdge.P1.X && nextOutputSpeed / x < mpEdge.P2.X);
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
index bc729c5e71..1abaafbaf6 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
@@ -207,13 +207,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				var nextEnginePower = currentEnginePower / nextEngineSpeed;
 				var isAboveUpShift = IsAboveUpShiftCurve(gear, nextEnginePower, nextEngineSpeed, _gearbox.TorqueConverterLocked);
 
-				//var engineCanSupplyPower =
-				//	currentEnginePower.IsSmallerOrEqual(DataBus.EngineStationaryFullPower(nextEngineSpeed));
-
 				var reachableAcceleration = EstimateAccelerationForGear(nextGear, outAngularVelocity);
 				var minAcceleration = _gearbox.TorqueConverterLocked
 					? ModelData.UpshiftMinAcceleration
-					: ModelData.TorqueConverterData.UpshiftMinAcceleration;
+					: ModelData.TorqueConverterData.CLUpshiftMinAcceleration;
+				minAcceleration = VectoMath.Min(minAcceleration, DataBus.DriverAcceleration);
 				var minAccelerationReachable = reachableAcceleration.IsGreaterOrEqual(minAcceleration);
 
 				// todo mk-2016-12-19: check that accMin can be reached!
@@ -241,10 +239,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				var engineSpeedOverMin = tcOperatingPoint.InAngularVelocity.IsGreater(minEngineSpeed);
 
 				// todo mk-2016-12-19: calculate accelerationReachable with param TCCaccMin: acc > min(driver-demand-acc, TCCaccMin)
-				//var engineCanSupplyPower = DataBus.EngineStationaryFullPower(tcOperatingPoint.InAngularVelocity)
-				//	.IsGreater(0.7 * DataBus.EngineStationaryFullPower(inAngularVelocity));
 
-				var minAccelerationReachable = true;
+				var reachableAcceleration = EstimateAccelerationForGear(gear + 1, outAngularVelocity);
+				var minAcceleration = VectoMath.Min(ModelData.TorqueConverterData.CCUpshiftMinAcceleration,
+					DataBus.DriverAcceleration);
+				var minAccelerationReachable = reachableAcceleration.IsGreaterOrEqual(minAcceleration);
 
 				if (shiftTimeReached && engineSpeedOverMin && minAccelerationReachable) {
 					Upshift(absTime, gear);
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index 9de62b6f48..381123158e 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -179,11 +179,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				CurrentState.OperationMode = EngineOperationMode.Stopped;
 			}
 
-
 			var avgEngineSpeed = (PreviousState.EngineSpeed + angularVelocity) / 2.0;
 
 			var fullDragTorque = ModelData.FullLoadCurve.DragLoadStationaryTorque(avgEngineSpeed);
-			var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt);
+			var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt, dryRun);
 			var dynamicFullLoadTorque = dynamicFullLoadPower / avgEngineSpeed;
 			var inertiaTorqueLoss =
 				Formulas.InertiaPower(angularVelocity, PreviousState.EngineSpeed, ModelData.Inertia, dt) /
@@ -423,7 +422,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		/// <summary>
 		///     computes full load power from gear [-], angularVelocity [rad/s] and dt [s].
 		/// </summary>
-		protected Watt ComputeFullLoadPower(PerSecond angularVelocity, Second dt)
+		protected Watt ComputeFullLoadPower(PerSecond angularVelocity, Second dt, bool dryRun)
 		{
 			if (dt <= 0) {
 				throw new VectoException("ComputeFullLoadPower cannot compute for simulation interval length 0.");
@@ -437,11 +436,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			if (PT1Disabled || PreviousState.EnginePower.IsGreaterOrEqual(stationaryFullLoadPower)) {
 				dynFullPowerCalculated = stationaryFullLoadPower;
 			} else {
-				var pt1 = ModelData.FullLoadCurve.PT1(angularVelocity).Value();
-				var powerRatio = (PreviousState.EnginePower / stationaryFullLoadPower).Value();
-				var tStarPrev = pt1 * Math.Log(1.0 / (1 - powerRatio), Math.E).SI<Second>();
-				var tStar = tStarPrev + PreviousState.dt;
-				dynFullPowerCalculated = stationaryFullLoadPower * (1 - Math.Exp((-tStar / pt1).Value()));
+				try {
+					var pt1 = ModelData.FullLoadCurve.PT1(angularVelocity).Value();
+					var powerRatio = (PreviousState.EnginePower / stationaryFullLoadPower).Value();
+					var tStarPrev = pt1 * Math.Log(1.0 / (1 - powerRatio), Math.E).SI<Second>();
+					var tStar = tStarPrev + PreviousState.dt;
+					dynFullPowerCalculated = stationaryFullLoadPower * (1 - Math.Exp((-tStar / pt1).Value()));
+				} catch (VectoException e) {
+					Log.Warn("PT1 calculation failed (dryRun: {0}): {1}", dryRun, e.Message);
+					if (dryRun) {
+						dynFullPowerCalculated = stationaryFullLoadPower;
+					} else {
+						throw;
+					}
+				}
+
 				dynFullPowerCalculated = VectoMath.Max(PreviousState.EnginePower, dynFullPowerCalculated);
 			}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
index 8155ceed76..7f87ca2ba0 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
@@ -474,7 +474,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				operatingPoint.SimulationInterval,
 				operatingPoint.Acceleration, DataBus.BrakePower);
 			if (DataBus.BrakePower < 0) {
-				var overload = new ResponseOverload { Source = this, BrakePower =  DataBus.BrakePower, Acceleration = operatingPoint.Acceleration};
+				var overload = new ResponseOverload {
+					Source = this,
+					BrakePower = DataBus.BrakePower,
+					Acceleration = operatingPoint.Acceleration
+				};
 				DataBus.BrakePower = 0.SI<Watt>();
 				return overload;
 			}
@@ -644,26 +648,26 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 						return actionRoll ? r.GearboxPowerRequest : (coastingOrRoll ? r.DeltaDragLoad : r.DeltaFullLoad);
 					},
 					evaluateFunction:
-						acc => {
-							// calculate new time interval only when vehiclespeed and acceleration are != 0
-							// else: use same timeinterval as before.
-							if (!(acc.IsEqual(0) && DataBus.VehicleSpeed.IsEqual(0))) {
-								var tmp = ComputeTimeInterval(acc, ds);
-								if (tmp.SimulationInterval.IsEqual(0.SI<Second>(), 1e-9.SI<Second>())) {
-									throw new VectoSearchAbortedException(
-										"next TimeInterval is 0. a: {0}, v: {1}, dt: {2}", acc,
-										DataBus.VehicleSpeed, tmp.SimulationInterval);
-								}
-								retVal.Acceleration = tmp.Acceleration;
-								retVal.SimulationInterval = tmp.SimulationInterval;
-								retVal.SimulationDistance = tmp.SimulationDistance;
+					acc => {
+						// calculate new time interval only when vehiclespeed and acceleration are != 0
+						// else: use same timeinterval as before.
+						if (!(acc.IsEqual(0) && DataBus.VehicleSpeed.IsEqual(0))) {
+							var tmp = ComputeTimeInterval(acc, ds);
+							if (tmp.SimulationInterval.IsEqual(0.SI<Second>(), 1e-9.SI<Second>())) {
+								throw new VectoSearchAbortedException(
+									"next TimeInterval is 0. a: {0}, v: {1}, dt: {2}", acc,
+									DataBus.VehicleSpeed, tmp.SimulationInterval);
 							}
-							IterationStatistics.Increment(this, "SearchOperatingPoint");
-							DriverAcceleration = acc;
-							var response = NextComponent.Request(absTime, retVal.SimulationInterval, acc, gradient, true);
-							response.OperatingPoint = retVal;
-							return response;
-						},
+							retVal.Acceleration = tmp.Acceleration;
+							retVal.SimulationInterval = tmp.SimulationInterval;
+							retVal.SimulationDistance = tmp.SimulationDistance;
+						}
+						IterationStatistics.Increment(this, "SearchOperatingPoint");
+						DriverAcceleration = acc;
+						var response = NextComponent.Request(absTime, retVal.SimulationInterval, acc, gradient, true);
+						response.OperatingPoint = retVal;
+						return response;
+					},
 					criterion: response => {
 						var r = (ResponseDryRun)response;
 						delta = actionRoll
@@ -672,14 +676,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 						return delta.Value();
 					},
 					abortCriterion:
-						(response, cnt) => {
-							var r = (ResponseDryRun)response;
-							if (r == null) {
-								return false;
-							}
+					(response, cnt) => {
+						var r = (ResponseDryRun)response;
+						if (r == null) {
+							return false;
+						}
 
-							return !actionRoll && !ds.IsEqual(r.OperatingPoint.SimulationDistance);
-						});
+						return !actionRoll && !ds.IsEqual(r.OperatingPoint.SimulationDistance);
+					});
 			} catch (VectoSearchAbortedException) {
 				// search aborted, try to go ahead with the last acceleration
 			} catch (Exception) {
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs
index ed1dad20bd..89c555d9f2 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs
@@ -54,7 +54,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			CurrentState.dt = dt;
 			CurrentState.EngineSpeed = angularVelocity;
 			CurrentState.EngineTorqueOut = torque;
-//			var requestedEnginePower = ComputeRequestedEnginePower(absTime, dt, torque, angularVelocity);
+			//			var requestedEnginePower = ComputeRequestedEnginePower(absTime, dt, torque, angularVelocity);
 
 			var avgEngineSpeed = (PreviousState.EngineSpeed + CurrentState.EngineSpeed) / 2.0;
 
@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			CurrentState.EngineTorque = totalTorqueDemand;
 
 			CurrentState.FullDragTorque = ModelData.FullLoadCurve.DragLoadStationaryTorque(avgEngineSpeed);
-			var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt);
+			var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt, dryRun);
 			CurrentState.DynamicFullLoadTorque = dynamicFullLoadPower / avgEngineSpeed;
 
 			ValidatePowerDemand(totalTorqueDemand);
@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			// = requestedEnginePower; //todo + _currentState.EnginePowerLoss;
 			CurrentState.EngineTorque = CurrentState.EnginePower / CurrentState.EngineSpeed;
 
-			return new ResponseSuccess() { Source = this }; 
+			return new ResponseSuccess() { Source = this };
 		}
 
 		protected NewtonMeter LimitEnginePower(NewtonMeter requestedEngineTorque, PerSecond avgEngineSpeed, Second AbsTime)
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index c0da5d8378..23f4b2a980 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -151,6 +151,7 @@
     <Compile Include="Models\SimulationComponent\Impl\AbstractGearbox.cs" />
     <Compile Include="Models\SimulationComponent\Impl\ATGearbox.cs" />
     <Compile Include="Models\SimulationComponent\Impl\ATShiftStrategy.cs" />
+    <Compile Include="Models\SimulationComponent\Impl\BaseShiftStrategy.cs" />
     <Compile Include="Models\SimulationComponent\Impl\MeasuredSpeedDrivingCycle.cs" />
     <Compile Include="Models\SimulationComponent\Impl\PTOCycleController.cs" />
     <Compile Include="Models\SimulationComponent\Impl\PWheelCycle.cs" />
diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
index 818544f063..4ffa58902e 100644
--- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
@@ -54,9 +54,9 @@ namespace TUGraz.VectoCore.Tests.Integration
 {
 	public class ATPowerTrain
 	{
-	    protected static readonly PerSecond MaxTcSpeed = 1500.RPMtoRad();
+		protected static readonly PerSecond MaxTcSpeed = 1500.RPMtoRad();
 
-	    public const string AccelerationFile = @"TestData\Components\Truck.vacc";
+		public const string AccelerationFile = @"TestData\Components\Truck.vacc";
 		public const string EngineFile = @"TestData\Components\AT_GBX\Engine.veng";
 		//public const string AxleGearLossMap = @"TestData\Components\AT_GBX\Axle.vtlm";
 		//public const string GearboxIndirectLoss = @"TestData\Components\AT_GBX\Indirect Gear.vtlm";
@@ -156,7 +156,8 @@ namespace TUGraz.VectoCore.Tests.Integration
 				PowershiftInertiaFactor = 0.7,
 				TorqueConverterData =
 					TorqueConverterDataReader.ReadFromFile(torqueConverterFile, 1000.RPMtoRad(),
-						MaxTcSpeed, ExecutionMode.Engineering, gbxType == GearboxType.ATSerial ? 1 : 1/ratios[0])
+						MaxTcSpeed, ExecutionMode.Engineering, gbxType == GearboxType.ATSerial ? 1 : 1 / ratios[0],
+						DeclarationData.Gearbox.UpshiftMinAcceleration, DeclarationData.Gearbox.UpshiftMinAcceleration)
 			};
 		}
 
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs
index 4402c38c4e..1f3315b0e4 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs
@@ -73,7 +73,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			};
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000",
-					tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, 1);
+						tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			// check input data
 			Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9);
@@ -123,7 +124,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			var ratio = 0.75;
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000",
-					tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, ratio);
+						tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, ratio, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			// check input data
 			Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9);
@@ -161,7 +163,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			};
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000",
-					tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1);
+						tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			// check input data
 			Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9);
@@ -209,7 +212,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			};
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000",
-					tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1);
+						tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			// check input data
 			Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9);
@@ -220,7 +224,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			Assert.AreEqual(188.90, tqData.TorqueConverterEntries[9].Torque.Value(), 1e-9);
 			Assert.AreEqual(0.9, tqData.TorqueConverterEntries[9].SpeedRatio, 1e-9);
 
-
 			Assert.AreEqual(0.95, tqData.TorqueConverterEntries[10].TorqueRatio, 1e-9);
 			Assert.AreEqual(0, tqData.TorqueConverterEntries[10].Torque.Value(), 1e-9);
 			Assert.AreEqual(1, tqData.TorqueConverterEntries[10].SpeedRatio, 1e-9);
@@ -266,7 +269,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000",
-					tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1);
+						tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			var outAngularSpeed = nOut.RPMtoRad();
 			var outTorque = (Pout * 1000).SI<Watt>() / outAngularSpeed;
@@ -302,15 +306,14 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000",
-					tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1);
-
+						tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			var operatingPoint = tqData.FindOperatingPointForward(tqIn.SI<NewtonMeter>(), nIn.RPMtoRad(), null);
 
 			Assert.AreEqual(operatingPoint.InTorque.Value(), tqIn, 1e-6);
 			Assert.AreEqual(operatingPoint.InAngularVelocity.Value(), nIn.RPMtoRad().Value(), 1e-6);
 
-
 			var resultList = tqData.FindOperatingPoint(operatingPoint.OutTorque, operatingPoint.OutAngularVelocity,
 				0.SI<PerSecond>());
 			Assert.AreEqual(1, resultList.Count);
@@ -349,7 +352,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			};
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000",
-					tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1);
+						tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			foreach (var entry in testData) {
 				var torqueTCOut = entry.Item1.SI<NewtonMeter>();
@@ -360,7 +364,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			}
 		}
 
-
 		[Test,
 		TestCase(10, 110),
 		TestCase(20, 130),
@@ -395,7 +398,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000",
-					tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1);
+						tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			var outAngularSpeed = nOut.RPMtoRad();
 			var outTorque = (Pout * 1000).SI<Watt>() / outAngularSpeed;
@@ -406,7 +410,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			Assert.IsTrue(result.InAngularVelocity.Value() > tqLimit.Value());
 		}
 
-
 		[TestCase()]
 		public void TestForwardBackward()
 		{
@@ -455,10 +458,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			};
 			var tqData =
 				TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000",
-					tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1);
+						tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(),
+					0.1.SI<MeterPerSquareSecond>());
 
 			var operatingPoint = tqData.FindOperatingPointForPowerDemand(20000.SI<Watt>(), 113.5.SI<PerSecond>(),
-                1200.RPMtoRad(), 4.SI<KilogramSquareMeter>(), 0.5.SI<Second>(), 20000.SI<Watt>());
+				1200.RPMtoRad(), 4.SI<KilogramSquareMeter>(), 0.5.SI<Second>(), 20000.SI<Watt>());
 
 			var tmp = tqData.FindOperatingPoint(operatingPoint.OutTorque, operatingPoint.OutAngularVelocity, 0.RPMtoRad());
 			var backward = tmp.First();
-- 
GitLab