Работа и создание моделей для EagleUP

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

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

Старейшая из них — это шняга под название Eagle3D состоящая из ULP скрипта и генерящая входные файлы для рендера POV-RAY. Штука так то офигенная при некой заморочке, позволяет делать чуть ли не фотореалистичные платы. Типо вот таких:
 


 

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

Например вот такая простая кнопочка:

 

Кодируется вот таким вот небольшим скриптом:

Показать »

#macro PSW_3(value)
#local leg = object {
box {<-0.2,-3,-0.325>,<0.2,1,0.325> texture{col_silver}}
}
union
{
object { leg translate <0,0,2.54>}
object { leg translate <0,0,-2.54>}
object { leg translate <-1.96,0,2.54>}
object { leg translate <-1.96,0,-2.54>}
object { leg translate <1.96,0,2.54>}
object { leg translate <1.96,0,-2.54>}

box{<-3.36,0,-3.8>,<3.36,3,3.8> pigment {Gray10}
finish { metallic 0.8 }
}

box{<-3.36,3,-3.8>,<3.36,6,3.8> pigment {White}
finish { metallic 1 }
}

box{<-2,6,-2>,<2,8,2> pigment {Blue}
finish { metallic 1 }
}

cylinder {<0,8,0>,<0,15,0>,3 pigment {Yellow}
finish { metallic 1 }
}
}
#end

 

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

 
Ну разве не няшечка? А какое внимание к деталям!!! Обратите внимание на рандомно генерирующееся положение дип переключателей или циферок на 7сегментном дисплее! Любовно подписанных номиналах и названиях микросхем, возможности выбирать микруху как с панелькой, так и без нее. А чего стоит детально прорисованные потроха светодиодов, просвечивающие через пластик. Но это так, подрочить, для неудавшихся 3Dшников, вроде меня, плотно сидевшем на 3DStudio MAX, лет так 7 назад.
 

Блюдо из птицы, с кетчупом
Со стороны CADsoft, почти официально, продвигается другой проект — EagleUp, куда более простой и практичный. О нем и поговорим подробней.
 

Работает он точно таким же образом как и Eagle3D — запускаем скрипт и получаем на выходе шнягу для редактора которым уже все это разглядываем. Только тут в качестве редактора используется Google SketchUp, народе — кетчуп.
 

Вообще, когда я впервые увидел кетчуп, года так два назад, первой моей мыслью было что то вроде: «А где же человеческое четырехквадрантное поле зрения, настраиваемые камеры, лофтинговые методы, модификаторы деформаций, сплайновые патчи и вертексные манипуляторы? Где, мать вашу, ограничения осей модификации и нормальный текстурный редактор с картами тектур? Что это за неюзабельное примитивное говно?». Впрочем, я ошибался. Да, кетчуп сильно слабей 3Д макса, но так и задачи у него попроще. А по поводу неудобности, так я просто невдуплил с первого захода в идеологию и принципы моделирования. Он больше похож на гибрид SolidWorks и классического двухмерного AutoCAD’a. А автокад я нежно люблю начиная со второго курса универа, гениальная вещь.

 

Настройка
Делать там вообще нефига. Надо выполнить всего несколько простых шагов
 

  • Установить Google SketchUp. Настоятельно рекомендую ставить английскую версию. Т.к. там много цифровых параметров надо вводить на лету, удобней это делать на нумпаде, а с английской версией не будет затраха с десятичной точкой. Которая то запятая, то точка. В зависимости от раскладки
  • В папку Plugins у SketchUp кинуть плагин импорта файлов для EagleUp — eagleUp_import.rb
  • Установить Image Magic. Это какая то шняга с помощью которой скрипт рендерит картинки из Eagle.
  • Кинуть в чрево Eagle, в папку ulp, скрипт EagleUp_export.ulp
  • При первом запуске сконфигурировать пути:

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

 

Делаем!
Дальше все очень и очень просто. Запускаем наш скрипт. Вылезат конфигурационное окно:

Выставляем опции. Цвета маски, шелка, лужения. И запускаем. Оно немного потупит и вскоре в папке проекта будет лежать папка 3D с *.eup файлом внутри. Это полуфабрикат наш.
 

Далее мы запускаем кетчуп и в разделе Plugins нас будет ждать (если не забыли поставить плагин) строчка импорта.
 


 

Тычем в нее, выбираем наш *.eup файл и наблюдаем мельтешение пустых консольных окошек. Их там штук двадцать проскочит. Это работает ImageMagic. Спустя какое то время оно разродится примерно такой картиной:

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

Правда радость будет не долгой. Гарантирую, что такой красивой картинки не будет :) Т.к. внезапно окажется, что компонентов то нетути! В магазин не завезли. И на месте деталек будут сиротливо торчать пустые пады.
 

А гыде взять? Во первых есть раздел на родном сайте, где они медленно, но верно пополняются. Если есть подходящая, но к вашей не привязывается, то это легко сделать самому.
 

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


Угадали с ориентацией и нулем, а масштаб совпадает — модель встанет на место как влитая.
 

Во вторых существуют сайты с 3D моделями. Я, например, рекомендую tracepartsonline.net т.к. там можно качать нативные модели для SketchUp и там огромный выбор комплектухи. Правда поиск замудреный, т.к. сгруппированы они очень от балды. В основном по производителям, а уже внутри них по группам. И поиск порой находит далеко не все. Но модельки там классные.
 

Одна проблема — обычно они напрямую не подходят. Их нужно соориентировать и подстроить под нашу систему координат. А также смасштабировать. Подробней смотрите на видео. Там я показал прям по шагам как это проще всего сделать.
 

А если не нашел? Что делать? А!!! Паника!
Не нашел — херачить самому. А кто сказал, что будет легко? Красота требует жертв. Впрочем, сей процесс тоже простой и не требует художественного образования. Становится гомосеком тут тоже не обязательно. Суровое технарское ремесло.

Смотрите сами:

Делаем простую модель дросселя

Делаем модель чуть посложней, используя родной футпринт как подсказку.

Короче, не все так страшно. Больше красиво оформленной документации хорошей и разной! :)
 
Ссылки и файлы

 

Рисуйте/конвертируйте свои модели и загружайте их в Google 3D Warehouse, с тэгом EagleUp.
 

Сделать это просто. После того как модель готова вначале очистите ее от мусора:
 

  • Window — Model Info — Statistics — Purge Unused.
  • Сохраните модель. Поверните камеру так, чтобы было хорошо видно, что это за модель.
  • А после File — 3D Warhouse — Share model…

 

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

71 thoughts on “Работа и создание моделей для EagleUP”

  1. DI — то что наблюдается после увеличения модели — это не глюк — это заднее отсечение камеры. Такое есть почти во всех 3D програмах. Только там оно настроено на большое число. А тут для экономии памяти и скорости рисования поставили мало.. У меня нет кечупа :) но это должно лечится гдето в настройках камеры (clipping planes).

    1. Не тут больше именно на глюк похоже. Т.к. если немного повертеть и пощелкать окнами проекций, то он пропадает.

    2. И да, в кетчупе нет никаких настроек камеры :) Разве что можно выбрать FOV и ее расположение и все.

  2. А сам дропбокс чем не подошел? Или я не понял аопроса…
    Кстати Яндекс.Диск уже немного причесали, глюков стало меньше. Размер впечатляет.

    1. Он не дает расшарить какую попало папку, плюс им можно расшаривать только по одному файлу, а не сразу всю папку.

  3. Такой вопрос. Два цилиндрических кондера стоят радом на плате. Если их разместить слишком близко то рендер отрисует два пересекающихся цилиндра или ошибку даст при проверке?

    1. Окей, слинковал, А как в дропе расшарить целую папку в виде ссылки? Чтобы можно было зайти кому угодно и скачать оттуда любой файл.

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

          1. Тебя ущемили в правах. :) Пиши им и требуй разъяснений. Того стоит, потому что крайне удобная штука.

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

  5. Хочу спросить у знающих людей а чем Altium хуже Eagle? Ну кроме цены =)
    Конечно в Eagle отрендерить в самой программе можно очень даже не плохо.. Что в отличии от AD я использую для более красивой реализации solid works + SW Photo View 360… имеются при этом свои проблемы: при экспорте изначально в step(что уже не совсем удобно) нельзя перекинуть текстуры(к ним же относятся дорожки на плате)… но мы ведь не голивудское HD кино-анимацию снимаем о PCB.
    Кстати о кино: AD умеет элементарно делать видео из платы путём её вращения и добавления(убавления) различных деталей типа частей корпуса. Несомненно интеграция AD с CADовскими программами даёт свои плюсы — такие как подгонка или разработка корпуса и т.д. Да и функционал AD радует- стока примочек что и не знаешь как найти время на все их изучения (типа симуляция, ПЛИС, программирование и пр.) Смог нарыть РОДНИКовские библиотеки к Altiumu добавил корпуса с 3dcontentcentrayl.com. И вроде как то не хочется ещё что то новое из ПО по PCB пробовать. Ниже картинки программатора ISP проттоса размером с флешку фид с окна AD и отрисованного в солиде. Нарисовал и собрал за вечерок.
    http://s52.radikal.ru/i135/1205/0b/8726b62afaa4.jpg
    http://i074.radikal.ru/1205/42/35b72c8c2edf.jpg
    Если кто сравнивал- поделитесь.

    1. Не точно указал адрес..Извеняюсь за ошибки.. спешил.. 3д контент откуда я практически всё беру — 3dcontentcentral.com.

      1. Я его тоже знаю. Только там в основном все в других форматах, а если конверить в скетчап из них, то получается очень много лишних полигонов. Модель потом приходится долго и муторно зачищать.

  6. DI, а если для расшаривания использовать бесплатную систему контроля версии Subversion вот ссылка на вики http://ru.wikipedia.org/wiki/Subversion и какой нибудь бесплатный файлсервер. Я давно использую, классная штука!!! Каждый чел ставит себе ее и имеет постоянно актуальную инфу да еще разные версии с момента создания. Я ей пользуюсь для контроля версий софта для МК, а так же и папка Мои документы под контролем.

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

      1. Ну да, есть такое в гит. Сам я пользуюсь mercurial на bitbucket, там все проще и тулзы гуевые тоже нормальные.

  7. А вот чем народ так зацепил Eagle? Базовая версия очень урезанная, для борды типа приведенной в самом начале надо что-то типа Standart, да и то, по размерам, кажется, не влезет, а цена уже почти 500Евро. Есть, конечно,Hobbist за 140Евро, но если уж следовать за лиц.чистотой, так по полной.

    В то же время есть KiCad. Честно говоря, сам еще не пробовал, но отзывы уже положительные. Есть 3D почти из коробки

    1. Не из праздного любопытства интересуюсь. Думаю, на что перевести контору из 3 девелоперов, если не PCad/Altium

    2. Я пробовал им пользоваться в начале. Мой вердикт — глючный и недоделанный продукт. До того момент как им можно будет с комфортом пользоваться еще далеко. Меня выморозило то, что там в схематике и в лайоуте разная идеология управления. А еще то, что в лайоуте нет банального Undo. Вообще нет О_о.

  8. Подскажите, пожалуйста, вот такой момент. Где Eagle хранит настройки этого самого скрипта? Я случайно закрыл окно с диалогом при первом запуске… Теперь чего не делаю — всё бесполезно, диалог больше запускаться не хочет…

    Кстати, ни кто не пробовал запустить связку под Wine и EagleCAD Linux?

      1. То есть как в нём? Пробовал скрипт переставить, результат отрицательный. Пробовал переставить программу Eagle — тоже самое. Деинтсалятор не удаляет файл настроек, тер в ручную (В Windows 7 — C:\Documents and Settings\$user\Application Data\CardSoft\EAGLE\eaglerc.usr) — тоже не помогло…

          1. Да уже столько времени с ней пытаюсь разобраться — результат равен нулю. Видимо мне не суждено. Да и вообще я Windows-ом пользоваться не умею, не нравится мне он :)

      1. bui:
        Я не нашел. Ткни носом — буду премного благодарен.
        Shalmaran:
        После некоторой трахоебли с вайном — оно завелось

  9. DI, добавь пожалуйста в статью рецепт запуска под wine:

    В свежем вайнЕ Кетчуп устанавливается и запускается, но может создавать только модели плат без рисунка дорожек и без шелкографии, но с установленными элементами. При попытки создания текстуры с помощью ImageMagic встроенный в Кетчуп интерпретатор Ruby зависает, а wine жалуется в консоль на critical section. В принципе, для целей пристрелки по размерам платы/корпуса этого достаточно, но куда приятнее рассмотреть плату в полном облаченьи, да и некоторые недоработки станут видны.

    Приступаем к лечению:

    1) % winetricks vcrun6
    после этого Кетчуп начинает стабильно крешиться при запуске. Лечится с помощью:

    2) установки ключа «HKEY_CURRENT_USER\Software\Google\SketchUp6\SnappyInstructor» в 0
    после этого скрипт импорта в Кетчуп начинает нормально генерить текстуры с помощью ImageMagic, но вылетает при попытке удалить временные файлы текстур
    «Error:
    #<Errno::ENOENT: No such file or directory — rm board.png board1.png board2.png pads.png padsB.png silk.png silkB.png maskn.png masknB.png traces.png tracesB.png»

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

    3) открываем eagleUp_import.rb (это тот самый плагин для импорта в Кетчуп) любимым текстовым редактором и закомментариваем строки 713,714
    rm_cmds = rm_cmd + " board.png board1.png board2.png pads.png padsB.png silk.png silkB.png maskn.png masknB.png traces.png tracesB.png\n"
    сmds += rm_cmds

    Всё. Наслаждаемся платой.

    1. UPD:
      1) После обновления Imagemagick до версии 6.7.6.9 перестали нормально генериться текстуры, версия 6.7.6.4 работает нормально
      2) ключ в реестре должен быть HKEY_CURRENT_USER\Software\Google\SketchUp8\SnappyInstructor\show. Возможно, установка ie8 с помощью winetricks так же вылечит эту проблему.

  10. Мммм не совсем понял зачем в 1 видео окружностью искали середину фигуры.. я провел до конца — и у меня все нормально получилось. Но эта так, мелочи :))
    Еще заметил одну непонятную мне фишку…. если элементы поехали, то при правом клике по ним (прямо на кривой плате)- редактировать — его редактируешь (поворачиваешь, смещаешь, масштабируешь) И на следующей плате все ок, а если открывать модель отдельно и редактировать- ничего не сохранятся, хотя сам файл с моделью сохраняется с изменениями. не знаю, видимо что-то с правами (у меня 7 винда профессионал)…

    1. Путь определяет ширину прогона. А поймав середину я гарантированно ловил нужный радиус. Это еще с 3Д макса привычка :)

      Т.е.? Правишь модель, а при последующем рендере оно не обновляется? Хотя в файле с моделью все ок?

      1. Да, т.е. в файле с моделью она повернута, а при следующем рендере — опять уехала… Может быть я сто-то с осями путаю или еще как. С 3д редакторами никогда не работал….

        1. Аааааа… блин, щас пытался воспроизвести, и заметил, что при изменении создается еще какой-то файл skb (после изменения файла я просто жму сохранить). И вот если его удалить, то все ок…..

  11. Подскажите! У меня при экспорте получается полностью залито белым вся плата. И не видно дорог, подписей элементов.

  12. Народ, подскажите, не сталкивался ли кто с такой засадой: eup-файл с помощью скрипта eagleUp_export.ulp cгенерировался, но когда я загружаю его с помощью плагина в SketchUp то ничего не происходит? Т.е. вообще ничего — окошко с выбором файла закрывается, и все… :-(

  13. Сначала поставил последнюю версию ImageMagick-6.7.8-0. Потом прочитал пост mmavka и установил поверх 6.7.3-5 из твоего архива. Путь в настройках EagleUp изменил… Что еще может быть?

    1. eup-файлы, полученные с помощью ImageMagickа версий 6.7.8.0 и 6.7.3-5 действительно отличаются. На сайте http://eagleup.wordpress.com прочел, что рекомендуемая версия ImageMagick-6.7.3-5-Q8-windows-dll.exe, а я ставил ImageMagick-6.7.3-5-Q16-windows-dll.exe. Может быть дело в этом? Пример, который лежит в папке «demo files» в архиве eagleUp4.3.zip тоже не заработал…

      1. Народ, выложите, пожалуйста, кто-нибудь любой рабочий eup-файл. Хочу все-таки выяснить в чем причина, в ImageMagick или в Google Sketchup. Спасибо.

        1. Все. Разобрался. У меня по умолчанию проекты Орла лежат в папке «d:\Мои документы\eagle\», а эта зараза походу не любит русские буквы или пробелы… в общем когда перенес ближе к корню все заработало!

  14. Когда пытаюсь запустить .ulp файл — выскакивает ошибка.
    C:\Program Files (x86)\EAGLE-5.9.0\ulp\eagleUp_export.ulp(372):
    unknown identifier ‘netget’
    Что делать, подскажите?

    1. Это к автору плагина скорей. У меня такого не возникало. Но ваще оно криво работает с русскоязычными и длинными путями.

      1. Щас тогда попробую переставить Игл.
        Хотя там пишет вроде чуть ли не на C++ кусочек программы где останавливается этот скрипт.
        //***5.9
        string webpage_full;
        string version_line;
        if (netget(webpage_full, "http://eagleup.wordpress.com/archive/version/") >= 0)
        {
        int index = strstr( webpage_full , "current_version" );
        if( index > 0 )
        {
        version_line = strsub( webpage_full , index+16 , 3 );
        if( strsub( version_line , 1 , 1 ) == "." )
        {
        int newest_version = strtol( strsub( version_line , 0 , 1 ) ) * 10 + strtol( strsub( version_line , 2 , 1 ) );
        int index_start = strstr( webpage_full , "begin__" ) + 7;
        int index_stop = strstr( webpage_full , "end__" );
        string whats_new = strsub( webpage_full , index_start , index_stop-index_start);
        if( newest_version > major_version*10 + minor_version )
        dlgMessageBox( "a new version of eagleUp is available ! \nCheck http://eagleup.wordpress.com/ for the latest improvements :" + whats_new );
        }
        }
        }
        //***
        dlgMessageBox( "eagleUp " + eagleUp_version + " : export completedYou can now import the eup file into Sketchup." );
        exit(cmd);
        }

  15. День добрый!

    Пытаюсь запустить SketchUp, скачал версию 8.0.15158
    ImageMagick-6.7.3-Q16, ImageMagick-6.7.9-Q8.
    скрипт и плагин скачал по ссылке в статье и с оф сайта.
    что касается Egle версия 6.1.0, запускаю скрипт делаю соответствующие настройки согласно скриншота, в результате получаю папку 3D с кучей файлов, *.png и *.eup.
    При попытке загрузить в SketchUp выдается ошибка: eagleUp has detected an error in the template/ For best experience you need to set the template to engineering — meters in the preferences/template menu.After setting the template you need to restart Sketchup. EagleUp will now close.
    Загружаю какую либо модель и пытаюсь повторить загрузку платы начинает работать.

    Подскажите что и где делаю не так?

  16. День добрый!

    С предыдущей проблеммой разобрался, проблема в настройке Google SketchUp.
    Необходимо выбрать инженерный шаблон — метры.
    С настройками EagleUP тоже не все гладко. Если сделать настройки согласно приведенного в статье скриншота получается плата на которой слой шелкографии куцый. Нет номеров элементов.
    Если поставить галку «Place+Names», как и на оф сайте то получаем нормальный слой шелкографии посадочное место плюс номер элемента. Самое интересное silk_gen.ulp скачен по ссылке из публикаций на сайте формирует на слое шелкографии еще и наминалы элементов, но видимо из за eagleUp_export.ulp не полностью переносится.
    установил: ImageMagick-6.7.9-Q8 пробовал ImageMagick-6.7.3-5-Q16 ссылка в статье как то криво работает, SketchUp 8.0.15158 английский, с русским тоже работает.
    И с офсайта eagleUp4.4

Добавить комментарий

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha