Фрезерные станки с ЧПУ — виды и особенности. Фрезерный станок с ЧПУ: неограниченные возможности обработки рельефных форм Технологические возможности фрезерного станка с чпу

Хотел бы поведать вам о своем проекте, чтобы бы узнать мнение о нем. Обоснованная критика и пожелания приветствуются с распростертыми объятиями. Если появится интерес, напишу серию статей о том, как проект создавался, поделюсь крупицей своего опыта. Итак, начнем.

Недавно пришла идея по созданию полностью открытого проекта универсальной 3-координатной платформы, которая может выполнять функционал и 3d-принтера, и фрезерного станка для обработки пластика и многого другого. Платформа построена по модульному типу. Это означает, что в ней полностью взаимозаменяемые привода перемещения кареток и инструмент. Назвали мы эту штуку «Платформа RRaptor». В дальнейшем приведу ряд изображений и фотографий проектных моделей и того, что уже получилось реализовать.


А вот что получилось в реальности. И да. Винт на координате Y не закреплен

Посмотрим, что означает модульность в контексте проекта. Например, мы хотим получить 3d-принтер: ставим соответствующие привода + печатающий блок (одновременно можно поставить 3 блока) - и готово. Можем печатать свои детальки. По разным причинам для печати на платформе используются передачи «шестерня-рейка» с шаговым двигателем.


На моделе показан установленный привод «шестерня-рейка» на координату Y

Или же нам понадобилось фрезеровать что-нибудь. Тогда установим привода типа «винт-гайка» с шаровым мотором NEMA23 и фрезу. Готово! Мы экспериментировали с различными винтами. Начиная от «колхоза», типа обычной шпильки и заканчивая высококачественными ШВП. Есть возможность установки на платформу различных типов винтов. Зависит от бюджета станка. Варианты фрезерного шпинделя тоже варьируется от стандартных бормашин до нашего варианта небольшого и компактного шпинделя для фрезеровки пластика (который еще только на стадии чертежей). На данный момент в наших тестах мы используем бормашину на алюминиевой стойке мощностью 650Вт.


Вот вам и фрезерный станок для пластика


Он еще и складывается

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

Следующая важная составляющая проекта - блок управления. Там расположена вся электронная начинка. Не вдаваясь в подробности, что там есть (как уже сказал, будет интерес - все распишу в отдельных статьях), отмечу основную его особенность. Этот блок управления может «рулить» сразу несколькими платформами одновременно. Это позволит создать небольшую инфраструктуру из устройств (точнее платформ), выполняющих различные функции, централизованно их контролируя (наверно громко сказано, но все же…). Блок тоже модульный. Его начинка варьируется. Можно добавлять различные интерфейсы коммуникации: wi-fi, Bluetooth, ethernet, и т. д. Что душе угодно.


Фото корпуса блока управления

Софт - это отдельная эпопея. Писали мы его (и пишем) с чистого листа. Абсолютно все, начиная от алгоритмов вращения шаговиком, заканчивая приложением на андройда-смартфоне - наша работа. Я не говорю, что мы придумали что-то инновационное и новое. Хотя ключевые отличия от аналогов (например, прошивки Marlin) есть. Я лишь хочу акцентировать внимание на то, что отнеслись мы к проекту и идее в целом очень серьезно. И, надеюсь, что сможем до конца реализовать. А именно - серийно выпускать такие платформы.


Это наш первый прототип. Сделали на его базе плоттер для самых первых тестов

Хотя до серийного производства пока еще надо дорасти и доработать как недостатки в механике, так и в программном обеспечении. Тем не менее небольшой опыт у нас уже есть.


Первая серия на 5 штук

Надеюсь (точнее уверен), ваши отзывы, мнения и замечания нам помогут. К сожалению, описать и показать многие детали проекта в одной статье просто нереально. Но надо с чего-то начинать.

Спасибо за внимание.

На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют «G -код ». В данном материале представлена общая информация по G-коду (G-code).

