Тема: LISP. Отрисовка произвольной трассы из отрезков и дуг.
;********** SETI.LSP *********************************** ; Программа отрисовки сети из сопряженных отрезков. ; Автор Громов Владимир 2009 г. ; Макрос для загрузки: ; ^C^C(if (not C:СЕТИ) (load "seti")) СЕТИ ; (defun C:СЕТИ ( / echo rd pt1 pt2 pt3 ent1 ent2) (setq echo (getvar "CMDECHO")) (setvar "CMDECHO" 0) (if (null rds) (setq rds "150")) (princ (strcat "\n Радиус сопряжения <" rds ">: ")) (setq rd (getint)) (if (= rd nil) (setq rd (atoi rds)) (setq rds (itoa rd))) (vl-cmdf "_FILLET" "_r" rd) (initget 7) (setq pt1 (getpoint "\n Начальная точка: ")) (initget 7) (setq pt2 (getpoint pt1 "\n Вторая точка: ")) (vl-cmdf "_LINE" pt1 pt2 "") (setq ent1 (entlast)) (initget 7) (setq pt3 (getpoint pt2 "\n Следующая точка: ")) (vl-cmdf "_LINE" pt2 pt3 "") (setq ent2 (entlast)) (vl-cmdf "_fillet" ent1 ent2) (while pt3 (setq pt2 pt3) (setq ent1 ent2) (setq pt3 (getpoint pt2 "\n Следующая точка <Enter-Конец> ")) (if pt3 (progn (vl-cmdf "_LINE" pt2 pt3 "") (setq ent2 (entlast)) (vl-cmdf "_fillet" ent1 ent2) ) (princ "\n Конец.") ) ) (setvar "CMDECHO" echo) (princ) ) (princ "\n Ввести в командной строке СЕТИ")