def initValues(self): self.objs = None self.dir = Vector(0.0,0.0,1.0) self.r = 0.0 self.face = None self.selObj = Geometry.getSelectedObj() if not self.selObj: msg = Translator.translate("At least 1 surface must be selected (Any selected object)") App.Console.PrintError(msg) return True self.face = Geometry.getFaces() if not self.face: msg = Translator.translate("At least 1 surface must be selected (Any face object found into selected objects)") App.Console.PrintError(msg) return True bound = self.face[0].BoundBox self.bound = [bound.XMin, bound.XMax, bound.YMin, bound.YMax, bound.ZMin, bound.ZMax] for i in range(1,len(self.face)): face = self.face[i] bound = face.BoundBox self.bound[0] = min(self.bound[0],bound.XMin) self.bound[1] = min(self.bound[1],bound.XMax) self.bound[2] = min(self.bound[2],bound.YMin) self.bound[3] = min(self.bound[3],bound.YMax) self.bound[4] = min(self.bound[4],bound.ZMin) self.bound[5] = min(self.bound[5],bound.ZMax) self.r = max(self.r, self.bound[4]) self.r = min(self.r, self.bound[5]) msg = Translator.translate("Ready to work") App.Console.PrintMessage(msg) return False
def initValues(self): self.objs = None self.dir = Vector(0.0, 0.0, 1.0) self.r = 0.0 self.face = None self.selObj = Geometry.getSelectedObj() if not self.selObj: msg = Translator.translate( "At least 1 surface must be selected (Any selected object)") App.Console.PrintError(msg) return True self.face = Geometry.getFaces() if not self.face: msg = Translator.translate( "At least 1 surface must be selected (Any face object found into selected objects)" ) App.Console.PrintError(msg) return True bound = self.face[0].BoundBox self.bound = [ bound.XMin, bound.XMax, bound.YMin, bound.YMax, bound.ZMin, bound.ZMax ] for i in range(1, len(self.face)): face = self.face[i] bound = face.BoundBox self.bound[0] = min(self.bound[0], bound.XMin) self.bound[1] = min(self.bound[1], bound.XMax) self.bound[2] = min(self.bound[2], bound.YMin) self.bound[3] = min(self.bound[3], bound.YMax) self.bound[4] = min(self.bound[4], bound.ZMin) self.bound[5] = min(self.bound[5], bound.ZMax) self.r = max(self.r, self.bound[4]) self.r = min(self.r, self.bound[5]) msg = Translator.translate("Ready to work") App.Console.PrintMessage(msg) return False
def getEdgesFaces(self): """ Returns two arrays filled with the edges and faces selected. @return True if error happens. False otherwise """ self.edges = [] self.faces = [] for i in range(0,len(self.objs)): objFaces = Geometry.getFaces(self.objs[i]) if not objFaces: objEdges = Geometry.getEdges([self.objs[i]]) if not objEdges: msg = Translator.translate("4 connected edges and at least 1 surface must be selected (Any edge found)") App.Console.PrintError(msg) return True for j in range(0, len(objEdges)): self.edges.append(objEdges[j]) else: for j in range(0, len(objFaces)): self.faces.append(objFaces[j]) if len(self.edges) != 4: msg = Translator.translate("4 connected edges and at least 1 surface must be selected (More/less edges not allowed)") App.Console.PrintError(msg) return True 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 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