G-code это условное именование языка для программирования устройств с ЧПУ (CNC) (Числовое программное управление). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980-о года как RS274D стандарт. Комитет ИСО утвердил G-code, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР - как ГОСТ 20999-83. В советской технической литературе G-code обозначается, как код ИСО-7 бит.

Производители систем управления используют G-code в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.

Программа, написанная с использованием G-code, имеет жесткую структуру. Все команды управления объединяются в кадры - группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (ПС/LF) и имеет номер, за исключеним первого кадра программы. Первый кадр содержит только один символ» %». Завершается программа командой M02 или M30.

Основные (в стандарте называются подготовительными) команды языка начинаются с буквы G:

  • перемещение рабочих органов оборудования с заданой скоростью (линейное и круговое;
  • выполнение типовых последовательностей (таких, как обработка отверстий и резьб);
  • управление параметрами инструмента, системами координат, и рабочих плоскостей.

Сводная таблица кодов:

Таблица основных команд:

Код Описание Пример
G00 Ускоренное перемещение инструмента (холостой ход) G0 X0 Y0 Z100;
G01 Линейная интерполяция G01 X0 Y0 Z100 F200;
G02 Круговая интерполяция почасовой стрелки G02 X15 Y15 R5 F200;
G03 Круговая интерполяция против часовой стрелки G03 X15 Y15 R5 F200;
G04 Задержка на P миллисекунд G04 P500;
G10 Задать новые координаты для начала координат G10 X10 Y10 Z10;
G11 Отмена G10G11;
G15 Отмена G16G15 G90;
G16 Переключение в полярную систему координат G16 G91 X100 Y90;
G20 Режим работы в дюймовой системе G90 G20;
G21 Режим работы в метрической системе G90 G21;
G22 Активировать установленый предел перемещений (Станок невыйдет за их предел). G22 G01 X15 Y25;
G23 Отмена G22G23 G90 G54;
G28 Вернуться на референтную точку G28 G91 Z0 Y0;
G30 Поднятие по оси Z на точку смены инструмента G30 G91 Z0;
G40 Отмена компенсации размера инструмента G1 G40 X0 Y0 F200;
G41 Компенсировать радиус инструмента слева G41 X15 Y15 D1 F100;
G42 Компенсировать радиус инструмента справа G42 X15 Y15 D1 F100;
G43 Компенсировать высоту инструмента положительно G43 X15 Y15 Z100 H1 S1000 M3;
G44 Компенсировать высоту инструмента отрицательно G44 X15 Y15 Z4 H1 S1000 M3;
G53 Переключиться на систему координат станка G53 G0 X0 Y0 Z0;
G54-G59 Переключиться на заданную оператором систему координат G54 G0 X0 Y0 Z100;
G68 Поворот координат на нужный угол G68 X0 Y0 R45;
G69 Отмена G68G69;
G80 Отмена циклов сверления (G81-G84)G80 Z100;
G81 Цикл сверления G81 X0 Y0 Z-10 R3 F100;
G82 Цикл сверления сзадержкой G82 X0 Y0 Z-10 R3 P100 F100;
G83 Цикл сверления сотходом G83 X0 Y0 Z-10 R3 Q8 F100;
G84 Цикл нарезание резьбы
G90 Абсолютная система координат G90 G21;
G91 Относительная система координат G91 G1 X4 Y5 F100;
G94 F (подача) - в формате мм/мин. G94 G80 Z100;
G95 F (подача)- в формате мм/об. G95 G84 X0 Y0 Z-10 R3 F1.411;
G98 Отмена G99G98 G15 G90;
G99 После каждого цикла не отходить на «подходную точку» G99 G91 X10 K4;

Таблица технологических кодов:

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

  • Сменить инструмент
  • Включить/выключить шпиндель
  • Включить/выключить охлаждение
  • Вызвать/закончить подпрограмму

Вспомогательные (технологические) команды:

Код Описание Пример
M00 Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «технологический останов» G0 X0 Y0 Z100 M0;
M01 Приостановить работу станка до нажатия кнопки «старт», если включен режим подтверждения останова G0 X0 Y0 Z100 M1;
M02 Конец программы M02;
M03 Начать вращение шпинделя по часовой стрелке M3 S2000;
M04 Начать вращение шпинделя против часовой стрелки M4 S2000;
M05 Остановить вращение шпинделя M5;
M06 Сменить инструмент M6 T15;
M07 Включить дополнительное охлаждение M3 S2000 M7;
M08 Включить основное охлаждение M3 S2000 M8;
M09 Выключить охлаждение G0 X0 Y0 Z100 M5 M9;
M30 Конец информации M30;
M98 Вызов подпрограммы M98 P101;
M99 Конец подпрограммы, возврат к основной программе M99;

Параметры команд задаются буквами латинского алфавита:

Код константы Описание Пример
X Координата точки траектории по оси X G0 X0 Y0 Z100
Y Координата точки траектории по оси Y G0 X0 Y0 Z100
Z Координата точки траектории по оси Z G0 X0 Y0 Z100
F Скорость рабочей подачи G1 G91 X10 F100
S Скорость вращения шпинделя S3000 M3
R Радиус или параметр стандартного цикла G1 G91 X12.5 R12.5 или G81 R1 0 R2 -10 F50
D Параметр коррекции выбранного инструмента M06 T1 D1
P Величина задержки или число вызовов подпрограммы M04 P101 или G82 R3 Z-10 P1000 F50
I,J,K Параметры дуги при круговой интерполяции G03 X10 Y10 I0 J0 F10
L Вызов подпрограммы с данной меткой L12 P3
В настоящее время для программирования систем ЧПУ используется множество языков программирования, в основе которых лежит универсальный язык ИСО 7 бит. Однако каждый производитель вносит свои особенности, которые реализуются через подготовительные (G-коды) и вспомогательные (M-коды) функции.

Функции с адресом G – называются подготовительными , они определяют условия работы станка связанные с программированием геометрии перемещения инструмента. Подробное описание G-кодов можно найти в главе код ИСО 7 бит .

В данной главе подробно рассмотрим назначение вспомогательных функций.

Функции с адресом M – называются вспомогательными (от анг. Miscellaneous) и предназначены для управления различными режимами и устройствами станка.

Вспомогательные функции могут использоваться одиночно или совместно с другими адресами, например, кадр ниже производит установку инструмента с номером 1 в шпиндель.

N10 T1 M6, где

T1 – инструмент номер 1;
M6 – смена инструмента;

В данном случае под командой М6 на стойке ЧПУ скрывается целый набор команд, которые обеспечивают процесс замены инструмента:

Перемещение инструмента в позицию смены;
- выключение оборотов шпинделя;
- перемещение устанавливаемого инструмента в магазине;
- замена инструмента;

Использование М-кодов допускается в кадрах с перемещением инструмента, например в строке ниже охлаждение включится (M8) одновременно с началом движения фрезы.

N10 X100 Y150 Z5 F1000 M8

М-коды, включающие какое-либо устройство станка, имеют парный М код, который это устройство выключает. Например,

M8 – включить охлаждение, M9 – выключить охлаждение;
M3 – включить обороты шпинделя, M5 – выключить обороты;

Допускается использование нескольких М команд в одном кадре.

Соответственно чем больше устройств имеет станок, тем больше М команд будет задействовано в его управлении.

Условно все вспомогательные функции можно разделить на стандартные и специальные . Стандартные вспомогательные функции используются производителями ЧПУ для управления устройствами, имеющимися на каждом станке (шпиндель, охлаждение, смена инструмента и т.д.). Тогда как специальные программируют режимы на одном конкретном станке или группе станков данной модели (вкл/выкл измерительную головку, зажим/разжим поворотных осей).

На картинке выше представлен поворотный шпиндель многоосевого станка. Для увеличения жесткости при позиционной обработке станок оснащен зажимами поворотных осей, которые управляются М кодами: M10/M12 – включить зажимы для осей A и С. М11/М13 – выключить зажимы. На другом оборудовании производитель станка может данные команды настроить на управление другими устройствами.

Список стандартных М команд

M0 – останов программы;
M1 – останов по требованию;
M2 – конец программы;
M3 – включить обороты шпинделя по часовой стрелке;
M4 – включить обороты шпинделя против часовой стрелки;
M5 – останов шпинделя;
M6 – автоматическая смена инструмента;
M8 – включить охлаждение (как правило СОЖ);
M9 – выключить охлаждение;
M19 – ориентация шпинделя;
M30 – завершение программы (как правило со сбросом всех параметров);
M98 – вызов подпрограммы;
M99 – возврат из подпрограммы в основную;

Специальные вспомогательные функции производитель станка описывает в соответствующей технической документации.

Развитие технологий стало причиной того, что компьютеры и другие передовые технические средства все активнее используются в повседневной жизни людей, а также в промышленности. Например, на современных промышленных предприятиях все чаще можно встретить , который управляется не руками оператора, а при помощи специальных компьютерных программ и соответствующих электронных устройств.

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

Принцип работы фрезерных станков

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

  • древесина;
  • черные, а также цветные металлы;
  • керамика;
  • полимерные материалы;
  • природный и искусственный камень.

Заготовки закрепляются на рабочем столе, а их обработка выполняется за счет вращающейся фрезы, которая и режет материал.

Оснащенные ЧПУ, выпускаются в различном конструктивном исполнении.

Консольного типа:

  1. модели, обладающие широкой универсальностью;
  2. горизонтального типа;
  3. вертикального типа.

Бесконсольной конструкции:

  1. вертикальные;
  2. горизонтальные.

Самыми популярными и, соответственно, распространенными являются фрезерные станки с ЧПУ консольного типа. На консоль закрепляется обрабатываемая заготовка, и именно этот рабочий орган совершает движения по отношению к режущему инструменту. Сам шпиндель такого станка не движется, он жестко зафиксирован в одной позиции.

Бесконсольного типа осуществляется за счет того, что перемещаться в них может как рабочий стол, который движется в двух направлениях, так и шпиндель, способный изменять свою позицию в вертикальной плоскости, а также во всех остальных направлениях.

С ЧПУ автоматически выполняет операции, информация о которых предварительно записана на один из носителей. Программы, которые управляют его работой, могут быть нескольких типов.

  • Позиционные, предполагающие фиксацию координат конечных точек, по которым и выполняется обработка заготовки. Такое программы используются для управления станками сверлильной и расточной группы.
  • Контурные, управляющие траекторией обработки заготовки. Они используются для управления станками круглошлифовальной группы.
  • Комбинированные, которые объединяют в себе возможности программ контурного и позиционного типа. Такими программами управляются станки, относящиеся к многоцелевой категории.
  • Многоконтурные. С их помощью можно управлять всеми функциональными возможностями станка, они являются самыми сложным типом ПО. При помощи таких программ обеспечивается управление широкоформатным оборудованием.

Фрезерные станки, оснащенные ЧПУ, обладают целым рядом значимых преимуществ:

  • позволяют увеличить производительность обработки в 2–3 раза;
  • дают возможность изготавливать детали с высокой точностью;
  • минимизируют объем ручного труда, что позволяет уменьшить штат обслуживающего персонала;
  • сокращают время, необходимое для подготовки заготовок;
  • минимизируют время обработки деталей.

Разновидности оборудования

Станки фрезерной группы, оснащенные ЧПУ, в зависимости от того, какой материал на них обрабатывается, подразделяются на следующие категории:

  1. для работы по металлу;
  2. для обработки заготовок из древесины;
  3. фрезерно-гравировальной группы.
  1. обрабатывающие центры, отличающиеся высокой функциональностью;
  2. станки широкоуниверсального типа;
  3. токарно-фрезерной категории;
  4. сверлильно-фрезерной группы.

Фрезерные станки, управляемые при помощи специальных программ, можно использовать и для оснащения домашней мастерской, так как они отличаются простотой эксплуатации и дают возможность изготавливать детали из металла, выполненные с высокой точностью своих геометрических параметров.

На предприятиях, которые производят мебель, а также в строительных компаниях применяются фрезерные станки, оснащенные ЧПУ, с помощью которых выполняется обработка заготовок из древесины. На таких станках обрабатываются изделия из древесины, а также заготовки из полимеров, алюминиевых сплавов, фанеры и ДСП.

Станок с ЧПУ, на котором возможно выполнять операции гравировки, применяется для обработки изделий, изготовленных из металла, натурального и искусственного камня, бетона и ряда других материалов. С его помощью изготавливают декоративные каменные колонны, статуэтки, другие изделия, выполняющие исключительно декоративную функцию. Такие станки по металлу и ряду других материалов чаще всего используют для производства различных рекламных конструкций.

По принципу работы и своей производительности фрезерные станки, оснащенные ЧПУ, могут быть следующих категорий:

  • отличающиеся небольшими габаритами и невысокой производительностью - мини станки;
  • настольного типа;
  • вертикально-фрезерного типа;
  • широкоформатные.

Станки, которые используются для оснащения домашней мастерской, нельзя назвать профессиональными, их преимущественно используют для полезного хобби. Такие фрезерные станки, оснащенные ЧПУ, отличаются невысокой стоимостью, поэтому ими часто оснащаются мастерские различных учебных заведений: школы, технические училища, ВУЗы и др.

Оборудование настольного типа обладает рядом весомых преимуществ:

  1. невысокая стоимость;
  2. исключительная мобильность;
  3. простота эксплуатации и конструктивного исполнения.

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

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

Широкоформатные фрезерные станки, оснащенные ЧПУ, полностью соответствуют своему названию: в их конструкции имеется специальная рабочая головка, которая может поворачиваться в любом направлении. Благодаря своей универсальности такие станки чаще всего используются для оснащения цехов нестандартного оборудования и инструментальных участков.

Обзор станков

Прежде чем решить вопрос, какой фрезерный станок выбрать для оснащения домашней мастерской или производственного предприятия, важно ознакомится с характеристиками оборудования, которое предлагается на современном рынке. На сегодняшний день наиболее востребованным являются фрезерные станки, производимые в следующих странах:

  • Германия;
  • Италия;
  • Австрия;
  • Китай;
  • Северная Корея;
  • Малайзия;
  • Тайвань;
  • Чехия;
  • Турция.

Наиболее известными компаниями, которые производят и реализуют фрезерные станки с ЧПУ, являются:

  • GCC Jaguar;
  • Redwood;
  • RuStan;
  • Hyundai Wia;
  • Kami;
  • Zenitech.

Одними из самых быстрых станков, которые также отличаются широким разнообразием настроек и дополнительных функций, являются модели торговой марки GCC Jaguar.

Широким разнообразием ассортимента станков для обработки деталей из металла и других материалов отличается компания JCC. В каталоге данного производителя представлены станки с ЧПУ следующего назначения:

  1. универсального типа, предназначенное для выполнения гравировальных и фрезерных работ;
  2. для обработки изделий из древесины и металла;
  3. прошивные станки электроэрозийного типа;
  4. оборудование фрезерно-токарной группы.

Передовые программные продукты, с помощью которых управляются станки данной торговой марки, позволяют задействовать весь их потенциал.

Фрезерные станки, оснащенные ЧПУ, торговой марки RuStan - это, преимущественно, оборудование широкоуниверсального типа, с помощью которого можно выполнять широкий перечень технологических операций. Отличает модели данной торговой марки и то, что при их приобретении можно воспользоваться разнообразными скидочными программами, а также возможностью гарантийного и постгарантийного обслуживания.

По-настоящему уникальными являются фрезерные станки с ЧПУ, выпускаемые под торговой маркой Redwood. Они способны выполнять обработку деталей в формате 2d и 3d. Реализация технологии 3d предполагает, что по заданной программе из заготовки получают объемную деталь, полностью соответствующую заданным геометрическим параметрам.

Главным принципом работы специалистов, занимающихся выпуском фрезерного оборудования торговой марки Kami, является производство высококачественной продукции. При помощи станков данной торговой марки можно обрабатывать не только металл, но и детали из камня, древесины, пластика и даже стекла.

Компания Hyundai Wia специализируется на выпуске станков с ЧПУ, на которых производится продукция для аэрокосмической и автомобильной промышленности. Программы, которые используются для их управления, предполагают минимальное вмешательство со стороны человека и значительно упрощают использование подобного оборудования.

В каталоге известного производителя Zenitech преобладает профессиональное фрезерное оборудование с ЧПУ, предназначенное для обработки деталей из металла и древесины.

На современном рынке широко представлено фрезерное оборудование с ЧПУ торговой марки Инвест Адам. Основными преимуществами моделей, которые отличаются своей компактностью и универсальностью, являются:

  • высокая точность обработки;
  • эффективность и производительность;
  • управляющие программы могут воспроизводиться неоднократно;
  • конструкция отличается высокой надежностью;
  • связь с компьютером, который управляет работой оборудования, осуществляется через обычный USB-порт.

Для оснащения домашней мастерской и крупного производственного предприятия можно использовать фрезерный станок с ЧПУ, выпущенный немецкой компанией BZT. Отличает станки данной торговой марки высокая устойчивость, надежность фиксации заготовок, точность и оперативность обработки. Удобным является и то, что станки данной торговой марки могут работать практически на любом программном обеспечении.

На стоимость фрезерного станка с ЧПУ оказывают влияние следующие параметры:

  • сложность конструкции оборудования и его тип;
  • тип производства, для которого предназначено оборудование;
  • страна производитель и торговая марка;
  • функциональность станка.

Наиболее простой конструкцией обладают настольные станки с ЧПУ, которые и стоят значительно дешевле более функционального оборудования. Чтобы сэкономить на приобретении фрезерного станка, выбирайте оборудование отечественных производителей. В среднем, стоимость настольного фрезерного оборудования с ЧПУ составляет порядка 4000 долларов США. Варьироваться такая цена может от ряда факторов: габариты станка и рабочего стола, мощность двигателя, вес оборудования и его функциональность.

На файл htaccess мы сильно отвлекаться не будем, его работа не так уж и сложна, тем более если Вы знакомы с регулярными выражениями в php . Вот, что касается самого модуля ЧПУ, то он представлен в виде двух файлов (ну можно и в один, но у меня почему то получилось два =) ) и "сети условий" по всему движку. Не пугайтесь, под термином "сети условий", я подразумеваю тот геморрой с автоматической смены ссылок по всему движку ! Сегодня мы займемся лишь фундаментом, и добьемся того что бы пост, на странице нашего блога, был доступен по адресу с человеко-понятной ссылкой

