Самописная прога ;)
Модератор: life
Самописная прога ;)
Сколько уже желающих было своё что то написать и все куда то пропали ))))
Тему начал так как написал таки свое и хочу поделится, ну и помощь у знающих в программировании людей попросить.
Прога рассчитана под контроллер на 3х мс 555tm7 с драйвером на транзисторах (принцип работы 4е пина от LPT на катушки, + 4е пина на выбор двигателя).
В общем в проге сейчас работает:
1) Базовые функции работы двигателями
2) Оптимизация файлов формата *.drl (может пригодится вам независимо от типа вашего контроллера ;) ) принцип действия прост - упорядочивает координаты точек по кратчайшему расстоянию от "текущей".
3) Собственно режим сверловки плат. (пока есть небольшие глюки. при размере сверловок примерно 200х150 мм сбивается примерно на 2-3мм по оси "у")
4) Режим "ручного" управления двигателями. для тестов механики и подсчета "мм/шаг". Так же есть набор фалов *.drl + 1 *.dxf которые помогут быстро найти "косяки" в механике.
Короче говоря - пишите кто заинтересовался.
Тему начал так как написал таки свое и хочу поделится, ну и помощь у знающих в программировании людей попросить.
Прога рассчитана под контроллер на 3х мс 555tm7 с драйвером на транзисторах (принцип работы 4е пина от LPT на катушки, + 4е пина на выбор двигателя).
В общем в проге сейчас работает:
1) Базовые функции работы двигателями
2) Оптимизация файлов формата *.drl (может пригодится вам независимо от типа вашего контроллера ;) ) принцип действия прост - упорядочивает координаты точек по кратчайшему расстоянию от "текущей".
3) Собственно режим сверловки плат. (пока есть небольшие глюки. при размере сверловок примерно 200х150 мм сбивается примерно на 2-3мм по оси "у")
4) Режим "ручного" управления двигателями. для тестов механики и подсчета "мм/шаг". Так же есть набор фалов *.drl + 1 *.dxf которые помогут быстро найти "косяки" в механике.
Короче говоря - пишите кто заинтересовался.
-
- Станкостроитель
- Сообщения: 451
- Зарегистрирован: 19 дек 2009, 01:00
- Откуда: UA
- Контактная информация:
- spike
- Станкостроитель
- Сообщения: 28
- Зарегистрирован: 01 сен 2009, 00:00
- Откуда: Протвино
- Контактная информация:
Re: Самописная прога ;)
Как это все пропали!? Не все...39v писал(а):Сколько уже желающих было своё что то написать и все куда то пропали ))))
Интересно. А программа-то сама где?39v писал(а):Тему начал так как написал таки свое и хочу поделится, ну и помощь у знающих в программировании людей попросить.
...
Короче говоря - пишите кто заинтересовался.
Помочь - всегда пожалуйста.
-
- КУМ
- Сообщения: 6126
- Зарегистрирован: 26 авг 2009, 00:00
- Имя: Николай Иосифович
- Откуда: Инта респ. Коми, 2000 км от Москвы на север!
- Контактная информация:
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868
Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Извините, на тот хостинг выкладывать не хочу и не буду.
Качайте с депозитов:
http://depositfiles.com/files/hvsu15wac
Текущею проблему опишу стразу - отсутствие нормальной процедуры delay () в delphi
данная версия вероятней всего сильно тормознутая в том смысле что движки переключаются медленно. Кто умеет работать в делфе - открываем исходник и правим процедуру delay() , компилируем и радуемся, ДЕЛИМСЯ. В остальном вроде глюков нет. прога написана под контроллер Ветрова Романа.
Основная задача проги - сверление дырок в печатных платах. там еще немного про черчение есть, но эта функция почти не тестировалась мной и почти наверника глючная. Есть оптимизация файла *.drl с подбором и сортировкой точек по кратчайшему расстоянию между ними. к кнопке тест прикручена, если не ошибаюсь(давно не дописывал ничего нового)
В папке программы есть *.drl файлы корпусов микросхем расположенных под разными углами, предназначены в основном для оценки "правельности" механики(станок собирал паралельно написанию проги, так что тестировать приходилась и то и другое одновременно).
Если что - пишите, мб помогу чемто.
Качайте с депозитов:
http://depositfiles.com/files/hvsu15wac
Текущею проблему опишу стразу - отсутствие нормальной процедуры delay () в delphi
данная версия вероятней всего сильно тормознутая в том смысле что движки переключаются медленно. Кто умеет работать в делфе - открываем исходник и правим процедуру delay() , компилируем и радуемся, ДЕЛИМСЯ. В остальном вроде глюков нет. прога написана под контроллер Ветрова Романа.
Основная задача проги - сверление дырок в печатных платах. там еще немного про черчение есть, но эта функция почти не тестировалась мной и почти наверника глючная. Есть оптимизация файла *.drl с подбором и сортировкой точек по кратчайшему расстоянию между ними. к кнопке тест прикручена, если не ошибаюсь(давно не дописывал ничего нового)
В папке программы есть *.drl файлы корпусов микросхем расположенных под разными углами, предназначены в основном для оценки "правельности" механики(станок собирал паралельно написанию проги, так что тестировать приходилась и то и другое одновременно).
Если что - пишите, мб помогу чемто.
-
- Станкостроитель
- Сообщения: 160
- Зарегистрирован: 26 фев 2010, 01:00
- Откуда: Красноярский край
- Контактная информация:
У меня кстати рабочая прога есть, оптимизатор только dxf для выжигания поинт ту поинт, но там собственно от сверления не особо отличается все тоже , на моем компе 500 тыс точек (дырок) оптимизировал 45 секунд. Длинна холостого хода уменьшается на 5-90% в зависимоти от "заполненности" рисунка.
Сам алгоритм простейший
Сам алгоритм простейший
-
- КУМ
- Сообщения: 6126
- Зарегистрирован: 26 авг 2009, 00:00
- Имя: Николай Иосифович
- Откуда: Инта респ. Коми, 2000 км от Москвы на север!
- Контактная информация:
Дмитрий Александрович, скачал, запустил, возникла куча вопросов:
А как установить разные скорости по осям?
И по интерфейсу - нельзя ли на главной панели сделать все надписи или по русски или по английски. Наличие рядом надписей "OPEN" и "Показать" , "Применить" и "LOAD" как то сбивает с толку.
Очень неудобно наложение окон, нет ли возможности сделать изменяемые размеры окон или сделать одно большое окно?
Как отобразить путь инструмента в окне просмотра, при предпросмотре и во время работы?
Что такое тесты базовых функций? Насколько я понял это дополнительные возможности для проверки?
И еще, программа почему-то при первом запуске показала ошибку открытия файлов, а при попытке сверления - иногда зависает. У меня WIN XP SP2.
С механикой состыкую и покопаюсь на праздники, благо контроллер на ТМ7 где то еще валяется
А как установить разные скорости по осям?
И по интерфейсу - нельзя ли на главной панели сделать все надписи или по русски или по английски. Наличие рядом надписей "OPEN" и "Показать" , "Применить" и "LOAD" как то сбивает с толку.
Очень неудобно наложение окон, нет ли возможности сделать изменяемые размеры окон или сделать одно большое окно?
Как отобразить путь инструмента в окне просмотра, при предпросмотре и во время работы?
Что такое тесты базовых функций? Насколько я понял это дополнительные возможности для проверки?
И еще, программа почему-то при первом запуске показала ошибку открытия файлов, а при попытке сверления - иногда зависает. У меня WIN XP SP2.
С механикой состыкую и покопаюсь на праздники, благо контроллер на ТМ7 где то еще валяется
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868
Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Ну попробую ответить по порядку )
- разные скорости по осям пока не планировались, но если очень нужно, то дописать не сложно. Пока что скорость на все оси задается в окошке "Delay" если не ошибаюсь, с последуюшим нажатием кнопки "Применить" (собственно в этом то и проблема проги. Разницы в интервалах 1 мс и 50-70 мс почти нет )
- Проблема подписей пока не стоит, т.к. гораздо важней разобраться с задержкой перезаписи в порт иначе прогой и так пользоваться не будут т.к. медленно. Как только delay ктонить толковый подскажет обещаю все сделать на русском, ну или на англ. кому как понравится )
- Наложение действительно не очень удобная штука, можно решить проблему перенесением пред просмотра на основную форму. НО опять же - не это не дает нормально прогу использовать.
- путь инструмента отображается автоматически во время сверления и по моему даже при простом перемещении в указанную точку. Возможно вы этого не увидели по причине или слишком большой задержки или наоборот - слишком маленькой. Тут надо поиграться временем задержки ибо процедура самописная (точнее взятая с форумов где люди эту проблему обсуждали ) и в полне может привязываться к конкретному компу т.е. скажем у меня 10мс в ее понимании могут длится дольше чем у кого то другого.
- Тесты базовых ф-цый просто исторически сложились... Использовал когда тестировал сам контроллер + писал и тестировал процедуры типа moveX, moveY, moveZ На данный момент они просто помогают тестировать контроллер, если появляются сомнения в его корректной работе (400 полушагов = полный оборот двигателя).
- С ошибкой открытия файла все просто - прога предполагает, что на момент ее запуска у вас в директории c:\temp лежит файл settings.ini в котором она ищит предыдущие введенные вами настройки. Т.к. она его там не находит - жалуется, потом при закрытие она его создаст сама(если у вас c:\temp есть) и больше вроде как ругаться не должна.
Для новичков могу выложить печатную плату своего контроллера в программе Layout - будет легче собирать. Сразу хочу отметить что контроллер "медленный" без использования ШИМ и лучше собирать другой )))
В свою очередь, еще раз прошу помочь написанием КОРРЕКТНО РАБОТАЮЩЕЙ процедуры delay тогда прога будет полезна многим. Заранее Спасибо.
В программировании я не силен так что не судите строго.
- разные скорости по осям пока не планировались, но если очень нужно, то дописать не сложно. Пока что скорость на все оси задается в окошке "Delay" если не ошибаюсь, с последуюшим нажатием кнопки "Применить" (собственно в этом то и проблема проги. Разницы в интервалах 1 мс и 50-70 мс почти нет )
- Проблема подписей пока не стоит, т.к. гораздо важней разобраться с задержкой перезаписи в порт иначе прогой и так пользоваться не будут т.к. медленно. Как только delay ктонить толковый подскажет обещаю все сделать на русском, ну или на англ. кому как понравится )
- Наложение действительно не очень удобная штука, можно решить проблему перенесением пред просмотра на основную форму. НО опять же - не это не дает нормально прогу использовать.
- путь инструмента отображается автоматически во время сверления и по моему даже при простом перемещении в указанную точку. Возможно вы этого не увидели по причине или слишком большой задержки или наоборот - слишком маленькой. Тут надо поиграться временем задержки ибо процедура самописная (точнее взятая с форумов где люди эту проблему обсуждали ) и в полне может привязываться к конкретному компу т.е. скажем у меня 10мс в ее понимании могут длится дольше чем у кого то другого.
- Тесты базовых ф-цый просто исторически сложились... Использовал когда тестировал сам контроллер + писал и тестировал процедуры типа moveX, moveY, moveZ На данный момент они просто помогают тестировать контроллер, если появляются сомнения в его корректной работе (400 полушагов = полный оборот двигателя).
- С ошибкой открытия файла все просто - прога предполагает, что на момент ее запуска у вас в директории c:\temp лежит файл settings.ini в котором она ищит предыдущие введенные вами настройки. Т.к. она его там не находит - жалуется, потом при закрытие она его создаст сама(если у вас c:\temp есть) и больше вроде как ругаться не должна.
Для новичков могу выложить печатную плату своего контроллера в программе Layout - будет легче собирать. Сразу хочу отметить что контроллер "медленный" без использования ШИМ и лучше собирать другой )))
В свою очередь, еще раз прошу помочь написанием КОРРЕКТНО РАБОТАЮЩЕЙ процедуры delay тогда прога будет полезна многим. Заранее Спасибо.
В программировании я не силен так что не судите строго.
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Под виндой это не реально. Если меем ввиду что-то серьёзное. ДОС, или свой драйвер порта,как в маче.В свою очередь, еще раз прошу помочь написанием КОРРЕКТНО РАБОТАЮЩЕЙ процедуры delay тогда прога будет полезна многим. Заранее Спасибо.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
Просишь помочь написать, но не говоришь на чём пишешь.
А в винде ты никогда не получишь правильную задержку, потому как планировщик процессов и потоков в ОС кривой, вернее не расчитаный на это. Т.е. все потоки изначально имеют один приоритет и пихаются в процессор тупо по очереди. Если где-то влезет какая-то программка - считай твою отодвинет. Или ищи как получить чуть ли не системный приоритет потока. У акрониса это, вроде как, реализовано.
Или пиши под 98-ю винду, а лучше под дос.
А в винде ты никогда не получишь правильную задержку, потому как планировщик процессов и потоков в ОС кривой, вернее не расчитаный на это. Т.е. все потоки изначально имеют один приоритет и пихаются в процессор тупо по очереди. Если где-то влезет какая-то программка - считай твою отодвинет. Или ищи как получить чуть ли не системный приоритет потока. У акрониса это, вроде как, реализовано.
Или пиши под 98-ю винду, а лучше под дос.
Gentoo way
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Забыл:). Интересный факт. Драйвер мача виден в диспетчере устройств. Это как понимать?
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
Пишу на Delphi, думаю в основном изза схожести с паскалем и готовых форм и кнопочек )))) могу на php переписать, да и си разберусь если нужно будет. Главное тут не язык, а вставшая в процессе написания проблема точных временных интервалов. Кстати - вопрос к любителям доса много еще тех кто в чистом досе сидит (а не эмулирует его из под винды)? Сразу замечу - переход в дос не считаю разумным т.к. есть много девайсов которые в полне нормально работают через порты из винды и т.д. думаю что отдельный комп под досом не все соберут только для станка скажем так. Надо искать другой путь. Тем более он явно есть.
а по поводу не реально - все относительно. Ветров в своей проге сделал чтото хитрое что позволяет с удовлетворительной точностью задавать задержку. Кроме того видел в сети некую пояснялку от заграничного гуру по поводу написания программ контроля чпу через ЛПТ порт. Вот только неосилил ее в виду того что не очень дружу с объектами в программировании и поэтому 5-10 страниц о том кто кого "родил" и что именно он при этом "перекрыл" (в виде исходного кода) для меня клинопись...
Может смелые найдутся, так я его исходники поищу. Может завалялись у меня гдето. Там как будто с МилиСек-дами все нормально(по крайней мере с виду).
а по поводу не реально - все относительно. Ветров в своей проге сделал чтото хитрое что позволяет с удовлетворительной точностью задавать задержку. Кроме того видел в сети некую пояснялку от заграничного гуру по поводу написания программ контроля чпу через ЛПТ порт. Вот только неосилил ее в виду того что не очень дружу с объектами в программировании и поэтому 5-10 страниц о том кто кого "родил" и что именно он при этом "перекрыл" (в виде исходного кода) для меня клинопись...
Может смелые найдутся, так я его исходники поищу. Может завалялись у меня гдето. Там как будто с МилиСек-дами все нормально(по крайней мере с виду).
Последний раз редактировалось 39v 29 апр 2010, 16:32, всего редактировалось 1 раз.
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Да нет там хитрого ничего:).У меня и исходники были, всё стандартно. Тоже пытались добиться стабильных результатов. Оно как: комп 2гГц - пашет на ура, а 470 мег - затыки достают даже если проге установить максимальный приоритет. Винда, одно слово. Многозадачность, а отсюда очередность процессов. Вот и...Ветров в своей проге сделал чтото хитрое
На обменнике валяется наша с сыном под ДОС. Стартует с диска. Моторы - песТня, разгон-торможение, в общем ОК:). Но когда влез в мач, то понял что не сможем предоставить и десятой части возможностей, которыми он обладает. И ВСЕ эти возможности наверное никто и не знает:). В смысле скопом.
39v, пойми правильно, я ниникак не против написания таких программ, просто описываю грабли.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
та тут дело даже не в этом против или за. я когда эту прогу писать начал я ее как бы бесплатным аналогом хотел сделать. А то как бы много чести за Ветровскую прогу платить... кроме того мне были не нужны особые навороты Мач. мне нужен был открытый исходный код который я мог бы приспосабливать под свои нужды. Да и любой другой мог бы скачать ее с исходниками и модернизировать под себя. Скажем кинуть на форму 1ну кнопку в которую он вложит нужную именно ему последовательность действий и заменит ею придыдущие 10-15 кнопок. В этом то и есть преимущество исходников...
Иногда людям не нужна громоздкая вешь типа мач, а напротив нужно нечето легкое что можно быстро настроить под себя...
Я просто системным администратором работаю, так нам иногда задачи для тупых ставят - например написать скрипт который конектится к фтп серверу и выкладывает туда файлы а для пользователя это был бы простой ярлычек на раб столе "кликнул и забыл". Бабуля пальцем отчет за день в экселе натыкала, что такое фтп она знать не знает и не интересуется, кликнула по значку и ОК... вот в чем простота... а то что этот скрипт кудато лезет, резервные копии делает, пользователя, пароль вводит.... ей это вообще не о чем не говорит... и более того - оно ей и не надо.
Иногда людям не нужна громоздкая вешь типа мач, а напротив нужно нечето легкое что можно быстро настроить под себя...
Я просто системным администратором работаю, так нам иногда задачи для тупых ставят - например написать скрипт который конектится к фтп серверу и выкладывает туда файлы а для пользователя это был бы простой ярлычек на раб столе "кликнул и забыл". Бабуля пальцем отчет за день в экселе натыкала, что такое фтп она знать не знает и не интересуется, кликнула по значку и ОК... вот в чем простота... а то что этот скрипт кудато лезет, резервные копии делает, пользователя, пароль вводит.... ей это вообще не о чем не говорит... и более того - оно ей и не надо.
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Согласен, из-за этого тоже своё писали...Иногда людям не нужна громоздкая вешь типа мач, а напротив нужно нечето легкое что можно быстро настроить под себя...
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
Dj_smart
Всё предельно просто... драйвер у мача отдельная подпрограмма, работающая почти или на уровне прерываний (акронис тру имейдж так же работает) - это даёт возможность отодвинуть сторонние процессы из очереди на выполнение. Единственное пройдут рядом/перед основние системные процессы. потому мач и выдаёт пракрасные результаты.
Нужно курить планировщик и переключение контекста в ОС дабы добится хороших результатов.
В линуксе же архитектура системы позволяет добиватся просто офигенных результатов работы в риал-тайм. Как минимум это работа с устройствами и портами через файл устройства. Возможность грамотной работы с приоритетами процессов и тд.
Автору могу только рекомендовать ознакомится с линуксом, выбрать простейший дистрибютив и начать писать очень простую программу с хорошей русской локалью под него. Откроешь исходники - думаю, тебе помогут. С виндой ты каши не сваришь и мач писали явно не самоучки, а весьма грамотные люди, которые архитектуру ОС виндовс знают как свои 5 пальцев и программируют на уровне ядра/драйверов.
Всё предельно просто... драйвер у мача отдельная подпрограмма, работающая почти или на уровне прерываний (акронис тру имейдж так же работает) - это даёт возможность отодвинуть сторонние процессы из очереди на выполнение. Единственное пройдут рядом/перед основние системные процессы. потому мач и выдаёт пракрасные результаты.
Нужно курить планировщик и переключение контекста в ОС дабы добится хороших результатов.
В линуксе же архитектура системы позволяет добиватся просто офигенных результатов работы в риал-тайм. Как минимум это работа с устройствами и портами через файл устройства. Возможность грамотной работы с приоритетами процессов и тд.
Автору могу только рекомендовать ознакомится с линуксом, выбрать простейший дистрибютив и начать писать очень простую программу с хорошей русской локалью под него. Откроешь исходники - думаю, тебе помогут. С виндой ты каши не сваришь и мач писали явно не самоучки, а весьма грамотные люди, которые архитектуру ОС виндовс знают как свои 5 пальцев и программируют на уровне ядра/драйверов.
Gentoo way
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Это я знаю. Меня интересует почему оно видится как ОТДЕЛЬНОЕ устройство?Всё предельно просто... драйвер у мача отдельная подпрограмма
Смысл? Стоит оно того? Могу дать десяток ссылок на халявный мач. Всёравно не переплюнуть....Автору могу только рекомендовать ознакомится с линуксом, выбрать простейший дистрибютив и начать писать очень простую программу с хорошей русской локалью под него
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
-
- КУМ
- Сообщения: 6126
- Зарегистрирован: 26 авг 2009, 00:00
- Имя: Николай Иосифович
- Откуда: Инта респ. Коми, 2000 км от Москвы на север!
- Контактная информация:
Только через мой... через личку.Dj_smart писал(а): Могу дать десяток ссылок на халявный мач. .
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868
Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
За задержками вам сюда: http://habrahabr.ru/blogs/delphi/75234/, либо в комментарии туда же.
От себя добавлю: (ТАК НЕЛЬЗЯ ДЕЛАТЬ, ПОЭТОМУ ДЕЛАЙТЕ ЭТО ТОЛЬКО ОПЦИОНАЛЬНО с по умолчанию выключенной опцией) нужно до начала ожидания выставить приоритет процесса - на реал-тайм, приоритет этого ожидающего потока - на тайм-критикал, сделать любое окно вашего приложения - активным (SetForegroundWindow,SetActiveWindow)... дождаться своей паузы... и вернуть приоритет потока и процесса на место. Заклинаю: только опционально! За подробностями - в каждую вторую книгу Криса Касперского (например, в "Техника и философия хакерских атак").
Оптимизация пути... если я правильно понял, речь идёт о свервеловке - это стандартная (кстати, сложная) олимпиадная задача о коммивояжере. Точно решается только перебором, приближённо - хм... рекомендую простейший алгоритм Прима-Краскала... его эээ... оптимизации... обычно хватает на всё.
От себя добавлю: (ТАК НЕЛЬЗЯ ДЕЛАТЬ, ПОЭТОМУ ДЕЛАЙТЕ ЭТО ТОЛЬКО ОПЦИОНАЛЬНО с по умолчанию выключенной опцией) нужно до начала ожидания выставить приоритет процесса - на реал-тайм, приоритет этого ожидающего потока - на тайм-критикал, сделать любое окно вашего приложения - активным (SetForegroundWindow,SetActiveWindow)... дождаться своей паузы... и вернуть приоритет потока и процесса на место. Заклинаю: только опционально! За подробностями - в каждую вторую книгу Криса Касперского (например, в "Техника и философия хакерских атак").
Оптимизация пути... если я правильно понял, речь идёт о свервеловке - это стандартная (кстати, сложная) олимпиадная задача о коммивояжере. Точно решается только перебором, приближённо - хм... рекомендую простейший алгоритм Прима-Краскала... его эээ... оптимизации... обычно хватает на всё.
если я непонимаю о чем я говорю, значет у тебя не достаточно высокий icq!!!
Dj_smart
Устройству назначено прерывание, грубо говоря.. за счёт этого и работает нормально.
А зачем ? ну автор же хочет сам писать, а это выход - простая, маленькая, выполняющая свои ф-ция программа... и менее ресурсоёмкая, на более старый комп.
spok
Задача Монжа-Канторовича, она же транспортная, только с другой формулировкой, не ?
Или теорию графов курить.
Устройству назначено прерывание, грубо говоря.. за счёт этого и работает нормально.
А зачем ? ну автор же хочет сам писать, а это выход - простая, маленькая, выполняющая свои ф-ция программа... и менее ресурсоёмкая, на более старый комп.
spok
Задача Монжа-Канторовича, она же транспортная, только с другой формулировкой, не ?
Или теорию графов курить.
Gentoo way
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
И даже не в личку:). Мыло.Только через мой... через личку.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
Не, другая (основные отличия: ЗК - на вес ребра, ЗМК - на поток через ребро и содержимое узла). Собственно, тут уже без теории графов... либо скучно (фиг решишь), либо интересно (придумывать велосипед). И если это не олимпиада, нужно брать любое стандартное решение под эту задачу.Задача Монжа-Канторовича, она же транспортная, только с другой формулировкой, не ?
Или теорию графов курить.
Последний раз редактировалось spok 30 апр 2010, 20:58, всего редактировалось 1 раз.
если я непонимаю о чем я говорю, значет у тебя не достаточно высокий icq!!!
ok, пусть будет на пальцах алгоритм Прима-Краскала.
Есть координаты дырок.
Условно, у нас существует матрица расстояний - от каждой до каждой (сама матрица, собственно не нужна, накладные расходы на вычисление расстояний - ничтожные).
Выбираем такие две дырки, между которыми расстояние кратчайшее. Запоминаем (занимаем) обе. Берём следующее кратчайшее расстояние между двумя дырками, но такое, чтобы не между этими же. И так до тех пор, пока свободные дырки не закончатся. В конечном итоге получается оптимальная (согласно этому алгоритму) последовательность посещения всех дырок.
Напоминаю, что это сложная задача (т.е. не имеющая никакого точно решения, кроме получаемого путём полного перебора всех вариантов решения), однако это самый простой алгоритм, легко программируется. Решение, в общем-то, неплохое. Если нужно пооптимальнее - следует смотреть в сторону метода ветвей и границ, либо перебора с возвратом, либо ещё чего-то совсем более сложного.
Очень легко представить наглядно - взять карандаш, линейку, листик . Наставить точек семь, соединить каждую с каждой линией, а дальше - по алгоритму.
Так лучше? ;-)
Есть координаты дырок.
Условно, у нас существует матрица расстояний - от каждой до каждой (сама матрица, собственно не нужна, накладные расходы на вычисление расстояний - ничтожные).
Выбираем такие две дырки, между которыми расстояние кратчайшее. Запоминаем (занимаем) обе. Берём следующее кратчайшее расстояние между двумя дырками, но такое, чтобы не между этими же. И так до тех пор, пока свободные дырки не закончатся. В конечном итоге получается оптимальная (согласно этому алгоритму) последовательность посещения всех дырок.
Напоминаю, что это сложная задача (т.е. не имеющая никакого точно решения, кроме получаемого путём полного перебора всех вариантов решения), однако это самый простой алгоритм, легко программируется. Решение, в общем-то, неплохое. Если нужно пооптимальнее - следует смотреть в сторону метода ветвей и границ, либо перебора с возвратом, либо ещё чего-то совсем более сложного.
Очень легко представить наглядно - взять карандаш, линейку, листик . Наставить точек семь, соединить каждую с каждой линией, а дальше - по алгоритму.
Так лучше? ;-)
если я непонимаю о чем я говорю, значет у тебя не достаточно высокий icq!!!
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Точно:(.если ты непонимаешь о чем я говорю, значет у тебя не достаточно высокий icq!!!
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
Это еще зачем?? Напиши G-код, в котором ты сам указываешь какое отверстие сверлить первым, вторым.. и последним, а так же их координаты, скорости перемещения между операциями. Пусть даже 100-1000 отверстий, все равно время написания кода достаточно мало.spok писал(а):ok, пусть будет на пальцах алгоритм Прима-Краскала.
Есть координаты дырок.
А сверлить по чертежу, обсчитывая его - это, я считаю, бред. Нужна наладка-подгонка чертежа и ни о какой оптимизации говорить тут не приходится, пользуйся хоть каким алгоритмом и если в результате обработки рисунка получается G-код, то его оптимизация отнимет времени столько же, как и написание его вручную. Отсчет от отверстия к отверстию приводит к накоплению ошибки, к 100му отверстию она может иногда стать соизмеримой с размером отверстия.
PS Обработка по рисункам подходит только для художественных задач. Я такими не занимаюсь...
Не тратьте силы, возьмите молоток побольше.
-
- Станкостроитель
- Сообщения: 451
- Зарегистрирован: 19 дек 2009, 01:00
- Откуда: UA
- Контактная информация: