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

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > VBA, Завершение активной команды.

VBA, Завершение активной команды.

Ответ
Поиск в этой теме
Непрочитано 29.07.2008, 11:33 #1
VBA, Завершение активной команды.
Vildar
 
AutoCAD
 
Москва
Регистрация: 26.07.2007
Сообщений: 1,064

Прописано Event на BeginCommand.
Как отменить запущенную команду?
Если попробовать через командную строку, то что вводить нужно.
Код:
[Выделить все]
ThisDrawing.SendCommand "?"

Последний раз редактировалось Vildar, 29.07.2008 в 13:50. Причина: дополнение
Просмотров: 3516
 
Непрочитано 29.07.2008, 14:07
#2
Кулик Алексей aka kpblc
Moderator

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


где отменить? Программно? Или пользователь должен это сделать?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.07.2008, 14:34
#3
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Програмно!
Vildar вне форума  
 
Непрочитано 29.07.2008, 14:53
#4
Кулик Алексей aka kpblc
Moderator

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


ThisDrawing.SendCommand "\003\003\003"
Вроде так...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.07.2008, 15:06
#5
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Не получается.
Нужно, что-то, типа нажатия "Esc".
Добустим: ввели команду _Line, далее запрос "Первая точка:". Что нужно ввести в ком.строку, чтобы отменить команду _Line.
Vildar вне форума  
 
Автор темы   Непрочитано 29.07.2008, 15:37
#6
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Во как!
Код:
[Выделить все]
Dim strChr3 As String
strChr3 = Chr(3)
ThisDrawing.SendCommand strChr3
Мудрёно.
Vildar вне форума  
 
Автор темы   Непрочитано 29.07.2008, 16:06
#7
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


После #6, команда отменяется, но при последующем вызове GetPoint, выдает ошибку. Похоже, что-то в ком.строке не чисто, после выполнения #6.
Vildar вне форума  
 
Непрочитано 29.07.2008, 16:18
#8
Кулик Алексей aka kpblc
Moderator

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


А ты несколько раз пошли на выполнение Cancel
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.07.2008, 16:46
#9
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Несколько раз повторить это:
Код:
[Выделить все]
ThisDrawing.SendCommand strChr3
   ThisDrawing.SendCommand strChr3
   ThisDrawing.SendCommand strChr3
Таже ошибка вылазит.
Миниатюры
Нажмите на изображение для увеличения
Название: Error.jpg
Просмотров: 66
Размер:	22.0 Кб
ID:	8798  
Vildar вне форума  
 
Непрочитано 29.07.2008, 16:50
#10
Кулик Алексей aka kpblc
Moderator

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


Ничего не понимаю. Покажи полный код.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.07.2008, 17:18
#11
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ничего не понимаю. Покажи полный код.
Файл выложить? Если да, то пробуй запустить команду DText. Вылезет форма для ввода текста, а потом ошибка.
А код вот:
Код:
[Выделить все]
ThisDrawing.SendCommand strChr3
   varPoint = ThisDrawing.Utility.GetPoint(, "Укажите точку вставки текста")
   height = FormScale.ComboBoxScale.Value * CInt(TextBoxHeight)
   Set objText = ThisDrawing.ModelSpace.AddText(strText, varPoint, height)
При реакции на BeginCommand DText.
Кажись непонятно написал (вырвал отрывок).
Вложения
Тип файла: dvb Project_Scale.dvb (96.0 Кб, 50 просмотров)
Vildar вне форума  
 
Непрочитано 29.07.2008, 20:50
#12
Кулик Алексей aka kpblc
Moderator

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


Пришлось код поменять. Причем прилично (прежде всего я говорю про логику):
- FormText - событие на [OK]
- чуть-чуть реактор на старт команды
См.аттач.
---
Добавлено: проект редактировался в AutoCAD 2008.
Вложения
Тип файла: dvb Project_Scale.dvb (43.0 Кб, 62 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 30.07.2008 в 00:48.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.07.2008, 10:53
#13
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Спасибо Алексей, что подправили. Я тут сижу, один, совсем один, даже глянуть некому (с пониманием дела ).
Я так понял, что у Вас нет возможности запустить этот макрос. Во время выполнения команды, в данном случае *Text, не читается сис.переменная "cmdnames", через ThisDrawing.GetVariable. Ну и далее соответственно тоже.
А смысл маленький до бесконечности. При выполнении команд DText или MText, задать высоту текста с учетом масштаба и требуемой высоты. Чувствую себя хреново. А если почитать В чем зло VBA?, вообще повеситься можно.

Offtop:
PS: Алексей, может добавите себе в подпись номер банк.счета. Готов отдать последний рубль, за Вашу помощь. И думаю я не один такой.
Vildar вне форума  
 
Непрочитано 30.07.2008, 11:51
#14
Кулик Алексей aka kpblc
Moderator

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


Да, про cmdnames я что-то упустил. Мой косяк.
Если так сильно надо назначать высоту текста (что однострочного, что многострочного), то я бы делал по-другому: в самом начале работы выдать форму, в которой установить высоту "по умолчанию". Записать в глобальную переменную (а еще лучше - в реестр ). А при выполнении команды *TEXT просто назначать textsize как сохраненное значение, умноженное на значение масштаба, и не мучаться.
---
Добавлено: опять меня клонируют )
P.S. Шутку с номером, боюсь, не поймут
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > VBA, Завершение активной команды.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пароль к VBA karp_b Программирование 24 29.08.2013 12:43
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Прозрачные команды Vova AutoCAD 17 21.06.2006 05:33
Fatal Error на завершение команды 3D_orbit ksen AutoCAD 3 15.10.2004 10:08