|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
получу координаты вектора второй производной
От первой производной получу координаты вектора первой производной. Есть точка на кривой (в МСК), есть координаты вектора первой производной (в ОСК вопреки мануалу). Имею 2 точки - могу построить нормаль, но надо перевести координаты вектора первой производной (вектора направленности) из ОСК в МСК. КАК??? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Я не могу объяснить, что вектор не имеет координат. У него есть только направление, и все.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Ладно, как нормаль то построить тогда?
----- добавлено через ~6 мин. ----- Призадумался я что то... Физический смысл vlax-curve-getFirstDeriv я понимаю следующим образом. Есть точка на кривой, она является НАЧАЛОМ ВЕКТОРА, результирующая точка функции vlax-curve-getFirstDeriv (первой производной) - КОНЕЦ ВЕКТОРА. Конец вектора указывает его направление. Прошу поправить, если неправ. |
|||
|
||||
|
||||
|
||||
ятд, что поскольку первая производная это 3d вектор в мск, то его направление будет от нуля в мск до полученной 3d точки при выполнении функции получения первой производной.
|
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Функция vlax-curve-getFirstDeriv
Вычисляет первую производную (в МСК) к кривой в точке, заданной параметром. (vlax-curve-getFirstDeriv <кривая> <параметр>) Аргументы: <кривая> - примитив или VLA-объект, соответствующий кривой; <параметр> - значение параметра, определяющее положение точки на кривой. Возвращаемое значение - список из трех вещественных чисел (координаты вектора первой производной). Т.е первая точка вектора определяется аргументом <параметр> Вторая точка вектора - результат функции vlax-curve-getFirstDeriv Направление будет от первой точки (заданной аргументом параметр) ко второй (полученной из результата функции vlax-curve-getFirstDeriv) Вся беда в том, что координаты второй точки выдаются вопреки мануалу не в МСК, а в системе координат объекта. А функция trans их не преобразовывает, потому что, видимо, не воспринимает результат функции vlax-curve-getFirstDeriv как точку, а как "вектор" (чтобы дьявол его побери это не значило), хотя и принимает координаты конца вектора в качестве аргумента. КТО НИБУДЬ, ПОПРОБУЙТЕ ПОЖАЛУЙСТА, ИСПОЛНИТЬ КОД У СЕБЯ В АВТОКАДЕ Код:
|
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Т.е мануалы автокада врут.
vlax-curve-getFirstDeriv возвращает координаты вектора первой производной в СКО, а не МСК. И как тогда преобразовать координаты вектора первой производной из СКО в МСК Код ниже их не преобразовывает (trans (vlax-curve-getFirstDeriv (car (entsel)) 0.5) (car (entsel)) 0) С другой стороны координаты вектора первой производной не всегда лежат на кривой. Может в этом дело... Как тогда строить нормаль к кривой? Последний раз редактировалось megabeton, 11.10.2021 в 23:09. |
|||
|
||||
Да нет никакой координаты ско, первая производная это направление касательной в искомой точке. Вектору направления касательной не нужна связь с искомой точкой. Как я написал ранее, направление касательно определяется от нуля мск до результата первой производной. Перпендикуляр считать тупым прибавление к углу касательно половины пи. Skkk нарисовал произвольную полилиния, касательная в искомой точке ноль градусов, перпендикуляр плюс минус половина пи.
Вряд ли мануалы автокада могут так долго и продолжительно врать))) |
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
(300.0 0.0 0.0) тогда что это, если не внутренняя координата второй (первой после нулевой) точки полилинии?
Вот это ничего себе Цитата:
угол относительно каких точек берем? ----- добавлено через ~8 ч. ----- Все, понял. Неправ. Вечером уже тупил, с утра дошло. Слишком буквально воспринимал значение вектора, как направленного отрезка. Начальная точка вектора жестко ассоциировалась с точкой на кривой. Думаю слово АЗИМУТ быстрее вернуло бы меня в нужное русло)) Спасибо koMon skkkk kpblc Последний раз редактировалось megabeton, 11.10.2021 в 23:48. |
|||
|
||||
кстати очень похоже, что вектор второй производной будет не что иное как вектор нормали в искомой точке. и не надо делать лишних телодвижений)))
|
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Вторая производная по идее несет смысл степени изогнутости кривой в точке.
Для точки, лежащей посередине между двух точек прямой полилинии дает (0.0 0.0 0.0), т.е. изогнутость нулевая. Для аналогичных условий с полилинией-дугой выдает нечто (4.51197e-014 736.86 0.0), только не понятно, как правильно это интерпретировать в данном случае. Это координаты (и координаты ли) чего интересно? |
|||
|
||||
по идее да, но видимо не здесь. я попробовал для дуги и получил ровно вектор перпендикуляра)
|
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Вопрос по функции if
Есть код примерно такого содержания (if (выполни команду подобие со смещением 100) (что то сделай) (сделай что другое) ) Функция if реагирует на nil и T. А что, если в ответ на какое то действие программа не возвращает ни nil ни T. В конкретном примере при слишком большом смещении внутрь создается ситуация невозможности создания объекта, программа возвращает "; ошибка: Ошибка Automation. Отсутствует описание." То есть для IF это ни nil ни T. Как правильно надо обходить это препятствие, чтобы выполнились дальнейшие действия, чтобы "Ошибка Automation" воспринималась как nil. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
vl-catch-функции в руки Хотя я наверняка делал бы по-другому. Логику переписывал как минимум )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |