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

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

Извлечение атрибутов блока в определенном порядке

Ответ
Поиск в этой теме
Непрочитано 20.08.2019, 09:03 #1
Извлечение атрибутов блока в определенном порядке
Raylond
 
Регистрация: 05.02.2016
Сообщений: 19

Доброго времени суток.
Появилась задача, к которой не знаю как подойти.
Имеется чертеж с большим количеством блоков с атрибутами, значения которых уникальны в рамках этого чертежа.
Необходимо ускорить следующий процесс: поочередное копирование атрибутов этих блоков в произвольном порядке в файл Excel.
При работе через извлечение данных - все получается, но в произвольном порядке.
По сути нужно реализовать следующее - тыкнул на блок -> значение атрибута записалось в ячейку открытого файла эксель и ячейка сдвинулась вправо, тыкнул на следующий -> операция повторилась.
Можно ли это сделать через макросы или еще каким-то образом?
Подскажите пожалуйста в какую сторону воевать.
Заранее спасибо.
Просмотров: 12014
 
Непрочитано 20.08.2019, 09:19
1 | #2
Кулик Алексей aka kpblc
Moderator

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


Насколько я помню, для работы _.attout важен порядок выбора блоков. Только непонятно, почему вопрос размещен в "Дин.блоках"?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.08.2019, 09:27
#3
baksconstructor


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


А если атрибутов несколько ?
baksconstructor вне форума  
 
Непрочитано 20.08.2019, 09:46
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Raylond Посмотреть сообщение
При работе через извлечение данных - все получается, но в произвольном порядке.
Ну так может убрать эту произвольность... например добавив атрибут с номером, благо нумераторов навалом, и выполнять сортировку в извлечении по этому атрибуту.
Boxa вне форума  
 
Непрочитано 20.08.2019, 09:58
#5
Сергей812


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


как появляются блоки на чертеже, как задаются им атрибуты? Порою проще контролировать процесс на "старте", чем придумывать костыли.
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.08.2019, 10:02
#6
Raylond


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Только непонятно, почему вопрос размещен в "Дин.блоках"?
Прошу прощения, если неправильно разместил тему. При необходимости прошу модераторов перенести в соответствующий раздел.


Цитата:
Сообщение от Boxa Посмотреть сообщение
Ну так может убрать эту произвольность... например добавив атрибут с номером, благо нумераторов навалом, и выполнять сортировку в извлечении по этому атрибуту.
Произвольность не убрать. Есть на чертеже тысяча одинаковых блоков с разными значениями атрибута "Имя" (пусть имя будет просто номерами от 1 до 1000). Есть таблица в экселе с № строк. Для каждой из № строк порядок атрибутов "Имя" будет различным.
Raylond вне форума  
 
Непрочитано 20.08.2019, 10:04
#7
trir


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


извлечь и отсортировать
trir вне форума  
 
Непрочитано 20.08.2019, 10:07
#8
Сергей812


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


Цитата:
Сообщение от Raylond Посмотреть сообщение
Произвольность не убрать. Есть на чертеже тысяча одинаковых блоков с разными значениями атрибута "Имя" (пусть имя будет просто номерами от 1 до 1000). Есть таблица в экселе с № строк. Для каждой из № строк порядок атрибутов "Имя" будет различным.
чего вы так маскируете конечную цель сего действа.. никто здесь не украдет вашу идею) Если в блоке есть один атрибут "Имя", то порядок атрибутов для данного блока не играет никакой роли.
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.08.2019, 10:25
#9
Raylond


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как появляются блоки на чертеже, как задаются им атрибуты? Порою проще контролировать процесс на "старте", чем придумывать костыли.
Блоки на чертеже появляются отдельно и вручную. Атрибуты задаются также вручную.
Если интересна прикладная часть. Пытаюсь ускорить раскладки кабелей на больших объектах. Есть такой способ прокладки - методом трасс. Каждый участок кабельной трассы - имеет свою уникальную маркировку.
1. Создается чертеж с этими самыми трассами, каждому участку присваивается уникальное имя. Для создания чертежа разработаны простейшие динамические блоки. По сути, каждый участок - просто линия с мультивыноской.
2. Через извлечение данных создается таблица с перечнем всех этих участков и их длиной.
3. Через эксель и аксесс реализована связь данных различных таблиц.
4. Исполнитель берет кабель и начинает в таблице экселя поочереди заполнять эти участки. Этот процесс повторяется многократно. Именно его хочется ускорить, потому что сейчас это происходит так: в автокаде тыкаем в блок, копируем руками из свойств - вставляем в эксель.

Потом формируется ряд выходных документов, но это не так важно.
Raylond вне форума  
 
Непрочитано 20.08.2019, 10:42
1 | #10
maratovich


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


Цитата:
Сообщение от Raylond Посмотреть сообщение
Можно ли это сделать через макросы или еще каким-то образом?
Вот так что ли ?
Вложения
Тип файла: zip Блок.zip (698.6 Кб, 34 просмотров)
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 20.08.2019, 10:46
#11
Raylond


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


Цитата:
Сообщение от maratovich Посмотреть сообщение
Вот так что ли ?
Да. Очень похоже!



Цитата:
Сообщение от Сергей812 Посмотреть сообщение
чего вы так маскируете конечную цель сего действа.. никто здесь не украдет вашу идею) Если в блоке есть один атрибут "Имя", то порядок атрибутов для данного блока не играет никакой роли.
Нисколько не маскирую. Не хотел грузить профильными проблемами и попытался объяснить на пальцах. Написал сообщение подробнее, оно на модерации.

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от maratovich Посмотреть сообщение
Вот так что ли ?
Вы не могли бы меня направить? Через что это реализуется и что можно почитать по данному вопросу?
Raylond вне форума  
 
Непрочитано 20.08.2019, 10:54
#12
trir


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


Цитата:
Через что это реализуется и что можно почитать по данному вопросу?
ObjectARX
trir вне форума  
 
Непрочитано 20.08.2019, 11:05
#13
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,224


Цитата:
Сообщение от Raylond Посмотреть сообщение
Имя" (пусть имя будет просто номерами от 1 до 1000).
...нафига? Я т.д., что имя должно оставаться именем, добавьте атрибут какой-нить типа number,
по нему потом отсортируете при ивлечении данных, его же (номер) можно и в табл. засунуть, удобнее читать будет, на чертеже находить
как номер поз. ...имхо
VitalyAF вне форума  
 
Непрочитано 20.08.2019, 11:11
#14
Сергей812


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


Цитата:
Сообщение от trir Посмотреть сообщение
ObjectARX
у maratovich через COM сделано скорее всего) Можно и из VBA экселя стучаться в акад, например - для данной задачи ObjectARX абсолютно избыточен.

Offtop:
Цитата:
Сообщение от VitalyAF Посмотреть сообщение
...нафига? Я т.д., что имя должно оставаться именем, добавьте атрибут какой-нить типа number,
вы хоть читайте посты, прежде чем лезть других учить)
Цитата:
Сообщение от Raylond Посмотреть сообщение
Есть на чертеже тысяча одинаковых блоков с разными значениями атрибута "Имя"
Сергей812 вне форума  
 
Непрочитано 20.08.2019, 11:12
#15
maratovich


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


Цитата:
Сообщение от Raylond Посмотреть сообщение
Через что это реализуется и что можно почитать по данному вопросу?
Ну... это на VB6.
Если есть призвание писать проги, то начните с изучения Lisp или VBA. Если нет, то лучше не засорять мозг, чтобы потом не исплеваться.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 20.08.2019, 11:15
#16
trir


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


Цитата:
у maratovich через COM сделано скорее всего) Можно и из VBA экселя стучаться в акад, например - для данной задачи ObjectARX абсолютно избыточен.
зато смешнее

Цитата:
Ну... это на VB6.
я даже поверить не смог - это какого года?
trir вне форума  
 
Непрочитано 20.08.2019, 11:17
#17
maratovich


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


Цитата:
Сообщение от trir Посмотреть сообщение
зато смешнее
В отличие от других - это работает
Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
это какого года?
1978
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 20.08.2019, 11:22
#18
Raylond


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


Куда-то делось сообщение... Прикладной смысл таков. Я проектирую системы электроснабжения очень немаленьких объектов. Одной из задач является раскладка огромного числа кабелей.
Есть такой способ - прокладка методом трасс. Смысл в том, что каждому физическому отрезку кабельной трассы (куча металлоконструкций, на которых лежат кабели) присваивается уникальный номер. Далее для каждого кабеля перечисляются эти номера в порядке физической прокладки кабеля. Что реализовано сейчас:
1. Рисуется чертеж с кабельными трассами. Каждый участок выполнен динамическим блоком с изменяемой длиной. Имеет уникальный атрибут номера.
2. Через извлечение данных формируется таблица с перечнем этих трасс и соответствующими длинами.
3. Человек, раскладывающий кабели создает таблицу в экселе и начинает для каждого кабеля по очереди заполнять графы таблицы: в первом столбце - маркировка кабеля (тоже уникальная), в последующих столбцах - пресловутые отрезки трассы в соответствии с п.1;
4. Далее через костыли и подпорки обрабатываются данные в экселе, формируется кабельный журнал, считается длина и есть еще ряд планов по развитию этого безобразия.

Именно п.3 хочется ускорить. На данный момент человек ручками выбирает блок, копирует из него атрибут "имя", переходит в эксель и вставляет в ячейку. Считаем - минимум 4 действия.

Для информации - количество участков трасс - тысячи, количество кабелей - иногда десятки тысяч.
Raylond вне форума  
 
Непрочитано 20.08.2019, 11:23
#19
Сергей812


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


Цитата:
Сообщение от trir Посмотреть сообщение
зато смешнее
зато VBA в экселе доступно "из коробки" - для начинающих самое то) А если втянется в программирование - там уже выберет нормальный язык)
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.08.2019, 11:28
#20
Raylond


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
зато VBA в экселе доступно "из коробки" - для начинающих самое то) А если втянется в программирование - там уже выберет нормальный язык)
Мне собственно и интересно, на чем это можно сделать. Как Вы понимаете, профиль мой далек от программирования, но тот же эксель использую очень активно. VBA собирался осваивать как раз для развития тех вещей, которые делаю в экселе.
Но задача, описанная в теме - приоритетная.
Если ее реально реализовать через VBA - это прекрасно. Из пушки по воробьям стрелять нет никакого желания.
Raylond вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Извлечение атрибутов блока в определенном порядке

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фиксированная ориентация атрибутов блока при повороте блока hwd AutoCAD 19 02.11.2022 10:27
Назначение свойств атрибутов блока без attsync Кулик Алексей aka kpblc Программирование 9 15.08.2017 06:32
Неудаляемый слой в атрибуте блока. Смысл синхронизации атрибутов? АлексЮстасу AutoCAD 4 04.06.2016 01:59
Сбой подсказок атрибутов динамического блока gool Динамические блоки 5 26.10.2011 09:29
Извлечение атрибутов блока и вставка атрибутов в формулу andery AutoCAD 38 15.06.2009 02:39