Shperモジュールのチュートリアル

# はじめに

この記事はSALOME version 9.3.0 Shaperモジュールの[チュートリアル](https://docs.salome-platform.org/latest/gui/SHAPER/Tutorial.html#tutorial)を翻訳したものです。
Shaperは、以前のGemeotryモジュールの代わりとして登場したCADモデラーです。

ShaperモジュールはSALOME version 9.3.0から加わった新しいモジュールであり、新しくリリースされるたびに機能追加、変更が行われておりますので異なるバージョンでは手順が異なる可能性があります。

この練習では、ねじナットの形状を最初から作成する方法について説明します。

ステップ1．スケッチ
--------------

この手順では、通常の六角形を作成します。

- メインメニューで、「Part」＞「New part」で新規パーツを作成します。
- メインメニューで、「Sketch」＞「Sketch」を選択して、スケッチの作成を開始します。
- 「sketch」ダイアログで、「**Size of the View**」パラメータを250に設定します。
- ビューで**XOY**平面を選択します。
- 「sketch」プロパティパネルの「**Set plane view**」ボタンをクリックします。

![tutorial1_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/f98d0131-697e-1753-e98f-ddafb2ab8578.png)
**スケッチ平面XOY**

- メインメニューの「Sketch」＞「Line」を選択して線分の作成を開始します。
- ビュー内の3つの点を1つずつ選択し、最後に最初の点を選択して三角形を作成します。

![tutorial1_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/bad44330-434b-7345-fe6a-8a232f321577.png)
**三角形を形成する3つの線**

- ビューアー・ツールバーの「**Show/Hide trihedron**（軸の表示/非表示）」ボタンを使用して、軸を非表示にします。
- オブジェクトブラウザの「**Part set / Constructions**」から「**Origin**（原点）」オブジェクトを選択します。
- 「Origin（原点）」アイテムの左にある目のアイコンをクリックして、ビューに表示します。
- ビュー内の「Origin（原点）」と三角形の下の頂点の両方を選択します(複数選択の場合は**Shift**キーを使用します)。

![tutorial1_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/47af1cd5-0238-844d-e8fd-8899c870e9ba.png)
**「Origin（原点）」と三角形**

- スケッチツールバーの「**Coincident**（一致）」ボタンを使用して一致拘束を作成します。

![tutorial1_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/dc0703e1-a7aa-f67b-752f-38ea5e5ae126.png)
**原点に一致する三角形の頂点**

- 軸を表示します。
- **OY**軸とビューの三角形の上側の両方を選択します。
- スケッチツールバーの「**Pependicular**（直行）」ボタンを使用して直交拘束を作成します。

![tutorial1_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/c2b3bed3-dd59-a920-63b4-8060dde60dee.png)
**OY軸に直行な上三角側**

- 三角形の左側と上側を選択します。
- スケッチツールバーの「**Equal**（一致）」ボタンを使用して同一拘束を作成します。
- 同じ要領で左右を同じ長さにします。

![tutorial1_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/f4322ec1-bea3-5f2a-19d2-caf72827b49b.png)
**正三角形**

- 三角形の左側を選択します。
- プロパティパネルの「**Auxiliary**（補助）」チェックボックスをオンにし、「**Apply**（適用）」]ボタンをクリックします。

![tutorial1_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/235d4a0d-0620-b539-835e-949b09fa7f62.png)
**線のプロパティパネル**

- 同様に右側を補助にします。
![tutorial1_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/7af158d1-8685-a18a-39d1-4fb71bbd907c.png)
**側面は補助**

- スケッチツールバーの「**Angular copy**（角度複写）」ボタンを使用して、角度複写フィーチャの作成を開始します。
- プロパティパネルの「**Segments**（セグメント）」パラメータで三角形の上側を選択します。
- 回転の中心としてビューの原点を選択します。
- オブジェクトの**Total Nubmer**（総数）を6に設定します。

![](tutorial1_9.png)
![tutorial1_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/9a0b7034-6674-083c-d4ae-3a965ddda7b5.png)
**角度複写パラメータ**

- 「**Apply**（適用）」ボタンをクリックします。

![tutorial1_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/fa134032-0511-8141-be12-b91717824c29.png)
**正六角形**

- 六角形の上側を選択します。
- スケッチツールバーの「**Length**（長さ）」ボタンを使用して長さ拘束の作成を開始します。
- 長さの式を"a=115.4"に設定し、「**Enter**」を押します。

![tutorial1_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/b789b0cf-41eb-7a70-b352-4e16d743ea8d.png)
**完全固定正六角形**

- スケッチの作成を終了するには、スケッチプロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial1_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/4a030a25-c040-dc00-36b1-5257adeb72b4.png)
**終了したスケッチ**

- **Part_1/Parameters**ノードの下に作成されたパラメータ**a**に対応するアイテムを確認します。

![tutorial1_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/a5fce40b-e25c-acdf-813c-0622c0d6a454.png)
**スケッチ操作中に作成されたパラメータ**

ステップ2.ポリライン.
----------------

- メインメニューの「Part」＞「Parameter」でパラメータ作成を開始します。
- パラメータ名にh"、パラメータ式に"90"、コメントに「nut height（ナット高さ）」を設定します。

![tutorial2_0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/8d9572c4-cab9-180c-e90a-e3f40e44ec5c.png)
**パラメータ h=90 の作成**

- 「**Apply**（適用）」ボタンをクリックしてパラメータの作成を終了します。
- メインメニューの「Construction」＞「Point」から、ポイントx=50,y=0,z=0の作成を開始します。

![tutorial2_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/c4766a05-b07b-7259-9cf6-77e14be1d401.png)
**ポイント(50, 0, 0)の構築**

- 「**Apply**（適用）」ボタンをクリックしてポイントの作成を終了します。
- 同じ方法でポイント(80, 0, 0)、(112, 0, 13)、(112, 0, 48)、(80, 0, 63)、(80, 0, h)、(50, 0, h)を作成します。
- オブジェクトブラウザの**Part_1/Constructions**ノードの下で作成したポイントを選択します。
- マウスの右ボタンをクリックし、ポップアップ・メニューから「**Color1...**」アイテムを選択します。
- 青色を選択して「**OK**」ボタンをクリックします。

![tutorial2_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/bdb18eb2-b26c-2928-c22c-82fdcae1d86f.png)
**最初から作成されたポイント**

- メインメニューの「Build（作成）」＞「Polyline（ポリライン」を選択して、ポリラインの作成を開始します。
- 7つの点をすべて選択します(複数選択するには**Shift**キーを使用します)。
- 「**Closed**」チェック・ボックスをチェックします。

![tutorial2_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/b721c006-df5d-f025-8bb0-d167db2dc5dc.png)
**7点から閉じたポリラインの作成**

- プロパティパネルの「**Apply**（適用））」ボタンをクリックします。

![tutorial2_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/351c42ef-0c9c-3b87-57d2-af3fc16e97fe.png)
**閉じたポリライン**

ステップ3.フェイス（面）
------------

- メインメニューの「Build」＞「Face」からFace作成を開始します。
- オブジェクトブラウザの**Part_1/Results**ノードで**Polyline_1_1**を選択します。

![tutorial3_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/f8f0ee97-2195-6149-5e1e-451a1bb881dd.png)
**ポリラインからの面の作成**

- プロパティパネルの「**Apply** （適用）」ボタンをクリックします。

![tutorial3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/1054cc1f-3868-99ac-b196-35e821cfbea1.png)
**フェイス（面）**

ステップ4.Revolution（回転）
------------------

- メインメニューから回転の作成を開始「Features（フィーチャー）」＞「Revolution（回転）」
- ステップ3で作成したフェイス（面）をビューで選択します。
- プロパティパネルの軸入力フィールドをクリックし、ビューで**OZ**軸を選択します。

![tutorial4_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/cf7cb13f-6f5b-1860-e03c-8aa1ff5b7cb8.png)
**OZを中心とした360度の回転**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。

![tutorial4_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/64eeb375-25a9-8aea-1ca9-24ba55b2925f.png)
**フェイス（面）の回転によって作成されたソリッド**

ステップ5.Extrusion（押し出し）
-----------------

- メインメニューから「Features（フィーチャ）」＞「Extrusion（押し出し）」を選択して、押し出しの作成を開始します。
- ステップ1で作成した六角形を選択します。
- プロパティパネルの軸入力フィールドをクリックし、ビューで**OZ**軸を選択します。
- 「**By bounding planes and offsets option**（境界平面とオフセットオプション）」をチェックします。
- 回転形状の底面を**From** planeとして選択します。
- 回転シェイプの上面を**To** planeとして選択します。

![tutorial5_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/2aced094-30fd-0447-3024-8f3166744baa.png)
**境界平面によるOZ軸に沿った押し出し**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial5_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/29c93339-2479-a2ad-a3db-f2a222d56e8b.png)
**スケッチの押し出しによって作成されたソリッド**

ステップ6.Common（共通）
--------------

- メインメニューから「Features」＞「Common」を選択して、Commonの作成を開始します。
- 「**Part_1/Results**」ノードの下のオブジェクトブラウザでextrusionとrevolutionを選択します(複数選択するには**Shift**キーを使用します)。
![tutorial6_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/a4a63683-a4d0-67cd-30e8-880932f362e9.png)
**共通の作成*:

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial6_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/8c658287-14ab-e19a-e95c-62945895865e.png)
**revolution（回転）とextrusion（押し出し）の共通部分**

ステップ7.フィレット
--------------

- メインメニューで「Features」＞「Fillet」からフィレット作成を開始します。
- エッジを選択します。
![tutorial7_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/df04e2f2-ac1e-4670-48e6-6e631f93d86e.png)
**フィレットのエッジを選択**

- 「**Radius**（半径）」パラメータに10を選択します。
![tutorial7_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/e07b9d7f-7255-90ed-376e-ed98f5708f1f.png)
**半径=10のフィレット**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial7_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/83cac7b6-a973-fb69-5158-8ccbd75f3431.png)
**フィレット**

ステップ8.ボックス
-----------

- ビューをクリアするには、ビュー内を右クリックして、ポップアップ・メニューの「**Hide all**」アイテムを選択します。
- メインメニューで「Primitives」＞「Box」からボックス作成を開始します。
- **DX** = 10、**DY** = 120、**DZ** = 20に設定します。
![tutorial8_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/a8a2c150-088c-166e-4fca-9b42a90c35c1.png)
**ボックスの作成**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial8_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/a20283eb-cb1a-057e-241f-6f708a19a399.png)
**ボックス**

ステップ9.Translation（移動）
-------------------

- メインメニューでから「Part」＞「Translation」を選択して、移動の作成を開始します。
- プロパティパネルの上部にある「**By X,Y and Z dimensions**（X、Y、Zの寸法）」オプションでチェックします。
- ビューのボックスを選択します。
- **DX** = -10、**DY** = 20、**DZ** = 70と設定します。

![tutorial9_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/196849f9-2bce-c073-a740-4ccaa78d06dc.png)
**ボックス移動**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial9_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/2e0fa778-79ad-4065-b11c-0bc8c5150dc6.png)
**移動済みボックス**

ステップ10.Angular Copy（角度コピー）
---------------------

- メインメニューから「Part」＞「Angular Copy」によるAngular Copy（角度コピー）作成を開始します。
- ビューのボックスを選択します。
- プロパティパネルの軸入力フィールドをクリックし、ビューで**OZ**軸を選択します。
- **Nb copies**パラメータを6に設定します。
![tutorial10_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/88d1a8b6-1a65-897b-6519-8ab16417c938.png)

**OZの周りの角度コピー**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
![tutorial10_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/43cfc9ba-5ac7-6073-666e-09dbf19fdca4.png)
**コピーしたボックス**

ステップ11.カット
------------

- オブジェクトブラウザで**Part_1 / Results**ノードの下の**Fillet_1_1**アイテムを選択します。
- 結果アイテムの左にある目のアイコンをクリックして、ビューに表示します。
- メインメニューの「Features（フィーチャ）」＞「Cut（カット）」を選択して、カット作成を開始します。
- ビュー内のフィレットオブジェクトをメインオブジェクトとして選択
- オブジェクトブラウザでツールオブジェクトとしてangular copy（角度複写）オブジェクトを選択します。
![tutorial11_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/e90ddc7f-c3ed-b113-9e47-941817d6fcca.png)
**カットの作成**

- プロパティパネルの「**Apply**（適用）」ボタンをクリックします。
- 作成した「**Cut_1_1**」アイテムをオブジェクトブラウザの**Part_1/Results**ノードの下で選択します。
- マウスの右ボタンをクリックし、ポップアップ・メニューから「**Color...**（色...）」アイテムを選択します。
- 色（R: 255, G: 214, B: 0）色を設定して**OK**ボタンをクリックします。

![tutorial11_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201403/de4704c7-4b99-3ca4-c401-00c0b4910814.png)
**カット**

チュートリアルのすべての手順を再現したTUIスクリプトも**参照してください。**