Nentsel

提供:GizmoLabs - だいたい CAD LISP なサイト
2010年7月5日 (月) 10:51時点におけるGizmon (トーク | 投稿記録)による版
構文
(nentsel [msg])


機能
点を指定して図形を選択するよう要求し、複合化オブジェクトに含まれる定義データにアクセスできるようにする。ユーザが特に要求しない限り、現在の O スナップ モードは無視される。直前に呼び出した initget 関数でキーワードを定義することにより、でキーワードが入力できるようになる。
引数
  • msg : プロンプトとして表示する文字列。 省略した場合、プロンプト「オブジェクトを選択:」が表示される。
戻り値
選択した図形が複合化図形(3D ポリラインやブロック)以外の場合、entsel 関数と同じ情報を返す。
選択した図形が 3D ポリラインの場合、従属図形(頂点)の名前と指定した点の名前を含むリストを返す。これは entsel 関数が返すリストに似ているが、ポリライン ヘッダではなく選択した頂点の名前を返すという点が異なる。nentsel 関数は常に、選択した 3Dポリライン セグメントの開始頂点を返す。たとえば、ポリラインの 3 番目のセグメントが選択されると、3 番目の頂点を返す。3D ポリラインの場合、nentsel 関数が SEQEND 従属図形を返すことはない。
注: Lwpolyline 図形は、図面データベース内で単一の図形として定義されており、従属図形を含まない。
ブロック参照の属性が選択されると、属性の名前とクリックした点を返す。選択したオブジェクトが属性ではなくブロック参照の構成要素の場合、4 つの要素が含まれるリストを返す。ブロック内のオブジェクトの選択によって返されるリストの 1 番目の要素は、選択された図形の名前。2 番目の要素は、オブジェクトを選択するために使用された点の座標が含まれるリスト。3 番目の要素は、モデル座標系からワールド座標系への変換マトリックス。 これは 4 つのサブリストから構成されるリストで、各サブリストには 1 組の座標が含まれている。このマトリックスを使用すると、図形定義データ点をモデル座標系(MCS)と呼ばれる内部座標系からワールド座標系(WCS)に変換できる。選択された図形を含むブロックの挿入点は、MCS の原点になる。ブロックを作成したときの ユーザ座標系(UCS)の方向によって、MCS の軸の方向が決定される。注: この種類のマトリックスを使用する LISP 関数はnentsel だけ。nentselp は、他の LISP 関数で使用されるものと同様のマトリックスを返す。4 番目の要素は、選択されたオブジェクトが含まれるブロックの図形名を含むリスト。
選択されたオブジェクトがネストされたブロックに含まれている場合(ブロック内のブロック)、選択されたオブジェクトがネストされているすべてのブロックの図形名もリストに含まれる。これは、一番内側のブロックから始まり、図面に挿入されたブロック名が見つかるまで外側のブロックに続く。


サンプル
複数のセグメントを使用して 3D ポリラインを作成してから、次の関数をロードして実行し、ポリラインの異なるセグメントを選択する。
線をクリックした後、同じセグメントをもう一度クリックし、従属図形のハンドルを確認する。また、ライトウェイト ポリラインを使用すると違いを確認できる。
 (defun c:subent ()
   (while   
     (setq Ent (entsel "¥n図形をクリック: "))
     (print (strcat "図形のハンドル: " 
     (cdr (assoc 5 (entget (car Ent))))))
   )
   (while   
     (setq Ent (nentsel "¥n図形または従属図形をクリック: "))
     (print (strcat "図形または従属図形のハンドル: " 
     (cdr (assoc 5 (entget (car Ent))))))
   )
   (prompt "¥n完了.")
   (princ)
 )



関連事項