Искусство штриховки и файлов форм: репродукция «Звездной ночи» на платформе nanoCAD
Штриховка – незаменимый инструмент визуализации. С давних времен художники осваивают различные ее техники; правильный выбор типа штриховки помогает передать объем, светотени, шероховатость и саму сущность объекта. Так и в процессе проектирования возникают ситуации, когда становится необходимым применение различных штриховок как инструмента графического обозначения материалов. На сегодня одним только ГОСТом предусмотрено порядка 70 типов штриховки под разные материалы, а некоторые предприятия используют еще и собственные штриховки. Может штриховка различаться и масштабом: более мелким деталям – более мелкий масштаб. Так что при выборе среды проектирования одним из главных вопросов является способность этой среды обеспечить пользователя удобными инструментами штриховки. Предоставляет ли nanoCAD такие инструменты? Давайте рассмотрим на примере.
Для большей наглядности постараемся, используя платформу nanoCAD 21, воспроизвести в собственном стиле картину «Звездная ночь» Винсента Ван Гога (рис. 1-2). Если приглядеться, на разных ее участках совокупность отдельных движений кистью представляет собой не что иное, как штриховку.
Рис. 1. Винсент Ван Гог. Звездная ночь
Рис. 2. «Звездная ночь» сквозь призму nanoCAD
Не слишком погружаясь в поиск правильных контуров, обведем картину сплайнами (команда СПЛАЙН) и окружностями (команда ОКРУЖНОСТЬ), а для начала скопируем ее в буфер обмена (Ctrl+C) и вставим в пространство модели (Ctrl+V). При этом не обязательно замыкать каждый контур, заштриховать можно и разомкнутые контуры.
Мы получили основу для будущих творений (рис. 3)!
Рис. 3. Первый этап: основа будущих творений
Рассмотрим диалоговое окно штриховки. Для этого либо переходим во вкладку Главная → группа Черчение → Штриховка, либо вводим в командной строке слово ШТРИХ. В появившемся диалоговом окне Штриховка есть две вкладки: Штриховка и Градиент. Здесь всё интуитивно понятно, отмечу лишь некоторые особенности. Раскроем дополнительное окно, кликнув в правом нижнем углу диалогового окна по стрелке «вправо» (рис. 4).
Рис. 4. Диалоговое окно штриховки
- Прежде всего хотелось бы отметить предустановленную библиотеку стандартных типов штриховок. Ею можно воспользоваться, выбрав из списка необходимый тип либо вызвав диалог Образцы штриховки (щелчок правой кнопкой мыши по кнопке справа от выбора образца или по структуре). Вся библиотека файлов форм (*.shx) и штриховок (*.pat) хранится в папке SHX, расположенной по пути C:\ProgramData\Nanosoft\nanoCAD x64 21.0\SHX. Туда же следует добавлять файлы с собственными штриховками и формами. После добавления новых файлов перезапустите nanoCAD.
- Для более «чистого» исполнения штриховки можно выбрать исходную точку (рис. 5) и сохранить ее значение, установив галочку перед строкой Исходную точку по умолчанию (системная переменная HPORIGIN).
Рис. 5. Изменение выбора исходной точки
- При указании области штриховки/заливки удобно пользоваться кнопкой Добавить: точки выбора – это верхняя кнопка в блоке Контуры. Для динамической подсветки потенциального контура установите галочку перед строкой Предварительный поиск контуров.
В то же время бывают случаи – допустим, если область находится в другой плоскости, – когда удобнее указать границы штриховки (кнопка Добавить: выбрать объекты).
- Штриховке можно назначить ассоциативность – при изменении области она будет подстраиваться под новые границы.
- Чтобы обеспечить штриховку незамкнутых областей, необходимо ввести допуск замкнутости (от 0 до 5000 в единицах чертежа). Зазоры, не превышающие этот допуск, будут игнорироваться, а контур – считаться замкнутым.
Работа с вкладкой Градиент тоже вряд ли вызовет затруднения. Приведу только примеры типов градиентной заливки (рис. 6).
Рис. 6. Виды градиентной заливки
Итак, раскрасим нашу картину с помощью градиентной заливки, а поверх будем наносить штрихи. «Луну» пока можно оставить без заливки – для нее мы подготовим пользовательскую форму. Формы – стандартизованные изображения, описанные в SHX-файле тем же способом, что и SHX-шрифты.
Работа на скорость: если все контуры прорисованы, можно воспользоваться командой БЫСТРШТРИХ/БЫСТРГРАД – в таком случае используются параметры предыдущих штриховки/градиента.
Полученный результат (в скобках указаны номера цветов) – рис. 7.
Рис. 7. Второй этап: заливка градиентом
Далее приступаем к одному из сложных моментов – созданию пользовательской штриховки.
Штриховки хранятся в файлах с расширением *.pat, которые можно просматривать с помощью любого текстового редактора. В одном файле могут располагаться несколько разных видов штриховки. При передаче файлов *.dwg, где использовалась уникальная штриховка, обязательно следует передавать и файлы штриховок; для успешной передачи воспользуйтесь командой eTransmit.
В нашем случае штриховкой предстоит покрыть практически всю картину. К счастью, большая часть необходимых штриховок уже имеется в nanoCAD, но напишем и собственную – ради лучшего представления о возможностях программы. В нашем случае это будет штриховка для крыш.
Рис. 8. Штриховка для крыш домов
Создать пользовательскую штриховку можно двумя способами.
- Графический способ создания штриховки
Модуль СПДС позволяет создавать штриховки с помощью команды SPHPATTERN. Чтобы создать штриховку именно таким способом, необходимо выполнить следующие действия:
- создать границы эскиза – квадрат с габаритными размерами, не превышающими 300х300 мм. Левый нижний угол квадрата поместить в начало координат (0,0,0);
- создать эскиз одного элемента штриховки. Эскиз должен быть выполнен только отрезками (команда LINE), криволинейные участки также аппроксимируются отрезками;
- поскольку распознавание периодичности происходит по цветам отрезков, каждому отрезку необходимо назначить собственный цвет;
- создать массив полученного эскиза в пределах заданной области. Для правильного распознавания конечный эскиз должен представлять собой квадратную матрицу, содержащую как минимум девять элементов. Если линия в штриховке предполагается непрерывной, в конечном эскизе она также должна быть непрерывным отрезком. На рис. 9 красные отрезки были размножены массивом (девять отрезков – три столбца, три ряда, между столбцами и рядами 100 мм), синие отрезки – копированием (пять отрезков) и обрезкой/удлинением до границ эскиза.
Рис. 9. Конечный вид рисунка для создания штриховки
Важно! Каждый отрезок должен быть не только параллелен одноименному отрезку, но и лежать с ним на одной прямой.
Далее нужно выбрать элементы штриховки и вызвать команду SPHPATTERN. После распознавания появится диалог сохранения и выбор папки для размещения (рис. 10).
- Создание штриховки через текстовый редактор
Написание штриховки начинается с указания ее уникального имени (оформляем его, начиная со знака «*»: *Уникальное имя штриховки), далее через запятую может идти краткое описание. Комментарии к записям вносятся через точку с запятой.
Следующие строки описывают расположение отрезков и выстраиваются по принципу «одна строка – один отрезок». Отрезок описывается числами: через запятую и в определенном порядке заносим числа, обозначения которых представлены в таблице 1.
Таблица 1. Описание отрезка
1 | 2 | 3 | 4 | 5 | 6 |
Угол наклона отрезка от оси X мировой системы координат | Координаты точки начала отрезка X, Y в мировой системе координат | Смещение отрезка по оси X в системе координат отрезка (локальной) | Смещение отрезка по оси Y в системе координат отрезка (локальной) | Длина отрезка | Расстояние пробела со знаком «-» |
Итак, начнем! Создадим штриховку «Roof» через текстовый редактор. Как уже сказано, написание штриховки начинается со знака «*», далее следуют ее название и комментарии.
На следующей строке пропишем один из отрезков. Пусть это будет красный отрезок, и, чтобы быстро и безошибочно определить всю геометрию, поместим его начало в точку (0,0) мировой системы координат (МСК). Каждый одинаковый участок для наглядности расположим в квадрате стороной мм (рис. 11).
Рис. 11. Определение геометрии штриховки
Первые два столбца из таблицы заполнить несложно: угол наклона от оси Ox – (до четырех знаков после запятой), координаты начала отрезка в МСК – 0,0. Локальная система координат (ЛСК) расположена в точке начала отрезка, ось Ox является продолжением отрезка, Oy – перпендикуляром к отрезку. Для определения смещения необходимо выбрать любой из ближайших одноименных отрезков. Допустим, мы выбираем отрезок справа от начального. Теперь мы находимся в ЛСК и определяем перемещения первого отрезка: , , далее длина отрезка – , и значение пробела до одноименного отрезка, лежащего на одной прямой с первым.
Для синего отрезка порядок определения будет таким же, с той только разницей, что синий отрезок – непрерывный, поэтому написание завершится после определения смещений. Конечный результат показан на рис. 12.
Нанесем нашу штриховку на крыши и подберем некоторые из имеющихся типов. Промежуточный результат на рис. 13.
Рис. 13. Третий этап: применение штриховки
Мы создали штриховку двумя разными способами, но ведь сама штриховка достаточно проста.
Далее будем наполнять картину формами. Для вызова диалогового окна Выбор формы необходимо перейти во вкладку Главная → группа Черчение → Форма (команда SHAPE, ФОРМА). В nanoCAD уже имеется библиотека файлов форм – это файлы GOST 2.303-68.shx и ltypeshp.shx. Но, как и раньше, при работе со штриховкой, добавим пользовательские формы (рис. 14).
Рис. 14. Пользовательские формы
Для начала, так же как и в случае со штриховкой, создадим в текстовом редакторе файл описаний форм в формате *.shp, а затем скомпилируем на его основе файл с расширением *.shx. Чтобы использовать формы в среде nanoCAD, их необходимо поместить в папку C:\ProgramData\Nanosoft\nanoCAD x64 21.0\SHX.
Описание формы содержит:
*Номер_формы, количество_байт, ИМЯ
байт1, байт2, …, байт , 0
где N ≤ 2000
Номер формы является уникальным в пределах одного shp-файла. В байтах содержится информация о длине и направлении вектора формы.
Каждый код длины и направления представляет собой строку из трех символов. Первым символом такого кода всегда является 0 (он указывает программе, что два следующих символа интерпретируются как шестнадцатеричные числа). Второй символ задает длину вектора в единицах чертежа. Длина может принимать значения от 1 (одна единица) до F (15 единиц). Третий символ задает направление вектора. Соответствие кода и направления приведено на рис. 15.
Рис. 15. Соответствие кода и направления вектора
Для создания дополнительных геометрических форм (окружностей и сегментов) мы будем использовать специальные коды. Опишу лишь наиболее применяемые, с остальными вы всегда сможете ознакомиться на просторах интернета (табл. 2).
Таблица 2. Специальные коды
Используя таблицу с подсказками, не составит большого труда написать собственные формы (рис. 18).
Рис. 18. Коддляформ «MOON», «SEGMENT», «STARS»
Все формы расположены в одном файле (Shapes3.shx). После добавления файла форм в папку SHX диалоговое окно выбора формы будет выглядеть так, как показано на рис. 19.
Рис. 19. Диалоговое окно Выбор формы
Как и в случае со штриховками, при передаче файлов *.dwg, где использовались уникальные формы, необходимо передавать и сами файлы форм; для успешной передачи воспользуйтесь командой eTransmit.
Работа с формами в целом подобна работе с блоками, но, помимо выбора угла поворота, можно выбрать и размер формы при вставке. Кроме того, есть возможность заливки формой (Главная → группа Черчение → Заливка формой; команда ЗАЛИВКАФОРМА), так же, как и штриховкой, только без опции Ассоциативность. Стандартной формой WAVE из файла GOST 2.303-68.shx зальем полосу над горизонтом.
После вставки формы MOON можем залить различным градиентом каждое кольцо на Луне (в центре более ярко, ближе к краям – темнее). Итоговый на сегодня вариант представлен на рис. 20.
Рис. 20. Четвертый этап: применение форм
Итак, сегодня мы уже знаем ответы на следующие вопросы:
- Как пользоваться штриховкой/градиентом в nanoCAD 21?
- Что такое файлы форм и как их использовать?
- Как залить область формой?
- Где хранятся файлы со штриховками и файлы форм, как их передавать?
- Как создать собственные штриховку и формы?
Возможно, у вас возник вопрос об участках, не залитых штриховкой и формами, ведь в конечной версии картины («Звездная ночь сквозь призму nanoCAD») не должно быть «пустых» областей. На данном этапе незалитым участкам можно подобрать другую штриховку или форму. А в данном случае это были линии, состоящие из формы «SEGMENT». Как создать такую линию, где ее хранить и как передавать рассмотрим в следующих публикациях.
- Комментарии