Программа для создания инструкций по сборке лего

Для создания пошаговых инструкций для сбора моделей из конструктора LEGO любой линейки можно воспользоваться программами LDraw. Всего будет две статьи, посвящённых программам LDraw, где я опишу, как создать полноценную инструкцию по сборке робота LEGO Mindstorms Education EV3. В этой первой статье, вы познакомитесь с программами MLCad и LSynth и научитесь создавать виртуальную копию вашей модели.

Что такое LDraw?

LDraw – это открытый стандарт для программ-конструкторов LEGO (LEGO CAD), которые позволяют создавать виртуальные модели и сцены. С помощью этих бесплатных программ можете задокументировать ваши физически собранные модели, создать инструкцию по сборке в стиле LEGO, создать реалистичные 3D изображения вашей виртуальной модели и даже сделать анимацию. В вашем распоряжении официальные и неофициальные каталоги деталей LEGO.

На сайте LDraw есть установщик программ необходимых для моделирования, создания инструкций и других перечисленных возможностей. Найти ссылку для загрузки установщика можно здесь (ищите ссылку на файл с именем LDraw_AIOI_2016-01_setup_32bit_v1.exe или аналогичным). Установщик позволяет установить такие программы, как MLCad, LDView и LPub.

Здесь в двух статьях я кратко опишу процесс установки программ LDraw и создания модели робота LEGO Mindstorms Education EV3 с помощью программ MLCad, LSynth и LPub.

Установка программ LDraw

Скачайте инсталлятор LDraw All-In-One-Installer и запустите установку. Устанавливать программы рекомендуется на операционные системы Windows XP/Vista/7.

Не буду останавливаться подробно на установке, скажу лишь, что на шаге выбора устанавливаемых пакетов (Select Packages), проверьте, чтобы стояли галочки напротив программ MLCad, LDView и LPub. Обязательно установите галочку напротив программы LSynth, которая позволит нам рисовать гибкие провода.

Установка программ LDraw

После установки сразу обновите программу LPub. Скачать обновление можно здесь. Я скачивал файл LPub4_0_0_14_win32_update.zip.zip. Для обновления просто распакуйте файлы, находящиеся в архиве в папку, где установлена программа LPub (по умолчанию это папка C:\Program Files\LDraw\LPub или C:\Program Files (x86)\LDraw\LPub).

Интерфейс программы MLCad

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

Интерфейс программы MLCad

1. Панельки со всеми возможными командами программы. Можно перетащить их и прикрепить не только к верхнему краю, но и по бокам. Если у вас маленький экран, имеет смысл убрать лишние панельки, щёлкнув по ним правой кнопкой мышки и убрав галочки напротив ненужных. Для моделирования часто нужны панельки с выбором цвета (Colorbar), панель трансформации объектов (Transformationbar) и панель режимов (Modebar). Без остальных вполне можно обойтись, т.к. они будут нужны нечасто и можно воспользоваться меню.

2. Это каталог всех деталей всех конструкторов LEGO. Часть деталей, как видите, сгруппирована по ключевым словам. Например, в группе Electric вы увидите все детали, название которых начинается со слова Electric, в группе Technic – детали, начинающиеся со слова Technic и т.д. Лучше перед началом работы убрать из этого древовидного списка ненужные группы и добавить свои. Чтобы настроить список, щёлкните по нему правой кнопкой мышки и выберите пункт контекстного меню «Parts Tree -> Tree Configuration…».

Настройка списка деталей в MLCad

Мы можем удалить все группы, кроме Technic (т.к. детали Technic как раз используются в конструкторе LEGO Mindstorms EV3) и LSynth (используется для рисования проводов). Также нам понадобятся детали, в названии у которых есть слово EV3 (сюда попадут датчики, моторы, микрокомпьютер и т.п. специфические только для конструктора EV3), Wheel (здесь можно будет найти, например, большое колесо, использующееся в приводной платформе и гиробое), Gear (здесь будут шестерёнки), Pin (шпильки для соединения деталей с трением и без), Axle (оси и комбинированные шпильки), Plug (здесь будет вилка для проводов), Beam (здесь окажутся основные строительные элементы — балки).

Обратите внимание, чтобы искать слово только в начале названия ставится знак «<». А чтобы восстановить первоначальные группы вы можете щёлкнуть по пункту контекстного меню «Parts Tree -> Default».

Категории списка деталей в MLCad

Также в области 2 вы всегда сможете найти деталь по первой букве в названии (группа Other Parts). Часто используемые детали вы можете добавить в избранное, для этого щёлкните по детали правой кнопкой мышки и выберите пункт меню «Add to Favorites». Позже избранные детали вы можете посмотреть в группе «Favorites».

3. Здесь отображаются детали в группе, которую вы выбрали в списке деталей 2. Если вы щёлкаете по детали в области 2, то эта деталь будет нарисована слева сверху. Чтобы узнать название детали и имя файла детали наведите на неё мышкой и посмотрите на статус-бар внизу окна.

4. Здесь в таблице отображается весь ваш проект в табличном виде. Дело в том, что проект LDraw по сути – это текстовый файл, в каждой строчке которого описано, какую деталь добавить, и какую команду выполнить. А в этой области проект представлен в виде таблицы, что гораздо удобнее воспринимается, чем текстовый файл.

5, 6, 7 и 8. Здесь отображается ваша проектируемая модель под разными углами зрения. По умолчанию в области 5 модель отображается спереди (Front), в области 6 – слева (Left), в области 7 – сверху (Top), а в области 8 модель отображается в режиме 3D под любым углом. В каждой из этих областей можно поменять режим просмотра, можно сделать, чтобы аж все 4 показывали вашу модельку слева, если вам так хочется. Например, чтобы отобразить деталь снизу, щёлкните по нужной области правой кнопкой мышки и выберите пункт меню «View Angle -> Bottom».

Выбор угла зрения в MLCad

В режимах, в которых вы смотрите на модель вдоль осей (Top, Bottom, Left, Right, Front, Back), вы можете редактировать вашу модель. Назовём их режимами редактирования. А вот в режиме 3D вы можете только смотреть на модель под разными углами. Здесь угол просмотра меняется с помощью левой кнопки мышки.

Во всех областях масштаб меняется с помощью колёсика мышки, а передвижение точки зрения делается мышкой с удержанием нажатой клавиши Shift. Также передвигать точку зрения можно с помощью полос прокрутки. А чтобы полосы прокрутки появились, щёлкните по нужной области правой кнопкой мышки и выберите пункт меню «Scrollbars».

Во всех режимах нет перспективы, что очень удобно, т.к. нет искажений.

Активная область обведена красной линией. Именно для неё будет действовать изменение масштаба колёсиком мышки.

Создание модели в программе MLCad

Создание модели в программе MLCad сводится к тому, что вы постепенно собираете вашу модель из стандартных деталей конструктора. Каждую деталь вы ищите в списке деталей и перетаскиваете в любую область редактирования (5, 6, 7 или 8). После этого деталь нужно подкрасить нужным цветом (см. панель Colorbar), повернуть на нужный угол и подровнять.

Выделить несколько деталей, можно щелчком по ним удерживая клавишу Ctrl. Снять выделение можно щёлкнув по пустому пространству.

Детали можно группировать и разгруппировывать (см. пункты меню «Edit -> Group -> Group…» и «Edit -> Group -> Ungroup»). С группой вы сможете работать как с одной деталью. При группировке нужно будет задать имя группы.

Передвигать детали можно мышкой или с помощью панели Transformationbar, с помощью кнопок передвижения вдоль осей координат. С помощью аналогичных кнопок этой же панели можно крутить детали вдоль осей. Все передвижения и повороты производятся с определённым шагом. Для быстрой смены шага есть три предустановленных режима: Coarse (грубый и самый большой шаг), Medium (средний шаг) и Fine (самый мелкий и точный шаг). Все три режима включаются в меню «Settings -> Grid -> …», клавишами F9, F10, F11 или кнопками на панельке «Modebar».

Настроить шаг под себя можно в диалоге настроек программы «MLCad Settings» на закладке «Step, Grid, Snap» (меню «Settings -> General -> Change…»). Здесь можно указать не только целое число, но и дробное, см. картинку.

Настройка шага и сетки в MLCad

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

Добавляются шаги в области 4 с помощью контекстного меню (пункты меню «Add -> Step» или «Add -> Rotation Step…»), см. картинку.

Добавление шага в MLCad

После выбора пункта меню «Add -> Rotation Step…» вам ещё нужно будет выбрать угол зрения (см. картинку с диалогом «Rotation Step Angle»), под которым вы будете видеть модель в инструкции на текущем и всех последующих шагах, пока не измените этот угол с помощью следующего шага с поворотом. Обратите внимание, что мышкой меняются углы по осям X и Y, а мышкой с нажатой клавишей Shift – по осям X и Z. Здесь вы можете выбрать абсолютный угол (Absolute), угол относительно угла заданного по умолчанию (Relative) или угол относительно текущего угла (Additive). Угол по умолчанию вы можете посмотреть или изменить в настройках, вызвав пункт меню «Settings -> General -> Change» и открыв закладку «Document» — поля «Default 3D rotation angles». Режим «Additive» у меня отказался работать, поэтому я ничего не могу о нём сказать.

Чтобы проверить, как будут выглядеть шаги в будущей инструкции можно сохранить их в виде картинок. И хотя программа MLCad делает это непрезентабельно, но для оценки, правильно ли вы всё делаете, это подходит. Выберите пункт меню «File -> Save Image(s)…», затем в диалоге «Save Image(s) Options» выберите размер картинки, тип файла, выберите опцию «Image for each step» (Картинка для каждого шага) и нажмите «Save…». После этого программа спросит, в какую папку сохранить картинки, сохранит каждый шаг в отдельный файл и создаст ещё один файл с финальным видом. На каждом шаге добавляемые детали будут подсвечены чуть ярче остальных.

Сохранение шагов в картинки в MLCad

В моём примере получилось 3 картинки (2 шага и финиш):

Шаг 1, созданный в MLCad

Шаг 2, созданный в MLCad

Финальный вид модели, созданный в MLCad

Ещё один полезный режим, о котором нельзя не упомянуть, это режим «отрисовки до выделения», т.е. отрисовки только тех деталей, которые находятся в проекте до выделенной детали. Представьте себе ситуацию, когда вы строите большую модель, и часть деталей оказываются внутри и их не видно. Включив этот режим, вы находите нужную деталь, находящуюся внутри вашей конструкции в области 4, щёлкаете по ней и все детали, добавленные в проект позже становятся невидимыми. Так вы сможете беспрепятственно передвинуть эту деталь, поменять её цвет и т.п. Включение и выключение этого режима делается с помощью пункта меню «Settings -> Draw To Selection».

Использование стрелок и буфера обмена

Иногда на схеме нужно что-нибудь показать стрелками. Для добавления стрелок воспользуйтесь генератором стрелок, это пункт меню «Extras -> Generators -> Arrow…». После вызова этого пункта меню перед вами появится диалог настройки внешнего вида стрелки «Arrow Generator».

Добавление стрелки в MLCad

Здесь вы можете выбрать цвет, длину и форму стрелки. Можно сделать её закруглённой или прямой или оставить только указатель. После того как вы сделали стрелку можно нажать на кнопку «OK» и стрелка появится рядом с вашей моделью. Стрелка будет плоской, поэтому нужно будет повернуть её так, чтобы смотреть на неё перпендикулярно. Вы всегда сможете отредактировать стрелку позже, щёлкнув по ней правой кнопкой мышки и выбрав в контекстном меню пункт «Modify…».

При добавлении стрелок сразу возникает вопрос, как убрать её на последующих шагах. Ведь стрелкой нужно показать что-то на одном шаге, а затем её не должно быть видно. Решается это с помощью специального буфера обмена следующим образом. Перед добавлением стрелки нужно скопировать модель в буфер. Для этого щёлкните по строке правой кнопкой мышки и выберите пункт контекстного меню «Add -> Buffer Exchange…».

Запись модели в буфер обмена в MLCad

Далее в диалоге «Buffer Exchange» нажмите «OK» (здесь можно выбрать один из много численных буферов, но мы в примере оставим буфер A).

Теперь после стрелки добавьте шаг (пункт контекстного меню «Add -> Step»).

Добавление шага в программе MLCad

И после добавленного шага нужно прочитать сохранённую модель из буфера. Для этого щёлкните по добавленному шагу правой кнопкой мышки и опять выберите пункт контекстного меню «Add -> Buffer Exchange…». Только теперь в диалоге «Buffer Exchange» установите галочку «Retrieve» (Вернуть). Нажмите «OK».

Получилась последовательность, показанная на рисунке ниже. Работает это так: Первые две детали попадают в шаг 1, затем, на следующем шаге с поворотом добавляется третья деталь, далее результат сохраняется в буфер A (заметьте, что стрелки ещё нет, поэтому модель сохранится в буфер без стрелки), затем добавляется стрелка (три детали и стрелка попадут в шаг 2), а уже на следующем шаге мы считываем то, что сохранили из буфера A, т.е. нашу модель без стрелки.

Последобавтельность действий для отображения стрелки в MLCad

Зеркалирование деталей

Очень часто в моделях нужно сделать правую часть, а затем, зеркально – левую. Отобразить несколько деталей с сохранением всех шагов можно очень легко. Для этого выделите все зеркалируемые детали (можно в области 4), затем щёлкните по ним правой кнопкой мышки в области редактирования и в контекстном меню выберите «Enter Pos. + Rot…».

