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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли через VBA динамически двигать объекты?

Можно ли через VBA динамически двигать объекты?

Ответ
Поиск в этой теме
Непрочитано 07.12.2003, 23:20 #1
Можно ли через VBA динамически двигать объекты?
{Smirnoff}
 
Инженер по системам безопасности
 
Рига
Регистрация: 23.11.2003
Сообщений: 1,099

Подскажите начинающему в VBA, можно ли его средствами динамически подвигать по экрану объект, как это происходит после _move или _pasteclip? Про SendCommand я в курсе, но в Developer Help сказано что эта команда работает ассинхронно, т. е. то что отправлено в командную строку выполняеться самим КАДом, а процедура VBA выполняется независимо. Может есть какие нибудь методы до которых я не докопался?
Просмотров: 5328
 
Непрочитано 10.12.2003, 11:37
#2
А


 
Сообщений: n/a


Динамически т. е. чтобы примитив (примитивы) висели на курсоре?
В лиспе это делается так: нужные примитивы собираются в блок, затем во время команды insert когда запрашивается точка вставки делается PAUSE и примитивы висят на курсоре пока пользователь не укажет точку. Затем этот блок можно удалить (предварительно разбив вставленный нами блок). Попробуйте этот алгоритм применить с использованием SendCommand. :roll:
 
 
Автор темы   Непрочитано 10.12.2003, 22:22
#3
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Как это сделать в ЛИСПе я прекрасно знаю. И SendCommand знаю (см. предыдущий постинг). А еще как?

Проблемма в общем то такая. Создаю я объект в точке 0,0,0 . Делаю:

SendCommand "_.copyclip" & vbCr & "l" & vbCr & vbCr & "_.erase" & vbCr & "l" & vbCr & vbCr & "_.pasteclip" & vbCr

Ну либо (command "_.copyclip" (entlast) "" "_.erase" (entlast) "" "_pasteclip" pause)

Все замечательно! НО, если копируемо-стираемо-вставляемый объект строиться за пределами экрана. То объект у меня не вставляеться, а остаеться в точке 0,0,0. И вообще с программой твориться что то нехорошее, вплоть до FATAL ERROR и падения КАДа..

Чем я обязан, подобным чудесам? Может строить новый объект в точке вставки предыдущего или по центру вьюпорта. Честно говоря, пока непопробывал. Надо конечно еще MOVE попробывать. А вообще (command ...) или (vl-cmdf...) выглядят как органичная часть AutoLISP.А в VBA это какой то аппендикс, тем более сказано что работает это ассинхронно (запустил в командную строку и КАД, как может это отрабатывает, а макрос продолжаеться сам по себе).

Я многого не знаю. Только начал.[/b]
{Smirnoff} вне форума  
 
Непрочитано 10.12.2003, 22:45
#4
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Делал на Лиспе. Строил объекты за пределами видимости, потом (command "_.move" ss "" "_non" spt pause) + анализ точки, куда ткнул юзер и (vl-cmdf "_.undo" 1) если он делал чето не так. ss - набор объектов, spt - исходная точка в районе построения. В VBA для АКАДа не особо силен, хотя и познакомился с ним раньше чем с Лиспом, не знаю, можно ли этот алгоритм перетащить туда.
Лисп кажется более удобным, а command как-то более корректно обходят подводные камни. Поэтому, если возникают сомнения или надо использовать команду интерактивно, то конечно command. Еще обратил внимание на то, что не всегда удается использовать vla- методы, одноименные с командами.
С другой стороны, VBA ориентирован на объектную модель, которая у АКАДа достаточно проста, но громозкий код и более сложная интеграция с АКАДом как-то отодвинули его на второй план. Может быть и незаслуженно. ИМХО.
vk вне форума  
 
Автор темы   Непрочитано 11.12.2003, 01:14
#5
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Да на ЛИСПе это железобетонно работает. Согласен в VBA громозкий код. Очень нравиться мне ЛИСП, но ОЧЕНЬ НЕ НРАВИТЬСЯ мне DCL!!! Хотел даже ObjectDCL закупить, демку недели две мучал. А встала задача писать довольно объемные диалоги. Да и для изучения ActiveX это не самый худший способ. А то "для изучения методов и свойств ActiveX объектов, обращайтесь к документации по VBA". У Полещука (огромное ему спасибо, в любом случае) этот раздел все таки я считаю описан не достаточно подробно. Вот и изучаю я VBA...

Да интеграция не полная. Построить что нибудь -заколебешся. Однако есть и много плюсов.
{Smirnoff} вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли через VBA динамически двигать объекты?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск