Форум пользователей ПО АСКОН

Профессиональные вопросы => Конструирование => Импорт и экспорт => Тема начата: KillJoy от 11.08.14, 21:32:47

Название: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: KillJoy от 11.08.14, 21:32:47
Задача:
- взять имя файла чертежа;
- найти совпадение в тексте документа MS Excel;
- из соседней ячейки в той же строке взять порядковый номер листа в комплекте;
- внести номер в заданную ячейку основной надписи.

Возможно ли решить такую задачу хотя бы в полуавтоматическом виде, то есть с выполнением макроса "поиск имени > вставка номера" для каждого открытого чертежа, не прибегая к программированию в чистом виде? Имеется ли вообще возможность вставить в ячейку основной надписи текст из заданной определенными правилами ячейки определенного документа MS Excel?
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Poltava от 11.08.14, 23:39:43
ЦитироватьИмеется ли вообще возможность вставить в ячейку основной надписи текст из заданной определенными правилами ячейки определенного документа MS Excel
Насколько я знаю нет такой возможности на прямую. Но если не ошибаюсь что то подобное можно было реализовать в менеджере шаблонов но это по моему не лучший вариант. Как по мне лучшим решением был бы макрос в принципе с точки зрения программирования решал эти задачи по отдельности на разных языках то есть поиск в экселе через vba и заполнение штампа на питоне но вот как то совмещать пока в голову не приходило.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Slaviation от 12.08.14, 11:45:18
В прицепе предлагаемое решение (скрипт на Python) и табличка Excel

В табличке:
в первой колонке - список чертежей
во второй - значение для записи в основную надпись чертежа
в третьей - номер ячейки, в которую это значение писать.

В строках скрипта (изменить на свои):
8 - путь до таблички Excel
11 - путь до каталога с чертежами
14, 17, 20 -  номера колонок в табличке Excel, в которых записаны файлы чертежей, значения и номера ячеек основной надписи соответственно.

При изменении путей не забывать о двойных слэшах и префиксе "u".

Установить питон, если не установлен (https://www.python.org/download/releases/2.7.8/)
Его расширение pywin32 (http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win32-py2.7.exe/download)
+
Excel и КОМПАС

Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: KillJoy от 14.08.14, 02:03:53
Хм... Компас-МАКРО и Python 2.6.6 имеются, но макрос выполняется молча и без какого-либо результата. Что я делаю не так?
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Poltava от 14.08.14, 08:59:19
может не хватает расширения pywin32 (хотя тогда наверно выдавало бы ошибку.)
И кстати макрос работает только с чертежами спецификации игнорируются.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Slaviation от 20.08.14, 09:07:51
ЦитироватьПожелания простые

1. Расширить скрипт для обработки файлов спецификаций.

2. Брать вводимый текст из двух ячеек: в одной порядковый номер листа, в другой их суммарное количество. Пример: "007/032". Если это слишком заморочно с точки зрения кода, я просто введу в Excel еще одну колонку с составным текстом.

3. Ввести номер ячейки основной надписи непосредственно в текст скрипта: "31" (графа "Копировал"). Вводить информацию в другие ячейки "внешним" образом необходимости нет, да и пользователи не смогут случайно изменить номер ячейки при вводе своих данных.

Пожелания простые.
1. Расширил.
2. В таблице excel значение, которое нужно записать в ячейку штампа сделал вычисляемым по формуле - строковая склейка значений следующих трех ячеек. Наверное, это то что надо.
3. В таблице Excel этот столбец просто скрыл.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: KillJoy от 22.08.14, 07:44:46
В приложении файл "плана проекта" в старой редакции. В новой примерно то же, только кругом ссылки и формулы, а колонки "формат", "кол-во листов" и "№№ листов" существуют в двух экземплярах – для основных листов (1–999) и дополнительных (1а–999щ).

На втором листе показан примерный вид того, как будет выглядеть отчет – набор исходных данных для скрипта. Для каждого чертежа, содержащего больше одного листа (по сумме основных и дополнительных листов), скрипт должен последовательно вписать в основные надписи листов порядковые номера из двух групп.

Примечания:
1. Обрабатывается только одна папка, указанная в теле скрипта. Поправка: схема старая – участвуют все вложенные папки.
2. Запас порядковых номеров – по 10 ячеек на основные и дополнительные листы (читать до первой пустой ячейки в каждой группе).

Вопросы:
1. В основную надпись документов-спецификаций текст не записывается – файл открывается и на этом все. Что, кроме расширения, нужно добавить в скрипт?
2. Стиль форматирования (@"/054" в данном примере) не учитывается – в основную надпись чертежа записывается только введенное в ячейку значение. Возможно ли передавать данные с учетом еще и стиля форматирования (то есть считывать именно то, что отображается, а не то, что вычисляется и форматируется)?
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Slaviation от 26.08.14, 10:42:46
В прицепе.
Пароль в личке.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: KillJoy от 26.08.14, 20:10:20
"Пустышка" для справки в приложении.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Slaviation от 28.08.14, 07:46:30
В прицепе.
Пароль тот же.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Slaviation от 01.09.14, 08:55:15
ЦитироватьОпробовал. Работает, но есть проблема: буквы в обозначении вставляются в документы в верхнем регистре. Надо, чтобы вставлялись как указано в таблице. (Не вижу в скрипте строк, в которых переменные переводятся в верхний регистр. Он так работает по умолчанию?)

И еще такое дело: столбцы с информацией для скрипта будут начинаться не с 1-го, а где-то с 20-го. Можно ли вынести в начало текста скрипта переменную с номером начального столбца? Конечно, можно просто увеличить количество обрабатываемых столбцов, но тогда скрипту придется обрабатывать слишком много лишней информации.

Поправил.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: KillJoy от 02.09.14, 19:55:10
См. приложение.
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: Slaviation от 03.09.14, 07:26:24
Инструкции в личке
Название: Re: Вставка данных из MS Excel в основную надпись чертежа
Отправлено: KillJoy от 30.10.14, 19:40:36
См. приложение. Пароль в личке.