Нужен LISP-макрос "OFFSET" для моего частного случая - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен LISP-макрос "OFFSET" для моего частного случая

Нужен LISP-макрос "OFFSET" для моего частного случая

Ответ
Поиск в этой теме
Непрочитано 24.07.2013, 13:38
Нужен LISP-макрос "OFFSET" для моего частного случая
MrBrown
 
ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361

Здравствуйте!
Отрисовываю защитные зоны электрокабелей. Много зон. Прошу помочь в автоматизации.
Электрокабели в модели - это всё обычные ломаные полилинии на одном уровне (Z=0). Редко вместо какой-нибудь вершины - дуга.
Хотелось бы получить макрос с таким алгоритмом:

В ком.строке ввожу название макроса, например "ZZ" (защитная зона); Или придумайте своё название, я не против.
макрос приглашает указать расстояние смещения;
Я ввожу в ком.строке нужное расстояние, жму ENTER;
макрос приглашает выбрать объект или несколько (чтобы можно было выбирать отдельными тыками или рамкой);
Если объекты уже выбраны до включения макроса, то он автоматически начинает работать, а именно:
1. создает автоматически слой "ZZ", если он ещё не создан. Все вновь созданные линии должны быть в этом слое. Параметры слоя: толщина линий - по умолчанию, стиль - сплошная линия, цвет линий - красный.
2. проводит OFFSET от выбранной (исходной) полилинии в обе стороны, соединяя концы вновь созданных полилиний, чтобы получилась замкнутая площадь (как частный случай, от прямой полилинии получится прямоугольник, середины противоположных коротких сторон которого касаются концов исходной полилинии).
3. удаляет исходную центральную полилинию.
В приложенном файле, думаю, всё понятно.

Если перед работой макрос отключает настройки (привязки и прочее), в конце работы (по нажатию ESC) обратно включает.

Прошу мастеров ЛИСПа помочь.
Спасибо.
p.s. AutoCAD-2010, 2011 RUS
p.p.s макросов "OFFSET" на форуме много, но, я просмотрел, меня не устраивают.

Вложения
Тип файла: dwg
DWG 2007
Макрос ZZ.dwg (150.0 Кб, 3710 просмотров)


Последний раз редактировалось MrBrown, 24.07.2013 в 16:25.
Просмотров: 6105
 
Автор темы   Непрочитано 25.07.2013, 00:26
#21
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


Олег (jr.), Огромное спасибо. То, что надо.
MrBrown вне форума  
 
Непрочитано 25.07.2013, 00:33
#22
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Малявка Посмотреть сообщение
там только по слоям куча опций! А можно и мне такой же макросик, только простой, чтобы просто делал контур вокруг полилинии, на текущем слое? Не надо мне нового слоя.
@Малявка, попробуй:
Вложения
Тип файла: lsp Contour.lsp (1.6 Кб, 54 просмотров)
Олег (jr.) вне форума  
 
Непрочитано 25.07.2013, 00:54
#23
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Олег (jr.) - последний из могикан, а я просто не хочу превращения этого раздела в подобие киберфорума, поэтому и прозрачно намекнул, что тема создана мягко говоря не в том разделе
gomer вне форума  
 
Непрочитано 25.07.2013, 15:16
#24
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от MrBrown Посмотреть сообщение
Offtop: я знаю и уважаю ваше мастерство в программировании и не только: почитываю форум, вижу кто чего стóит. Пользуюсь не одним десятком макросов с DWG.RU, некоторые, безусловно, написаны и вами. Тем грустнее читать ваши отписки, граничащие с оффтопом.
"Прошу мастеров ЛИСПа помочь", написал я в вопросе. Это означает, что мне нравится этот сайт, я привык к форуму, где, уверен, мне всегда помогут, практически решат за меня мою проблему по причине полного незнания ЛИСПа. Вам недостаточно этой просьбы о помощи? Ну, научите меня, 54-летнего инженера, как правильно "расшаркиваться" перед вами, буду признателен.
Решил ответить на столь интересную претензию, вдобавок к тому, что сказал Дима_ в посте #9.
Поступками людей движет мотивация - это факт. Мотивация может быть разного рода, но без нее ничего не делается. Если я вижу, что человеку действительно что-то нужно и он стремится к этому, то появляется желание помочь. Если же вопрос напоминает очередную "хотелку", то такого желания не возникает. Я хочу хотя бы для себя понимать, почему я трачу свое личное время, которого с годами почему-то становится все меньше, которое мог бы провести с большей для себя пользой. И для меня абсолютно не важно, 19 лет человеку или 54, вежливо он просит или требует топая ногами.
Не знаю, что побуждает уважаемого мною Олега (jr.) не в первый раз уже потакать таким прихотям, наверное, желание "размять мускулы", может еще что-то. Это не мое дело.
Моя позиция на сегодняшний день такая - помощи от меня могут дождаться те участники, у которых что-то не получается сделать самостоятельно, если моих знаний достаточно, чтобы им помочь. Исключения могут быть, но крайне редко и спонтанно.
Если Вам нужно что-то написать "с нуля", самому не копаясь в коде - вам сюда: http://forum.dwg.ru/forumdisplay.php?f=33
Если Вы считаете, что Вам кто-то должен что-то написать просто сказав "мне надо", "прошу" и "пожалуйста", то я лично считаю это наглостью. Объясню почему.
Вам для чего программа? Чтобы быстрее и качественнее выполнять свою работу. Для чего Вы работаете? Чтобы заработать денег. То есть, вам нужна программа "на халяву", чтобы проще зарабатывать деньги. Какое-то потребительское отношение к программисту, не находите?
Я догадываюсь, что лично у Вас нет возможности оплачивать услуги программиста, но тогда надо суметь донести начальству о такой необходимости. Можете говорить, что я меркантильный, зазвездился и тд и тп, но в данный момент я этим зарабатываю на хлеб, причем реально на хлеб а не на очередную виллу на Карибах. И меня сильно печалит тот факт, что очень многие руководители не понимают, какую пользу может принести программист под автокад и его вертикальные решения. Действительно, зачем напрягаться? Если вдруг что-то понадобится, грубо говоря, можно просто прийти на ДВГ.РУ, сказать "пожалуйста" и вам приподнесут на блюдечке.
Еще один вопрос, риторический: Что Вы скажете, если Вас попросит абсолютно неизвестный Вам человек сделать проект по прокладке кабеля просто так?
Все сказанное - мое личное мнение и может не совпадать с другими участниками сообщества ДВГ.РУ.
Do$ вне форума  
 
Непрочитано 25.07.2013, 15:26
#25
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


Олег (jr.), Неа, не работает, как надо. Но мне очень даже подошел макрос, который вы сделали для MrBrown.
Который "мульти" (ZZM). Большое спасибо!
Малявка вне форума  
 
Непрочитано 25.07.2013, 17:27
#26
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Do$ Посмотреть сообщение
не в первый раз уже потакать таким прихотям
@Do$,
У меня работы по горло хоть я и дома сижу, просто вопрос задает не студент какой-нибудь,
а то же по производственной надобности, у меня был как раз примерный
образец, того что нужно, почему не посодействовать, я уверен потом он сам доработает
его так как нужно
Не расстраивайся по пустякам,
мое уважение
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 29.07.2013, 11:18
#27
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


А что надо изменить в приложенном макросе, чтобы он правильно работал не только в пространстве модели, но и в развернутом видовом экране?
Он в пространстве модели работает на ура, а в режиме развёрнутого видового экрана - практически тоже в модели - работает неправильно:
после OFFSET получаются две полилинии относительно исходной. Одна на слое ZZ, другая на слое исходной линии. И не соединяются между собой.
Спасибо.
Вложения
Тип файла: lsp offpoly_both_sides_multy.LSP (2.2 Кб, 37 просмотров)

Последний раз редактировалось MrBrown, 01.08.2013 в 02:00.
MrBrown вне форума  
 
Непрочитано 06.08.2013, 12:03
#28
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


Олег (jr.), мда, действительно, не работает в режиме развернутого видового экрана. Пожалуйста, попдравьте макрос, если возможно. В видовом экране им было бы еще удобнее пользоваться.

Последний раз редактировалось Малявка, 06.08.2013 в 13:33.
Малявка вне форума  
 
Непрочитано 06.08.2013, 16:31
#29
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Нда... сели и поехали... =о)

Цитата:
Сообщение от MrBrown Посмотреть сообщение
А что надо изменить в приложенном макросе, чтобы он правильно работал не только в пространстве модели, но и в развернутом видовом экране?
А Вы сами как думаете? Может что то пытались сделать, но у Вас не получилось? Может быть Вам быстрее ответили если бы Вы спрашивали "Где почитать про работу в видовом порте?" или Вы сами это спросили бы у Гугла?

На самом деле в подобных темах, в последнее время, решение выкладывает исключительно Олег, остальные как правило, сразу отправляют в "поиск исполнителя".

ЗЫ. Олег, а Вы не думали что выкладывая готовые решения, приводите к тому что такие как DO$ зарабатывают именно на хлеб?

ЗЗЫ.
Я сторона не заинтересованная, я вообще конструктор и программирование это хобби.

Последний раз редактировалось Boxa, 06.08.2013 в 17:59. Причина: Часть предложения стерлась
Boxa вне форума  
 
Непрочитано 06.08.2013, 18:53
1 | #30
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Boxa Посмотреть сообщение
ЗЫ. Олег, а Вы не думали что выкладывая готовые решения, приводите к тому что такие как DO$ зарабатывают именно на хлеб?
Да ну, бросьте.
Тут палка о двух концах. С одной стороны, конечно, есть вероятность того, что найдутся товарищи, которые будут рассчитывать только на DWG.RU. Но с другой стороны, это можно рассматривать как некоторую рекламу возможностей программирования. Своеобразная демо-версия . Хочешь большего - тогда другой разговор.
В реальности задачи стоят гораздо более серьезные и сложные, чем автоматизация одной-двух манипуляций. А это так, баловство...
Причем, часто, так же как и в этой ситуации, грамотное использование стандартных возможностей автокада может решить проблему настолько, что уже не понадобится никаких лиспов.
Поэтому, у меня нет желания тратить на это время, у Олега - есть. И в этом я лично ничего плохого не вижу, даже наоборот - тихо завидую и восхищаюсь
Просто, я думаю, надо понимать, что здесь не служба исполнения желаний, чтобы ставить задачи и требовать их выполнения, обвиняя в бездушности и неуважении к простым инженерам.
Do$ вне форума  
 
Непрочитано 06.08.2013, 20:27
#31
Кулик Алексей aka kpblc
Moderator

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


Offtop: Именно поэтому я и начал интересоваться программированием... Одного Олега на всех не напасесси
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен LISP-макрос "OFFSET" для моего частного случая



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, нужен макрос масштабирования размеров Малявка Программирование 17 31.07.2012 19:08