|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
extruded normal Z=1.00000
AutoCAD/AutoLISP
Seattle/USA
Регистрация: 27.08.2003
Сообщений: 1,133
|
||
Просмотров: 7131
|
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Код:
|
|||
![]() |
|
||||
Архитектор Регистрация: 25.08.2003
Москва
Сообщений: 307
|
Когда-то была похожая проблема с файлом, откуда-то экспортированным (кажется, из MicroStation). Половина дуг и отрезков имела направление выдавливания положительное (по Z), другая половина - отрицательное, и они от этого не объединялись в полилинии. Сейчас пытался поискать обсуждение - не нашел, но решали примерно так: зеркалили эту половину объектов командой mirror3d относительно плоскости XY (с удалением исходных), а для выбора объектов кто-то написал несколько строчек лиспа (выбирались только объекты с отрицательным направлением выдавливания). Или это не тот случай?
|
|||
![]() |
|
||||
Архитектор Регистрация: 25.08.2003
Москва
Сообщений: 307
|
Так это и есть направление выдавливания примитива, заданное координатами XYZ (в данном случае это вектор от точки 0,0,0 к точке 0,0,1). Если X=0, Y=0, то Z не может быть 0. И вообще-то для любой дуги, нарисованной в плоскости XY мировой системы координат, значения этого вектора будут в точности как на картинке. А объединяться в полилинию "не захотят" примитивы, у которых координаты этого вектора не одинаковы.
Можно просмотреть все примитивы, которые надо объединить в полилинию. Если эти значения (последние три строчки на картинке) у всех у них одинаковы, то объединяться они все же должны, и дело, возможно, в чем-то другом (например, в одной плоскости не лежат). Если я правильно понял (не силен я в VL ;-)), то Alaspher как раз об этом и говорил, и приведенный код должен унифицировать нормали у выбранных примитивов. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Попробуй так: превратить дуги в полилинии, примерно так Код:
Код:
|
|||
![]() |
|
||||
Уважаемый Startrek!
Поясните подробнее, в чём была проблема с этой кривой. Я применил к ней match propeties + align (вне плоскости XY был центр окружности)+match propeties и вроде всё стало на место. А почему у лэйаута такое странное название? [ATTACH]1119984104.dwg[/ATTACH] |
||||
![]() |
|
||||
AutoCAD/AutoLISP Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133
|
>>Alaspher
ЕХ МОГЛИ Б S TOBOY ОПРОКИНУТЬ ПАРОЧКУ СТАКАШКОВ КОНЬЯЧКА, НА БОЛЬШЕЕ Я ТЕПЕРЬ УЖ НЕ УДЕРЖУ - ОТВЫК ЗА 26 ЛЕТ, МЕСТНАЯ БРАТИЯ ПОСЛЕ ВТОРОГО СТАКАНА ПИВА НА РОГА ВСТАЮТ И ИХ ПО ДОМАМ НАДО РАЗВОЗИТЬ ПОТОМУ КАК ЕХАТь МОГУТ ТОЛЬКО ПО ПРЯМОЙ (ПРЯМОЙ МОЖНО С НАТЯЖКОЙ ГОВОРИТЬ) УВАЖАЕМЫЙ ОГУРЕЦ ПОЗХАЛУЙСТА КО МНЕ МОЖНО И НУЖНО НА "ТЫ" А ТО ЧУВСТВУЮ СЕБЯ СТАРИКОМ ![]() ОПИШИ ПОЖАЛУЙСТА КАК ТЫ СДЕЛАЛ ПОДРОБНЕЕ У МЕНЯ НИКАК НЕ ПОЛУЧАЛОСЬ, А ДУГА САМАЯ ПРОСТАЯ ТОЛьКО ВОТ КАК НА КАРТИНКЕ (ПОСЛЕДНЯЯ СТРОЧКА) NORMAL Z = 1.00000 |
|||
![]() |
|
||||
Уважаемый Startrek!
Не обращайте внимания на мою привычку про "Вы" - я так даже с маленькими детьми разговариваю, за этим ничего не кроется, честное слово! С дугой же я поступил следующим образом: прежде всего присвоил ей свойства другого слоя, сделал отображение origin UCS (это просто для удобства, чтобы не писать @ перед вводом координат). Далее нарисовал два отрезка, соединяющих концы дуги с центром окружности. Уже на этом этапе все примитивы благополучно объеденились в полилинию (3D), причём оказалось, что вне плоскости XY лежал именно центр окружности. Далее командой align по трём точкам я зафиксировал вершины полилинии, соответствующие концам дуги, а вершину, соответствующую центру окружности, переместил (приподнял, изменяя только координату Z) и с параметром изменения размеров фигуры, поскольку практически мы получаем проекцию заданой дуги на плоскость XY. Проверить качество результата легко, наблюдая за привязкой intersection дуги с любыми вспомогательными линиями. Далее explode, стираю лишнее и возвращаю propeties первоначального слоя. Наверно на все операции необходимы, но я просто описал, как делал. P.S. Насчёт возраста - так всё в разделе "фотоальбом"... Никуда не денешся, я и сам такой. |
||||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Startek
А по моему "глюк" присутствует, но всё исправляется применением _pedit с опцией multipe и всё прекрасно превращается в полилинию: Код:
Всё никак не можем созвонится ![]() |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Ну незнаю, незнаю. У меня после вышеописанной манипуляции получается обычная Polyline и всё прекрасно объединяется с другими полилиниями. Прошу убедится. Может это надо сделать в предложенной UCS? Тогда другое дело.
Пиво кстати Aldaris называется. Сейчас оно уже не то, пастеризованное. Хотя есть отдельные любители. [ATTACH]1119987913.dwg[/ATTACH] |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
В приложеном файле нормаль дуги выглядит так:
210 -0.0000000003689525 220 -0.0000000001484358 230 1.0 И непаралельна она ПСК не потому что Z=1, а потому что X и Y <> 0, а в свойствах иpза округления этого невидно. В лиспе я не силен, но иправив X и Y на 0 руками у меня всё получилось. |
|||
![]() |
|
||||
Уважаемый Fantomas!
Что-то странное с этой кривой. Раскрыл я Ваш файл, действительно всё прекрасно объединяется в полилинию. НО! Координата z центра дуги отличается от нуля... Обратите внимание: x-line не даёт пересечения с указаной дугой. Будем разбираться. Может быть дело в пределах точности отображения в автокаде? [ATTACH]1119989912.dwg[/ATTACH] |
||||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>zamtmn
Да при попытке преобразования в полилинию AutoCAD именно это и говорит: Код:
Код:
|
|||
![]() |