Цели я указал в анонсе, так что сейчас пару слов для новоприбывших, и приступим =)

Для тех кто на блоге в первые

Если Вы на блоге в первый раз, то эта маленькая заметка именно для Вас! Пускай тема ЧПУ обширная и применима к любому проекту, Вам, именно в материале на этой странице, будет очень сложно выявить что-то полезное для себя, по причине того, что этот пост, как и большинство на моем блоге, является частью цикла статей "Создать блог с нуля ". Цикл ориентирован на аудиторию которая хочет на практике научится программировать на php. Если Вы из таких, то добро пожаловать! Переходите по ссылке, что я дал Вам выше и приступайте к изучению изложенного мной материала

Если Вы собираетесь задержаться на моем блоге, то подпишитесь на RSS ленту блога через ридер, или же по почте

Новая колонка в таблице базы данных

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

Заходим в структуры таблицы blog, и после id создаем новую колонку

Заполняем поля приблизительно вот так (имя поля nameurl )

Теперь, необходимо заполнить новую колонку. У меня лишь одна запись в базе данных, поэтому для меня заполнение новой колонки не является проблемой =)

В конце имени необходим поставить ".html". Если у Вас в планах не использовать такое окончание у Ваших страниц, то можете не писать, только в этом случае Вам придется немного переделать файл htaccess , а именно убрать расширение там.

