Форум программистов, компьютерный форум, киберфорум
Наши страницы
AutoLISP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
INIFREY
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 33
Завершенные тесты: 1
1

Отрисовка поверхности трохоиды (AutoLISP, 3dmesh)

25.11.2015, 14:12. Просмотров 548. Ответов 3
Метки нет (Все метки)

Помогите разработать программу отрисовки поверхности с использованием команды “3dmesh”.
Объяснение
Команда 3dmesh строит поверхность с помощью сетки (mesh):
Lisp
1
2
3
4
5
6
7
8
9
10
11
Command:  3dmesh
M: число
N: число
Point(1,1): x,y,z
Point(1,2): x,y,z
…………
Point(2,1): x,y,z
………………
Point(M,1): x,y,z
…………….
Point(M,N): x,y,z
Поверхность вращения образуется следующим образом:
Кривая
x=x(u),
y=y(u),

оборачивается, например, вокруг оси у:
X=x(u)cosф,
Y=y(u),
Z=x(u)sinф.


Нужна поверхность, которая образована оборачиванием трохоиды
x=[(R+mR)cos(mt)]+h cos(1+mt)
y=[(R+mR)sin(mt)]+h sin(1+mt)


Параметры m и h - любые.
Примеры трохоиды на рисунке.
0
Миниатюры
Отрисовка поверхности трохоиды (AutoLISP, 3dmesh)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2015, 14:12
Ответы с готовыми решениями:

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

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

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

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

Заливка цветом в AutoLisp
Доброго времени суток! Не подскажете, можно ли в автолиспе сделать заливку...

3
Lambdik
1038 / 932 / 106
Регистрация: 04.11.2012
Сообщений: 968
Записей в блоге: 3
25.11.2015, 21:55 2
Хоть и не пишу решение, но подкину пару мыслей.
Во-первых вот эта ваша трохоида, это случайно не эпициклоида? Это я к тому, что параметр m - это случайно не радиус катящейся окружности?
Для прорисовки, я бы конечно сделал свою функцию, но надо бы проверить ссылку от vlisp.
Там кстати используется трёхмерная полилиния, значит и для 2d тоже подойдёт, третья функция по z будет возвращать 0.
Я также не понял, зачем 3dmesh, из неё разве можно сделать тело вращения? Уж лучше полилиния, или сплайн.
Осталось написать две функции, одна для x, и одна для y.
Например для x (если я правильно понял) [t - нельзя использовать как переменную]:
Lisp
1
2
'(lambda (m h R tt) 
   (+ (* (+ R (* m R)) (cos (* m tt))) (cos (+ 1 (* m tt)))))
2
INIFREY
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 33
Завершенные тесты: 1
26.11.2015, 20:29  [ТС] 3
Все еще актуально.
0
vlisp
501 / 475 / 111
Регистрация: 10.08.2015
Сообщений: 1,676
Завершенные тесты: 1
27.11.2015, 01:41 4
Цитата Сообщение от INIFREY Посмотреть сообщение
Все еще актуально.
Что актуально? Где твои прикидки, наброски, отчаянные попытки разобраться самому???
Можешь взять этот код и поиграться с ним, но он делает только половину того что тебе нужно...
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(defun fplot (expr steps xpi ypi / xn yn zn tlist plist)
  (setq xn 0.0 yn 0.0)
  (repeat (* xpi steps)
    (setq tlist nil yn 0.0)
    (repeat (* ypi steps)
      (setq zn    ((eval expr) xn yn)
            tlist (append tlist (list (list xn yn zn)))
            yn    (+ yn (/ pi steps))
      )
    )
    (setq plist (append plist (list tlist))
          xn    (+ xn (/ pi steps)))
  )
  (_plot plist)
)
 
(defun _plot (l / i j l1 l2)
  (setq i  0
        l1 (length l)
        l2 (length (car l))
  )
  (command "_.3DMesh" l1 l2)
  (repeat l1
    (setq j 0)
    (repeat l2
      (command (nth j (nth i l)))
      (setq j (1+ j))
    )
    (setq i (1+ i))
  )
)
3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2015, 01:41

Способ изучения autolisp
Привет. Посоветуйте пожалуйста, как бы мне к зверю(авто лисп) этому найти...

AutoLISP работа с файлом
Здравствуйте! Необходимо реализовать вывод и ввод в файлы. Программа чертит...

AutoLisp относительные координаты
Всем привет! Есть команда (command "pline" A "@10<45" "@10<0" "@-10<45"...


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

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

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