Форум программистов, компьютерный форум, киберфорум
Наши страницы
AutoLISP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
innnochka
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
1

Построение соприкасающихся окружностей в Autolisp

02.11.2015, 09:31. Просмотров 823. Ответов 13
Метки нет (Все метки)

Помогите пожалуйста с заданием:
Построение параметрических чертежей в среде AutoCAD 2010
Задание: По радиусу R и натуральному числу N построить рисунок из N соприкасающихся
окружностей радиуса R, причем центры этих окружностей должны лежать на окружности с заданным центром.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2015, 09:31
Ответы с готовыми решениями:

AutoLisp (Autocad 2010) Задача по помещению окружностей в центр треугольника
Суть задания: нужно создать такую функцию, которая бы просматривала все...

Программа на AutoLisp: построение треугольников
В среде Автокада средствами Автолиспа построить множество пересекающихся...

Autolisp, построение семейства фигур
Никак не могу отладить код готовой программы, то, что должно получится...

Программа AutoLisp: построение неправильных невыпуклых пятиугольников
Решил пойти дальше по задачам и встал на вот этом: В среде Автокада...

Программа в AUTOLISP
Здравствуйте,не могли бы вы мне помочь вот с таким заданием для AutoLisp ...

13
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
02.11.2015, 19:42 2
Цитата Сообщение от innnochka Посмотреть сообщение
Помогите пожалуйста с заданием
Чем именно, написать скрипт за вас? Начинайте, я уже мысленно вас поддерживаю.
1
innnochka
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
04.11.2015, 14:26  [ТС] 3
как соединить окружности?
0
VH
423 / 252 / 22
Регистрация: 23.11.2010
Сообщений: 278
04.11.2015, 21:00 4
Лучший ответ Сообщение было отмечено _sg как решение

Решение

См. чертеж.
4
Миниатюры
Построение соприкасающихся окружностей в Autolisp  
innnochka
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
05.11.2015, 17:43  [ТС] 5
И как мне это поможет? Как в формулах вывести все радиусы и смещения? Чтобы они зависили от n и r! частный случай я сама могу изобразить на бумаге)
0
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
05.11.2015, 18:31 6
Цитата Сообщение от innnochka Посмотреть сообщение
И как мне это поможет?
Это не то что помогает, это уже фактически готовое решение. Расставляете окружности по вершинам правильного многоугольника, сколько вам их там надо. С радиусом равным половине грани многоугольника.
1
innnochka
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
15.11.2015, 09:25  [ТС] 7
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defun c:q1(/ R N)
    (COMMAND "LIMITS" '(0 0) '(320 200))
    (COMMAND "ZOOM" "A")
    (SETQ R (getreal "R= "))
    (SETQ N (getreal "N= "))
    (SETQ p1 (GETPOINT "Укажите стартовую точку на экране"))
    (setq P1B 0)
    (setq RN(/ R (SIN (/ pi n))))
   (command "circle" p1 RN)
   (setq ugol1 0)
   (setq ugol (/ (* pi 2) n))
   (setq j 0)
    (while (< j n)
        (setq pn (polar p1 ugol1 rn))
        (setq ugol1 (+ ugol1 ugol))
        (command "circle" pn R)
        (setq j (+ j 1))
      )
   (command "redraw"))
1
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
15.11.2015, 12:02 8
Лучший ответ Сообщение было отмечено innnochka как решение

Решение

Зачёт. Подравнял код.
Кликните здесь для просмотра всего текста
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun C:Q1 (/ r n p1 p1b rn ugol j pn)
  (setvar "cmdecho" 0)
  (setq osmode (getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (setq r (getreal "R= "))
  (setq n (getreal "N= "))
  (setq p1 (getpoint "Select the starting point: "))
  (setq p1b 0)
  (setq rn (/ r (sin (/ pi n))))
  (setq ugol1 0)
  (setq ugol (/ (* pi 2) n))
  (setq j 0)
    (while (< j n)
      (setq pn (polar p1 ugol1 rn))
      (setq ugol1 (+ ugol1 ugol))
      (command "_.circle" pn r)
      (setq j (+ j 1))
    )
  (command "_.zoom" "_e")
  (setvar "OSMODE" osmode)
  (setvar "cmdecho" 1)
  (princ)
);(C:Q1)
2
vlisp
500 / 474 / 111
Регистрация: 10.08.2015
Сообщений: 1,661
Завершенные тесты: 1
15.11.2015, 14:24 9
Цитата Сообщение от Lambdik Посмотреть сообщение
Зачёт.
ну, давайте разберемся, что тут не так
1. Что произойдет, если нужно будет отменить команду?
2. Что произойдет, если исходные данные введены не полностью?
3. Что произойдет, если данные ввести не неверно?
3. Какие ограничения по исходным данным упущены?
4. Как изменить базовый угол в скомпилированной программе при отсутствии исходника?
5. Зачем переменная p1b?
6. Что произойдет при использовании глобальных переменных?
7. В чем разница между испольванием setq в биаргументном и мультиаргументном видах
8. Зачем императивно включать эхо команд?
9. На каком основании применен цикл?
10. Зачем нужно зуммировать чертеж?
11. Зачем использовать англоязычные приглашения в интерактивных функциях?
12. Как правильно организовать пользовательский ввод для разных локалей автокада?
13. Сколько пунктов "3." в этом опроснике
0
innnochka
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
15.11.2015, 14:47  [ТС] 10
Этого не требуется никому.
0
vlisp
500 / 474 / 111
Регистрация: 10.08.2015
Сообщений: 1,661
Завершенные тесты: 1
15.11.2015, 15:27 11
Цитата Сообщение от innnochka Посмотреть сообщение
Этого не требуется никому.
ну, на нет и спроса нет, сдавать не мне, а вам. так что удачи.
а вопросы адресованы не вам, а тому, кто написал код
0
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
15.11.2015, 17:12 12
Цитата Сообщение от vlisp Посмотреть сообщение
ну, давайте разберемся, что тут не так
Чо ты пристал ко мне? Разбирайся, это же для меня код. Себе я бы написал совсем по другому. А ещё лучше напиши сам, как бы ты сделал.
1
innnochka
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
16.11.2015, 13:56  [ТС] 13
Сдала и на отлично)
1
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
16.11.2015, 14:16 14
Поздравляю! ) Я даже не сомневался.
0
16.11.2015, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2015, 14:16

Программа в AutoLISP
Известна длинна окружности. Найти площадь круга, ограниченного этой окружностью.

Запуск AutoLISP
Как запустить AutoLISP в AutoCad&quot;e. Я выбираю Сервис=Приложения=... и в...

Autolisp. Построении дуги
Пробовал сам, искал, но не выходит. Только начал изучать и тут уже такое...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru