Как перенести блоки на смещенную траекторию?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как перенести блоки на смещенную траекторию?

Как перенести блоки на смещенную траекторию?

Ответ
Поиск в этой теме
Непрочитано 04.07.2011, 12:30 #1
Как перенести блоки на смещенную траекторию?
angel-fear
 
инженер-электрик
 
Краснодар
Регистрация: 21.10.2010
Сообщений: 134

Вроде несложная задачка, но никак не могу придумать простого решения.
Дано: Куча блоков расставленных по чертежу (одинаковых блоков)
Далее, соединяю все блоки полилинией по базовым точкам (линия ломаная соответственно). Затем делаю смещение (оффсет) на нужное расстояние этой линии. Как теперь перенести блоки на новую линию, чтобы они попали в соответствующие точки?
Просмотров: 3526
 
Непрочитано 04.07.2011, 23:14
1 | #2
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Основная проблема была, это найти его.
Вложения
Тип файла: lsp ofb.lsp (1.1 Кб, 67 просмотров)
Victor вне форума  
 
Автор темы   Непрочитано 05.07.2011, 08:20
#3
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


От спасибо! Жаль что не работает с примитивами, ну да ладно.
angel-fear вне форума  
 
Непрочитано 05.07.2011, 10:23
1 | #4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,432


То есть "не работает"? А если так?
Вложения
Тип файла: lsp dwgru-move-blocks.lsp (5.1 Кб, 62 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.07.2011, 10:44
#5
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


И "так" тоже не работает. Я имею ввиду, если в вершинах полилинии, например, окружность, то не переносит. С блоками все замечательно.
А есть лисп, для автоматического расставления блоков в вершины полилинии, с выбором ориентации (поворота блока)?

И как дополнение, лисп, соединяющий базовые точки одноименных блоков полилинией по кратчайшему пути? )

Последний раз редактировалось angel-fear, 05.07.2011 в 10:51.
angel-fear вне форума  
 
Непрочитано 05.07.2011, 10:57
1 | #6
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от angel-fear Посмотреть сообщение
А есть лисп, для автоматического расставления блоков в вершины полилинии, с выбором ориентации (поворота блока)?
Такой подойдет тынц
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 05.07.2011, 11:01
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,432


angel-fear, изначально был вопрос про блоки, вот про них и делали. Так что виноватить некого.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.07.2011, 11:09
#8
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


Кулик Алексей aka kpblc, да я и не против ) Просто отметил, что с примитивами не работает.
Так а что, все-таки, по поводу соединения блоков? Есть такое?

TararykovDG, прикольная штука, только для меня в ней есть некоторые минусы:
во-первых, каждый блок надо вставлять вручную, а хотелось бы, чтобы блоки автоматически устанавливались во все вершины полилинии;
и во-вторых, насколько я понял, в процессе вставки никак не отслеживается привязка (или я что-то не правильно делал?), то есть вставить объекты четко в пересечение/середину/ и т.д. не получается. квадратик ведет себя как "ближайшая"

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

TararykovDG, добрался до параметров )) не сразу заметил, пардон. Вставка в вершины - то что надо!

Последний раз редактировалось angel-fear, 05.07.2011 в 11:25.
angel-fear вне форума  
 
Непрочитано 05.07.2011, 14:14
1 | #9
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от angel-fear Посмотреть сообщение
И как дополнение, лисп, соединяющий базовые точки одноименных блоков полилинией по кратчайшему пути? )
Что подразумевается под кратчайшем путем - минимальная длина получившейся полилинии?
angel-fear, попробуй, может так сгодиться, правда там упрощены исходные условия. Кроме указания одного из вхождений нужного блока, нужно будет еще указать с какого блока начинать обход. Очередной блок для прохождения полилинии выбирается как ближейший из оставшихся не пройденных блоков к текущему блоку (т. е. в результате полилиния может оказаться самопересекающейся)
Вложения
Тип файла: lsp Join-Block.LSP (3.5 Кб, 45 просмотров)
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 05.07.2011, 15:39
#10
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


Под кратчайшим, я подразумевал, что линия будет чертиться к ближайшему блоку, а не в хаотичном порядке.
Join-blocks неплохо, только соединяет ВСЕ одноименные блоки. То есть, если соединил группу блоков, то соединить вторую группу блоков с тем же именем уже не получится. Можно, как вариант, вначале выбирать не один блок-"образец", а группу соединяемых блоков (можно заодно и разноименных)?
angel-fear вне форума  
 
Непрочитано 05.07.2011, 15:51
1 | #11
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от angel-fear Посмотреть сообщение
Под кратчайшим, я подразумевал, что линия будет чертиться к ближайшему блоку, а не в хаотичном порядке.
В моем варианте так и происходит, от заданного начального блока ищется ближайший из всех, потом к нему ближайщий из оставшихся и т. д.

Цитата:
Сообщение от angel-fear Посмотреть сообщение
Join-blocks неплохо, только соединяет ВСЕ одноименные блоки. То есть, если соединил группу блоков, то соединить вторую группу блоков с тем же именем уже не получится. Можно, как вариант, вначале выбирать не один блок-"образец", а группу соединяемых блоков (можно заодно и разноименных)?
Конечно можно, так даже проще
Вложения
Тип файла: lsp Join-Block [ver. 1.1].LSP (3.1 Кб, 53 просмотров)
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 05.07.2011, 16:09
#12
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


TararykovDG, огромное человеческое спасибо! Работает как часы
angel-fear вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как перенести блоки на смещенную траекторию?

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические блоки при копировании перестают быть динамическими. *Voland* Динамические блоки 11 04.07.2012 10:51
Где сохранять блоки? n0str0m0 AutoCAD 2 23.06.2011 09:24
Карнизные блоки под перильные ограждения на мосту Anastasy Поиск литературы, чертежей, моделей и прочих материалов 0 31.08.2010 14:47
Разбиение черечежа откоса на геологические блоки в VBA Skyper Программирование 1 18.03.2010 08:54
шаблоны.. блоки.. программы.. kolobrod Программирование 9 29.01.2007 11:15