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

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

Сумма значений атрибутов

Ответ
Поиск в этой теме
Непрочитано 11.11.2013, 16:13 #1
Сумма значений атрибутов
ie.spb
 
Инженер
 
Регистрация: 21.08.2007
Сообщений: 598

Доброго времени суток. Есть такая проблема: имеются блоки с одним единственным атрибутом, надо сложить значения атрибутов. Думаю что для знающего человека написать небольшой код будет не сложно.
Вроде, такой же темы не нашел. Извлечение данных слишком долго. Хотелось бы просто выбрать блоки и получить сумму.
Имя атрибута "_Мощность".
Если у кого есть решения, выручайте.
Заранее спасибо
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
Просмотров: 7040
 
Непрочитано 11.11.2013, 16:27
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Пара способов без программирования (см. в Поиске описано не раз)
1.Извлечение данных
2. ATTOUT, потом Excel
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 11.11.2013, 16:37
#3
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 598
<phrase 1=


Спасибо. Но про эти способы я знаю. Они все равно долгие.
У меня на плане куча разных светильников, они поделены на группы. Задача стоит подсчитать мощность отдельно взятой группы. Это бы крайне ускорило рабочий процесс
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb на форуме  
 
Непрочитано 11.11.2013, 17:11
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


SQL
trir вне форума  
 
Непрочитано 11.11.2013, 17:12
#5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515



Задача элементарная, но лучше этой теме быть в поиске исполнителей

Последний раз редактировалось Кулик Алексей aka kpblc, 11.11.2013 в 19:16.
gomer вне форума  
 
Непрочитано 11.11.2013, 17:40
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от ie.spb Посмотреть сообщение
У меня на плане куча разных светильников, они поделены на группы. Задача стоит подсчитать мощность отдельно взятой группы
При такой постановке задачи, решение от gomer"a наилучшее.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 11.11.2013, 17:44
#7
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 598
<phrase 1=


Я же говорю, атрибут у всех один и тот же. В него вписана мощность. Задача стоит выбрать блоки и сложить значения атрибутов
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb на форуме  
 
Непрочитано 11.11.2013, 19:12
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


http://google.gik-team.com/?q=%D0%9F...9+forum.dwg.ru
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 11.11.2013, 19:53
#9
beeliy


 
Регистрация: 07.05.2012
Сообщений: 6


Получилось примерно так:
Код:
[Выделить все]
 (DEFUN C:SummAtrib ()
  (vla-addText
    (vla-get-ModelSpace
      (vla-get-ActiveDocument (vlax-get-acad-object))
    )
    (APPLY
      '+
      (MAPCAR
    '(LAMBDA (g)
       (ATOF (cdr
           (ASSOC
             1
             (entget
               (car
             (VL-REMOVE-IF-NOT
               '(lambda (y)
                  (= (cdr (ASSOC 2 (ENTGET y))) "_Мощность")
                )
               (MAPCAR
                 'vlax-vla-object->ename
                 (vlax-safearray->list
                   (vlax-variant-value
                 (vla-GetAttributes
                   (vlax-ename->vla-object
                     g
                   )
                 )
                   )
                 )
               )
             )
               )
             )
           )
         )
       )
     )
    (vl-remove-if
      'listp
      (mapcar 'cadr (ssnamex (ssget '((0 . "INSERT")))))
    )
      )
    )
    (vlax-3d-point
      (GETPOINT)
    )
    1
  )
)
Лисп не будет работать при выборе блока без атрибута "_Мощность".

Последний раз редактировалось beeliy, 11.11.2013 в 20:03.
beeliy вне форума  
 
Непрочитано 11.11.2013, 20:08
#10
Кулик Алексей aka kpblc
Moderator

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


В коде не учитывается вариант ввода нецелых чисел через точку или запятую - это что бросилось в глаза сразу. Заодно - значение атрибута может начинаться с пробела или какого-либо не числового символа. Ну и еще вариантов можно понапридумывать массу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.11.2013, 21:04
#11
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от ie.spb Посмотреть сообщение
Я же говорю, атрибут у всех один и тот же. В него вписана мощность. Задача стоит выбрать блоки и сложить значения атрибутов
А файл из разряда секретных ? Может ещё и по слоям подсчет вести, ведомость сразу сделать или спецификацию ?
maratovich вне форума  
 
Автор темы   Непрочитано 11.11.2013, 21:20
#12
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 598
<phrase 1=


