Тема: Площадь автоматически....

Хелп народ!
ну много площадей считаю... в архиКАДе  есть обьект которь?й автоматически пишет циферку и еще культурно допись?вает м2 ... а вот а автокаде такого не обнаруживаю!!!
как бь? вот полилинию с которой связан текст и автоматически циферка меняется...  КАК ЕТО СДЕЛАТЬ?????
СПАСИБО НАРОД!!!! ПОМОЖЕТЕ!!!!

Re: Площадь автоматически....

А не слабо поиск посмотреть? Вот уж по этой теме в конфе копьев поналомано...

Re: Площадь автоматически....

Не слабо!  СМОТРЕЛ! может кинеш тогда линк?... не чайник я...
просто мне как архитектору надоело постоянно править числа площадей вручную! Ето единственное что мне нехватает с ArchiCAD'а ...тоесть обьекта которь? автоматически показь?вает площадь...
может не по тому слову ищу.. ну сорри...  искал по всем словам как мог!
СПАСИБО!!!
P.S. работаю под AutoCAD 2005 .... (паралельно в ADT3.3)

Re: Площадь автоматически....

> Lorex
Вот примерный список, это лисп или activX:
https://www.caduser.ru/forum/topic1100.html - (лисп) указываешь точку внетри области, в комстроке выдает площадь и периметр.
https://www.caduser.ru/forum/topic11736.html - (activX) выбираешь объект, просто считает площадь
https://www.caduser.ru/forum/topic9084.html - (лисп) по-моему хорошая прога, указываешь точку внетри области и точку куда текст вставить (говорится, что считает в гектарах, нужно подкорректировать под свои нужды).
https://www.caduser.ru/forum/topic6524.html - (лисп) не очень корректная прога, но может послужить материалом.
https://www.caduser.ru/forum/topic5376.html - (activX) похоже на пункт 2. но указываешь точку внутри области.
https://www.caduser.ru/forum/topic3926.html - (лисп) выбираншь объекты, получаешь сумму площадей всех объектов.
https://www.caduser.ru/forum/topic1942.html - (activX) надо давать список точек. полезно со штриховками без криволинейных участков

Re: Площадь автоматически....

AutoCAD 2006 !!! Зачем тогда новые версии выходят?!

Re: Площадь автоматически....

Отправил на мыло

Re: Площадь автоматически....

> Uno
Не знаю возможностей 2006 по площадям. Не думаю, что обеспечивает такую гибкость как использование мелких программ. В любом случае дороговато... Дешевле лисп.

Re: Площадь автоматически....

Народ, читайте форум внимательнее. >Lorex уже с полями 2005-го автокада разобрался. ЛИСПы отдыхают

Re: Площадь автоматически....

Ну заачем же им отдыхать. Вы же не ездите в соседний магазин за хлебом на мерседесе?

Re: Площадь автоматически....

> Vook
Судя по этой теме
https://www.caduser.ru/forum/topic12662.html
не во всем он разобрался.

Re: Площадь автоматически....

Народ...  ЛИСП не решает задачу параметризации об"ектов...
СПАСИБО ВСЕМ!
Вот именно Fields и Attributes  могут интерактивно реагировать на изменения свойств об"?ктов... тоесть я стрейчанул полилинию - изменилась площадь (помещения напр.) ... Field после RegenAll  тут же показь?вает  новую площадь!.. НО .. я черчу в милиметрах..  соответсвенно поле и в мм2. Что меня НЕ УСТРАИВАЕТ НИКАК! (думаю и всех остальнь?х).. а вот как задать ему ФОРМУЛУ!!!
Вот Поле дает такую строку. Вставляя ее в МТЕКСТ имеем полщадь фигурь?... (где 2127605232 - внутренний ID фигурь?)
%<\AcObjProp Object(%<\_ObjId 2127605232>%).Area \f "%lu6%qf1">%
теперь есть DIESEL
%<\AcDiesel $(*, a, b) >%
ПОМОГИТЕ СОВМЕСТИТЬ ЕТИХ ДВА ЧЕРТА!!! НЕДЕЛЮ УЖЕ БЬЮСЬ!!!!
ТОЕСТЬ УМНОЖИТЬ на коефициент и иметь площадь в М2!!!!!
[che] тут прав.. я не во всем разобрался...
БУДУ ПРИЗНАТЕЛЕН!!!

