VetCAD

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

    8 оценок

den001

размещено: 03 Января 2007
обновлено: 13 Октября 2011
Программа на VBA для автоматической нумерации (или автоматического изменения значений) текстовых строк, изменяющихся по некоторой закономерности, в т.ч. и не самой простой (напр: TE11-S, TE12-S, TE21-S, TE22-S, TE31-S, TE32-S). Также включает дополнительные возможности для работы с текстом (добавление префиксов/суффиксов, удаление крайних пробелов).
Работает с заранее созданными текстом, мтекстом и атрибутами блоков (если в блоке несколько атрибутов, то с первым). Новые объекты не создаются.
Есть сортировка прямая и обратная по одной и по 2-м координатам, возможность работы с таблицами (ACAD 2005 и выше).

Текст1 (верхняя строка) - текст, помещаемый перед номером (если не нужен, то пустой)
Текст2 (нижняя строка) - текст, помещаемый за номером (если не нужен, то пустой)
Введенные значения сохраняются в виде списка, чтобы снова не набирать.

Number - число, изменяющееся от заданного значения на Приращение после нумерации количества объектов, заданного Числом проходов.
Прим.: Number = 1, Приращение = 1, Число Проходов = 3
Number принимает значения: 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4...

Проход - число, циклически изменяющееся от 1 до Числа проходов с нумерацией каждого объекта.
Прим.: Число проходов = 3
Проход принимает значения: 1, 2, 3, 1, 2, 3, 1, 2, 3...

Delta - вспомогательная величина; число, добавляемое к Number'у или Проходу в зависимости от режима.

Строка - текстовое значение выбранного объекта

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

Самое простое - 1, 2, 3, 4... получается при Number = 1, Приращение = 1, Число проходов = 1, Delta = 0 в режиме Текст1 + Number + Текст2 (по умолчанию).
Чтобы получить пример, приведенный в начале описания, устанавливаем
Текст1 = "TE", Текст2 = "-S"
Number = 1, Приращение = 1, Число проходов = 2, Delta = 0
Режим - Текст1 + Number + Проход + Текст2

_________________
Пример: Number = 10, Приращение = 3, Число проходов = 2
Текст1 и Текст2 - пустые.
Выбрано 6 объектов (примитивов).
---
Delta = 0

Режим: Текст1 + Number + Текст2
Результат: 10, 10, 13, 13, 16, 16

Режим: Текст1 + Number + Проход + Текст2
Результат: 101, 102, 131, 132, 161, 162
---

То же, Delta = 1

Режим: Текст1 + Number + Текст2
Результат: 10, 11, 13, 14, 16, 17

Режим: Текст1 + Number + Проход + Текст2
Результат: 102, 103, 132, 133, 162, 163
______________

Настройка - для произвольной последовательности Текст1, Текст2, Number, Проход, и т.д., если шибко замороченая закономерность (! Проход здесь считается как Проход + Delta, а Delta, если выбрана, то просто как текст)
______________

Удалить крайние пробелы - " АБВ " -> "АБВ"
______________

Плюс/минус Number

Добавляет Number (может быть отрицательным) к числу, заключенному между Текст1 и Текст2 (если Текст1, Текст2 пустые, то просто к числу)
Пример:
Текст1 = "1-", Текст2 = "X", Number = 10
Выбраны текстовые объекты:
"1-101X", "1-215X"
Результат: "1-111X", "1-225X"
______________

Текст1 + строка + Текст2

Просто добавить к выбранной строке Текст1 и/или Текст2
Пример:
Текст1 = "1-", Текст2 = "X"
Выбраны: "101", "АБВ"
Результат: "1-101X", "1-АБВX"
______________

Сортировка.
Значения присваиваются объектам с учетом их расположения, в соответсвии с режимом сортировки (по Y сортируется "вниз"). Если Нет - то в последовательности выбора. Если поднят флажок "Inv" - то в обратном порядке. Допуск отклонения по одной координате для двухкоординатной сортировки - высота текста.

X
1 2 3

Y
1
2
3

XY
1 2 3
4 5 6

YX
1 4
2 5
3 6

XY+Inv
6 5 4
3 2 1

YX+Inv
6 3
5 2
4 1
______________

Префикс/Суффикс.
Полученная строка не заменяет значение выбранного объекта, а добавляется в начало/конец, соответственно.
______________

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

===============
Кнопка "Очистить текст"
Присваивает Текст1, Текст2 пустые значения

Кнопка "Сбросить все"
Приводит форму в исходный вид

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

-----------------
Добавлено 13.10.2011
Добавил Number x64 для 64-битных версий
Соответственно, загружать его вместо Number.dvb
-----------------
Довольно мощный автонумератор и не только.1

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 111-120 из 123
ander , 09 июня 2017 в 11:10
#111
В общем, есть зависимость нумерации от начальных размеров (габаритов) текстов, поэтому если уже была нумерация, то на правильный результат может повлиять, если кому важна точность по координатам (центра, например), которую можно обойти уменьшив размер шрифта, пронумеровав, и обратно вернув размер. Но это обход, если это можно подправить в коде, было бы не плохо.
kycok , 25 августа 2017 в 05:17
#112
Уже много лет пользуюсь нумератором. Отличная вещь. Пара замечаний:
- если при выборке помимо текста попадаются прочие примитивы, - нумерация может пройти некорректно;
- была бы полезна опция, позволяющая менять цвет у обработанных текстовых строк, например, когда надо вычесть или прибавить одно и тоже число из выборки. (Может кто разобрался куда именно надо строчку кода вставить?)
Виктор Ф , 26 марта 2019 в 11:50
#113
Dr. Dron., как я понимаю в AutoCAD 2018 не работает?
Роман_Олегович , 06 мая 2019 в 10:39
#114
Уважаемый Автор! Спасибо тебе душевное! Пользуюсь и не нарадусь! Очень много времени экономит. Спасибо! И ещё раз СПАСИБО!
Alexorno , 13 августа 2020 в 09:19
#115
Виктор Ф
Работает во всех AutoCAD'ах х64.
Coochi , 05 апреля 2021 в 13:57
#116
а видео нет ли по работе с ним или скринов? ничегошеньки не получается, где б в какое окошко что не вписывал
roomjke , 18 июня 2021 в 18:54
#117
А есть что-нибудь подобное для текста в Visio?
Elf8 , 12 января 2022 в 21:21
#118
У меня почему-то не работает прога. Автокад 19го года. Выдает ошибку 438 "object does not support this property or method". Подобная ошибка возникает при попытке номеровать текстовые обьекты и блоки с текстовыми атрибутами. Подскажите пожалуйста, что я делаю не так?
Barmaley Bubusikin , 13 января 2022 в 00:55
#119
Цитата:
Сообщение #118 от Elf8

Выдает ошибку 438 "object does not support this property or method".

Попробуй почитать комментарии в этой теме. Где-то в районе №90
m_sergg , 21 июня 2023 в 15:57
#120
Цитата:
Сообщение #119 от Barmaley Bubusikin

Цитата:Сообщение #118 от Elf8
Выдает ошибку 438 "object does not support this property or method".
Попробуй почитать комментарии в этой теме. Где-то в районе №90

Поделитесь пожалуйста исправленным файлом
zip

0.1 МБ

СКАЧАТЬ