・ POLYLINE の頂点座標を取得する
POLYLINEは、エンティティーのデータベースに従属図形
"VERTEX" と "SEQEND" を持ちます
"VERTEX" には、頂点座標のリストを含みますので、"SEQEND"が現れるまで、"VERTEX"
のエンティティーデータのグループコード10
を取得すれば、頂点座標のリストを得ることができます
(defun Jo_pl_list ( / en pt_list Jof_pt_list)
;サブルーチン PLINE の頂点座標リストを取得 ;
(defun Jof_pt_list ( en / ed pt_list )
(while (= "VERTEX" (cdr (assoc 0 (setq ed (entget en))))) ;VERTEXなら ;
(setq pt_list (append pt_list (list (cdr (assoc 10 ed))))) ;頂点座標をを pt_list に追加 ;
(setq en (entnext en))
)
pt_list
)
;メインルーチン ;
(if
(and
(setq en (car (entsel "\nPOLYLINEを選択")))
(= "POLYLINE" (cdr (assoc 0 (entget en))))
)
(setq pt_list (Jof_pt_list (entnext en)))
)
(mapcar 'print pt_list)
(princ)
)
参考文献:「おぉとりすぷの広場」 記事番号<17407> <17411><17429>