Форум программистов, компьютерный форум, киберфорум
Наши страницы
AutoLISP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
TigerSET
4 / 4 / 0
Регистрация: 28.12.2013
Сообщений: 15
1

Программа на AutoLisp: построение треугольников

03.07.2015, 15:01. Просмотров 1783. Ответов 5
Метки нет (Все метки)

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

Сижу уже неделю.
Рисовать научился, но в какой-то момент встаю в ступор и начинаю с начала. (
Помогите, если не трудно, пока я комп не разбил. Жалко. Он хороший. ))

Добавлено через 20 минут
Дополню немного вопрос...
Вот к примеру код:
Lisp
1
2
3
(defun tryangl (n a)
 (command "_.polygon" n "С" "0,0,0" "@300<45")
)
Рисует треугольник со стороной 300 с поворотом на 45град.
1. Как вместо @300 использовать значение переменной "а"
2. У меня русскоязычный AutoCad и используется русская буква "C" после переменной "n", а если будет английская версия? Есть какая-то возможность использовать этот код в любой версии?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2015, 15:01
Ответы с готовыми решениями:

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

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

Построение соприкасающихся окружностей в Autolisp
Помогите пожалуйста с заданием: Построение параметрических чертежей в среде AutoCAD 2010...

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

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

5
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
03.07.2015, 16:21 2
Цитата Сообщение от TigerSET Посмотреть сообщение
Область пересечения должна представлять некоторую фигуру
обтекаемая фраза
Цитата Сообщение от TigerSET Посмотреть сообщение
Вот к примеру код:
n это что количество треугольников? У треугольника 3 стороны, там должно быть 3.

Вот фрагмент:
Lisp
1
2
3
4
5
6
7
8
((lambda (/ p s)
  ;; точка треугольника, переменная
  (setq p (getpoint "\nУкажите точку: "))
  ;; длина стороны треугольника
  (setq s (getint "\nУкажите длину стороны треугольника: "))
  ;; рисование треугольника
  (command "_.polygon" 3 p "" s)
))
Добавлено через 16 минут
Читай подсказки из консоли.
2
TigerSET
4 / 4 / 0
Регистрация: 28.12.2013
Сообщений: 15
03.07.2015, 16:26  [ТС] 3
Цитата Сообщение от Lambdik Посмотреть сообщение
обтекаемая фраза
Ну это значит что фигура, образованная пересечениями треугольников не важна. Главное чтобы не точка.

Цитата Сообщение от Lambdik Посмотреть сообщение
n это что количество треугольников? У треугольника 3 стороны, там должно быть 3.
"n" это количество граней. В данном случае можно вообще не использовать а поставить как у Вас "3".

Цитата Сообщение от Lambdik Посмотреть сообщение
Вот фрагмент:
Фрагмент к сожалению ни чего не дал. Вопрос о повороте треугольника на нужный градус остался.
0
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
03.07.2015, 18:28 4
Цитата Сообщение от TigerSET Посмотреть сообщение
Вопрос о повороте треугольника на нужный градус
Вводи построчно.
Lisp
1
2
3
4
5
6
7
(command "_.polygon" 3 "0,0,0" "" 100)
 
(setq obj (entlast))
 
(setq a 45)
 
(command "_.rotate" obj "" "0,0,0" a)
Добавлено через 2 минуты
Почитай
2
TigerSET
4 / 4 / 0
Регистрация: 28.12.2013
Сообщений: 15
03.07.2015, 18:37  [ТС] 5
Ага, спасибо за ссылку! )

В общем говоря по-русски:
Создать треугольник, obj присвоить последний созданный объект и повернуть на 45 через переменную a. )))

Видать надо делать перерыв. Про такой вариант я чет не думал.

Дальше я уже сам.
Благодарю!
1
TigerSET
4 / 4 / 0
Регистрация: 28.12.2013
Сообщений: 15
07.07.2015, 11:30  [ТС] 6
Итак, подведу итог.

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;; l - длина грани
;; k - количество треугольников
;; можно конечно воткнуть ещё переменную определяющую количество граней, ну да ладно. 
;; Вопрос был про треугольники.
 
(defun tryangl (l k)
  (setq r (/ l (sqrt 3)))
  (setq a (/ 360 k))
  (setq i 1)
  (setq ik (+ k 1))
  (while (< i ik)
    (command "_.polygon" 3 "0,0,0" "" r)
    (setq obj (entlast))
      (command "_.rotate" obj "" "0,0,0" (* a i))
      (setq Curr_CECOLOR (getvar "CECOLOR"))
      (setvar "CECOLOR" (itoa i))
      (command "_BHATCH" "_Properties" "_SOLID" (list 0 0) "")
      (setvar "CECOLOR" Curr_CECOLOR)
      (command "_.hideobjects" "_all" "")
      (setq i (+ i 1))
  )
  (command "_UnIsolateObjects")
)
1
07.07.2015, 11:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2015, 11:30

Программа-калькулятор AUTOLISP
Пожалуйста,помогите!Срочно нужна программа-калькулятор на AUTOLISP в среде AUTOCAD выполняющая...

Построение треугольников
1.Постройте треугольник ABC,если даны a,угол А и отрезок q такой,что b^2+c^=q^2. 2.Постройте...

Построение многоугольника из треугольников
Дана последовательность точек, причём если каждую последующую точку соединить с предыдущей, а...


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

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

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