|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
20.08.2019, 09:03 | #1 | |
Извлечение атрибутов блока в определенном порядке
Регистрация: 05.02.2016
Сообщений: 19
|
||
Просмотров: 12207
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Насколько я помню, для работы _.attout важен порядок выбора блоков. Только непонятно, почему вопрос размещен в "Дин.блоках"?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
|
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Произвольность не убрать. Есть на чертеже тысяча одинаковых блоков с разными значениями атрибута "Имя" (пусть имя будет просто номерами от 1 до 1000). Есть таблица в экселе с № строк. Для каждой из № строк порядок атрибутов "Имя" будет различным. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
чего вы так маскируете конечную цель сего действа.. никто здесь не украдет вашу идею) Если в блоке есть один атрибут "Имя", то порядок атрибутов для данного блока не играет никакой роли.
|
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Если интересна прикладная часть. Пытаюсь ускорить раскладки кабелей на больших объектах. Есть такой способ прокладки - методом трасс. Каждый участок кабельной трассы - имеет свою уникальную маркировку. 1. Создается чертеж с этими самыми трассами, каждому участку присваивается уникальное имя. Для создания чертежа разработаны простейшие динамические блоки. По сути, каждый участок - просто линия с мультивыноской. 2. Через извлечение данных создается таблица с перечнем всех этих участков и их длиной. 3. Через эксель и аксесс реализована связь данных различных таблиц. 4. Исполнитель берет кабель и начинает в таблице экселя поочереди заполнять эти участки. Этот процесс повторяется многократно. Именно его хочется ускорить, потому что сейчас это происходит так: в автокаде тыкаем в блок, копируем руками из свойств - вставляем в эксель. Потом формируется ряд выходных документов, но это не так важно. |
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Да. Очень похоже!
Цитата:
----- добавлено через ~4 мин. ----- Вы не могли бы меня направить? Через что это реализуется и что можно почитать по данному вопросу? |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
Цитата:
|
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,225
|
...нафига? Я т.д., что имя должно оставаться именем, добавьте атрибут какой-нить типа number,
по нему потом отсортируете при ивлечении данных, его же (номер) можно и в табл. засунуть, удобнее читать будет, на чертеже находить как номер поз. ...имхо |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
у maratovich через COM сделано скорее всего) Можно и из VBA экселя стучаться в акад, например - для данной задачи ObjectARX абсолютно избыточен.
Offtop: Цитата:
|
|||
|
||||
Ну... это на VB6.
Если есть призвание писать проги, то начните с изучения Lisp или VBA. Если нет, то лучше не засорять мозг, чтобы потом не исплеваться.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Куда-то делось сообщение... Прикладной смысл таков. Я проектирую системы электроснабжения очень немаленьких объектов. Одной из задач является раскладка огромного числа кабелей.
Есть такой способ - прокладка методом трасс. Смысл в том, что каждому физическому отрезку кабельной трассы (куча металлоконструкций, на которых лежат кабели) присваивается уникальный номер. Далее для каждого кабеля перечисляются эти номера в порядке физической прокладки кабеля. Что реализовано сейчас: 1. Рисуется чертеж с кабельными трассами. Каждый участок выполнен динамическим блоком с изменяемой длиной. Имеет уникальный атрибут номера. 2. Через извлечение данных формируется таблица с перечнем этих трасс и соответствующими длинами. 3. Человек, раскладывающий кабели создает таблицу в экселе и начинает для каждого кабеля по очереди заполнять графы таблицы: в первом столбце - маркировка кабеля (тоже уникальная), в последующих столбцах - пресловутые отрезки трассы в соответствии с п.1; 4. Далее через костыли и подпорки обрабатываются данные в экселе, формируется кабельный журнал, считается длина и есть еще ряд планов по развитию этого безобразия. Именно п.3 хочется ускорить. На данный момент человек ручками выбирает блок, копирует из него атрибут "имя", переходит в эксель и вставляет в ячейку. Считаем - минимум 4 действия. Для информации - количество участков трасс - тысячи, количество кабелей - иногда десятки тысяч. |
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Но задача, описанная в теме - приоритетная. Если ее реально реализовать через VBA - это прекрасно. Из пушки по воробьям стрелять нет никакого желания. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
1. В экселе ALT-F11 - вызываете редактор VBA 2. В меню Tools/Referenses находите и подключаете AutoCAD 20xx Type Library 3. В коде макроса Excel: Код:
----- добавлено через ~2 мин. ----- p.s. И попросите администрацию форума (через красный значок-треугольник) перенести тему в раздел "Программирование". К динблокам она никакого отношения не имеет) И если знаете английский, то подчерпнете много интересного из книги Последний раз редактировалось Сергей812, 20.08.2019 в 12:05. |
|||
|
||||
Приложите пример чертежа с блоками и пример таблички в экселе.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Да, тут только руками указывать в каком порядке получать. Полным автоматом не получится.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Пытаюсь разобраться с VBA.. Конечно с наскока без знаний тут тяжело. |
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
книжку из п.21 смотрите) Там и справка, и примеры сразу.
метод GetEnity - выбираете блоки-кабели в той последовательности, в который они должны быть представлены на листе. Даже COM-интерфейс (если из экселя работать) успеет за ручным вводом - если сотрудники у вас по 100+ объектов в сек не выбирают, конечно) |
|||
|
||||
Регистрация: 12.03.2012
Сообщений: 110
|
Цитата:
https://forum.dwg.ru/showthread.php?t=128427 https://forum.dwg.ru/showthread.php?t=57484 https://forum.dwg.ru/showthread.php?t=141086&page=3 https://forum.dwg.ru/showthread.php?t=138086 Начать думаю стоит с их разбора. |
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,225
|
Цитата:
что относительно небольшой объект - 9-ти этажное здание ~350 комм. портов еле-еле шевелится только! на маркировке кабелей и портов. Причём каждый этаж в отдельном файле... В голом акаде пытаться делать это - безумие... Я вас предупредил, а дальше дело ваше... |
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Именно из-за проблемы тормозов четыре решения форума мне не очень подходят.
У нас над объектом может работать приличное количество проектировщиков. Соответственно раскладки кабелей, как правило, выполняются по системам. То есть массив данных в связке Автокад-эксель в процессе раскладки одного кабельного журнала не очень большой. А потом средствами СУБД вообще без участия автокада можно обрабатывать общий массив данных из большого количества разных кабельных журналов. Подключать дополнительные библиотеки со сведениями о сечениях, диаметрах и массах кабелей, анализировать заполняемость кабельных металлоконструкций и т.д. У нас сейчас основной объем делается вообще вручную. Поэтому сверхзадач не ставлю. Нужно прорабатывать постепенно. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
логично, потихоньку уменьшать затраты подручной местной автоматизацией - чтобы появилась возможность двигаться дальше. Но сам подход неправильный, если планируете все-таки не стандартными средствами акада обходится, а переходить на программные. Для программного способа кабель-блок вообще не нужен, тем более если планируете использовать СУБД. Сильно упрощенно написал в этом посте.
|
|||
|
||||
Raylond
Если не получится освоить программирование - вот программа, которая показана на видео. Сделано с минимальными требованиями за минимальный срок.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Спасибо огромное. Как минимум возьму за основу если получится разобраться. ----- добавлено через ~2 мин. ----- Возможно, но пока приходится обходится тем, на что хватает опыта и мозгов |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Голый функционал (Excel->COM->Acad):
1. Заполнение начинается с активной ячейки листа в момент вызова макроса. 2. ESC прерывает программу. 3. Программа прощает один промах при выборе объекта, но два промаха (или правой кнопки мыши) подряд приводит к переходу к новому кабелю (строке). 4. Версия и разрядность акада не играет роли, подключать ничего дополнительно не надо в Reference. 5. Нет проверки подключения к акаду - когда будете дорабатывать - дополните. 6. Код дополнил подробными комментариями - может еще кто-нибудь примкнет в наш клан программистов-самоучек, посмотрев - как несложно все это делается в базовых вещах) Код:
|
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,225
|
Raylond
Слушайте, десятки тысяч кабелей, видимо гигантские объёмы, наверно крупный город или столица? Соответственно контора солидная... Спрашивается, почему acad, да ещё голый? Как вы собираетесь трассы, жгуты рисовать с пом. дин. блоков, откуда длины возьмете, на 10-ках тыс. кабелей и просчёты длин будут исчисляться 10-ками бухт! На практике длины корректируются до последнего момента, даже на автомате трудно посчитать... Не пробовали намекнуть начальникам про специальный софт? ... |
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
В конторе есть отдел, занимающий внедрением, но сейчас все топят за БИМ, 3D модели и так далее. Я тоже собираюсь этим заняться. Но начать хочу с перехода на Ревит, а на его базе уже развиваться дальше. Чем больше контора, тем тяжелей перемены. При этом текущие задачи никуда не деваются и их нужно решать. Если освободить часть времени хотя бы кустарными методами, уже будет хорошо. Если есть предложения со специальным софтом для прокладки кабелей, с удовольствием послушаю. Пока нам презентовали решения от CSoft и Nanocad. Как уже говорил, хочу посмотреть на Revit MEP. Больше на вскидку ничего не вспоминиаю. |
|||
|
||||
Это хорошо.
Это не хорошо. и не надейтесь. Цитата:
Посмотрите обязательно, то что это просто "красивый фантик" вы же не поверите. И обязательно попросите на презентации сделать именно то что вам надо, в 95% скажут - пока нет.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
|
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Поэтому пока стараемся как можем. На счёт ревита, посмотрю. Просто его знание сейчас требуют во всех вакансиях практически. Не просто так же наверно? Не могу себе пока что этого представить. Видимо мне придется пообжиться на форуме. ----- добавлено через ~2 мин. ----- Цитата:
Мы раскладываем всю автоматизацию. И локальную автоматику, и АСУ ТП. А систем, повторюсь, очень много. |
|||
|
||||
Те кто составляет вакансии вообще не понимают про что пишут. Кадровики которые дают им такое задание лишь только повторяют модное слово. Начальник которые дают задание найти, пытаются найти хоть кого-то умеющего потому, что их текущие работники не хотят сидеть на ревите, а модным трендом хочется хвастаться.
В реалии 85% проектировщиков вообще понятия не имеют о 3D, а тем более о всяких узконаправленных, полу рабочих ревитах.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Offtop: пишут - что будет преимуществом знание ревита. Единицы пишут - что надо обязательно знать, большинство просто про запас - в ревите максимум некоторые отделы работают или вообще только в мечтах руководства.
Цитата:
----- добавлено через ~2 мин. ----- Кстати у вас что-то трехмерное/BIM и может пойти.. но не факт - что это обязательно ревит должен быть |
|||
|
||||
Регистрация: 05.02.2016
Сообщений: 19
|
Цитата:
Те, кто занимается БИМом в кучу это сводят. Но результат общий - модель, которая позволяет увидеть коллизии между смежными специальностями, не более. Это удобно и хорошо, но это - только часть работы. ----- добавлено через 40 сек. ----- Значит - это один из ответов на вопрос "в какую сторону воевать?" ) Приму к сведению, спасибо. |
|||
|
||||
Регистрация: 19.07.2005
Россия
Сообщений: 3,225
|
Raylond
В Autocad MEP, а так же в Revit всё, что что связано с электрикой служит придатком к воздуховодам, т.е. вкл./выкл. клапанов, кранов и прочих электро причиндалов к вентиляции. Причём поддерживается модель только на уровне кабелей, т.е. система ничего не знает о жилах (кроме силовых фаз) и контактах. Следовательно вся слаботочка на уровне проводов, а не контактов. Например, один UTP кабель часто расшивают на две телефонные розетки, следовательно с маркировкой проблемы. То же самое про схемы, в Revit их просто нет, рисуй как хочешь, линиями например... Расчётов, таблиц и библиотек по ГОСТ тоже нет... Шкафы, щиты на уровне прямоугольников с контактами, никаких 3D и отчётов... У Autodesk нет софта подходящего для проводок на планах. Для архитекторов да, с большой натяжкой, они этот сырой софт будут точить ещё лет 20-ть... Про acad и revit забудьте, только время потеряете... ( я т.д.) Есть правда сторонние производители софта для Revit в т.ч. для электриков, но проектировать придётся опять же не по ГОСТ и из их материалов и оборудования и у них же покупать... т.е. быть на привязи... Подходы к выбору и покупке софта должны соответствовать размерам, и чем больше контора, тем выше д.б. уровень принятия решений, ваша задача не ковыряться в vba, lisp и прочих костылях, а дать руководству аргументированную инфу, со ссылкой на аналогичные солидные конторы, не берите вопрос на себя, иначе быстро окажетесь за бортом!... Большие размеры конторы позволяют в т.ч. пригласить классных спецов из того же CSoft, пусть они занимаются подбором софта для вас, у них больше опыта и возможностей. Будьте и сами в курсе, начиная поиск от общего к более конкретному, например, выясните список производителей подобного софта, сравните (сначала на youtub-е) их делая акцент на критически важных для вас моментах, например количество кабелей, PTC Creo легко формирует отчёт о сотнях! тысяч кабелей, авто трассировка на уровне клемм и контактов и проч... Что бы ориентироваться в том, что вам будут предлагать... Далее можно найти, установить и попробовать на ощупь конкретный софт... От общего к частному. Последний раз редактировалось VitalyAF, 21.08.2019 в 10:18. |
|||
|
||||
Цитата:
Программирования "0" целых
|
||||
|
||||
|
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
удельные затраты зависят от количества мест рабочих, а лицензию надо на каждое место покупать)
он у ТС есть в наличии, насколько понимаю.. а так да - не дешев, поэтому на "периферии" давно уже переходят на аналоги) |
|||
|
||||
Цитата:
|
||||
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Тоже столкнулся с аналогичной задачей.
На схеме блоками (красный кружок с атрибутом "ERROR", в котором описан тип ошибки) я пометил все ошибочые места. Теперь хотелось бы "одним кликом" сгенерировать EXCEL файл "перечень ошибок в схеме", в первом бы столбце которого были бы описания ошибок, взятые из атрибутов "ERROR" блоков "кружок", а во втором бы столбце были бы коородинаты блока "кружок" А ещё лучше бы было бы если бы кликнув по координатам в экселе можно было сразу спозиционироваться в место ошибки в автокаде HELP ME |
|||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
Цитата:
_dataextraction, либо собственный модуль. Может, есть и третий путь. Да и вообще матчасть стоит знать.
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
Цитата:
|
|||
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Я бы Вас попросил: впредь, если у Вас нет готового решения обозначенной мной проблемы ничего не писать мне
----- добавлено через ~14 мин. ----- Спасибо. Задача хотя бы на малую часть этим решается |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Раздел "Программирование", так что если сильно хочется - берем в руки любую IDE и пишем код. А вопросы в этом разделе из разряда "Помогите разобраться с моим кодом", а не "Сделайте мне мою хотелку за просто так".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
Схема где? И потом, что сделано самостоятельно и на каком языке? Если ничего - то досвидос, мне лениво делать непонятно что, а потом еще и сотню раз переделывать. Особенно бесплатно.
__________________
(/= RegDate StartReadDate) |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фиксированная ориентация атрибутов блока при повороте блока | 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 |