Нумерация вершин полилинии
Нумерация вершин полилинии с использованием динамического блока, входящего в пакет устанавливаемых файлов.
Приложение расставляет динамический блок в вершины полилинии и
изменяет значения его атрибута, в соответствии с номером вершины полилинии.
Скачать приложение
Тип приложения: | FREE |
Версия приложения: | 1.0 |
Дата выпуска: | 05.2018 |
Размер файла: | 360Kb |
Совместимость | |
---|---|
Операционная система: | Windows 32/ 64 |
Autodesk Autocad: | 2013 — 2017 |
ОПИСАНИЕ ПРИЛОЖЕНИЯ
Порядок действий:
- Скачайте и установите приложение.
- После установки приложения:
- на рабочий стол будет скопирована папка «AppsforCad Нумерация вершин», внутри которой располагается файл — «Блок Номер вершины.dwg», содержащий динамический блок, необходимый для выполнения нумерации вершин полилинии.
- появится дополнительная вкладка меню AppsforCad, содержащая вкладку Нумерация вершин. Вкладка Нумерация вершин объединяет две команды Выполнить нумерацию и Изменить нумерацию.
- Выберите полилинию.
- Выберите динамический блок (поставляемый совместно с приложением).
- Ввведите номер первой вершины полилинии или подтвердите нажатием Enter нумерацию с номера 1.
- Ввведите префикс — постоянное значение, которое будет предшествовать номерам вершин.
- Ввведите суффикс — постоянное значение, которое будет располагаться после номеров вершин.
- Выберите полилинию.
- Выберите динамические блоки, атрибуты которых необходимо изменить.
- Ввведите номер первой вершины полилинии или подтвердите нажатием Enter нумерацию с номера 1.
- Ввведите префикс — постоянное значение, которое будет предшествовать номерам вершин.
- Ввведите суффикс — постоянное значение, которое будет располагаться после номеров вершин.
Важно!
- Не меняйте в исходном динамическом блоке имя атрибута «Номер_вершины». В случае отсутствия атрибута с таким именем в командную строку будет выведено сообщение:
«Выбранный блок не содержит атрибут Номер_вершины».
AppsForCad | 2018 — 2021
Включение и отключение автоматической нумерации точек для базы данных съемки
При включенной автоматической нумерации новым точкам автоматически назначается следующий свободный номер. Если автоматическая нумерация точек отключена, следует давать новым точкам необходимые номера.
Включение и отключение автоматической нумерации точек
- Выберите в области инструментов вкладку «Съемка» , щелкните имя базы данных съемки правой кнопкой мыши и выберите Редактировать параметры базы данных съемки .
- В диалоговом окне «Параметры базы данных съемки» разверните группу свойств «Окно команд модуля «Геодезия» .
- Выполните одно из следующих действий.
- Чтобы разрешить автоматическую нумерацию точек, установите флажок опции «Автоматическая нумерация точек» .
- Чтобы отключить автоматическую нумерацию точек, удалите флажок опции «Автоматическая нумерация точек» .
- Нажмите «OK».
Включение и отключение нумерации точек с помощью языка команд модуля «Геодезия»
- В окне «Область инструментов» на вкладке «Съемка» щелкните правой кнопкой мыши на имени сети, для которой требуется включить или отключить автоматическую нумерацию точек. Выберите из контекстного меню «Окно команд модуля «Геодезия» .
- Чтобы включить автоматическую нумерацию точек, в строке «Команда» введите: AUTO ON [точка]
- Чтобы отключить автоматическую нумерацию точек, в строке «Команда» введите: AUTO OFF
Пример
В следующем примере представлена корректная строка ввода, в которой используется команда включения автоматической нумерации точек с указанием 1001 в качестве начального номера:
Если номер точки не указан, программа использует для назначения следующий свободный номер.
Автоматическая нумерация точек.
Кто-нибудь знает как проделать следующее: у меня есть полилиния, мне нужно, чтобы каждая характерная точка-точка излома автоматически пронумеровалась по-порядку, причем, нужно чтобы это была не просто цифра, как отдельный объект, а именно номер точки, котрый при экспорте присвается ей соответственно координатам этой точки! Какие варианты? Или еще чего для этого нужно? Вообще такая необходимость для такой вещи: я эту полилинию сохраняю в dwg, затем импортирую в MapSuite, чтобы слить эти точки в тахеометр Sokkia, точки-то сами скидываются, а номера приходится вручную присваивать, а сучетом, что каждый день нужно 100-200 разных точек, то по времени накладно получается! Подкиньте идейку хорошую!
Просмотров: 35613
Наше дело труба
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
__________________
*. И Случай, бог изобретатель. *
Регистрация: 13.04.2009
Сообщений: 14
skif58, спасибо огромное- действительно помогло.
Регистрация: 20.01.2011
Сообщений: 12
не подскажите ли как мне имея картинку в 600 точек пронумеровать каждую автоматически!
Регистрация: 11.10.2010
Сообщений: 980Заменить каждую точку на блок с атрибутом и потом перенумеровывать. Хоть свою программу писать, хоть через attin / attout.
__________________
(/= RegDate StartReadDate)
Регистрация: 20.01.2011
Сообщений: 12
эм.я слаб в автокаде.не могли бы по шагам разъяснить что к чему.как и где)
Регистрация: 24.03.2005
Сообщений: 320BadB_85, легких путей нет. Есть лисп (c:frto) замены выбранного на определенный примитив. Т.е вы все свои 600 точек меняете на текст (допустим на букву А). Затем командой TCOUNT из экспрессов автоматически нумеруете. Нумерация будет «от центра точек» , т.е. хаотичная.
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
BadB_85,
Выложи файл с 600 точками, и прям в нём на 2-3 точках покажи, что тебе конкретно нужно
__________________
Почему все вдруг становятся умными, когда уже не надо?
Регистрация: 20.01.2011
Сообщений: 12
ну вот пример.все точки обозваны «1». и как мне их пронумеровать?DWG 2007 Чертеж1.dwg (50.7 Кб, 7808 просмотров) Регистрация: 11.10.2010
Сообщений: 980
Уточню встречный вопрос: по какому закону их пронумеровывать?
__________________
(/= RegDate StartReadDate)
Регистрация: 20.01.2011
Сообщений: 12
ну близлежащие точки..не хаотично,а по порядку..если есть такая возможность
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
Регистрация: 20.01.2011
Сообщений: 12
нет.увы слишком тяжело для меня((
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
да там все просто — выбрал начальное значение, задал шаг приращения и щелкай подряд
Регистрация: 20.01.2011
Сообщений: 12
а где это выбирать то??
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989ну там же в описании все написано что, где и как
Регистрация: 20.01.2011
Сообщений: 12спасибо большое..сейчас буду пробовать))как получится-отпишусь!еще раз спасибо)
все получилось..спасибо.очень выручили)Последний раз редактировалось BadB_85, 20.01.2011 в 15:34 . Причина: время
Как сделать автоматическую нумерацию узловых точек полилиний?
Форумы CADUser → Программирование → LISP → Как сделать автоматическую нумерацию узловых точек полилиний?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 20
#1 Тема от vladant 8 июня 2007г. 10:45:46
Тема: Как сделать автоматическую нумерацию узловых точек полилиний?
Предупреждение! Название темы: «Помогите с простым LISPом ОЧЕНЬ НАДО. » — Нужно задавать вопрос, а не клянчить халяву.
/Администратор./
Проблема вот какая: часто приходится на чертежах пронумеровывать углы точек полилиний, нумерация зашкаливает за 200 или 300 точек, вот и приходится текст копировать 200 раз и редактировать 200 раз, нельзя ли создать небольшой Lisp который мне бы помог. Хотелось бы чтобы нумерация осуществлялась след. образом: на точке круг диаметром 0,8 и справо от цифрового значения текстовое поле с номером точки (целое число) — стиль любой высотой 2,номер начин.с 1, следующая точка +1, т.е. 2,3,4 и т.д. Буду очень признателен#2 Ответ от CB 8 июня 2007г. 11:42:28
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> [Re:] vladant
Если совсем по простому то можно так:(defun test (/ ent n lst_point) (setq sys_var (mapcar 'getvar '("osmode" "cmdecho"))) (setvar "osmode" 0) (setvar "cmdecho" 0) (setq ent (car (entsel "\nВыберите полилинию: "))) (setq n 1) (setq lst_point (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent) ) ;_ end of vl-remove-if-not ) ;_ end of mapcar ) ;_ end of setq (mapcar '(lambda (x) (vl-cmdf "_circle" x "_d" 0.8) (vl-cmdf "_text" (polar x (/ pi 4) 1.) 2. 0 (rtos n 2)) (setq n (1+ n)) ) ;_ end of lambda lst_point ) ;_ end of mapcar (mapcar 'setvar '("osmode" "cmdecho") sys_var) (princ) ) ;_ end of defun ;;;(test)
#3 Ответ от vladant 8 июня 2007г. 12:00:50
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> CB
спасиб тестим#4 Ответ от VVA 8 июня 2007г. 12:21:57
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> vladant
Если не пойдет, добавь в начало строчку(vl-load-com)
#5 Ответ от vladant 8 июня 2007г. 12:51:48
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> VVA
И без этого пошло. СПАСИБО ТЕБЕ ОГРОМНОЕ#6 Ответ от vladant 8 июня 2007г. 13:03:51
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> VVA
Упс небольшая просьба, а можно без 4-ех знаков после запятой, сейчас вид такой 1.0000, а нужно просто 1#7 Ответ от vladant 8 июня 2007г. 13:23:22
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> vladant
да уж это глюк похоже только у меня, попробывали на другой машине там все нормально непонимаЮ.#8 Ответ от Александр Ривилис 8 июня 2007г. 13:26:13
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> vladant
Замените в коде:(vl-cmdf "_text" (polar x (/ pi 4) 1.) 2. 0 (rtos n 2))
(vl-cmdf "_text" (polar x (/ pi 4) 1.) 2. 0 (rtos n 2 0))
#9 Ответ от VVA 8 июня 2007г. 13:28:44
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
> vladant
Два варианта:
1. Перед вызовом каманды LUPREC в нужное тебе кол-во символов. Или то же самео в команде _Units
2. В коде находишь строчку
(rtos n 2) и меняешь на
(rtos n 2 2) — 2 знака после запятой
(rtos n 2 3) — 3 — знака после запятой#10 Ответ от VVA 8 июня 2007г. 13:33:17
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
Да, там же номера, можно и так
(vl-cmdf "_text" (polar x (/ pi 4) 1.) 2. 0 (rtos n 2))
(vl-cmdf "_text" (polar x (/ pi 4) 1.) 2. 0 (itoa n))
#11 Ответ от vladant 8 июня 2007г. 13:59:01
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
с командой LUPREC, все получилось,ВСЕМ СПАСИБО
#12 Ответ от vladant 20 июня 2007г. 15:40:08
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
извините за наглость, столкнулся с проблемой: две полилинии не замкнутые первая нумеруются по узловым точкам нормально, а вот вторую хотелось бы продолжать нумеровать не с 1, а последняя точка первой полилинии+1.
#13 Ответ от VVA 20 июня 2007г. 16:39:05
Re: Как сделать автоматическую нумерацию узловых точек полилиний?
(defun C:Nvx (/ ent n lst_point sys_var) (setq sys_var (mapcar 'getvar '("osmode" "cmdecho"))) (setvar "osmode" 0) (setvar "cmdecho" 0) (if (not (numberp *NPoint*))(setq *NPoint* 1)) (princ "\nНачальный номер <")(princ *NPoint*)(princ ">: ") (if (null (setq n (getint)))(setq n *NPoint*)) (and (setq ent (car (entsel "\nВыберите полилинию: "))) (= (cdr(assoc 0 (entget ent))) "LWPOLYLINE") (setq lst_point (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent) ) ;_ end of vl-remove-if-not ) ;_ end of mapcar ) ;_ end of setq (mapcar '(lambda (x) (vl-cmdf "_circle" x "_d" 0.8) (vl-cmdf "_text" (polar x (/ pi 4) 1.) 2. 0 (itoa n)) (setq n (1+ n)) ) ;_ end of lambda lst_point ) ;_ end of mapcar (setq *NPoint* n) (mapcar 'setvar '("osmode" "cmdecho") sys_var) ) (princ) ) ;_ end of defun (princ "\nНаберите Nvx в командной строке")