| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.03.2015, 17:42 | #1 | |
Как найти угол поворота блока, вставленного в ПСК, отличной от мировой
Москва
Регистрация: 06.10.2007
Сообщений: 132
|
||
Просмотров: 10629
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
По-моему, координаты точки вставки и угол поворота блока задаются в системе координат объекта.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
проверяй еще 210 поле (Extrusion direction)
About trans and OCS in 3D Point transformation from Block OCS to WCS
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
Вы можете объяснить как из этих данных получить угол поворота блока равный нулю? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
480725, файл со своим блоком предоставь - это будет проще всего.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
>>в более сложных случаях никакой логики не видно
А какаая нужна логика? Блок вставлен "трехмерно" - (210 -0.408248 -0.408248 .816497), само понятие угла поворота уже совсемо не то что вы от него ждете)) Логика примерно такая - из нормали (210) восстанавливаются оси системы координат блока (читаем Arbitrary Axis Algorithm в DXF Reference), затем эта система координат поворачивается вокруг нормали на угол заданный в (50) и имеем что имеем)). Хотите знать под каким углом блок вставлялся в какойто пск - пересчитывайте эти значения в ту пск |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
|
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Как по списку примитива INSERT понять, под каким углом он был вставлен в ПСК отличной от мировой (см. заголовок).
Ну уж геометрию Вы наверняка понимаете! Выкладывайте, не томите! Последний раз редактировалось 480725, 27.03.2015 в 13:04. |
|||
|
||||
Сами-то хоть понимаете чего хотите? В чертеже система координат WSC. Относительно какой USC Вы хотите поворот блока искать? DCS что ли?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
|
|||
|
||||
Покажите этот угол угловым размером на чертеже. А то, честно говоря, даже представить не могу, какой Вы ищете 2D угол поворота плоского блока, развернутого в 3D системе координат.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Он идет в плоскости прямоугольника вдоль длинной стороны. Так как угол равен нулю показать его угловым размером невозможно. В принципе, я случайно вспомнил, что когда-то читал про углы поворота таких блоков в документации по 10-му Автокаду. Еще ДОСовскому... Посмотрел. Надо перейти в ОСК этого блока и отрезок построенный под углом 0 даст направление угла поворота блока (каким бы он не был задан, это случайно, что у меня тоже был 0, просто ось X ОСК развернута параллельно развороту блока). Если преобразовать координаты отрезка в ПСК в которой вставляли блок - получим угол поворота при вставке. Т.е. проблема исчерпана, за исключением умозрительного теперь вопроса про код 50 и его непонятное значение... Во всяком случае данное решение очевиднее и проще, чем написано в Arbitrary Axis Algorithm, указанной уважаемым знатоком геометрии zamtmn, который сейчас, надеюсь, уже завершает перевод.
|
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
480725
>>В принципе, я случайно вспомнил, что когда-то читал Я вспомнил неслучайно и посоветовал вам где что можно почитать прямо сейчас >>Посмотрел. Надо перейти в ОСК этого блока и отрезок построенный под углом 0 даст направление угла поворота блока >>(каким бы он не был задан, это случайно, что у меня тоже был 0, просто ось X ОСК развернута параллельно развороту блока). >>Если преобразовать координаты отрезка в ПСК в которой вставляли блок - получим угол поворота при вставке. >>Т.е. проблема исчерпана, за исключением умозрительного теперь вопроса про код 50 и его непонятное значение... Имхо вы либо не понимаете что вам надо, либо не получается объяснить. а может и то и другое. >>Во всяком случае данное решение очевиднее и проще, чем написано в Arbitrary Axis Algorithm, указанной уважаемым >>знатоком геометрии zamtmn, который сейчас, надеюсь, уже завершает перевод Зря иронизируете - ветка называется Программирование - тут не принято чертить, гораздо уместней понимать как посчитать. Arbitrary Axis таки почитайте, иначе в 3Д случаях вас будут ожидать еще большие "открытия" |
|||
|
||||
У меня такое же сложилось впечатление.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
При чтении данных блока, вставленного в ПСК, отличной от мировой, код 50 в списке примитива этого блока дает значение не соответствующее углу поворота блока в ПСК. Это то что осталось от первоначального вопроса. А сам вопрос - как найти угол поворота блока решен без привлечения этого (50) кода. Не знаю, что тут непонятно.
----- добавлено через ~16 мин. ----- Я почитал. Выражение If (abs (Nx) < 1/64) and (abs (Ny)< 1/64) then... очень не понравилось... М.б. это полезный материал, но в данном случае он мне просто не потребовался, т.к. альтернатавный способ проще и, будучи предложен самим Autodesk, несомненно надежен. |
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
>>Выражение If (abs (Nx) < 1/64) and (abs (Ny)< 1/64) then... очень не понравилось...
Чем если не секрет? >>Посмотрел. Надо перейти в ОСК этого блока и отрезок построенный под углом 0 даст направление угла поворота блока >>(каким бы он не был задан, это случайно, что у меня тоже был 0 Я незнаю что вы делаете и на чем, но Надо перейти в ОСК этого блока какбы подразумевает то что я описал в #8 - т.е. получение базисных векторов системы координат блока из нормали и поворота. Жаль что "способ" с "дополнительными построениями" кажется вам более простым и надежным чем несколько математических действий |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
Я не говорил о дополнительных построениях. Я просто неудачно выразился имелся в виду не отрезок в смысле примитива Автокада а пару точек, для того чтобы перевычислить угол в ПСК, в которой создавался блок, т.к. она не совпадает с ОСК. Переход в ОСК произвольного объекта делает команда АВТОКАДА. Последний раз редактировалось 480725, 28.03.2015 в 20:55. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Угол поворота атрибута в составе блока | rzinnurov | AutoCAD | 15 | 18.10.2017 08:08 |
Проблема с базовой точкой блока и вхождением блока в DXF | nogaems | Программирование | 5 | 29.08.2013 15:46 |
Как найти имя предка анонимного блока. | Kirill_Ja | Программирование | 4 | 16.04.2013 17:33 |
lisp из autocad 2004 некорректно выполняется в autocad 2008 | sid_geo | LISP | 13 | 11.10.2012 11:20 |
VBA. 3D. Ориентация блоков (примитивов) в пространстве? Как определить угол поворота? | shumilovvv | Программирование | 2 | 15.05.2009 12:18 |