Я для тестовой странице использовал вот такое имя: dobro-pozhalovat.html

Ну чтож, с этой задачей мы справились, теперь приступим к самому файл htaccess

Создаем файл htaccess

Создавать лучше всего с помощью программы Notepad++ , ибо в некоторых случаях виндоус ругается, что у файла нет имени, ведь имени и в правду нет =) только расширение.htaccess

На всякий случай я скину Вам файл, вот он . Этот файл необходимо поместить в корень нашего блога

Содержимое файла следующее:

RewriteEngine on
RewriteRule ^post/([-a-z0-9]+.html)$ index.php?post=$1 [L]
RewriteRule ^category/([-a-z0-9]+.html)$ index.php?category=$1 [L]
RewriteRule ^contacts.html$ index.php?contact=1 [L]

Первая строчка включает возможность перенаправления с динамических ссылок на ЧПУ. Вторая отвечает за ссылки на посты. То есть если ссылка будет вот такого вида

http://rsblog.ru/post/dobro-pozhalovat.html

То сервер поймет, что обращение идет к странице с постами, и создаст для себя динамическую ссылку для дальнейшей обработки.

http://rsblog.ru/category/testovaya-kategoriya.html

http://rsblog.ru/contacts.html

Обратите внимание что регулярное выражение находится в скобках, если Вы знакомы с регулярками, то прекрасно знаете, что скобки это сохранение . Вопрос, куда переносятся сохраненные данные? Ответ: В переменную 1. Да, именно 1 (единица).

Если Вам нужны ЧПУ без.html то редактируйте регулярное выражение в файле htaccess, на такой вид ссылок, который Вам нужен!

Особо останавливаться тут не будем, я многое тут не знаю, поэтому долго разглагольствовать на эту тему не имею право, единственное что бы я еще добавил, это пару слов о флаге [L]. Я может и ошибаюсь, но как я понял этот флаг останавливает проверки, что идут ниже, это что-то типа break (прерывание работы всего цикла ) у циклов.

Под итожу то что написано в файле htaccess: Условия, для каждого вида станиц которые есть у нашего движка, а именно

  • для постов
  • для категорий
  • для страницы контактов

Если Вы знакомы с регулярками , то разобраться в файле Вам не составит труда.

php функция chpu() - Алгоритм поиска id записи в таблице базы данных

Начнем с создания алгоритма поиска. Для этого нам понадобится знать в какой таблице искать и что искать . У Вас может возникнуть вопрос, что значит в какой таблице? Ведь таблица у нас одна - blog . Это не совсем так, сегодня мы рассматриваем только посты, но так же нам известно, что у категорий тоже есть свои ссылки, а таблица которая будет содержать имена категорий называется menu , именно поэтому алгоритм должен знать в какой таблице ему искать. Пускай функция chpu() на данном этапе будет работать лишь на половину, зато в следующих постах нам не придется редактировать ее (функцию).

Создаем файл chpu.php помещаем его в пользовательские модули нашего движка, и пишем в этом файле следующую функцию:

function chpu($url,$dirDB)//функция ЧПУ
{
//$url - имя с помощью которого мы определим id
//$dirDB - режим, с помощью которого мы определим в какой таблице базы данных нам искать
//определяем запрос в зависимости от того какую страницу открывает пользователь (текст поста или категорию)
if($dirDB == "post")$sql = "SELECT id FROM blog WHERE nameurl = "$url"";//текст поста
if($dirDB == "category")$sql = "SELECT id FROM menu WHERE nameurl = "$url"";//категория

$result_index = mysql_query($sql);//Выводим из базы статью
$myrow_index = mysql_fetch_array($result_index);

if($myrow_index != "") return $myrow_index;//если найдена строчка в БД выводим id
else return "";//если нет, выводим пустоту
}
?>

Функция очень простая, так что не будет на ней останавливаться, тем более я уже не раз разъяснял логику поиска id в таблице.

Скрипт позволяющий определить какая страница открыта

Цель этого скрипта определить в каком режиме запустить функцию chpu(). Определить это можно по GET запросу который создает нам сервер при обращение к станице по ЧПУ. Если Вы внимательно смотрели содержимое файла htaccess, и приблизительно поняли его работу, то Вы должны догадаться, что сервер для себя определяет ссылку вот такого вида

http://rsblog.ru/index.php?post=dobro-pozhalovat.html

То есть, если пользователь обратился к станице с помощью ЧПУ то сервер создаст GET запрос post, создание такого запроса сигнализирует нам о том что пользователь обратился на страницу поста, стало быть функцию chpu() необходимо запускать в режиме поиска id в таблице blog

Создаем файл getchpu.php, сохраняем его в папке пользовательских модулей и пишем в нем следующий скрипт

if($chpu == 1)//если блог работает в режиме вкл ЧПУ
{
include("moduls/chpu.php");
//GET ПЕРЕМЕННАЯ post
if(isset($_GET["post"]))
{
if(!preg_match("/^[-a-z0-9]+\.html$/",$_GET["post"]))//если имя не корректное,то переносим
{
exit;
}
$blog = chpu($_GET["post"],"post");//по имени страницы достаем из бд id
if($blog == "")//если результат функции пустота, то переносим пользователя
{
header("location: ".$server_root);//на главную страницу
exit;
}
}
//GET ПЕРЕМЕННАЯ post
//GET ПЕРЕМЕННАЯ category
if(isset($_GET["category"]))
{
if(!preg_match("/^[-a-z0-9]+\.html$/",$_GET["category"]))//если имя не корректное,то переносим
{
header("location: ".$server_root);//на главную страницу
exit;
}
$cat = chpu($_GET["category"],"category");//по имени страницы достаем из бд id
if($cat == "")//если результат функции пустота, то переносим пользователя
{
header("location: ".$server_root);//на главную страницу
exit;
}
}
//GET ПЕРЕМЕННАЯ category
}
?>

