ユーザーはシェイプを反転したり、回転させたりすることがあります。このような操作に対応したシェイプを設計する場合もありますが、シェイプをこのような操作から保護しなければならないこともあります。
シェイプを設計する場合、ユーザーがシェイプを反転あるいは回転する方法を予測し,それに適した動作を設計する必要があります。[図形情報] セクションには、親と相対してシェイプの向きを記録します。ユーザーがシェイプを反転したり、回転する場合、そのシェイプの [図形情報] セクションには、実際に発生した変更が反映されます。
このセクションの内容...
シェイプを反転させると、[FlipX] または [FlipY] セルの値が TRUE に変更されます。シェイプの原点の親座標は変更されますが、シェイプの Pin の位置は、シェイプのローカル座標あるいは親座標のどちらに対しても変更されません。次の図では、シェイプを回転させたときの、[FlipX] または [FlipY] セルの動作を分かりやすく示しています。
[FlipX] と [FlipY] 値が変更された、回転したシェイプのローカル座標
ユーザーが反転可能なシェイプを設計する場合は、使用された方法によって、発生する動作が異なることを認識しておく必要があります。シェイプを反転するには、ユーザーは次のことを行うことができます。
ユーザーがシェイプを回転させる際に前述の方法のどちらを使用したかによって、2 つの異なる変形シェイプができます。
[左右反転] によりシェイプは反転し、回転します。
[アクション] ツールバーまたは [図形] メニューから [上下反転] を使用すると、[FlipY] セルの値が切り替わり、[Angle] セルの値が「-Angle」に変更されます。
シェイプを回転するには、ユーザーは、回転ツールを用いてシェイプハンドルをドラッグしたり、あるいは [図形サイズ・位置・回転] ウィンドウを使用することができます。([図形サイズ・位置・回転] ウィンドウを表示するには、[表示] メニューから [ウィンドウ] をポイントし、[図形サイズ・位置・回転] をクリックします。)シェイプが回転すると、シェイプの [Angle] セルの値により親座標系と相対してシェイプのローカル座標系の回転が表されます。
シェイプは Pin を中心に回転します。シェイプの原点の親座標はシェイプが回転するに伴い変更されますが、シェイプの Pin はローカル座標あるいは親座標のどちらに対しても変更されません。
一部の Visio® 製品では、特に指定しない限り、ぺージの回転はデフォルトで有効になっています。ぺージの回転を可能に (あるいは不可能に) するには、[ツール] メニューから [オプション] をポイントして、[図面] タブをクリックし、[ぺージの回転を許可] をオン (またはオフ) にします。
ぺージには、シェイプシート (ShapeSheet ®) ウィンドウに [図形情報] セクションが表示されないので、シェイプの場合と違い [Angle] セルは表示することも編集することもできません。しかし、PageSheet プロパティからオートメーションを使用して [Angle] セルにアクセスすることができます。オートメーションから数式にアクセスする方法の詳細については、「第 17 章 数式のオートメーション化」を参照してください。
ユーザーがシェイプを反転したり、回転すると予想される場合、さまざまな角度や向きで動作するようにシェイプを設計することができます。たとえば、ローカル Pin を移動することによって、シェイプの反転や回転の動作を変えることができます。次の図では、ユーザーがトランジスタの図形を上下に反転しても、水平方向のリードは移動しません。シェイプを左右に反転した場合は、垂直方向のリードは移動しません。この動作によって、トランジスタがカスケード接続されている電子回路図で、トランジスタを適切に反転することができます。
元のトランジスタシェイプ、上下反転、左右反転
回転ツールを使用してシェイプの Pin を新しい位置にドラッグすることができます。こうすると、[PinX] と [PinY] の値は変更されますが、Pin の移動を打ち消すために [LocPinX] と [LocPinY] の数式も変更されるので、ぺージ上でのシェイプの位置は変わりません。[LocPinX] セルと [LocPinY] セルの数式だけを変更することによって Pin を移動することもできます。これにより、ローカル Pin と親 Pin の関係が変更され、図面ぺージのシェイプも移動します。たとえば、次の数式を使用して、トランジスタシェイプのオフセットを表すことができます。
LocPinX = Width * 0.75
LocPinY = Height * 0.5
次の図に示すトランジスタの図形のように、通常、90 度の倍数で回転されるシェイプがあります。このようなシェイプは、図形枠がグリッド線と一致し、Pin と接続ポイントがグリッド ポイントに一致するように設計しておくと、ユーザーがシェイプを反転したり、回転する際にシェイプを扱いやすくなります。
90 度の倍数の角度で回転するトランジスタの図形
図形枠とグリッドの使用方法の詳細については、「第 11 章 図面内での図形の配置」を参照してください。
[Angle] セルの数式をガードして、ユーザーがシェイプを回転できないようにすることができます。
Angle = GUARD(0 deg.)
これでもシェイプは反転できますが、ユーザーは、シェイプシート ウィンドウの [Angle] 数式を編集しなければ、回転ツールや [図形] メニューから [回転] を使用してシェイプを回転することはできません。このテクニックは、簡単ですが理想的とはいえません。なぜなら、回転ツールがアクティブであればシェイプには回転ハンドルが表示され、しかも、[回転] コマンド類はメニューで選択可能にもかかわらず、コマンドは何の効果もないので、ユーザーを困惑させてしまいます。
[保護] ダイアログ ボックスで [回転] をオンにする ([書式] メニューから [保護] を選択する) ことによって、あるいは [LockRotate] セルをゼロ以外の値に設定することによって、シェイプを回転に対してロックするほうがテクニックとしては効果的です。回転ツールがアクティブの場合は、シェイプの回転ハンドルに"錠"マークが表示され、ユーザーはロックされていることを視覚的に確認できます。これは [Angle] セルの値をガードしている場合には表示されません。
ただし、ロックをしても [上下反転] や [左右反転] に伴うシェイプの回転を禁止することはできません。シェイプの反転を禁止するには、[FlipX] セルと [FlipY] セルの数式をガードしてください。
FlipX = GUARD(FALSE)
FlipY = GUARD(FALSE)
[保護] ダイアログ ボックスには、これに相当するオプションはありません。