2016年1月17日日曜日

ファミリ作成チュートリアル(3)-回転するファミリ

片開き戸の記号を作成します。
記号は開きの角度を調整できるようにします。回転のファミリは中心を設定するところにちょっとしたコツが必要です。

記号の作成

(1) 「詳細項目(メートル単位).rft」のテンプレートを使って新規にファミリを作成します。
(2) 図のように参照面を作成し、均等ロックし、インスタンスパラメーターを追加して「記号_幅」とします。

(3) 円弧の部分を作成します。[作成]-[詳細]-[線分]で[中心-両端指定による円弧]で図のように円弧を作成します。この時表示される、鍵マーク()をクリックしてロックします。
(4) 上の図で、をクリックして、寸法を実体化し、半径には(2)で作成した「記号_幅」のパラメーター、角度には新たにインスタンスパラメーターを追加して「記号_角度」とします。
(5) 円弧を選択し、プロパティパレットの「中心マークを表示」をオンにする。

(6) 中心マークと参照面に寸法を作成して、0でロックする。ロックが終わったら「中心マークを表示」をオフにする。
円弧の中心点を0寸法を使って参照面にロック

(7)次に直線を使って円弧の端点から、下の図のように中心に近い位置まで線分を作成し、端点と円弧の中心に寸法を二つ作成します。
(8) 作成した線分をクリックし、寸法の値を0にしてロックします。これで回転の中心を固定することができます。
寸法を0にしてロック
(9) [プロパティ]-[ファミリタイプ]でパラメーターの値を変更して、振る舞いが正しいことを確認します。

以上のように、回転する要素がある場合は、線分、または参照線使って、その端点を参照面に確実にロックすることが必要です。

入力値の制限

記号_角度の値を0°にしてみると、エラーになります。

よく「拘束が満たされていません」という表示になりますが、たいていの場合これは「ある要素が描画不可能な状態になっている」という意味ととらえていいでしょう。

この場合は、角度が0なので、円弧の長さも0となって描画できなくなり、このようなエラーが表示されます。そこで、角度の値がマイナスなどにならないように、10°~180°の間に入力値を制限してみます。

(1) [プロパティ]-[ファミリタイプ]で、入力用のインスタンスパラメーターとして、「s記号_角度」を作成します。
パラメータータイプ:角度、パラメーターグループ:拘束
(2) 「記号_角度」の「式」に以下を設定します。

  • if(s記号_角度<10,10,if(s記号_角度>180,180,s記号_角度)

この式はif文がネスト(入れ子)になっています。意味は、s記号_角度が10未満であれば10を、180を超える場合は180を、そうでなければ入力値を「記号_角度」に入力する、という意味です。
式を設定する。°は自動でつく
(3) s記号_角度に0や180より大きな値を入れてみて、記号_角度の値に制限がかかっていることを確認してください。

最後にプロジェクトにロードして、振る舞いが正しいかどうか入念に確認します。

プロジェクトにロードして振る舞いを確認する。
回転を含むファミリは、端点の拘束が重要になります。位置合わせでもロックはできますが、ゼロ寸法によるロックのほうがより明快です。
また、参照面は端部を持たない無限の面なので、回転の中心に固定することはできません。この場合は「参照線」を用いて端部を回転中心に拘束するとよいでしょう。