АutoLisp: создать функцию, рисующую разными цветами дугу

Узнай цену своей работы

Формулировка задачи:

АutoLISP

создать функцию, рисующую разными цветами дугу, имеющую заданные координаты начальной и конечной точки и требуемый центральный угол; конечную точку дуги отметить маркером, к ней по касательной провести отрезок заданной длины.

Решение задачи: «АutoLisp: создать функцию, рисующую разными цветами дугу»

textual
Листинг программы
  1. (defun F (spoint epoint alphadegree len)
  2.  (cond
  3.   ((equal spoint epoint) (prompt "\nStart point and end point coincide.\n"))
  4.   ((<= alphadegree 0) (prompt "\nInvalid central angle.\n"))
  5.   ((>= alphadegree 360) (prompt "\nInvalid central angle.\n"))
  6.   ((<= len 0) (prompt "\nInvalid line length.\n"))
  7.   (T
  8.    ((lambda (mpoint chord/2 alpha/2)
  9.      ((lambda (cpoint radius)
  10.        (list
  11.         (entmakex
  12.          (mapcar 'cons
  13.           (list
  14.            0
  15.            100 8 ; 62
  16.            100 10 40 210
  17.            100 50 51)
  18.           (list
  19.            "ARC"
  20.            "AcDbEntity" (getvar "CLAYER") ;
  21.            "AcDbCircle" cpoint radius '(0 0 1)
  22.            "AcDbArc" (angle cpoint spoint) (angle cpoint epoint))))
  23.         (entmakex
  24.          (mapcar 'cons
  25.           (list
  26.            0
  27.            100 8 ; 62
  28.            100 10 11 210)
  29.           (list
  30.            "LINE"
  31.            "AcDbEntity" (getvar "CLAYER") ;
  32.            "AcDbLine" epoint (polar epoint (+ (* 0.5 pi) (angle cpoint epoint)) len) '(0 0 1))))))
  33.       (polar mpoint (+ (* 0.5 pi) (angle spoint epoint)) (* chord/2 (/ (cos alpha/2) (sin alpha/2))))
  34.       (/ chord/2 (sin alpha/2))))
  35.     (mapcar
  36.     '(lambda (sum) (* 0.5 sum))
  37.      (mapcar '+ spoint epoint))
  38.     (* 0.5 (distance spoint epoint))
  39.     (* 0.5 pi (/ alphadegree 180.0))))))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы