概要 - 図形ハンドルとその使用(AutoLISP)

handent 関数は、特定のハンドルを持つ図形の名前を取得します。

図形名と同様、ハンドルは図面内で互いに重複することはありません。ただし、図形のハンドルはその図形が存在する限り不変です。特定のデータベースを操作する AutoLISP アプリケーションは、handent を使用することで、使用する図形の現在の名前を取得できます。AutoCAD の LIST[オブジェクト情報]コマンドを使用して、選択したオブジェクトのハンドルを取得できます。

次のサンプル コードは、ハンドル "5a2" に関連付けられている図形名を handent を使用して取得し、それを表示します。

(if (not (setq e1 (handent "5a2")))
  (princ "\nNo entity with that handle exists. ")
  (princ e1)
)

ある編集セッションで、上記のコードが次のように表示したとします。

<Entity name: 60004722>

同じ図面を使用する別の編集セッションでは、このコードはまったく異なる数字を表示するかもしれません。しかしどの場合でも、このコードは常に同じ図形にアクセスします。

handent 関数にはもう 1 つの使い方があります。図形は、entdel を使用してデータベースから削除できます。図形は、現在の作図セッションが終わるまでは名前削除(完全に削除)されません。つまり、handent を使用すると、削除した図形の名前を回復することができ、その後 entdel を再度呼び出すことで図形を図面に復元できます。

注: ハンドルは、従属図形を含むブロック定義のために用意されています。

XREF[外部参照]/[アタッチ(A)]により相互参照されている図面内の図形は、実際には現在の図面の一部ではありません。このような図形のハンドルは不変ですが、handent を使用してアクセスすることはできません。 ただし、INSERT[ブロック挿入]、INSERT *、XREF[外部参照]/[バインド(B)](XBIND[個別バインド])、または部分的な DXFIN[DXF 読み込み]を使用して図面を組み合わせた場合は、読み込まれた図形に新しいハンドル値が割り当てられます。その場合でも、現在の図面内で各ハンドルが重複することはありません。