ORIART

  • Страница 1 из 1
  • 1
Модератор форума: anermak, univer, alorion, gogr  
Автоматизация, алгоритмы и autolisp
Дата: Пн, 20 Окт 2014, 13:04 | Сообщение #1
Это тема будет интересна тем, кто чертит паттерны и схемы.

Часто рисуя паттерны ( я целых 2 раза рисовал ) мы сталкиваемся с разным количеством рутины, которую можно было бы автоматизировать.

Эту задачу я буду решать с помощью автокада и встроенного в него языка программирования - AutoLisp.
Autolisp я использую уже больше 7 дней, поэтому все это делается очень медленно и не особо красиво. Но кое-что уже работает.

Если вам не нравится рисовать стрелки и биссектрисы, не любите долго строить всякие боксо-хексо-плетинги на сетке 80х80 и может быть знаете пару алгоритмов, которые не мешало бы доверить машине, то в этой теме вы все это можете обсудить.

Ну и про особенности работы а автокаде можете поспрашивать.
Дата: Пн, 20 Окт 2014, 13:04 | Сообщение #2
Немного теории. Вернее немного об очевидных вещах, о них тоже полезно говорить.

Допустим на листе или где-нибудь в середине паттерна сталкиваются 3 прямые складки:



Если они не лежат на одной прямой и углы между ними меньше 180 градусов, то они могут сложиться в плоскость. Можете на листе сразу проверить.

Чтобы получилась плоская модель помимо трех прямых складок должна быть еще одна складка обратная. И она может пойти в одном из трех направлений.



Сложить легко, а как узнать точно под каким углом красную складку чертить?

На самом деле геометрия следующая:



Если из вершины провести окружность, то "Долины" (красные отрезки) будут проходить через точки касания описанного многоугольника, а "Горы" (синие отрезки) будут проходить через его вершины. И соответственно каждая линия "горы" будет являться биссектрисой между двумя потенциальными линиями "долины".



Это условие для плоской модели должно соблюдаться для произвольного количества линий "Гор"



Если многоугольник не строится, значит "что-то пошло не так" и модель не сложится.

Как строить такие многоугольники легко и непринужденно в автокаде я напишу позже.
Прикрепленный файл: 6195501.png (3.0 Kb) · 9392913.png (5.0 Kb) · 1379371.png (6.4 Kb) · 3295370.png (6.1 Kb) · 2276679.png (9.2 Kb)
Дата: Пн, 20 Окт 2014, 14:38 | Сообщение #3
Цитата Chameleon ()
не любите долго строить всякие боксо-хексо-плетинги на сетке 80х80
Кстати, Inkscape сам строит любые сетки - и квадратные, и треугольные, и даже такие, которые ведомы только Андрею ;)
А вот может ли он их автоматически обводить, не помню.

Вообще тема про это уже была. Может, объединить?
http://oriart.ru/forum/6-84-2


Галерея на фликре
Дата: Вт, 21 Окт 2014, 02:16 | Сообщение #4
Объединять не нужно. Inkscape как любой графический редактор имеет возможность писать скрипты, но если судить по его базовым возможностям, это в разы сложнее. Я бы разделил все программы для рисования на векторные графичекие редакторы для дизайнеров (Corel, Inkscape, Illustrator...) и Cad-ы для инженеров (Autocаd, Компас, Nanocad, DraftSight и т п) Последние хороши в точных построениях и расчетах, первые - для того, чтобы сделать красиво.
Дата: Вт, 21 Окт 2014, 03:03 | Сообщение #5
Продолжаю.

Я не буду пояснять, как строить эти узлы из прошлого сообщения базовыми средствами автокада. Это можно, но неудобно: строим касательные в точках пересечения долин, потом обрезаем при пересечении гор, получаем многоугольник. В автокаде есть для этого все возможности, но если попробуйте это сделать хотя бы раз 10, вам надоест.

Прежде всего должен быть установлен Autocad. У меня установлен Autocad 2011 En. С другими версиями проблем возникать не должно, но проверять у меня нет возможности. Точно не подойдет любая версия Autocad LT - она более дешевая и урезаная, из нее вырезана возможность использовать сторонние скрипты, что делает Автокад бесполезным.

К сообщению прикреплен zip-архив. В нем есть 2 файла.
Открываете файл Demo.dwg
Затем перетаскиваете на окно автокада лисп-файл oriart.lsp . Это сделает возможным запускать написанные в этом файле скрипты.

Первая команда ND . Рисует вокруг окружности многоугольник в зависимости от наличия внутри него отрезков Valley или Mountain.

Далее на картинке (лучше сразу на нее смотрите) показано , как рисуется круг (команда C), затем рисуется три отрезка гор (команда MN ), они проходят через центр окружности, затем выделяется окружность и набирается команда ND.


Далее показано как строить, если внутри окружности оказались 2 линии гор и одна долина. Сначала с помощью команды MIL (или более долгой MIRROR) строятся две симметрии отрезка долины, затем командой BIS строится биссектриса (короче смотрите ниже на гифке).


Еще одна команда INVERT - меняет горы и долины местами. На гифке видно, что если горы и долины поменять местами, то узел совсем не получится. Но если окружность будет в слое ori-REVNODE (обратный узел), то команда ND будет воспринимать горы как долины, а долины как горы. Это нужно, если вершина узла на паттерне идет от нас.



Любую команду в автокаде можно повесить на кнопку или назначить ей алиас (более короткую команду). Если будет нужно, распишу подробнее.
Прикрепленный файл: oriart_v1.0.zip (39.1 Kb)
Дата: Вт, 21 Окт 2014, 09:38 | Сообщение #6
Прикольно!) А чего Тримэйкер не юзаешь? Он все это на автомате делает...


Делай, что должен и будь, что будет!!!!))
Дата: Вт, 21 Окт 2014, 20:21 | Сообщение #7
Во-первых алгоритмы тримейкера (если их все знать) можно и на базе любого када реализовать, будет также работать.

Во-вторых, я без понятия как его полезно использовать. Дерево и паттерн я сколько не строил, сложить из этого что-то вменяемое не смог. Да и не удобно точки все в ручном режиме вводить, потом закреплять, связи добавлять. Долго все очень. Тут без полноценного графического редактора никак.

А эти многоугольники они не только для дерева, они в принципе для проверки любого узла, хоть для створки, хоть для мозайки.
Дата: Ср, 22 Окт 2014, 00:36 | Сообщение #8
А зачем тогда код вообще приплетать, это же правила Кавасаки в чистом виде?
Да и к тому же... Ладно, фиг с ним, передумал! :) Не буду троллить, извини! 5
Хорошая тема - с удовольствием буду почитывать! ;)


Делай, что должен и будь, что будет!!!!))
Дата: Ср, 22 Окт 2014, 07:49 | Сообщение #9
Я не знаю правил, если честно. Просто столкнулся с проблемой построения, когда отошел от сетки, и эту проблему для себя решил. Эта тема для этого и создана - упрощение построений.
  • Страница 1 из 1
  • 1
Поиск:
Наверх

Новые сообщения

Популярные темы