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

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

Автоматизация для кабельного журнала, подсчет длин и марок кабеля

Ответ
Поиск в этой теме
Непрочитано 31.10.2014, 10:08 #1
Автоматизация для кабельного журнала, подсчет длин и марок кабеля
kosolapi
 
Регистрация: 17.06.2009
Сообщений: 195

Суть проблемы:
есть заготовка кабельного журнала в экесель,
что хочется
начало
1. копируешь строку кабельного журнала в буфер обмена. (несколько ячеек).
2. ( как это ВОПРОС №1) АВТОМАТИЧЕСКИ создаем полилинию в автокаде к которой присваиваем атрибутами те данные что в буфере обмена. Эту линию чертим.
чертим много много много линий по пунктам 1-2

продолжение
3. (как это вопрос №2) собираем с чертежа данные по полилиниям, это все те данные что мы им присвоили В ТОМ ЖЕ ФОРМАТЕ что в пункте 1 копировали +длинна полилиний.
4. (как это вопрос №2) потом эту таблицу в эксел копируем.
5. далее в экселе довожу до ума. (тут вопросов нет)

линий порядку 1-2тысяч, так что хотелось бы процесс автоматизировать по максимуму.
Просмотров: 13992
 
Непрочитано 31.10.2014, 10:55
#2
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Посмотри zcad http://forum.dwg.ru/showthread.php?t=8707 там всё это есть
zamtmn вне форума  
 
Непрочитано 31.10.2014, 20:20
#3
Nikolay 2


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


Здесь тоже можно посмотреть http://forum.dwg.ru/showthread.php?t=57484
Nikolay 2 вне форума  
 
Непрочитано 31.10.2014, 22:16
#4
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,991


И тут: http://www.nanocad.ru/products/detail.php?ID=21468
Nike вне форума  
 
Непрочитано 01.11.2014, 03:37
#5
Kirill_Ja


 
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
<phrase 1=


Не понял в чем конкретно состоит вопрос, но совет все равно дам. Может и пригодится.
1. Не понимаю зачем заморачиваться на буфер обмена. Проще преобразовать Excel в prn или txt и запихивать файлом целиком.
2. Получить все данные о большом количестве объектов и отобразить их в удобной форме с возможностью сохранения в Excel - _dataextraction
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения.
Kirill_Ja вне форума  
 
Непрочитано 16.11.2014, 01:31
#6
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


знаю по своему опыту в чем заключен вопрос, и думаю что в формулировке вопроса, по незнанию (неопытности), есть много лишних итераций.
как я понял : есть подобие кабельного журнала в excel, нужно сложить все длины для каждого типа кабелей - для составления спецификации
автор, пиши в лс или на почту - помогу
kakt00z вне форума  
 
Непрочитано 16.11.2014, 02:39
#7
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,991


kakt00z, да выкладывай свои соображения тут, чего уж там
Nike вне форума  
 
Непрочитано 17.11.2014, 11:28
#8
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


ну .. раз соображения, то они такие :
0. файл ексель должен быть со строкой заголовков столбцов
1. выделяем в екселе все строки, которые нужно сосчитать
2. перегоняем это всё дело в лисп - в двухмерный список, где первым будет строка заголовков
3. обрабатываем наш список, объединяя данные по типу кабеля, жильности и сечению, в итоге получая список вида
'(("КВВГнг-LS" "4" "1.5" (80 50 60 20 ...) ) ("КВВГнг-LS" "7" "1.5" (80 50 60 20 ...)) ...)
4. делаем apply '+ на хвостах
5. выводим результат в любой удобной форме
kakt00z вне форума  
 
Непрочитано 18.11.2014, 09:49
#9
Сергей812


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


Цитата:
Сообщение от kakt00z Посмотреть сообщение
1. выделяем в екселе все строки, которые нужно сосчитать
2. перегоняем это всё дело в лисп - в двухмерный список, где первым будет строка заголовков
3. обрабатываем наш список, объединяя данные по типу кабеля, жильности и сечению, в итоге получая список вида
'(("КВВГнг-LS" "4" "1.5" (80 50 60 20 ...) ) ("КВВГнг-LS" "7" "1.5" (80 50 60 20 ...)) ...)
4. делаем apply '+ на хвостах
5. выводим результат в любой удобной форме
Если у вас данные уже в экселе - зачем загонять их обратно в лисп? Все это прекрасно обрабатывается в экселе средствами VBA. Если, конечно, вы не хотите чисто идеологически только в лиспе, только хардкор)
Сергей812 вне форума  
 
Непрочитано 19.11.2014, 21:52
#10
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


ну тут да, просто наша контора спецификацию в автокаде требует, да и после лиспа морокаться с vba совсем не хочется, тут - да идеология ))
kakt00z вне форума  
 
Непрочитано 19.11.2014, 22:19
#11
Сергей812


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


Посчитать в экселе, загнать обратно в таблицу автокад.
Есть идеология, а есть лень человеческая)
Сергей812 вне форума  
 
Непрочитано 19.11.2014, 23:06
#12
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Думаю смысл не в сколько посчитать, а сколько построить.
Т.е. есть план с расстоновкой оборудования, нужно на основе заготовки кабельного журнала соединить соответствующее оборудование соответствующими кабелями. Естественно не по прямой, а по соответствующим трассам, полученную длину кабелей вернуть обратно в КЖ.
Задача несовсем тривиальная, но решения предложены

Впрочем, неважно, автор походу слился
zamtmn вне форума  
 
Непрочитано 20.11.2014, 01:13
#13
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Посчитать в экселе, загнать обратно в таблицу автокад.
Есть идеология, а есть лень человеческая)
1. КЖ принципиально делаю блоками построчно, ибо таблица в акаде на 2-3 тыс кабелей начинает бесить скоростью... да и вообще таблицы в автокаде "недоделаны" до сих пор. (настолько как МНЕ бы этого хотелось)
да и не отфильтруешь таблицу по аттрибутам... и много еще чего
2. я не претендую на рациональность своего решения, у меня спросили - я предложил

в моём случае, всё уже давно написано, написано не только то что я описал, но и "прилагаемое",.. и всё работало не один десяток раз
и с этим я не боюсь браться за проект объема [реконстр. ПТ-110+общеблочное] за сроки в 2 месяца в одиночку

так что по сути - тут - лень и идеология - это одно и то же ну и скорость туда же

PS лучше лиспа мне ... ексель еще не "считал", не "сцепливал", не "заменял" ...
и если уж совсем по идеологии....
попробуй переверни в екселе (пусть VBA) таблицу относительно диагонали скажем ~30-ю нажатиями на устройства ввода...
и тут соль даже не в количестве нажатий, а в том солько лишних переменных и итераций ты используешь, но фиг с этим ...
сделай в VBA безразмерный безразлично-типовой неважно-сколько-уровневый массив ... и потом работай с ним не думая о типе данных... не думаю что в VBA это "ПРОСТО"

Последний раз редактировалось kakt00z, 20.11.2014 в 01:37.
kakt00z вне форума  
 
Непрочитано 20.11.2014, 01:52
#14
Сергей812


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


Цитата:
Сообщение от kakt00z Посмотреть сообщение
сделай в VBA безразмерный безразлично-типовой неважно-сколько-уровневый массив ... и потом работай с ним не думая о типе данных... не думаю что в VBA это "ПРОСТО"
Динамический массив записей, и есть тип данных variant (вроде так пишется). Хотя для автоматизации КЖ он нафиг не нужен, имхо)
Сергей812 вне форума  
 
Непрочитано 20.11.2014, 01:55
#15
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Динамический массив записей, и есть тип данных variant (вроде так пишется). Хотя для автоматизации КЖ он нафиг не нужен, имхо)
так вот откуда эта ненужная херня в лисп пришла )))
kakt00z вне форума  
 
Непрочитано 20.11.2014, 02:05
#16
Сергей812


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


Вы не поверите - в VBA (если не включить явный контроль) даже тип переменных описывать не надо)
Сергей812 вне форума  
 
Непрочитано 20.11.2014, 02:19
#17
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


мне не то что верить ... мне думать об этом не хочется
kakt00z вне форума  
 
Непрочитано 20.11.2014, 02:28
#18
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>попробуй переверни в екселе (пусть VBA) таблицу относительно диагонали скажем ~30-ю нажатиями на устройства ввода...
...
>>и тут соль даже не в количестве нажатий, а в том солько лишних переменных и итераций ты используешь, но фиг с этим ...
В любом нормальном языке для этого ненадо никаких лишних переменных
А то что гдето "запись" нужного действия выглядит короткой, вовсе незначит что компилятор\интерпитатор не делает кучу ненужных действий, не плодит списки\переменные и иже с ними

>>так вот откуда эта ненужная херня в лисп пришла )))
ИМХО динамическая типизация - показатель "скриптовости" языка - т.е. серьезной каши с ним не сваришь...

>>попробуй...
Таких попробуй можно напридумывать кучу всяких разных для любого ЯП, но это абсолютно ничего не значит
zamtmn вне форума  
 
Непрочитано 20.11.2014, 02:50
#19
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


1. что значит "любой нормальный язык"? помогу, ... что значит "нормальный язык"?
для меня - нормальный язык - это тот который придерживается своих привил (например в начале располагается глагол, а за ним уже сущ., прил. и т.п.) и чем менше исключений - тем круче язык
(ничего не напоминает?)

что до меня - я знаю что конкретно делает lisp в процессе обработки того что я выше написал
про "попробуй..." ответа - нет? - ч.т.д? как в децтве? или решение денег стоит? ))
или придумай мне задачу которую vba может оптимальней решить чем лисп

и .. по итогу ... конечно никто не будет в будующем задумываться "КАК это работает", написал на яве скрипт с хелпов, не задумываясь - работает - вывод - я программист, за сим будующее...
но тут цитирую своего друга ... "разделятся на холопов и бояр ))"
kakt00z вне форума  
 
Непрочитано 20.11.2014, 03:42
#20
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>для меня - нормальный язык - это тот который придерживается своих привил (например в начале располагается глагол, а за ним уже сущ., прил. и т.п.) и чем менше исключений - тем круче язык
(ничего не напоминает?)
Очередной профи, вам в эту тему http://forum.dwg.ru/showthread.php?t=117125

>>про "попробуй..." ответа - нет? - ч.т.д? как в децтве? или решение денег стоит? ))
для вас бесплатно, с глаголами, существительными и т.д., как в децтве, на уроках математики
имеем массив m размером n на n
при использовании адресации m(i,j) - не перевернут
при использовании адресаций m(j,i), m(n-j,n-i) - перевернут вокруг соответствующих диагоналей

>>или придумай мне задачу которую vba может оптимальней решить чем лисп
Я незнаю что такое vba, поэтому сделайте на лиспе небольшой ГУЙчик, не просто окно с кнопкой, а скажем с деревом и мемом - тыкаем элемент дерева, в меме появляется его номер. Количество прикасаний к устройству ввода можете не ститать.
Но если больше нравится вертеть массивчики, то можете просто повернуть список, только чтоб список был raw обемом гигабайта 3-4, не меньше (возможно ошибаюсь, но на пример объемом 30000х30000 чисел с двойной точностью). Тут пожалуйста посчитайте сколько раз ткнёте мышку, сколько клаву.

Последний раз редактировалось zamtmn, 20.11.2014 в 03:53.
zamtmn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматизация для кабельного журнала, подсчет длин и марок кабеля

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация процесса составления кабельного журнала для ОПС Andrey_nv Программирование 4 12.03.2010 20:43