Re: Площадь автоматически....

строку такого вида:
%<\AcDiesel $(*,    %<\AcObjProp Object(%<\_ObjId 2127605232>%).Area \f "%lu6%qf1">%     ,    0.000001 ) >%
НЕ ПРОГЛОТИЛ!!!

Re: Площадь автоматически....

Кстати в 2006-ом CAD'e чаво там ввели?.. еще не ставил... мо там легче с етим насчет площадей...??
Дествительно ЗАМУЧИЛО МЕНЯ ето дело ... из проекта в проект...  sad((

Re: Площадь автоматически....

было ARX приложение, areautil называлось. тоже в мм....

Re: Площадь автоматически....

Писал что-то подобное когда начал заниматься лиспом, вот переделал под ваши нужды, есть недостаток параметры текста  определяются в тексте функции.
Написано через одно место... но работает

(defun c:area_a    (/       pline_sh  echo_old  cur_color acc
         r       pline_obj prim      select     block leb_txt
        )
  (defun
        STORE
         ()
    (setq pline_sh (getvar "PLINEWID"))
    (setq echo_old (getvar "cmdecho"))
    (setq cur_color (getvar "CECOLOR"))
    (setq acc (getvar "LUPREC"))
  )
  (defun RESTORE ()
    (setvar "PLINEWID" pline_sh)
    (setvar "LUPREC" acc)
    (setvar "CECOLOR" cur_color)
    (setvar "CMDECHO" echo_old)
    (princ)
  )
  (defun NNN_ERROR_HANDLER (MSG)
    (if
      (or
    (= MSG "завершить / выйти прервать")
    (= MSG "quit / exit abort")
      )
       (princ "Error! Прервано пользователем")
       (princ msg)
    )
    (command "_.UNDO" "_end")
    (command "_.U")
    (RESTORE)
    (setq *ERROR* OLDERROR)
    (princ)
  )
  (store)
  (command "_.UNDO" "_begin")
  (setvar "PLINEWID" 60)
  (setvar "CECOLOR" "50")
  (setvar "LUPREC" 2)
  (setvar "CMDECHO" 0)
  (setq olderror *ERROR*)
  (setq *ERROR* nnn_error_handler)
  (setq r 0)
  (vl-cmdf "_.pline")
  (while (= (logand (getvar 'cmdactive) 1) 1)
    (vl-cmdf pause)
    (setq r (1+ r))
  )
  (setq pline_obj (entlast))
  (if (= (entlast) prim)
    (setq pline_obj nil)
  )
  (if (>= r 3)
    (progn
      (vl-cmdf "_area" "_ob" pline_obj)
      (setq ax (list (vlax-ename->vla-object pline_obj)))
      (setq ar (getvar "area"))
      (vla-put-height
    (vla-addmtext
      (vla-get-modelspace
        (vla-get-activedocument (vlax-get-acad-object))
      )
      (vlax-make-variant
        (vlax-safearray-fill
          (vlax-make-safearray
        vlax-vbdouble
        '(0 . 2)
          )
          '(0 0 0)
        )
        (logior vlax-vbarray vlax-vbdouble)
      )
      300
      (strcat
        "{\\fArial|b0|i0|c0|p10;"
        (rtos (/ ar 1000000))
        "\\fArial|b0|i0|c204|p10;м\\fArial|b0|i0|c204|p8;\\U+00B2}"
      )
    )
    300
      )
      (setq select (ssadd (entlast)))
      (sssetfirst select select)
      (vl-cmdf "_-block"
           "1$$$$$ok_area$$_kot"
           (trans (list 0 0 0) 0 1)
           select
           ""
      )
      (vl-cmdf "_-insert"     "1$$$$$ok_area$$_kot"
           "_ro"          0             "_s"
           1
          )
      (while (= (logand (getvar 'cmdactive) 1) 1)
    (vl-cmdf pause)
      )
      (setq block (vlax-ename->vla-object (entlast)))
      (if (= (cdr (assoc 0 (entget (entlast)))) "INSERT")
    (vla-explode (vlax-ename->vla-object (entlast)))
    (entdel block)
      )
      (setq leb_txt (cdr (assoc 5 (entget (entlast)))))
      (vla-delete block)
      (vla-delete
    (vla-item
      (vla-get-blocks
        (vla-get-ActiveDocument
          (vlax-get-acad-object)
        )
      )
      "1$$$$$ok_area$$_kot"
    )
      )
    )
  )
  (setq    liner (vlr-object-reactor
        ax
        leb_txt
        (list '(:vlr-modified . reac_area_pl))
          )
  )
  (vlr-pers liner)
  (command "_.UNDO" "_end")
  (setq *ERROR* OLDERROR)
  (restore)
  (vl-load-com)
)
(defun reac_area_pl (vlao reac args /)
  (vla-put-textstring
    (vlax-ename->vla-object (handent (vlr-data reac)))
    (vlax-make-variant
      (strcat "{\\fArial|b0|i0|c0|p10;"
          (rtos (/ (vla-get-area vlao) 1000000) 2 2)
          "\\fArial|b0|i0|c204|p10;м\\fArial|b0|i0|c204|p8;\\U+00B2}"
      )
      8
    )
  )
)

Re: Площадь автоматически....

(vl-load-com) в конце допишите

Re: Площадь автоматически....

> Lorex
В 2006-м появилась кнопка "Format", позволяющая настроить коэффициент. Т.е. можно выводить данные, умноженные на определенное число

Re: Площадь автоматически....

Только что сделал поле, показывающее площадь прямоугольника с коэффициентом 0.00001. Вот такое выражение:

%<\AcObjProp.16.2 Object(%<\_ObjId 2130059120>%).Area \f "%ct8[1e-005]">%

Re: Площадь автоматически....

и дает оно в результате строку [1e-005]  а не площадь.. sad  даже если подставить ID

Re: Площадь автоматически....

Спасибо  > Vook <  мне именно 2006-й помог решить проблему ..
там действительно кнопочка формат в полях есть...  но одно неудобство... каждь?й коеффициент  вручную вводить.. ну ето такое уже... каприз..
разобрался даже как считать автоматически площадь (суму!) но для етого нужно заполнять таблицу..
Алгоритм таков:
1. создаем Field. назначаем его обьекту. говорим, мол, давай мне площадь да еще в м2.
2.тогда он показь?вает  в окне Поля формулку вида %<\AcObjProp Object(%<\_ObjId 2127605232>%).Area \f "%lu6%qf1">%    вот етот текст копирую...
3. Вставляю его в ячейку таблиць?.
4. ну и так несколько раз....
5. тогда создаем  поле и вь?бираем Formula. Ть?каем суму и вь?бираем ячейки таблиць?. Результатом будет Поле (интерактивное), которое считает суму ячеек таблиць?!
Все ето под 2006-й AutoCAD. Берите на использование!
ВСЕМ СПАСИБО!!!!
Ть?каем ету циферку на чертеж в угол помещения.

Re: Площадь автоматически....

> Lorex
Не в тему: а ты букву "ьi" специально так пишешь?

Re: Площадь автоматически....

русской раскладки не имею подгруженой... сорри.. smile)) тока украинскую и английскую! smile Ctrl-Shift уже замахался ть?кать каждь?й раз... в 95% хватает тока украинской раскладки... smile)
Спасибо VOOK! Еще раз!