Самодельный фрезерный станок с ЧПУ: собираем своими руками. Пошаговая инструкция сборки станка с чпу своими руками Чертежи самодельного станка чпу под ручной фрезер
Это мой первый станок с ЧПУ собранный своими руками из доступных материалов. Себестоимость станка около 170$.
Собрать станок с ЧПУ мечтал уже давно. В основном он мне нужен для резки фанеры и пластика, раскрой каких-то деталей для моделизма, самоделок и других станков. Собрать станок руки чесались почти два года, за это время собирал детали, электронику и знания.
Станок бюджетный, стоимость его минимальна. Далее я буду употреблять слова, которые обычному человеку могут показаться очень страшными и это может отпугнуть от самостоятельной постройки станка, но на самом деле это всё очень просто и легко осваивается за несколько дней.
Электроника собрана на Arduino + прошивка GRBL
Механика самая простая, станина из фанеры 10мм + шурупы и болты 8мм, линейные направляющие из металического уголка 25*25*3 мм + подшипники 8*7*22 мм . Ось Z движется на шпильке M8, а оси X и Y на ремнях T2.5 .
Шпиндель для ЧПУ самодельный , собран из бесколлекторного мотора и цангового зажима + зубчатая ременная передача. Надо отметить, что мотор шпинделя питается от основного блока питания 24 вольта. В технических характеристиках указано, что мотор на 80 ампер, но реально он потребляет 4 ампера под серьёзной нагрузкой. Почему так происходит я объяснить не могу, но мотор работает отлично и справляется со своей задачей.
Изначально ось Z была на самодельных линейных направляющих из уголков и подшипников, позже я переделал её, фотки и описание ниже.
Рабочее пространство примерно 45 см по X и 33 см по Y, по Z 4 см. Учитывая первый опыт, следующий станок я буду делать с большими габаритами и на ось X буду ставить два мотора, по одному с каждой строны. Это связано с большим плечом и нагрузкой на него, когда работа ведётся на максимальном удалении по оси Y. Сейчас стоит один мотор и это приводит к искажению деталей, круг получается немного элипсом из-за возникающего прогибания каретки по X.
Родные подшипники у мотора быстро разболтались, потому что не рассчитаны на боковую нагрузку, а она тут серьёзная. Поэтому сверху и снизу на оси установил два больших подшипника диаметром 8 мм, это надо было бы делать сразу, сейчас из-за этого есть вибрация.
Здесь на фото видно, что ось Z уже на других линейных направляющих, описание будет ниже.
Сами направляющие имеют очень простую конструкцию, её я как-то случайно нашел на Youtube . Тогда мне эта конструкция показалась идеальной со всех сторон, минимум усилий, минимум деталей, простая сборка. Но как показала практика эти направляющие работают не долго. На фото видно какая канавка образовалась на оси Z после недели моих тестовых запусков ЧПУ станка.
Самодельные направляющие на оси Z я заменил на мебельные, стоили меньше доллара за две штуки. Я их укоротил, оставил ход 8 см. На осях X и Y ещё остались направляющие старые, менять пока не буду, планирую на этом станке вырезать детали для нового станка, потом этот просто разберу.
Пару слов о фрезах. Я никогда не работал с ЧПУ и опыт фрезерования у меня тоже очень маленький. Купил я в Китае несколько фрез, у всех 3 и 4 канавки, позже я понял, что эти фрезы хороши для металла, для фрезерования фанеры нужны другие фрезы. Пока новые фрезы преодолевают расстояние от Китая до Беларуси я пытаюсь работать с тем, что есть.
На фото видно как фреза 4 мм горела на берёзовой фанере 10 мм, я так и не понял почему, фанера чистая, а на фрезе нагар похожий на смолу от сосны.
Далее на фото фреза 2 мм четырёхзаходная после попытки фрезерования пластика. Этот кусок расплавленного пластика потом очень плохо снимался, откусывал по чуть-чуть кусачками. Даже на малых оборотах фреза все равно вязнет, 4 канавки явно для металла:)
На днях у дяди был день рождения, по этому случаю решил сделать подарок на своей игрушке:)
В качестве подарка сделал аншлаг на дом из фанеры. Первым делом попробовал фрезеровать на пенопласте, чтобы проверить программу и не портить фанеру.
Из-за люфтов и прогибаний подкову получилось вырезать только с седьмого раза.
В общей сложности этот аншлаг (в чистом виде) фрезеровался около 5 часов + куча времени на то, что было испорчено.
Как-то я публиковал статью про ключницу , ниже на фото эта же ключница, но уже вырезанная на станке с ЧПУ. Минимум усилий, максимум точность. Из-за люфтов точность конечно не максимум, но второй станок я сделаю более жестким.
А ещё на станке с ЧПУ я вырезал шестерёнки из фанеры , это намного удобнее и быстрее, чем резать своими руками лобзиком.
Позже вырезал и квадратные шестерёнки из фанеры , они на самом деле крутятся:)
Итоги положительные. Сейчас займусь разработкой нового станка, буду вырезать детали уже на этом станке, ручной труд практически сводится к сборке.
Нужно освоить резку пластика, потому как встала работа над самодельным роботом-пылесосом . Собственно робот тоже подтолкнул меня на создание своего ЧПУ. Для робота буду резать из пластика шестерни и другие детали.
Update: Теперь покупаю фрезы прямые с двумя кромками (3.175*2.0*12 mm), режут без сильных задиров с обоих сторон фанеры.
Условием выполнения профессиональных работ по дереву является наличие . Имеющиеся в продаже дороги и не всем «по карману». Поэтому многие изготавливают их своими руками, экономя деньги и получая от созидательного процесса удовольствие.
Имеется два варианта изготовления мини станочков для :
- приобретение набора деталей и его изготовления (наборы Моделист стоимостью от 40 до 110 тысяч рублей);
- сделать его своими руками.
Рассмотрим изготовление фрезерных мини станков с ЧПУ своими руками.
Выбор конструктивных особенностей
Перечень действий при разработке, изготовлению мини устройства для фрезерования по дереву следующий:
- Первоначально нужно определиться о каких работах идёт речь. Это подскажет, какие габариты и толщины деталей можно будет на нём обрабатывать.
- Сделать компоновку и предполагаемый перечень деталей на самодельный настольный станочек для изготовления своими руками.
- Выбрать программное обеспечение по приведению его в рабочее состояние, чтобы он работал по заданной программе.
- Приобрести нужные компоненты, детали, изделия.
- Имея чертежи, сделать своими руками недостающие элементы, собрать и отладить готовое изделие.
Конструкция
Самодельный станок состоит из следующих основных частей:
- станины с размещенным на ней столом;
- суппортов, имеющих возможность перемещения режущей фрезы в трех координатах;
- шпинделя с фрезой;
- направляющих по перемещению суппортов и портала;
- блока питания, обеспечивающего электроэнергией двигатели, контроллер или плату коммутации с использованием микросхем;
- драйверов для стабилизации работы;
- пылесоса для сбора опилок.
На станине устанавливают направляющие для перемещения портала по оси Y. На портале размещены направляющие для перемещения суппорта по оси X. Шпиндель с фрезой крепится на суппорт. Он двигается по своим направляющим (ось Z).
Контроллер и драйвера обеспечивают автоматизацию работы станка с ЧПУ за счёт передачи команд на электродвигатели. Использование программного комплекса Kcam позволяет использовать любой контроллер и обеспечивает управление двигателями в соответствии с внесённым в программу чертежом детали.
Конструкцию надо сделать жесткой, чтобы противостоять возникающим при работе рабочим усилиям и не приводить к вибрациям. Вибрации приведут к понижению качества получаемого изделия, поломке инструмента. Поэтому размеры крепежных элементов должны обеспечивать монолитность конструкции.
Самодельный фрезерный станок с ЧПУ используют для получения объёмного 3D изображения на деревянной детали. Она крепится на столе данного устройства. Его можно использовать и как гравировальный. Конструкция обеспечивает перемещение рабочего органа - шпинделя с установленной фрезой в соответствии с заданной программой действий. Перемещение суппорта по осям Х и Y происходит по шлифованным направляющим с применением шаговых электродвигателей.
Перемещение шпинделя по вертикальной оси Z позволяет изменять глубину обработки на создаваемом рисунке по дереву. Для получения рельефного рисунка 3D нужно сделать чертежи. Желательно использовать различные виды фрез, которые позволят получить лучшие параметры отображения рисунка.
Подбор комплектующих
Для направляющих применяют прутки из стали D = 12 мм. Для лучшего перемещения кареток они шлифуются. Длина их зависит от размера стола. Можно использовать закаленные стержни из стали от матричного принтера.
Шаговые двигатели можно использовать оттуда же. Их параметры: 24 В, 5 А.
Фиксацию фрез желательно обеспечить цангой.
На самодельный фрезерный мини станок лучше использовать блок питания заводского изготовления, так как от него зависит работоспособность.
В контроллере нужно использовать конденсаторы и резисторы в корпусах SMD для поверхностного монтажа.
Сборка
Чтобы собрать самодельный станок для фрезерования 3D детали по дереву своими руками нужно сделать чертежи, подготовить необходимый инструмент, комплектующие, изготовить недостающие детали. После этого можно приступать к сборке.
Очередность сборки своими руками мини станка с ЧПУ с обработкой 3D складывается из:
- направляющие суппортов устанавливают в боковины вместе с кареткой (без винта).
- каретки перемещают по направляющим до тех пор, пока их ход не станет плавным. Тем самым производится притирка отверстий в суппорте.
- затяжки болтов на суппортах.
- крепления сборочных единиц на станке и установка винтов.
- установки шаговых двигателей и соединения их с винтами при помощи муфт.
- контроллер выделен в отдельный блок для уменьшения влияния на него работающих механизмов.
Самодельный станок с ЧПУ после сборки обязательно должен быть опробован! Тестирование 3D обработки проводится посредством использования щадящих режимов для выявления всех неполадок и их устранения.
Работа в автоматическом режиме обеспечивается программным обеспечением. Продвинутые пользователи компьютеров могут использовать блоки питания и драйверы к контроллерам, шаговым двигателям. Блок питания преобразует поступающий переменный (220 В, 50 Гц) в постоянный ток необходимый для питания контроллера и шаговых двигателей. Для них управление станком с персонального компьютера проходит через порт LPT. Рабочими программами являются Turbo CNC и VRI-CNC. Для подготовки необходимых для воплощения в дерево рисунков используют программы графических редакторов CorelDRAW и ArtCAM.
Итоги
Самодельный мини фрезерный станок с ЧПУ для получения 3D деталей прост в управлении, обеспечивает точность и качество обработки. При необходимости сделать более сложные работы нужно использовать шаговые электродвигатели большей мощности (например: 57BYGH-401A). В этом случае для перемещения суппортов нужно для вращения винтов использовать зубчатые ремни, а не муфту.
Установку блока питания (S-250-24), платы коммутации, драйверов можно сделать в старом корпусе от компьютера, доработав его. На нём можно установить красную кнопку «стоп» для аварийного отключения оборудования.
Вам также могут быть интересны статьи:
Долбежный станок по дереву своими руками Как сделать строгальный станок по дереву своими руками Копировально-фрезерные станки по дереву
Не так давно излазив порядочное количество сайтов, так ничего и не нашёл по интересующей меня теме о простом ЧПУ для сайтов, материалы безусловно были, но рассказано очень уж непонятно и както размыто, создавалось ощущение будто авторы текстов сами не понимали о чём пишут. Это также напоминало отдалённый корявый перевод с другого языка, настолько корявый что теряется весь смысл.
Ну так вот и с тех самых пор я хотел создать свой материал об этой теме, который наконец раскроет тайны создание простого незамысловатого ЧПУ без излишеств, строго и эффективно. Будем создавать ЧПУ с использованием .htaccess и непосредственно mod_rewrite , но всё по порядку.
Итак, начнём... Для примера выдумаем небольшую ситуацию:
Допустим нам нужно чтобы файл index.php принимал 2 переменные, например cat и art , т.е index.php?cat=содержимое&art=содержимое . Пусть в рамках примера cat - категория, art - статья, и есть у нас материал доступный по адресу index.php?cat=php&art=info-chpu , но мы понимаем как некрасиво это будет выглядеть в адресной строке браузера и нам нужно чтобы наш материал был доступен по адресу php/info-chpu . Поэтому нам нужен ЧПУ:
Главная роль представляемого ЧПУ отдаётся файлу.htaccess именно он делает всю работу. Итак чтоже должно быть в файле.htaccess:
RewriteEngine On
Теперь попытаюсь объяснить содержимое файла.htaccess. Строка RewriteEngine On - используется для так сказать включения перенаправления, по правилам которые вы опишите. Пользователь переходит по ссылке php/info-chpu, запускается тут же содержимое файла.htaccess, которое видит что запрашиваемая ссылка php/info-chpu подходит по правилу (.*)/(.*) , всвязи с чем разделяет запрашиваемый адрес по частям правила содержимое1/содержимое2 и передаёт их исполнительному файлу index.php?cat=содержимое1&art=содержимое2 .
Вот и всё. Теперь всё что нам следует сделать это "ловить" и использовать нашим index.php две переменные cat и art .
Внимание если обработчиком php вы используете cgi-bin то вместо файла .htaccess у вас должен быть htaccess.txt
Всё максимально просто и понятно. Если вдруг вы столкнулись с какими-то трудностями в использовании предложенном мною ЧПУ для сайта, рекомендую скачать архив в котором всё настроено и работает - может быть вам будет так легче разобраться. В архиве 3 файла:
index.php - основной файл
htaccess.txt - файл для Cgi-bin обработчика
.htaccess - файл для Apache обработчика
Распакуйте содержимое архива к себе на сервер, и попробуйте запрос например <ваш_сервер>/trololo/512 или любой другой, <ваш_сервер> - как вы поняли писать не стоит, это я указал так место куда вы распакуете архив и откуда будете запускать файл.
Если остануться вопросы - пишите в комментариях.
Для тех, кто не понял что и как.
Вся суть данного ЧПУ состоит в htaccess файле, а что он именно делает?
RewriteEngine On
RewriteRule ^(.*)/(.*)$ index.php?cat=$1&art=$2 [L]
Можно сказать данный пример принимает адрес вида:
и отдаёт обработчикам ужи такого вида:
А мы уже файлом index.php принимаем $_GET["cat"] и $_GET["art"], которые в себе содержат название категории и материала.
Показанный в статье пример можно изменять как угодно.
Например у нас есть рабочий адрес domen.ru/avto.php?cat=sportcars&avto=porshe&model=carrera и если мы хотим сделать его ЧПУ вида:
То пишем в.htaccess:
RewriteEngine On
RewriteRule ^(.*)/(.*)/(.*)$ avto.php?cat=$1&avto=$2&model=$3 [L]
И после того как мы добавим вешеуказанные пару строк в.htaccess файл, наш материал будет открываться для посетителей по адресу:
domen.ru/sportcars/porshe/carrera
Или вдруг если у нас имеется несколько обработчиков PHP, то можно для каждого поставить правило в.htaccess:
RewriteEngine On
RewriteRule ^avto/(.*)$ avto.php?id=$1 [L]
RewriteRule ^air/(.*)$ forair.php?id=$1 [L]
RewriteRule ^flot/(.*)$ waterflot.php?id=$1 [L]
Из примера видно, то всё запросы начинающиеся с domen.ru/avto/ будут отправляться в обработчик avto.php, начинающиеся с domen.ru/air/, в обработчик forair.php.
Теперь стоит отметить важное! перед вашим RewriteRule поставьте такой код:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Этот код позволит вам избежать направления на обработчик при запросе статических папок и файлов, физически хранящихся в папке сайта.
Ещё очень важная особенность ЧПУ, которая не была освещена это ссылки в HTML коде вашего сайта к стилям, картинка и пр. Дело в том что относительный путь к картинкам и файлам, которые вы подключаете на странице нужно составлять с учётом ЧПУ, так как каждый слэш (/) в адресе будет расцениваться как папка. В итоге относительные пути ЧПУ будут вида "../../". Рекомендуем вам почитать статьи о относительных адресах, если вы не знаете как составлять их иерархию в HTML. Если же вы не хотите заморачиться на этом или не понимаете о чём речь, просто выставьте везде абсолютные пути, т.е для картинок вместо:
src="/images/vasya.png"
src="http://site.com/images/vasya.png"
В таком случае данные сайта будут вызываться корректно при любом ЧПУ, с любым количеством слешей. Точно также поступите со всеми подключаемыми файлами к HTML.
Настало самое время поговорить о втором варианте редиректа через.htaccess. Второй вариант полностью завязан на первом, но представляет собой универсальный редирект со стороны htaccess. Состоит редирект всего из одного правила:
RewriteRule ^(+)$ /engine.php?query=$1 [L]
Вся логика такого редиректа в том, что абсолютно всё после http://site.com/ будет отсылаться на обработчик engine.php в переменной $_GET["query"]. Далее мы в engine.php можем разбить переменную на части:
$query=$_GET["query"];
$url=explode("/", $query);
И теперь мы получили массив $url в каждой ячейке которого содержиться часть полного пути. Например, если наш адрес (переменная query) выглядит так: transport/auto/ferrary/laferrary/description , тогда после обработки будет:
$url="transport";
$url="auto";
$url="ferrary";
$url="laferrary";
$url="description";
И вы после обработки можете выполнять любые действия с этими данными.
И возможно пригодится: Для того чтобы узнать количество записей в массиве используйте count($url) , для того чтобы посмотреть значение последней записи в массиве используйте end($url) .
Сложная обработка различных материалов давно перестала быть уделом заводских цехов. Еще двадцать лет назад, максимум, что могли себе позволить домашние мастера – это фигурное выпиливание лобзиком.
Сегодня, ручные фрезеры и режущие лазеры можно запросто купить в магазине бытового инструмента. Для линейной обработки предусмотрены различные направляющие. А как быть с вырезанием сложных фигур?
Элементарные задачи можно выполнить с помощью шаблона. Однако такой способ имеет недостатки : во-первых, надо изготовить собственно шаблон, во-вторых, у механического лекала есть ограничения по размеру закруглений. И наконец, погрешность таких приспособлений слишком велика.
Выход давно найден: станок с ЧПУ позволяет вырезать из фанеры своими руками такие сложные фигуры, о которых «операторы лобзиков» могут лишь мечтать.
Устройство представляет собой систему координатного позиционирования режущего инструмента, управляемую компьютерной программой. То есть, обрабатывающая головка движется по заготовке, в соответствии с заданной траекторией. Точность ограничена лишь размерами режущей насадки (фреза или лазерный луч).
Возможности таких станков безграничны. Существуют модели с двухмерным и трехмерным позиционированием. Однако стоимость их настолько высока, что приобретение может быть оправдано лишь коммерческим использованием. Остается своими руками собрать ЧПУ станок.
Принцип работы координатной системы
Основа станка – мощная рама. За основу берется идеально ровная поверхность. Она же служит рабочим столом. Второй базовый элемент – это каретка, на которой закрепляется инструмент. Это может быть дремель, ручной фрезер, лазерная пушка – в общем, любое устройство, способное обрабатывать заготовку. Каретка должна двигаться строго в плоскости рамы.
Для начала рассмотрим двухмерную установку
В качестве рамы (основы) для станка ЧПУ, сделанного своими руками, можно использовать поверхность стола. Главное, после юстировки всех элементов, конструкция больше не перемещается, оставаясь жестко прикрученной к основе.
Для перемещения в одном направлении (условно назовем его X), размещаются две направляющих. Они должны быть строго параллельны друг другу.
Поперек устанавливается мостовая конструкция, также состоящая из параллельных направляющих. Вторая ось – Y.
Задавая вектора перемещения по осям X и Y, можно с высокой точностью установить каретку (а вместе с ней и режущий инструмент) в любую точку на плоскости рабочего стола. Выбирая соотношение скоростей перемещения по осям, программа заставляет инструмент двигаться непрерывно по любой, самой сложной траектории.
Решил написать эту заметку, потому как надоело отвечать 100500 раз одно и то же на ВиО.
Многие начинающие веб-программисты рано или поздно сталкиваются с задачей внедрения в свой сайт человеко-понятных линков (ЧПУ). До внедрения ЧПУ все ссылки имеют вид /myscript.php или даже /myfolder/myfolder2/myscript3.php, что тяжело для запоминания и ещё хуже для SEO. После внедрения ЧПУ линки принимают вид /statiya-o-php или даже на кириллице /статья-о-пхп.
Кстати о SEO. Человекопонятные линки на САМОМ деле придумали не для удобного запоминания, а в основном для повышения индексируемости сайта, потому что совпадение поискового запроса и части URL даёт хорошее преимущество в рейтинге поиска.
Эволюция начинающего PHP-программиста может быть выражена следующей последовательностью шагов:
- Размещение plain-PHP кода в отдельных файлах и доступ к этим файлам через линки вида /myfolder/myscript.php
- Понимание, что все скрипты имеют значительную часть общего (например, создание подключения к БД, чтение конфигурации, запуск сессии и проч.) и как следствие создание общей начальной точки «входа», некоторого скрипта, который принимает ВСЕ запросы, а потом выбирает — какой внутренний скрипт подключить. Обычно этот скрипт имеет имя index.php и лежит в корне, вследствие чего все запросы (они же URLы) выглядят так: /index.php?com=myaction&com2=mysubaction
- Необходимость внедрения роутера и переход к человекопонятным линкам.
Замечу, что между пунктами 2 и 3 большинство программистов делают очевидную ошибку. Я не ошибусь, если назову это значением около 95% программистов. Даже большинство известных фреймворков содержат эту ошибку. И заключается она в следующем.
Вместо того, чтобы реализовывать принципиально новый способ обработки линков, ошибочно делается концепция «заплаток и редиректов» на базе.htaccess, которая заключается в том, чтобы с помощью mod_rewrite создавать множество правил редиректа. Эти строки сравнивают URL с каким-либо регулярным выражением и при совпадении расталкивают выуженные из URL значения по GET-переменным, в дальнейшем вызывая всё тот же index.php.
#Неправильный метод ЧПУ RewriteEngine On RewriteRule ^\/users\/(.+)$ index.php?module=users&id=$1 #....Ещё куча подобных правил...
У данной концепции множество недостатков. Один из них — трудность создания правил, большой процент человеческих ошибок при добавлении правил, которые сложно выявить, но они приводят к ошибке сервера 500.
Другой недостаток в том, что часто правится по сути конфига сервера, что само по себе нонсенс. И если в Apache конфиг можно «пропатчить» с помощью.htaccess, то в популярном nginx такой возможности нет, там всё находится в общем файле конфигурации в системной зоне.
И ещё один недостаток, вероятно, наиболее важный, что при таком подходе невозможно динамически конфигурировать роутер, то есть «на лету», алгоритмически менять и расширять правила выбора нужного скрипта.
Предлагаемый ниже способ избавлен от всех этих недостатков. Он уже используется в большом количестве современных фреймворков.
Суть заключается в том, что начальный запрос всегда хранится в переменной $_SERVER[‘REQUEST_URI’], то есть его можно считать внутри index.php и разобрать как строку средствами PHP со всеми обработками ошибок, динамическими редиректами и проч и проч.
При этом в файле конфигурации можно создать только одно статичное правило, которое будет все запросы к несуществующим файлам или папкам редиректить на index.php.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f #Если файл не существует RewriteCond %{REQUEST_FILENAME} !-d #И если папка не существует RewriteRule ^.*$ index.php
Причём это правило можно разместить как в.htaccess, так и в основном файле конфигурации Apache.
Для nginx соответствующее правило будет выглядеть вот так:
Location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php last; } }
Всё просто.
Теперь рассмотрим кусок кода PHP в index.php, который анализирует ссылки и принимает решение — какой скрипт запускать.
/часть1/часть2/часть3
Первое, что приходит в голову — разбить её с помощью explode(‘/’, $uri) и сделать сложный роутер на основе switch/case, анализирующий каждый кусок запроса. Не делайте этого! Это сложно и в итоге приводит код в ужасный непонимабельный и неконфигурабельный вид!
Я предлагаю более лаконичный способ. Лучше не описывать словами, а сразу показать код.
"page404.php", // Страница 404 "/" => "mainpage.php", // Главная страница "/news" => "newspage.php", // Новости - страница без параметров "/stories(/+)?" => "storypage.php", // С числовым параметром // Больше правил); // Код роутера class uSitemap { public $title = ""; public $params = null; public $classname = ""; public $data = null; public $request_uri = ""; public $url_info = array(); public $found = false; function __construct() { $this->mapClassName(); } function mapClassName() { $this->classname = ""; $this->title = ""; $this->params = null; $map = &$GLOBALS["sitemap"]; $this->request_uri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH); $this->url_info = parse_url($this->request_uri); $uri = urldecode($this->url_info["path"]); $data = false; foreach ($map as $term => $dd) { $match = array(); $i = preg_match("@^".$term."$@Uu", $uri, $match); if ($i > 0) { // Get class name and main title part $m = explode(",", $dd); $data = array("classname" => isset($m)?strtolower(trim($m)):"", "title" => isset($m)?trim($m):"", "params" => $match,); break; } } if ($data === false) { // 404 if (isset($map["_404"])) { // Default 404 page $dd = $map["_404"]; $m = explode(",", $dd); $this->classname = strtolower(trim($m)); $this->title = trim($m); $this->params = array(); } $this->found = false; } else { // Found! $this->classname = $data["classname"]; $this->title = $data["title"]; $this->params = $data["params"]; $this->found = true; } return $this->classname; } } $sm = new uSitemap(); $routed_file = $sm->classname; // Получаем имя файла для подключения через require() require("app/".$routed_file); // Подключаем файл // P.S. Внутри подключённого файла Вы можете использовать параметры запроса, // которые хранятся в свойстве $sm->params
Несмотря на то, что код довольно длинный, он прост логически. Мне не хочется его объяснять, я считаю любой код на PHP самообъясняющим, если он правильно написан. Учитесь читать код.