Можно ли сделать своими руками станок с ЧПУ? Фрезерный станок с ЧПУ в домашних (гаражных) условиях Самодельные станки чпу дереву своими руками.

Решил написать эту заметку, потому как надоело отвечать 100500 раз одно и то же на ВиО.

Многие начинающие веб-программисты рано или поздно сталкиваются с задачей внедрения в свой сайт человеко-понятных линков (ЧПУ). До внедрения ЧПУ все ссылки имеют вид /myscript.php или даже /myfolder/myfolder2/myscript3.php, что тяжело для запоминания и ещё хуже для SEO. После внедрения ЧПУ линки принимают вид /statiya-o-php или даже на кириллице /статья-о-пхп.

Кстати о SEO. Человекопонятные линки на САМОМ деле придумали не для удобного запоминания, а в основном для повышения индексируемости сайта, потому что совпадение поискового запроса и части URL даёт хорошее преимущество в рейтинге поиска.

Эволюция начинающего PHP-программиста может быть выражена следующей последовательностью шагов:

  1. Размещение plain-PHP кода в отдельных файлах и доступ к этим файлам через линки вида /myfolder/myscript.php
  2. Понимание, что все скрипты имеют значительную часть общего (например, создание подключения к БД, чтение конфигурации, запуск сессии и проч.) и как следствие создание общей начальной точки «входа», некоторого скрипта, который принимает ВСЕ запросы, а потом выбирает — какой внутренний скрипт подключить. Обычно этот скрипт имеет имя index.php и лежит в корне, вследствие чего все запросы (они же URLы) выглядят так: /index.php?com=myaction&com2=mysubaction
  3. Необходимость внедрения роутера и переход к человекопонятным линкам.

Замечу, что между пунктами 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 самообъясняющим, если он правильно написан. Учитесь читать код.

Целью этого проекта является создание настольного станка с ЧПУ. Можно было купить готовый станок, но его цена и размеры меня не устроили, и я решил построить станок с ЧПУ с такими требованиями:
- использование простых инструментов (нужен только сверлильный станок, ленточная пила и ручной инструмент)
- низкая стоимость (я ориентировался на низкую стоимость, но всё равно купил элементов примерно на $600, можно значительно сэкономить, покупая элементы в соответствующих магазинах)
- малая занимаемая площадь(30"х25")
- нормальное рабочее пространство (10" по оси X, 14" по оси Y, 4" по оси Z)
- высокая скорость резки (60" за минуту)
- малое количество элементов (менее 30 уникальных)
- доступные элементы (все элементы можно купить в одном хозяйственном и трех online магазинах)
- возможность успешной обработки фанеры

Станки других людей

Вот несколько фото других станков, собравших по данной статье

Фото 1 – Chris с другом собрал станок, вырезав детали из 0,5" акрила при помощи лазерной резки. Но все, кто работал с акрилом знают, что лазерная резка это хорошо, но акрил плохо переносит сверление, а в этом проекте есть много отверстий. Они сделали хорошую работу, больше информации можно найти в блоге Chris’a. Мне особенно понравилось изготовление 3D объекта при помощи 2D резов.

Фото 2 - Sam McCaskill сделал действительно хороший настольный станок с ЧПУ. Меня впечатлило то, что он не стал упрощать свою работу и вырезал все элементы вручную. Я впечатлён этим проектом.

Фото 3 - Angry Monk"s использовал детали из ДМФ, вырезанные при помощи лазерного резака и двигатели с зубчато-ремённой передачей, переделанные в двигатели с винтом.

Фото 4 - Bret Golab"s собрал станок и настроил его для работы с Linux CNC (я тоже пытался сделать это, но не смог из-за сложности). Если вы заинтересованы его настройками, вы можете связаться с ним. Он сделал великую работу!

Боюсь что у меня недостаточно опыта и знаний, чтобы объяснять основы ЧПУ, но на форуме сайта CNCZone.com есть обширный раздел, посвященный самодельным станкам, который очень помог мне.

Резак: Dremel или Dremel Type Tool

Параметры осей:

Ось X
Расстояние перемещения: 14"

Скорость: 60"/мин
Ускорение: 1"/с2
Разрешение: 1/2000"
Импульсов на дюйм: 2001

Ось Y
Расстояние перемещения: 10"
Привод: Зубчато-ременная передача
Скорость: 60"/мин
Ускорение: 1"/с2
Разрешение: 1/2000"
Импульсов на дюйм: 2001

Ось Z (вверх-вниз)
Расстояние перемещения: 4 "
Привод: Винт
Ускорение: .2"/с2
Скорость: 12"/мин
Разрешение: 1/8000 "
Импульсов на дюйм: 8000

Необходимые инструменты

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

Электроинструмент:
- ленточная пила или лобзик
- сверлильный станок (сверла 1/4", 5/16", 7/16", 5/8", 7/8", 8мм (около 5/16")), также называется Q
- принтер
- Dremel или аналогичный инструмент (для установки в готовый станок).

Ручной инструмент:
- резиновый молоток (для посадки элементов на места)
- шестигранники (5/64", 1/16")
- отвертка
- клеевой карандаш или аэрозольный клей
- разводной ключ (или торцевой ключ с трещоткой и головкой 7/16")

Необходимые материалы

В прилагаемом PDF файле (CNC-Part-Summary.pdf) предоставлены все затраты и информация о каждом элементе. Здесь предоставлена только обобщенная информация.

Листы --- $ 20
-Кусок 48"х48" 1/2" МДФ (подойдет любой листовой материал толщиной 1/2" Я планирую использовать UHMW в следующей версии станка, но сейчас это выходит слишком дорого)
-Кусок 5"x5" 3/4" МДФ (этот кусок используется в качестве распорки, поэтому можете брать кусок любого материала 3/4")

Двигатели и контроллеры --- $ 255
-О выборе контроллеров и двигателей можно написать целую статью. Коротко говоря, необходим контроллер, способный управлять тремя двигателями и двигатели с крутящим моментом около 100 oz/in. Я купил двигатели и готовый контроллер, и всё работало хорошо.

Аппаратная часть --- $ 275
-Я купил эти элементы в трех магазинах. Простые элементы я приобрёл в хозяйственном магазине, специализированные драйвера я купил на McMaster Carr (http://www.mcmaster.com), а подшипники, которых надо много, я купил у интернет-продавца, заплатив $40 за 100 штук (получается довольно выгодно, много подшипников остается для других проектов).

Программное обеспечение --- (бесплатно)
-Необходима программа чтобы нарисовать вашу конструкцию (я использую CorelDraw), и сейчас я использую пробную версию Mach3, но у меня есть планы по переходу на LinuxCNC (открытый контролер станка, использующий Linux)

Головное устройство --- (дополнительно)
-Я установил Dremel на свой станок, но если вы интересуетесь 3D печатью (например RepRap) вы можете установить свое устройство.

Печать шаблонов

У меня был некоторый опыт работы лобзиком, поэтому я решил приклеить шаблоны. Необходимо распечатать PDF файлы с шаблонами, размещенными на листе, наклеить лист на материал и вырезать детали.

Имя файла и материал:
Всё: CNC-Cut-Summary.pdf
0,5" МДФ (35 8.5"x11" листов с шаблонами): CNC-0.5MDF-CutLayout-(Rev3).pdf
0,75" МДФ: CNC-0.75MDF-CutLayout-(Rev2).pdf
0,75" алюминиевая трубка: CNC-0.75Alum-CutLayout-(Rev3).pdf
0,5 "MDF (1 48"x48" лист с шаблонами): CNC-(One 48x48 Page) 05-MDF-CutPattern.pdf

Примечание: Я прилагаю рисунки CorelDraw в оригинальном формате (CNC-CorelDrawFormat-CutPatterns (Rev2) ZIP) для тех, кто хотел бы что то изменить.

Примечание: Есть два варианта файлов для МДФ 0,5". Можно скачать файл с 35 страницами 8.5"х11" (CNC-0.5MDF-CutLayout-(Rev3), PDF), или файл (CNC-(Один 48x48 Page) 05-MDF-CutPattern.pdf) с одним листом 48"x48"для печати на широкоформатном принтере.

Шаг за шагом:
1. Скачайте три PDF-файла с шаблонами.
2. Откройте каждый файл в Adobe Reader
3. Откройте окно печати
4. (ВАЖНО) отключите Масштабирование страниц.
5. Проверьте, что файл случайно не масштабировался. Первый раз я не сделал это, и распечатал всё в масштабе 90%, о чем сказано ниже.

Наклеивание и выпиливание элементов

Приклейте распечатаные шаблоны на МДФ и на алюминиевую трубу. Далее, просто вырезайте деталь по контуру.

Как было сказано выше, я случайно распечатал шаблоны в масштабе 90%, и не заметил этого до начала выпиливания. К сожалению, я не понимал этого до этой стадии. Я остался с шаблонами в масштабе 90% и, переехав через всю страну, я получил доступ к полноразмерному ЧПУ. Я не выдержал и вырезал элементы при помощи этого станка, но не смог просверлить их с обратной стороны. Именно поэтому все элементы на фотографиях без кусков шаблона.

Сверление

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

Места с отверстиями в накладку друг на друга это попытка сделать канавки. Возможно, у вас есть станок с ЧПУ, на котором это можно сделать лучше.

Если вы дошли до этого шага, то я поздравляю вас! Глядя на кучу элементов, довольно сложно представить, как собрать станок, поэтому я постарался сделать подробные инструкции, похожие на инструкции к LEGO. (прилагаемый PDF CNC-Assembly-Instructions.pdf). Довольно интересно выглядят пошаговые фотографии сборки.

Готово!

Станок готов! Надеюсь, вы сделали и запустили его. Я надеюсь, что в статье не упущены важные детали и моменты. Вот видео, в котором показано вырезание станком узора на розовом пенопласте.

Набор, с помощью которого можно собрать свой фрезерный станок с ЧПУ.
В Китае продаются готовые станки, обзор одного из них на Муське уже публиковался. Мы же с Вами соберем станок сами. Добро пожаловать…
UPD : ссылки на файлы

Я все-таки приведу ссылку на обзор готового станка от AndyBig. Я же не буду повторяться, не буду цитировать его текст, напишем все с нуля. В заголовке указан только набор с двигателями и драйвером, будут еще части, постараюсь дать ссылки на всё.
И это… Заранее извиняюсь перед читателями, фотографии в процессе специально не делал, т.к. в тот момент делать обзор не собирался, но подниму максимум фоток процесса и постараюсь дать подробное описание всех узлов.

Цель обзора - не столько похвастаться, сколько показать возможность сделать для себя помощника самому. Надеюсь этим обзором подать кому-то идею, и возможно не только повторить, но и сделать еще лучше. Поехали…

Как родилась идея:

Так получилось, что с чертежами я связан давно. Т.е. моя профессиональная деятельность с ними тесно связана. Но одно дело, когда ты делаешь чертеж, а после уже совсем другие люди воплощают объект проектирования в жизнь, и совсем другое, когда ты воплощаешь объект проектирования в жизнь сам. И если со строительными вещами у меня вроде как нормально получается, то с моделизмом и другим прикладным искусством не особо.
Так вот давно была мечта из нарисованного в автокаде изображения, сделать вжжик - и оно вот в натуре перед тобой, можно пользоваться. Идея эта время от времени проскакивала, но во что-то конкретное оформиться никак не могла, пока…

Пока я не увидел года три-четыре назад REP-RAP. Ну что ж 3Д принтер это была очень интересная вещь, и идея собрать себе долго оформлялась, я собирал информацию о разных моделях, о плюсах и минусах разных вариантов. В один момент перейдя по одной из ссылок я попал на форум, где сидели люди и обсуждали не 3Д принтеры, а фрезерные станки с ЧПУ управлением. И отсюда, пожалуй, увлечение и начинает свой путь.

Вместо теории

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

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

Для работы такого станка нужен необходимый минимум.
1. База (корпус) с линейными направляющими и передающий механизм (может быть винт или ремень)
2. Шпиндель (я вижу кто-то улыбнулся, но так он называется) - собственно двигатель с цангой, в которую устанавливается рабочий инструмент - фреза.
3. Шаговые двигатели - двигатели, позволяющие производить контролируемые угловые перемещения.
4. Контроллер - плата управления, передающая напряжения на двигатели в соответствии с сигналами, полученными от управляющей программы.
5. Компьютер, с установленной управляющей программой.
6. Базовые навыки черчения, терпение, желание и хорошее настроение.))

По пунктам:
1. База.
по конфигурации:

Разделю на 2 типа, существуют более экзотические варианты, но основных 2:

С подвижным порталом:
Собственно, выбранная мной конструкция, в ней есть основа на которой закреплены направляющие по оси X. По направляющим оси Х передвигается портал, на котором размещены направляющие оси Y, и перемещающийся по нему узел оси Z.

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

По материалу:
корпус может быть изготовлен из разных материалов, самые распространенные:
- дюраль - обладает хорошим соотношением массы, жесткости, но цена (именно для хоббийной самоделки) все-таки удручает, хотя если на станок имеются виды по серьезному зарабатыванию денег, то без вариантов.
- фанера - неплохая жесткость при достаточной толщине, небольшой вес, возможность обрабатывать чем угодно:), ну и собственно цена, лист фанеры 17 сейчас совсем недорог.
- сталь - часто применяют на станках большой площади обработки. Такой станок конечно должен быть статичным (не мобильным) и тяжелым.
- МФД, оргстекло и монолитный поликарбонат, даже ДСП - тоже видел такие варианты.

Как видите - сама конструкция станка весьма схожа и с 3д принтером и с лазерными граверами.
Я намеренно не пишу про конструкции 4, 5 и 6 -осевых фрезерных станков, т.к. на повестке дня стоит самодельный хоббийный станок.

2. Шпиндель.
Собственно, шпиндели бывают с воздушным и водяным охлаждением.
С воздушным охлаждением в итоге стоят дешевле, т.к. для них не надо городить дополнительный водяной контур, работают чуть громче нежели водяные. Охлаждение обеспечивается установленной на тыльной стороне крыльчаткой, которая на высоких оборотах создает ощутимый поток воздуха, охлаждающий корпус двигателя. Чем мощнее двигатель, тем серьезнее охлаждение и тем больше воздушный поток, который вполне может раздувать во все стороны
пыль (стружку, опилки) обрабатываемого изделия.

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

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

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

В моем случае был выбран шпиндель с воздушным охлаждением мощностью 300Вт.

3. Шаговые двигатели.
Наибольшее распространение получили двигатели 3 типоразмеров
NEMA17, NEMA23, NEMA 32
отличаются они размерами, мощностью и рабочим моментом
NEMA17 обычно применяются в 3д принтерах, для фрезерного станка они маловаты, т.к. приходится таскать тяжелый портал, к которому дополнительно прикладывается боковая нагрузка при обработке.
NEMA32 для такой поделки излишни, к тому же пришлось бы брать другую плату управления.
мой выбор пал на NEMA23 с максимальной мощностью для этой платы - 3А.

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

4. Контроллер
Плата управления, получающая сигналы от компьютера и передающая напряжение на шаговые двигатели, перемещающие оси станка.

5. Компьютер
Нужен комп отдельный (возможно весьма старый) и причин тому, пожалуй, две:
1. Вряд ли Вы решитесь располагать фрезерный станок рядом с тем местом, где привыкли читать интернетики, играть в игрушки, вести бухгалтерию и т.д. Просто потому, что фрезерный станок - это громко и пыльно. Обычно станок либо в мастерской, либо в гараже (лучше отапливаемом). У меня станок стоит в гараже, зимой преимущественно простаивает, т.к. нет отопления.
2. По экономическим соображениям обычно применяются компьютеры уже не актуальные для домашней жизни - сильно б/у:)
Требования к машине по большому счету ни о чем:
- от Pentium 4
- наличие дискретной видеокарты
- RAM от 512MB
- наличие разъема LPT (по поводу USB не скажу, за имением драйвера, работающего по LPT, новинки пока не изучал)
такой компьютер либо достается из кладовки, либо как в моем случае покупается за бесценок.
В силу малой мощности машины стараемся не ставить дополнительный софт, т.е. только ось и управляющая программа.

Дальше два варианта:
- ставим windows XP (комп то слабенький, помним да?) и управляющую программу MATCH3 (есть другие, но это самая популярная)
- ставим никсы и Linux CNC (говорят, что тоже очень неплохо все, но я никсы не осилил)

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

6. Базовые навыки черчения, терпение, желание и хорошее настроение.
Тут в двух словах.
Для работы станка нужна управляющая программа (по сути текстовый файл содержащий координаты перемещений, скорость перемещений и ускорения), которая в свою очередь готовится в CAM приложении - обычно это ArtCam, в этом приложении готовиться сама модель, задаются ее размеры, выбирается режущий инструмент.
Я обычно поступаю несколько более долгим путем, делаю чертеж, а AutoCad потом, сохранив его *.dxf подгружаю в ArtCam и уже там готовлю УП.

Ну и приступаем к процессу создания своего.

Перед проектированием станка принимаем за отправные точки несколько моментов:
- Валы осей будут сделаны из шпильки строительной с резьбой М10. Конечно, бесспорно существуют более технологичные варианты: вал с трапециевидной резьбой, шарико-винтовая передача(ШВП), но необходимо понимать, что цена вопроса оставляет желать лучшего, а для хоббийного станка цена получается вообще космос. Тем не менее со временем я собираюсь провести апгрейд и заменить шпильку на трапецию.
- Материал корпуса станка – фанера 16мм. Почему фанера? Доступно, дешево, сердито. Вариантов на самом деле много, кто-то делает из дюрали, кто-то из оргстекла. Мне проще из фанеры.

Делаем 3Д модель:


Развертку:


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

Параллельно делаем спецификацию и начинаем все заказывать.
что получилось у меня:
1. Набор, указанный в данном обзоре, включает в себя: плата управления шаговыми двигателями (драйвер), шаговые двигатели NEMA23 – 3 шт., блок питания 12V, шнур LPTи кулер.

2. Шпиндель (это самый простой, но тем не менее работу свою выполняет), крепеж и блок питания 12V.

3. Б/у компьютер Pentium 4, самое главное на материнке есть LPT и дискретная видеокарта + ЭЛТ монитор. Взял на Авито за 1000р.
4. Вал стальной: ф20мм – L=500мм – 2шт., ф16мм – L=500мм – 2шт., ф12мм – L=300мм – 2шт.
Брал тут, на тот момент в Питере брать получалось дороже. Пришло в течении 2 недель.

5. Подшипники линейные: ф20 – 4шт., ф16 – 4шт., ф12 – 4 шт.
20

16

12

6. Крепления для валов: ф20 – 4шт., ф16 – 4шт., ф12 - 2шт.
20

16

12

7. Гайки капролоновые с резьбой М10 – 3шт.
Брал вместе с валами на duxe.ru
8. Подшипники вращения, закрытые – 6шт.
Там же, но у китайцев их тоже полно
9. Провод ПВС 4х2,5
это оффлайн
10. Винтики, шпунтики, гаечки, хомутики – кучка.
Это тоже в оффлайне, в метизах.
11. Так же был куплен набор фрез

Итак, заказываем, ждем, выпиливаем и собираем.




Изначально драйвер и блок питания для него установил в корпус с компом вместе.


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


Ну и старенький монитор как-то сам поменялся на более современный.

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

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


Крепим дно портала к линейным подшипникам, пытаемся покатать основание портала туда-сюда. Убеждаемся в кривизне своих рук, все разбираем и немного рассверливаем отверстия.
Таким образом мы получаем некоторую свободу перемещения валов. Теперь наживляем фланцы, вставляем валы в них и перемещаем основание портала вперед-назад добиваемся плавного скольжения. Затягиваем фланцы.
На этом этапе необходимо проверить горизонтальность валов, а также их соосность по оси Z (короче, чтобы расстояние от сборочного стола до валов была одинаковой) чтобы потом не завалить будущую рабочую плоскость.
С осью Х разобрались.
Крепим стойки портала к основанию, я для этого использовал мебельные бочонки.


Крепим фланцы для оси Y к стойкам, на этот раз снаружи:


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

Далее крепим ходовые винты.
Отрезаем строительную шпильку М10 необходимой длины, накручиваем капролоновую гайку примерно на середину, и по 2 гайки М10 с каждой стороны. Удобно для этого, немного накрутив гайки, зажать шпильку в шуруповерт и удерживая гайки накрутить.
Вставляем в гнезда подшипники и просовываем в них изнутри шпильки. После этого фиксируем шпильки к подшипнику гайками с каждой стороны и контрим вторыми чтобы не разболталось.
Крепим капролоновую гайку к основанию оси.
Зажимаем конец шпильки в шуруповерт и пробуем переместить ось от начала до конца и вернуть.
Здесь нас поджидает еще пара радостей:
1. Расстояние от оси гайки до основания в центре (а скорее всего в момент сборки основание будет посередине) может не совпасть с расстоянием в крайних положениях, т.к. валы под весом конструкции могут прогибаться. Мне пришлось по оси Х подкладывать картонку.
2. Ход вала может быть очень тугим. Если Вы исключили все перекосы, то может сыграть роль натяжение, тут необходимо поймать момент натяга фиксации гайками к установленному подшипнику.
Разобравшись с проблемами и получив свободное вращение от начала до конца переходим к установке остальных винтов.

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

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


Для закрепления двигателей взял алюминиевую трубку, нарезал. Регулировал шайбами.
Для подключения двигателей взял вот такие коннекторы:




Извините, не помню как называются, надеюсь кто-нибудь в комментариях подскажет.
Разъем GX16-4 (спасибо Jager). Просил коллегу купить в магазине электроники, он просто рядом живет, а мне получалось очень неудобно добираться. Очень ими доволен: надежно держат, рассчитаны на бОльший ток, всегда можно отсоединить.
Ставим рабочее поле, он же жертвенный стол.
Присоединяем все двигатели к управляющей плате из обзора, подключаем ее к 12В БП, коннектим к компьютеру кабелем LPT.

Устанавливаем на ПК MACH3, производим настройки и пробуем!
Про настройку отдельно, пожалуй, писать не буду. Это можно еще пару страниц накатать.

У меня целая радость, сохранился ролик первого запуска станка:


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

Далее необходимо поставить шпиндель, при этом обеспечив его перпендикулярность (одновременно по Х и по Y) рабочей плоскости. Суть процедуры такая, к шпинделю изолентой крепим карандаш, таким образом получается отступ от оси. При плавном опускании карандаша он начинает рисовать окружность на доске. Если шпиндель завален, то получается не круг, а дуга. Соответственно необходимо выравниванием добиться рисования круга. Сохранилась фотка от процесса, карандаш не в фокусе, да и ракурс не тот, но думаю суть понятна:

Находим готовую модель (в моем случае герб РФ) подготавливаем УП, скармливаем ее MACHу и вперед!
Работа станка:


фото в процессе:


Ну и естественно проходим посвящение))
Ситуация как забавная, так и в целом понятная. Мы мечтаем построить станок и сразу выпилить что-то суперкрутое, а в итоге понимаем, что на это время уйдет просто уйма времени.

В двух словах:
При 2Д обработке (просто выпиливании) задается контур, который за несколько проходов вырезается.
При 3Д обработке (тут можно погрузиться в холивар, некоторые утверждают, что это не 3Д а 2.5Д, т.к. заготовка обрабатывается только сверху) задается сложная поверхность. И чем выше точность необходимого результата, тем тоньше применяется фреза, тем больше проходов этой фрезы необходимо.
Для ускорения процесса применяют черновую обработку. Т.е. сначала производится выборка основного объема крупной фрезой, потом запускается чистовая обработка тонкой фрезой.

Далее, пробуем, настраиваем экспериментируем т.д. Правило 10000 часов работает и здесь;)
Пожалуй, я не буду больше утомлять рассказом о постройке, настройке и др. Пора показать результаты использования станка - изделия.









Как видите в основном это выпиленные контуры или 2Д обработка. На обработку объемных фигур уходит много времени, станок стоит в гараже, и я туда заезжаю ненадолго.
Тут мне справедливо заметят - а на… строить такую бандуру, если можно выпилить фигуру U-образным лобзиком или электролобзиком?
Можно, но это не наш метод. Как помните в начале текста я писал, что именно идея сделать чертеж на компьютере и превратить этот чертеж в изделие и послужили толчком к созданию данного зверя.

Написание обзора меня наконец подтолкнуло произвести апгрейд станка. Т.е. апгрейд был запланирован ранее, но «руки все не доходили». Последним изменением до этого была организация домика для станка:


Таким образом в гараже при работе станка стало намного тише и намного меньше пыли летает.

Последним же апгрейдом стала установка нового шпинделя, точнее теперь у меня есть две сменные базы:
1. С китайским шпинделем 300Вт для мелкой работы:


2. С отечественным, но от того не менее китайским фрезером «Энкор»…


С новым фрезером появились новые возможности.
Быстрее обработка, больше пыли.
Вот результат использования полукруглой пазовой фрезы:

Ну и специально для MYSKU
Простая прямая пазовая фреза:


Видео процесса:

На этом я буду сворачиваться, но по правилам надо бы подвести итоги.

Минусы:
- Дорого.
- Долго.
- Время от времени приходится решать новые проблемы (отключили свет, наводки, раскрутилось что-то и др.)

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

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

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

Удачи Вам в Ваших начинаниях!

