вторник, 17 апреля 2012 г.

Excel2Grid

Обычная задачка, которая возникает наверное у каждого проектировщика каждый день. Выполнил некий табличный расчет в Microsoft Excel, а оформить его надо бы в чертеже AutoCAD. Вот только копирование через буфер из Microsoft Excel в Autodesk AutoCAD не очень красивое. Кто-то мирится с получаемым результатом, кто-то ищет обходные пути, в конечном счете, оба пути верные.
Я предпочел пойти вторым путем и написал модуль Excel2Grid, который позволяет перенести выбранный диапазон ячеек из Microsoft Excel в редактор таблиц ATable с минимальным искажением результата.
Вот пример таблицы, которую используют специалисты строительного отдела:


 Вот так выглядит лист, на котором надо разместить эту таблицу.


Прежде всего, в Microsoft Excel надо выбрать диапазон ячеек подлежащих экспорту-импорту.


В редакторе таблиц ATable в меню Таблица выбрать пункт Импорт из Excel....


В диалоговом окне Excel2Grid необходимые вернуть ссылку нажатием кнопки Ссылка и указать параметры импорта.
Многие параметры говорят сами за себя, а некоторые я поясню:
Использовать размер диапазона из Excel - означает, что размер импортируемой таблицы будет определен исходя из диапазона выбранных ячеек в Microsoft Excel, а не исходя из размера таблицы ATable.
Коэф. преобразования размеров - коэффициент применяемый для преобразования ширины и высоты ячеек из единиц измерения Microsoft Excel в единицы измерения AutoCAD.
Вписать ширину таблицы в - игнорирует коэффициент преобразования размеров и рассчитывает его исходя из размера в который надо вписать таблицу. Например, в моем случае, таблица будет вписана в 395 мм по ширине.


Если все параметры указаны и ссылка определена можно смело жать Обновить и наслаждаться процессом переноса таблицы в ATable.


Несколько секунд и таблица уже в чертеже! Можно закрыть Excel2Grid и довести таблицу до кондиции дополнительным манипуляциями, если они на самом деле нужны.


Нарочно показываю результат импорта крупно, чтобы было видно, что учтено и объединение ячеек, и поворот текста и т.п.


Добавлю, что Excel2Grid позволяет не только выполнить единовременный импорт данных из Microsoft Excel в ATable, но и установить связь между таблицей и файлом xls. После закрытия Excel2Grid записывает ссылку и параметры импорта в свойства таблицы ATable. Таким образом, если "экселевский" файл претерпит изменения, все их можно увидеть в чертеже вызвав команду обновления таблицы не открывая ATable!

Итак, две команды:
atUpdateExcel2Grid - обновить выбранные таблицы в соответствии с ссылками.
atUpdateAllExcel2Grid - обновить все таблиц в соответствии с ссылками.
В итоге, все изменения "экселевских" файлов отразятся в таблицах ATable!
Одно лишь требование, пути к файлам Excel'а не должны меняться, иначе обновление не получится. Но это не проблема для тех, у кого четко структурировано хранение документов. :)
Удачи!


Pseudo2Grid

Pseudo2Grid - уникальный модуль, посредством которого можно перенести псевдо-таблицы из чертежа AutoCAD в таблицу ATable for AutoCAD. Но прежде, чем дальше объяснять как им пользоваться, сперва надо определиться с терминами.
Псевдо-таблица - это таблица начерченная примитивами AutoCAD'а, т.е. линиями, полилиниями и текстом. Внешне набор примитивов похож на таблицу, но работать с ним как с таблицей не получится.
В общем, выглядит это примерно так:

Знакомо? Часто попадаются такие таблицы и их надо поправить или дополнить? Начнем?

Предполагается, что в ATable уже есть подходящий стиль таблицы. Если его нет - не беда, можно и без выбора стиля. Но я все таки покажу, как выбрать стиль таблицы.
В меню Стиль выбираем пункт Выбрать стиль....


В появившемся диалоговом окне надо найти подходящий стиль. В моем случае, он находится в папке Технология производства.


Применяю его к текущей таблице и получаю в чертеже таблицу с шапкой и колонками нужной ширины. Красота!


В меню Таблица выбираю пункт Импорт ручной таблицы.... Вызов команды отправит меня в командную строку AutoCAD'а.

Выбираю секущей рамкой примитивы таблицы. Все разом без разбора: линии, текст, полилинии.


На рисунке ниже видно, что именно попало в выборку. Если результат выбора устроил, можно жать Enter.


Магические преобразования и псевдо-таблица превратилась в таблицу ATable. 


Разумеется, не стоит ожидать однозначного переноса внешнего вида таблицы в редактор таблиц ATable. Но главное, перенесен текст. Он разнесен по колонкам и ячейкам. Теперь таблицу уже несложно причесать до нужного вида и можно вносить изменения любой сложности.
А если исходная таблица большая? Представьте себе, сколько времени экономит этот модуль!
Кстати, преобразованную таким образом псевдо-таблицу можно из ATable скопировать через буфер обмена в Microsoft Excel или Microsoft Word! Тоже неплохое подспорье!

понедельник, 16 апреля 2012 г.

TDMS2Grid

TDMS - система электронного архива и документооборота, которую мы применяем в ЗАО "Тюменьнефтегазпроект" для хранения всей проектно-сметной документации предприятия. Хранение четко структурировано, например, в системе присутствуют такие объекты, как марка, комплект чертежей, чертеж, спецификация и т.п. В общем, с помощью TDMS можно легко получить отчеты соответствующие ГОСТ Р 21.1101-2009:
Ведомость рабочих чертежей основного комплекта
Ведомость ссылочных и прилагаемых документов
Ведомость основных комплектов чертежей.
ATable for AutoCAD - один из первых редакторов таблиц для AutoCAD. Именно для него написан модуль TDMS2Grid, который позволяет перенести результат отчета из TDMS в ATable. Работа модуля напрямую зависит от наличия на компьютере установленных AutoCAD 2012, ATable for AutoCAD 2012 и TDMS 3.
Чтобы TDMS2Grid из всей массы выборок хранящихся в TDMS смог понять, какие имеет смысл импортировать в ATable, они должны удовлетворять следующим условиям:
1. Выборки должны иметь SysId вида ATable:Query_name.
2. Выборки должны иметь параметр, у которого SysId равен Object.
3. Выборки должны в комментарии содержать полный путь к стилю импортируемой таблицы.
Вот и все условия. Просто!



Вызовем модуль из меню ATable for AutoCAD.


После вызова модуля TDMS2Grid на экране появится диалоговое окно на котором будет виден процесс обработки всех выборок существующих в TDMS.
Когда этот процесс окончится, в списке будут доступны выборки для импорта. Также будет выведена информация о выбранном объекте.


Нажатием кнопки Обновить модуль выполнит выбранную выборку передав ей выбранный объект. Если выборка выполнится с ошибкой или вернет пустой результат, таблица в ATable не изменится. Однако, если выборка успешно вернет результат, то и таблица в ATable претерпит соответствующие изменения.

Таким образом, в ЗАО "Тюменьнефтегазпроект" мы облегчаем жизнь сотрудникам проектных отделов, которые регулярно оформляют листы общих данных наполняя их одними и теми же ведомостями.
А представьте, насколько рутинной может быть заполнение ведомости рабочих чертежей, если чертежей в комплекте порядка сотни? А если две сотни? На ручное создание такой таблицы уйдут часы работы и литры скучного чая! А с TDMS2Grid перенос данных займет только 3-5 минут и никаких нервных расстройств. :)