Тема: Спецификация для формообразующих элементов

Здравствуйте! Как посчитать совокупный объем бетона.
Бетон сделан с помощью формообразующих элементов.
Т.е. мне нужно чтобы объемы бетонов одного класса суммировались.
Как это сделать не могу докумекать.
Что-то и подобных примеров не было.
Пример по сортировке труб и фитингов, слишком громозкий.
Не все понимаю в формуле, поэтому применить ее для своего случая не могу.
Помогите, пожалуйста. Заранее спасибо!
Файл находится здесь http://webfiles.ru/files/34500733

Re: Спецификация для формообразующих элементов

Здравствуйте! Как посчитать совокупный объем бетона.

У вас какая версия по?

Re: Спецификация для формообразующих элементов

у меня версия AutoCAD MEP 2012. Пока не спешу переходить на 2013ю  :) .

Re: Спецификация для формообразующих элементов

Пока не спешу переходить на 2013ю  .

...дело хозяйское, но там можно сделать это без формул!

Re: Спецификация для формообразующих элементов

Серьёзно? Я подумывал о том что может в предыдущей все легче, но все не решался проверить.
К сожалению у нас пока весь отдел сидит на 2012. Спецификация предназначены для многих из них.
Переход будем делать в середине - конце этого года. Ждём 2го сервис пака, обычно после них версии более-менее
начинают работать стабильно. Так что без формул видимо не обойтись. Подскажите уж пожалуйста, как все это сделать с формулами. И мне полезнее будет, еще один пример использования формул себе в копилку положу. :)

Re: Спецификация для формообразующих элементов

Подскажите уж пожалуйста

...вероятность того, что получится группировать по свойству Classification очень мала!
Помнится я уже брался за такую задачу... Не получилось!

Re: Спецификация для формообразующих элементов

Жаль.  :cry:
Что ж буду смотреть на 2013, гляну что и как там можно сделать.
Пока пусть тогда считают полуавтоматическим способом, переводят в простую таблицу автокада
и там уже группируют и суммируют.
Спасибо, за подсказку.

Re: Спецификация для формообразующих элементов

хотя и мала вероятность, но всё же есть! Ждите...

Re: Спецификация для формообразующих элементов

Хорошо, спасибо за надежду! Буду ждать.  :)

Re: Спецификация для формообразующих элементов

Command: MASSGROUPADD



Select elements to attach: Specify opposite corner: 3 found


Select elements to attach:
Location:
Attaching elements...
3 element(s) attached.
Command:
Command: LIST
1 found

                  AEC_MASS_GROUP  Layer: "ADT---MassGroup"
                            Space: Model space
                   Handle = ef3c

         Insertion : (-63274.286, -37131.429, 0.000)
          Rotation : 0.00
            Normal : (0.000, 0.000, 1.000)
            Volume : 181.0285
     Element Count : 3
    Entity Element : AecDbMassElem : EF2F
         Operation : Addition
    Entity Element : AecDbMassElem : EF2E
         Operation : Addition
    Entity Element : AecDbMassElem : EF2D
         Operation : Addition

Re: Спецификация для формообразующих элементов

подсчет бетона

Re: Спецификация для формообразующих элементов

Yuriy, большое спасибо. Любопытное решение.
Т.е. все бетоны одного класса заключаем в одну группу.
Ну и соответственно, идет суммирование объемов бетонов в группе.
Ясно, все решилось без формул.  :)
Интересно, а в какие еще группы можно объединять элементы,
для получения подобного решения, помимо композиционных групп?

Re: Спецификация для формообразующих элементов

