VetCAD

Довольно мощный копировщик текста и не только

    0 оценок

den001

размещено: 05 Января 2007
обновлено: 06 Марта 2007
Повторяюсь, ну да ладно.
Программа для копирования значения текста, мтекста, атрибутов блоков в текст, мтекст, атрибут в любом сочетании. Если в блоке несколько атрибутов, то работает первый.
Поддерживает копирование между файлами, выноски, создание полей, сортировку прямую и обратную по одной и двум координатам.
Есть возможность работы с таблицами.

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

Варианты.
------------
Обычный.
Все происходит в текущем файле

Связанный файл.
Копирование из текущего файла в связанный файл (точнее - открытый в данный момент чертеж ACAD), название которого отображается в соответствующей строке (если там пусто, то будет предложено выбрать, если существует открытый чертеж с тем же именем, что и текущий + "План", то он по умолчанию считается связанным (извините, специфика работы)). Связанный файл можно установить с помощью кнопки "Связать с файлом".

Поле.
Хорошая и нужная вещь. Значения исходного набора не просто копируются в целевой, а преобразуются в поля (работает в ACAD 2005 и выше). То есть при изменении исходного значения меняется и целевое (после сохранения, регенерации, вызова команды "Печать" и т.п. (настраивается в Настройках)).

Другой файл.
Копирование в любой другой открытый в данный момент чертеж, отличный (необязательно, но логично) от Связанного. Выбирать его нужно каждый раз.
_________________
Теперь навороты.

Выноска.
Значения выбранных объектов присваиваются первому (логично - единственному) в целевом наборе в виде одной строки, разделенные Разделителем1.
Пример.
выбраны объекты "1" "2" "3"
Разделитель1 = ", "
Результат: "1, 2, 3"

-----------
Несколько.
Каждое значение объекта из исходного набора можно присвоить нескольким объектам целевого. Точнее будет предложено сделать целевых наборов по количеству объектов в исходном.
Пример.
Выраны объекты "А" "Б" "В"
Первый целевой набор: "А", "А" ... "А"
Второй: "Б", "Б" ... "Б"
Третий: "В", "В" ... "В"

Если подняты флажки и Вынока и Несколько, то результат в данном случае будет (Разделитель1 = ":", к примеру)
"А:Б:В", "А:Б:В" ... "А:Б:В"

------------

Сортировка.
После выбора объектов предлагает выбрать режим сортировки для данного набора (Нет, X, Y, XY, YX и Inv). Inv - подобие флажка, устанавливает, что сортировка будет в обратном порядке. К названию набора в командной строке (+ в пояснении на поле чертежа в ACAD 2006 и выше) добавляется "(обр.)"
Если выбрано "Нет", то объекты идут в последовательности выбора.
По X и по Y должно быть понятно (по Y сортируется "вниз"), на всякий случай пример по 2-м координатам:

XY
1 2 3
4 5 6

YX
1 4
2 5
3 6

XY обр.
6 5 4
3 2 1

YX обр.
6 3
5 2
4 1

Префикс/Суффикс.
Значения исходного набора не заменяют значения целевого, а добавляются в начало/конец через Разделитель2.

Из таблицы/В таблицу.
Копирование из таблицы/в таблицу, соответственно. Можно одновременно, то есть из таблицы в таблицу :).
Предлагает сначала выбрать Таблицу (объект Table).
Затем, если выбрана Сортировка, то регион (несколько ячеек рамкой), если нет, то произвольную последовательность ячеек.
________________

По внедрению в ACAD.
TextDuplicate.dvb прописать в Автозагрузке (чтобы каждый раз не загружать)
Сервис -> Приложения -> Автозагрузка (кнопка "Приложения") -> Добавить
Вызывается из командной строки: -vbarun TextDuplicate
Макрос для кнопки: ^C^C-vbarun TextDuplicate.
Или Alt+F8 -> TextDuplicate -> Выполнить

Добавлено 06.03.07
Добавил RunTextDuplicate.lsp. Позволяет пользоваться TextDuplicate'ом, как обычной акадовской командой. Загрузить его вместе с TextDuplicate.dvb (или TextDuplicate2004.dvb), запуск из командной строки: TextDuplicate, макрос ^C^CTextDuplicate
=================

Вроде все. Штука, на мой взгляд, очень полезная. Сам пользуюсь каждый день (рабочий :)). Прописал везде - на кнопку, в контекстное меню и на сочетание клавиш.

Если что не так, пишите.

P.S. В режиме Префикс/Суффикс исходные поля в атрибутах преобразуются в текст
Довольно мощный копировщик текста и не только1

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 1-10 из 13
Dr. Dron. , 07 января 2007 в 22:09
#1
Изменение от 07.01.2007
Теперь при копировании поля в другой чертеж копируется не поле, а только текст (спасибо Sleekka).
http://dwg.ru/forum/viewtopic.php?t=11150
Dr. Dron. , 09 января 2007 в 17:26
#2
Совсем забыл рассказать о маленьком секрете: двойной щелчок на пункте "Обычный" приводит форму в первоначальный вид, т.е сбрасываются все установленные флажки и переключатели (вон, как на картинке).
Dr. Dron. , 17 января 2007 в 21:51
#3
Добавил версию TextDuplicate2004.dvb для ACAD 2004 и ниже (без поддержки таблиц)
Dr. Dron. , 19 января 2007 в 14:39
#4
Подправил версию TextDuplicate2004, в ACAD 2004, как выяснилось, нет еще и полей. ;)
Dr. Dron. , 10 февраля 2007 в 18:13
#5
Маленько повыловил багов
WADDSON , 19 апреля 2007 в 11:54
#6
Ты молодец!
Sergiy , 11 февраля 2010 в 09:35
#7
Спасибо! Работает в 2010.
Gr_ , 10 октября 2012 в 10:49
#8
den001, а у Вас в планах не было конвертирование Ваших программ из VBA в VBA.NET? При работе с VBA у меня на AutoCAD 2012 64-бит сильно увеличивается время сохранения чертежей, а также время перехода из модели в листы и наоборот. На 32-битных версиях такого не наблюдалось.
odinokiyklaus , 29 августа 2014 в 18:38
#9
В 64-битных системах замените .ObjectId на .ObjectId32. а ObjectIdToObject на .ObjectIdToObject32
odinokiyklaus , 02 апреля 2019 в 14:00
#10
В 64-битных системах ВЕЗДЕ в проекте(Project) (.ObjectID*) вручную замените .ObjectID32 на .ObjectID, .ObjectId32 на .ObjectId, и .ObjectIdToObject32 на .ObjectIdToObject. После этого копировальщик начнёт корректно копировать тексты.
zip

0.09 МБ

СКАЧАТЬ