From 97959133347be97277d238041728366482124ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 31 Jan 2012 09:34:42 +0100 Subject: [PATCH 01/10] Fixed bad warning message aboput empty sections. --- src/Mod/Ship/Instance.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index be4481ed8..7e9fe5977 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -134,7 +134,7 @@ class Ship: wires = shape.slice(Vector(1.0,0.0,0.0), x) if not wires: if (i != 0) or (i != nS-1): - msg = 'Found empty section at x=%g\n' + msg = 'Found empty section at x=%g\n' % (x) msg = Translator.translate(msg) FreeCAD.Console.PrintWarning(msg) FreeCAD.Console.PrintWarning('\tThis may happens if a bad defined (or really complex) surface has been provided.\n') From f3556210dc7488948bd8cf87b46a4e6373374a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 31 Jan 2012 09:35:42 +0100 Subject: [PATCH 02/10] Fixed 0 length dimensions error related --- src/Mod/Ship/shipCreateShip/TaskPanel.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Mod/Ship/shipCreateShip/TaskPanel.py b/src/Mod/Ship/shipCreateShip/TaskPanel.py index e56827df4..c323957a8 100644 --- a/src/Mod/Ship/shipCreateShip/TaskPanel.py +++ b/src/Mod/Ship/shipCreateShip/TaskPanel.py @@ -163,12 +163,15 @@ class TaskPanel: 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") From 395ae7036ef5e1813de78631857d9222461c8ab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 31 Jan 2012 09:39:09 +0100 Subject: [PATCH 03/10] Error saving data fixed --- src/Mod/Ship/shipAreasCurve/TaskPanel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.py b/src/Mod/Ship/shipAreasCurve/TaskPanel.py index af4764e12..54d1ecff0 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.py +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.py @@ -215,12 +215,12 @@ class TaskPanel: props.index("AreaCurveDraft") except ValueError: self.ship.addProperty("App::PropertyFloat","AreaCurveDraft","Ship", str(Translator.translate("Areas curve draft selected [m]"))) - self.ship.AreaCurveDraft = self.form.draft.value() + self.ship.AreaCurveDraft = self.form.draft.value() try: props.index("AreaCurveTrim") except ValueError: self.ship.addProperty("App::PropertyFloat","AreaCurveTrim","Ship", str(Translator.translate("Areas curve trim selected [m]"))) - self.ship.AreaCurveTrim = self.form.draft.value() + self.ship.AreaCurveTrim = self.form.trim.value() def createTask(): panel = TaskPanel() From c59ae2a84344302a1722be23a172321e4f52d1a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 31 Jan 2012 10:02:30 +0100 Subject: [PATCH 04/10] Solved ghost empty sections --- src/Mod/Ship/Instance.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index 7e9fe5977..26f28aabe 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -140,6 +140,7 @@ class Ship: FreeCAD.Console.PrintWarning('\tThis may happens if a bad defined (or really complex) surface has been provided.\n') FreeCAD.Console.PrintWarning('\tPlease, ensure that this section is correct, or fix surfaces and create a new ship.\n') nPoints.append(0) + continue # Desarrollate wires into edges list edges = [] for j in range(0,len(wires)): From 0e090ee032dd696d7cf1d948eb477b34582d362c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 31 Jan 2012 10:30:24 +0100 Subject: [PATCH 05/10] Fixed bad points sort algorithm --- src/Mod/Ship/Instance.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index 26f28aabe..49cb37a51 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -152,18 +152,22 @@ class Ship: for j in range(0,len(edges)): for k in range(0,nP): aux = self.lineFaceSection(edges[j], planes[k]) - if not aux: + if not aux: # No section points.append(Vector(x,0,z0 + k*dz)) - for l in range(0,len(aux)): - points.append(Vector(aux[l].X, aux[l].Y, aux[l].Z)) - # Sort section points at Y direction - aux = [] - for j in range(0,len(points)): - aux.append(points[j].y) - aux.sort() - for j in range(0,len(points)): - section.append(Vector(points[j].x, aux[j], points[j].z)) + if len(aux) == 1: # Single point section + points.append(Vector(aux[0].X, aux[0].Y, aux[0].Z)) + else: # Several points, so ship has more than one body + # Get Y coordinates + auxY = [] + for l in range(0,len(aux)): + auxY.append(aux[l].Y) + # Sort them + auxY.sort() + # And store + for l in range(0,len(aux)): + points.append(Vector(aux[l].X, auxY[l], aux[l].Z)) # Store points + section = points[:] nPoints.append(len(section)) for j in range(0,len(section)): mSections.append(section[j]) From 93255307789ecdec922c6a1cfca9b4e42c5bceb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 31 Jan 2012 16:33:12 +0100 Subject: [PATCH 06/10] Reduced tolerance looking for aproximately variables --- src/Mod/Ship/shipUtils/Math.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/Ship/shipUtils/Math.py b/src/Mod/Ship/shipUtils/Math.py index f8c583bef..018467c58 100644 --- a/src/Mod/Ship/shipUtils/Math.py +++ b/src/Mod/Ship/shipUtils/Math.py @@ -21,7 +21,7 @@ #* * #*************************************************************************** -def isAprox(a,b,tol=0.0001): +def isAprox(a,b,tol=0.000001): """returns if a value is into (b-tol,b+tol) @param a Value to compare. @param b Center of valid interval @@ -32,7 +32,7 @@ def isAprox(a,b,tol=0.0001): return True return False -def isSamePoint(a,b,tol=0.0001): +def isSamePoint(a,b,tol=0.000001): """returns if two points are the same with a provided tolerance @param a Point to compare. @param b Reference point. From 1a88ead7ab6e57e5f2e633530280c324fd8d4f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Wed, 1 Feb 2012 14:02:27 +0100 Subject: [PATCH 07/10] Added multibody support. --- src/Mod/Ship/Instance.py | 37 ++++----- src/Mod/Ship/shipCreateShip/TaskPanel.py | 2 +- src/Mod/Ship/shipHydrostatics/Tools.py | 96 +++++++++++++++++++++--- 3 files changed, 105 insertions(+), 30 deletions(-) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index 49cb37a51..64eecd5cc 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -120,7 +120,7 @@ class Ship: for j in range(0,nP): z = z0 + j*dz rX = x1 - x0 - rY = y1 - y0 + rY = max(y1 - y0, abs(y1), abs(y0)) planes.append(Part.makePlane(4*rX,4*rY,Base.Vector(-2*rX,-2*rY,z),Base.Vector(0,0,1))) # Division are performed at x axis dx = (x1 - x0) / (nS - 1.0) @@ -149,23 +149,23 @@ class Ship: edges.append(wire[k]) # Slice curves to get points (Length based) points = [] - for j in range(0,len(edges)): - for k in range(0,nP): + for k in range(0,nP): + planePoints = [] + for j in range(0,len(edges)): aux = self.lineFaceSection(edges[j], planes[k]) - if not aux: # No section - points.append(Vector(x,0,z0 + k*dz)) - if len(aux) == 1: # Single point section - points.append(Vector(aux[0].X, aux[0].Y, aux[0].Z)) - else: # Several points, so ship has more than one body - # Get Y coordinates - auxY = [] - for l in range(0,len(aux)): - auxY.append(aux[l].Y) - # Sort them - auxY.sort() - # And store - for l in range(0,len(aux)): - points.append(Vector(aux[l].X, auxY[l], aux[l].Z)) + for l in range(0,len(aux)): + planePoints.append(Vector(aux[l].X, aux[l].Y, aux[l].Z)) + if not planePoints: # No section found, symmetry plane point will used + planePoints.append(Vector(x,0,z0 + k*dz)) + # Get Y coordinates + auxY = [] + for l in range(0,len(planePoints)): + auxY.append(planePoints[l].y) + # Sort them + auxY.sort() + # And store + for l in range(0,len(planePoints)): + points.append(Vector(planePoints[l].x, auxY[l], planePoints[l].z)) # Store points section = points[:] nPoints.append(len(section)) @@ -177,6 +177,9 @@ class Ship: self.obj.nPoints = nPoints[:] self.obj.xSection = xSection[:] self.obj.mSections = mSections[:] + msg = '%d Discretization points performed\n' % (len(mSections)) + msg = Translator.translate(msg) + FreeCAD.Console.PrintMessage(msg) class ViewProviderShip: def __init__(self, obj): diff --git a/src/Mod/Ship/shipCreateShip/TaskPanel.py b/src/Mod/Ship/shipCreateShip/TaskPanel.py index c323957a8..7fab02097 100644 --- a/src/Mod/Ship/shipCreateShip/TaskPanel.py +++ b/src/Mod/Ship/shipCreateShip/TaskPanel.py @@ -159,7 +159,7 @@ class TaskPanel: if maxZ < bbox.ZMax: maxZ = bbox.ZMax bounds[0] = maxX - minX - bounds[1] = maxY - minY + bounds[1] = max(maxY - minY, abs(maxY), abs(minY)) bounds[2] = maxZ - minZ # Set UI fields self.form.length.setMaximum(bounds[0]) diff --git a/src/Mod/Ship/shipHydrostatics/Tools.py b/src/Mod/Ship/shipHydrostatics/Tools.py index 32ce25dc0..3792708c9 100644 --- a/src/Mod/Ship/shipHydrostatics/Tools.py +++ b/src/Mod/Ship/shipHydrostatics/Tools.py @@ -27,6 +27,7 @@ import FreeCAD as App import FreeCADGui as Gui # Module import Instance +from shipUtils import Math def Displacement(ship, draft, trim): """ Calculate ship displacement. @@ -75,20 +76,91 @@ def Displacement(ship, draft, trim): z0 = section[n-1].z y1 = section[n].y z1 = section[n].z - factor = (Z - z0) / (z1 - z0) - y = y0 + factor*(y1 - y0) - points.append(App.Base.Vector(x,y,Z)) + if (Z > z0) and not (Math.isAprox(Z,z0)): + factor = (Z - z0) / (z1 - z0) + y = y0 + factor*(y1 - y0) + points.append(App.Base.Vector(x,y,Z)) + # Convert into array with n elements (Number of points by sections) + # with m elements into them (Number of points with the same height, + # typical of multibody) + section = [] + nPoints = 0 + j = 0 + while j < len(points)-1: + section.append([points[j]]) + k = j+1 + while(Math.isAprox(points[j].z, points[k].z)): + section[nPoints].append(points[k]) + k = k+1 + nPoints = nPoints + 1 + j = k # Integrate area area = 0.0 - for j in range(0, len(points)-1): - y0 = abs(points[j].y) - z0 = points[j].z - y1 = abs(points[j+1].y) - z1 = points[j+1].z - y = 0.5 * (y0 + y1) - dz = z1 - z0 - area = area + 2.0*y*dz # 2x because only half ship is represented - areas.append(area) + for j in range(0, len(section)-1): + for k in range(0, min(len(section[j])-1, len(section[j+1])-1)): + # y11,z11 ------- y01,z01 + # | | + # | | + # | | + # y10,z10 ------- y00,z00 + y00 = abs(section[j][k].y) + z00 = section[j][k].z + y10 = abs(section[j][k+1].y) + z10 = section[j][k+1].z + y01 = abs(section[j+1][k].y) + z01 = section[j+1][k].z + y11 = abs(section[j+1][k+1].y) + z11 = section[j+1][k+1].z + dy = 0.5*((y00 - y10) + (y01 - y11)) + dz = 0.5*((z01 - z00) + (z11 - z10)) + area = area + dy*dz + if(len(section[j]) < len(section[j+1])): + # y01,z01 ------- y11,z11 + # | __/ + # | __/ + # | / + # y00,z00 + k = len(section[j])-1 + y00 = abs(section[j][k].y) + z00 = section[j][k].z + y01 = abs(section[j+1][k].y) + z01 = section[j+1][k].z + y11 = abs(section[j+1][k+1].y) + z11 = section[j+1][k+1].z + dy = y01 - y11 + dz = z01 - z00 + area = area + 0.5*dy*dz + elif(len(section[j]) > len(section[j+1])): + # y01,z01 + # | \__ + # | \__ + # | \ + # y00,z00 ------- y10,z10 + k = len(section[j+1])-1 + y00 = abs(section[j][k].y) + z00 = section[j][k].z + y10 = abs(section[j][k+1].y) + z10 = section[j][k+1].z + y01 = abs(section[j+1][k].y) + z01 = section[j+1][k].z + dy = y00 - y10 + dz = z01 - z00 + area = area + 0.5*dy*dz + elif(len(section[j]) == 1): + # y1,z1 ------- + # | + # | + # | + # y0,z0 ------- + k = 0 + y0 = abs(section[j][k].y) + z0 = section[j][k].z + y1 = abs(section[j+1][k].y) + z1 = section[j+1][k].z + dy = 0.5 * (y0 + y1) + dz = z1 - z0 + area = area + dy*dz + areas.append(2.0*area) # 2x because only half ship is represented # Add volume & moment if proceed if i > 0: dx = xCoord[i] - xCoord[i-1] From 84c33bffde8c0fdb721eb40b62e38ef873c00a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Wed, 1 Feb 2012 14:10:53 +0100 Subject: [PATCH 08/10] Added s60 katamaran model geometry example --- src/Mod/Ship/CMakeLists.txt | 1 + src/Mod/Ship/Examples/s60_katamaran.fcstd | Bin 0 -> 59901 bytes src/Mod/Ship/Makefile.am | 1 + 3 files changed, 2 insertions(+) create mode 100644 src/Mod/Ship/Examples/s60_katamaran.fcstd diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 8f379a0bc..71aea43f0 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -38,6 +38,7 @@ SOURCE_GROUP("shipicons" FILES ${ShipIcons_SRCS}) SET(ShipExamples_SRCS Examples/s60.fcstd Examples/barehull5415.fcstd + Examples/s60_katamaran.fcstd ) SOURCE_GROUP("shipexamples" FILES ${ShipExamples_SRCS}) diff --git a/src/Mod/Ship/Examples/s60_katamaran.fcstd b/src/Mod/Ship/Examples/s60_katamaran.fcstd new file mode 100644 index 0000000000000000000000000000000000000000..a7d72df9401f1ca3997555950179bb6200cddfda GIT binary patch literal 59901 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 Date: Wed, 1 Feb 2012 14:14:16 +0100 Subject: [PATCH 09/10] Updated examples loader in order to allow load s60 katamaran version. --- src/Mod/Ship/shipLoadExample/TaskPanel.py | 2 ++ src/Mod/Ship/shipLoadExample/TaskPanel.ui | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.py b/src/Mod/Ship/shipLoadExample/TaskPanel.py index 1f6cd9f93..3c9b483c1 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.py +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.py @@ -40,6 +40,8 @@ class TaskPanel: App.open(path + "s60.fcstd") elif(self.form.ship.currentIndex() == 1): # Barehull 5415 App.open(path + "barehull5415.fcstd") + elif(self.form.ship.currentIndex() == 2): # s60 (Katamaran) + App.open(path + "s60_katamaran.fcstd") return True def reject(self): diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.ui b/src/Mod/Ship/shipLoadExample/TaskPanel.ui index b9f7aeffe..77d744189 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.ui +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.ui @@ -84,6 +84,11 @@ Barehull 5145 + + + Serie 60 (Katamaran) + + From f0955a3f4605124fe2bd710ebe6014445670442c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Wed, 1 Feb 2012 15:28:12 +0100 Subject: [PATCH 10/10] Fix error when try to fuse border into constant sections edges. Now constant edges are fused into border. --- src/Mod/Ship/shipOutlineDraw/Plot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Mod/Ship/shipOutlineDraw/Plot.py b/src/Mod/Ship/shipOutlineDraw/Plot.py index 155b6b0b6..7d21b2fbc 100644 --- a/src/Mod/Ship/shipOutlineDraw/Plot.py +++ b/src/Mod/Ship/shipOutlineDraw/Plot.py @@ -57,7 +57,8 @@ def Plot(scale, sections, shape): border = border.oldFuse(edges[i]) # Only group objects, don't try to build more complex entities border = border.oldFuse(edges[i].mirror(Vector(0.0, 0.0, 0.0),Vector(0.0, 1.0, 0.0))) # Fuse sections & borders - obj = sections.oldFuse(border) + # obj = sections.oldFuse(border) + obj = border.oldFuse(sections) # Send to 3D view Part.show(obj) objs = FreeCAD.ActiveDocument.Objects