Других способов объединения, к сожалению, не знаю
добавлю только, что при подсчете объемов бетона из 3D модели, состоящей из разнотипных объектов (стены, перекрытия, несущие элементы и т.п. приходилось создавать КЭП, отображающую только бетонную составляющую и только после этого объединять их в группы для получения итогового объема бетона.
Но давно это было )
Не помню точно в какой версии. Вроде в 2006 или 2008.
В более поздней версии этот прием уже не работал (((
В последних версиях не проверял...

(изменено: Vitaly, 16 января 2013г. 12:02:53)

Re: Спецификация для формообразующих элементов

Андрей Лаврентьев
Вариант с группировкой по классам требует времени, чтобы разобраться с форматом самого классификатора,
видимо он содержит внутри не только то, что мы видим на экране, поэтому применить его в формуле ПОКА не получается!
Могу предложить вариант группировки бетона не по классификации, а по стилям.
Т.е. Берёте с палитры инструмент Masselement c определённым стилем, рисуете, собираете в таблицу.
Кстати стилям можно назначить разные цвета.
Дайте знать, если такой вариант устраивает.

Юра привет!
Видел твои сообщения по ADR, жду их окончания, всё остаётся в силе!

Re: Спецификация для формообразующих элементов

Виталий привет!
в ближайшие выходные завершу...
Виталий, а создавать по "системам" это как?
Если можно приведи соответствующее название в английской версии.

(изменено: Vitaly, 16 января 2013г. 12:00:03)

Re: Спецификация для формообразующих элементов

Юра, оговорился, группировка по стилям!
Хотя в MEP есть ещё и system (система), например, горячая вода, холодная, провод 220в и телефон.
Но в данном случае я просто оговорился, лучше сделать по стилям, чтобы и для ACA и для MEP  было доступно.
Ps
... Кстати, ты не мог бы посмотреть лиспом, что там в классификаторе зашито?
Например:
1. создаём чистый (без шаблона) файл
2.рисуем массэлемент
3.присваиваем ему классификатор, типа xxxxxxxxx, чтобы легче было найти
4. И смотрим лиспом, как выглядит этот наш классификатор, нет ли рядом каких-нить
тире, например или др. доп. символов.

Сможешь?

Re: Спецификация для формообразующих элементов

OK, понятно...

В выходные попробую лиспом посмотреть...

Re: Спецификация для формообразующих элементов

Добрый день! Попытался сгруппировать по стилям.
Выбираю формообразующие элементы одного стиля, командой "выбрать аналог".
Затем по выбранным элементам щелкаю правой кнопкой мыши и выбираю команду "сформировать произвольное формообразующее тело".
Получаемое тело имеет суммарный объем всех тел.
Пример по ссылке http://webfiles.ru/files/34613956
Vitaly, Вы хотели что-то подобное предложить? Или я не так понял?

Re: Спецификация для формообразующих элементов

создал новый классификатор
назначил классификатор в стиле массэлемента
пока посмотрел по entget и vlax-dump-object
но информация о классификаторах отсутствует

-----
Данные объекта по entget -
-----
(-1 . <Entity name: 7ffffa3a880>)
(0 . "AEC_MASS_ELEM")
(330 . <Entity name: 7ffffa03f00>)
(5 . "1E8")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "A-Area-Mass")
-----
Дамп объекта
-----
; IAecMassElement: General Mass Element for conceptual modeling, uses faceted
representation of solid shapes
; Property values:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 0000000140f891d8>
;   BoundSpaces = 2
;   Depth = 32.7831
;   Description = ""
;   Deviation = 0.0
;   Document (RO) = #<VLA-OBJECT IAcadDocument 0000000026804340>
;   Handle (RO) = "1E8"
;   HasExtensionDictionary (RO) = 0
;   Height = 51.9529
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 00000000317addf8>
;   Layer = "A-Area-Mass"
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Location = (237.412 152.682 0.0)
;   MassGroup = nil
;   MassGroupName = "*NONE*"
;   Material = "ByLayer"
;   Normal = (0.0 0.0 1.0)
;   ObjectID (RO) = 42
;   ObjectID32 (RO) = 42
;   ObjectName (RO) = "AecDbMassElem"
;   Operation = 0
;   OwnerID (RO) = 43
;   OwnerID32 (RO) = 43
;   PlotStyleName = "ByLayer"
;   Profile = #<VLA-OBJECT IAecProfile 000000003153c840>
;   ProfileStyle = nil
;   ProfileStyleName = "*EMBEDDED*"
;   Radius = 0.0
;   Rise = 0.0
;   Rotation = 0.0
;   ShadowDisplay = 0
;   Style = #<VLA-OBJECT IAecMassElementStyle 00000000025b2580>
;   StyleName = "Standard (2)"
;   SubType (RO) = 0
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 0000000031833c30>
;   Type = 12
;   Visible = -1
;   Volume (RO) = 5.13031e-005
;   Width = 30.1219

-------------------------------
Тип объекта
-------------------------------
AEC_MASS_ELEM
AcDbEntity

Re: Спецификация для формообразующих элементов

понятно, что без .Net тут нечего делать...

(изменено: Yuriy, 23 января 2013г. 12:21:21)

Re: Спецификация для формообразующих элементов

обратил внимание на строку
; Volume (RO) = 5.13031e-005
т.е. теоретически распределив масс элементы по слоям или др. какими либо автокадовскими способами
лиспом можно просуммировать объемы нужных групп масс элементов не объединяя их в massgroup

(изменено: Vitaly, 27 января 2013г. 00:57:44)

Re: Спецификация для формообразующих элементов

Ну вот и долгожданный [B]бетон по классам[/B]!
[URL=http://rghost.ru/43308068]MassElemGroupByClass-2013-ENG.dwg[/URL]
[URL=http://rghost.ru/43336395]MassElemGroupByClass-2012-RUS.dwg[/URL]
Для ACA MEP 2013-2012 ENG RUS

[B]Бетон по стилям[/B]
[URL=http://rghost.ru/43334748]MassElemGroupByStyles2012-RUS.dwg[/URL]
Для ACA MEP 2012 RUS

[img]http://content.screencast.com/users/Vit … yClass.gif [/img]

Re: Спецификация для формообразующих элементов

Vitaly, большое спасибо Вам, что не бросаете нас, начинающих, одних со своими проблемами.  :)
Жалко, конечно, что пока именно для нас это решение рановато. Работаем на 2012м МЕПе.

На всякий случай сообщаю, что добавление объектов в таблицу не работает уже несколько версий, в 2014-ть
тоже.

таких проблем в 2012й версии не наблюдал. Все прекрасно добавлялось и удалялось.

А пока имею такую проблему для 2012 МЕПа.
В чертеже имеется много бетонов разных марок. Каждая марка бетона в своем стиле. Не могу найти оптимальный алгоритм действий для подсчета объемов бетонов. Так чтобы проектировщик смог самостоятельно все проделать.
http://webfile.ru/6338430
В программировании не силен. Составил макрос для кнопки. Автоматом выбирает один стиль бетонов, помещает его в группу, при помощи операции сложения складывает, и разгруппировывает. Дальше как выбрать следующий стиль не знаю. Пока в тупике. Надеюсь на дельные советы. Макрос

^C^C_SELECTSIMILAR;п;;_group;;1;;MASSELEMENTUNION;п;г;1;;д;разгрупп;т;

прошу не пинать за смесь команд на русском и английском  :)
Возможно есть путь полегче.

Re: Спецификация для формообразующих элементов

Андрей Лаврентьев пишет:

А пока имею такую проблему для 2012 МЕПа.
В чертеже имеется много бетонов разных марок. Каждая марка бетона в своем стиле. Не могу найти оптимальный алгоритм действий для подсчета объемов бетонов.



; подсчет объема masselement по стилям
(defun c:test ()
   (setq _nab (ssget '((0 . "AEC_MASS_ELEM")))  )
   (setq _sp '())
   (setq _i -1)
   (repeat (sslength _nab)
      (setq _i (1+ _i))
      (setq _ob (vlax-ename->vla-object (ssname _nab _i)))
      (setq _st (vlax-get-property _ob "StyleName"))
      (setq _v  (vlax-get-property _ob "Volume"))
      (setq _old (assoc _st _sp))
      (cond
    ( _old
      (setq _new (list (car _old) (+ _v (cadr _old))))
      (setq _sp (subst _new _old _sp))
    )
      )
      (if (null _old)  (setq _sp (cons (list _st _v) _sp)))
   ); repeat
   (foreach XXX _sp (print XXX))
(princ))



Command: test
Select objects: Specify opposite corner: 55 found
Select objects:
("Бетон кл.В1" 0.331699)
("Бетон кл.В60" 0.663398)
("Бетон кл.В20" 0.52519)

(изменено: Yuriy, 26 января 2013г. 07:56:09)

Re: Спецификация для формообразующих элементов

Vitaly пишет:

2014

Виталий, ты уже в 2014-ом  :?: