как анимировать Автокад ? - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > как анимировать Автокад ?

как анимировать Автокад ?

Ответ
Поиск в этой теме
Непрочитано 17.08.2006, 20:12
как анимировать Автокад ?
квинт
 
новосиб
Регистрация: 17.08.2006
Сообщений: 23

Подскажите чайнику!!!!!
Просмотров: 14484
 
Непрочитано 11.12.2006, 12:11
#21
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Только не стоит отчаиваться. Безвыходных ситуаций не бывает.

Для выполнения посторонних действий нужно использовать такую конструкцию:
Код:
[Выделить все]
(setq k T)
(setq i 0)
(setq j 0)

(while k 
(progn
  (вращение шестерней)
   (setq i (1+ i))
     (if
(and (> i 1000) (< i 1500)) (двигаем посторонний предмет) (или princ))
;на какомто этапе вращения предмет будет передвигаться и
;остановится
    (setq j (1+ j))  
     (if (> j 1000000) (setq k nil) (princ));остановка цикла
T
);progn
);while
И главное не забыть, что перемещение должно производиться на малые расстояния, тк цикл все время повторяется.
mmax вне форума  
 
Непрочитано 11.12.2006, 21:37
#22
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Получилось, оказалось не все так сложно

Код:
[Выделить все]
(defun c:poehali ()

(setq sh1point (list 0.0 0.0 0.0))
(setq sh2point (list 1285.8870 0.0 0.0))

(setq sh1obj
       (nth 0 (ename-or-vla-ssget-lst-samocad nil (ssget "_X" (list (cons 8 "Слой1")(cons 0 "3Dsolid"))) T)) ;библиотечная
)

(setq sh2obj
       (nth 0 (ename-or-vla-ssget-lst-samocad nil (ssget "_X" (list (cons 8 "Слой2")(cons 0 "3Dsolid")) ) T));библиотечная
)

(setq obj
       (nth 0 (ename-or-vla-ssget-lst-samocad nil (ssget "_X" (list (cons 8 "Слой3")(cons 0 "3Dsolid")) ) T));библиотечная
)

;функция вращения шестерней

(defun rotsh (angSh1 angSh2)
    (vla-rotate sh1obj (vlax-3d-point sh1point) (deg->rad-samocad angSh1);библиотечная
)
    (vla-rotate sh2obj (vlax-3d-point sh2point) (deg->rad-samocad angSh2);библиотечная
)

  )
;;;(rotsh 2.0 -1.0)

;Функция перемещения призмы
;Заслуживает стать библиотечной

(defun movepr (basepo endpo vla_obj)
  (vla-move vla_obj (vlax-3d-point basepo) (vlax-3d-point endpo))
  (princ)
  )


;начальные значения счетчиков
(setq i t)
(setq k 0)
(setq j 0)
(setq m 0)

(while i
  (progn
    (rotsh 2.0 -1.0)
    (setq k (1+ k))
    (if
      (and (> k 360) (< k 460))
      (movepr (list 0.0 0.0 0.0) (list 0.0 (setq j (+ 0.5 j)) 0.0) obj) ;t
      (princ);nil
      );if

    (if
      (and (> k 700) (< k 800))
      (movepr (list 0.0 0.0 0.0)(list (setq m (+ 0.5 m)) 0.0 0.0) obj) ;t
      (princ);nil
      );if
    (if (> k 1000)
      (setq i nil)
      (princ))
    t
    );progn
  );while

  (princ "\nПриехали")
  (princ)
  )
Нарисовал над шестернями призму.

Сценарий:
Шестерни вращаются втечении всего цикла
призма стоит
Через некоторое время призма поехала вдоль оси Y
Постояла немного и поехала вдоль оси Х
постояла немного
Шестерни остановились
Конец.

У меня объекты определяются автоматически, но я не уверен что они будут определяться у других.

Также применяются две моих бибилиотечных функции, их надо загрузить из FAS-файла, который лежит в архиве.
также в архиве находится DWG-файл для вышеуказанной программы.

Вобщем все дело в правильном оформлении счетчиков.

Не рекомендую использовать (command), хотя она здесь больше напрашивается. Долго объяснять почему, но вас будут преследовать непонятные ошибки.
[ATTACH]1165862224.rar[/ATTACH]
mmax вне форума  
 
Непрочитано 11.12.2006, 22:19
#23
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


Чесна слова - шамаство какое-то :P
Нет никакого свободного времени сейчас разобраться во всём этом премудром, так же как и закончить начатое... Надеюсь в новогодние "каникулы" добью это дело...

Очень интересные перспективы рисуются однако... :twisted:
Серёга - Bilder вне форума  
 
Непрочитано 11.12.2006, 23:44
#24
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Ну вот со сценариями анимации разобрались, вот только использовать их можно только в автокаде.
хотя я слышал что есть программы снимающие фильмы с экрана.
mmax вне форума  
 
Непрочитано 12.12.2006, 00:48
#25
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


"Фильм с экрана" - это просто...

А ты 2007-ой не пробовал? там же есть возможность по заданным маршрутам облёта виртуальной камерой - монтировать видеоролик (с отрендереными материалами и освещением). Только медленоооо...... :roll:
Серёга - Bilder вне форума  
 
Непрочитано 12.12.2006, 02:05
#26
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Будет сложно во время вращения шестерней облетать их камерой.
Дело в том что во время выполнения(вращения) нельзя выполнять каких либо действий, от простого щелчка мышью может все зависнуть или просто не будет никаких реакций.

Такчто камеру придется вставлять в программу-анимацию. а так как эта самая камера элемент новый и никем не изученный, всмысле операции с этой камерой из лиспа........

2007 у меня нет, жду когда появится руссская локализация :roll: (не путать с русификатором для english-версии)
Когда появится вот тогда и узнаем что за объект такой vla-IAcadКамера, какие методы к нему применимы итп. и забабахаем такую презентацию......... .
mmax вне форума  
 
Непрочитано 15.11.2012, 10:35
#27
eklmneka


 
Регистрация: 13.07.2011
Сообщений: 3


Товарищи, столько лет прошло... получилось ли у кого-нибудь заставить двигаться элементы в презентации?
eklmneka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > как анимировать Автокад ?