|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Подсчет кабеля при помощи дин. блока с атрибутами
Иркутск
Регистрация: 04.07.2005
Сообщений: 213
|
||
Просмотров: 18444
|
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
Вот решил на примере показать:
В “блок А” мы сами заносим длину линии, которая под ним находится например. Заносится она в атрибут “METRAZ”. Теперь чтоб метраж занесся в атрибут “блока Б” нужно вызвать некую команду, результатом которой должен явиться запрос с указанием блока и его атрибута, из которого должен браться метраж предыдущего участка, следующей линии и снова блока, в который должно занестись уже посчитанное (суммированное) значение (тоже с выбором атрибутов “METRAZ” или “SSILKA”). Надеюсь понятно рассказал Самому не побороть мне программирование. [ATTACH]1184200746.dwg[/ATTACH] |
|||
![]() |
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
Это конечно да, но если делать в слоях, то их число перевалит за 400 штук. А в предлагаемом мной варианте все длины будут храниться в обозначении участка. Это удобно тем, что взглянув на блок мы увидим сразу длину линии и много другой инфы. Так же далее информацию из атрибутов можно быстро экспортировать куда угодно, например для сметчиков и т.д. Делать кабельные журналы, на основе этих данных.
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
C лиспом у меня полная ..., вообще языки высокого уровня недолюбливаю, все время на асме писал, но тут блин озадачили акадом, и чувствую рано или поздно придеться на поклон к Крысу идти, ибо много чего автоматизировать хочеться а на динамических блоках и полях далеко не уползешь. А мое принципиальное мнение что все что может сделать компьютер - он и должен делать, так что скоро (в августе) в отпуск на море, если соберусь возьму книжку по лиспу, буду на пляже читать, если конечно жена не скажет что я совсем того.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну раз помянули...
Так я не понял, надо просто с блока снять данные атрибутов? И все? Если да, то тогда давайте нормальное имя блока, нормальные тэги атрибутов, надо ли проходить по внутренностям блоков и внешних ссылок. Копирование значений атрибутов тоже реализуемо. Задачку пополнее поставьте, а то я ни шиша не понял...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
У меня примерно так, есть дин. блок (квадратики стандартных размеров вся динамика в разной видимости), назывется "стойка"+атрибут "номер" (по сути уникальный), а програмулина должна спросить 2 блока (по номеру атрибута, а лучше выделенные) и выдать в текущию ячейку таблицы длину кабеля под 90 градусов, если не по номеру атриубута делать, то надо учесть что таблица на листе а стойки в модели. Пример в файле только формула в ручную прорисованна, а надо чтоб лиспиком. Ну и второй вопрос как за него тебе пива передать, в Арену боюсь придти не смогу.
[ATTACH]1184238016.dwg[/ATTACH]
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Еще сделать сначала надо...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Если я все верно понял: на листе есть таблица, в ней всего 2 столбца. Таблица есть "заранее". В модели проставлены дин.блоки с атрибутом "номер" (имя блока неважно). Находясь в модели, щелкаем на табличке, а потом последовательно пары блоков.
В общем что получилось (прошу гвозди в меня не заколачивать ![]() Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я бы за 51 минуту этого просто не переписал бы. Крыс - это по моему коллектив разработчиков под одним псевдонимом, очень мощно и ОГРОМНОЕ СПАСИБО - ОЧЕНЬ ПОМОГЛО, сколько пива за день можешь выпить?
![]()
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ик! Приходи, ик! увидишь ик!
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Так куда идти - то напиши, приду с ПИВОМ!!! http://dwg.ru/forum/sm/sm700.gif
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Дык ента... В Арену
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
Кулик Алексей aka kpblc
Ух ты сколько всего за одну ночь ![]() ![]() Цитата:
![]() Цитата:
Цитата:
Цитата:
Цитата:
Постараюсь понятнее объяснить: В “Блок А” (название его uchastok) мы сами заносим длину линии (A). Заносится она в атрибуты “METRAZ” или "SSILKA" (или в тот или в другой). Теперь нужно вызвать некую команду, результатом которой должен явиться запрос, который бы "просил" указать: 1) блок (например "Блок А" на схеме); 2) его атрибуты "METRAZ" или "SSILKA" на выбор; 3) линию или множество линий (например D); 4) блока и его атрибутов "METRAZ" или "SSILKA" на выбор (на схеме "Блок Б"). В четвертом пункте в атрибуты "METRAZ" или "SSILKA" на выбор должна записаться сумма значений пунктов 2, 3 (длина линии или сумма длин линий). Фуф, вот такая задача у меня. [ATTACH]1184289032.dwg[/ATTACH] |
|||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Я бы посоветовал вообще уйти от идеи использования блоков. Их же делали, чтобы избежать программирования и попытаться решить задачу штатными средствами. Но не получится так все равно. Значит и делать надо принципиально иначе.
Вам ведь не блоки нужны, а конечный результат - подсчет длин проводников попределенных марок и назначений. Причем длину каждой линии предполагаете вводить вручную. Значит делать программу надо примерно из таких модулей: 1. Универсальный "присоединитель" к чему угодно расширеныых данных (наподобие необходимых для спецификации - Марка, ТУ, кол или длина). Присоединяет к любому указанному объекту эти данные. Причем для линий любых типов по умолчанию предлагает измеренную длину этого объекта. Она может не совпадать с реальной если это безмасштабная схема, а может и совпасть, если это трасса на реальном плане. Кроме того, можно привязать длину например, к точке, обозначающей подъем. Или вообще к чему угодно. Тут могут быть и разные облегчения встроены - например выбор марок из справочников. 2. Редактор ранее привязанных данных. 3. Сбор данных и вывод в требуемой форме. Например, в виде спецификации или ведомости. Эта система будет гибкой. Сначала рисуете что угодно и как угодно, затем привязываете данные, потом получаете документ. Наксколько удобно будет работать - зависит от реализации. PS Количество пива для kpblc в этом варианте должно иметь единицу измерения "цистерна". Но он сделает. |
|||
![]() |
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
ShaggyDoc
Это идеальный вариант бы был наверное. На форуме такое делать достаточно долго да и нужно же общение. Пояса часовые. разные Работа большая. Мне пока легче применить мои блоки ![]() Цитата:
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Слушай, а что если прямо в блок, "хвостик" в виде кабеля добавить - его-то длинну и без лиспа можно вытянуть. Посмотри на сколько к твоей задачи пременимо.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А то сначала "на форуме хватит электриков для цистерны", а как до дела, так "надеюсь" или "Мне пока легче применить мои блоки". Проблема ясна :wink: Аналогичную задачу только что сделал для торгового оборудования - рисование любого одновременно в 2D и 3D с последующей подготовкой спецификации. Там, конечно, полегче, чем у электрики - подсчет только "штук", но принципиальной разницы нет. Осталось только вывод отчета в любой форме, хотя заказчику (менеджер) надо только в Excel для "манагеровской" сметы. |
|||
![]() |
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
ShaggyDoc:
Подсчитать количество "штук" и специфицировать сделать можно. Там все стандартными средствами делается. А тут стандартными средствами не обойтись. Нужно выдернуть значение атрибута блока, прибавить к нему длину выбранной линии (или множества линий (полилиний) и положить эту получившуюся сумму в другой блок (атрибут для записи по выбору). Как еще проще объяснить не знаю ![]() PS Цитата:
![]() |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Как думаете, такие идеи не приходили никому в голову с момента появления Автокада? И средства стандартные есть, только они развиваются, и пример демонстрационный есть. Со спецификациями другие проблемы важнее и сложнее - ведение базы оборудования и оформление выходных документов. |
|||
![]() |
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
ShaggyDoc
Совершенно согласен, что на этом методе серьезной работы не выйдет. Лишь какие-то разовые и мелкие вещи. Есть еще вариант разбрасывания кабелей по слоям, а потом кабели выдергивать eattext'ом с нужных слоев. Но пугает количество слоев. И еще как потом узнать длину конкретного участка от точки до точки? Эх, все равно в полурукопашную придется. |
|||
![]() |
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
А вообще кому-нибудь задача понятна? Может никто не может понять, чего же нужно сделать всетаки? Во вложенном файле вроде все блоки, над которыми проводить операции, и линии буковками помечены. Может его никто не открывал?
PS Народ, расскажите тогда как вы решаете такую задачу, чем пользуетесь, и как много времени уходит на подсчет? |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Мне то что Крыс написал, тем и пользуюсь, попробуй ее подправить, расстояние он хорошо считает (у меня правда под 90 градусов, но если надо под углом - то теорему пифагора еще никто не отменял), если блок где первая колонка не нужен - так сотри его целиком нафиг (поиск по слову "Длина") в общем очень удобная штука, а общую сумму табличкой хорошо считать.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
У меня, если честно, изгибы (сопряжения) то же есть, но я их приближаю к прямому углу (больше не меньше), если конечно вокруг трубы по спирали провод не мотать. Советую так-же.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
Хочу поднять эту тему.
Кто-нибудь встречал программу просто для того чтобы скопировать значения атрибутов из одного динамического блока в другой? (тремя щелчками: 1. на кнопке вызова программе, 2. На блоке, из которого копируем, 3. на блоке, в который копируем.) Как усложнение возможен вариант выборного копирования, но для начала хорошо было бы просто копировать все значения. И еще. Существует ли программа, перемещающая атрибуты в окошке их редактирования?
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
А то, что тэги должны совпадать, не напрягает?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
Конечно нет! Хотя я думаю, что это в процессе работы выяснится...
Все равно без совпадающих тегов невозможно двумя щелчками скопировать содержимое атрибутов и вставить куда надо.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
![]() |
|
||||
Инженегр Регистрация: 05.05.2009
Сообщений: 11
|
Цитата:
"тип" кабеля, "число "x"сечение" жил кабеля - лучше что бы выбирались из справочника (два столбца данных либо в самом файле, а лучше внешнем *.cvs) "длина" берется полилинии, в зависимости от единиц чертежа приводится к метрам и к ней прибавляется запрашиваемая величина "подъем" + "опуск" в метрах как опция: -инструмент прилепляющий вышеуказанные атрибуты к чему угодно имеющему параметр "Длина", как к одному так и нескольким объектам, выбираемые по _select, _qselect -инструмент копирования атрибутов (кроме длинны) от одного объекта на другие, выбираемые по _select, _qselect А далее Цитата:
Если это получится, то я щитаю быдет работать веселей ![]() Последний раз редактировалось ElectroBOG, 06.05.2009 в 21:55. |
|||
![]() |
|
||||
наверно лучше всетаки дейсвтовать через расширенные данные... их можно навесить на полилинию....
тока вот вероятно будет некоторая путаница с назначением этих свойств и копированием их с линии на линию... получите автоматом вместо 3 км кабеля 1х1,5 кабель например 3х5... а отследить это будет сложно (имею ввиду визуально). хотя можно.. если при назначении данных на полилинии сразу менять ещё их цвет согласно каких то правил... что бы на каждый провод свой цвет. тогда вероятно можно. |
||||
![]() |