Skip to content

Commit

Permalink
Added a console interface to the tanks generation
Browse files Browse the repository at this point in the history
  • Loading branch information
sanguinariojoe committed Jan 23, 2016
1 parent a615380 commit c3ccd0f
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 15 deletions.
1 change: 1 addition & 0 deletions src/Mod/Ship/CMakeLists.txt
Expand Up @@ -71,6 +71,7 @@ SET(ShipCreateTank_SRCS
shipCreateTank/__init__.py
shipCreateTank/TaskPanel.py
shipCreateTank/TaskPanel.ui
shipCreateTank/Tools.py
)
SOURCE_GROUP("shipcreatetank" FILES ${ShipCreateTank_SRCS})

Expand Down
3 changes: 2 additions & 1 deletion src/Mod/Ship/Ship.py
Expand Up @@ -32,4 +32,5 @@
from shipCreateShip.Tools import createShip
from shipHydrostatics.Tools import areas, displacement, wettedArea, moment,
floatingArea, BMT, mainFrameCoeff
from shipCreateWeight.Tools import createWeight
from shipCreateWeight.Tools import createWeight
from shipCreateTank.Tools import createTank
17 changes: 3 additions & 14 deletions src/Mod/Ship/shipCreateTank/TaskPanel.py
Expand Up @@ -25,6 +25,7 @@
import FreeCADGui as Gui
import Units
from PySide import QtGui, QtCore
import Tools
import TankInstance as Instance
from shipUtils import Paths
import shipUtils.Units as USys
Expand All @@ -40,21 +41,9 @@ def accept(self):
form = mw.findChild(QtGui.QWidget, "TaskPanel")
form.ship = self.widget(QtGui.QComboBox, "Ship")

# Create the object
ship = self.ships[form.ship.currentIndex()]
obj = App.ActiveDocument.addObject("Part::FeaturePython", "Tank")
tank = Instance.Tank(obj, self.solids, ship)
Instance.ViewProviderTank(obj.ViewObject)

# Set it as a child of the ship
tanks = ship.Tanks[:]
tanks.append(obj.Name)
ship.Tanks = tanks
ship.Proxy.cleanWeights(ship)
ship.Proxy.cleanTanks(ship)
ship.Proxy.cleanLoadConditions(ship)

App.ActiveDocument.recompute()
Tools.createTank(self.solids, ship)

return True

def reject(self):
Expand Down
56 changes: 56 additions & 0 deletions src/Mod/Ship/shipCreateTank/Tools.py
@@ -0,0 +1,56 @@
#***************************************************************************
#* *
#* Copyright (c) 2016 *
#* Jose Luis Cercos Pita <jlcercos@gmail.com> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* This program is distributed in the hope that it will be useful, *
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
#* GNU Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************


import FreeCAD as App
import Units
import TankInstance as Instance


def createTank(solids, ship):
"""Create a new tank instance
Position arguments:
solids -- List of solid shapes
ship -- Ship owner
Returned value:
The new tank object
The tool will claim the new tank as a child of the ship object. Please do
not remove the partner ship object before removing this new tank before.
"""
obj = App.ActiveDocument.addObject("Part::FeaturePython", "Tank")
tank = Instance.Tank(obj, solids, ship)
Instance.ViewProviderTank(obj.ViewObject)

# Set it as a child of the ship
tanks = ship.Tanks[:]
tanks.append(obj.Name)
ship.Tanks = tanks
ship.Proxy.cleanWeights(ship)
ship.Proxy.cleanTanks(ship)
ship.Proxy.cleanLoadConditions(ship)

App.ActiveDocument.recompute()
return obj

0 comments on commit c3ccd0f

Please sign in to comment.