1 / 1 / 1
Регистрация: 26.12.2011
Сообщений: 46
1

Autolisp Начертить полуокружность

01.06.2014, 20:36. Показов 2778. Ответов 4
Метки нет (Все метки)

Здравствуйте. Надо начертить полуокружность с центром в заданной точке. Длина и высота прямоугольной части фигуры задается пользователем, диаметр тоже, т.е. точки р1 и р2 не фиксированы и изменяются в зависимости от диаметра и высоты, так что команда arc не катит, потому что требует задания координат начала дуги. Как можно задать эту полуокружность, зная только ее центр и прямую, которая пересекает ее?
Миниатюры
Autolisp Начертить полуокружность  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2014, 20:36
Ответы с готовыми решениями:

как в T-flex нарисовать полуокружность в макросе
Как описать окружность я знаю (CircleOutline cc1 = new CircleOutline (tfdoc, fn1, 30);), а вот...

Программист AutoLisp
Нужен программист AutoLisp для написания одного несложного приложения под AutoCad

Фрактал в Autolisp
Добрый день, уважаемые посетители форума! Подскажите пожалуйста, как можно построить фрактал из...

AutoLisp: доработать меню
Дана задача выравнивание отрезков в автокаде, сам код я написал осталось дописать меню, чтобы можно...

4
3566 / 2193 / 737
Регистрация: 02.11.2012
Сообщений: 5,778
02.06.2014, 10:43 2
почему же arc не опдходит?
1. _arc
2. ПКМ - Центр
3. координаты 0.0
4. следующее значение равно радиусу,вводим его и жмем Tab, вводим угол
Код
ASIN(В/2/R)*180/ПИ()
5. задаем угол найденный по формуле.
Код
180-2*(ASIN(В/2/R)*180/ПИ())
, где В-высота прямоугольника, R - радиус круга.
как это записывается на лиспе не скажу.
1
VH
424 / 253 / 22
Регистрация: 23.11.2010
Сообщений: 278
03.06.2014, 16:56 3
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(defun C:F ()
 ((lambda (P D H)
   ((lambda (delta)
     ((lambda (alpha gamma)
       (entmake
        (mapcar 'cons
         (list 0 100 100 10 40 210 100 50 51)
         (list "ARC" "AcDbEntity" "AcDbCircle" P (* 0.5 D) '(0 0 1) "AcDbArc" alpha (+ alpha (* 2 gamma))))))
      (atan H delta)
      (atan delta H)))
    (sqrt (- (* D D) (* H H)))))
  (getpoint "\nCenter point: ")
  (getdist "\nDiameter: ")
  (getdist "\nHeight: "))
 (prin1)
)
1
1 / 1 / 1
Регистрация: 26.12.2011
Сообщений: 46
03.06.2014, 17:07  [ТС] 4
Спасибо за ответы! Решил задачу с помощью теоремы Пифагора и функции arc с параметрами центр, начало, конец

Lisp
1
2
3
4
5
(setq pt5 (list (+ (nth 0 pt1) (/ L1 2)) (+ (nth 1 pt1) (/ H1 2))))
(setq pt6 (list (- (nth 0 pt5) (sqrt (- (expt (/ D2 2) 2) (expt (/ H1 2) 2)))) (nth 1 pt3)))
(setq pt7 (list (+ (nth 0 pt5) (sqrt (- (expt (/ D2 2) 2) (expt (/ H1 2) 2)))) (nth 1 pt3)))
 
(command "_arc" "_c" pt5 pt7 pt6)
Миниатюры
Autolisp Начертить полуокружность  
0
Заблокирован
06.06.2014, 22:53 5
Вообще-то, для рисования таких деталей есть команда _pline
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2014, 22:53
Помогаю со студенческими работами здесь

Неверная функция AutoLisp
Добрый день. Подскажите пожалуйста, почему программа на AutoLisp ругается на строку (setq xxx 1)...

Штриховка фигуры AutoLisp
Здравствуйте! Подскажите как заштриховать круг? (defun main() (setq a (list 0 0)) (command...

Нужен Программист autolisp
Задача следующая: Имеем файл в формате DWG, в файле нарисованы карты участков с помощью полилиний...

Нанесение размеров AutoLisp
Как нанести такие размеры как на чертеже? Диаметры и линейные размеры я начертил, а вот как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru