Нужен совет (алгоритм)

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Нужен совет (алгоритм)

Сообщение Sirik » 15.02.2012 (Ср) 22:27

Имеется схема такого вида (простой вариант):
Изображение

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

У кого будут какие идеи?
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 15.02.2012 (Ср) 23:03

У меня будут идеи.
viewtopic.php?f=73&t=42590
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 13:47

post_what_you_get.png

[Хакер] :: Почему вы используете картинкообменник, на котором надо регистрироваться, чтобы не видеть эту мерзкую лягушку, при том, что на форуме есть механизм аттачей?
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 15:14

Я не знаю, что на картинке, но наверное позволяет. Почему бы тебе не прочитать топик?

И поменяй название темы!
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 15:18

всегда отвечал "Быстрым ответом" и не знал что можно атачить фалы(
вот атач:
схема1.png
Схема 1
схема1.png (9.01 Кб) Просмотров: 3284


ps/ на что поменять название темы?
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 15:22

Найдёт, конечно.
Конкретно в данном случае алгоритм даст 8 контуров.
Контрур левой дорожки + два контура для двух отверстий + контур правой жорожки + три контура трёх дырок + контур полости.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 15:29

мне бы получить 3 контура: левой дорожки, правой дорожки и полость
и если не секрет сколько времени занимает расчет для данной схемы? почему возник данный вопрос, потому что это всего лишь частный случай, на деле схемы буду гораздо сложнее
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 15:40

Sirik писал(а):мне бы получить 3 контура: левой дорожки, правой дорожки и полость

Вот это мне нравится. Когда начинают говорить: мне нужно получить N контуров.
На картинке 8 замкнутых контуров. Если тебя не интересуют контуру дырок, то это вопрос не к алгоритму, а к поставщику данных для него. Не надо поставлять дырки как белые (а не зелёные) пикселы.

Sirik писал(а):и если не секрет сколько времени занимает расчет для данной схемы?

В каком плане расчёт? Контурообход?
В том топике по сути есть два вопроса.
1) Контурообход. Составление списка точек, устранение разрешимых и неразрешимых тупиков, выполнение BCT.
2) Составление списка пикселей контура. Метод смыкающихся островков.

Это не две альтернативы, а два необходимых этапа, второе даёт данные для первого. Каждое занимает своё время. Для второго есть альтернативные решения.

Прочитай тот топик от корки до корки.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 16:05

Если полностью сформулировать задачу для последней картинки:
надо обойти контур первой дорожки, допустим начало будет верхняя точка
перейти на второй контур при минимальном расстоянии и обойти его
перейти на полость и обойти ее
схема2.png
схема2.png (8.1 Кб) Просмотров: 3276

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 18:11

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

Зачем это вообще нужно? Уж не траектория ли для фрезеровки?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Нужен совет (алгоритм)

Сообщение Proxy » 16.02.2012 (Чт) 18:37

Sirik писал(а):надо обойти контур первой дорожки, допустим начало будет верхняя точка
перейти на второй контур при минимальном расстоянии и обойти его
перейти на полость и обойти ее

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

Уж не траектория ли для фрезеровки?

Скорее для плоттера (или его аналога), угадал? :)
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 18:46

Тут вопрос в другом.
К чему нужно заниматься такой глупостью, как работа над битмапом, если любая подобная программа, включая P-CAD (судя по фотографии), умеет делать экспорт в Gerber-формат, который векторный и как раз для фрезеров/плоттеров (и только для них) предназначен.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Нужен совет (алгоритм)

Сообщение Proxy » 16.02.2012 (Чт) 19:01

Хакер писал(а):К чему нужно заниматься такой глупостью, как работа над битмапом, если любая подобная программа, включая P-CAD (судя по фотографии), умеет делать экспорт в Gerber-формат, который векторный и как раз для фрезеров/плоттеров (и только для них) предназначен.

Хотя бы потому, что это автор сабжа сам изъявил такое желание.
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 19:06

Может он не знает о G-кодах.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 21:26

Знаю я G-коде и нормально читаю Gerber формат. Дело в том, что все программы, которые я видел делаю экспорт в Gerber формат только для плоттеров, мне же нужна фрезеровка по контуру. Тем более, что для Gerber формата надо писать свой минидрайер (не могу подобрать нужного слова) ).
Красные стрелки - это переход от одной области к следующей, причем я хочу чтобы чтобы эти переходы были минимальными.
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 21:27

Так ты подробнее опиши, что ты делаешь? Самодельный плоттер?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Нужен совет (алгоритм)

Сообщение Proxy » 16.02.2012 (Чт) 21:39

Sirik писал(а):Знаю я G-коде и нормально читаю Gerber формат. Дело в том, что все программы, которые я видел делаю экспорт в Gerber формат только для плоттеров, мне же нужна фрезеровка по контуру.

А мне случайно показалось, что на схемах токопроводные дорожки печатных плат, не выточенные фрезером непонятного предназначения загигулины :) А чем для решения поставленной задачи не устраивает векторизация контуров вышеизложенными способами?
Follow the white rabbit.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 21:45

Если есть Gerber-файлы, то заниматься векторизацией — это всё равно, что имея исходники, заниматься дизассемблированием, или имея проём в стене, грызть зубами новый.

Сделать из Gerber-файла, предназначенного для фотоплоттера, Gerber-файл, предназначенный для фрезерного станка, это в 1000 раз лучшее и простое решение, чем возиться с векторизацией растра.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Нужен совет (алгоритм)

Сообщение Proxy » 16.02.2012 (Чт) 21:48

Мне из сабжевого вопроса показалось, что автор располагает только растровыми изображениями. Видимо что-то упустил или был не внимателен.
Follow the white rabbit.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 21:58

Есть схема, начертил для примера, из нее можно сделать экспорт как в растр так и в Gerger. В последний только для плоттера, вот для примера: есть точка А и точка Б соединенные дорожкой (последняя схема, левая дорожка). Если экспортировать в Gerber, то получается вот такие шаги:
1. подход к точке А, включение плоттера
2. проход к точке Б
3. возврат к точке А
4. проход к точке Б, выключение плоттера
5. конец программы

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

А делаю я, точнее хочу сделать, министанок для фрезеровки печатных плат
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 22:06

Sirik писал(а):получается вот такие шаги:
1. подход к точке А, включение плоттера
2. проход к точке Б
3. возврат к точке А
4. проход к точке Б, выключение плоттера
5. конец программы

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

Sirik писал(а):А делаю я, точнее хочу сделать, министанок для фрезеровки печатных плат

Выбор конечно за тобой, но как человек, который с 2009 года работает над проектом схожей тематики, скажу, что сам метод (фрезеровка дорожек) — отвратителен.
Лучше уж свой фотоплоттер сделать, хотя и это имеет не много смысла в себе: фотошаблон напечатают в любой полиграфии на прозрачной плёнки. Да что уж там, даже на струйнике самому можно напечатать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 22:10

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

Так что если ты последуешь моему совету, то тебе придётся просто вычислить эквидистанту, а если останешься при своём мнении — векторизировать растр, а потом всё равно вычислить эквидистанту.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Нужен совет (алгоритм)

Сообщение Proxy » 16.02.2012 (Чт) 22:13

Хакер писал(а):Да что уж там, даже на струйнике самому можно напечатать.

Современные лазерные по инструкции тоже допускают применение прозрачной плёнки с определёнными свойствами. Что получается из этого пока не проверял и применимо ли это как-либо тоже не могу сказать (низкое dpi).
Follow the white rabbit.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 16.02.2012 (Чт) 22:22

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

ps/ как же все-таки просто программировать роботы ;) задал нулевой фрейм, точки, указал размеры инструмента и все
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 16.02.2012 (Чт) 22:40

Сверлом фрезеровать не получится. Обычные свёрла очень скоро затупятся (стеклотекстолит — абразивный материал) и могут сломаться. Твердосплавные свёрла — не затупятся, но сломаются сразу же, как только испытают изгибающую силу. Они как стекло хрупкие.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 18.02.2012 (Сб) 20:24

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 18.02.2012 (Сб) 20:33

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

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

Так что я тебе говорю: без компенсации — никуда. Но ты можешь наплевать на компенсацию, а потом всё равно придётся делать с компенсацией. Двойная работа, таким образом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 18.02.2012 (Сб) 20:37

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Нужен совет (алгоритм)

Сообщение Хакер » 18.02.2012 (Сб) 20:46

Тогда о чём разговор?
Берёшь фотоплоттерную траекторию, вычисляешь эквидистанту, используешь как траекторию для фрезы. Задача решена.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Нужен совет (алгоритм)

Сообщение Sirik » 18.02.2012 (Сб) 21:01

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

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52

    TopList