АutoLisp: создать функцию, рисующую разными цветами дугу
Формулировка задачи:
АutoLISP
создать функцию, рисующую разными цветами дугу, имеющую заданные координаты начальной и конечной точки и требуемый центральный угол; конечную точку дуги отметить маркером, к ней по касательной провести отрезок заданной длины.Решение задачи: «АutoLisp: создать функцию, рисующую разными цветами дугу»
textual
Листинг программы
(defun F (spoint epoint alphadegree len) (cond ((equal spoint epoint) (prompt "\nStart point and end point coincide.\n")) ((<= alphadegree 0) (prompt "\nInvalid central angle.\n")) ((>= alphadegree 360) (prompt "\nInvalid central angle.\n")) ((<= len 0) (prompt "\nInvalid line length.\n")) (T ((lambda (mpoint chord/2 alpha/2) ((lambda (cpoint radius) (list (entmakex (mapcar 'cons (list 0 100 8 ; 62 100 10 40 210 100 50 51) (list "ARC" "AcDbEntity" (getvar "CLAYER") ; "AcDbCircle" cpoint radius '(0 0 1) "AcDbArc" (angle cpoint spoint) (angle cpoint epoint)))) (entmakex (mapcar 'cons (list 0 100 8 ; 62 100 10 11 210) (list "LINE" "AcDbEntity" (getvar "CLAYER") ; "AcDbLine" epoint (polar epoint (+ (* 0.5 pi) (angle cpoint epoint)) len) '(0 0 1)))))) (polar mpoint (+ (* 0.5 pi) (angle spoint epoint)) (* chord/2 (/ (cos alpha/2) (sin alpha/2)))) (/ chord/2 (sin alpha/2)))) (mapcar '(lambda (sum) (* 0.5 sum)) (mapcar '+ spoint epoint)) (* 0.5 (distance spoint epoint)) (* 0.5 pi (/ alphadegree 180.0))))))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д