Спасибо за ответы. По поводу #9 пишет:
Цитата:
; error: bad argument type: lentityp nil
Цитата:
Сообщение от maratovich Посмотреть сообщение
А файл из разряда секретных ? Может ещё и по слоям подсчет вести, ведомость сразу сделать или спецификацию ?
Нет конечно, файл не секретный. Добавил во вложение. А на счет слоев и ведомостей это пожалуй лишнее. Просто я считал, что каким то образом извлечь значение атрибута не очень сложно, ну не считая извлечение данных, конечно
Цитата:
Сообщение от Do$ Посмотреть сообщение
http://google.gik-team.com/?q=%D0%9F...9+forum.dwg.ru
Прикольно. Возьму на заметку.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В коде не учитывается вариант ввода нецелых чисел через точку или запятую - это что бросилось в глаза сразу. Заодно - значение атрибута может начинаться с пробела или какого-либо не числового символа. Ну и еще вариантов можно понапридумывать массу.
Цифры только целые, это точно. Значение атрибута без пробелов и без любых других символов.
Вложения
Тип файла: dwg
DWG 2007
Пример.dwg (86.6 Кб, 2339 просмотров)
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb на форуме  
 
Непрочитано 11.11.2013, 21:38
#13
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Как вариант решения задачи. В архиве принскрины.
Вложения
Тип файла: zip Как вариант.zip (208.2 Кб, 115 просмотров)
maratovich вне форума  
 
Автор темы   Непрочитано 11.11.2013, 21:47
#14
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 598
<phrase 1=


Цитата:
Сообщение от maratovich Посмотреть сообщение
Как вариант решения задачи. В архиве принскрины.
А что это такое? Если не секрет, конечно
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb на форуме  
 
Непрочитано 11.11.2013, 21:53
#15
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от ie.spb Посмотреть сообщение
А что это такое? Если не секрет, конечно
Программа TECHBRAS предназначена для автоматического получения спецификации элементов и деталей в программе AutoCAD при использовании в любой сфере деятельности. Позволяет автоматически произвести поиск блоков с атрибутами, на основе которых строится таблица спецификации, подсчитываются и суммируются значения количества и других требуемых данных, заполняется ведомость по расположению блоков по слоям. Автоматически производится экспорт таблиц спецификации и ведомости в Word, Excel, AutoCAD.
Основным преимуществом является универсальная настройка большинства параметров, которая позволяет настроить программу под Ваши потребности и желания – по принципу «Я хочу, чтобы было именно так!».

Подробнее здесь или в личку.
maratovich вне форума  
 
Непрочитано 11.11.2013, 23:36
#16
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от beeliy Посмотреть сообщение
Лисп не будет работать
Да, не будет. Так спешили что все перепутали, вот и не будет
А у меня будет
Код:
[Выделить все]
 (defun C:CALCLIGHT (/ *error*)
  (defun *error* (msg) (princ))
  ( (lambda (ss pt)
      (if (and ss pt)
        ((lambda (str)
           (vla-addtext
             (vla-get-Block
               (vla-get-activelayout
                 (vla-get-activedocument (vlax-get-acad-object))
               )
             )
             str
             (vlax-3d-point pt)
             250
           )
         )
          (itoa
            (apply
              '+
              (mapcar
                (function
                  (lambda (x)
                    (atoi
                      (vla-get-TextString
                        (car
                          (vlax-safearray->list
                            (vlax-variant-value
                              (vla-getattributes (vlax-ename->vla-object x))
                            )
                          )
                        )
                      )
                    )
                  )
                )
                (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
              )
            )
          )
        )
      )
    )

    (progn
      (prompt "\nВыберите светильники для расчета")
      (ssget
        ;; "_X"
        '
         ((0 . "INSERT")
          (2 . "_Светильник1")
         )
      )
    )

    (progn
      (initget 1)
      (getpoint "\nУкажите точку вставки текста: ")
    )
  )
)
По всем вопросам допила
Цитата:
Сообщение от maratovich Посмотреть сообщение
в личку
договоримся
gomer вне форума  
 
Непрочитано 22.10.2014, 01:22
#17
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


Цитата:
Сообщение от gomer Посмотреть сообщение
По всем вопросам допила

Цитата:
Сообщение от maratovich
в личку

договоримся
Вот же жмикрут!
Nike вне форума  
 
Непрочитано 22.10.2014, 08:29
#18
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Nike, свободен
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Сумма значений атрибутов



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль значений атрибутов при вставке блока swkx Программирование 5 28.02.2013 21:17
LISP. Сумма значений аттрибутов блоков. dirge LISP 8 16.07.2012 19:05
Извлечение значений атрибутов блоков AutoCAD Electrical с помощью AutoLisp zaraki_kenpachi LISP 16 19.02.2011 15:30
Поля атрибутов вложенного блока не отображают своих значений hwd AutoCAD 7 23.12.2009 08:40
Потеря значений атрибутов блоков, вставленных в ячейки таблицы Дмитрий Голованов AutoCAD 2 17.12.2009 08:57