Added a console interface to the tanks generation

This commit is contained in:
Jose Luis Cercos Pita 2016-01-23 14:35:56 +01:00
parent a615380027
commit c3ccd0f72c
4 changed files with 61 additions and 14 deletions

View File

@ -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})

View File

@ -32,4 +32,5 @@ __doc__="The Ships module provide a set of tools to make some specific Naval" \
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

View File

@ -25,6 +25,7 @@ import FreeCAD as App
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
@ -40,21 +41,9 @@ class TaskPanel:
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)
Tools.createTank(self.solids, ship)
# 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 True
def reject(self):

View File

@ -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