|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.11.2008, 12:10 | #1 | |
Команда _STRETCH
Воронеж
Регистрация: 01.04.2008
Сообщений: 40
|
||
Просмотров: 5659
|
|
||||
Регистрация: 01.04.2008
Воронеж
Сообщений: 40
|
а это и есть весь код:
(setq t1 (getpoint "\n Первый угол : ")) (setq t2 (getcorner t1 "\n Второй угол : ")) (command "_stretch" "_C" t1 t2 "_R") ;;; до исключения объектов (while (> (getvar "CMDACTIVE") 0)(command pause)) (setq sposob (getint "\n Введите что-нибудь")) Если не использовать оператор while, те без строки (while (> (getvar "CMDACTIVE") 0)(command pause)), то при отработке функции _stretch после выделения рамкой объектов происходит вызов запроса (setq sposob (getint "\n Введите что-нибудь")). После ввода какого либо числа на запрос, функция _stretch продолжает работу — те запрашивает объекты на исключение. так что опять появляется ошибка только другого рода. |
|||
|
||||
Регистрация: 01.04.2008
Воронеж
Сообщений: 40
|
Забыла уточнить, использую Bricscad, проверила данный код с "CMDECHO" = 1 в Autocad, все работает Подскажите пожалуйста как правильно передать данные в двух последних случаях(с точками), чтобы отображались запросы и не выводился запрос с getint.
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Ева, Откуда берутся точки pnt1 и pnt2? Кто и какие значения в них задает?
Повторяю вопрос отсюда: Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 01.04.2008
Воронеж
Сообщений: 40
|
нужно написать программу, которая бы растягивала объекты одним из 3х способов.
1. обычно через задание базовой точки и точки смещения (но обязательно используя опцию _R, тк вначале пользователь выделяет объекты а потом должен иметь возможность удалить неправильно выбранные) через командную строку. 2. выделяется область (с нужными объектами)и задается расстояние в командной строке на которое нужно растянуть объекты. И сразу же должно произойти растяжение. Те программно расчитываются через заданное расстояние и точки выбранной области базовая точка и точка смещения.Тут необходимо использовать команду в виде (command "_stretch" "_C" t1 t2 "_R" pnt1 pnt2) ;;; pnt1-базовая точка ;;; pnt2-точка смещения 3. также выбирается область и базовая точка высчитывается в программе как средняя между точками, определяющими область. Те тут используется команда в виде (command "_stretch" "_C" t1 t2 "_R" pnt) ;;; pnt -базовая точка |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
п.1
Код:
Код:
PS. Тестировал на Автокаде
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 01.04.2008
Воронеж
Сообщений: 40
|
При передаче в команду _stertch набора произойдет только перемещение оьбъектов, а не растяжение. Тк объекты входят целиком. Для того чтобы произошло растяжение необходимо выделить рамкой, передавая в команду 2 точки(t1,t2) -для выбора рамкой.
Из справки Autocad: Выбрать объекты секущей рамкой или секущим многоугольником и нажать ENTER . Отдельно выделенные объекты и объекты, которые полностью включены в секущую рамку, перемещаются, а не растягиваются. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Ева, Так произойдет или происходит?
Справка верна для "ручной" работы. Набор, соpданный ssget "запоминает" способ указания объектов, узнать который можно с помощью функции ssnamex Соответственно справка из Autolisp'a (выделено мной) Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 01.04.2008
Воронеж
Сообщений: 40
|
Profan, да, это работает. Но требуется использование команды типа:
(command "_stretch" "_C" t1 t2 "_R" pnt1 pnt2) ;;; pnt1-базовая точка ;;; pnt2-точка смещения (command "_stretch" "_C" t1 t2 "_R" pnt) ;;; pnt -базовая точка Где точки pnt1,pnt2,pnt -высчитываются определенным образом внутри программы через t1 и t2. Каким образом можно передать в команду _stretch c опцией _R базовую точку и точку смещения (pnt1,pnt2)? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
DwgRuLispLib: Команда. Загрузка lisp файлов из указанной папки | VVA | Библиотека функций | 7 | 15.02.2018 10:10 |
Преобразование полей в текст | YuraVel | AutoCAD | 17 | 14.04.2015 14:30 |
Команда, чтобы заимствовать свойства (обратная MATCHPROP)? | I.Van | AutoCAD | 2 | 05.08.2007 21:09 |
ACAD-2002. Глюк начальной загрузки ЛИСП? | ===AAA=== | LISP | 27 | 31.08.2005 07:58 |