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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Динамический зумминг

Динамический зумминг

Ответ
Поиск в этой теме
Непрочитано 26.07.2010, 20:30 #1
Динамический зумминг
gomer
 
строю, ломаю
 
Украина
Регистрация: 03.04.2008
Сообщений: 5,515

С версии 16.2 (если не ошибаюсь) AutoCAD масштабирует (команда ZOOM) динамически, т.е. плавно приближает и удаляет объекты...
Я пробовал сделать динамический зум для Bricscad V10, но задача мне оказалась не по зубам...
Может кто поможет? Может кто делал такое для предыдущих версий AutoCAD?
Просмотров: 3688
 
Непрочитано 26.07.2010, 23:18
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Эта "динамичность" регулируется настройками команды vtoptions, кажется.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 26.07.2010, 23:41
#3
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Эта "динамичность" регулируется настройками команды vtoptions
Алексей, вы правы, но например в Autocad 2004 она никак не регулируется по причине отсутствия... в bricscad - аналогично...
Кстати вот это
Код:
[Выделить все]
(command "_.zoom" "0.65X")
тоже выглядит явно не динамично даже в Autocad 2008 почему-то...
Проблему можно решить циклическим зуммированием, но как точно подобрать коэффициенты, не знаю...
gomer вне форума  
 
Непрочитано 26.07.2010, 23:49
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Если делать это лиспом, то надо бы (по идее!):
- отслеживать команду _.zoom со всеми ее вариантами опций
- отслеживать команду _.zoom с вариантом движения мышью с нажатой левой кнопкой.
- отслеживать движение колесом мыши
ИМХО, лиспом можно попытаться реализовать только первый вариант, остальное потребует применения arx или аналога.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.07.2010, 21:10
#5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


есть решение, но заведомо неверное...
Код:
[Выделить все]
((lambda (/ x y z)
  (setq x 64 y (getvar 'cmdecho) z 1.00)
  (setvar 'cmdecho 0)
  (repeat x
	(command "_.zoom" "_s" z)
	(setq z (- z (/ (- z 0.96) x))) ; тут неверно
  )
  (setvar 'cmdecho y)
 )
)
Как сделать правильно - задача не тривиальная...
gomer вне форума  
 
Непрочитано 27.07.2010, 23:56
#6
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
Как сделать правильно - задача не тривиальная...
Извини, но я, если честно, совсем не понял задачу...


Что значит динамично? Чтоб команда динамически отслеживала курсор и в зависимости от местоположения курсора масштабировала экран? Или судя по последнему лиспу, ты хочешь плавно изменить масштаб изображения на экране на некоторую величину...
Если первое, то вроде автокад и в 2004 версии умел это делать, если второе, то надо определиться в двух параметрах
1. время выполнения операции (допустим пара секунд)
2. масштабный коэффициент - на сколько надо масштабировать изображение на экране (например постоянная величина или задается пользователем / программой)
далее пишем код, подобный твоему и вычисляем количество слайдов, после замера времени выполнения первого масштабирования и делаем серию команд масштабирования. Скорее всего, надо сразу ограничить максимальное количество операций до 15 в секунду.
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 28.07.2010, 22:00
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Да второе! В моем коде z - величина не постоянная, постоянно увеличивающаяся до 1. Но как определить эту зависимость, не знаю?
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Динамический зумминг



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический блок и маштабирование gesper Динамические блоки 1 09.09.2009 14:34
Динамический блок с вложенным динамическим блоком? Sync02 Динамические блоки 17 18.05.2009 17:51
Динамический блок сварного шва Vavan Metallist Динамические блоки 10 11.04.2008 18:42
Динамический блок в 3D ZZZ Динамические блоки 11 17.04.2006 04:42
в АСАД 2006 колесо мыша при прокрутке дает динамический ZOOM Gaa2001 Динамические блоки 2 23.05.2005 17:00