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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Где можно применить "Извлечение данных"(_.dataextraction)?

Где можно применить "Извлечение данных"(_.dataextraction)?

Ответ
Поиск в этой теме
Непрочитано 14.07.2008, 05:13
Где можно применить "Извлечение данных"(_.dataextraction)?
wetr
 
инженер
 
Владивосток
Регистрация: 09.08.2006
Сообщений: 1,535

Думаю можно начать новую тему, посвященную применению команды _.dataextraction. По крайней мере поделюсь своими способами использования по просьбе Red Nova. Может еще, кому пригодится.
Команда dataextraction появилась впервые в 2008 Автокаде и находится в меню Tools-Data Extraction. Прототипом послужила команда _eattext (Извлечение атрибутов), но в отличие от предшественника dataextraction имеет намного больше возможностей и полностью оправдывает свое название. Помимо атрибутов могут извлекаться такие данные как:
- слои
- гиперссылки
- длины
- параметры динамических блоков
- т.д.
Вообще говоря, можно извлекать практически любые параметры любых примитивов в чертеже, или нескольких чертежах (файлах).
Хотелось бы сделать акцент на извлечение свойств динамических блоков. Здесь очень много возможностей. Например, всевозможные спецификации.

В "примере_1" содержится спецификация композитных панелей вент. фасада. Надо сказать, что проектирование фасадов, пока довольно специфическая область, и здесь нет такого количества наработок, как в металле или железобетоне. Приходится "изобретать велосипед" как раз с помощью dataextraction. Принцип очень прост. Раскладываем панели/динамические блоки. Создаем 1 раз стиль таблицы. Запускаем dataextraction - и указываем объекты и параметры, которые будем извлекать. В таблице есть возможность делать дополнительные столбцы, содержащие формулы, а также стоку "Итого", "Минимум", "Максимум", "Среднее". Получаем таблицу с размерами, количеством и площадью панелей, и площадью композита (с учетом загибов). Спецификация готова.
Самое приятное в таких спецификациях - обновление таблицы, нажатием на 1 кнопку. Т.о. доступен постоянный мониторинг количества элементов.
Таким же образом делаются спецификации для железобетона, например (см. файл «КЖ»).
Но лучше IMHO, их делать VetCAD_ом.
Другой вариант – получение Ведомости рабочих чертежей. Тема уже поднималась здесь http://dwg.ru/f/showthread.php?t=145...t=%E0%E2%F2%EE
Создаем блок с атрибутами «Лист» и «Наименование чертежа». Последний атрибут лучше делать многострочным.
Далее по тому же сценарию получаем ведомость, которая обновляется при добавлении нового блока/штампа. Образец см. в файле «пример_1» на листе 1
А где вы применяете эту команду?

P.S. Хотелось бы заострить внимание, что использовать лучше Автокад 2009. В 2008 очень много багов именно в данной команде, что сводит на нет все усилия…
Что-то много букав палучилось

Вложения
Тип файла: rar ДЛЯ форума.rar (403.1 Кб, 1361 просмотров)

__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 09.03.2009 в 12:04.
Просмотров: 56692
 
Непрочитано 26.09.2019, 12:44
1 | #101
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от unvip Посмотреть сообщение
подвязать данные экселевской таблицы к таблице извлечений данных
либо немного связки программирование + извлечение данных)
1. Делается в экселе "умную" таблицу в таком же виде, как выглядит спецификация (назовем таблицу tbl_Data на листе DataSheet) и заполняете ее данными. Только в начале добавляете столбец ID, который будет содержать уникальный идентификатор (если заполняете таблицу вручную, то просто делаете над таблицей поле с формулой "=МАКС(tbl_Data[ID])+1" и оно будет показывать следующий свободный ID для таблицы).

2. В блоках делаете один вспомогательный скрытый атрибут.

3. В редакторе VBA экселя на странице кода листа DataSheet реализуете обработчик двойного клика по ячейке вида:

Код:
[Выделить все]
' Обработчик двойного клика по ячейке листа
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  ' Получаем диапазон пересечения с таблицей данных
  Dim lRange As Range
  Set lRange = Application.Intersect(Target, _
    DataSheet.ListObjects("tbl_Data").DataBodyRange)
  ' Если двойной клик вне таблицы данных - выходим
  If (lRange Is Nothing) Then Exit Sub
  ' Отменяем вызов редактирования ячейки по двойному клику
  Cancel = True
  ' Получаем идентификатор строки
  Dim lIDRow As Long: lIDRow = DataSheet.Cells(lRange.Row, 1).Value
  
  Выбор вставки блока и запись в его скрытый атрибут значения lIDRow, 
  примеры кода легко находятся на просторах инета
  
