Сделать _offset объекту

Автор Тема: Сделать _offset объекту  (Прочитано 8131 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Сделать _offset объекту
« : 14-02-2018, 18:17:51 »
У меня есть список ObjectID или Handle не важно, что больше подойдет
Мне нужно пакетно выполнить на LISP
Как написать инструкции на LISP для передачи этой строки в консоль
Я помню ка-то это уже делал, но забыл.

Что-то вроде того точно не помню синтаксиса

(commands "_offset" Handle("7A9"))






Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Сделать _offset объекту
« Ответ #2 : 15-02-2018, 00:13:06 »
command-s, а не commands :) Но это детали.
Если известно, в какую сторону будет выполняться offset, то можно попытаться использовать vla-offset
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Сделать _offset объекту
« Ответ #3 : 15-02-2018, 09:47:09 »
Ах да про сторону сдвига совсем забыл.
В моей задачи сдвиги всегда будут во внутрь.
Точка внутри моих замкнутых контуров известна
Как передать точку или аргумент для стороны сдвига?


 

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Сделать _offset объекту
« Ответ #4 : 15-02-2018, 10:32:11 »
Насколько я понимаю, смещение выполняется по правилу: от начальной точки кривой откладываем касательную к сегменту, добавляем угол -90, умноженный на знак смещения - и таким образом получаем, куда попадет новый объект.
Т.е. если кривая отрисована слева направо, то смещение будет "вниз".
Код - Auto/Visual Lisp [Выбрать]
  1. (vla-Offset (vlax-ename->vla-object (car (entsel))) 1000.)
Правда, есть тут одна тонкость - AutoCAD не всегда может корректно построить offset из-за кривости контура.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сделать _offset объекту
« Ответ #5 : 15-02-2018, 14:31:49 »
Если это замкнутая кривая, то можно сделать offset в обе стороны (разные знаки), а затем оставить ту, у которой меньше площадь.
P.S.: Кстати, в документации указано, что отрицательное смещение приводит к получению меньшей кривой, т.е. внутрь: https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/AutoCAD-ActiveX/files/GUID-50EF273A-7552-4D6B-8523-BB956334D08A-htm.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Сделать _offset объекту
« Ответ #6 : 15-02-2018, 15:02:06 »
Я специально построил 2 полилинии - одну (зеленую) по часовой стрелке, вторую (красную) против. Желтые - результат выполнения моего кода из #4 (прямоугольниками отмечены начальные вершины)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сделать _offset объекту
« Ответ #7 : 15-02-2018, 15:03:42 »
Я специально построил 2 полилинии - одну (зеленую) по часовой стрелке, вторую (красную) против. Желтые - результат выполнения моего кода из #4:
А если контур замкнутый? Я не утверждаю, что в документации написана истина.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Сделать _offset объекту
« Ответ #8 : 15-02-2018, 15:37:04 »
В таком случае тоже играет роль направление отрисовки: при положительном коэффициенте и направлении "по часовой" offset срабатывает "внутрь".
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сделать _offset объекту
« Ответ #9 : 15-02-2018, 15:38:32 »
В таком случае тоже играет роль направление отрисовки: при положительном коэффициенте и направлении "по часовой" offset срабатывает "внутрь".
Значит в очередной раз в документации написана ерунда. Так и запишем. :(
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Сделать _offset объекту
« Ответ #10 : 15-02-2018, 15:44:22 »
Я проверял на ACAD2016x64Eng. Но вряд ли в других версиях поведение меняется.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!