|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
20.07.2006, 12:46 | #1 | |
Почему некорректно работает vla-intersectwith?
Moderator
LISP, C# (ACAD 200[9,12,13,14])
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,848
|
||
Просмотров: 10436
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Acad 2004 Rus Новый файл
(100.0 -14.3396 0.0 541.118 476.716 0.0) Интересно девки поляшут: В приложенном файле этот же код выдает (100.0 -14.3396 0.0 540.581 476.119 0.0) Почему десятые не совпадают :?: [ATTACH]1153387872.dwg[/ATTACH] |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Во-во, состояние странное (хотя и выдает по 2 точки...)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Пересечение-то они дают, хорошая идея. Только почему там еще и пересечение блоков участвует, я не очень догнал, если честно. Придется учитывать дополнительно. Все равно thnx.
=== Добавлено. VVA, я тебе уже говорил, что ты гений?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я попросту ввел проверку на имя объекта. А за объяснения отдельный thanx
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Если надо, то с блоками можно поступить так же
Код:
; Notes: ; - Because of a (reported) bug in A2k4/A2k5/A2k6, the used explode method ; will fail on NUS blocks. No limitations in A2k, A2ki and A2k2 Может кто знает, что за NUS blocks? Последний раз редактировалось VVA, 03.11.2010 в 09:20. Причина: ф-ция lib:group-by-num |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Non-Uniformly Scaled
Масштабированные с разными коэффициентами по разным осям
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Vla-IntersectWith как-то странно работает там, где вопросов не должно возникать. Ведь если линия пересекает блок "насквозь", Vla-IntersectWith должен вернуть 2 точки пересечения с границами этого блока!
Тем не менее, у меня этот метод выдаёт то 2 точки, то 4 точки (дважды одни и те же точки), то вообще 0! В качестве подопытных объектов использовались 3 варианта блоков: в виде квадрата (отрезками) с окружностью внутри; квадрат (отрезками) с парой полилиний внутри; окружность (в виде блока). Код:
Последний раз редактировалось Tonic, 01.11.2010 в 16:20. |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Обнаруживаются странные вещи. При запуске программы Евгения Елпанова:
Код:
Код:
У кого-нибудь есть соображения по поводу работы этого метода, да и вообще способа нахождения пересечения линии с блоком? |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Приложи тогда уже и файлик с полилинией и блоком, в который входит лишь circle
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
По моему опыту - IntersectWith корректно работает только с элементарными объектами, находящимися в одном пространстве. В пространстве модели, в пространстве листа, в пространстве блока.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Tonic, lib:GetBlockInters c поста #9 пробовал? там IntersectWith применяется к примитивам блока, а не к самому блоку.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Там используется функция lib:group-by-num, которой нет в коде.
Ну так и в коде Евгения этот метод применяется к объектам, полученным с помощью vla-explode - и всё равно некорректно работает! Цитата:
Цитата:
Цитата:
Есть какие-либо другие алгоритмы замены этого метода? |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Добавил
Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
VVA, с Вашим кодом действительно правильно работает. Ну, кроме вылета на блоках со штриховкой - там надо написать
Код:
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Хитрый блок тебе в помощь
__________________
Как использовать код на Лиспе читаем здесь |
|||