def initValues(self): """ Set initial values for fields """ # Get selected objects selObjs = Geometry.getSelectedObjs() if not selObjs: msg = Translator.translate("Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) return True for i in range(0,len(selObjs)): obj = selObjs[i] # Test if is a ship instance props = obj.PropertiesList try: props.index("IsShip") except ValueError: continue if obj.IsShip: # Test if another ship already selected if self.ship: msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") App.Console.PrintWarning(msg) break self.ship = obj # Test if any valid ship was selected if not self.ship: msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") App.Console.PrintError(msg) return True # Load sections (if exist) self.loadSections() msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False
def initValues(self): """ Set initial values for fields """ # Get objects selObjs = Geometry.getSelectedObjs() if not selObjs: msg = Translator.translate("Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) return True for i in range(0,len(selObjs)): obj = selObjs[i] # Test if is a ship instance props = obj.PropertiesList try: props.index("IsShip") except ValueError: continue if obj.IsShip: # Test if another ship already selected if self.ship: msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") App.Console.PrintWarning(msg) break self.ship = obj # Test if any valid ship was selected if not self.ship: msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") App.Console.PrintError(msg) return True # Get bounds bbox = self.ship.Shape.BoundBox self.form.draft.setMaximum(bbox.ZMax) self.form.draft.setMinimum(bbox.ZMin) self.form.draft.setValue(self.ship.Draft) # Try to use saved values props = self.ship.PropertiesList flag = True try: props.index("AreaCurveDraft") except ValueError: flag = False if flag: self.form.draft.setValue(self.ship.AreaCurveDraft) flag = True try: props.index("AreaCurveTrim") except ValueError: flag = False if flag: self.form.trim.setValue(self.ship.AreaCurveTrim) # Update GUI self.preview.update(self.form.draft.value(), self.form.trim.value(), self.ship) self.onUpdate() msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False
def initValues(self): """ Set initial values for fields """ # Get selected objects selObjs = Geometry.getSelectedObjs() if not selObjs: msg = Translator.translate( "Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) return True for i in range(0, len(selObjs)): obj = selObjs[i] # Test if is a ship instance props = obj.PropertiesList try: props.index("IsShip") except ValueError: continue if obj.IsShip: # Test if another ship already selected if self.ship: msg = Translator.translate( "More than one ship selected (extra ship will be neglected)\n" ) App.Console.PrintWarning(msg) break self.ship = obj # Test if any valid ship was selected if not self.ship: msg = Translator.translate( "Ship instance must be selected (no valid ship found at selected objects)\n" ) App.Console.PrintError(msg) return True # Load sections (if exist) self.loadSections() msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False
def initValues(self): """ Set initial values for fields """ # Get objects self.faces = None selObjs = Geometry.getSelectedObjs() if not selObjs: msg = Translator.translate("Ship objects can only be created on top of hull geometry (no object selected).\n") App.Console.PrintError(msg) msg = Translator.translate("Please create or download a ship hull geometry before using this tool\n") App.Console.PrintError(msg) return True self.faces = [] for i in range(0, len(selObjs)): faces = Geometry.getFaces(selObjs[i]) for j in range(0, len(faces)): self.faces.append(faces[j]) if not self.faces: msg = Translator.translate("Ship objects can only be created on top of hull geometry (no face object selected).\n") App.Console.PrintError(msg) msg = Translator.translate("Please create or download a ship hull geometry before using this tool\n") App.Console.PrintError(msg) return True # Get bounds bounds = [0.0, 0.0, 0.0] bbox = self.faces[0].BoundBox minX = bbox.XMin maxX = bbox.XMax minY = bbox.YMin maxY = bbox.YMax minZ = bbox.ZMin maxZ = bbox.ZMax for i in range(1,len(self.faces)): bbox = self.faces[i].BoundBox if minX > bbox.XMin: minX = bbox.XMin if maxX < bbox.XMax: maxX = bbox.XMax if minY > bbox.YMin: minY = bbox.YMin if maxY < bbox.YMax: maxY = bbox.YMax if minZ > bbox.ZMin: minZ = bbox.ZMin if maxZ < bbox.ZMax: maxZ = bbox.ZMax bounds[0] = maxX - minX bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) bounds[2] = maxZ - minZ # Set UI fields self.form.length.setMaximum(bounds[0]) self.form.length.setMinimum(0.001) self.form.length.setValue(bounds[0]) self.L = bounds[0] self.form.beam.setMaximum(2.0*bounds[1]) self.form.beam.setMinimum(0.001) self.form.beam.setValue(2.0*bounds[1]) self.B = 2.0*bounds[1] self.form.draft.setMaximum(bounds[2]) self.form.draft.setMinimum(0.001) self.form.draft.setValue(0.5*bounds[2]) self.T = 0.5*bounds[2] msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False
def initValues(self): """ Set initial values for fields """ # Get objects selObjs = Geometry.getSelectedObjs() if not selObjs: msg = Translator.translate("Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) return True for i in range(0,len(selObjs)): obj = selObjs[i] # Test if is a ship instance props = obj.PropertiesList try: props.index("IsShip") except ValueError: continue if obj.IsShip: # Test if another ship already selected if self.ship: msg = Translator.translate("More than one ship selected (extra ship will be neglected)\n") App.Console.PrintWarning(msg) break self.ship = obj # Test if any valid ship was selected if not self.ship: msg = Translator.translate("Ship instance must be selected (no valid ship found at selected objects)\n") App.Console.PrintError(msg) return True # Get bounds bbox = self.ship.Shape.BoundBox # Set trim flag = True try: props.index("HydrostaticsTrim") except ValueError: flag = False if flag: self.form.trim.setValue(self.ship.HydrostaticsTrim) # Set drafts self.form.maxDraft.setValue(1.1*self.ship.Draft) self.form.minDraft.setValue(0.9*self.ship.Draft) # Try to use saved values props = self.ship.PropertiesList flag = True try: props.index("HydrostaticsMinDraft") except ValueError: flag = False if flag: self.form.minDraft.setValue(self.ship.HydrostaticsMinDraft) flag = True try: props.index("HydrostaticsMaxDraft") except ValueError: flag = False if flag: self.form.maxDraft.setValue(self.ship.HydrostaticsMaxDraft) self.form.maxDraft.setMaximum(bbox.ZMax) self.form.minDraft.setMinimum(bbox.ZMin) self.form.maxDraft.setMinimum(self.form.minDraft.value()) self.form.minDraft.setMaximum(self.form.maxDraft.value()) flag = True try: props.index("HydrostaticsNDraft") except ValueError: flag = False if flag: self.form.nDraft.setValue(self.ship.HydrostaticsNDraft) # Update GUI msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False
def initValues(self): """ Set initial values for fields """ # Get objects self.faces = None selObjs = Geometry.getSelectedObjs() if not selObjs: msg = Translator.translate( "Ship objects can only be created on top of hull geometry (no object selected).\n" ) App.Console.PrintError(msg) msg = Translator.translate( "Please create or download a ship hull geometry before using this tool\n" ) App.Console.PrintError(msg) return True self.faces = [] for i in range(0, len(selObjs)): faces = Geometry.getFaces(selObjs[i]) for j in range(0, len(faces)): self.faces.append(faces[j]) if not self.faces: msg = Translator.translate( "Ship objects can only be created on top of hull geometry (no face object selected).\n" ) App.Console.PrintError(msg) msg = Translator.translate( "Please create or download a ship hull geometry before using this tool\n" ) App.Console.PrintError(msg) return True # Get bounds bounds = [0.0, 0.0, 0.0] bbox = self.faces[0].BoundBox minX = bbox.XMin maxX = bbox.XMax minY = bbox.YMin maxY = bbox.YMax minZ = bbox.ZMin maxZ = bbox.ZMax for i in range(1, len(self.faces)): bbox = self.faces[i].BoundBox if minX > bbox.XMin: minX = bbox.XMin if maxX < bbox.XMax: maxX = bbox.XMax if minY > bbox.YMin: minY = bbox.YMin if maxY < bbox.YMax: maxY = bbox.YMax if minZ > bbox.ZMin: minZ = bbox.ZMin if maxZ < bbox.ZMax: maxZ = bbox.ZMax bounds[0] = maxX - minX bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) bounds[2] = maxZ - minZ # Set UI fields self.form.length.setMaximum(bounds[0]) self.form.length.setMinimum(0.001) self.form.length.setValue(bounds[0]) self.L = bounds[0] self.form.beam.setMaximum(2.0 * bounds[1]) self.form.beam.setMinimum(0.001) self.form.beam.setValue(2.0 * bounds[1]) self.B = 2.0 * bounds[1] self.form.draft.setMaximum(bounds[2]) self.form.draft.setMinimum(0.001) self.form.draft.setValue(0.5 * bounds[2]) self.T = 0.5 * bounds[2] msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False