Вызов диалога Position & Orientation в MLCad

Дальше в диалоге «Position & Orientation» уберите галочку «Use position values» и установите галочку «Use rotation matrix values» (использовать значения матрицы вращения). Матрица будет выглядеть так: «1 0 0 0 1 0 0 0 1». Теперь, чтобы зеркалировать детали по оси X замените первую 1 на -1 (см. картинку). Вторую единицу замените на -1 для зеркалирования по оси Y и третью – для зеркалирования по оси Z. После этого нажмите «OK».

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

Добавление подпроектов

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

Делается это следующим образом. Допустим, у вас уже есть основной проект (с туловищем робота) и подпроект (с головой робота). Чтобы на каком-то шаге добавить голову в проект, щёлкните правой кнопкой мышки по нужному месту в области 4 и из контекстного меню выберите пункт «Add -> Part…».

Добавление подпроекта в MLCad

В появившемся диалоге поставьте галку «Custom Part» и выберите файл вставляемого подпроекта, щёлкнув по кнопке «Browse…». Щёлкните по кнопке «OK».

Диалог добавления детали или подпроекта в MLCad

После этого ваш подпроект будет вставлен в проект, и вы сможете работать с ним как с обычной деталью. Вы сможете передвигать его и крутить. Если в будущем в подпроект нужно внести какие-либо изменения, то вы можете открыть его отдельно, изменить. Чтобы после этого ваш подпроект отображался в основном проекте в изменённом виде нужно перезапустить MLCad.

Замена детали

Заменить одну деталь на другую с сохранением координат, угла поворота и цвета в программе MLCad очень просто. Щёлкните по нужной детали правой кнопкой мышки и выберите пункт контекстного меню «Modify…». В поднявшемся диалоге «Select Part» выберите новую деталь и нажмите «OK».

Подключение проводов с помощью LSynch

Специальных инструментов для рисования проводов в программе MLCad нет и сделать это не так просто, как в других редакторах, например, LDCad или SR 3D Builder. Поэтому я приведу здесь короткую шпаргалку, как это сделать, и пример.

Вот план действий для создания провода:

1. Установка вилок RJ12 в розетки (полное название детали в каталоге «Electric Mindstorms NXT RJ12 Style Plug w/ Cable End (Complete)»);
2. Добавление команды LSynch PLI_ELECTRIC_NXT_CABLE_20CM;
3. Прокладка пути, по которому пойдёт провод, с помощью расстановки ограничителей (полное название ограничителя в каталоге «LSynth Constraint Part – Type 5 – «NXT Cable»»);
4. Выполнение программы LSynch.

Теперь посмотрим на примере как это сделать. Создадим новый проект и добавим в него двигатель, модуль EV3 и простой шаг.

Простой проект MLCad

Теперь добавим вилки RJ12 (в примере я сделал вилки белыми (White, номер цвета 15), но вы можете сделать их прозрачными, например, выставив им цвет Glitter_Trans_Clear, номер цвета — 117).

Добавляем вилки RJ12 в проект MLCad

Теперь добавляем команду LSynch PLI_ELECTRIC_NXT_CABLE_20CM с помощью пункта меню «Extras -> LSynth -> Add Command…». Найдите команду PLI_ELECTRIC_NXT_CABLE_20CM (можно выбрать команду PLI_ELECTRIC_NXT_CABLE_35CM или PLI_ELECTRIC_NXT_CABLE_50CM, нам это абсолютно неважно) в диалоге «Add Synth Command».

Добавление команды LSynth

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

Результат добавления команды LSynth

Теперь расставляем ограничители NXT кабеля (NXT или EV3 – неважно, провода одинаковые). Автор программы LSynch рекомендует подкрасить ограничитель начала провода в зелёный цвет, ограничитель конца провода – в красный цвет, остальные ограничители — в любые другие цвета. Мы так и сделаем. Проследите также, чтобы ограничители стояли между комментариями SYNTH SHOW и SYNTH END. И учтите, что провод пойдёт через них в том же порядке, в котором они стоят в области 4.

Прокладка ограничителей LSynth для создания провода в MLCad

Когда ограничители расставлены, обязательно сохраните проект (после запуска программы LSynth отмена работать не будет) и запустите программу LSynth, вызвав пункт меню «Extras -> LSynth -> Run LSynth». После того как программа отработает у вас появится провод.

Провод, созданный программой LSynth в MLCad

Теперь давайте разберёмся, что сделала программа LSynth, см. область 4. Ограничители стали невидимыми, добавились комментарии, в том числе комментарии «SYNTH SYNTHESIZED BEGIN» и «SYNTH SYNTHESIZED END», между которыми теперь стоит большое количество деталей «~LSynth Electric Mindstorms NXT Cable Segment», из которых, собственно, провод и состоит.

Я рекомендую вам сразу покрасить все детали, из которых состоит провод, в чёрный цвет (хоть провод и выглядит чёрным в программе MLCad, в программе LPub он будет белым!). Все одинаковые детали можно выбрать следующим образом: выделите одну из деталей, из которых состоит провод, и вызовите пункт меню «Edit -> Select -> Same Type».

Если вам не понравилось, как вы проложили провод, вы можете удалить все появившиеся детали «~LSynth Electric Mindstorms NXT Cable Segment» вместе с комментариями «SYNTH SYNTHESIZED BEGIN» и «SYNTH SYNTHESIZED END», сделать ограничители опять видимымы (пункт контекстного меню «Visibility -> Unhide»), подвигать, покрутить их, добавить новые и запустить программу LSynth ещё раз. И так, пока не добьётесь нужного результата.

Итог использования программ MLCad и LSynth

На этом мы заканчиваем знакомство с программами MLCad и LSynth. Приведённых здесь рецептов, думаю, хватит для создания моделей любой сложности. В следующей статье мы рассмотрим, как сделать полноценную инструкцию в стиле LEGO с помощью программы LPub. Все вопросы по программам MLCad и LSynth можете оставлять в комментариях к этой статье.

If your goal is to build a LEGO set that consists of thousands of elements, you need to start by planning it out with the best LEGO design software available. By using the software featured in this article, you’ll learn to think creatively and build without using architectural parts.

Lego design software will be particularly fascinating to kids of all ages.

Top 5 LEGO Design Software

  1. LeoCAD —

    CAD program

  2. LEGO Digital Designer —

    Official LEGO tool

  3. BrickLink Studio —

    Thousands of LEGO parts

  4. LDraw —

    Rendering tools

  5. Mecabricks —

    Works online

When choosing software for this post, I’ve looked at the simplicity of their UI, the number of pieces in their libraries, and the availability of features that allow you to zoom, pan, and rotate the workspace. Another aspect I considered is how often the software receives updates.

If you’re a true fan of these blocks, you may use Adobe Illustrator with its shape tools that will help you create a version of yourself or your friend as a LEGO Super Hero in several simple steps. 7-Days free trial will be enough to create your own LEGO toy.

1. LeoCAD — Our Choice

  • Simple drag-and-drop method
  • It unlimits your model
  • Cross-platform
  • None

Verdict: Using LeoCAD, you can make custom LEGO buildings and creations. You can also create your own unique patterns for building with this software program. It allows users to create detailed and complex creations.

You can learn how to build a total of eight different structures with this free CAD software. These structures include the Star Wars, My Little Pony, The Joker, and others. You can also learn how to build a total of six boats, five sets of bridges, three toy trucks, two treadmills, one jet plane, and one glider.

leocad lego design software interface


2. LEGO Digital Designer

  • Unlimited parts and colors
  • On-screen commands
  • Great for beginners
  • No active support

Verdict: LEGO Digital Designer can be used to create model building sets and other Lego toys. This freeware can be used by different operating systems. It includes unlimited parts and colors, so you can build various creation.

It includes on-screen commands if you need some hints. The program is perfect for beginners. If you need to learn your kids basic video production you can use video editing software for kids.

lego digital designer lego design software interface


3. BrickLink Studio

  • Awesome parts library
  • Direct connection to Bricklink
  • Shapes option
  • Limited colors

Verdict: BrickLink Studio combining their knowledge with technology to create model homes. It will not only teach kids how to build bricks for custom model homes but also help them learn how to use the innovative technology. There are several options for building in a BrickLink Studio, depending on your skills, styles, and budgets.

BrickLink Studio comes complete with instruction manuals, making it easy to start right away. It comes with tools similar to features in the free web design software that allows you to choose from a wide variety of styles, themes, and configurations to make your project unique. The software even allows you to print your model out and paper-craft it yourself, if you wish.

bricklink studio lego design software interface


4. LDraw

  • You can render photorealistic images
  • Animations tools
  • Over fifty thousand parts
  • Bugs

LDraw

Verdict: If you’re interested in practicing how to build with LEGO online, you may try LDraw. It has a lot of features that are helpful for building and other artistic endeavors, it’s free and easy to download. Best of all, it’s cross-platform so it works well on both Windows and Mac.

The greatest thing about LDraw is that it will allow you to learn how to build virtually anything. If you’re wanting to learn how to build animals, cars, or buildings, there are several videos online that will teach you how to do that with ease.

ldraw lego design software interface


5. Mecabricks

  • For any device
  • Rendering capabilities
  • Includes some of the newest LEGO moulds
  • A bit complicated interface

Mecabricks

Verdict: One of the best parts of using Mecabricks is that you can create amazing creations for your children by combining the pieces of Lego that you have purchased with the brick building techniques included in the program. Using this LEGO design software makes it easy to create challenging and imaginative building competitions that include all of the participants or the small group of kids.

The software allows you to see the finished product in advance so you can make sure everything matches and then eliminate those that don’t. You can even save and name individual bricks so that they can be used later on for other building competitions. It also includes instructions and ideas for building a fun car with the Mecabricks blocks, such as a BatMobile or an amazing aircraft.

mecabricks lego design software interface

Eva Williams

Writer & Gear Reviewer

Eva Williams is a talented family photographer and software expert who is in charge of mobile software and apps testing and overviewing in the FixThePhoto team. Eva earned her Bachelor’s degree in Visual Arts from NYU and work 5+ years assisting some of the city’s popular wedding photographers. She doesn’t trust Google search results and always tests everything herself, especially, much-hyped programs and apps.

Read Eva’s full bio

Tetiana Kostylieva

Photo & Video Insights Blogger

Tetiana Kostylieva is the content creator, who takes photos and videos for almost all FixThePhoto blog articles. Her career started in 2013 as a caricature artist at events. Now, she leads our editorial team, testing new ideas and ensuring the content is helpful and engaging. She likes vintage cameras and, in all articles, she always compares them with modern ones showing that it isn’t obligatory to invest in brand-new equipment to produce amazing results.

Read Tetiana’s full bio

An LDraw™ editor for LEGO® style digital building instructions.

View the Project on GitHub

View the Project on Sourceforge

View the Project on Open Build Service

 

LPub3D is an Open Source WYSIWYG editing application for creating LEGO® style digital building instructions.

LPub3D output include instruction document, document pages, part list and export content.

PDF Portable Document Format instruction document
PNG Portable Network Graphics images, instruction document pages and POV-Ray rendered images
JPEG Joint Photographic Experts Group instruction document pages
BMP Bitmap instruction document pages
HTML Hypertext Markup Language sortable graphic part list with element ID and online part lookup
BrickLink XML Extensible Markup Language BrickLink part list
CSV Comma-Separated Values plain text part list
POV Persistence of Vision Ray Tracer (POV-Ray) photo-realistic scene files
OBJ Wavefront Object files
STL Stereolithography object files
3DS Autodesk 3DStudio Max object files
DAE COLLAborative Design Activity object files

LPub3D uses the LDraw standard and LEGO® Geometrical Equivalent Objects (LGEO) photo-realistic part libraries and reads the LDraw DAT, LDR and MPD model file formats. The LDraw libraries are not required to be preinstalled. Archive (.zip) library files for both official and unofficial LDraw parts are bundled with LPub3D. Follow the linked image below to acquire the LGEO photo-realistic part library.

LPub3D Blender integration uses the LPub3D Blender LDraw Addon which imports LDraw™ models into Blender, exports models from Blender and renders imported models using the full range of Blender capabilities. LPub3D also provides “native” 3DViewer, POV scene file generation, including POV-Ray PNG image rendering using integrated modules based on LeoCAD and LDView. Additionally, LDView, LDGLite and POV-Ray 3rd-party stand-alone LDraw model renderers are bundled in each LPub3D distribution. All stand-alone renderers are console applications custom adapted to LPub3D for tight integration, optimum configurability and robust performance.

LeoCAD LPub3D “native” renderer and 3D Viewer — performant, “true fade” rendering
Blender Best in class, 3D computer graphics toolset for high quality photo-realistic renderings
LDGLite fast image rendering ideal for proofing
LDView high quality rendering plus POV scene file generation
POV-Ray ray tracing renderer — photo-realistic, feature rich rendering

Screenshots

Page

Compatibility

LPub3D runs on Debian, Red Hat and Arch derived Linux distros, macOS and Windows Operating Systems.
LPub3D is also available as a Linux ‘no-install’, multi-platform AppImage and Snap or Flatpak ‘sandbox’ deployment. Builds are available for both x86 instruction set (32-bit and 64-bit) and Advanced RISC Machines (ARM) micorprocessors.

Downloads

Distributions

       
   
       
  • Click icon above to download and/or install distribution release.
  • ARM builds are available for the following distributions:
    • macOS 14 (arm64)
    • AppImage Ubuntu 18.04 (aarch64)
    • AlmaLinux 9 (aarch64)
    • CentOS 9 (aarch64)
    • Debian 12 (arm64)
    • Fedora 41 (aarch64)
    • Raspbian 12 (arm64)
    • openEuler 21.03 (aarch64)
    • openSUSE Leap 15.2 (aarch64)
    • Ubuntu 24.04 (arm64)

Verify Windows Distribution Hash using PowerShell

The following steps are using LPub3D Windows release hosted on GitHub.
These steps can be applied to any LPub3D release where a GPG signature file is available.

  • Get the hash file LPub3D-2.4.9.86.4133_20250319.exe.sha512
  • Open a PowerShell session
  • Add the package download path to $PkgUrl
  • Add the hash file sha512 hash to $PublishedHash
    $WebClient = [System.Net.WebClient]::new()
    $PkgUrl = 'https://github.com/trevorsandy/lpub3d/releases/download/continuous/LPub3D-2.4.9.86.4133_20250319.exe'
    $PublishedHash = 'F99BDD9CA0F4150F4DF136DE8BF3A421FB15D48F0624392EBD6CEC3144EEB2579448438E7EA5FE4F1A6F50CF0AF3366D57801A1569B135997247407B6049790C'
    $FileHash = Get-FileHash -Algorithm SHA512 -InputStream ($WebClient.OpenRead($PkgUrl))
    $FileHash.Hash -eq $PublishedHash
    
  • Cut and paste this code snippet into Powershell, a valid return value is True

Verify GPG Signature using Bash Unix Shell

The following steps are using LPub3D AppImage release hosted on GitHub.
These steps can be applied to any LPub3D release where a GPG signature file is available.

  • Get the GPG public key: pubring.auto
  • Get the release: LPub3D-2.4.9.86.4133_20250319-x86_64.AppImage
  • Get the hash file: LPub3D-2.4.9.86.4133_20250319-x86_64.AppImage.sha512
  • Get the GPG hash file signature: LPub3D-2.4.9.86.4133_20250319-x86_64.AppImage.sha512.sig
  • Ensure GPG is installed and configured: which gpg
  • Import the public key file into GPG: gpg --import pubring.auto
  • Verify the against its hash file: sha512sum -c LPub3D-2.4.9.86.4133_20250319-x86_64.AppImage.sha512
  • Verify the GPG hash file signature: gpg --verify LPub3D-2.4.9.86.4133_20250319-x86_64.AppImage.sha512.sig

Quick Links

  • Build and package LPub3D from source
  • Release notes
  • Change log (Deprecated — use Release notes)
  • Questions and discussion
  • Report an Issue or Request an Enhancement
  • Credits

License

Disclaimers

LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this application.
TENTE® is a construction game owned by Educa-Borrás SA which does not sponsor, authorize or endorse this application.
VEX IQ® is a trademarks or service mark of Innovation First International, Inc, which does not sponsor, authorize or endorse this application.

Documents

  • LPub3D Metacommands
  • LPub3D macOS Library Dependencies
  • LDView Help
  • LDGLite Readme
  • LPub3D-Trace (POV-Ray) Help

Tutorials

3rd-party tutorials:

  • Working with LPub by Jaco van der Molen
  • LPub3D par J.C Tchang (en français)

Resources

  • LPub3D meta commands UDL for Notepad++ (zip download)

Features and Enhancements

  • Automatic restart #790 (NEW!)
  • Load last opened page on load last opened file #795 (NEW!)
  • Expanded command editor toolbar #800 (NEW!)
  • Expanded visual editor toolbar and menu #799 (NEW!)
  • Cycle each page on Update dialog #798 (NEW!)
  • Show individual part instance in BOM and PLI #766
  • Enhanced Blender LDraw model render, import, and export integration #416
  • Apple silicon arm64 (M1/M2) builds #761
  • Support base64 encoded !DATA meta command #722
  • Display model STEP supports part lines #704
  • Enhanced STEP part fade and highlight behaviour #710
  • Model load status available from file menu action #698
  • Build modification — visual editor build modification actions #633
  • Reset viewer assembly display menu action #652 #652
  • Specify viewpoint latitude and longitude angles #654 #654
  • LPub command snippet system #602
  • Expand WhatsThis help to preferences, dialogs and actions — Ctrl+F1 #618
  • Add shortcut to Zoom Extents — Shift+X #470
  • Append page STEP placement options #491
  • Bill of Materials(BOM) STEP placement options #492
  • Configurable Theme colors #490
  • Dynamically generate fade STEPs and/or highlight STEP final model STEP #483
  • Enable LEGO Digital Designer and set inventory import #506
  • Execute fade, highlight, and preferred renderer locally #505
  • Executable verification with exported SHA-512 checksum file for GitHub builds #460
  • Make generate pointer arrow optional when converting STEP to CALLOUT #501
  • Native renderer official, unofficial LDraw parts load/lookup order option #509
  • Set project start page and start STEP number for multi-document layouts #477
  • Build modification — BUFEXCHG replacement, modify part settings with ease #411
  • Double-click editor line, time-line item, part or submodel for 3D preview #441
  • Substitute part dialogue with part preview #280
  • Manage camera properties, including target, rotation and position, from 3DViewer #344
  • Streamline formatting and command reuse with Include File meta command #396
  • Add point, sun or area light to Blender rendering #413
  • Render wire, raised and rounded stud logo #425
  • Add bring-to-front and send-to-back for page items #244
  • Open model file with external program #420
  • Insert display model between STEPs #415
  • Colour picker and part lookup #427
  • Set PDF, PNG, JPG and BMP pixel ratio for output resolution #333
  • Center justify MULTI_STEP and CALLOUT STEPs #333
  • Page items bring to front and send to back #244
  • Add, remove, edit substitute part from PLI context menu #244
  • Automatically load LDCad generated flex parts #272
  • Configurable LEGO style CSI, PLI and BOM annotation formatting #186 #187
  • STEP and range dividers with configurable pointer arrows #185
  • Render configurable POV-Ray generated images #207
  • Continuous submodel STEP numbering #179
  • Generate Sortable HTML part list with element ID #196
  • OBJ, 3DS, STL, DAE, CSV and BrickLink XML exports #188 #195
  • Show submodel image at first STEP
  • Pre-bundled LSynth bendable part elements. Add to archive and, optionally, extract to LDraw folder
  • Pre-bundled and fully integrated LDraw part libraries for LEGO, TENTE and VEXIQ models
  • Continuous page processing — step through your model with one click
  • Go Dark — Dark mode theme, switch on the fly
  • Multi-segment page, divider and callout pointers
  • Enhanced “True” previous STEP part fade
  • Current STEP SILHOUETTE part highlight
  • Scene horizontal and vertical ruler and axis guides
  • Console commands — enabling “Batch” mode
  • “Headless” mode on Linux, macOS and Windows platforms
  • “Native” POV file generation powered by LDView
  • Integrated 3D viewer and image renderer powered by LeoCAD
  • Integrated and custom adapted image renderers (LDGlite, LDView and LPub3D-Trace (POV-Ray)) — no more additional installs
  • Renderer config files accessible from the LPub3D user interface
  • Custom LDraw library LDConfig (part material) file can be passed to LDGlite and LDView renderers
  • Set ROTSTEP (STEP rotation) meta using 3D Viewer
  • Fade previous STEP’s parts (Fade step)
  • Unlimited part list (PLI) annotations
  • Split the BOM (divide parts over number of BOM occurrences)
  • Sort PLI/BOM by part size, colour and category
  • “Go To” page navigation and submodel display via drop-down dialogue
  • Automatically generate formatted cover pages
  • POV-Ray high-quality rendered instructions
  • LGEO high-quality rendering library support and auto detection
  • Customizable content page header and footer
  • Text and picture (e.g. logo) front and back page attributes
  • Print/Export preview
  • PDF, PNG, JPG and BMP export formats
  • Standard and custom page size options
  • On demand, software and LDraw archive library updates
  • All features from legacy LPub — enhanced and stabilized
  • Linux, Linux AppImage, macOS and Microsoft Windows distributions
  • Windows automated installer and portable distributions available
  • Full capabilities to build and package from source or Cloud Continuous Integration Service
  • Automated build and deploy from Cloud CI Service: GitHub Actions and Open Build Service
  • Docker container builds using Docker Compose available for Arch, Ubuntu and Fedora Linux distros

Portions of LPub3D are based on LPUB© 2007-2009 Kevin Clague, LeoCAD© 2025 Leonardo Zide, LDView© 2025 Travis Cobbs & Peter Bartfai and additional third party components. See Credits for full details on contributing content.

Copyright (c) 2015 — 2025 by Trevor SANDY

Программа Lego Digital Designer – виртуальный конструктор, за счёт использования которого можно создавать трёхмерные модели Lego. Утилита имеет широкий функционал, массу рабочих инструментов и три режима работы, которые позволяют воплощать в жизнь самые разные задумки в стиле Лего. Программное обеспечение дает возможность сохранять готовые работы на компьютере, а также просматривать модели других пользователей. Программа проста в управлении, поэтому справиться с ней сможет даже ребёнок.

Содержание

  • 1 Назначение программы
  • 2 Функциональные возможности Lego Digital Designer
  • 3 Как пользоваться программой
  • 4 Преимущества утилиты
  • 5 Недостатки
  • 6 Итоги
  • 7 Полезное видео

Назначение программы

Лего Диджитал Дизайнер – ПО, предназначенное для создания моделей и проектов, напоминающих кубики Лего. Она даёт пользователям следующие возможности:

  • Начинать разработку проектов с нуля.
  • Работа с готовыми моделями и основами, которые представлены в галерее на официальном сайте.
  • Загрузка собственных моделей на официальный сайт Lego Digital Designer за счёт графического 3D-редактора.
  • Редактировать уже сохранённые на компьютере или в архиве проги модели.

Программа интуитивно понятна, поэтому нередко её используют для моделирования дети школьного возраста. Утилита имеет качественную графику, она предлагает пользователям на выбор большое количество инструментов и цветовых оформлений для разработки своей, индивидуальной Lego Digital Designer модели. Пользователи здесь могут работать как со своими проектами, так и с чужими. Черпать идеи конструкций для моделирования можно на официальном сайте разработчиков. Здесь же можно и скачать понравившийся шаблон для работы бесплатно.

фото-1

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

Также интересно почитать: LEOCAD

Функциональные возможности Lego Digital Designer

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

  • Digital Designer. Это базовый режим, который включает самые необходимые инструменты для работы. Он подойдёт для тех, кто хочет создавать модели по готовым инструкциям.
  • Mindstorms. Это более продвинутый режим, который позволяет работать с деталями и инструментами из одноименной серии.
  • Digital Designer Extended. Самый продвинутый режим, который подходит для пользователей, имеющих немалый опыт в моделировании Лего-конструкций. Здесь есть инструменты, детали и цветовое оформление, которых не встретить в базовом режиме работы.

Вот, что о них говорят сами разработчики:

фото-1

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

Также интересно почитать: MeshMixer

Как пользоваться программой

При открытии программы Lego Designer пользователь увидит:

  1. Панель управления. Она будет располагаться справа;
  2. Магазин с инструментами, шаблонами и деталями – Bricks, Template, Group находится слева;
  3. Главную рабочую зону с макетом модели;
  4. В верхней части окна утилиты можно найти специальную панель инструментов, с помощью которой можно переключаться между разными опциями, помогающими вращать, передвигать и переворачивать элементы будущей виртуальной модели.

фото-1

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

фото-1

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

фото-1

Чтобы вращать особые детали, которые уже находятся в составе сборной конструкции, но все ещё считаются свободными для проведения всевозможных работ, можно пользоваться режимом Higletool. Когда модель будет полностью собрана, пользователь может нажать на кнопку Building Guide Mode и увидеть, как виртуальный проект создавался с самого начала. Для этого Lego Digital Designer сначала разберёт имеющуюся модель, а затем соберёт её в ускоренной режиме при помощи режима анимации. Анимационный процесс сборки можно записать и сделать из него оригинальную презентацию.

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

Сохранять готовые конструкции можно в формате LXF. С готовых работ пользователи могут сделать скриншот в формате PNG. Но стоит учитывать, что выбор фона, на котором можно заскринить модель, ограничен. Если пользователю хочется сделать необычный и оригинальный скриншот, то фон можно дорисовать самостоятельно, используя сторонние программы для графического дизайна. Для создания скриншота нужно зайти в раздел View Mode. Здесь же пользователь сможет поменять фон конструкции. При выборе цветовой подложки программа издаёт характерный звук. Его легко можно отключить в этом же разделе меню.

фото-1

Преимущества утилиты

Lego Digital Designer – качественная и продуманная до мелочей программа для виртуального моделирования, которая имеет немало преимуществ:

  • Широкий выбор инструментов и деталей для работы. Это даёт возможность создавать конструкции разного уровня сложности.
  • Качественная прорисованная графика.
  • Широкий выбор 3D-объектов для моделирования, используя которые можно создавать собственный виртуальный проект.
  • Наличие готовых основ и шаблонов для пользователей, которые столкнулись с 3D-моделированием впервые.
  • Группировка всех деталей по цвету и категориям, что очень удобно в процессе конструирования модели.
  • Широкий выбор цветовых решений. Пользователи могут окрашивать детали в любые цвета.
  • Программа занимает мало места на компьютере, скачать её можно с официального сайта разработчиков бесплатно.
  • Lego Digital Designer имеет интуитивно понятный интерфейс, поэтому справиться с утилитой смогут даже дети.
  • Готовую модель можно детально рассматривать за счёт функции приближения и отдаления. Эта возможность помогает выявить наличие ошибок в конструкции.
  • Пользователи могут менять фон, на котором располагается конструкция, на более подходящий.
  • Лего программа, которая оснащена полезной опцией Building Guide Mode, которая позволяет увидеть создание готовой модели поэтапно с самого начала, но в более ускоренной режиме. Здесь же пользователь может сделать запись в виде презентации.
  • Всё проекты можно сохранять в галерее в формате LXF.

