Лишний элемент при построении.

Автор Тема: Лишний элемент при построении.  (Прочитано 14468 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Добрый день, господа!
Приложенный лисп копирует элементы, однако, чтоб закончить цикл, при  нажатии ENTER рождается дополнительный элемент!
Почему?
Руками ведь так не работает команда COPY...
при нажатии ENTER команда прсто заканчиваеся.
Заранее спасибо за помощь!


Код - Auto/Visual Lisp [Выбрать]
  1.                                           (defun Proba ( / )
  2.                                          
  3.                                           (progn
  4.                                              
  5.                                               (setq BL (car (entsel)))
  6.                                               (setq ptc (cdr (assoc 10 (entget BL))))
  7.                                                    
  8.                                               (setq ptcOld 1)
  9.                                               (setq Var 0)
  10.                                               (while (= Var 0)
  11.                                                 ( command-s "copy" BL "" PtC pause "")
  12.                                          
  13.                                                 (setq PtCOld (getvar "LastPoint"))
  14.                                                
  15.                                                 (if (equal ptC ptCold)
  16.                                                    
  17.                                                   (setq Var 1)
  18.                                                 )  
  19.                                                 (setq ptC ptCOld)
  20.                                               )
  21.                                        
  22.                                    )
  23.                                    
  24.                                 ) ;end def proba
  25.                                  
  26.                                 (proba)

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Лишний элемент при построении.
« Ответ #1 : 25-04-2023, 23:25:41 »
при  нажатии ENTER рождается дополнительный элемент!
Нажимай ESC.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Лишний элемент при построении.
« Ответ #2 : 26-04-2023, 14:02:35 »
Спасибо!
С ESC тоже есть проблемка. ЭТо будет след. вопрос!
Однако, руками ведь ENTER работает корректно.
Я много лет в автокде и давно привык заканчивть команду ентером.
Может есть ошибка в моем коде?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Лишний элемент при построении.
« Ответ #3 : 26-04-2023, 14:22:46 »
Однако, руками ведь ENTER работает корректно.
В этом случае используется другая версия команды _COPY
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Лишний элемент при построении.
« Ответ #4 : 26-04-2023, 14:53:43 »
т.е. ошибки нет, так это работает в лиспе?
странно!

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Лишний элемент при построении.
« Ответ #5 : 26-04-2023, 15:14:42 »
altver,
Можешь попробовать запуск InitCommandVersion с различными значениями перед запуском команды: http://docs.autodesk.com/ACD/2011/ENU/filesALR/WS1a9193826455f5ff1dbc298511635bea8755893.htm
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Лишний элемент при построении.
« Ответ #6 : 26-04-2023, 20:20:00 »
Александр, спасибо за помощь, однако ничего у меня не получается,
а можно ли это продемонтрировать на моем примере?
Еще раз спасибо!

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Лишний элемент при построении.
« Ответ #7 : 26-04-2023, 20:34:26 »
а можно ли это продемонтрировать на моем примере?
Нет. Мне вообще твой код не нравится. Функцию (command-s) можно использовать только если все параметры заранее определены и pause в нем использовать нельзя. В твоём случае правильнее использовать (command) или (vl-cmdf). И вообще зачем весь этот цикл, если есть _COPY _Mult
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Лишний элемент при построении.
« Ответ #8 : 27-04-2023, 10:41:36 »
но в соманде COPYM невозможно задать расстяние между элементами
или я здесь что то не понимаю...

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

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Re: Лишний элемент при построении.
« Ответ #9 : 28-04-2023, 23:42:54 »
Если известно и расстояние, и направление копирования, то на фига использовать командные методы?
Все, что сказано - личное мнение.

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

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

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Лишний элемент при построении.
« Ответ #10 : 30-04-2023, 14:59:46 »
На фига???
Не просто так ведь спросил из "нечегоделать"!
Я показал только часть программы...
Если есть ответ, то с удовольствим приму.
Спасибо!

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

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Re: Лишний элемент при построении.
« Ответ #11 : 30-04-2023, 18:25:29 »
vla-copy в руки и вперед - если известно направление и расстояние. Я ж не просто так указал эти условия.
Все, что сказано - личное мнение.

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

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

Отмечено как Решение altver 02-05-2023, 20:32:53

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Лишний элемент при построении.
« Ответ #12 : 30-04-2023, 21:51:47 »
altver,
В твоём коде возникает лишний элемент потому, что ты пытаешься организовать выход из цикла по проверке на равенство LASTPOINT и последней заданной точки. Скорее всего это сравнение не срабатывает сразу. Попробуй такой фокус. Перед запуском _COPY установи системную переменную LASTPOINT в '(-1e32 -1e32 -1e32) (можно и другое значение, но такое чтобы оно никогда не могло встретиться в реальной жизни):
Код - Auto/Visual Lisp [Выбрать]
  1. (setvar "LASTPOINT" '(-1e32 -1e32 -1e32))
а после выполнения _COPY проверяй измениться ли его значение:
Код - Auto/Visual Lisp [Выбрать]
  1. (equal (getvar "LASTPOINT") '(-1e32 -1e32 -1e32))
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Лишний элемент при построении.
« Ответ #13 : 02-05-2023, 20:33:44 »
ОТЛИЧНО!
СПАСИБО!

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Лишний элемент при построении.
« Ответ #14 : 03-05-2023, 13:31:03 »
altver,
Помогло?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение