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

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

Почему тормозит переменная?

Ответ
Поиск в этой теме
Непрочитано 15.04.2005, 10:53 #1
Почему тормозит переменная?
Valery
 
Сообщений: n/a

С помощью
(command "_area")
(setq a (getvar "area"))
пытаюсь получить площадь многоугольника. Однако в первый раз переменная "area" возвращает 0.00 а при повторном запуске системная переменная AREA возвращает значение площади ПРЕДЫДУЩЕГО многоугольника, хотя на экран значение площади выводится верно. За другими системными переменными такой задержки не замечалось. Почему переменная "area" так тормозит?
Просмотров: 5392
 
Непрочитано 15.04.2005, 11:16
#2
{Smirnoff}

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


А какая у тебя весия AutoCAD? Я уже не помню как было в 2002 а в 2005-м:
Код:
[Выделить все]
Command: area

Specify first corner point or [Object/Add/Subtract]: o

Select objects:
Area = 135.1587, Perimeter = 44.3167
Соответственно как минимум (command "_.area" "_o").

Если есть возможность, лучше не использовать COMMAND потому что от версии к версии синтаксис команд меняется. Лучше что то типа:
Код:
[Выделить все]
(defun GetArea (/ obj vlaObj)
(vl-load-com)
  (if
    (setq obj(car(entsel "\nSelect Object: \n")))
    (progn
      (setq vlaObj(vlax-ename->vla-object obj))
      (if(vlax-property-available-p vlaObj 'Area)
	(vla-get-Area vlaObj)
	(princ "\nCan't measure object Area! ")
	); end if
      ); end progn
      ); end if
    ); end GetArea
{Smirnoff} вне форума  
 
Непрочитано 15.04.2005, 11:25
#3
{Smirnoff}

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


Можешь глянуть еще на такие извращения http://dwg.ru/forum/viewtopic.php?t=3312&start=0

и найти пользвователя Apelsinov, у него сайт где лежит хорошая програмка для измерения площадей. Вам программист там не требуется земляк? Шутка
{Smirnoff} вне форума  
 
Непрочитано 15.04.2005, 11:27
#4
dermoon


 
Регистрация: 26.08.2003
Россия, Красноярск
Сообщений: 1,252


Так все правильно, а что тебя смущает? Площадь считается командой _area, системная переменная area просто выводит последнее посчитанное значение площади. Если с момента открытия чертежа площадь ни разу не считалась, area выдаст =0.
dermoon вне форума  
 
Непрочитано 15.04.2005, 12:37
#5
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,132
<phrase 1=


меня искать не надо, прожку поклал в download в этом сайте, звать ARE.
Apelsinov вне форума  
 
Непрочитано 16.04.2005, 15:16
#6
Valery


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


Valery - Dermoon
Так все правильно, а что тебя смущает? Площадь считается командой _area, системная переменная area просто выводит последнее посчитанное значение площади. Если с момента открытия чертежа площадь ни разу не считалась, area выдаст =0.
------------------------------
В том-то и дело, что после открытия чертежа и ПЕРВОГО замера в командной строке AREA показывает реальную площадь, а в переменную возвращает 0. После ВТОРОГО замера в ком.строке - результат ВТОРОГО замера, а в переменной - результат ПЕРВОГО замера, и так каждый раз на шаг назад.
В данном случае меня интересует не столько лисп для замера площади (кстати, Fantomas'у - спасибо), больше хочу понять логику поведения системной переменной AREA.
 
 
Непрочитано 16.04.2005, 16:16
#7
{Smirnoff}

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


>Valery

С переменной все нормально. Просто синтаксис вызова _AREA у вас неправильный. Надо ведь указать в COMMAND и аргумент. Для того чтобы правильно использовать COMMAND надо просмотреть как работает команда "вживую". В вашем варианте насколько я понял будет правильным (command "_.area" "_o") либо если вы хотите вручную выбрать способ измерения (command "_.area" pause), естественно при CMDECHO=1.
{Smirnoff} вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему тормозит переменная?

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

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