Определить размер штриховки (паттерна)

Автор Тема: Определить размер штриховки (паттерна)  (Прочитано 5256 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Всем привет. Все мы знаем, что штриховки состоят из паттернов - повторяющихся квадратов с одинаковым содержимым.
Паттерн состоит из линий. Паттерн описывается в файле с расширением .pat. Каждая линия паттерна описывается в одной строчке по схеме:
Цитировать
angle, x-origin, y-origin, shift, offset, dash, space
где:
angle - угол поворота линии
x, y origin - координаты начала линии
shift - смещение вдоль линии (каждая следующая повторяющаяся линия смещается относительно предыдущей (или начала паттерна???) на это значение вдоль самой линии)
offset - расстояние между повторяющимися линиями
dash, space - не обязательно - для создания пунктира: черточка, пробел

Паттерны бывают как достаточно простыми:
Цитировать
*ANGLE, Уголки
0, 0, 0, 0, 6.985, 5.08, -1.905
90, 0, 0, 0, 6.985, 5.08, -1.905

Так и достаточно сложными (объемными точнее):
Цитировать
*AR-CONC, Бетон
50, 0, 0, 104.896, -149.807, 19.05, -209.55
355, 0, 0, -51.76101082,187.25814969, 15.24, -167.64058417
100.4514447,15.182007,-1.3282535,145.5569059,-176.270089,16.1900088,-178.0902446
46.1842, 0, 50.8, 157.343, -224.71, 28.575, -314.325
96.63555761,22.5899,47.2965,218.33577212,-264.40480444,24.28502314,-267.13560816
351.18415117,0,50.8,196.67912063,280.88740361,22.85996707,-251.45973192
21, 25.4, 38.1, 104.89565868, -149.80652586, 19.05, -209.55
326, 25.4, 38.1, -51.7604, 187.258, 15.24, -167.64
71.451445,38.0345326,29.5779001,145.5567546,-176.2700748,16.1900088,-178.0899376
37.5, 0, 0, 53.9242, 65.2018, 0,        -165.608, 0, -170.18, 0, -168.275
7.5, 0, 0, 79.3242, 90.6018, 0, -97.028, 0, -161.798, 0, -64.135
-32.5, -56.642, 0, 117.434, 68.0212, 0, -63.5, 0, -198.12, 0, -262.89
-42.5, -82.042, 0, 92.0344, 118.821, 0, -82.55, 0, -131.572, 0, -186.69

Мой вопрос в следующем - как, имея только вот эти цифры, определить размер паттерна?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Мой вопрос в следующем - как, имея только вот эти цифры, определить размер паттерна?
А что ты понимаешь под размером паттерна?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Мой вопрос в следующем - как, имея только вот эти цифры, определить размер паттерна?
А что ты понимаешь под размером паттерна?
Как я написал в вопросе - я считаю, что паттерн - это квадратный сегмент. Штриховка состоит из постоянного повторения этих сегментов. Я думаю, что изначально в автодеске в это понятие заложено именно тоже самое, что и скажет нам википедия.
Однако, перерыв все справки (как в автокаде, так и в ревите) я не натыкался на то, чтобы автодеск давал определение того, что такое паттерн в их понимании.
В любом случае - чтобы из себя не представлял паттерн, у него обязательно есть допустимо максимальные значения. Не могу же я создать паттерн с узором в несколько километров. Значит вот из этих всех цифр как-то можно определить размер паттерна.
Ревит определяет размер "на лету" - там есть импорт прям из pat файла с возможностью указать масштаб импорта. И этот масштаб всегда разный в зависимости от выбранного паттерна

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Как я написал в вопросе - я считаю, что паттерн - это квадратный сегмент.
Насколько я помню он не квадрат, а прямоугольник.
Значит вот из этих всех цифр как-то можно определить размер паттерна.
Ну так построй его по тем правилам, которые сам описал и получишь его размеры.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Ну так построй его по тем правилам, которые сам описал и получишь его размеры.
И я бы пошел с удовольствием изучать вопрос по этому пути, но первая банальная штриховка с прямыми линиями под 45 градусов сразу ставит палки в колеса - по ней не понятно как определить где кончается одна повторяющаяся часть и начинается другая

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Да и вопрос в том, чтобы определить размер не строя ничего, а анализируя числа

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Ну так построй его по тем правилам, которые сам описал и получишь его размеры.
И я бы пошел с удовольствием изучать вопрос по этому пути, но первая банальная штриховка с прямыми линиями под 45 градусов сразу ставит палки в колеса - по ней не понятно как определить где кончается одна повторяющаяся часть и начинается другая
Приведи её описание.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Да и вопрос в том, чтобы определить размер не строя ничего, а анализируя числа
Я имел в виду фигурально "строить".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Приведи её описание.
Например вот
Цитировать
*SOLID, Заливка
45, 0,0, 0,.125
или вот
Цитировать
*ANSI31,ANSI металл, кирпич, каменная кладка
45, 0, 0, 0, 3.175

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Цитировать

    *SOLID, Заливка
    45, 0,0, 0,.125
Странный у тебя SOLID

Цитировать

    *ANSI31,ANSI металл, кирпич, каменная кладка
    45, 0, 0, 0, 3.175
Ну тут как бы всё очевидно. Квадрат с диагональю 3.175
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Странный у тебя SOLID
Это не у меня, это из файла acadiso.pat =))
Ну тут как бы всё очевидно. Квадрат с диагональю 3.175
Значит при других углах нужно будет считать катеты?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Значит при других углах нужно будет считать катеты?
Считать все линии, которые в этом патерне.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Считать все линии, которые в этом патерне.
Вот в этом и есть мой вопрос - что именно считать?
Должен ли как-то учитываться shift? Должны ли учитываться dash и space?
Я должен получить какое-то значение по каждой линии (строке), а потом среди них выбрать наибольшее, что и будет искомым значением?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Должен ли как-то учитываться shift? Должны ли учитываться dash и space?
Да.
Я должен получить какое-то значение по каждой линии (строке), а потом среди них выбрать наибольшее, что и будет искомым значением?
Да. Только с учетом направления. Если угол 0 - то это размер по горизонтали. Если 90 - по вертикали. А остальные углы умножаешь на синус угла для размера по Y и на косинус угла для размера по X. Вроде ничего не напутал.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение