|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
1. Нет меток отмены
2. Обработчик ошибок переопределяется глобально, что не есть гуд: http://autolisp.ru/2009/09/20/howto_undo/ + http://autolisp.ru/2009/09/22/programming-style/ + http://autolisp.ru/2009/09/13/error-catch/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Нужно чтобы после нажатия _.undo (Ctrl+Z) в файле не оставалось лишнего мусора.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Вопрос не в том, каким методом будет реализовываться отмена, а в том, где и когда будут ставиться метки.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Raznouh, так уже как минимум намного изящней, чем вращение предварительно отрисованной и ориентированной горизонтально стрелки, как в первой версии.
А нельзя ли избавиться от запроса угла поворота блока при вставке? Для этого надо понять, всегда ли стрелка ставится в конце (или начале) полилинии, или она также может вставать и между сегментами, или на стыке двух полилиний? |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Через угол от начальной/конечной вершины полилинии до следующей/предпоследней. И не забыть про дуговые сегменты... И не забыть про вариант с ненулевой шириной сегмента
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
В ответ на запрос угла поворота команды _-insert можно указать точку, а можно ввести угол.
Нужно также, чтобы программно можно было определить, где начало, а где конец. Если одна из точек уже известна (точка вставки блока), и если это крайняя точка линии и она не совпадает с крайней точкой другой линии, то я вижу как минимум два варианта: Вариант 1: вычислить любую точку, принадлежащую данной линии, отличную от конечной точки и подставить ее на запрос угла. Тут я бы использовал функцию vlax-curve-getPointAtParam. Вариант 2: вычислить угол по двум точкам (начала и конца линии) функцией angle и тоже скормить инсерту. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Raznouh, что будет, если в ответ на запрос pol я введу Esc? А что будет, если выберу отрезок, а следующий созданный мною примитив был, например, окружностью?
Цитата:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Так на конце полилинии, на начале полилинии или еще на какой-то точке?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 13.09.2011
Баку, Азербайджан
Сообщений: 114
|
kpblc,ни там ,ни там пока не смог.Я хочу разобраться в этом:хотя бы на элементарном уровне с ошибками недочетами и косяками - лишь бы построилось то,что хочу увидеть,а о том,что останется в системе после этого,что будет если указать не то что надо и что будет если выйти из команды не завершив ее - для меня это на первом этапе не важно:как я могу правильно выйти из кода,если не могу в него нормально зайти?))
----- добавлено через ~19 ч. ----- kpblk,я вот сейчас читал про функции из твоего первого кода(пост №34). Я его немного пообрубал,и сделал чтоб мне более понятно было: Код:
|
|||
|
||||
Цитата:
1. применив функцию massoc из этого сообщения: http://forum.dwg.ru/showpost.php?p=64365&postcount=4 получим список из вершин. 2. применив стандартную функцию nth извлекаем любую вершину из этого списка. Это один из многих возможных вариантов, может быть, не самый оптимальный.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Еще один вариант получения координат вершин в мировой системе координат независимо ни от чего:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 13.09.2011
Баку, Азербайджан
Сообщений: 114
|
kpblc,Do$ Спасибо!Сейчас начну ковырять.
----- добавлено через ~17 ч. ----- Написал чуть по-другому теперь. Люди,подскажите:почему не получается _rotate? Код:
Представления функции angtof проверил все от 1 до 4х,ни на одном не вращает. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Помогите написать макрос для разрыва отрезков и полилиний в AutoCad | Green4x | Программирование | 2 | 01.12.2013 21:03 |
Не могу написать примитивную LISP программу | PolBlack | LISP | 2 | 07.11.2010 18:08 |
Word не могу над таблицей заголовк написать улетает вниз | dextron3 | Прочее. Программное обеспечение | 8 | 08.12.2008 11:03 |
Не могу написать мультитекст в 2008 автокаде. | Мельхиор | AutoCAD | 7 | 08.10.2008 08:08 |