概要 - 浮動ビューポート(VBA/ActiveX)

PViewport オブジェクトでモデルにアクセスするには、ActiveSpace プロパティを使用して、ペーパー空間からモデル空間に切り替えます。

その結果、レイアウト全体を表示したまま、モデルを編集することができます。PViewport では、Viewport オブジェクトの場合と同じように、編集やビューの変更ができます。さらに、各ビューポートをより細かくコントロールすることができます。たとえば、あるビューポートの画層を、他のビューポートは変更せずにフリーズまたは非表示にすることができます。ビューポート全体の表示/非表示を切り替えることもできます。また、ビューポート間でビューを合わせたり、ビューのレイアウト全体との相対尺度を設定したりできます。

注: ペーパー空間から、モデル空間の図形を編集することはできません。

下図は、ペーパー空間で 1 つのモデルの複数のビューがどのように表示されるかを示しています。各ペーパー空間のイメージでは、PViewport オブジェクトは異なるビューで表示されます。1 つのビューでは、寸法画層はフリーズされています。タイトル ブロック、境界、注釈は、ペーパー空間に描画されますが、モデル空間ビューでは表示されないことに注意してください。また、ビューポートの境界を含む画層は非表示になります。



Viewport オブジェクトで作業を行うときは、ActiveSpace プロパティを常に acModelSpace に設定しておく必要があります。PViewport オブジェクトで処理を行うときは、ActiveSpace プロパティは acModelSpace または acPaperSpace のどちらに設定してもよく、必要に応じてペーパー空間とモデル空間を切り替えることができます。

PViewport オブジェクト、Viewport オブジェクト、および ActiveSpace プロパティの設定
ビューポートのタイプ 状態 用途
PViewport ActiveSpace = acPaperspace 浮動ビューポートを作成して、ブロック、境界、注釈を追加し、レイアウトを調整します。編集はモデル空間には影響しません。
PViewport ActiveSpace = acModelspace 浮動ビューポート内で、モデルの編集またはビューの変更を行います。各ビューポートにおいて、画層をフリーズまたは非表示にすることができます。
Viewport ActiveSpace = acModelspace 画面をタイル ビューポートに分割し、モデルの複数のビューを編集することができます。

AutoCAD® ActiveX オートメーションでは、ActiveSpace プロパティを使用してシステム変数 TILEMODE をコントロールします。ThisDrawing.ActiveSpace = acModelSpace は、TILEMODE = on と同じ結果になります。ThisDrawing.ActiveSpace = acPaperSpace は、TILEMODE = off と同じ結果になります。

同様に AutoCAD では、MSpace プロパティは、MSPACE[モデル空間]コマンドおよび PSPACE[ペーパー空間]コマンドと同じです。ThisDrawing.MSpace = TRUE は、MSPACE[モデル空間]コマンドを使用した場合と同じく、モデル空間に切り替えます。ThisDrawing.MSpace = FALSE は、PSPACE[ペーパー空間]コマンドを使用した場合と同じく、ペーパー空間に切り替えます。

また、MSpace プロパティを TRUE に設定する前に、Display メソッドを使用する必要があります。Display メソッドは、モデル空間に切り替える前に設定する必要のあるグラフィックス設定を初期化します。AutoCAD では、これは自動的に行われます。しかし、ActiveX オートメーション インタフェースでは、プログラマがこの初期化を行わなければなりません。

注: MSpace プロパティを TRUE に設定するには、Display メソッドを使用して、少なくとも 1 つの PViewport オブジェクトで表示を有効にする必要があります。表示をオンにしないと、MSpace プロパティを設定するときにエラーが返されます。