Нужно, чтобы "маятник часов" в 2D пространстве при вводе высоты h, угла качения (альфа), диаметра тела(d) и ускорения свободного падения(g), совершал поступательное движение.
Ну это то понятно =) просто сколько не искал, нигде не могу найти как сделать анимацию именно с помощью макроса. Может кто то встречался с чем то подобным?
Находишь формулу расчёта координат маятника (уравнение маятника) и через API выводишь в 2D Или тебе обязательно нужно использовать анимацию T-FLEX CAD + макрос?
Я при выполнении похожей задачи использовала формулу затухающих колебаний Y=A*cos(wt+f0) (приблизительно, с поправкой на греческие буквы), параметрический чертеж и изменение переменной t с помошью анимации; учитывая специфику ветки вместо анимации можно использовать макрос с циклом (при этом помним, что маятник не катается, а качается ). А на одном из CAD OLYMPов для анимации 3D модели маятника значения отклонения брались с 2D графика.
В том то и дело, что мне надо как то с помощью макроса создать анимацию) фигуру маятника я создать то могу, а вот как заставить ее двигаться, да еще и по формуле - это для меня нелегкая задача
Я пытался сделать антмацию с помощью цикла, но у меня не очень получилось public static void MOkrujnost(String p1, String p2, String p3, String p4) { Document document = TFlex.Application.ActiveDocument;//Получение активного документа document.BeginChanges("Создание окружности" ;//Открытие блока изменений документа double x1,y1,r1,l; int i=0; l = System.Convert.ToDouble(p4); while(i < l) { x1 = System.Convert.ToDouble(p1); y1 = System.Convert.ToDouble(p2); r1 = System.Convert.ToDouble(p3); FreeNode n1 = new FreeNode(document, x1+i, y1); CircleConstruction circle1 = new CircleConstruction (document); circle1.SetCenterAndRadius(n1, r1); ConstructionOutline outline1 = new ConstructionOutline(document, circle1); outline1.Color=0; Area ar = new Area (document); TFlex.Model.Model2D.Contour cn1 = ar.AppendContour(); i++; document.ApplyChanges(); } } Здесь я делал отрисовку круга и пытался создать его перемещение как анимацию. Искал как можно удалить обьект, но так нигде и не нашел, и получается, что круги размножаются, при этом все происходит мгновенно.
Искал как можно удалить обьект, но так нигде и не нашел
Метод DeleteObjects находится в классе Document.
Что касается скорости исполнения (чтоб не мгновенно рисовалось, а с каким-то промежутком времени), то тут нужно использовать программный функционал .NET, не относящийся к T-FLEX CAD.
konoha пишет: В том то и дело, что мне надо как то с помощью макроса создать анимацию) фигуру маятника я создать то могу, а вот как заставить ее двигаться, да еще и по формуле - это для меня нелегкая задача
Как вариант, круг надо нарисовать в 1 положении, а потом его перемещать в другие, а не отрисовывать заново, в этом и есть вся прелесть параметризации К сожалению файл не сохраняется при попытке загрузки, поэтому - ссылка Простейший маятник. Для анимации сторонние средства не потребовались
З.Ы. А вообще странно, что никто до сих пор не подсказал. Раньше тут хоть что-то шевелилось помимо смайликов
petrick, Спасибо большущее . Твой метод создания анимации идеально работает. Немного только не понял как создавать потомки объекта, но думаю разберусь))
konoha пишет: petrick , Спасибо большущее . Твой метод создания анимации идеально работает. Немного только не понял как создавать потомки объекта, но думаю разберусь))
Так они созданы не программно, в макросе только анимация запускается, а 2D сделано штатными средствами.