Цитата

«Качество надо производить, а не обеспечивать в результате контроля»(с)nmivan

вторник, 12 февраля 2019 г.

Потуги в Лисп

На dwg.ru задали вопрос : 
Как оптимизировать оцифровку точек и полилиний с координатой Z
 ( http://forum.dwg.ru/showthread.php?t=151302 )

Я от Лисп бесконечно далек, но решил выхватить шашку и потратить десяток минут на разбор...

(defun c:addpointz (/ ent z_coord pt)
  (while (progn (initget "Выход")
                (vl-cmdf "_.POINT" (getpoint "\nРисовать точку <Выход>: "))
                (setq ent (entlast))
                (setq z_coord(getreal "Координата Z: ")) ;Z
                (setq pt (cdr(assoc 10 (entget ent))))
                ((lambda (ent-list)
                    (entmod (subst
                        (cons 10 (list (car pt) (cadr pt) z_coord))
                        (assoc 10 ent-list)
                    ent-list)))
                (entget ent))
         )
     (while (not (zerop (getvar "cmdactive"))) (vl-cmdf pause))
  )
  (princ)
)

Вроде работает и делает то, что нужно... но там е на форуме есть и более простое решение:
*^C^C_point;\_change;_l;;_p;_el;\;