| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
29.01.2009, 09:19 | #1 | |
Аппроксимация 3d полилинии
Регистрация: 19.08.2008
Сообщений: 52
|
||
Просмотров: 9259
|
|
||||
WeMaN,
Попробуйте вот это: http://dwg.ru/dnl/607 Там кажется при добавлении вершины в 3Д полилинию координата Z апроксимируется по соседним вершинам, если я не ошибаюсь....
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Cfytrr, Да, так и происходит.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 19.08.2008
Сообщений: 52
|
сапроксимировались, я имею ввиду не точно такую же z как у соседа, а среднее значение между двумя известными z
А какая команда тут это делает http://dwg.ru/dnl/607 ? Я пользуюсь данным набором утилиток, но что-то похожее на аппроксимацию 3д полилинии не находил... Народ помогите разбраться с этим, очень надо! |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Пробуй
Код:
Цитата:
Если есть 3d полилиния, состоящая из 3 вершин, координаты Z которых 10,0,20. Длина сегмента от 1-й до 2-й вершины 1, от 2-й до 3-й вершины 2 После выполнения команды координата Z 2-й вершины будет 13,(3) [10+(20-10)/(1+2)]
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 11.02.2009 в 14:34. Причина: Добавил subst-i |
|||
|
||||
Регистрация: 19.08.2008
Сообщений: 52
|
для примера сделал 3д полилинию, с 3 вершинами, 10 0 20, выбираё её и програмка пишет, что:
; ошибка: no function definition: SUBST-I У вас нормально запускалось? И ещё, немного недопонял, как это пропорционально длине? Вот у меня скажем есть в 3д поли 10 точек: "10.21" "0" "0" "0" "15.05" "0" "0" "17.15" "0" "20.03", мне нужно чтобы он рассчитал высоты в тех местах, где стоит значение 0, учитывая значение до сотой хотя бы и учитывая длину(хотя не знаю можно ли так) и среднее значение, т.е. допустим чтобы получилось, что 3 вершины имеющие значение "0", между вершинами "10.21" и "15.05", сапроксимировали бы теоретически возможную высоту в данных точках, учитывая длину между вершинами, допустим, вместо нолей было бы "11.03", "12.44", "13.56" соответсвенно... Возможно ли такое? Если я некорректно выражаюсь уточняйте, задавайте вопросы Последний раз редактировалось WeMaN, 10.02.2009 в 14:49. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
WeMaN, Как всегда забыл ф-цию. Исправил #7
Цитата:
Для твоего примера посчитается невязка высот (15.05 - 10.21), Возьмется длина 3 сегментов и вычислится изменение Z на 1 длины. Потом сообветственно длинне каждого сегмента будет добавка к Z. Короче проще попробывать, чем словами объяснить.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 10.02.2009 в 19:40. |
|||
|
||||
Регистрация: 19.08.2008
Сообщений: 52
|
Заработало!!! Спасибо вам большое - это очень полезная для меня утилитка!!!
ОФФ: Можно ещё узнать совет не относящийся к теме? Вот допустим могу я в автокаде создать кнопку, прикрепить к ней картинку и назначить на эту кнопку данную функцию? Или соответсвенно, если у меня несколько лиспиков есть, могу ли я сделать из них отдельную менюшку? Если вы знаете где описываются данные действия, можете кинуть ссылку? |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
Для Кочеткова Андрея (см. http://dwg.ru/dnl/607).
Нет, то что я прошу сделать VVA отлична от данной задачи (апроксимация). Это у меня давно сделано по следующему алгоритму (программа 3D_SLANT): Если для части вершин 3-мерной полилинии (без учета начальной и конечной) были присвоены отметки (координаты Z) в текущей системе координат, а остальные вершины расположены на нулевом горизонте, пользователь может включить режим автоматического назначения отметок вершинам полилинии, расположенным в нулевой плоскости. Они назначаются по уклону, который рассчитывается по узлам с отметками не равными нулю. Для этого режима начальная и конечная вершина должны иметь отметку отличную от нуля. Примечание: Данный режим полезен при отрисовке средней линии верха штольни с учетом точной привязки к маркшейдерским точкам. Можно также использовать его при оконтуривании рудных тел (подготовка 3-х мерных каркасов).
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
KAI, Вышли мне на почту пример с твоими хитрыми UCS
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
KAI,
Цитата:
На входе есть полилиния из прямолинейных сегментов, на выходе надо получить полилинию из дуговых сегментов, а откуда необходимо брать кривизну? Если для дуговых сегментов брать два последовательных сегмента и среднюю точку брать как лежащую на дуге, то все просто, но не уверен, что это и необходимо. Если же нужно найти кривизну для каждого сегмента, чтоб в узлах небыло перелома - то это будет довольно сложная задача, хотя, довольно интересная... ps. после некоторого осмысления второго варианта пришел к выводу - результат будет не абсолютный, а с некоторой точностью. Хотя, точность можно задать и заранее.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Регистрация: 19.08.2008
Сообщений: 52
|
А вот мне интересно по какому принципу будет работать алгоритм, если я например захочу по точкам отрисовать линию? Возможно ли это впринципе сделать корректно? Ведь откуда программе знать, от какой до какой точки вести линию, я предполагаю, что просто можно уточнаять по поводу направления, например:
- выделяем необходимые точки - предлагаем нарисовать по ним линию - в качестве приоритета от какой точки к какой выбираем возрастание(или убывание) по оси Х (или Y), например точка с минимальным значением Х будет 1ой в полилинии, а с максимальным последней кто - нибудь создавал подобного рода lispы или кто сталкивался?
__________________
Практика доказывает - если смешать кило меда и кило дерьма, то получится два кило дерьма... |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кто знает, объясните как изменить толщину 3d полилинии? | vicont-s | AutoCAD | 12 | 11.04.2015 20:29 |
Конструирование в 3D | Serz | AutoCAD | 87 | 28.10.2014 10:40 |
Создание 3d полилинии макрасом | Mazai | Программирование | 18 | 23.09.2008 16:05 |
Как тело построенное 3D Face превратить в 3D Solid? | Bdod | AutoCAD | 37 | 03.08.2006 11:36 |