Также интересно почитать: 3DRESHAPER

Недостатки

Несмотря на большое количество плюсов, утилита Лего Диджитал имеет и минусы:

  • Иногда программа может вылетать.
  • Цветовая гамма деталей весьма специфична.
  • Проектирование требует от человека наличия навыков точности.
  • Некоторые важные детали в программе могут отсутствовать.

Lego Digital Designer редко, но все-таки может вылетать и тормозить. Здесь особое значение также играет само устройство, на котором работает утилита. На устарелых компьютерах Lego Digital Designer может работать с ошибками.

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

Итоги

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

Полезное видео

Видео обзор программы и туториал по ее применению:

LEGO® building is a timeless and beloved pastime of children and adults alike. For those looking to take their design skills to the next level, using the best Lego® design software can be extremely beneficial.

This type of software allows users to create intricate designs more quickly and easily than ever before while still offering the same creative freedom that Legos are known for.

From 3D modeling tools to virtual builds, there are plenty of ways to make your Lego® creations come alive in new and exciting ways. In this article, we’ll explore some of the top Lego® design software programs on the market today so you can choose one that fits your needs perfectly!

List of Best LEGO® Design Software

1. Stud.io:

For serious builders looking for advanced features, Stud.io is a great choice as it offers unlimited access to official Lego® parts, high-resolution rendering capabilities, and a host of other features to help you create the perfect design.

2. Lego Digital Designer (LDD)

This free software from the LEGO® company itself is one of the most popular and widely used options for designing with LEGO. It provides users with an intuitive 3D interface where they can drag-and-drop pieces to build their creations, as well as access a library of parts to choose from. As it’s made by the LEGO® team, there are plenty of resources available to help get started.

3. LEGO Worlds

This program takes traditional building blocks and combines them with gaming elements in order to create a virtual world that you can explore while constructing your own creations. It includes an array of tools and features, such as terrain manipulation, creature customization, and more.

4. BrickScout

This web-based program is perfect for those who want to design and share their LEGO® projects online. It has an extensive library of parts, tools for building 3D models, and the ability to collaborate with other users.

5. Mecabricks

Mecabricks is a powerful yet easy-to-use tool that allows you to create detailed 3D models from scratch or upload existing ones for further refinement. It also includes an array of tutorials and resources to help get started quickly.

6. BrickLink Studio:

If you’re looking to create custom LEGO® models, this web-based program provides a vast selection of parts and tools to make it happen. It also includes features such as collision detection, lighting effects, and an online marketplace for easy sharing.

7. LDraw

This open-source software is great for creating virtual designs using LEGO® pieces that can then be 3D printed or rendered into photo-realistic images. It’s quite versatile, offering plenty of options for both novice and experienced designers alike.

8. BLEDX

For those who want to view their creations in real life without actually building them first, BLEDX is an excellent option. It enables users to generate instructions and even order pieces directly from the software to make their models become a reality.

9. BrickSmith

This Mac OSX program offers users a friendly interface, as well as an extensive selection of LEGO® parts and tools for designing detailed 3D models. It also includes options for printing out building instructions in both 2D and 3d formats.

10. MINDSTORMS EV3 Software

For users looking to add robotics capabilities to their LEGO® designs, this powerful software is a perfect choice. It enables you to create complex programs for controlling robotic creations using drag-and-drop interfaces and visual programming blocks.

11. LeoCAD

LeoCAD is another open-source CAD program for creating virtual LEGO® models. It’s user friendly, has a large library of over 10,000 different bricks and parts, and supports multiple platforms, including Windows, macOS, and Linux.

12. SR 3D Builder

This software is one of the most advanced LEGO® PC CAD software programs that exist. SR 3D Builder allows users to construct their models using a wide range of tools and pieces. One of its unique features is the ability to animate your models.

13. LEGO® Tower

This mobile application takes the LEGO® building experience to a whole new level. In this game, users can build and operate their own LEGO® Tower. It’s a fun, creative, and engaging way to enjoy LEGO® building in a digital environment.

14. Blueprint

This app is designed to provide step-by-step instructions for building custom LEGO® sets. It’s perfect for those who enjoy building but need a little guidance to bring their designs to life.

15. Brickr

Brickr allows users to render 3D LEGO® models in their browser. It’s easy to use and requires no installation, which makes it great for casual builders or those on the go.

Let Belle-Ve Bricks Design a Custom LEGO Model for You

Are you a business looking to make a lasting impression? Or perhaps you’re in search of a unique gift that stands out from the crowd? Look no further! At Belle-Ve Bricks, we specialize in creating custom LEGO® models that bring your vision to life.

Our experienced design team is passionate about crafting LEGO® models that truly resonate with your brand or personal taste. Whether it’s a logo, a corporate gift, or a one-of-a-kind event souvenir, we have the expertise to transform your ideas into a tangible, memorable LEGO® masterpiece.

Ready to take your brand to the next level or give a gift that truly wows? Contact us today to start the conversation about your custom LEGO® model. Let’s build something amazing together!

More Info

Is LEGO® design software free?

Some LEGO® design software, like LEGO® Digital Designer and LeoCAD, is indeed free. However, other software may come at a cost or offer paid versions with more features. Always check the details of the software you’re interested in.

Can I share my LEGO® designs online?

Yes! Most LEGO® design software allows you to share your designs online. Some even have dedicated platforms for sharing and collaborating with other LEGO® enthusiasts.

Can I use LEGO® design software to create instructions for my designs?

Absolutely. Many LEGO® design software options offer the capability to generate step-by-step instructions for your designs. This can be useful if you want to share your design or recreate it later.

What is the best LEGO® design software for beginners?

LEGO® Digital Designer is a great starting point for beginners, as it’s user-friendly and offers plenty of resources to help you get started. However, the “best” software can vary depending on personal preferences and specific needs.

Can I use LEGO® design software on my mobile device?

Yes, there are several LEGO® design apps available for mobile devices. For example, LEGO® Tower is a mobile app that allows you to build and operate your own LEGO® Tower.

Conclusion

Whether you’re a novice builder or a seasoned LEGO® architect, there’s a LEGO® design software that fits your needs. From creating complex virtual designs and 3D models to crafting intricate robotic creations, these programs offer an enhanced LEGO® building experience.

With the multitude of options available, finding one that aligns with your requirements and interests is easier than ever. Happy building!

