|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
13.05.2006, 15:28 | #1 | |
Выбор примитивов в функции (command)
Программист широкого профиля.
Челябинск
Регистрация: 08.09.2005
Сообщений: 722
|
||
Просмотров: 6302
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А если так?
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Всем спасибо.
Первый вариант уже работает. Кстати все Стандартные акадовские команды почемуто сделаны так, что первое действие используется редко, постоянно надо либо опцию указывать или контекстное меню вызывать например _break вообще ни в какие ворота не лезет. я уже почти все команды общего редактирования отрихтовал. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
Со вчерашнего дня работаю так: Код:
А опцию она имеет "First point" |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Я так понимаю, что выбор объекта в команде "_Break" ("Разорвать") происходит аналогично выбору объекта с помощью функции AutoLisp'а (entcel), т.е. при выборе объекта одновременно определяется первая точка для разрыва. Поэтому здесь можно применять некоторые привязки.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Можно покритиковать?
Немного не совсем Зачем делается печать полученной точки? Попробуй такое, может, больше понравится: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
-->kpblc
Чем дальше в лес тем больше дров. Но есть еще одна проблема в вашей и моей программе Если в функции (сommad) на этапе выбора промахнуться, то функция выдает nil, а автокад продолжает дальше сам чегото делать. Причем я не могу понять чего он просит. Учитывая то что мне надо выполнить конкретное действие, а я случайно промахнулся, то дальнейшие действия предлагаемые автокадом мне не подходят. Вот здесь бы не помешал бы возврат в (сommand). А вот у акадовской _break выдается - объект не найден и педлагается выбирать дальше. Как навести порядок при выборе объектов. ?????????????????? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
> mmax : молю, меня - один!
Несколько вопросов (и вариантов сразу): - Надо обязательно выбирать 1 элемент, и, если не выбран, выходить? Если да, то Код:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
А иногда бывает, надо выбрать определенный примитив, например полилинию. А иногда бывает......................................................
Впринципе код в сообщении №6 уже ускорил мою работу с командой _break. А вообще я не могу понять зачем изначально Автодеск сделал одновременный выбор примитива в точке разрыва. Незнаю как другие, но если на чертеже, допустим, прямоугольная деталь перекрывает круглую, у которой радиус известен, то обычно я сначала рисую окружность потом прямоугольник, а потом окружность обрываю в точках пересечения окружности с прямоугольником по привязкам. В стандартном варианте при выборе примитива первая точка обрыва никак не совпадала с точкой пересечения, для чего приходилось оттягивать получившуюся дугу к точке пересечения. Поэтому надо точки выбирать в начале, а потом объект, или самое лучшее -- в стандартном варианте при выборе привязываться к точке пересечения, чтобы сразу и объект выбрать и правильную точку. |
|||