|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Нужно посчитать кабель
Минск
Регистрация: 16.09.2006
Сообщений: 1,587
|
||
Просмотров: 62482
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Поиск -> "сумм* длин* лин*"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Admin спасибо! тока хотел ответить Алексею
![]() Еслиб знал Лисп получше вопроса думаю небыло бы. Похожих тем не нашел (может плохо искал). да и переделать сильно лисп я не смогу. Вот список кабелей которые могут встретиться: 3х1,4х1,5х1,12х1,16х1,30х1,33х1,42х1,3х2,4х2,7х2,10х2,12х2,14х2,19х2,24х2,27х2,30х2 длинна кабеля произвольная. может встретиться такая запись 123-3(2) это тоже самое что и 123-3х1. или например 456-7(2) это тоже самое что и 456-7х1
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Упс... Сорри. Все равно, поиск -> "сум*+текст*" выводит http://dwg.ru/f/showthread.php?t=715...E5%EA%F1%F2%2A ; http://dwg.ru/f/showthread.php?t=377...E5%EA%F1%F2%2A ; http://dwg.ru/f/showthread.php?t=217...E5%EA%F1%F2%2A - и все не то
![]() --- Добавлено: пока искал и воевал с лагами, уже предыдущий ответ появился. Будем думать...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Пробуй
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Цитата:
ДА, и причем она бывает толька кратна 5 метрам. т.е. 5,10,15, 125,275 ит.д. (в примере я брал что попало ![]() это пары. сечение всегда одинаковое (на первом листе указано 0.9) но это не важно
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Спсибо за коды! теперь коментарии к ним.
1й самый подходящий. 2й извините немного сырой и не подходит есть ряд пожеланий: -Много лишнего выбирает если весь чертеж выбрать (т.е. считает все тексты) -Запас (в скобках) учитывать как отдельный кабель не нужно. т.е. кабель 125-10х2(3) и 255-10х2(4) нужно тоже сложить. -если не очень сложно это реализовать то сделайте чтобы это все заносилось в таблицу которую можно будет в акад вставить.
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
вот че получилось из присланного файла:
30x2,930 10x2,6015 3x2,5325 24x2,2520 14x2,220 19x2,4470 7x2,11500 3x1,2955 12x2,2235 27x2,3125 4x2,1490 програмка тут: http://zcad.by.ru/SUMMATOR.rar применять: SUMMATOR.exe "Кабельная Сеть.dxf" >result.txt результат будет в файле result.txt, его можно вставить в exel в файле SUMMATOR.log перечень всех посчитаных кабелей //edit:поправил ссылку Последний раз редактировалось zamtmn, 23.10.2007 в 14:11. |
|||
![]() |
|
||||
Спасибо zamtmn! Но данный вид программы не подходит. т.к. ей буду пользоваться не только я и она должна быть максимально проста для пользователей с которыми я работаю. твоей программой просто не захотят пользоваться. нужен конкретно лисп. (я его на кнопку потом посажу и только обезьяна не сможет ей воспользоваться
![]() в dxf никто чертежи переводить точно не будет и отдельно программулю запускать тоже ![]()
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Alaspher то что нужно!!! 1 ошибочка тока - запас (это то что в скобках) читывать не нужно. т.е. кабель 125-10х2(3) и 255-10х2(4) нужно тоже сложить. да и вообще его не писать в таблице.
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Эх! поюзал прожку! Супер короче получилось. Вот появилось желание ее немного усовершенствовать... Наглеть так наглеть
![]() Модифицировать ее нужно таким образом чтобы она еще считала сколько муфт подземных нужно заложить. 1 муфта ставиться для сращивания кабеля больше 350 метров. если меньше то не ставиться. если кабель 355-700 метров то ставиться 1 муфта.705м -2, и т.д. Т.е. алгоритм примерно так: (Lк/350)-полученное число округлить в большую сторону (например: 1100/350=3.14 =>округляем в большую сторону =4). и отнимаем 1 = 3 Но есть еще одна проблемма: для каждого кабеля свои муфты. их 3: С-35М, С-50М, С-65М с числом жил соответственно19,42,61. т.е. нужно еще и вычислить число жил. Для этого перемножаем его и получаем число жил (например 2х3=6 жил, 24х2 =48 жил) ну а по полученным данным посчитать сколько каких муфт нужно. Вот такая вот задачка... А это немного исправленный лисп программы которую нужно доработать:
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Alaspher, Спасибо тебе огромное, все правильно сделал ничего лишнего!!! считает так как надо! впринципе осталось только добавить в конце строку "ИТОГО:" с тремя пунктами:
"С-35М" -до 19 жил (сюда входить будут например(3х2, 19х1, 7х2 и.д.) "С-50М" -до 42 жил (-\\-) "С-65М" -до 61 жил (-\\- 30х2,24х2 и т.д.) для их заполнения нужно просуммировать муфты всё ![]() Если появиться время и не очень сложно добавь пожалуйста
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Пробуй так
Код:
Последний раз редактировалось Alaspher, 27.10.2007 в 12:21. Причина: корректировка кода |
|||
![]() |
|
||||
Alaspher, Всё правильно! Просто Супер!!!
![]() Видили бы вы глаза людей которым я показывал как эта программа работает. ![]() ![]() Ещё раз огромное спасибо Alaspher за помощь! ![]()
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Shoorup
![]() Код немного подредактировал (в предпоследнем посте), ничего не изменял в сути - добавил обраобтку блокировки текущего слоя и двухступенчатый откат. Что-б долго не объяснять в чём его смысл, просто попробуй использовать Ctrl+Z после выполнения команды lcab. |
|||
![]() |
|
||||
Чесно говоря не понял в чем фишка. для красаты можно например сделать чтобы жильность кабель отображалась по порядку. Т.Е. сначала идет не парный кабель 3х1, ит.д. а потом парный 3х2... Причем тот кабель который отображается как 3 - должен в таблице выглядеть как 3х1.
На самом деле главная цель достигнута и даже перевыполнена ![]() ![]()
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Alaspher, ещё раз тебе огромное спасибо от нашей группы проектировщиков и от меня лично!!! Сегодня с помощью выше написанной программы был спасен проект! Ну очень нужная и полезная программа!
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Появилась новая необходимость внести изменения в программу. Очень хочется чтобы тот кабель который был посчитан выделился цветом, например синим. Если не сложно, доработайте ктонить програмку плиз
![]()
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Shoorup, Дай ссылку на код, который в итоге используешь или опубликуй снова
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
А можно код подправить так, чтобы он считал записи например такого вида КВКбШвнг 19x1.0 150м, Герда-КВнг 14х2х1.0 75м, т.е. тип кабеля-жильность-(количество пар)-сечение-длина и затем раскладывал и суммировал по типу кабеля, жильности и сечению? Вот была бы вещь нужная в хозяйстве каждого электрика и КИПовца. А то действующий код немного специфичен по способу записи. Обычно записывают так КВКбШвнг 19x1.0 150м, причем метраж пишется во второй строке (если записать mtext_ом, то действующий код не обрабатывает mtext)
|
|||
![]() |
|
||||
Nikolay 2, точно можно. Думаю код даже можно сделать так чтобы каждый мог свою маску сделать и считать как нужно. Для меня этот код подходит как нельзя лучше. Единственное вот доработать это отметить цветом, то что посчитано. Бывает что пропускается что-то, например маска не подходит, нечаяно символ вбит лишний или совмещен текст.
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Shoorup, Пробуй
Nikolay 2 - там разбор текста нужно писать заново. Это я к тому, что подправить=написать заново.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
|
|||
![]() |
|
||||
Прикольно то, что программа приносит дивиденды в виде конфет до сих пор
![]()
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Добиваю проект, около 400 кабелей, номенклатура 26, т.к. формат записи обозначения кабеля другой приходится все в "рукопашную", в итоге целый день "сидел" на кабельном журнале, и еще видимо будут изменения в проекте, поэтому я бы не назвал ее "довольны мелким улучшением".... вот только видимо не судьба, VVA молчит...
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Nikolay 2, лично я не электрик ни разу. Показал бы образец да и то, что хочется в результате (кстати, про формат файлов не забудь рассказать). А там и поковырять можно будет... По крайней мере, попробовать
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Nikolay 2, Правильно. Для начала сформируй ТЗ с примером. Твои пару строк в предыдущем сообщении может быть понятны электрикам, а я
тоже максимум в розетке 220 дома ковырялся.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Да ему все примерно тоже самое надо по ходу.
У меня так: 210-3х2(1) - это "длина"-"жильность"х"парность"(запас). 4 параметра А у него пятый параметр добавляется впереди и подругому расположены параметры. Суть такая же. Возможно программно это не все так просто...
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Ну вот выношу вашему вниманию непростую задачу и то , как я себе это представляю и что необходимо автоматизировать:
1 этап. - отрисовать в пространстве модели (чертеж № 1) условное обозначение кабелей (круг диаметром 10 мм) с номером кабеля внутри (например 1К, 2К и т.д.), при этом хотелось бы после завершения вычерчивания задать для него (кабеля 1К) в диалоговом режиме атрибуты (данные необходимые для спецификации - Марка, ГОСТ, ТУ): "тип" кабеля, "число"х"количество пар(жил)"x"сечение" жил кабеля; - отобразить эти данные (без ГОСТа, ТУ) на чертеже (варианты размещения надписи показаны на чертеже №1), при этом поле "длина" остается пока с нулевым значением; - "тип" кабеля, "число"х"количество пар(жил) "x" сечение" жил кабеля хотелось бы выбирались из справочника (данные либо в самом файле, либо во внешнем *.xls, *.cvs); - предусмотреть возможность редактирования введенных данных (номер кабеля, тип, жильность, сечение); - извлечь данные: "тип" кабеля; "число"х"количество пар(жил)"x"сечение" жил кабеля, в пределах пространства модели и занести в таблицу на этом листе (при этом номера кабелей не отображаются и поле "длина" пока остается не просуммированной, т.е. с нулевым значением); - затем (или одновременно с предыдущей задачей) извлеченные данные передать в чертеж № 2 (возможно использование другого файла, либо пространства листа чертежа № 1), при этом каждый кабель заносится в свою строку (отображаются: номер кабеля 1К,2К и т.д., "тип" кабеля; "число"х"количество пар(жил)"x"сечение" жил кабеля, длина опять пока с нулевым значением; 2 этап. - на плане (генплане) в пространстве модели (масштаб обычно 1:1) прокладываются кабельные трассы, все в одном слое, с указанием условных обозначений способов прокладки (в коробе, трубе и пр.) имеющимися типами линий; - затем полилинией, по проложенной ранее трассе, прокладывается трасса кабеля "Х", атрибут (параметр) "длина" берется из свойств этой полилинии, и в зависимости от единиц чертежа приводится к метрам (хотелось бы иметь возможность к ней прибавлять запрашиваемую величину "подъем" + "опуск" в метрах, при этом номер кабеля каким то образом нужно "привязать" к этой полилинии и передать в чертеж № 1, где длина этого кабеля пропишется в соответствующих полях рядом с типом и количестов жил, и в чертеж № 2 (либо пространства листа чертежа № 1), где длина пропишется в соответствующих ячейках таблицы соединений внешних проводок; - для каждого кабеля данные действия повторяются; - затем производится суммирование кабелей по типам, жильности, сечению, из пространства модели и результаты заносятся в таблицу чертежа № 1 работаю в ACad 2008ru Последний раз редактировалось Nikolay 2, 06.05.2009 в 22:42. Причина: дополнил |
|||
![]() |
|
||||
Инженегр Регистрация: 05.05.2009
Сообщений: 11
|
Цитата:
http://forum.dwg.ru/showthread.php?t=12517&page=3 Только задачка попроще, и в моем случае более жизненная, а схемы подключений, соединений делаем в специализированном софте |
|||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
По ссылке решения для себя не нашел, т.к. предполагаю блоки не использовать... Ну а жизнь у всех разная, только не понятно почему решили, что моя задача не жизненная?? Про используемый софт скажи? или какой секретный?
Последний раз редактировалось Nikolay 2, 07.05.2009 в 10:01. Причина: уточнил вопрос |
|||
![]() |
|
||||
Инженегр Регистрация: 05.05.2009
Сообщений: 11
|
Цитата:
Цитата:
говорил о своих задачах решаемых в ACAD Ни чего секретного, E3 Series Eplan ACAD Electrical |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Nikolay 2
делаю подобную программу, часть Ваших требований она уже перекрывает http://forum.dwg.ru/showthread.php?t=8707 |
|||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Цитата:
Еplan тоже год как не подхожу, по Electrical 2008 даже сертификат имею, да вот приходится только в голом ACADе. И насколько знаю, внешние проводки данные проги не посчитают....хотя может и не прав. Е куб с макросами вроде бы считает, во всяком случае Денис Семенов об этом говорил. |
|||
![]() |
|
||||
Регистрация: 14.03.2009
Сообщений: 828
|
В WinELSO 7.0 всё вышесказанное делается очень просто:план с нанесенными кабелями охватывается прямоугольником и жмешь кнопку "документ" - программа выдает кабельный журнал со всеми подробностями (длина, жильность, способ прокладки, марка, от чего и к чему присоединен), спецификацию и ведомость проводов и кабелей. Очень удобно, рекомендую
|
|||
![]() |
|
||||
Инженегр Регистрация: 05.05.2009
Сообщений: 11
|
Цитата:
|
|||
![]() |
|
||||
Даю некоторую поправку.
Если речь идет о специфицировании проложенных кабельных линий в модели, то есть линиями или полилиниями, обозначены конкретные кабели, с длинной в масштабе 1:1, то самое разумное, это в конкретном слое, конкретный тип линии, отнести к конкретному типу кабеля. Можно все типы линий в конкретном слое отнести к конкретному типу кабеля, тогда слой будет по всей видимости иметь название схожее с наименованием типа кабеля. Чтобы в данном слое, данный тип кабеля можно было приписать к нужному типу линий, надо создать динамический блок со свойствами и атрибутами типа того, что я тут выкладываю, только для кабелей определенной группы. Я такой блок сделал для труб по определенному госту, но такое же можно делать и для кабелей, и для грунта, и для чего угодно. Я называю такие блоки "виртуальными материалами". Не путайте, господа, свойство материала с атрибутами! То, что является свойством, должно делаться свойством блока и при изменении этого свойства приводить к изменению *Unn имени блока. А атрибут, не меняет имя блока и его обрабатывать можно только распознав значение. В Атрибуте "метод расчета" можно писать все, что угодно для лиспа, который обрабатывает модель. Можно даже лисп выражение писать. Какую программу сделали, то и пишете. Нашли блок - посмотрели в каком слое он лежит. Прочли его "метод расчета" - если начинается с (, то тупо выполнили то, что там написано, а если там что-то другое, то например можно условиться, что А - все линии (все буквы это типы примитивов) 4 - сумма длин (все цифры это действия). Если написано А4, то это означает, что все линии в данном слое являются материалом, выставленным данным блоком и программа должна вычислить сумму всех длин отрезков (линий). Этот же блок, можно в этом же слое скопировать рядом и установить в нем другое занчение материала написав в методе расчета B4 (В - 3D полилинии), к примеру. Программа, обработав его, выпишет в кабельный журнал нужные свойства блока, а посчитав длину всех 3D полилиний - напишет количество кабеля. В одном блоке можно весь ассортимент кабелей упрятать. |
||||
![]() |
|
||||
Программы есть, но все кусочками. Я уже несколько лет разрабатываю эту тему, все хочу объять необъятное и этот пирог пока в глотку не пролазит.
Написать что-то простое, типа для кабельного журнала - не проблема, но мне это не интересно. Мне интересно чтобы всю модель обрабатвала, включая внешние ссылки и вложенные в них внешние ссылки. Там пару проблем нерешено. Могу помочь кому-нибудь, кто хочет этот способ поддержать. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Nikolay 2
>>Вниманию гуру лиспа!! Задание сформировал (как смог), что скажите о возможности реализовать ее лиспом? на лиспе не умею, но ИМХО есть: На лиспе ваша задаса трудно и неудобно реализуема. основная причина - нет штатного примитива которым можно имитировать кабель. сравнительно просто можно сделать общую спецификацию, как предлагает Supermax, ваше же ТЗ для лиспа сложновато. >>- на плане (генплане) в пространстве модели (масштаб обычно 1:1) прокладываются кабельные трассы, все в одном слое, с указанием условных обозначений способов прокладки (в коробе, трубе и пр.) имеющимися предлогается каждый кабель рисовать 2 раза? один для печати, другой для расчета? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В "чистом" AutoCAD'e решение такой проблемы малорентабельно. Я бы подумал об использовании либо AutoCAD MEP, либо Civil, либо Revit - в зависимости от круга задач.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Nikolay 2, 18.05.2009 в 08:43. |
|||
![]() |
|
||||
Nikolay 2, для начала нужно сделать блок на какую-нибудь часто используемую группу кабелей. Можно по конкретному производителю.
Выбираем производителя, смотрим что он выпускает, составляем список его продукции и запихиваем в блок. О лиспе поговорим, когда блок будет готов. Поскольку в блоке содержется вся информация о кабеле, который обозначен указанными типами линий, в слое, где лежит этот блок, то сформировать и проставить обозначения в модели - пустяк. Цитата:
Цитата:
Цитата:
Про вертикальные решения ничего сказать не могу. У меня в модели не только кабеля, но и трубы и арматура и насосы и пр. А жить ведь как-то надо. |
||||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Supermax
>>Поскольку в блоке содержется вся информация о кабеле, который >>обозначен указанными типами линий, в слое, где лежит этот блок, то >>сформировать и проставить обозначения в модели - пустяк. Блоки играют роль только "удобного" инструмента ввода данных в программу? >>Если программа будет заточена на промер каждого отрезка >>указанного типа линий, то она сама все сделает. Нужно не только получить общую длину линий в слое, а сопоставить (поли)линию на плане с блоком на схеме подключений и проставить в этот блок ее длину. такчто без добавления дополнительных свойств в (поли)линии на планах не обойтись. >>Тут тоже нужна программа, которая позволяет >>в 3D полилинии проставлять Z и добавлять вертикальные участки. Если человек проектирует на 2д подоснове, то это неудобно, нужно обойтись условной длиной добавляемой к измереной длине кабелей. ее тоже нужно гдето хранить >>Все элементы модели имеют значение последовательности создания. не знаю как сейчас, но раньше сохранность последовательности создания примитивов в автокаде не гарантировалась при дальнейшем редактировании чертежа Последний раз редактировалось zamtmn, 18.05.2009 в 12:35. |
|||
![]() |
|
|||||
Регистрация: 27.02.2008
Сообщений: 140
|
zamtmn
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
![]() |
|
||||
zamtmn,
Цитата:
Тут, я вижу, упорно пытаются именно кабелю приписать адреса подключения, но напомню, что если кабель многожильный,то с одной строны может быть один прибор, а с другой много + еще клеммы всякие. Вы запутаетесь в блоках. Один блок с 20-тью атрибутами, другой с 10-тью, пятый с 30-тью. Таблицу соединений нужно составлять опросив приборы. Вот к ним и надо делать атрибуты с номерами кабеля и их жил. Кабель - это материал. Когда его сделали на заводе, еще не знали, кто и для чего его будет использовать. А блок с данными на кабель - его свойства и не более (я так считаю). |
||||
![]() |
|
||||
Добавлю.
Вот у вас 150 линий связи, каждая выполнена каким-то типом кабеля. Так получилось, что все 150 кабелей одинаковой марки. Если в блок, который символизирует марку кабеля входит еще и адреса подключений, то Вам придется копировать этот блок 150 раз. и все линии должны быть разные, либо по цвету, либо по типу линий. Это не удобно. Думаю, надо сделать отдельные блоки-маркеры, с указанием адресов подключения, а привязку к линии делать с помощью атрибутов с формулами. Программно можно прочесть указатель на линию, с которой берется длинна для атрибута и посмотреть в каком слое она лежит. Найти в этом слое блок-бирку "привязанную" к этой линии и считать данные на кабель. В блоке-бирке даже номера по схеме не должно быть. А блок-маркер можносделать в виде разъема. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Блок это не инструмент ввода данных в программу, а бирка на конкретных типах линий (цвет линий тоже иожно использовать как идентификатор кабеля). В бирке свойствами устанавливаются свойства кабеля, а атрибут "метод расчета" - проволочка, с помощью которой эта бирка вешается на кабель. В атрибутах блока есть не только "Позиция в спецификации", но и "номер по схеме". Кабель, как известно, одним концом подключается к одному прибору, а другим - к другому.
А если кабелей 500? на каждый вставлять блок? и ждать когда кончится разумное количество уникальных слоев или типов линий? >>Тут, я вижу, упорно пытаются именно кабелю приписать адреса подключения, но напомню, что если кабель многожильный,то с одной строны может быть один прибор, а с другой много + еще клеммы всякие. Вы запутаетесь в блоках. Один блок с 20-тью атрибутами, другой с 10-тью, пятый с 30-тью. если кабелей 2, то можно сделать всяко, если больше то дополнительные блоки-слои-типылиний причинят больше неудобств чем пользы. кстати кабель соединяет 2 прибора в общем случае. бывают шлейфовые подключения, но фактически это уже разные кабели)) >>Таблицу соединений нужно составлять опросив приборы. Вот к ним и надо делать атрибуты с номерами кабеля и их жил. Кабель - это материал. Когда его сделали на заводе, еще не знали, кто и для чего его будет использовать. А блок с данными на кабель - его свойства и не более (я так считаю). Опрашивать можно хоть приборы хоть кабели. а лучше и то и другое. про жилы кабеля я ниче не говорю, это другой разговор. да, материал, но каждый кабель имеет свои условия прокладки, длину и т.д. это всё в проекте должно быть учтено, а не просто строка в спецификации "кввг - 5км" >>то Вам придется копировать этот блок 150 раз а вам придется 300 раз редактировать свойства устройств которые этот кабель соединяет. пысы. Я не предлагаю на каждый кабель вставлять блок, а говорю что без информации о каждом отрезке кабеля не обойтись. Где ее хранить - другой вопрос. имхо лучше в расширенных данных примитива имитирующего кабель Последний раз редактировалось zamtmn, 18.05.2009 в 19:06. |
|||
![]() |
|
||||
Цитата:
Кто мешает в модели держать открытую, легко читаемую таблицу соединений? Не для выпуска листа документации, а для служебных целей. Если в такой таблице есть несколько М-текстов с полями, которые указывают на нужную линию и нужные объекты (приборы) - вот тебе и связь. Обрабатываем такую таблицу и делаем на основе данных, заключенных в ней любые документы. В такой таблице и на блок-бирку можно М-текстом указатель вставить, чтобы проге легче было его выискивать. Тогда вообще отпадает необходимость в привязке блока-бирки к линиям по типу или цвету линий. Читаем таблицу и в строке видим первый М-текст указывающий на нужную линию, второй - на блок-бирку, третий - на прибор №1 (контакт прибора), четвертый - на прибор №2 (или конктретный контакт) и т. д. Все легко редактируется, копируется, читается и понятно даже полным блондинкам. Блок-бирка - один на все кабели такого типа, просто он в таблице связан с кучей М-текстов. Чтобы посчитать общий расход кабеля достаточно его найти и обработать его "метод расчета". Короче, я за служебную таблицу, а не за расширенные данные. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Если пишется программа для всех, а не только для себя, любимого, то надо очень тщательно все продумывать. Записывать данные в расширенные данные примитива - упремся в формат таких записей. Кончится тем, что созданную тобою модель может посчитать только созданная тобою же программа, а создать такую же модель другому человеку будет не легко. Формат данных - это самая гадкая штука, на которой погибло очень много хороших идей. Чем меньше мы используем расширенные данные, тем лучше.
Если пишем не только для себя - важно не только продумывать как храним, а также хорошенько все документировать. По вашим блокам просто так тоже не каждый поймет для чего они. хорошо документированая сложная система - ничуть не сложнее простой недокументированной. Невозможно сложную программу написать оперируя "простыми" и "понятными" данными. Кто мешает в модели держать открытую, легко читаемую таблицу соединений? Не для выпуска листа документации, а для служебных целей. Если в такой таблице есть несколько М-текстов с полями, которые указывают на нужную линию и нужные объекты (приборы) - вот тебе и связь. Обрабатываем такую таблицу и делаем на основе данных, заключенных в ней любые документы. В такой таблице и на блок-бирку можно М-текстом указатель вставить, чтобы проге легче было его выискивать. Тогда вообще отпадает необходимость в привязке блока-бирки к линиям по типу или цвету линий. Читаем таблицу и в строке видим первый М-текст указывающий на нужную линию, второй - на блок-бирку, третий - на прибор №1 (контакт прибора), четвертый - на прибор №2 (или конктретный контакт) и т. д. Все легко редактируется, копируется, читается и понятно даже полным блондинкам. Блок-бирка - один на все кабели такого типа, просто он в таблице связан с кучей М-текстов. Чтобы посчитать общий расход кабеля достаточно его найти и обработать его "метод расчета". Короче, я за служебную таблицу, а не за расширенные данные. Никто не мешает. но возникают большие головняки - поддерживать эту таблицу в актуальном состоянии. У меня был такой подход, пришлось отказаться и генерировать таблицу соединений-подключений только тогда когда она нужна. на словах всё вроде просто и понятно. когда начинаешь делать - всё сложнее)) |
|||
![]() |
|
||||
Вообще-то я сторонник того, чтобы элемент нес в себе все необходимые данные, в частности "приписанные свойства" и атрибуты. Под "приписанными свойствами" я подразумеваю такие свойства, которые принадлежат не графическому примитиву, а той физической сущности, которую он изображает. Я динамические блоки взял за основу хранения данных об изделиях и материалах именно поэтому.
Расширенные данные тоже своего рода "приписанные свойства", но я их использую для хранения значений видимости по группам. У меня прога, которая формирует много вариантов видимости модели (как в динамическом блоке) и я выбирая первый, или второй, или третий и т.д. указатель в расширенных данных, устанавливаю данному элементу параметр видимости. Расширить свой формат расширенных данных для хранения "приписанных свойств" можно, но тогда каждая линия в модели превратится из примитива в сложный объект и стереть ее и прорисовать заново будет уже не просто. Хотя с таблицей тоже самое будет. Может лучше поднапрячься и сделать распознавание места соединения начала и конца 3D полилиний с конкретными точками на приборах? Ведь по идее, только те точки, которые имеют одинаковые координаты X, Y, Z в пространстве модели и являются местом соединения провода с проводом, провода с клеммой и т.п. Программно вполне реализуемо. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Другой вариант - тыкаем в линию, узнать что это за "кабель". если линия хранит в себе эту информацию - всё ок, если нет нужно шарить по таблицам, вроде не критично, но всеравно не очень правильно.
>>Может лучше поднапрячься и сделать распознавание места соединения начала и конца 3D полилиний с конкретными точками на приборах? у меня это есть, информация о подключениях строится динамически при редактировании кабелей |
|||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Довольно давно пробовал подключить к Каду базу данных Access (она есть у меня в составе программы для составления спецификаций), подключилась, затем выбираю любой примитив (блок, созданный просто для удобства вставки "созать блок" без атрибутов и всего прочего) на чертеже присваиваю ему значение из базы данных и теперь при наведении на него мышкой подсвечивается что это, например, кабель КВВГ или датчик давления WIKA и пр. Как дальше все прикрутить, ну типа передать данные в таблицу (спецификацию) не пойму (в каде не очень продвинут). Может быть в эту сторону порыться?
|
|||
![]() |
|
||||
Считаю необходимым разделить задачи.
Я занимаюсь моделированием строительных процессов и для этого мне надо создавать "модель тела" и "модель действий". "Модель тела" я создаю в Автокаде и от нее мне требуется точное количество и параметры всех ее элементов. Такие данные, как, кто, с кем соединен и для чего - тут не нужны, хотя где-то это тоже должно быть. Все мои потуги направлены на специфицирование модели в зависимости выбора условий (этап строительства, участок строительства, вид работ по разделам проекта и т.п.). Здесь же, как я понимаю, идет базар о кабельных журналах и увязке элементов друг с другом по факту их совместной деятельности. Единственное что объединяет эти две задачи, это то, что и там, и там все делается на основе модели объекта, выполненной в масштабе 1:1. Правда тут и про геоподоснову тоже пару слов есть, но поскольку она хоть и 2D, но 1:1 будем считать, что она тоже модель объекта. Хочу также заметить, что таблицы соединений и принципиальные схемы хоть и показывают кабели, но их длинна там не соответствует действительности. Но зато там есть все данные о соединениях. По принципиальным схемам никто спецификцию не составляет. Только по монтажным. В кабельный журнал безусловно надо вносить длинну кабеля, но только после того, как кабель проложен в модели. А как он там прокладывается? - рисуем линию, определяем ее цвет, тип, слой; вешаем на нее блок-бирку; вешаем на нее блок-указатель для связи с кабельным журналом. С чем еще надо связывать? да больше не с чем. Блок-бирку видно? - видно. Блок-указатель для связи с кабельным журналом видно? - видно. Если убить линию, то блок-указатель потеряет с этим объектом связь (там полем М-текста связь установлена). Прога легко найдет такой потерянный блок-указатель. Если на линию не ссылается ни один блок-указатель, но эта линия привязана к блоку-бирке, то прога начнет ругаться и укажет вам, где вы пропустили блок-указатель. Мне блоки-указатели в модели не нужны, поэтому я их просто выключу. А вам они надо - вы их включите. Можно прогу написать так, что линию вы будете строить из под проги, а она автоматически будет создавать блоки-указатели и приписывать к блокам-биркам. Блоки-указатели можно в стороне группировать в кучку, чтобы модель не нагружать, и с помощью все той же проги, выделив блок-указатель, подсвечивать нужную линию в модели (и наоборот). С расширенными данными раз плюнуть забыть их в линию вставить или отредактировать. Их ведь не видно! По сути, поле М-текста связывает два примитива в одну группу и это по сути почти блок. В М-ткст можно вставить связь сразу на несколько линий или примитивов. |
||||
![]() |
|
||||||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||||
![]() |
|
||||
Прежде, чем сесть за написание проги, надо создать пару-тройку блоков-бирок и блоков-указателей. Ведь состав свойств и атрибутов этих блоков имеет принципиальное значение для написания проги.
Цитата:
|
||||
![]() |
|
||||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
Цитата:
zamtmn Цитата:
Цитата:
Цитата:
Последний раз редактировалось Nikolay 2, 20.05.2009 в 12:53. |
|||||
![]() |
|
||||
Цитата:
Цитата:
Если вы "рисуете", а не моделируете, то ручками и калькулятором длины вычисляйте. Я, всякие умозрительные представления о компоновке, даже мысленно делать не хочу. Только 3D модель и ее развертки в окнах Layout. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>> и подъем и опуск в модели уже есть
подоснова - 2Д. на ней городить 3Д - себе дороже >>Если вы "рисуете", а не моделируете, то ручками и калькулятором длины вычисляйте. Вы видимо слабо представляете электротехнические разделы)). 3Д - пока, и еще очень долго в электрике будет только на выставках и прочих презентациях |
|||
![]() |
|
||||
zamtmn,
Цитата:
Во-вторых, то, что вы считаете будет еще очень не скоро, на самом деле уже лет 7 бодро шагает по проектам. Электрика давно разводится в 3D. Во всяком случае - компановка шкафов. Даже есть много программ заточеных на это. Не знаю из каких вы краев, но в Москве Мосгеотрест уже пару лет как освоил выдачу геоподоснов с 3D ландшафтом. И совсем не обязательно превращать 2D геоподоснову в 3D для того чтобы добавить на 3D полилинии вертикальный участок нужной длинны и выставить вершины по отметкам. Перевод 2D полилинии в 3D давно уже есть. Спроси у VVA. На этом форуме о-о-чень давно есть темы о проставлении узлов 3D полилинии в соответствии с отметками поверхности на геоподоснове. Это все ЭЛЕМЕНТАРНО! Кстати, геоподоснова - модель, хоть и условная. Многое там с ошибками и неточностями, но это модель. Рисовать на геоподоснове линии-кабели есть моделирование их прокладки, а значит, если геоподоснова имеет масштаб 1:1, то длинна этих линий (при условии, что вы выставили вершины по отметкам и вертикальные участки добавили) дает точную длинну кабеля. Надо заказать VVA сделать такую функцию (я про добавление вертикального участка и символа опуска у него). Nikolay 2, давай, определяйся с производителем и его номенклатурой. Журнал будет формироваться по модели. Не связь с ним будет, а автоматическое его создание. Если расположить журнал и принципиальные схемы в одном файле, то и связь будет обеспечена. Последний раз редактировалось Supermax, 20.05.2009 в 13:53. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Во-первых, если кажется - креститься надо. Слабо я что-то представляю или нет только я могу сказать.
Вы сами писали что занимаетесь не электрикой такчто мне не кажется)). Если обидел этой фразой - сорри >>Во-вторых, то, что вы считаете будет еще очень не скоро, на самом деле уже лет 7 бодро шагает по проектам. Электрика давно разводится в 3D. Во всяком случае - компановка шкафов. Даже есть много программ заточеных на это. шагает. и неплохо. Но 3Д не всегда экономически выгодно. Я понимаю автомобили проектировать, самолеты... Но когда ОВ дали 3Д задание, ВК - 2Д, а технологи вообще в карандаше? Зачем мне всё это дорабатывать, терять время и деньги? Шкафы тут вообще не аргумент. их полностью проектирую я и не от кого не завишу 2д или 3д - как мне выгодней. >>Перевод 2D полилинии в 3D давно уже есть. Спроси у VVA. На этом форуме о-о-чень давно есть темы о проставлении узлов 3D полилинии в соответствии с отметками поверхности на геоподоснове. Это все ЭЛЕМЕНТАРНО! не спорю. но просто добавить 5м еще элементарней. какая бы не была подоснова, и чем бы не был фактически выполнен кабель - возможность чтото добавить к длине или полностью переопределить длину (вбил 100м и пофиг как там проложено - меня заказчик "попросил" столько заложить) должна быть обязательно. Заметьте мой подход не отменяет вашего - если кабель проложен 3д в соответствии с реальной трассой - не заполняем поле "добавлять" - имеем фактическую длину Последний раз редактировалось zamtmn, 20.05.2009 в 14:38. |
|||
![]() |
|
||||
Я занимаюсь "виртуальным строительством" (сорри за саморекламу) это имитация строительных процессов, проще говоря строительство, но только в компьютере. Я уже охрип говорить об этом. Я по готовым проектам (а иногда и по эскизам) "строю" дома, ЦТП, наружные сети, благоустройство и т.п. В этой связи, я как прораб (коим я когда-то был) обязан знать все виды проектной документации. А до "вольных хлебов" я был руководителем отдела проектирования, и тоже, по роду службы обязан знать все и вся. И уж я-то не понаслышке знаю, какая это туфта наши проекты (и у меня до сих пор заказчики, как гири на ногах, мешают делать не туфту).
Я не хочу никого обидеть, но думаю каждый человек, способный на самокритику, знает где и что он может еще доработать. Цитата:
Вот когда просто условно линии рисуешь - все проходит, а тройник "в натуре" не лезет. Камеры - вообще молчу, без 3D и реальных моделей запоной арматуры даже представить трудно результат. Сам, лично, участвовал в переделке камеры, где запорную арматуру поставили в принципе правильно, только человеку туда залезть и покрутить просто было не возможно. Я в своих моделях вынужден все время 3D человечков расставлять, чтобы видно было ситуацию собслуживанием. А чтобы все это разрисовать - даже страшно подумать! Только за счет 3D и могу существовать. Про добавление в М-тексте лишних метров/километров даже в поля лезть не надо. Поле вообще нужно только для пивязки к объекту, а на какое свойство оно смотрит - дело не принципиальное. Формат строки в М-тексте предлагаю такой: К1 Ж1 поле1 цифра1 поле2 поле3 разделительнаый символ - пробел К1 - номер кабеля Ж1 - номер жилы в кабеле поле1 - поле с указанием на линию, имитирующую кабель и ее свойство длинну. цифра1 - прибавка к длинне на раздел и утруску-усушку поле2 - поле с указанием на динамический блок-изделие, где Lookup-ом оформлен контакт блока. Поле указывает и на блок и на его Lookup. поле3 - поле с указанием на динамический блок-изделие, где Lookup-ом оформлен контакт блока. Поле указывает и на блок и на его Lookup. |
||||
![]() |
|
|||||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
||||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Во народ дает!.. Не, ну представьте пару-тройку примеров, без этого же вообще разговаривать невозможно!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Nikolay 2, я посмотрел твои схемы и отмечу один недостаток. Не то чтобы серьезный, но на постановку задачи влияет.
Многожильные кабеля бывают с разным сечением жил, ты знаешь это. Бывают такие навороченные, что и описать сложно. Поэтому, как правило, на отдельном листе дают сечение кабеля и маркировку его жил. Там может быть и несколько экранов, и словые линии и даже оптоволоконные. Имея условные обозначения жил (ж1, ж2, или просто 1, 2), в разьеме не только адресат указывается, но и обозначение жилы кабеля (три столбца контакт-адресат-номер жилы). Это не простой случай, но программу надо затачивать по полной. Последний раз редактировалось Supermax, 21.05.2009 в 13:57. |
||||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
Цитата:
Цитата:
|
|||
![]() |
|
||||
Ну давай.
Берем такую ситуацию: Консоль, два блока с одной стороны консоли и другой. 1. случай. Кабель один, входит как в блок1, так и в блок2 через гермоввод. То есть мы имеем только длинну кабеля, НО! И блок1, и блок2 - 3D динамические блоки, имеющие свойства-контакты (lookup-ами сделанные). Прога требует - ткнуть в кабель - задать название кабеля (1К по твоему) - просит указать название жилы (1ж или 1э если экран) - ткнуть в блок1 - появляется список контактов, надо выбрать нужный (в имя контакта входит и название разьема) - ткнуть в блок2 - появляется список контактов блока2, надо выбрать нужный - задать прибавку для длинны на раздел - указать место, куда будет вставлен М-текст - блок-указатель. Сколько связей в этом кабеле, столько раз надо проделать такую процедуру. Появляются М-тексты состоящие из - 1к (название кабеля) - 1ж (название жилы) (как-то "название" глаз режет) - поле с длинной кабеля - поле с именем блока1 - Поле с данными lookupa блока1 (его контакт) - поле с именем блока2 - Поле с данными lookupa блока2 (его контакт) - длинна прибавки Последний раз редактировалось Supermax, 21.05.2009 в 20:38. |
||||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Родилось "хитромудрое" решение. работает без автокада
http://download.shamangrad.net/zcad/cad.rar на подоснову *.dxf подготовленую в акаде расставляем блоки оборудования (меню - план\КИПиА\расстановка оборудования) и соединяем все кабелями (план\кабельная трасса\новая трасса), всё называем и присвваиваем материалы. свойства оборудования: ![]() свойства кабеля: ![]() свойства подъема\опуска (добавляет к длине проходяшего через него кабеля определенное значение, если кабельная трасса выполнена 2D) ![]() на подготовленную снова в акаде схему подключений расставляем блоки маркировки кабелей и задаем им обозначения (по ним будет связь с кабелями на плане) ![]() меню план/КИПиа/маркировка кабелей - длины и материалы кабелей обновляются из плана ![]() попутно тыкаем кнопки КЖ и ВМ - экспортируем в эксель (CSV) кабельный журнал и суммарную ведомость материалов ![]() В конце получаем: ![]() Картинки из примера sample\test_dxf\KIPiA\ Последний раз редактировалось zamtmn, 25.05.2009 в 13:19. |
|||
![]() |
|
||||
Моя позиция по поводу увиденного - однозначно, не катит.
А катит с моей колокольни следующее: - Рисуем принципиальную схему (без длин) - Строим в 3D модели объекта реальную прокладку кабелей, со штрабами, лотками, подвесами и пр. - Обрабатываем модель и составляем все нужные документы, включая прописывание длин туда, куда надо. Лично мне надо такой способ моделирования, при котором автоматически создаются нужные документы. Автоматизировать устаревшие принципы производства документации не разумно. У меня в модели, кроме электрики еще и весь остальной дом с коммуникациями. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Тоже самое 3D. но нужно ли оно в данном случае?
![]() ИМХО, только лишнее усложнение >>А катит с моей колокольни следующее: >>- Рисуем принципиальную схему (без длин) так и есть. >>- Строим в 3D модели объекта реальную прокладку кабелей, со штрабами, лотками, подвесами и пр. хоть 3д, хоть 2д. хоть вообще без плана - Обрабатываем модель и составляем все нужные документы, включая прописывание длин туда, куда надо. схема подключений, кабельный журнал - основные документы. пока только на экспорт - доделаю таблицы, будут внутри. какие документы еще предлагаешь сделать? >>Лично мне надо такой способ моделирования, при котором автоматически создаются нужные документы. >>Автоматизировать устаревшие принципы производства документации не разумно. не понял. что я сделал не автоматически, а у тебя будет автоматически? "Устаревшие" - громко сказано. 2д на обычных объектах экономически выгоднее. 3д - "моднее", "круче", т.д. но как глянеш "модные" проекты - просто красивые картинки, которые по идее нафиг не нужны. "Устаревшее" еще нас с вами переживет)) Последний раз редактировалось zamtmn, 25.05.2009 в 18:04. |
|||
![]() |
|
||||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
Цитата:
Цитата:
Цитата:
Supermax, хоть какие то подвижки в направлении Цитата:
|
|||||
![]() |
|
||||
Понимаете друзья, в задницу (надеюсь не сочтут это ругательством) село не проектирование, а само строительство. 3D моделирование нужно в первую очередь чтобы объект был построен хоть по какому-то плану. Имитация строительства в компьютере - вот для чего нужно 3D.
Да, в случае с геоподосновами 3D существует паралельно с 2D, но это ничего не меняет. Анализ процесса проектирования показывает, что проектировщик все равно, в мозгу, строит (представляет) в 3D. Достаточно минимальных принятых решений в концепции, чтобы строить вообще без проекта, что не зачастую, а постоянно и происходит "в натуре". Прорабы "кладут" на проекты и используют их только как сборник установок для строительства. Тезис "по такому проекту строить невозможно" реет над всеми стройками нашей многострадальной родины. Поэтому, замена первого, пилотного объекта на виртуальное строительство не только единственный выход из этого тупика, но и самое эффективное средство для создания проектной документации. Если вы имеете на руках проект - постройте объект в компьютере. До последнего винтика, да не просто "красивые картинки", а в той же последовательности, что в реальном строительстве. И вы получите опыт, который обычно получают построив объект живьем. Вот за что идет борьба. Если у вас в руках модель, где можно каждый винтик и каждый арматурный прутик, каждый кусочек штукатурки и даже воздух потрогать руками, вы можете построить тоже самое не особо всматриваясь в условные значки и схемы. И никто уже не скажет "кабеля по факту ушло больше, чем заложено в спецификации" Модель любого вора выведет на чистую воду. Но если есть модель, то почему бы с нее не "снять показания"? Составить смету не по укрупненным нормам, а по фактически примененным при моделировании объемам? Если вас не устраивает результат - всегда можно "откатится назад", это же не реальный объект. Тут стену можно подвинуть за пять минут, а в жизни такое не получится. Хоть электрика, хоть канализация, хоть что угодно, всегда надо с начала строить модель, показывать заказчику и только потом выпускать документацию полностью. Для того, чтобы сделать 3D модель своего раздела не обязательно иметь 3D модель здания. Берете план в 2D и монтируете лотки, разнося их по Z в тех уровнях, которые нужны. В Автокаде, слава богу, нет гравитации ![]() Nikolay 2, я пока в запарке и даже в темах ответы оперативно давать не могу. Жди. Последний раз редактировалось Supermax, 25.05.2009 в 21:59. |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Прорабы "кладут" на проекты и используют их только как сборник установок для строительства. Тезис "по такому проекту строить невозможно" реет над всеми стройками нашей многострадальной родины.
Это зависит не от проекта, а от прораба)) Бывает проект - дерьмо, слепят всё по проекту, бывает с хорошим проектом делают по своему. >>Если у вас в руках модель, где можно каждый винтик и каждый арматурный прутик, каждый кусочек штукатурки и даже воздух потрогать руками, вы можете построить тоже самое не особо всматриваясь в условные значки и схемы. И никто уже не скажет "кабеля по факту ушло больше, чем заложено в спецификации" Модель любого вора выведет на чистую воду. до какого винтика не разрабатывай - всеравно фактический расход будет отличаться. и не только изза "вора". ПРОВЕРЕНО "Откатиться назад" - на словах красиво. на деле головняков такие откаты сильно добавляют при любом подходе к проектированию. Хозяин-барин, нравится "виртуальное строительство" - очень хорошо. Еще лучше если за это доплачивают. Но качество проекта зависит не только от этого, не надо считать другие подходы "устаревшими" |
|||
![]() |
|
||||
Рискую уйти от темы, но все же надо правильно концепцию определить.
Дело не в "устаревших" способах проектирования. Что устарело? Устарел способ получения данных для выпуска чертежей. Сами чертежи, их внешний вид, состав, стиль оформления, все осталось по прежнему. Спор сводится к тому, от куда брать данные для специфицирования. Из головы (вооружившись калькулятором), или из модели. Сейчас даже моделирование узлов никто не заказывает. Проектировщики сами моделируют, так им легче. Естественно, любой труд должен оплачиваться, но один труд вытесняет другой и даже иногда больше вытесняет, чем он сам. Потом 3D модели не рисуют, а собирают из библиотечных 3D элементов. Это быстро и эффективно. Гораздо быстрее, чем калькулятором считать длины стен и пр. Цитата:
|
||||
![]() |
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Supermax
Цитата:
|
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Спор сводится к тому, от куда брать данные для специфицирования. Из головы (вооружившись калькулятором), или из модели.
Про голову я ничего не говорил. говорил о возможности обойтись 2d моделью. Всли задании нет 3д планов - строить их самому всеравно что брать данные из головы |
|||
![]() |
|
||||
Регистрация: 10.06.2009
Сообщений: 5
|
[quote=Alaspher;177001]
У меня похожая задача с подсчетом длин кабелей, да только спецификацию я выполнил в таблице. Одна графа-марка кабеля, другая-метраж. Теперь необходимо посчитать длины кабелей одинаковой марки. Как это можно выполнить? У меня AutoCAD 2008 rus/ |
|||
![]() |
|
||||
Поднимем старую тему.
Появилась необходимость дополнить данную программу LCAB.lsp Код:
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 5
|
Добрый день. Просьба помочь дундуку в лиспе. Все что тут говорилось о подсчете кабеля подходит больше для слаботочников. Может кто глянет на вложеный файл и поможет сделать подсчет кабеля и труб при такой форме записи как в файле (в красном круге, необходимые параметры выделены красным).
|
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
Интересная программа, но очень специфическая.
Подсчет длины кабеля происходит только в том случае, когда нужный кабель и его длинна записана в одном _mtext или _text. А вот для отделов КИП и не только это не совсем подходит. Есть другой способ и как по мне довольно универсальный. Который я не могу довести до ума. Может кто и поможет. 1) Расстановка дин блоков по чертежу. (см. вложение Вариант №1.dwg) 2) Запуск программы http://forum.dwg.ru/showthread.php?t=54936 3) Вывод результата в таблицу AutoCad либо с выбором в Excel Довести до ума не получается. 1) Поиск и сравнение одинаковых атрибутов КАБЕЛЬ. 2) Если значение атрибутов КАБЕЛЬ одинаковые то просуммировать их длинны. 3) Сортировка результата построчно в таблицу. Метод сортировки неплохо бы сделать с выбором. а) По алфавиту, б) По перечню определенных слов вписываемых пользователем. в) Рандом. Если в сортировке попадаются цифры то: КВВГ 4Х1,0 КВВГ 5х1,0 ... КВВГ 37х1,0 4) Выбор вставки этой же таблицы но в Excel (при этом не создавать новый файл .xls а предложить запись в уже существующий .xls) Универсальность заключается в том, что каждый создаст себе нужный ему вид записи кабеля, далее программа отработаем все необходимые действия. ![]() |
|||
![]() |
|
||||
Регистрация: 30.09.2008
Сообщений: 10
|
Мне понравилась програмка для подчета кабелей, но она не подходит под мои условия, она так сказать заточена под определённый вид записи.
А так как ЛИСП для меня абсолютно новый язык и лазение по английскому хелпу в котором не все команды описаны даёт покачто мало результатов. Отсюда бооольшая просьба к тем кто разобрался в принципах работы этой проги НАПИШИТЕ ПЛИЗ коментарии к каждой строчке, это сильно упрастит мне нелегкое дело изучения ЛИСПА. Заранее благодарен ![]() |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Eddicordo, В качестве чернового наброска.
Команда - CountCabel Пример см. файл из поста #106.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
VVA
Считает отменно. Можно подкорректировать несколько пунктов 1) Добавить подсчет в этом блоке не только атрибут КАБЕЛЬ. tagCabel "КАБЕЛЬ" ;_Имя тага марки кабеля tagLength "ДЛИННА_КАБЕЛЯ" ;_Имя тага длины кабеля Но и tagTruba "ТРУБА" ;_Имя тага марки трубы tagLength_tr "ДЛИННА_ТРУБЫ" ;_Имя тага длины трубы Возможно у некоторых для универсальности могут появится еще несколько подсчетов в одном блоке см. вложение Кабель | Длина Труба | Длина Метало рукав | Длина Разное | Длина 2) Сортировку делать по треста (разделам) Каждому атрибуту "КАБЕЛЬ" "Труба" присваивается номер треста (НОМЕР_ТРЕСТА_КАБЕЛЯ) и по тресту формируется таблица. Только мне не удается сделать единый Лукап для всех трестов кабеля и труб. В итоге получилось в данном случае сделать несколько Лукапов НОМЕР_ТРЕСТА_КАБЕЛЯ НОМЕР_ТРЕСТА_ТРУБ НОМЕР_ТРЕСТА_ЧЕГО_УГОДНО Может для программы осуществить единый поиск атрибутов со стандартными названиями трестов к примеру: НОМЕР_ТРЕСТА1 НОМЕР_ТРЕСТА2 НОМЕР_ТРЕСТА3 и т.д. Эти атрибуты с трестами и сортировать во возрастанию. Не знаю как программно написать. Атрибуты с одинаковыми трестами сортировать по алфавиту В дальнейшем к каждому тресту будет присвоено свое Наименование (То что показано в таблице перечня оборудования) типа: Кабель контрольный ГОСТ 1508-78E* 3) При длине кабеля (атрибута Длинна_кабеля) с десятыми 0,5 , запятую не понимает. Если ничего сделать нельзя то можно каким то образом запретить ввод запятой 4) Вывод в Excel в уже созданных .xls файл. Для того что бы можно было в Excel файле в других ячейках прописывать формулы. А ну и чуток переделанный файл lsp прилагаю Запуск CountCabel и CountCabel_tr Пытался сам ответить на свой 1 пункт Да и еще пару моментов. Подскажите какая строка отвечает за запись в Excel и какая переменная хранит в себе конечный результат? Добавил вот такие строки tagtruba "ТРУБА" ;_Имя тага марки трубы tagLength_tr "ДЛИННА_ТРУБЫ" ;_Имя тага длины трубы дописал в сохраненную переменную res теги для трубы (setq res (cabel-count-by-attr BlockName tagCabel tagLength tagtruba tagLength_tr)) Но чет вытягивает все равно только атрибуты с кабелем И запись в Excel насколько я понял (xlsf (mapcar '(lambda (x / y) (if (setq y (assoc x res)) (list (car y) (cdr y)) ) ;_ end of if ) ;_ end of lambda tmp ) ;_ end of mapcar '("Наименование" "Кол.") nil nil filename ) ;_ end of xlsf А именно ) ;_ end of lambda tmp ) ;_ end of mapcar tmp - конечная переменная хранящая данные на вывод в Excel Или я не прав? Последний раз редактировалось Eddicordo, 19.10.2010 в 12:03. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Новая версия.
Пример смотреть в посте #109 Основные принципы 1. Символ "|" зарезервирован и не должен встречаться в значениях атрибутов 2. Ф-ция cabel-count-by-attr подсчитывает значения длин и марок для кабеля в соответствии с переданными именами тагов. На самом деле передав ей имена тагов атрибутов для труб - подсчитает трубы и т.д В команде CountCabel пользователь выбирает набор блоков, а потом к этому набору мы дважды (а можно и трижды для металлорукавов и т.п) применяем функцию countcabel с разными именами тэгов атрибутов. Результат объединяем в один список и его сортируем. Затем выводим в Excell 3. Вывод осуществляется в новый файл Excell, в уже созданный столбцы копируй ручками
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 10.11.2010 в 11:21. Причина: Новая версия |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
VVA
Респект Вроде все работает отлично. Осталось протестировать и воплотить в проект. Далее возможно и чет вылезет. Ну вот результаты тестирования. 1) Присвоил я атрибут "КОД_КАБЕЛЯ" к атрибуту "КАБЕЛЬ" Нужно что бы этот код выводило в таблице 4 столбце. Почти получилось но не могу понять как мне перенести в 4 столбец и убрать подсчет количества. Да и как то съехало в лево Кусок кода. Код:
и сравнил функции (defun xls Они идентичны но во втором случае появился столбец с трестами. Странно наверное не туда смотрю. 2) Можно добавить количество просуммированных длин кабелей и труб и т.д. (Тобиш сколько tagLength было между собой просуммировано). 3) Есть необходимость в блоке указывать Одну марку кабеля и несколько длин этого же кабеля. Так же и с трубами и т.д. (Тобиш Один атрибут tagCabel "КАБЕЛЬ" и несколько tagLength "ДЛИННА_КАБЕЛЯ".) Тоесть появляются следующие атрибуты "ДЛИННА_КАБЕЛЯ1" , "ДЛИННА_КАБЕЛЯ2" и т.д. Которые между собой так же должны просуммироваться. Что то вроде такого Код:
Последний раз редактировалось Eddicordo, 21.10.2010 в 17:21. |
|||
![]() |
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Eddicordo
Добрый день, коллега! Пытаюсь решить схожие проблемы. Хотя сейчас больше занимаюсь планом трасс, как основой для получения длин кабеля. http://forum.dwg.ru/showthread.php?p=640116 Сейчас уже подошел к написанию программ для автоматического подсчета кабеля (суммирование по типам). А пока, если надо, считаю по упрощенной схеме: делаю низкоуровневый экспорт данных из блоков кабеля, расположенных в схеме соединений внешних проводок,затем макросом подхватываю эти данные в Excel и там они обрабатываются. Выводится список кабелей, металлорукавов и труб с просуммированными длинами. Но хочется сделать покрасивее и в ЛИСП. И чтобы не ошибаться при вводе марки и жильности кабеля, марки труб и металлорукавов - хочу сделать возможность вводить их, выбирая из списка. Для этого пытаюсь изучать работу с диалоговыми окнами ))) Потому что переменной tagLength окончательно присвоено "ДЛИННА_КАБЕЛЯ2". |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
Frigate, Добрый.
Цитата:
И я бы с удовольствием ее потестил. Но без схем внешних план не сделать. 1) Простановка номер кабеля, 2) Выбор марки кабеля, жильности. 3) Продумать путь кабеля от точки А до точки В. И только после этого можно приступать к плану, вытянув выше указанную информацию с блоков. Создав связь "Внешние соединения" - "План". После чего прочерчивания на плане полилиний и присвоение с выбором им вытянутых с "Внешних соединений" информацию. Ну и на последок связь с обновление на "Внешних соединений" и простановки длин соответствующим блокам. А вообще вы забыли про самую первую "Схему автоматизации" в которой указываются абсолютно все приборы с номерами позиций к ним. Которые между прочим отражаются на плане. От чего и тянется собственно наш кабель. Цитата:
Ну и так же вставкой таблицы перечня оборудования во "Внешние соединения" с указанной сортировкой по трестам. Смотрю без изучения лиспа никуда и минимум месяца на изучение его. |
|||
![]() |
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Eddicordo,
без лиспа и правда никуда, я с середины августа изучаю, начал с азов, а углубленно уже изучал при помощи программ участников данного форума и подобных ему форумов. Да, я уже пытыюсь по косточкам разложить программу VVA. Во-первых, алгоритмы, во-вторых сам уровень программирования - то, чему у него мне еще учиться и учиться, как и у многих других участников. Так что программку я переработаю, обязательно. По поводу схем внешних - конечн, они создаются до плана. Просто я их априори считаю созданными. Пока меня занимал вопрос плана трасс. ПОчитай, пожалуйста, мою концепцию. Я немного не так, как ты описал, воплотил подсчет и простановку кабелей - все это есть на 1-ой странице моей темы. Схему автоматизации и схему внешних соединений пока не пытался автоматизировать - тут нужно сначала продумать всю концепцию, учитывая при этом реальные возможности ЛИСПа (не хотел бы еще основательно изучать С++ - я все-таки не программист по профессии, лишь на прикладном уровне). |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Eddicordo, Обновил код в #110
Теперь считает и количество Цитата:
Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 10.11.2010 в 11:06. |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
VVA, Вот молодца...
Есть один недочет. При вставке в блоке 1 шт. атрибут КАБЕЛЬ 4 шт атрибута ДЛИННА_КАБЕЛЯ, ДЛИННА_КАБЕЛЯ2, ДЛИННА_КАБЕЛЯ3, ДЛИННА_КАБЕЛЯ4 Если я вписал длинны только в атрибуты ДЛИННА_КАБЕЛЯ, ДЛИННА_КАБЕЛЯ2. Остальные атрибуты с длинами пустые. То подсчет количества длин (Count) в шт. не верное. Посчитает 4 шт. А реально нужно всего 2 шт. поскольку вписано только в двух атрибута длинны. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Обновил #110. Код не проверял, но должен работать. Принцип такой: Если в атрибуте, отвечающем за длину кабеля, длина 0 - то количество не наращивается. Алгоритм ф-ции atof (преобразования текста в число) таков - если текст содержит цифры, то преобразуется в число. Иначе получаем 0. Поэтому значение атрибута может быть пустым, после преобразования в число там все равно будет 0.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
VVA, Считает отменно.
Идея с несколькими длинами одного кабеля заключается в том что вдин блоке присутствует состояние видимости. Тоесть: 1) Вставка дин блока. 2) Рядом параметр видимости "Кол. Длин" 3) Пользователь выбирает сколько длин будет относится к одной марке кабеля (tagCabel "КАБЕЛЬ") 4) Прописывает в каждом атрибуте длину кабеля. Ну и вот возникает проблема. После указания всех длин кабеля в ходе работы нужно скрыть ненужную длину. Естественно "Тетка" уже не будет очищать проставленную длину, а просто скроет ее параметром видимости. LISP считает все длинны и их количества включая те что невидимые. Можно скорректировать LISP так, что бы подсчет именно длин кабеля, считались только видимые атрибуты. Уточняю ИМЕННО ДЛИНЫ кабеля. Поскольку (tagSort "НОМЕР_ТРЕСТА_КАБЕЛЯ") У меня как раз находятся в невиде. И еще одно. Дописал еще 1 атрибут в блок "Наименование_оборудование" которое нужно вытягивать и вставлять рядом со столбцом "Marka" К примеру по столбцам: "Trest" 1 "Наименование" Кабель контрольный "Marka" КВВГ 4х1,0 "Length" 50 "Count" 2 Пытался переделать LISP но без результатно. Да еще кое какой момент. Если использовать параметр видимости и к примеру я включаю 5 длин одного кабеля, проставляю длины. В процессе работы нужно убрать не последнюю длину, а 3 к примеру. А параметр видимости уберет именно последнюю. Были мысли сделать на каждую длину свой параметр видимости. Вкл. Выкл. Вариант интересный, НО если сделать таких параметров с десяток и в каждой видимости несколько параметров движения то ПК нагружается очень сильно. Может кто знает как решить эту проблему? 30.11.2010 По программе Обнаружил недочеты. Необходимо предусмотреть отлов ошибок. 2 и более атрибутов жестко связанны между собой tagCabel "КАБЕЛЬ" и tagLength "ДЛИННА_КАБЕЛЯ" tagLength "ДЛИННА_КАБЕЛЯ2" tagLength "ДЛИННА_КАБЕЛЯ2" и.т.д. Если длина кабеля не указана, то в список сам кабель с его пустой длиной не попадает. Не проставлена длина это значит либо пустой атрибут либо с буквой "м" (метры). Пока не разобрался как к атрибуту присоединить суфиксы. И можно ли вообще. Можно ли в таком случае выдавать сообщение о том что "Не все длины проставлены" продолжить подсчет и выделять цветом те блоки в которых не вписаны длины. При повторном использовании программы и подсчетах те блоки что были выделены цветом и вписаны длины убирать выделение цветом. Последний раз редактировалось Eddicordo, 30.11.2010 в 12:46. |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
VVA, Добрый день.
Второй день мучаюсь пытаясь дописать в C:CountCabel дополнительный тег: tagNamber "N1" ;_Имя тага позиционное обозначение кабеля / трубы Значение тега tagNamber должно вписываться в таблицу столбец "Поз. обозначение" схема работы аналогичная тегу tagCabel. Но никак не получается (. Саму прогу дописывал господин Frigate, добавил вставку "м" в столбец примечания Можешь помочь? Прикладываю сам блок и lisp не корректно рабочий. countcabel_gotovo_Frigate+.lsp Видимо будет сложно добавить этот тег в чужой код. Если можно просто добавить tagNamber "N1" в написанную прогу выше пост 110. Для вывода этого тега в первый столбец экселя "Poz" Poz Trest Marka Length Count Прикладываю заново рабочий код и чертеж Последний раз редактировалось Eddicordo, 19.09.2019 в 10:12. |
|||
![]() |
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
![]() |
Подправил лисп.
(setq tagCabel "NAME_CABINET" ;_Имя тага марки кабеля / трубы tagNamber "POZ_1" ;_Имя тага позиция кабеля / трубы tagLength "NAME_CABINET_SUM" ;_Имя тага длины кабеля / трубы tagSort "ТРЕСТ_2" ;_Имя тага для сортировки кабеля / трубы 1) Вытягивает с атрибута "POZ_1" позицию оборудования и записывает в таблицу перечня столбец "Поз. обозначение". (если нет такого атрибута вставляет " ") 2) Вытягивает с атрибута "NAME_CABINET" наименование оборудования и записывает в таблицу перечня столбец "Наименование". АТРИБУТ ОБЯЗАТЕЛЕН (сравнивает значение атрибута NAME_CABINET на идентичность, если совпадает суммирует атрибуты NAME_CABINET_SUM) 3) Вытягивает с атрибута "NAME_CABINET_SUM" количество оборудования и записывает в таблицу перечня столбец "Кол.". АТРИБУТ ОБЯЗАТЕЛЕН (суммирует согласно п.2, ЕСЛИ "0" или нет атрибута вставки не будет) 4) Вытягивает с атрибута "ТРЕСТ_2" сортировка по строкам. Если будут указаны значения от 1 до 11 значит записывает в таблицу перечня столбец "Примечание" текст "м". Все остальные значения пусто. В коде можно подправить см. ниже ((and (>= group_n 1) (<= group_n 11)) "м") ((and (>= group_n 12) (<= group_n 21)) "") Для вставки таблицы "перечень оборудования" в AutoCad, в самом чертеже необходим блок (adv_table_list_of_elem) |
|||
![]() |
|
||||
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 334
|
Меня конечно запинают адепты программирования, ибо я залез в их тему, но для ищущих решения по подсчетам все же порекомендую альтернативу.
Использование наименований слоев, использование малопригодной вещи под названием "гиперссылка" - и выгрузка с фильтрацией нужностей в эксель путем "извлечения данных". Так можно справиться в ряде случаев без желания изучить лисп или ВБА. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно ли сгущение арматуры под колонной при наличии металлич | Aleks ManaeFF | Прочее. Программное обеспечение | 3 | 19.07.2007 12:02 |
Нужно ли показывать с спецификации болты, гвозди, анкеры? | Колян | Прочее. Архитектура и строительство | 9 | 14.09.2006 08:09 |
Дали задачку на плаксисе посчитать | rust-resisting | Прочее. Программное обеспечение | 1 | 25.03.2006 13:42 |
на какие ключи в реестре нужно дать полный доступ | stanislav | AutoCAD | 1 | 19.10.2005 20:40 |
Когда нужно утеплять стены подвала? | Колян | Конструкции зданий и сооружений | 15 | 02.10.2005 00:58 |