Вы писали:
"... как дальше вытянуть в новый список только координаты начала сегментов".
Попробуйте, возможно, Вас устроит. (Функция не моя, а с одного из форумов).
;; Функция получения координат легкой полилинии (LWPOLYLINE) в WCS. Возвращает список 3D-точек
(defun get-lwpolyline-vertices (lwpoly / plinee elev vnv)
(setq plinee (entget lwpoly)
elev (cdr (assoc 38 plinee))
vnv (cdr (assoc 210 plinee))
)
(mapcar
(function (lambda (x) (trans (list (cadr x) (caddr x) elev) vnv 0)))
(vl-remove-if-not (function (lambda (x) (= (car x) 10))) plinee)
)
)
Или возможно Вас устроит следующий вариант:
;; Функция получения координаты заданной вершины полилинии
(defun get-coordinates-top-PLN (lwpoly k / sset-work coordinates-top-PLN j n i exit-volume)
(setq sset-work (entget lwpoly))
(setq coordinates-top-PLN '(-999.789 -999.789) j 1)
(while (and (assoc 10 sset-work) (<= j k))
(if (= j k)
(progn
(setq coordinates-top-PLN (assoc 10 sset-work))
(setq j (+ k 1))
)
(progn
(setq j (1+ j))
)
)