End Sub

И, соответственно, используя поиск на странице экселя, находите нужные строки, а затем двойным кликом по строкам вызываете макрос и выбирая вставки блока, автоматически в их скрытый атрибут прописывается ID выбранной позиции из таблицы экселя. А можно сначала проверять наличие предварительного выбора вставок блока на чертеже, и только при отсутствии предварительного выбора запрашивать уже у пользователя примитивы - это позволит использовать механизмы акада для поиска/выделения примитивов.

4. Извлекаете данные стандартным путем, получаете ID и их количество. А дальше заносите данные в книгу эксель и формулами по ID подтягиваете все необходимые значения для составления спецификации. Также можно подтянуть данные для расчетов при необходимости. А если нужно добавить/убрать какие то дополнительные данные - то правите лишь таблицу tbl_Data экселя, не нужно шаманить с синхронизацией атрибутов той же. В блоках чертежа храниться лишь ID, акад вообще не знает - что к ним какие-то данные привязаны.

А можно вместо скрытого атрибута использовать XData - и тогда вообще можно работать с любыми блоками, есть там скрытый атрибут или нет.. Данные развязаны.

Единственный минус - не видно привязанные данные в явном виде, поэтому какие то атрибуты для визуальной идентификации пользователя все же придется делать и так же их заполнять из таблицы tbl_Data вместе с ID. Но не надо дублировать полностью все необходимые данные, большая их часть будет в файле экселя.
Сергей812 вне форума  
 
Непрочитано 28.09.2019, 15:29
#102
Кондратий Тихонович


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Делается в экселе "умную" таблицу
А как мою задачу решить?
Чтобы в столбце "скриншот" были скриншоты участков схемы, содержащих ошибку/
И чтобы скриншот был кликабельный.
Т.е. чтобы при двойном клике мышкой по нему я автоматом попадал в то место в автокадовском файле, откуда этот скриншот взят.

----- добавлено через ~1 мин. -----
я в автокаде выделяю места ошибок "пометочными облаками".
Так вот, пометочное облако служит границей скриншота

Последний раз редактировалось Кондратий Тихонович, 28.09.2019 в 15:34.
Кондратий Тихонович вне форума  
 
Непрочитано 28.09.2019, 16:09
#103
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от Кондратий Тихонович Посмотреть сообщение
А как мою задачу решить?
Чтобы в столбце "скриншот" были скриншоты участков схемы, содержащих ошибку/
Стандартное извлечение данных не поддерживает создание скриншотов. И хэндл "облака" вроде тоже нельзя извлечь, чтобы по нему потом позиционироваться по двойному клику в ячейке листа экселя.

Offtop: Ваша задача решается программированием - можно и описание добавить, и скриншот сделать, и позиционирование/зумирование по двойному клику в палитре в самом акаде (это применительно к .Net).
Сергей812 вне форума  
 
Непрочитано 16.02.2020, 12:12
#104
mvz

Генпланист, AutoCad 2009 Eng
 
Регистрация: 26.06.2008
Москва
Сообщений: 33


Цитата:
Сообщение от maska_v Посмотреть сообщение
можно что б данные выводились в порядке выбора обьектов?
Вы нашли решение этой задачи?
mvz вне форума  
 
Непрочитано 16.02.2020, 15:57
#105
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от mvz Посмотреть сообщение
Вы нашли решение этой задачи?
А Вам точно надо каждый раз выбирать объекты в нужном порядке? Или для Ваших задач порядок приходится менять? Может все же придумать идентификатор (отдельный атрибут или поле гиперссылки) с порядковым номером. А нумерацию задавать каким-нибудь макросом, коих много предлагают.
Theodor вне форума  
 
Непрочитано 16.02.2020, 16:05
#106
mvz

Генпланист, AutoCad 2009 Eng
 
Регистрация: 26.06.2008
Москва
Сообщений: 33


Цитата:
Сообщение от Theodor Посмотреть сообщение
А Вам точно надо каждый раз выбирать объекты в нужном порядке? Или для Ваших задач порядок приходится менять? Может все же придумать идентификатор (отдельный атрибут или поле гиперссылки) с порядковым номером. А нумерацию задавать каким-нибудь макросом, коих много предлагают.
Есть штриховки зон, над ними обычным MText написаны номера.
Зоны могут быть перенесены в новые слои, может меняться нумерация.
Например, MText я перенумеровываю с помощью автонумератора, выделяю поочередно тексты в нужном порядке и нумерация меняется.
А в след за этим хотелось бы также выделять поочередно штриховки и собирать данные о площади, чтобы внести в сводную таблицу зон.

Возможно, это можно делать другим способом.
mvz вне форума  
 
Непрочитано 16.02.2020, 16:15
#107
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от mvz Посмотреть сообщение
Например, MText я перенумеровываю с помощью автонумератора, выделяю поочередно тексты в нужном порядке и нумерация меняется.
А в след за этим хотелось бы также выделять поочередно штриховки и собирать данные о площади, чтобы внести в сводную таблицу зон.
группировать текст и штриховку? Правда потом все равно программно скорее всего.
Сергей812 вне форума  
 
Непрочитано 16.02.2020, 16:49
#108
mvz

Генпланист, AutoCad 2009 Eng
 
Регистрация: 26.06.2008
Москва
Сообщений: 33


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
группировать текст и штриховку?
Попробовал.
При извлечении, когда выделяем, выделяет как группы, но в таблице представляет как текст и штриховку отдельно.
mvz вне форума  
 
Непрочитано 16.02.2020, 17:03
#109
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Просто
Цитата:
Сообщение от mvz Посмотреть сообщение
Попробовал.
При извлечении, когда выделяем, выделяет как группы, но в таблице представляет как текст и штриховку отдельно.
ну у меня были подозрения, что извлечение их не видит)
ну тогда остаются из стандартных средств акада гиперссылки (хоткей Ctrl + K), как советовал выше Theodor. Значение отображаемого текста гиперссылки попадают в извлечение, дублировать значения в гиперссылках можно - т.е. одно значение на штриховку и текст.
Сергей812 вне форума  
 
Непрочитано 16.02.2020, 17:36
#110
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
дублировать значения в гиперссылках можно - т.е. одно значение на штриховку и текст
вот тут уже мне стало интересно: это как-то автоматом или просто ручками?
Theodor вне форума  
 
Непрочитано 16.02.2020, 17:43
#111
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от Theodor Посмотреть сообщение
вот тут уже мне стало интересно: это как-то автоматом или просто ручками?
штатного функционала нет - так что ручками. Ну а так можно нумератор какой-нибудь дописать - чтобы он помимо нумерации текста еще и гиперссылку к тексту добавлял, а так же просил указать штриховку связанную и ей ту же гиперссылку добавлял.
Сергей812 вне форума  
 
Непрочитано 16.02.2020, 19:04
#112
trir


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


Цитата:
Есть штриховки зон, над ними обычным MText написаны номера.
Зоны могут быть перенесены в новые слои, может меняться нумерация.
Например, MText я перенумеровываю с помощью автонумератора, выделяю поочередно тексты в нужном порядке и нумерация меняется.
А в след за этим хотелось бы также выделять поочередно штриховки и собирать данные о площади, чтобы внести в сводную таблицу зон.

Возможно, это можно делать другим способом.
конечно, это прекрасно делается штатными инструментами Map 3D
trir вне форума  
 
Непрочитано 16.02.2020, 19:16
#113
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Еще есть "костыли". Ну или как это еще называют. Промежуточные объекты, которые надо научить себя правильно применять, что бы получить автоматизацию на выходе.

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

Ограничения: штриховки надо не добавлять, а копировать с двумя текстами одновременно, в противном случае теряются привязки.

----- добавлено через ~26 мин. -----
есть еще ряд ограничений:
- нумерация должна быть из целых чисел от 1 до 49. Хотя это мой косяк. Что бы было до 99 надо в настройках формул извлечения данных вместо round поставить trunc.
- думаю, что можно сделать и дробные номера помещений типа 11.1, 45.5 - но надо будет поколдовать с формулами. А вот с наличием букв (7а, 18г) - увы... не прокатит.
Вложения
Тип файла: rar Площади штриховок с костылями.rar (43.8 Кб, 4 просмотров)
Theodor вне форума  
 
