本棚の棚受け
このチュートリアルは,OpenCascadeLinkを使った,本棚の棚受けの生成方法を示すためのものである.
棚受けの作成は,数ステップに分けて行う.まず,基本の棚受けを作成し,そこにボルト用の穴を開ける.その後,フィレットとC面取りを付ける.
Needs["OpenCascadeLink`"]
Needs["NDSolve`FEM`"]基本の構造,つまり繋げられた2つの立方体をボルト用の取り付け具を除いた形で作成することから始める.立方体はブール演算で繋げられる.ボルトの取り付け具の穴もブール演算によって削除する.
geometricParameters = {d -> 0.001, w -> 0.005, h -> 0.02};
side = Cuboid[{0, 0, 0}, {d, w, h}] /. geometricParameters;
top = Cuboid[{0, 0, h - 2d}, {h, w, h - d}] /. geometricParameters;
mount1 = Cylinder[{{-d, w / 2, 5d}, {2d, w / 2, 5d}}, w / 10] /. geometricParameters;
mount2 = Cylinder[{{-d, w / 2, h - 5d}, {2d, w / 2, h - 5d}}, w / 10] /. geometricParameters;Graphics3D[{side, top, mount1, mount2}]region = RegionDifference[RegionDifference[RegionUnion[side, top], mount1], mount2];shape = OpenCascadeShape[region]OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape]["Wireframe"["MeshElementStyle" -> Directive[EdgeForm[], FaceForm[LightGray]]]]次に,立方体の接続部分と,棚受けの端にフィレットを付ける.フィレットの関数は,引数として形状,フィレットの半径,フィレットを作成する辺の識別番号(ID)を取る.
OpenCascadeShapeNumberOfEdges[shape]OpenCascadeでは,面と面の間の辺は,それぞれの面から見た辺として,2度現れる.
fshape = OpenCascadeShapeFillet[shape, d, {20, 22, 30}] /. geometricParametersOpenCascadeShapeSurfaceMeshToBoundaryMesh[fshape]["Wireframe"["MeshElementStyle" -> Directive[EdgeForm[], FaceForm[LightGray]]]]最後に,ボルトの穴にC面取りを付ける.面取りはフィレットに似ている.違いは,C面取りでは角は丸められておらず,平面である点である.C面取りの関数は,引数として,形状,距離,C面取りが付けられる接線方向,C面取りを付ける辺の識別番号(ID)を取る.
cfshape = OpenCascadeShapeChamfer[fshape, d / 5, {52, 53}] /. geometricParametersbmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[cfshape];
Show[
bmesh["Edgeframe"],
bmesh["Wireframe"["MeshElementStyle" -> Directive[EdgeForm[], FaceForm[LightGray]]]]]