|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
01.09.2011, 00:00 | #1 | |
Не удается выполнить команду "select" на VBA
Регистрация: 02.11.2010
Сообщений: 13
|
||
Просмотров: 4456
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Никак, у автокада такой глюк, SelectOnScreen (как и лисповский ssget) возращат только с текущего экрана. Либо во время выбора зумировать, либо делать выборку самому (проверять координаты выбранные пользователем итд), но по моему с 2-ым лучше не заморачиваться - объяснить юзерам что такая особенность.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Намного проще по имени блока обратиться к его описанию и пройтись по составу, чем пытаться что-то куда-то двигать, разбивать и т.д.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 02.11.2010
Сообщений: 13
|
2Кулик Алексей aka kpblc - а ведь точно! я просто автокад vba совсем мало знаю, и ступил из-за этого, пошел неправильным путем, спасибо за совет!! Буду искать команды чтобы смотреть содержимое блока
2Дима_ - Вы не совсем правильно поняли (или я не правильно описал): проблема не в selectonscreen а в select по 2-м точкам, но в нем тот же глюк как я теперь понимаю. Правда остается не ясным почему "'- если дальний угол виден на экране, то NewObj заполняется примитивами по всем Item кроме последнего", но теперь уже не так важно =) Хм, искал команды по разбору блока и наткнулся на ответ на свой вопрос, если все же перетаскивать объекты: explodedObjects = copyBlock.Explode copyBlock.Delete ' Перечислим полученные обломки Dim I As Integer For I = 0 To UBound(explodedObjects) explodedObjects(I).Delete Next хотя метод, предложенный Алексей aka kpblc куда элегантнее =) Последний раз редактировалось Dec0rator, 01.09.2011 в 08:59. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Не занимайтесь ерундой (я изначально Ваш первый пост через строку прочитал, не понял что Вам в конечном итоге нужно). Берите описание блока и вперед (в случае динамических и аттрибутов будет чуть посложней, но сюдя по всему это не Ваш вариант) - ActiveDocument-Blocks-Item-Item... и все отрезки как на ладони.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как автоматически выполнить команду после полной инициализации интерфейса AutoCAD 2012? | lexluther | Программирование | 6 | 13.04.2018 12:41 |
Лисп. Как выполнить команду по завершении предыдущей? | BetinS | LISP | 14 | 19.06.2014 03:25 |
Автоматически выполнить макрос VBA передав ему строку. | Sergei_Nikolaev | Программирование | 4 | 30.06.2009 13:38 |
В 2008 не могу выполнить команду | Bater | AutoCAD | 1 | 15.01.2009 20:48 |
транслятор VBA не понимает команду round(expr,d) ! | sergeytr | Программирование | 5 | 02.05.2007 10:20 |