Using the smart expression in the spreadsheet to manage the entities labels
This commit is contained in:
parent
c16c27cd0e
commit
9b6b171b04
|
@ -26,6 +26,10 @@ import FreeCADGui as Gui
|
|||
import Spreadsheet
|
||||
|
||||
|
||||
READ_ONLY_FOREGROUND = (0.5, 0.5, 0.5)
|
||||
READ_ONLY_BACKGROUND = (0.9, 0.9, 0.9)
|
||||
|
||||
|
||||
def load():
|
||||
"""Directly create the load condition"""
|
||||
# Check that a ship has been selected
|
||||
|
@ -73,6 +77,55 @@ def load():
|
|||
s = App.activeDocument().addObject('Spreadsheet::Sheet',
|
||||
'LoadCondition')
|
||||
|
||||
# Add a description
|
||||
s.setForeground('A1:B2', READ_ONLY_FOREGROUND)
|
||||
s.setBackground('A1:B2', READ_ONLY_BACKGROUND)
|
||||
s.setAlignment('B1:B2', 'center', 'keep')
|
||||
s.setStyle('B1:B2', 'italic', 'add')
|
||||
s.set("A1", "Ship:")
|
||||
s.set("A2", "Load condition:")
|
||||
s.set("B1", "=" + ship.Name + ".Label")
|
||||
s.set("B2", "=Label")
|
||||
|
||||
# Add the weights data
|
||||
s.setAlignment('A4:A5', 'center', 'keep')
|
||||
s.setStyle('A4:A5', 'bold', 'add')
|
||||
s.setStyle('A4:A5', 'underline', 'add')
|
||||
s.set("A4", "WEIGHTS DATA")
|
||||
s.set("A5", "name")
|
||||
for i in range(len(ship.Weights)):
|
||||
weight = App.activeDocument().getObject(ship.Weights[i])
|
||||
s.set("A{}".format(i + 6), "=" + weight.Name + ".Label")
|
||||
s.setForeground('A4:A{}'.format(5 + len(ship.Weights)), READ_ONLY_FOREGROUND)
|
||||
s.setBackground('A4:A{}'.format(5 + len(ship.Weights)), READ_ONLY_BACKGROUND)
|
||||
|
||||
# Add the tanks data
|
||||
s.mergeCells('C4:E4')
|
||||
s.setForeground('C4:E5', READ_ONLY_FOREGROUND)
|
||||
s.setBackground('C4:E5', READ_ONLY_BACKGROUND)
|
||||
s.setAlignment('C4:E5', 'center', 'keep')
|
||||
s.setStyle('C4:E5', 'bold', 'add')
|
||||
s.setStyle('C4:E5', 'underline', 'add')
|
||||
s.set("C4", "TANKS DATA")
|
||||
s.set("C5", "name")
|
||||
s.set("D5", "Fluid density [kg/m^3]")
|
||||
s.set("E5", "Filling ratio (interval [0, 1])")
|
||||
if len(ship.Tanks):
|
||||
for i in range(len(ship.Tanks)):
|
||||
tank = App.activeDocument().getObject(ship.Tanks[i])
|
||||
s.set("C{}".format(i + 6), "=" + tank.Name + ".Label")
|
||||
s.set("D{}".format(i + 6), "998.0")
|
||||
s.set("E{}".format(i + 6), "0.0")
|
||||
s.setForeground('C6:C{}'.format(5 + len(ship.Tanks)), READ_ONLY_FOREGROUND)
|
||||
s.setBackground('C6:C{}'.format(5 + len(ship.Tanks)), READ_ONLY_BACKGROUND)
|
||||
|
||||
s.setColumnWidth('A', 128)
|
||||
s.setColumnWidth('B', 128)
|
||||
s.setColumnWidth('C', 128)
|
||||
s.setColumnWidth('D', 150)
|
||||
s.setColumnWidth('E', 200)
|
||||
|
||||
"""
|
||||
# Add a reference to the owner ship
|
||||
s.mergeCells('A1:D1')
|
||||
s.setAlignment('A1:B2', 'center', 'keep')
|
||||
|
@ -127,6 +180,7 @@ def load():
|
|||
s.setForeground('A{}:B{}'.format(8 + len(ship.Weights),
|
||||
8 + len(ship.Weights) + len(ship.Tanks)),
|
||||
(0.5,0.5,0.5))
|
||||
"""
|
||||
|
||||
# Add the spreadsheet to the list of loading conditions of the ship
|
||||
lcs = ship.LoadConditions[:]
|
||||
|
|
Loading…
Reference in New Issue
Block a user