Тема: Example_GetPoint

Всем привет! Наверное, мой вопрос глуп, но подскажите начинающему.
При выполнении Example_GetPoint выдается сообщение: "Method 'GetPoint' of object 'IAcadUtility' failed", показывает ошибку в строке
returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")

Re: Example_GetPoint

> ЛАРИСА
В таких случаях иногда помогает перезагрузка автокада.
А returnPnt как нибудь объявляете?

Re: Example_GetPoint

Да,
Dim returnPnt As Variant

Re: Example_GetPoint

> ЛАРИСА
Как я понимаю, вы скопировали пример из хелпа и запускаете его, да? И сколько раз вы вводите точку на запросы примера?

Re: Example_GetPoint

Один раз ввожу точку, но при любом из видов ввода точки на строку: returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ") выводится сообщение: "Method 'GetPoint' of object 'IAcadUtility' failed".
Кстати, пробую код отрисовки прямоугольника, также с типом переменной Variant, выходит та же ошибка

Re: Example_GetPoint

А вообще, через Utility что-нибудь работает? Может, кривая установка автокада? Попробуйте запустить свой код на другой машине. Если проблем не будет, значит проблему в софте у вашей машины. В общем-то никогда с такой проблемой (когда код правильный, а программа не работает) не встречался..

Re: Example_GetPoint

На GetDistance не ругается, а на GetPoint ругается даже в другом коде.
Пишет: " Run-time error '-2147467259(800004005)'"Method 'GetPoint' of object 'IAcadUtility' failed".
В ответ на данную ошибку говорю debug и заново запускаю, то отрабатывает. Но ошибку-то все-таки выдает.
вот код:
Private Sub Rectangle_Click()
'Draw a rectangle using PolarPoint
'Sub Rect()
Dim VarRet As Variant
Dim PTS(0 To 7) As Double
Dim WTH As Double
Dim HGT As Double
Dim PLINE As Object
VarRet = ThisDrawing.Utility.GetPoint(, "Start point:")
PTS(0) = VarRet(0)
PTS(1) = VarRet(1)
WTH = ThisDrawing.Utility.GetDistance(, "Ширина:")
HGT = ThisDrawing.Utility.GetDistance(, "Высота:")
VarRet = ThisDrawing.Utility.PolarPoint(VarRet, 0, WTH)
PTS(2) = VarRet(0)
PTS(3) = VarRet(1)
VarRet = ThisDrawing.Utility.PolarPoint(VarRet, 1.5708, HGT)
PTS(4) = VarRet(0)
PTS(5) = VarRet(1)
VarRet = ThisDrawing.Utility.PolarPoint(VarRet, 3.14159, WTH)
PTS(6) = VarRet(0)
PTS(7) = VarRet(1)
Set PLINE = ThisDrawing.ModelSpace.AddLightWeightPolyline(PTS)
PLINE.Closed = True 'close polyline
ZoomAll

Re: Example_GetPoint

Прошел пошагово, все чисто. Вариант - а слой какой? Не заблокированный / отключенный / замороженный часом? В каком пространстве находимся, в момент получения точки?

Re: Example_GetPoint

Я - пас!
Теоретически, у Вас это все должно работать. Можно еще предположить, что уши растут из текущей системы координат, но.. вряд ли. А может какие-то скрытые настройки среды противоречат друг другу. Но это так.. - схоластика:)..

Re: Example_GetPoint

ЛАРИСА пишет:

В ответ на данную ошибку говорю debug и заново запускаю, то отрабатывает.

Еще пара вопросов. В окне ошибки " Run-time error '-2147467259(800004005)'"Method 'GetPoint' of object 'IAcadUtility' failed" ведь нет кнопки debug, или я ошибаюсь? Вы ведь в кадовском VBE пишете, да?
И программа после debug продолжает работать с этой же строки или Вы запускаете макрос сначала и он проходит без проблем?

Re: Example_GetPoint

Запускаю RynSub, и окне ошибки " Run-time error '-2147467259(800004005)'"Method 'GetPoint' of object 'IAcadUtility' failed" нажимаю debug, желтым высвечивается строка с ошибкой, я опять запускаю RynSub и все отрабатывает.

Re: Example_GetPoint

Подскажите, где взять интерпретации автокадовских команд в VBA. Везде в примерах ZoomAll, а мне, например, надо границы показать

Re: Example_GetPoint

Что такое VbCrLf и VbCr?

Re: Example_GetPoint

Странное у меня предположение, вы случаем не пытаетесь указать точку, находящуюся за границами экрана?

Re: Example_GetPoint

ЛАРИСА пишет:

Что такое VbCrLf и VbCr?

Это константы VBA. Первая обеспечивает перенос в текстовых строках. Вторая - аналогия нажатия Enter. Приводить примеры некогда. Перечень констант приводится в хелпе "Visual Basic Reference" (хелп в VBE). Наберите их обе в поиске по хелпу и получите список констант.
Вообще не понятно, почему в первый раз макрос у вас спотыкается, а потом нормально выполняется.. Надо смотреть на месте..

Re: Example_GetPoint

Точку указываю мышью в пределах экрана, но ошибка выходит раньше, чем запрос точки.

Re: Example_GetPoint

> ЛАРИСА
Могу посоветовать только одно, - переустановить автокад. ИМХО сбой где-то внутри приложения (Вы ведь пробовали запускать макрос в разных файлах?). Ведь код-то правильный, и должен работать. Смысла выяснять причину такого поведения GetPoint на отдельно взятой  машине уже не вижу.

Re: Example_GetPoint

Неизвестно, в чем дело. Прогоняла на двух машинах, в разных операционках и на разных версиях Автокада (ADT3.3 и AutoCad2005).Ситуация везде одинакова. Правда CAD версии взломанные. Осталось опробовать на лицензионных. Или планида у меня такая!!
Всем огромное спасибо! Вообще, увлекательная вешь, этот VBA!!