Main Content

Pillow Block Bearing Geometry

Create a geometry of a pillow block bearing by using the MATLAB® functions polyshape and polybuffer, and the geometry modification functions available in Partial Differential Equation™ Toolbox.

First, create a polygonal shape representing a profile of the pillow block bearing in the x-z plane by using the polyshape function.

shapexz = polyshape( ...
    [-50,50,50,10,10,-10,-10,-50],...
    [-10,-10,20,20,70,70,20,20]);
plot(shapexz)

Figure contains an axes object. The axes object contains an object of type polygon.

To smooth the corners of the shape: buffer the original shape by a small distance, shrink the shape by twice that distance, and then buffer the resulting shape by the same distance again. This process produces a polyshape object that approximately matches the original shape, but has smooth inside and outside corners.

First, create a buffer at a distance of 6 from the boundaries by using the polybuffer function.

shapexz = polybuffer(shapexz,6);
plot(shapexz)

Figure contains an axes object. The axes object contains an object of type polygon.

To round the inside corners, shrink the new boundaries by a distance of 12.

shapexz = polybuffer(shapexz,-12);
plot(shapexz)

Figure contains an axes object. The axes object contains an object of type polygon.

To round the outside corners, create another buffer by a distance of 6 from the new boundaries.

shapexz = polybuffer(shapexz,6);
plot(shapexz)

Figure contains an axes object. The axes object contains an object of type polygon.

Next, cut a piece from the bottom of the shape. Start by creating another polygonal shape named chop representing the piece to cut from the bottom.

chop = polyshape([-60,-38,-38,38,38,60,60,-60],...
                 [0,0,8,8,0,0,-20,-20]);
plot([shapexz,chop])

Figure contains an axes object. The axes object contains 2 objects of type polygon.

To cut one polygonal shape from another, use the subtract function.

shapexz = subtract(shapexz,chop);
plot(shapexz)

Figure contains an axes object. The axes object contains an object of type polygon.

Convert the polyshape object into a triangulation object.

g1 = triangulation(shapexz);

Create an fegeometry object from the triangulation object.

g1 = fegeometry(g1);

Extrude the resulting 2-D geometry into 3-D.

g1 = extrude(g1,40);
pdegplot(g1)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Rotate the geometry by 90 degrees around the x-axis.

g1 = rotate(g1,90,[0,0,0],[1,0,0]);
pdegplot(g1)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Move the geometry along the y-axis.

g1 = translate(g1,[0,20,0]);
pdegplot(g1)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Create a polygonal shape representing the profile of the pillow block bearing in the y-z plane by using the polyshape function.

shapeyz = polyshape([-20,20,20*cosd(0:10:180), ...
                   -20,NaN,12*cosd(0:10:360)],...
                   [0,0,44+20*sind(0:10:180),0, ...
                   NaN,44+12*sind(0:10:360)]);
plot(shapeyz)
axis equal

Figure contains an axes object. The axes object contains an object of type polygon.

Convert the polyshape object into a triangulation object.

g2 = triangulation(shapeyz);

Create an fegeometry object from the triangulation object.

g2 = fegeometry(g2);

Extrude the resulting 2-D geometry into 3-D.

g2 = extrude(g2,100);
pdegplot(g2)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Rotate the geometry by 90 degrees around the x-axis, and then rotate the resulting geometry by 90 degrees around the z-axis.

g2 = rotate(g2,90,[0,0,0],[1,0,0]);
g2 = rotate(g2,90,[0,0,0],[0,0,1]);
pdegplot(g2)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Move the geometry along the x-axis.

g2 = translate(g2,[-50,0,0]);
pdegplot(g2)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Intersect the geometries.

result = intersect(g1,g2);

Display the intersection by plotting g1 in green, g2 in red, and the resulting geometry in blue. Set the surface transparency for g1 and g2 to 0.2 by using FaceAlpha.

figure
pdegplot(result,FaceColor="blue");
hold on
pdegplot(g1,FaceAlpha=0.2,FaceColor="green")
hold on
pdegplot(g2,FaceAlpha=0.2,FaceColor="red")

Figure contains an axes object. The axes object contains 10 objects of type patch, line, quiver, text.

Create the cylinder geometry that you can use to make holes on both sides of the pillow block bearing.

hole = fegeometry(multicylinder(6,40));
pdegplot(hole)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Subtract a cylinder geometry to make two holes. The resulting geometry represents the pillow block bearing.

result = subtract(result,translate(hole,[-30,0,0]));
result = subtract(result,translate(hole,[30,0,0]));
figure
pdegplot(result)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.