Обещанные ссылки на файлы:
- чертеж станка,
- развертка,
формат - dxf. Это значит, что Вы сможете открыть файл любым векторным редактором.
3Д модель детализирована процентов на 85-90, многие вещи делал, либо в момент подготовки развертки, либо по месту. Прошу «понять и простить».)

Планирую купить +150 Добавить в избранное Обзор понравился +261 +487

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

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

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

Для изготовления настольного мини-фрезерного станка по дереву своими руками следует ознакомиться с основными компонентами. Режущим элементом является фреза, которая устанавливается в шпиндель, расположенный на валу электродвигателя. Эта конструкция крепится на станину. Она может перемещаться по двум осям координат – x; y. Для фиксации заготовки необходимо сделать опорный столик.

Электронный блок управления соединяется с пошаговыми двигателями. Они обеспечивают смещение каретки относительно детали. По такой технологии можно сделать 3D рисунки на деревянной поверхности.

Последовательность работы мини-оборудования с ЧПУ, который можно изготовить своими руками.

  1. Написание программы, согласно которой будет выполнена последовательность перемещений режущей части. Для этого лучше всего использовать специальные программные комплексы, предназначенные для адаптации в самодельных моделях.
  2. Установка заготовки на стол.
  3. Вывод программы в ЧПУ.
  4. Включение оборудования, контроль за выполнением автоматических действий.

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

Для создания сложных рисунков и узоров на деревянной поверхности понадобится несколько видов фрез. Некоторые из них можно сделать самостоятельно, но для тонкой работы следует приобрести заводские.

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

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

Оптимальным вариантом является изготовление двух кареток, которые будут двигаться по осям координат x; y. В качестве основания лучше всего использовать стальные шлифованные прутки. На них будут монтироваться каретки. Для создания трансмиссии необходимы шаговые электродвигатели и винты с подшипниками качения.

Для максимальной автоматизации процесса в конструкции по дереву, сделанного своими руками, необходимо детально продумать электронную часть. Условно она состоит из следующих компонентов:

  • блок питания. Необходим для подачи электроэнергии на шаговые электродвигатели и микросхему контроллера. Зачастую используют модель 12в 3А;
  • контроллер. Он предназначен для подачи команд на электродвигатели. Для работы мини-фрезерного станка ЧПУ, изготовленного своими руками, достаточно простой схемы для контроля функционирования трех двигателей;
  • драйвер. Также является элементом регулирования работы подвижной части конструкции.

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

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

Следующим этапом является выбор компонентов для сборки самодельного оборудования. Оптимальным вариантом является использование подручных средств. В качестве основы для настольных моделей 3D станка можно использовать дерево, алюминий или оргстекло.

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

  • направляющие. Используются стальные шлифованные прутки диаметром 12 мм. Длина для оси x составляет 200 мм, для y — 90 мм;
  • суппорт. Оптимальным вариантом является текстолит. Обычный размер площадки — 25*100*45 мм;
  • шаговые двигатели. Специалисты рекомендуют использовать модели от принтера 24в, 5А. В отличие от приводов дисковода они имеют большую мощность;
  • блок фиксации фрезы. Его также можно сделать из текстолита. Конфигурация напрямую зависит от имеющегося инструмента.

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

Порядок изготовления фрезерного станка с ЧПУ

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

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

Порядок действий по сборке настольного мини оборудования с ЧПУ по дереву с функцией 3D обработки.

  1. Монтаж направляющих суппорта, их фиксация на боковых частях конструкции. Эти блоки еще не устанавливаются на основание.
  2. Притирка суппортов. Их необходимо двигать по направляющим до тех пор, пока не получится плавный ход.
  3. Затяжка болтов для фиксации суппортов.
  4. Крепление компонентов на основание оборудования.
  5. Монтаж ходовых винтов вместе с муфтами.
  6. Установка ходовых двигателей. Они крепятся к винтам муфт.

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

После этого можно приступать к пробным испытаниям. Сначала рекомендуется задать несложную программу фрезерования по дереву. Во время работы необходимо сверять каждый проход фрезы — глубину и ширину обработки, в особенности это касается 3D режима.

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

Примеры чертежей и самодельных конструкций



На файл 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.: В интернете нашел подборку довольно не плохих статей на тему веб-дизайн , если кто-то видит себя в будущем как дизайнера, то обязательно почитайте эти статьи, очень полезная информация.