Как вставить таблицу эксель в нанокад
Экспорт таблиц Excel в таблицы AutoCAD, nanoCAD (версии 10 и выше), ZWCAD (не Classic) и обратно.
Предусмотрен экспорт в новую или существующую таблицу AutoCAD. При предварительном выборе таблицы AutoCAD целиком экспорт происходит в существующую таблицу с добавлением новых строк и столбцов. При выборе диапазона ячеек в таблице AutoCAD экспорт и импорт ведутся с начала выделенного диапазона. Также присутствует возможность импорта таблиц, состоящих из примитивов (разбитых на отрезки, полилинии и текст). После импорта из AutoCAD таблицу Excel можно очистить от кодов форматирования многострочного текста. Все процессы выполняются в реальном времени между открытыми окнами AutoCAD и Excel.
Установка производится через .bat-файл. Перед установкой Excel должен быть закрыт. При установке есть выбор набора команд контекстного меню для правой кнопки мыши. Если установка через .bat-файл не работает, можно установить надстройку вручную (Параметры > Надстройки > Управление (внизу окна) > Надстройки Excel > Перейти. > Обзор. > указать необходимый файл)
Команды в панель быстрого доступа (вверху) добавляются вручную (Параметры > Панель быстрого доступа > Выбрать команды из: (вверху окна) > Вкладка "Экспорт/импорт в AutoCAD" > Добавить).
Внимание. Во избежание потери данных вследствие фатальных ошибок nanoCAD и ZWCAD рекомендуется сохранять чертеж перед выполнением каких-либо действий.
- при экспорте в AutoCAD и nanoCAD новой таблицы экспортируются ширина и высота ячеек из Excel с округлением до 1 мм;
- при импорте таблицы из AutoCAD и nanoCAD на пустой лист Excel выдается запрос на импорт размеров ячеек;
- добавлена возможность создания связи таблицы nanoCAD и Excel (для AutoCAD, к сожалению, средствами VBA реализовать невозможно);
- улучшены алгоритмы разбивки объединенных ячеек и добавления строк и столбцов при экспорте в готовую таблицу.
- в nanoCAD исправлена ошибка при добавлении строк к существующей таблице;
- в nanoCAD исправлена функция отмены при экспорте;
- добавлена версия для ZWCAD.
- при импорте в Excel восстанавливаются предыдущие параметры вычислений в книге. Ранее всегда устанавливались на "Автоматически";
- в nanoCAD исправлена ошибка, при которой в существующую таблицу иногда не добавлялись новые столбцы, если не добавлять строки;
- в nanoCAD при экспорте и импорте таблицы .dwg, а также таблиц из примитивов размеры ячеек корректируются в соответствии с масштабом отображения объектов. Размер текста в таблице .dwg устанавливается согласно стилю таблицы либо вручную;
- в nanoCAD при создании связи таблицы nanoCAD и Excel связываемый диапазон теперь назначается по выделенным ячейкам на листе Excel. При выделении всех ячеек листа Excel создается связь со всем листом (без указания диапазона ячеек).
- при импорте в Excel перед значением ячейки будет добавлен служебный символ апострофа ('), если в ячейку импортируется значение, начинающееся с апострофа, или неприемлемое значение (например, формула с неверным десятичным разделителем), или значение, автоматически форматируемое в дату. В последних двух случаях апостроф будет добавлен, если формат ячейки не является текстовым. Служебный символ апострофа виден только в строке формул и не отображается на листе и при печати.
- при импорте в Excel исправлена ошибка при очистке объединенных ячеек.
- только при экспорте из Excel в AutoCAD добавлен автоповорот текста, если текст в ячейке Excel повернут на 90 градусов;
- добавлен поиск открытого окна AutoCAD при нескольких установленных версиях AutoCAD.
- в nanoCAD возникает ФАТАЛЬНАЯ ОШИБКА. в случае удаления ячеек смешанного типа (текст + блок), созданных или измененных при ранее проведенном экспорте в таблицу .dwg. Не экспортируйте данные в таблицу .dwg с ячейками смешанного типа;
- в nanoCAD неправильно работает метод добавления строк с наследованием свойств (InsertRowsAndInherit), в котором при добавлении строк к существующей таблице .dwg тип ячейки устанавливается как смешанный (текст + пустой блок) и создаются проблемы при последующей работе с таблицей. Метод заменен на InsertRows при котором в nanoCAD так же наследуются свойства последней строки таблицы;
- в nanoCAD периодически возникает ошибка, при которой в существующую таблицу не добавляются новые столбцы, если не добавлять строки. Ошибка потенциально исправлена добавлением дополнительных строк перед добавлением столбцов с последующим возвратом количества строк к исходному состоянию;
- в nanoCAD не работает экспорт в выделенную область таблицы .dwg (свойство HasSubSelection всегда False). Потенциально оставлена такая возможность, если это исправят в новых версиях nanoCAD;
- в nanoCAD при обновлении связи неверно устанавливаются размеры ячеек (не соответствуют размерам в режиме "Разметка страницы" в Excel). Чтобы сохранить ширину столбцов таблицы nanoCAD необходимо через редактор таблицы сохранить данную таблицу в файл .xls, скопировать из него столбцы и вставить их ширину на нужный лист (Специальная вставка > Ширины столбцов);
- в ZWCAD при экспорте таблица не обновляется самостоятельно. Для обновления таблицы необходимо совершить движение мыши в области окна программы;
- в ZWCAD при экспорте возможно зависание Excel. Если это произошло, следует удалить незавершенную таблицу, сохранить чертеж и перезапустить ZWCAD;
- при импорте таблиц из примитивов наличие среди примитивов блоков существенно замедляет процесс. Разбивайте ненужные блоки при импорте примитивов.
Экспорт таблиц Excel в таблицы AutoCAD, nanoCAD (версии 10 и выше), ZWCAD (не Classic) и обратно.
Предусмотрен экспорт в новую или существующую таблицу AutoCAD. При предварительном выборе таблицы AutoCAD целиком экспорт происходит в существующую таблицу с добавлением новых строк и столбцов. При выборе диапазона ячеек в таблице AutoCAD экспорт и импорт ведутся с начала выделенного диапазона. Также присутствует возможность импорта таблиц, состоящих из примитивов (разбитых на отрезки, полилинии и текст). После импорта из AutoCAD таблицу Excel можно очистить от кодов форматирования многострочного текста. Все процессы выполняются в реальном времени между открытыми окнами AutoCAD и Excel.
Установка производится через .bat-файл. Перед установкой Excel должен быть закрыт. При установке есть выбор набора команд контекстного меню для правой кнопки мыши. Если установка через .bat-файл не работает, можно установить надстройку вручную (Параметры > Надстройки > Управление (внизу окна) > Надстройки Excel > Перейти. > Обзор. > указать необходимый файл)
Команды в панель быстрого доступа (вверху) добавляются вручную (Параметры > Панель быстрого доступа > Выбрать команды из: (вверху окна) > Вкладка "Экспорт/импорт в AutoCAD" > Добавить).
Внимание. Во избежание потери данных вследствие фатальных ошибок nanoCAD и ZWCAD рекомендуется сохранять чертеж перед выполнением каких-либо действий.
- при экспорте в AutoCAD и nanoCAD новой таблицы экспортируются ширина и высота ячеек из Excel с округлением до 1 мм;
- при импорте таблицы из AutoCAD и nanoCAD на пустой лист Excel выдается запрос на импорт размеров ячеек;
- добавлена возможность создания связи таблицы nanoCAD и Excel (для AutoCAD, к сожалению, средствами VBA реализовать невозможно);
- улучшены алгоритмы разбивки объединенных ячеек и добавления строк и столбцов при экспорте в готовую таблицу.
- в nanoCAD исправлена ошибка при добавлении строк к существующей таблице;
- в nanoCAD исправлена функция отмены при экспорте;
- добавлена версия для ZWCAD.
- при импорте в Excel восстанавливаются предыдущие параметры вычислений в книге. Ранее всегда устанавливались на "Автоматически";
- в nanoCAD исправлена ошибка, при которой в существующую таблицу иногда не добавлялись новые столбцы, если не добавлять строки;
- в nanoCAD при экспорте и импорте таблицы .dwg, а также таблиц из примитивов размеры ячеек корректируются в соответствии с масштабом отображения объектов. Размер текста в таблице .dwg устанавливается согласно стилю таблицы либо вручную;
- в nanoCAD при создании связи таблицы nanoCAD и Excel связываемый диапазон теперь назначается по выделенным ячейкам на листе Excel. При выделении всех ячеек листа Excel создается связь со всем листом (без указания диапазона ячеек).
- при импорте в Excel перед значением ячейки будет добавлен служебный символ апострофа ('), если в ячейку импортируется значение, начинающееся с апострофа, или неприемлемое значение (например, формула с неверным десятичным разделителем), или значение, автоматически форматируемое в дату. В последних двух случаях апостроф будет добавлен, если формат ячейки не является текстовым. Служебный символ апострофа виден только в строке формул и не отображается на листе и при печати.
- при импорте в Excel исправлена ошибка при очистке объединенных ячеек.
- только при экспорте из Excel в AutoCAD добавлен автоповорот текста, если текст в ячейке Excel повернут на 90 градусов;
- добавлен поиск открытого окна AutoCAD при нескольких установленных версиях AutoCAD.
- в nanoCAD возникает ФАТАЛЬНАЯ ОШИБКА. в случае удаления ячеек смешанного типа (текст + блок), созданных или измененных при ранее проведенном экспорте в таблицу .dwg. Не экспортируйте данные в таблицу .dwg с ячейками смешанного типа;
- в nanoCAD неправильно работает метод добавления строк с наследованием свойств (InsertRowsAndInherit), в котором при добавлении строк к существующей таблице .dwg тип ячейки устанавливается как смешанный (текст + пустой блок) и создаются проблемы при последующей работе с таблицей. Метод заменен на InsertRows при котором в nanoCAD так же наследуются свойства последней строки таблицы;
- в nanoCAD периодически возникает ошибка, при которой в существующую таблицу не добавляются новые столбцы, если не добавлять строки. Ошибка потенциально исправлена добавлением дополнительных строк перед добавлением столбцов с последующим возвратом количества строк к исходному состоянию;
- в nanoCAD не работает экспорт в выделенную область таблицы .dwg (свойство HasSubSelection всегда False). Потенциально оставлена такая возможность, если это исправят в новых версиях nanoCAD;
- в nanoCAD при обновлении связи неверно устанавливаются размеры ячеек (не соответствуют размерам в режиме "Разметка страницы" в Excel). Чтобы сохранить ширину столбцов таблицы nanoCAD необходимо через редактор таблицы сохранить данную таблицу в файл .xls, скопировать из него столбцы и вставить их ширину на нужный лист (Специальная вставка > Ширины столбцов);
- в ZWCAD при экспорте таблица не обновляется самостоятельно. Для обновления таблицы необходимо совершить движение мыши в области окна программы;
- в ZWCAD при экспорте возможно зависание Excel. Если это произошло, следует удалить незавершенную таблицу, сохранить чертеж и перезапустить ZWCAD;
- при импорте таблиц из примитивов наличие среди примитивов блоков существенно замедляет процесс. Разбивайте ненужные блоки при импорте примитивов.
Разбитые на примитивы dwg таблицы – нередкое явление в чертежах. Работать с ними можно, но весьма неудобно. Добавить строки и столбцы в такие таблицы просто, а вот вставить новые – трудоемко.
nanoCAD Plus с модулем СПДС позволяет «склеить» отрезки и текст (примитивы чертежа) в таблицы nanoCAD. Для этого разработана утилита Распознавание таблиц.
Команду Распознавание таблиц (SPRECTABLE, RECTABLE) вы найдете в ленточном интерфейсе на вкладке СПДС, в подвале группы Форматы, таблицы (рис. 1).
Рис. 1. Подвал группы Форматы, таблицы
Распознавание таблиц позволяет производить автоматический поиск отдельных примитивов и их замену на объект «Таблица nanoCAD». Исходные примитивы остаются на чертеже, распознанная таблица создается в виде их копии.
Оптимальный порядок действий выглядит следующим образом:
- перенести примитивы в отдельную область на чертеже;
- вызвать команду Распознавание таблиц;
- указать на чертеже точку вблизи таблицы.
Пример использования
На чертеже есть таблица, состоящая из отдельных отрезков и многострочных текстов (рис. 2).
Рис. 2. «Разбитая» таблица
Воспользуемся командой Распознавание таблиц.
Сразу после выполнения команды мы видим наложение распознанной таблицы на исходные примитивы (рис. 3). Ширина и высота ячеек распознаются максимально точно, Мтекст преобразуется в значение соответствующей ячейки, новая таблица создается в слое СПДС_ТАБЛИЦЫ. Нам требуется только перетащить таблицу за «ручку» на свободное место, после чего открыть полный редактор nano-таблиц для настройки стилей ячеек и дальнейшей работы с таблицей.
Рис. 3. Распознанная таблица nanoCAD
Частный случай таблиц – форматы, и они нередко оказываются «взорванными». В nanoCAD Plus с модулем СПДС для их восстановления есть утилита Распознавание форматов (SPRECF, RECF). В интерфейсе ее можно найти рядом с утилитой Распознавание таблиц (см. рис. 1). После объединения примитивов вы получите полноценные объекты СПДС: формат, основную надпись и штампы с многофункциональными «ручками» и диалоговыми окнами.
Заключение
Две небольшие утилиты с простейшим алгоритмом выполнения позволят вам восстановить из примитивов чертежа полноценные объекты nanoCAD СПДС и комфортно продолжить работу.
Делитесь своим опытом работы в отечественной САПР, обсуждайте существующий функционал и предлагайте новый на форуме nanoCAD.
В течение 30 дней вы можете бесплатно тестировать достойную альтернативу зарубежным САПР. Переходите по ссылке и скачивайте nanoCAD Pro с максимальным количеством модулей и возможностей.
Одним из наиболее популярных вопросов по программированию под nanoCAD является «Как мне импортировать точки из текстового файла?». Задача это несложная, но профессиональный проектировщик не обязан быть профессиональным программистом, поэтому эту статью мы написали в стиле «для начинающих».
Требуется: написать приложение, которое по команде IMPORTCOORDS запрашивает имя файла и импортирует найденные координаты в текущее пространство чертёжа в виде объектов DatabaseServices.DBPoint . Координаты объектов должны импортироваться в текущей пользовательской системе координат (UCS) чертежа.
Создание и настройка рабочего проекта
Структура программы
- Зарегистрировать команду IMPORTCOORDS.
- Получить базу данных текущего чертежа и редактор командной строки.
- Запросить имя файла с координатами.
- Открыть файл, прочитать строки с координатами.
- Создать объекты DBPoint с отдельными координатами. Преобразовать их координаты в текущую пользовательскую систему координат.
- Добавить созданные объекты в текущее пространство чертежа (Model Space или Paper Space).
Прежде чем продолжить, хотелось бы остановиться и в двух словах рассказать, что же такое «база данных чертежа». .dwg-файл представляет собой базу данных, имеющую строгую структуру, основные элементы которой — таблицы (Symbol Tables), которые содержат все объекты чертежа. Это не только графические объекты, которые мы видим на чертеже (прямые, дуги, точки и тд.), но и множество других объектов, которые определяют содержимое и настройки чертежа. Например, таблица слоев (Layer Table) содержит в себе все слои, которые имеются на чертеже, таблица типов линий (Linetype Table) хранит все стили линий, определенные в чертеже, таблица пользовательских систем координат (UCS Table) — все системы координат, созданные пользователем для данного чертежа, и др. Таким образом, создать новый объект чертежа — значит создать соответствующий объект базы данных.
Итак, продолжаем. В первую очередь нам необходимо выбрать из всех открытых документов текущий и открыть его базу данных. Для этого мы получаем объект-менеджер всех открытых документов, и затем с его помощью и базу данных, с которой мы будем дальше работать.
Для того, чтобы наше приложение запрашивало имя файла, необходимо получить объект Editor и вызвать метод, который запрашивает пользовательский ввод определённого типа (в нашем случае имя файла):
Переходим к созданию графических примитивов (Entity). Как уже отмечалось выше, для того, чтобы создать любой объект (не только графический), который будет храниться в чертеже, его необходимо добавить в базу данных чертежа, а именно в соответствующий объект-контейнер. Так, например, все слои хранятся как записи в таблице слоев (Layer Table), которая является в этом случае для них объектом-контейнером. Общая структура базы данных выглядит следующим образом:
Графические примитивы хранятся в базе не напрямую, а в структуре отдельных блоков, которые в свою очередь являются записями в таблице блоков (Block Table). Это очень удобно, поскольку такой механизм позволяет легко группировать объекты в именованные блоки и управлять ими, как единым целым. К слову, пространство модели и пространства листа в базе также представлены отдельными блоками. Таким образом, для графического примитива контейнером будет являться отдельный блок, который, в свою очередь, будет принадлежать родительскому объекту — таблице блоков.
Раз мы работаем с базой данных, то необходимо обеспечить ее целостность и защиту в случае, если во время выполнения программы произошла какая-то ошибка. Для этой цели применяется механизм транзакций. Транзакции объединяют в себе целый ряд операций, которые выполняются как единое целое: если что-то пошло не так, транзакция отменяется, и объекты, созданные в рамках этой транзакции не будут добавлены в документ. Если же все операции завершились успешно, то транзакция подтверждается, и объекты добавляются в базу.
Вооружившись этими знаниями, можем смело добавлять в текущее пространство чертежа примитивы «точка» по координатам, которые мы прочитали из файла.
Задача практически решена. Осталось выполнить одно условие: примитивы-точки должны создаваться в координатах пользовательской системы координат (UCS). Необходимо отметить, что примитивы хранятся в базе данных чертежа в мировой системе координат (WCS). Следовательно, при создании примитивов необходимо выполнить преобразование: UCS->WCS. Делается это при помощи матрицы пользовательской системы координат:
Итак, программа полностью написана. Что же дальше?
Загрузка приложения в nanoCAD
Осталась самая приятная часть — загрузить программу в nanoCAD и любоваться результатами своей работы. Как вы помните, мы создавали рабочий проект как библиотеку классов, поэтому после успешной компиляции будет построена сборка с именем вашего проекта. Открываем nanoCAD, в командной строке пишем команду NETLOAD, выбираем из списка построенную библиотеку и загружаем. Для запуска программы просто введите имя команды IMPORTCOORDS в командной строке.
Импорт координат. Версия 2.0
Усовершенствуем первую версию приложения, добавив несколько полезных функций и элементы пользовательского интерфейса.
Если первая версия приложения «понимала» текстовый файл, в котором координаты разделены только пробелами и в качестве десятичного разделителя использовалась точка, то теперь приложение сумеет «распознать» координаты, разделенные символом табуляции, пробелом или точкой с запятой. Что же касается десятичного разделителя, то в качестве него теперь может выступать как точка, так и запятая, импорт будет производиться без учета региональных настроек. По команде IMPORTCOORDS теперь будет открываться модальный диалог импорта координат, в котором пользователь может выбрать файл и указать желаемые настройки импорта координат.
Общий механизм импорта координат и создания примитивов остается практически без изменений, однако теперь это будет происходить в рамках класса формы, а задача метода-обработчика команды IMPORTCOORDS теперь сводится лишь к созданию объекта формы и выводу формы на экран в виде модального диалога:
После чего управление будет передано окну формы импорта координат.
В модуле «СПДС» есть инструменты по работе с таблицами nanoCAD, которых нет в Платформе. Эти команды позволяют восстановить таблицы, начерченные примитивами, ускорить процесс оформления таблиц на форматы, внести изменения в ячейку таблицы, минуя редактор.
Распознавание таблиц (SPRECTABLE, RECTABLE)
Таблицы, разбитые на примитивы, – нередкое явление в чертежах. Работать с ними можно, но весьма неудобно. Процесс редактирования разбитых таблиц занимает неоправданно много времени.
Утилита Распознавание таблиц позволяет «склеить» отрезки и текст (примитивы чертежа) в таблицы nanoCAD (рис.1).
Рис. 1. Расположение утилиты Распознавание таблиц в ленточном интерфейсе
Оптимальный порядок действий выглядит следующим образом:
выделить примитивы, образующие таблицу;
вызвать команду Распознавание таблиц (SPRECTABLE, RECTABLE);
указать на чертеже точку вблизи таблицы.
Исходные примитивы остаются на чертеже, а распознанная таблица создается в виде их копии.
Утилита с простым алгоритмом применения позволяет создать из примитивов чертежа полноценный объект среды nanoCAD.
Таблицы nanoCAD. Разбивка по страницам, привязка к формату
Контекстное меню таблиц nanoCAD содержит команды, обеспечивающие согласованную работу таблиц и форматов (рис. 2). Рассмотрим их более подробно.
Рис. 2. Контекстное меню таблиц nanoCAD
Привязать формат
Эта команда контекстного меню позволяет автоматически «прицепить» таблицу к формату. После вызова команды необходимо указать формат СПДС – таблица автоматически привяжется за свою точку вставки к внутреннему углу рамки формата, соответствующему точке вставки таблицы.
Для таблиц, содержащих большое количество строк, будет выполнено автоматическое разбиение по форматам.
Таблицу nanoCAD можно сразу же вставить в чертеж с форматом, к которому она будет привязана. Для этого в диалоговом окне Создание таблицы необходимо включить опцию Добавить формат и отрегулировать местоположение точки вставки таблицы (рис. 3).
Рис. 3. Диалоговое окно Создание таблицы
У привязанной таблицы nanoCAD исчезают «ручки», служащие для ее перемещения (квадратные «ручки» по углам таблицы) – рис. 4.
Отвязать формат
Эта команда возвращает таблице квадратные «ручки», что позволяет перемещать таблицу независимо от формата (рис. 5).
Рис. 4. Таблица nanoCAD, привязанная к формату Рис. 5. Таблица nanoCAD, отвязанная от формата
Разбить таблицу по страницам
Эта команда разбивает единую таблицу, содержащую разделитель страниц, на независимые таблицы. Количество новых таблиц соответствует количеству страниц в таблице
Рис. 6. Таблица nanoCAD, разделенная на две страницы Рис. 7. Вид таблицы после применения команды Разбить таблицу по страницам
На рис. 6 показана таблица со страницами, которые можно перемещать в рабочем пространстве независимо друг от друга, но в режиме работы полного редактора таблиц они представляют собой единую таблицу.
Рис. 7 демонстрирует результат применения команды Разбить таблицу по страницам: единая таблица разделена на две самостоятельные и независимые таблицы.
Модуль «СПДС» расширяет возможности работы с таблицами nanoCAD. Команды Привязать формат, Отвязать формат, Разбить таблицу по страницам ускоряют процесс оформления чертежей.
Редактирование по месту (SPIPEDIT)
Самый простой способ внести изменения в таблицу nanoCAD или в выноску – установить курсор в «нужном» месте. Утилита Редактировать по месту (SPIPEDIT) (рис.8) модуля «СПДС» Платформы nanoCAD позволяет отредактировать текст таблицы или выноски, не вызывая соответствующих диалоговых окон.
Рис. 8. Местоположение утилиты в ленточном интерфейсе
После запуска утилиты необходимо навести курсор на ячейку таблицы или строку в выноске и кликнуть для установки курсора-рис.9,10.
Рис. 9. Установка курсора в таблице nanoCAD Рис. 10. Установка курсора в выноске nanoCAD
Редактирование текста происходит с помощью клавиш. Для удаления символов в строке следует нажать Delete или Backspace. Enter завершает процесс редактирования и работу утилиты, Esc прерывает работу команды. Сочетание клавиш Ctrl+Z (отмена действий) не работает – для восстановления текста понадобится прервать команду и выполнить отмену.
Описанная утилита позволяет отредактировать текстовую строку, не обращаясь к редактору таблиц и диалоговым окнам выносок.
Модуль «СПДС» Платформы nanoCAD содержит в себе не только специализированный функционал для строительного черчения, но и инструменты для повышения комфорта работы с самым востребованным элементом оформления – таблицами nanoCAD. Описанный функционал полезен независимо от отрасли проектирования и марок выпускаемой документации.
По ссылке четыре приема, котoрые ускорят оформление чертежей в среде nanoCAD.
Татьяна Васькина, технический специалист ООО «Нанософт разработка»
Читайте также: