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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > подсчет площадей

подсчет площадей

Ответ
Поиск в этой теме
Непрочитано 16.12.2003, 10:45 #1
подсчет площадей
Марта
 
Сообщений: n/a

Задача простая - подсчет площадей. Есть ли возможность получить сразу значение, указав точку внутри области (как в штриховке) с учетом островков, не занимаясь утомительным Add/Subtract единичных элементов?
Просмотров: 18656
 
Непрочитано 16.12.2003, 10:55
#2
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Сразу нельзя, но можно воспользоваться таким методом:
запускаем команду BOUNDARY
в строке OBJECT TYPE указываем REGION
жмем на кнопку PICK POINT
указываем точку внутри интересующей нас области.
Создается регион.
После этого запускаем команду AREA
Набираем O
Указываем на только что созданный регион
Получаем искомую площадь.
Torino вне форума  
 
Непрочитано 16.12.2003, 11:07
#3
Марта


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


Torino! Может у меня что-то нетак с командой BOUNDARY? У меня область с 4 островками, BOUNDARY created 5 regions, а не единый region и приходится тыкать в каждый
 
 
Непрочитано 16.12.2003, 12:47
#4
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Про островки я не понял, но если необходимо объединить несколько регионов в один, то можно воспользоваться командой UNION.
Torino вне форума  
 
Непрочитано 16.12.2003, 13:10
#5


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


У меня фасад с кучей разных окон. Я хочу для удобства пользования командой area создать одну область (Region), кот. учитывала бы наличие проемов - а-ля сыр с дырками. Сейчас же у меня получается командой BOUNDARY куча+одна область (Region). А команда UNION здесь совершенно не подходит.
 
 
Непрочитано 16.12.2003, 13:55
#6
niko


 
Регистрация: 16.09.2003
Москва
Сообщений: 91


Скачай калькулятор Оконечникова.FOCALL. И считай площади, длины и их суммы с островками и без. Хорошая вещь.
niko вне форума  
 
Непрочитано 16.12.2003, 14:09
#7
Admin
Administrator


 
Регистрация: 21.08.2003
Сообщений: 4,463


Насколько я знаю для команды
Tools menu: Inquiry Region/Mass Properties
необязательно объединять регионы. Достаточно выделить несколько регионов и все свойства, в том числе и площать, выдаются как для совокупности
Admin вне форума  
 
Непрочитано 16.12.2003, 14:26
#8


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


Получились. :!: Спасибо Niko и Оконечникову. А Admin что-то не допонял
 
 
Непрочитано 16.12.2003, 21:50
#9
Perezz!!

архитектор
 
Регистрация: 21.08.2003
Москва
Сообщений: 3,587


Dima ->
Свой вопрос см. в разделе Программирование: http://autokad.ru/forum/viewtopic.php?t=558
Perezz!! вне форума  
 
Непрочитано 27.08.2004, 12:56
#10
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,144


А калькулятор Оконечникова FOCALL где можно найти, а то ссылаются, а ссылки нет. Ссылка на его сайт мертвая почему то... Может у кого есть в Download выложит?
Спасибо.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 27.08.2004, 13:13
#11
Dima

инженер
 
Регистрация: 30.08.2003
Одесса-Мама
Сообщений: 176
<phrase 1= Отправить сообщение для Dima с помощью Skype™


в Downloade он помоему был!
если нет то двай e-mail!
или пиши наyd@monolit.il.od.ua
__________________
vinum
Dima вне форума  
 
Непрочитано 28.08.2004, 14:51
#12
lee


 
Регистрация: 28.02.2004
43
Сообщений: 1,819
<phrase 1=


Всем изобретателям велосипеда !!!

Autodesk Architectural Desktop
....................
То, что доктор прописал.
lee вне форума  
 
Непрочитано 30.11.2006, 19:26
#13
Юрий Губский

архитектура
 
Регистрация: 28.12.2005
Домодедово
Сообщений: 120


Цитата:
Всем изобретателям велосипеда !!!
«Люди добрыи поможите кто можит !» – типа традиционного вступления

Нужна удобная программа по подсчету площадей помещений с учетом штукатурки, то есть как и требуется по нормам.
Предложения ADT к сожалению не устраивают – еще далеко до того времени, чтобы все в нем работали… Искал здесь и на родственном форуме, но пока не нашел такой, может быть и пропустил.
Подобная у меня давно есть, но не все там так как хотелось бы, автора к сожалению не знаю. Немного ее почистил, кое-что оставил, но в силу незнания языка сам сделать нужное не могу, хотя похожего вокруг много и кажется, что вот еще чуть-чуть, но …
В общем, на основе виденного и имеющегося, что хотелось бы получить:

А. Расчетная часть площадей
1. Подсчет площадей указанием внутренней точки помещений с подсветкой выбранных областей с исключением островков (колонн и пр.)
2. Запрос толщины штукатурки со значением по умолчанию 20мм
3. Запрос на точку вставки результата в метрах квадратных с точностью до сотых

Б. Отдельная программа на суммирование указанием или рамкой.
Желательно с безразличием к разделителям точка или запятая, так как бывает после невнимательного ручного вмешательства эти знаки заменяются, и имеющаяся у меня программа дробную часть игнорирует.

Пожелания:
Красивости типа диалоговых окон не нужны – тормозят они работу, лучше запросы в командной строке
В опциях запроса на указание внутренней точки можно (но не обязательно) дать запрос на масштаб для универсальности, по умолчанию 1:1.
Также для универсальности (но тоже не обязательно) в запросе на точку вставки результата в опциях можно дать вариант на вывод результата в единицах чертежа и задания высоты текста.
Есть еще ньюанс – криворукость чертежей, то-есть незаметная нестыковка линий, ну да уж бог с ними…

Что есть:
А
1. Уже встречалось во многих программах здесь на DWG.ru
2. Есть в прилагаемой программе
3. Есть везде
Б
1. Есть в разных программах. Есть и в прилагаемой программе, но требует доработки

Вот такая получается солянка, почти все вроде есть в разных местах, а вот в кучку собрать не умею.
Может сможет кто-нибудь осуществить подвиг? Или уже есть у кого-нибудь такое не жалкое чтобы поделиться? Или уже было где-нибудь, так ткните посильней туда!
Думаю, что признательность человечества будет безразмерной, по крайней мере присутствующей здесь части. Я первый говорю СПАСИБО!
[ATTACH]1164904211.rar[/ATTACH]
Юрий Губский вне форума  
 
Непрочитано 01.12.2006, 10:51
#14
Юрий Губский

архитектура
 
Регистрация: 28.12.2005
Домодедово
Сообщений: 120


Если к приложенной выше программе добавить хотя бы перый пункт - выбор площади указанием внутренней точки с исключением островков (колонн) то лично меня это уже устороило бы. Все остальные пожелания только для универсальности, так как судя по темам у всех свои пожелания и решение этих вопросов устроило бы процентов 90 нуждающихся.
Юрий Губский вне форума  
 
Непрочитано 01.12.2006, 11:06
#15
Кулик Алексей aka kpblc
Moderator

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


http://dwg.ru/dnl/184
http://dwg.ru/forum/viewtopic.php?t=558
http://home.pacifier.com/~NEMI
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=30724Ed
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=19561RU
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=19990VG
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=19664yZ
---
Код не тестировал и не правил.
---
ADT и его средства для простановки и учета площадей (ИМХО) будут более удобными.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.12.2006, 12:06
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Б. Отдельная программа на суммирование указанием или рамкой.
Желательно с безразличием к разделителям точка или запятая, так как бывает после невнимательного ручного вмешательства эти знаки заменяются, и имеющаяся у меня программа дробную часть игнорирует.
Мы используем эту

Код:
[Выделить все]
;|============= Команда SumT ==================================
  Назначение:  Суммирование Тектса,Мтекста указанием или рамкой.
  Особенности: Безразлична к разделителям точка или запятая.
               Ввиду особенности работы atof стоки вида "22.3мама"
               будут учтены как число 22.3
               При выводе результата число округляется в соответствии
               с текущими установками переменной LUPREC. Команда _UNITS
|;
(defun c:sumT ( / res selset ins_pt txt_height) 
 (vl-load-com)(setq res 0.)
 (if (setq selset (ssget '((0 . "TEXT,MTEXT")))) 
    (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset))) 
      (setq res (+ res (atof (VL-STRING-TRANSLATE "," "." (vla-get-textstring (vlax-ename->vla-object ent))))))
      ) ;_ end of foreach 
    ) ;_ end of if
  (princ "\nРезультат=")(princ (rtos res 2))
  (if (not (equal res 0. 1e-3))
    (progn 
      (if (not (setq txt_height (getreal "\nВведите высоту текста <2.5> : ")))(setq txt_height 2.5))
      (mip-text-draw (rtos res 2)(setq ins_pt (lib:point-offscreen)) txt_height 0 nil)
      (command "_.copybase" ins_pt (entlast) "" "_.erase" (entlast) "" "_.pasteclip" pause) 
      ) ;_ end of progn 
    ) ;_ end of if
   (princ) 
  )
(princ "\nНаберите в командной строке SumT")
VVA вне форума  
 
Непрочитано 05.12.2006, 01:19
#17
Юрий Губский

архитектура
 
Регистрация: 28.12.2005
Домодедово
Сообщений: 120


Я же говорю, искал, но не нашел того, что описал – подсчет площади помещений со штукатуркой указанием области с исключением островков (колонн). Ссылки видел, на всякий случай проверил – очень близка программа Владимира Громова, почти один к одному что есть у меня (может быть его ранняя версия?), но без указания области и блока суммирования, хотя последний блок у него есть отдельно. Подсчет штукатурки только, насколько я «понял», у него считается точнее.
Кстати, в выложенном здесь лиспе есть интересная функция изменения формы объекта с сохранением площади.
В целом насчет ADT согласен – читал, но не пробовал. Правильно ли я понял, что штукатурку(?) при подсчете площадей там задать можно? Проблема в том, что для правильной организации работы надо всех сажать на него, что проблематично.

Код считает, но к сожалению не дает вставить текст:

Результат=320.52
Введите высоту текста <250> :
; error: no function definition: LIB:POINT-OFFSCREEN

Нашел в других местах, только не столь краткое решение.

Спасибо за ответы, но пока желаемого решения не нашел. Эх, знал бы лисп…
:cry:
Юрий Губский вне форума  
 
Непрочитано 05.12.2006, 12:15
#18
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Извини, вечно забываю библиотечные ф-ции
Код:
[Выделить все]
;|============= Команда SumT ================================== 
  Назначение:  Суммирование Тектса,Мтекста указанием или рамкой. 
  Особенности: Безразлична к разделителям точка или запятая. 
               Ввиду особенности работы atof стоки вида "22.3мама" 
               будут учтены как число 22.3 
               При выводе результата число округляется в соответствии 
               с текущими установками переменной LUPREC. Команда _UNITS 
|; 
(defun c:sumT ( / res selset ins_pt txt_height)
;|=============================================================================
*    Возвращает точку, лежащую за пределами текущего экрана.
=============================================================================|;
(defun lib:point-offscreen (/ VCTR Y_Len X_Pix Y_Pix X_len Lc)
(setq VCTR (getvar "VIEWCTR") Y_Len (getvar "VIEWSIZE")
   SSZ (getvar "SCREENSIZE") X_Pix (car SSZ) Y_Pix (cadr SSZ)
   X_Len (* (/ X_Pix Y_Pix) Y_Len) Lc (polar VCTR pi X_Len)
   Lc (polar Lc 4.71239 Y_Len))) ;_ end of defun
 (vl-load-com)(setq res 0.) 
 (if (setq selset (ssget '((0 . "TEXT,MTEXT")))) 
    (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset))) 
      (setq res (+ res (atof (VL-STRING-TRANSLATE "," "." (vla-get-textstring (vlax-ename->vla-object ent)))))) 
      ) ;_ end of foreach 
    ) ;_ end of if 
  (princ "\nРезультат=")(princ (rtos res 2)) 
  (if (not (equal res 0. 1e-3)) 
    (progn 
      (if (not (setq txt_height (getreal "\nВведите высоту текста <2.5> : ")))(setq txt_height 2.5)) 
      (mip-text-draw (rtos res 2)(setq ins_pt (lib:point-offscreen)) txt_height 0 nil) 
      (command "_.copybase" ins_pt (entlast) "" "_.erase" (entlast) "" "_.pasteclip" pause) 
      ) ;_ end of progn 
    ) ;_ end of if 
   (princ) 
  ) 
(princ "\nНаберите в командной строке SumT")
VVA вне форума  
 
Непрочитано 05.12.2006, 15:18
#19
Юрий Губский

архитектура
 
Регистрация: 28.12.2005
Домодедово
Сообщений: 120


Что-то опять не ладится... :cry:
Вот результат работы:

Command: _SumT
Select objects: Specify opposite corner: 3 found

Select objects:

Результат=27.95
Введите высоту текста <2.5> : 100
*Cancel*
no function definition: MIP-TEXT-DRAW
Command:
Command:
Юрий Губский вне форума  
 
Непрочитано 05.12.2006, 17:50
#20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Переписал, вроде должно работать
Код:
[Выделить все]
;|============= Команда SumT ================================== 
  Назначение:  Суммирование Тектса,Мтекста указанием или рамкой. 
  Особенности: Безразлична к разделителям точка или запятая. 
               Ввиду особенности работы atof стоки вида "22.3мама" 
               будут учтены как число 22.3 
               При выводе результата число округляется в соответствии 
               с текущими установками переменной LUPREC. Команда _UNITS 
|; 
(defun c:sumT ( / res selset ins_pt txt_height) 
 (vl-load-com)(setq res 0.) 
 (if (setq selset (ssget '((0 . "TEXT,MTEXT")))) 
    (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset))) 
      (setq res (+ res (atof (VL-STRING-TRANSLATE "," "." (vla-get-textstring (vlax-ename->vla-object ent)))))) 
      ) ;_ end of foreach 
    ) ;_ end of if 
  (princ "\nРезультат=")(princ (rtos res 2)) 
  (if (not (equal res 0. 1e-3)) 
    (progn 
      (if (= (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))) 0.0) ;_ end of =
        (progn ;; нулевая высота текста
	  (if (not (setq txt_height (getreal "\nВведите высоту текста <2.5> : ")))(setq txt_height 2.5)) 
          (vl-cmdf "_.TEXT" "0,0" txt_height 0 (rtos res 2))) ;_ end of progn
        (progn ;; фиксированнная высота
          (vl-cmdf "_.TEXT" "0,0" 0 txt (rtos res 2))) ;_ end of progn
         )
      (command "_.copybase" "0,0" (entlast) "" "_.erase" (entlast) "" "_.pasteclip" pause) 
      ) ;_ end of progn 
    ) ;_ end of if 
   (princ) 
  ) 
(princ "\nНаберите в командной строке SumT")
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > подсчет площадей