Логика скрипта следующая:

  • Скрипт будет работать только в случае если блог работает в режиме вкл ЧПУ, то есть переменная chpu равна единице (это сделано для того чтобы режимы можно было поменять воздействуя лишь на одну переменную )
  • Далее подключается функция поиска id в базе данных
  • Дальше идут два варианта развития, и оба они работают по той же логике, то есть если существует GET запрос post или category то запускается проверка на корректность имени. Эта проверка поможет избежать простейших способов взлома нашего движка . Если проверка прошла успешно (если же нет, то нас перекинет на главную страницу ) запускается функция chpu(), тем самым в переменную blog или cat (в зависимости от того какая часть скрипта будет работать =) ) попадет id записи в базе данных. Если переменная пустая, то нас перекинет на главную страницу.

Тут есть один момент. Если Вы писали движок с самого начала курса, то у Вас скорее всего нет переменной server_root. Если Вы ставили копию движка, что я давал в посте "Установка нашей CMS ", то эта переменная у Вас есть.

Если у Вас нет этой переменной, то откройте пользовательский файл index.php, и сразу после подключение к базе данных пропишите эту переменную


$nameDB = "rsblog";//Название БД
$nameSERVER = "localhost";//Сервер
$nameUSER = "root";//Имя пользователя БД
$passUSER = "";//Пароль пользователя БД
mysql_select_db($nameDB, mysql_connect($nameSERVER,$nameUSER,$passUSER));

$server_root = "http://адрес_вашего_блога.ru/";
//ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)

Значение переменной является адрес Вашего блога. Эта переменная необходима была в админке для авторизации , тут же она необходима для реализации ЧПУ , в частности для тега что мы применим чуть ниже.

вставляем вот такой тег

Этот тег позволяет определить корень сайта, тем самым мы избавимся от глюка который мешает правильно определить пути к стилям. Если не поместить этот тег в код шаблона, то все страницы находящиеся по ЧПУ перестанут грузить стили, ява скрипты, и если я не ошибаюсь то и картинки

Заключение

Теперь при заходе на страницу http://rsblog.ru/post/dobro-pozhalovat.html я попадаю на страничку статьи

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

Если у Вас есть какие вопросы, то пользуйтесь формой ниже

Если Вы еще не подписаны на мой блог, исправляйте дело и подпишитесь на RSS ленту блога через ридер, или же по почте , так Вы точно не пропустите новые заметки на блоге

Всего Вам наилучшего! У меня Все!

P.S.: В интернете нашел подборку довольно не плохих статей на тему веб-дизайн , если кто-то видит себя в будущем как дизайнера, то обязательно почитайте эти статьи, очень полезная информация.