<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="large" data-theme="dark" data-type="HORIZONTAL" data-vanity="ferdi-vol" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://www.linkedin.com/in/%E2%9C%85-ferdi-vol-corporate-gifts/?trk=profile-badge"></a></div>
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
  /**
  * Renders all unrendred LinkedIn Badges on the page
  */
  window.LIRenderAll = function () {
    var CALLBACK_NAME     = 'LIBadgeCallback', //Must match callback on helpers.js
        BADGE_NAMES       = '.LI-profile-badge, .LI-entity-badge',
        // TODO -- tracking param for other badge types
        TRACKING_PARAM    = 'profile-badge',
        responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
        expectedResponses = 0, //Keeps track of number of responses to expect
        scripts           = [ ], //Keeps track of scripts added for proper cleanup when finished
        childScripts      = {}, //Keeps track of child scripts to render
        badges            = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));

    var i, len, badge, rendered;
    for (i = 0, len = badges.length;  i < len; i++) {
      badge    = badges[i];
      rendered =  badge.getAttribute('data-rendered');
      if (!rendered) {
        expectedResponses++;
        badge.setAttribute('data-rendered', true);
        renderBadge(badge);
      }
    }

    function isCNDomain() {
      if (typeof window !== "undefined") {
        var hostName = window.location && window.location.hostname ||  '';
        return (/linkedin(-ei)?.cn$/).test(hostName);
      }

      return false;
    }

    function generateUrl(isEI) {
      var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
      if (isCNDomain()) {
        return domainPrefix + ".cn/";
      }

      return domainPrefix + ".com/";
    }

    function getBadgeKeyQueryParams(badge) {
      return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
        return attr.name.lastIndexOf('data-key-', 0) !== -1;
      }).map(function (attr) {
        // Most browsers automatically lowercase the attribute name when its being read
        // We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
        return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
      });
    }

    /*
    * Renders a single badge on the page
    * @param badge: div element of badge to render
    */
    function renderBadge(badge) {
      var size       = badge.getAttribute('data-size'),
          locale     = badge.getAttribute('data-locale'),
          type       = badge.getAttribute('data-type'),
          theme      = badge.getAttribute('data-theme'),
          vanity     = badge.getAttribute('data-vanity'),
          version    = badge.getAttribute('data-version'),
          isEI       = badge.hasAttribute('data-ei'),
          entity     = badge.getAttribute('data-entity'),
          isCreatePage = badge.hasAttribute('data-iscreate'),
          uid        = Math.round(1000000 * Math.random()),
          baseUrl = generateUrl(isEI),
          queryParams = [
            'locale=' + encodeURIComponent(locale),
            'badgetype=' + encodeURIComponent(type),
            'badgetheme=' + encodeURIComponent(theme),
            'uid=' + encodeURIComponent(uid),
            'version=' + encodeURIComponent(version)
          ],
          url;

      if (version === 'v2') {
        baseUrl += 'view';
        queryParams.push('badgesize=' + encodeURIComponent(size));
        queryParams.push('entity=' + encodeURIComponent(entity));
        queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
      } else {
        baseUrl += 'profile';
        queryParams.push('maxsize=' + encodeURIComponent(size));
        queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
        queryParams.push('vanityname=' + encodeURIComponent(vanity));
      }

      if (isCreatePage) {
        queryParams.push('fromCreate=true');
      }

      url = baseUrl + '?' + queryParams.join('&');
      badge.setAttribute('data-uid' , uid);
      jsonp(url); //Calls responseHandler when done
    }

    /**
    * Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
    * @param badgeHtml: String representing contents of the badge
    * @param badgeUid: UID of the badge to target
    **/
    function responseHandler(badgeHtml, badgeUid) {
      responsesReceived ++;

      var i, badge, uid, isCreate;
      var defaultWidth = 330 // max possible width
      var defaultHeight = 300 // max possible height

      for (i = 0, len = badges.length; i < len; i++) {
        badge = badges[i];
        // isCreate needed to prevent reloading artdeco script tag
        isCreate = badge.getAttribute('data-iscreate');
        uid   = parseInt(badge.getAttribute('data-uid'), 10);
        if (uid === badgeUid) {
          var badgeMarkup = `<body>${badgeHtml}</body>`
          var iframe = document.createElement('iframe');
          iframe.onload = function() {
            var iframeBody = iframe.contentWindow.document.body;
            // 5 px buffer to avoid the badge border being cut off.
            iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
            iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
          };
          iframe.setAttribute('frameBorder', '0');
          iframe.style.display = 'block';
          badge.appendChild(iframe);
          iframe.contentWindow.document.open();
          iframe.contentWindow.document.write(badgeMarkup);
          iframe.contentWindow.document.close();
          replaceScriptTags(badge, isCreate);
        }
      }
      tryClean();
    }

  // These functions are needed because badge markup is added via innerHtml property which does not run script tags
  function replaceScriptTags(node, isCreate) {
    if (shouldReplaceNode(node, isCreate)) {
      node.parentNode.replaceChild(cloneScriptNode(node), node);
      childScripts[node.src] = true;
    } else {
      var i = 0,
          children = node.childNodes;
      while (i < children.length) {
        replaceScriptTags(children[i++], isCreate);
      }
    }
    return node;
  }

  function shouldReplaceNode(node, isCreate) {
    return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
  }

  function isScriptNode(node) {
    return node.tagName === 'SCRIPT';
  }

  function cloneScriptNode(node){
    var script  = document.createElement("script");
    for( var i = node.attributes.length-1; i >= 0; i-- ) {
      script.setAttribute( node.attributes[i].name, node.attributes[i].value );
    }
    return script;
  }

    // Gets all incoming responses
    window[CALLBACK_NAME] = responseHandler;

    /**
    * Tries to clean added tags
    **/
    function tryClean() {
      //Clean up after all requests are done..
      //Accounts for people including script more than once
      var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
      if (done) {
        delete window[CALLBACK_NAME];

        // remove all script tags
        scripts.map(function(script){
          document.body.removeChild(script);
        });

      }
    }

    /*
    * Makes Jsonp request, responses handles by CALLBACK_NAME
    * @param url String: url of server to make request to
    */
    function jsonp(url) {
      var script = document.createElement('script');
      script.src = url;
      scripts.push(script);
      document.body.appendChild(script);
    }
  };

  if (document.readyState === 'complete') {
    window.LIRenderAll();
  } else {
    window.addEventListener('load', window.LIRenderAll, false);
  }

})(window);

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Амитриптилин инструкция по применению в таблетках отзывы людей
  • Слизнеед инструкция по применению отзывы когда обрабатывать
  • Техника пустой стул в психологии инструкция по применению
  • Лактонорм капсулы инструкция по применению в гинекологии отзывы
  • Кошачий коготок арт лайф инструкция по применению