3. расчленяю набор командой (vl-cmdf "_explode" (ssname ss i))Тут расчленяется не набор, а один выбранный примитив.
6. если окружности в новом наборе имеются, то продолжаю дальнейшие действия.Попробуй:
А если в новом наборе нет окружностей, то как мне отменить действия между метками?
(vl-cmdf "_undo" ... ? )
Что записать в команде? Какие параметры?
Тут расчленяется не набор, а один выбранный примитив.У меня там идет перебор в цикле, не стал расписывать досконально в сообщении.
(vl-cmdf "_u")Не работает, т.е. прокси-объекты (вернее их остатки) остаются расчлененными.
Можно еще попробоватьНет, не работает.
Код - Auto/Visual Lisp [Выбрать]
(vl-cmdf "_undo" "1")
Только я вот думаю, что в этом контексте не поможет.
1. делаю выборку по признаку ACAD_PROXY_ENTITYсделать копию выбранного в качестве образца ACAD_PROXY_ENTITY на промежуточный слой, расчленить его, потом анализ на содержание в нем круга и удаление (очистка) промежуточного слоя.
сделать копию выбранного в качестве образца ACAD_PROXY_ENTITY на промежуточный слой, расчленить его, потом анализ на содержание в нем круга и удаление (очистка) промежуточного слоя.Это правильно, но не всегда возможно - далеко не все прокси-примитивы можно копировать, а тем более менять им слой.
(vl-cmdf "_undo" "1")Попробовал такой вариант:
Попробовал такой вариант:По меньшей мере странно.
Код - Auto/Visual Lisp [Выбрать]
(vl-cmdf "_undo" "5")
Вроде работает.
По меньшей мере странно.
Мне кажется, что 5 в данном случае будет пониматься не как "Метка", а как количество отменяемых шагов.Возможно. Но, Вы посмотрите рисунок запроса действий на команду undo.
А параметр "Mark" не работает? Я имею ввиду, что-то вроде:Тогда уж так. Отмечаем точку, до которой нужно откатиться:Код - Auto/Visual Lisp [Выбрать]
(vl-cmdf "_undo" "M")
Если нужно откатиться, то вызываем:
Конечно работает! 1958, как мне кажется, просто перепутал количество отменяемых действий и порядковый номер опцииПогоняв Ваш код, признаю свою ошибку.
Тогда уж так. Отмечаем точку, до которой нужно откатиться:
Всё! Разобрался.Ну так поделись своим решением. У нас так принято...
Спасибо всем.
Ну так поделись своим решением. У нас так принято...Да какое там решение!
Да какое там решение!Вот уж точно! :) Тебе в этом цикле совсем не нужны вызовы (vla-startundomark adoc) и (vla-endundomark adoc) - они лишние.
Вот уж точно! Тебе в этом цикле совсем не нужны вызовы (vla-startundomark adoc) и (vla-endundomark adoc) - они лишние.Я просто в код Алексея добавил три строки, чтобы посмотреть что будет. А в своем основном лиспе (из-за которого весь сыр-бор) функции (vla-startundomark adoc) и (vla-endundomark adoc) я убрал. Еще раз спасибо!