Непрочитано 04.05.2020, 20:57
#114
танбраун


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


Всем привет!

Такой вопрос: выгружаю данные в эксель и выгружаю таблицу в автокад. При изменении чертежа и если обновить связи с данными таблицы, тогда таблица обновляется согласно изменениям на чертеже, а таблица в экселе при нажатии на кнопку "выгрузить в исходный файл" не обновляется. Возможно ли что таблица в экселе также будет обновляться?
Вложения
Тип файла: zip пример.zip (610.9 Кб, 6 просмотров)
танбраун вне форума  
 
Непрочитано 06.05.2020, 18:59
#115
Melx


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


Цитата:
Сообщение от танбраун Посмотреть сообщение
Всем привет!

Такой вопрос: выгружаю данные в эксель и выгружаю таблицу в автокад. При изменении чертежа и если обновить связи с данными таблицы, тогда таблица обновляется согласно изменениям на чертеже, а таблица в экселе при нажатии на кнопку "выгрузить в исходный файл" не обновляется. Возможно ли что таблица в экселе также будет обновляться?
Вопрос не в ту тему. Вам в какую-нибудь из https://dwg.ru/cse?q=связь%20с%20Excel

По файлу во вложении. Создайте заново таблицу на основе связи с таблицы с эксель, у вас таблица с порушенной связью и всё заработает.
Melx вне форума  
 
Непрочитано 06.05.2020, 20:57
#116
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от танбраун Посмотреть сообщение
Такой вопрос: выгружаю данные в эксель и выгружаю таблицу в автокад. При изменении чертежа и если обновить связи с данными таблицы, тогда таблица обновляется согласно изменениям на чертеже, а таблица в экселе при нажатии на кнопку "выгрузить в исходный файл" не обновляется. Возможно ли что таблица в экселе также будет обновляться?
У вас таблица имеет статус "извлечение данных" и не связана ни с каким файлом эксель. А тот файл эксель, который вы получаете - по-моему одноразовый, и получается, когда вы проходите все окошки "редактировать извлечения". Так что, каждый раз, после того, как вы что-то обновите в чертеже и хотите получить итог извлечения в эксель, то надо через "редактирование извлечения", пройдя все окошки и получить новый файл. И форматирование в предыдущем файле эксель должно исчезнуть (точнее файл наглухо перезаписывается).
Theodor вне форума  
 
Непрочитано 07.05.2020, 09:04
#117
танбраун


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


Цитата:
Сообщение от Melx Посмотреть сообщение
По файлу во вложении. Создайте заново таблицу на основе связи с таблицы с эксель, у вас таблица с порушенной связью и всё заработает.
Таблица в автокаде создана путем извлечения данных, на последнем этапе извлечения данных, поставил галочки, чтобы данные извлекались в чертеж и в эксель и хотелось бы чтобы эти таблицы были связаны, но похоже как говорит "Theodor", таблица в эксель одноразовая.
танбраун вне форума  
 
Непрочитано 07.05.2020, 09:19
#118
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от танбраун Посмотреть сообщение
Таблица в автокаде создана путем извлечения данных, на последнем этапе извлечения данных, поставил галочки, чтобы данные извлекались в чертеж и в эксель и хотелось бы чтобы эти таблицы были связаны, но похоже как говорит "Theodor", таблица в эксель одноразовая.
Извлечение данных и связанные таблицы - это абсолютно разные вещи...
Сергей812 вне форума  
 
Непрочитано 07.05.2020, 09:32
#119
Melx


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


Цитата:
Сообщение от танбраун Посмотреть сообщение
Таблица в автокаде создана путем извлечения данных, на последнем этапе извлечения данных, поставил галочки, чтобы данные извлекались в чертеж и в эксель и хотелось бы чтобы эти таблицы были связаны, но похоже как говорит "Theodor", таблица в эксель одноразовая.
У меня все работает. Разве что значимые поля на пустые не заменяет, пользуйтесь пробелом если что.
И еще, фактически акад связывает определенные ячейки конкретной акадовской таблички - с определенными ячейками в Excel, так что записать новые строки/столбцы из autocad в excel не получится.
Melx вне форума  
 
Непрочитано 07.05.2020, 11:19
#120
танбраун


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


Melx, можно примерчик.
танбраун вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Где можно применить "Извлечение данных"(_.dataextraction)?

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

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