VetCAD

Сборка(восстановление) «взорванных» таблиц и передача(экспорт) таблиц в Exce - PRIM2TABLE

    3 оценки

dr_t_j

размещено: 31 Августа 2026
## Зачем это нужно
PRIM2TABLE восстанавливает таблицу нарисованную примитивами, экспортирует в эксель как таблицу нарисованную примитивами так и обычную таблицу
Можно выделить весь чертёж: программа сама находит в выборке все таблицы (каждая — отдельный связный набор линий сетки), сортирует их сверху вниз / слева направо и обрабатывает по очереди. В Excel каждая таблица выгружается на отдельный лист.
Понимает: LINE, LWPOLYLINE, POLYLINE (2D), TEXT, MTEXT, ACAD_TABLE.
Переносится: объединения ячеек, ширины/высоты, границы с учётом веса линий, шрифт, высота и цвет текста, выравнивание, вертикальный текст, многострочность.

---

## Команды

### P2T — сборка таблицы из примитивов

Выделяете линии сетки и тексты, программа создаёт объект ТАБЛИЦА.

Что определяется автоматически:

- **Сетка.** Отрезки и полилинии разбираются на сегменты, горизонтальные дают границы строк, вертикальные — столбцов. Близкие координаты сводятся по допуску, который спрашивается в начале команды.
- **Несколько таблиц за один проход.** Линии группируются в связные наборы: если на чертеже пять таблиц, будут собраны все пять, отсортированные сверху вниз и слева направо. Можно выделить хоть весь чертёж.
- **Объединённые ячейки.** Определяются по отсутствию внутренней границы между соседними ячейками — в готовой таблице объединения повторяются точно.
- **Выравнивание текста.** Считается по зазорам между габаритом текста и границами ячейки, отдельно по горизонтали и вертикали. Длинный текст, прижатый влево, не будет ошибочно принят за центрированный.
- **Высота текста и ширины столбцов** переносятся из исходной геометрии.
- Несколько текстов в одной ячейке склеиваются в многострочную запись.

В конце спрашивается, удалять ли исходные примитивы.

### P2X — передача таблиц в Excel

Работает и с таблицами из примитивов, и с обычными объектами ТАБЛИЦА в выборке. Открывает Excel, создаёт книгу, каждая таблица — на отдельном листе. Книга не сохраняется на диск: она остаётся открытой, как при обычной вставке.

Что переносится:

- ширины столбцов и высоты строк, пересчитанные из чертёжных единиц в пункты и символы;
- объединения ячеек;
- границы — только там, где в чертеже действительно есть линия, с толщиной по весу линии;
- шрифт из текстового стиля, размер из высоты текста, цвет с учётом ByLayer;
- выравнивание по горизонтали и вертикали, вертикальные подписи как повёрнутый текст;
- многострочность, коды форматирования MTEXT при этом снимаются, дроби и символы диаметра, градуса, плюс-минус разворачиваются в обычные знаки.

Имена листов берутся из заголовка таблицы — текста её верхней левой ячейки. Если Excel не установлен, предлагается выгрузка в CSV.

По умолчанию ячейки получают текстовый формат, чтобы не потерялись ведущие нули и не сработала автозамена дат. Переменная `*p2t-xl-text*` со значением `nil` возвращает обычный формат.

---

## Установка

1. Положите файл в папку, входящую в пути поиска AutoCAD.
2. Загрузите через ЗАГПРИЛ (APPLOAD) или добавьте в автозагрузку.
3. Введите в командной строке `P2T` или `P2X`.

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

---

## Совместимость

Возможности среды проверяются при загрузке, а не предполагаются:

- **AutoCAD 2005 и новее** — обе команды работают в полном объёме.
- **AutoCAD 2000–2004** — объекта ТАБЛИЦА в этих версиях нет, P2T предупреждает об этом, P2X работает.
- **Без ActiveX** (AutoCAD LT, отдельные клоны) — P2T недоступна, P2X выгружает в CSV; разбор чертежа при этом идёт на чистом LISP.
- **Excel старше 2007** — определяется по версии приложения, форматы и свойства подбираются соответствующие.

Все вызовы, которых может не оказаться в конкретной сборке, обёрнуты перехватом ошибок: команда не падает, а сообщает, что именно не поддерживается.

**Кодировка.** Основной файл в UTF-8. Для AutoCAD старше 2007 используйте вариант `PRIM2TABLE_ansi.lsp` в cp1251, иначе русские подсказки в командной строке будут нечитаемы.

---

## Ограничения

- Таблица должна быть ортогональна осям WCS: повёрнутые таблицы не собираются.
- Дуговые сегменты полилиний игнорируются.
- Высота строки в готовой таблице ограничена снизу высотой текста и отступами текущего стиля таблиц — если в оригинале строка была ниже, AutoCAD её увеличит.
- Поворот текста внутри ячеек существующих таблиц через COM не читается, поэтому вертикальные подписи из настоящих таблиц уедут в Excel горизонтально. Из примитивов поворот определяется корректно.

---

## Дополнительно

Команды восстановления взорванной штриховки, размеров, выносок и типов линий вынесены в отдельный файл `RESTORE.lsp` и работают независимо от этого.

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 1-2 из 2
buldozzzer , 31 августа 2026 в 14:11
#1
Это круто !
Ingpro , 31 августа 2026 в 18:15
#2
Спасибо!
"Команды восстановления взорванной штриховки, размеров, выносок и типов линий вынесены в отдельный файл `RESTORE.lsp` и работают независимо от этого". А где этот RESTORE.lsp?
zip

0.01 МБ

СКАЧАТЬ