|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
помогите составить lisp на изменение координат большого количества текстовых объектов
ГИПик
Нерезиновая
Регистрация: 21.06.2012
Сообщений: 57
|
||
Просмотров: 6164
|
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
А м.б. текст точкой вставки надо сдвигать к пересечению сеток влево?
Нужен уточнить алгоритм задачи размещения текста. И чем задана сетка?
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |
|
||||
Конструктор по сути (машиностроитель) Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391
|
штатной возможности вроде нету. А для лиспа могу алгоритм подсказать. Принцип - в выделении по строкам и по столбцам поочередно (благо, совершенной анархии в расположении нет, судя по картинке). Всему тексту назначить выравнивание "снизу справа". Затем выделенному столбцу назначить координату по X одну и то же. Так все столбцы. Потом построчно также координаты Y. Сам в лиспах не силен, составить не смогу.
__________________
Век живи, век учись - ... |
|||
![]() |
|
||||
ГИПик Регистрация: 21.06.2012
Нерезиновая
Сообщений: 57
|
Цитата:
сетка задана полилиниями, это в общем не принципиально, она одинаковая,могу задать хоть точками, хоть отрезками,хоть чем Цитата:
а как назначить тексту всему выравнивание? имеете в виду лисп, а не в автокаде? для меня лисп это вообще где-то за пределами разума |
|||
![]() |
|
||||
Конструктор по сути (машиностроитель) Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391
|
Я имел ввиду, что такое размещение позволяет выделить рамкой отдельный столбец или строку без перемешиваний с соседними.
----- добавлено через ~3 мин. ----- Для меня тоже не сильно ближе. Но тут есть спецы, которые могут помочь в разных ситуациях. Останется только их творение внедрить в АКАД, а это несложно. ----- добавлено через ~3 мин. ----- Вот тут как раз лисп-то и не нужен. Надо просто весь текст (или рамкой) выделить и через панель свойств назначить выравнивание
__________________
Век живи, век учись - ... Последний раз редактировалось Bull, 05.11.2013 в 17:55. |
|||
![]() |
|
||||
ГИПик Регистрация: 21.06.2012
Нерезиновая
Сообщений: 57
|
Цитата:
но на безрыбье... спасибо в общем=) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Напоминаю, что вопрос автором размещен в разделе "AutoCAD", а не "Программирование"...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Конструктор по сути (машиностроитель) Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391
|
Цитата:
Советуете новую тему открыть автору?
__________________
Век живи, век учись - ... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Я советую, если не найдено другое решение, а) переименовать тему; б) "обратить внимание" с просьбой перемещения.
Вообще-то, я думаю, задача может быть решена и вручную: выделяется, например, столбец, вызывается окно свойств, устанавливается координата Х для точки вставки текстов (уточнение: выделенных текстов). Аналогично по строкам.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.09.2008
Сообщений: 386
|
А Вы бы как хотели, чтобы работала "автоматизация", опишите порядок Ваших действий и действий "Автоматизатора", например: "Мне нужно выделять кривой текст мышкой, а затем указывать точку куда ему нужно встать и текст прыгает на вновь указанное место, например на пересечение осей (как у Вас на картинке)"?
|
|||
![]() |
|
||||
Конструктор по сути (машиностроитель) Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391
|
Цитата:
__________________
Век живи, век учись - ... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
За автора ни переименовывать тему, ни инициировать ее перемещение не буду.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
ГИПик Регистрация: 21.06.2012
Нерезиновая
Сообщений: 57
|
Цитата:
спасибо, что-нить придумаю Цитата:
в принципе проблема уже решилась автокадовскими методами, спасибо Bull, однако, чую придут вскоре еще стотыщпицот чертежей и мне опять придется исправлять Х и Y, а столбцов там ойойойой 3 км через 20 метров сетка.. ![]() ----- добавлено через ~14 мин. ----- Цитата:
потом о чудо мне тут подсказали,и я создала ПСК с началом координат в сетке, потом выровняла весь текст, потом выделяла 1 строку-задавала одинаковый y1 для всего текста в этой строке, потом вторую строку - у2, и т.д. и так же со столбцами и координатой х, только вот строк всего, 3 а столбцов 150, а чертежей 5, а сколько их завтра придет-неизвестно, так что такой способ хоть и быстрее в разы, все равно как-то не очень ![]() |
|||
![]() |
|
||||
Регистрация: 21.02.2009
Сообщений: 825
|
если у нас есть равномерная сетка, и мы знаем максимальное смещение текста от узлов этой сетки, то можно наваять достаточно простую программу:
1. проверяем является ли остаток от деления координат текста на координаты ближайших узлов (если они жёстко заданы по какой-либо формуле) меньше максимального отдаления текста от узла 2. если 1=true то двигаем текст в узел. иначе выдаём лог, что такие-то тексты находятся вне поля сетки P.S. Будет работать только если максимальное смещение явно меньше 1/2 размера между узлами сетки... И ещё нет смещения некоторых текстов в одну сторону - тексты будут "слипаться"
__________________
Я-проектировщик бывший проектировщик! |
|||
![]() |
|
||||
ГИПик Регистрация: 21.06.2012
Нерезиновая
Сообщений: 57
|
ну, скажем так, между столбцами одинаково (20метров) а между строками благо их всего три можно сделать, так что считаем что да, равномерная, 20х20
Цитата:
нет, тексты не смещены так далеко, на чуть-чуть, до половины сетки им ума хватило их не двигать а там где подвинули сильно-можно все кучей перетащить поближе к узлам сетки, так что тоже не проблема ![]()
__________________
Нормально делай - нормально будет. И всегда бери аванс =) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
А зачем текст двигать? Можно назначить точке координату Z ближайшего текста
Программа для установки Z-координаты точки текста рядом с ней Различные вариации на эту тему
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
ГИПик Регистрация: 21.06.2012
Нерезиновая
Сообщений: 57
|
Цитата:
спасибо! попробую
__________________
Нормально делай - нормально будет. И всегда бери аванс =) |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 06.11.2013 в 23:46. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программное создание размерных стилей | Кулик Алексей aka kpblc | Программирование | 96 | 21.02.2025 13:53 |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
MS Word Нужен скрипт для копирования с одновременной заменой части текста | Солидворкер | Прочее. Программное обеспечение | 27 | 27.11.2012 15:52 |
LISP. Выравнивание текста по двум точкам. | Krieger | Готовые программы | 10 | 24.12.2011 16:02 |
Курсор в конец редактируемого текста? | zlobandr | AutoCAD | 15 | 13.05.2008 16:41 |