ブロック

提供:GizmoLabs - だいたい CAD LISP なサイト

DWG でのブロックについて

  • ブロックには 4 つの種類(単純なブロック、外部参照ブロック、レイアウト ブロック、ダイナミック ブロック)がある。
  • 1 つのブロックに含めることができるオブジェクトの数に制限はない。

単純なブロック

図面の中に、単純なブロックを、挿入し、尺度設定や、回転させることができる。 ブロック参照を構成オブジェクトに分解して修正し、ブロックを定義し直すことができる。 単純なブロックは、現在の図面のジオメトリから、または他の CAD 図面を使用して定義することができる。 他の図面を使用してブロックを作成する場合は、新しい単純なブロックは現在の図面のデータベースに保存されるため、元の図面が変更されても更新されない。

  • 単純なブロックのうち、名前のない匿名なものとして扱われるブロックがある。これらはコピペ操作やプログラムから生成されたりする。
    • *U### =匿名ブロック(中心線など)
    • *E### =匿名ブロック(不均一にスケーリングされたもの)
    • *D### =匿名寸法
    • *X### =匿名ハッチング
    • *A### =匿名グループ, DGN 線種ブロック
    • *T### =匿名表
    • *S### =匿名ブロック(3DView のもの Fusion360 で作られる)


ActiveX

ActiveX のオブジェクトのコレクションで、オブジェクトを関連付けて単一のオブジェクトまたはブロック定義を形成することができる。 単純なブロックのインスタンスを現在の図面に挿入すると、BlockReference オブジェクトが作成される。


LISP

単純なブロックは、LISP の entmake からブロック定義を形成することができる。

外部参照ブロック

外部参照ブロックは別の図面から現在の図面に外部リンクしている。外部参照ブロックは、ジオメトリそのものではなく、ジオメトリへのリンクを示しているため、元の図面が変更されるたびに更新される。(更新のタイミングは CAD の動作による)


ActiveX

外部参照ブロックのインスタンスを現在の図面に挿入すると、 ExternalReference オブジェクトが作成される。

レイアウト ブロック

レイアウト ブロックは、モデル空間レイアウトおよびペーパー空間レイアウトのジオメトリを示している。 これらのブロックには Layout オブジェクトが関連付けられている。 Layout オブジェクトには印刷設定および他のレイアウト定義の情報が含まれている。 アクティブなペーパー空間レイアウトのブロックは、常に *PAPER_SPACE という名前になり、その他のペーパー空間レイアウトのブロックには、*PAPER_SPACEn(n には整数が入る)という名前が付く。 ブロック名は *PAPER_SPACE0 から始まり、新しいレイアウトが挿入されるたびに、整数が 1 つずつ増加する。

既定では、新しい図面のレイアウト ブロックは次のような名前になっている。

  • *MODEL_SPACE - モデル空間レイアウト。1 つの図面に付き、モデル空間は 1 つのみ。
  • *PAPER_SPACE - 最初に作成されたペーパー空間レイアウト。モデル空間レイアウトがアクティブの場合、このブロックには最後にアクティブだったペーパー空間レイアウトが含まれている。このブロックは、 PaperSpace コレクションに対応している。
  • *PAPER_SPACE0 - 作成された 2 番目のペーパー空間。このレイアウトがアクティブになると、このブロックは *PAPER_SPACE に名前変更され、PaperSpace コレクションからアクセスできるようになる。最初に作成されたレイアウトのブロックは、*PAPER_SPACE0 に名前変更される。

新しいレイアウトをアクティブにすると、そのレイアウトとそれまでアクティブであったレイアウトのブロック名が交換される。このため、アクティブなレイアウトのブロックは、常に *PAPER_SPACE という名前になる。たとえば、Layout1 が現在アクティブで、Layout2 には *PAPER_SPACE0 というブロックが関連付けられているとして、Layout2 をアクティブにすると、Layout2 のブロックは *PAPER_SPACE に、Layout1 のブロックは *PAPER_SPACE0 に名前変更される。

ActiveX

  • *MODEL_SPACE は、 ModelSpace コレクションに対応している。
  • *PAPER_SPACE は、 PaperSpace コレクションに対応している。

LISP

MEMO:後で書く

ダイナミック ブロック

ダイナミック ブロックは、単純なブロックの潜在力と柔軟さを向上させることによって強化したもの。 ダイナミック ブロックのインスタンスの内部ジオメトリは、その基本定義および他のインスタンスとは別に、独自に調整することができる。 この柔軟性は、ダイナミック ブロックの基本コンセプトとなっている。


ActiveX

ダイナミック ブロックのインスタンスを現在の図面に挿入すると、BlockReference オブジェクトが作成される。ブロック参照から、 DynamicBlockReferenceProperty オブジェクトを取得することができる。


LISP

MEMO:後で書く

ブロックタイプの識別

ActiveX

ブロックのタイプを識別するには、 IsLayout 、 IsXRef 、および IsDynamicBlock プロパティを使用する。 これらのプロパティが False である場合、このブロックは単純なブロックである。 IsXRef プロパティが True である場合、このブロックは外部参照である。 IsLayout プロパティが True である場合、このブロックはレイアウトに関連付けられたすべてのジオメトリを含む。 IsDynamicBlock プロパティが True である場合、このブロックはダイナミック ブロックである。

挿入

ActiveX

単純なブロック、外部参照、またはダイナミック ブロックを図面に挿入するには、 InsertBlock メソッドを使用する。 新しいレイアウト ブロックを作成するには、 Add メソッドを使用して Layouts コレクションに新しいレイアウトを追加する。 新しいレイアウトが作成されると、レイアウトに関連付けられたブロックも作成される。

LISP

単純なブロック、外部参照、またはダイナミック ブロックを図面に挿入するには、 entmake メソッドを使用する。