Как сделать пошаговую инструкцию LEGO (создание инструкции в LPub)?
В первой статье мы научились создавать виртуальную модель с помощью программ MLCad и LSynth. В этой второй статье мы рассмотрим, как создать полноценную пошаговую инструкцию по сборке робота LEGO Mindstorms Education EV3 с помощью программы LPub.
Первая статья «Как сделать пошаговую инструкцию LEGO (создание модели в MLCad + LSynth)?» описывает, как установить программы MLCad, LSynth и LPub и как создать вигруальную модель вашего робота в программах MLCad и LSynth.
Подготовка проекта к публикации в LPub
Публикация готового проекта или, другими словами создание инструкции, делается с помощью программы LPub. На выходе у вас будет файл PDF или набор картинок оформленных в стиле инструкций LEGO. Посмотрим, как работать в программе LPub. Для примера я сделал простой проект со средним мотором, модулем EV3, проводом, созданным в программе LSynth, и с подпроектом.
Запустите LPub и откройте ваш проект. После открытия вы сразу видите первую страницу будущей инструкции с изображением первого шага.
Сразу разберёмся с интерфейсом программы. В основном пространстве окна программы отображается лист с текущим шагом будущей инструкции. Справа вы видите файл проекта в текстовом виде с подсветкой разными цветами. В этом текстовом редакторе можно менять проект и после этого, чтобы увидеть сделанные изменения в инструкции нужно нажимать кнопку «Redraw» (кнопка с закрученной стрелкой над текстом проекта - ).
Чтобы перемещаться между страницами, щёлкайте по жёлтым стрелочкам или вбивайте номер страницы в текстовом поле между стрелками «1 of 6», где вместо единицы вводите нужную страницу.
Первое, что нужно сделать, при создании инструкции, - это задать параметры страницы. Окно настройки параметров страницы вызывается из меню «Configuration -> Page Setup». Чтобы задать страницу размером A4 в портретном режиме, указываем размеры 21x29,7 см, см. картинку. Чтобы повернуть страницу в альбомный режим – просто поменяйте эти значения местами. Поля (Margins) влияют на расстояние, на котором от края листа будут расположены номера шагов и страниц.
Здесь же можно указать будет ли рамка у страницы, какого она будет цвета, формы и ширины. А также задать цвет фона страницы. По умолчанию цвет фона устанавливается разным для разных уровней (Submodel Level Color). Под уровнями имеются ввиду используемые подпроекты. Ведь в каждом подпроекте могут использоваться другие подпроекты, это и есть уровни. Т.е. фон для основного проекта – будет белым, для подпроекта – жёлтым, для подпроекта подпроекта – розовым, и.т.д. На закладке «Page Number» можно задать параметры отображения номера страницы (местоположение, шрифт, размер, цвет и т.п.).
Кроме того в меню вы можете найти настройки финальной сборки («Configuration -> Assembly Setup»), списка деталей для шага («Configuration -> Parts List Setup») и списка деталей всего проекта («Configuration -> Bill of Materials Setup»), выносок («Configuration -> Callout Setup»), группы шагов («Configuration -> Step Group Setup») и настройки проекта («Configuration -> Project Setup»). В статье я не буду рассматривать эти настройки.
Также вы сможете настраивать каждый элемент отдельно от общих настроек. Например, чтобы настроить внешний вид списка деталей первого шага, щёлкните по пустому пространству списка деталей и вы увидите пункты меню для изменения фона («Change Parts List Background»), рамки («Change Parts List Border») и отступов («Change Parts List Margins»).
После подтверждения изменений LPub спросит вас, хотите ли вы изменить только текущий шаг, см. картинку. Если вы ответите «Yes», то изменения коснутся только текущего шага, иначе будут изменены общие настройки проекта.
Выравнивание элементов в LPub
Все элементы страницы можно двигать мышкой как вам угодно. Но, если вы хотите подровнять какой либо элемент, то здесь вы можете воспользоваться привязками. Например, чтобы подровнять список деталей, щёлкните по пустому пространству списка правой кнопкой мышки и выберите пункт меню «Move Parts List».
В диалоге «LPub: PLI Placement Dialog» в выпадающем списке слева сверху вы можете выбрать элемент к которому вы будете привязывать ваш список деталей (как видите, сейчас это номер страницы – Step Number). Также список деталей можно привязать к странице (Page), схеме сборки (Assem), номеру страницы (Step Group). Остальные кнопки обозначают местоположение относительно выбранного элемента.
Попробуем привязать список деталей к правому верхнему углу страницы. Для этого в списке выберите «Page» и щёлкните по кнопке «Top/Right» (Сверху/Справа), см. картинку. Нажмите «OK».
В следующем диалоге, если он появился, нажмите «Yes», если вы меняете только этот шаг или «No», если нужно изменить настройки всего проекта.
И как вы видите, список переместился в верхний правый угол страницы.
Создание группы шагов в LPub
В моём примере шаги 1 и 2 очень малы и могут поместиться на одну страницу. Сгруппировать шаги на одной странице очень просто. Щёлкните правой кнопкой мышки на модели и выберите пункт меню «Add Next Step».
После этого следующий шаг будет добавлен к текущему и вы увидите их друг под другом. При этом количество страниц стало меньше, это и понятно, ведь второй шаг теперь не занимает целую страницу.
В примере видно, что модель расположилась слишком близко к краю листа. Это получилось из-за того, что у нас слишком широкий список деталей первого шага, т.к. детали в нём расположены рядом. Чтобы изменить список деталей, щёлкните по нему левой кнопкой мышки и после этого потяните вниз за появившийся квадратный маркер. Как видите, список деталей после этого вытянулся вертикально, страница переформировалась и всё уместилось.
Таким образом, на страницу можно добавить любое количество шагов. Если какой либо шаг нужно убрать обратно из группы, щёлкните по нему правой кнопкой мышки и выберите пункт «Remove this Step».
Если листы вашего проекта ориентированы альбомно, то вам может понадобиться расположить шаги не друг под другом, а рядом. Чтобы это сделать, щёлкните по модели любого шага правой кнопкой мышки и выберите пункт меню «Display as Rows».
Отображение больших моделей в LPub
В моём тестовом проекте на второй странице модель не влезла на страницу, см. картинку. Обрезались правый и левый края. В данном случае, чтобы уместить всю модель на странице вы можете поменять ориентацию листа на альбомную или уменьшить масштаб, чтобы модель уместилась вся целиком. Но не всегда можно решить такую задачку так просто. Ведь в более мелком масштабе можно не разобрать, куда и как крепится деталь. Да и увеличивать и крутить лист не всегда получится, ведь модель может быть гигантской, которая не влезает ни по вертикали, ни по горизонтали.
В моём примере я хочу просто сдвинуть модель на листе влево, чтобы целиком отображался только мотор. Двигать модель по листу можно легко с помощью мышки.
Как видите, проблема налицо: модель сдвинулась, но осталась подрезанной. Давайте разберёмся, почему так происходит. Дело в том, что для формирования картинки с изображением модели используется программа LDView, которая всегда размещает модель по центру и обрезает края, которые не влезли. Картинки, заготавливаются автоматически и складываются в папку LPub\assem в той же папке, в которой находится файл проекта .ldr. После этого программа LPub просто подставляет картинки на лист. Чтобы картинки не подрезались, нужно выполнить следующую последовательность действий:
1. Откройте проект. Если проект открыт, то сохраните проект.
2. Увеличьте размер страницы, чтобы модель помещалась целиком, например, в 2 раза по ширине и в 2 раза по высоте.
3. После этого запустите создание PDF-файла (пункт меню «File -> Print to File»). При этом пересоздадутся все картинки модели.
4. Не закрывая LPub, скопируйте созданные картинки из папки LPub\assem в какую-нибудь временную папку.
5. Теперь закройте LPub без сохранения изменений.
6. Найдите нужные необрезанные картинки во временной папке, имена файлов должны быть следующими: filename_*_a_xxxx_yyy_DPI_*.png, где
filename – имя файла вашего ldr-файла;
* - множество нулей и единиц с подчёркиваниями;
a – номер шага;
xxxx – ширина страницы в дюймах умноженная на DPI;
yyy – значение DPI.
7. Переименуйте нужные файлы во временной папке, заменив xxxx на произведение ширины страницы в дюймах и значение DPI (в примере - 150) с отброшенной дробной частью. DPI (Dots Per Inch) – количество точек в дюйме, но в моём примере – это количество точек в сантиметре. Узнать или поменять эту величину можно в настройках: пункт меню «Configuration -> Project Setup». В примере ширина страницы 21 см, в результате получится так: 21/2,54*150=1240,157480314961. Отбрасываем дробную часть и получаем 1240.
8. Скопируйте готовые файлы из временной папки в папку LPub\assem и сделайте их доступными только для чтения (в эксплорере пункт контекстного меню «Свойства», в диалоге свойств файлов установите галочку «Только чтение» и закройте диалог, нажав «OK»).
9. Всё готово. Запустите LPub, откройте проект и проверьте результат.
Как видите, мотор и модуль EV3 отображаются теперь целиком. Позже, при формировании инструкции, непомещающиеся на листе части модели будут обрезаны. На счёт этого не стоит волноваться.
Если в дальнейшем, вам потребуется пересоздать картинку какого либо шага, то нужно будет снять атрибут «Только чтение» для такого файла и повторить процедуру. Для надёжности можно удалить такие файлы.
У данного способа, кроме неудобства есть ещё один недостаток, который вы заметите, листая страницы вашего проекта – это низкая скорость отрисовки таких изменённых страниц.
Описанный здесь способ использовался в последних шагах в инструкции по сборке робота Валли.
Отображение проводов в LPub
Переходим на третью страницу в тестовом примере и видим, что на ней нет проводов, а в списке деталей отобразилось две вилки.
Проводов не видно потому, что программа LPub не видит неофициальные детали, из которых провод состоит. Что ж, будем решать эту проблему. Сначала узнаём имя файла деталей, из которых состоит провод. Имя можно посмотреть в файле проекта, см. картинку.
Дальше находим этот файл в папке с деталями программы LSynth (по умолчанию – это папка C:\Users\Public\Documents\LDraw\Unofficial\LSynth) и копируем его в папку, в которой находится файл проекта .ldr. После этого перезапустите LPub. Как видите, провод появился.
Но вилки проводов так и остались в списке деталей и на третьей странице появились все детали, из которых состоит провод, см. картинку снизу.
Это нам совсем не подходит. Чтобы это исправить, нужно вручную в тексте проекта перед строками, относящимися к проводу, поставить строки
0 LPUB PLI BEGIN SUB 11145.dat 15
0 !LPUB PART BEGIN IGN
а в конце строки
0 !LPUB PART END
0 LPUB PLI END
При этом уберите лишние строки «0 LPUB PLI BEGIN SUB 4297187.dat 16» и «0 LPUB PLI END», которые были автоматически установлены программой LSynth. В общем-то, нужно проверить, что на один провод у вас одна строка «0 LPUB PLI BEGIN SUB …» в начале и одна строка «0 LPUB PLI END» в конце. При этом вилки, тоже должны попасть внутрь строк «0 !LPUB PART BEGIN IGN» и «0 !LPUB PART END».
Здесь строки «0 !LPUB PART BEGIN IGN» и «0 !LPUB PART END» сообщают программе LPub, что всё находящееся между ними нужно игнорировать при формировании перечня деталей. А строки «0 LPUB PLI BEGIN SUB 11145.dat 15» и «0 LPUB PLI END» сообщают, что всё, что находится между ними – это деталь 11145.dat, т.е. провод EV3 длиной 25см. Чтобы в списке деталей отображался нужный провод, пропишите в строке «0 LPUB PLI BEGIN SUB 11145.dat 15» имя файла с нужным вам проводом (имя файла можно узнать, например, в программе MLCad: имя подсвечивается в статусной строке, если навести мышку на деталь в области 3, см. «Интерфейс программы MLCad» в начале первой статьи). Для провода EV3 25см – это файл 11145.dat, 35см - 11146.dat, 50см - 11147.dat.
Ещё небольшое замечание по поводу цвета вилок. В примере я сделал их белыми (номер цвета 15), но вы можете для большей схожести с настоящими вилками сделать их полупрозрачными, выставив, например, цвет Glitter_Trans_Clear, номер цвета - 117. Т.е. для прозрачности вместо цифры 15, нужно поставить 117.
В результате у вас должно получиться примерно вот так:
0 LPUB PLI BEGIN SUB 11145.dat 15
0 !LPUB PART BEGIN IGN
1 15 127 -64 -216 -1 0 0 0 -1 0 0 0 1 933c01.dat
1 15 28 18 -150 1 0 0 0 -1 0 0 0 -1 933c01.dat
0 LPUB PLI BEGIN SUB 4297187.dat 16
0 SYNTH BEGIN PLI_ELECTRIC_NXT_CABLE_20CM 16
0 SYNTH SHOW
0 MLCAD HIDE 1 2 28 18 -151 1 0 0 0 0 -1 0 1 0 LS05.dat
0 MLCAD HIDE 1 14 42.492 -10.358 -192 -0.965926 -0.258819 0 -0.258819 0.965926 0 0 0 -1 LS05.dat
0 MLCAD HIDE 1 14 68.2 -47.416 -147 0 0 1 -1 0 0 0 -1 0 LS05.dat
0 MLCAD HIDE 1 14 82.765 -67.994 -85 -0.866025 -0.5 0 -0.5 0.866025 0 0 0 -1 LS05.dat
0 MLCAD HIDE 1 14 118.264 -92.564 -134 -0.965926 0 -0.258819 -0.258819 0 0.965926 0 1 0 LS05.dat
0 MLCAD HIDE 1 4 127 -64 -199 1 0 0 0 0 -1 0 1 0 LS05.dat
0 SYNTH SYNTHESIZED BEGIN
1 0 28 18 -151 0.9999 0.0575 -0 0 -0.0269 -1 0.0141 -4.0722 0.0066 LS12.dat
1 0 28.0507 17.9763 -154.59 0.9841 0.1327 -0.173 -0.1723 -0.0696 -0.9848 0.0435 -3.2756 0.0139 LS12.dat
1 0 28.1659 17.9159 -157.433 0.9497 0.1699 -0.3068 -0.305 -0.0983 -0.9517 0.071 -2.6959 0.0154 LS12.dat
...
1 0 126.76 -64.7843 -189.705 0.995 0.1733 -0.0879 -0.0942 0.5723 -0.9834 0.0325 -3.6441 -0.1586 LS12.dat
1 0 126.862 -64.4527 -191.805 0.9998 0.1472 0.0006 -0.0006 0.4936 -0.9981 0.0185 -7.9414 -0.062 LS12.dat
0 SYNTH SYNTHESIZED END
0 SYNTH END
0 !LPUB PART END
0 LPUB PLI END
После изменения текста проекта, перерисуйте страницы, щёлкнув по кнопке «Redraw» . После перерисовки вы можете удостовериться, что всё получилось.
Добавление выносок в LPub
Следующий шаг, который показывает сборку пропеллера и находится в подпроекте, слишком мал и его можно добавить в качестве выноски, чтобы не занимать целую страницу. Чтобы сделать выноску, щёлкните по пустому пространству страницы подпроекта правой кнопкой мышки и выберите пункт «Convert to Callout» (Конвертировать в выноску).
Как видите всё просто. Выноска добавилась, но расположение получилось не совсем удачное.
Чтобы это исправить, просто передвиньте в нужное место выноску, модель и стрелку. Вот что у меня получилось.
Чтобы убрать выноску, если вы передумали, щёлкните по пустой части выноски правой кнопкой мышки и выберите пункт меню «Unpack Calluot».
Борьба с игнорированием пустых шагов в LPub
По умолчанию LPub показывает только те шаги на которых добавляются детали. Но иногда бывает необходимо показать нашу модель с разных сторон. Чтобы заставить LPub показать шаг, на котором детали не добавляются нужно сделать запись в буфер и чтение из него. Для примера приведу часть проект, в котором всего три шага, причём третий шаг абсолютно такой же, как и второй, - это просто взгляд на модель с другой стороны.
1 15 -37 4 -38 1 0 0 0 1 0 0 0 1 32348.dat
1 1 -37 -16 -18 0 1 0 -1 0 0 0 0 1 6558.dat
0 ROTSTEP 45 -60 0 ABS
1 15 -17 -16 -18 0 0 -1 0 1 0 1 0 0 32348.dat
0 STEP
0 ROTSTEP 87.6316 7.11462 0 ABS
Для этого проекта программа LPub сделала две страницы для шагов 1 и 2, а 3-й шаг игнорируется. Чтобы заставить программу LPub показать третий шаг, добавляем в конце второго шага строку «0 BUFEXCHG A STORE» (запись в буфер A) и в третий шаг добавляем строку «0 BUFEXCHG A RETRIEVE» (чтение из буфера A). В результате у нас получится так:
1 15 -37 4 -38 1 0 0 0 1 0 0 0 1 32348.dat
1 1 -37 -16 -18 0 1 0 -1 0 0 0 0 1 6558.dat
0 ROTSTEP 45 -60 0 ABS
1 15 -17 -16 -18 0 0 -1 0 1 0 1 0 0 32348.dat
0 BUFEXCHG A STORE
0 STEP
0 BUFEXCHG A RETRIEVE
0 ROTSTEP 87.6316 7.11462 0 ABS
После изменения проекта перерисуйте страницы кнопкой «Redraw» и вы увидите, что страниц и шагов стало по 3.
Добавление страниц в LPub
LPub позволяет добавлять в инструкцию страницы с произвольным содержанием. Для добавления страниц воспользуйтесь пунктами меню «Edit -> Insert Page» (добавление страницы перед текущей), «Edit -> Append Page» (добавление после текущей), «Edit -> Insert Cover Page» (добавление обложки в начало), «Edit -> Append Cover Page» (добавление обложки в конец). Разница между обычной страницей и обложкой в том, что обложка может быть добавлена только в начало или в конец инструкции и на ней не будет проставляться номер страницы. На добавленную страницу можно добавлять картинки, текст и полный список деталей. Удалить такую страницу можно щёлкнув по меню «Edit -> Delete Page».
При добавлении нескольких страниц я столкнулся с одним неприятным глюком: одна страница добавляется нормально, но все следующие - нет. При этом в текст проекта добавляются строки «0 !LPUB INSERT PAGE». Лечится это следующим образом: установите перед каждой строкой «0 !LPUB INSERT PAGE» строку «0 STEP». Например, три пустые страницы будут выглядеть вот так:
0 STEP
0 !LPUB INSERT PAGE
0 STEP
0 !LPUB INSERT PAGE
0 STEP
0 !LPUB INSERT PAGE
После изменения проекта перерисуйте страницы кнопкой «Redraw» .
Добавление текста и произвольных картинок на страницы в LPub
Добавить произвольные картинки и текст очень просто. Для этого есть пункты меню «Edit -> Add Picture» (для добавления картинки) и «Edit -> Add» (для добавления текста). Добавленную картинку можно увеличивать, уменьшать и передвигать по странице. Текст тоже можно двигать по странице и, кроме того, можно поменять шрифт и цвет. Для удаления картинки или текста, щёлкните по ним правой кнопкой мышки и выберите пункт меню «Delete this Picture» или «Delete This Text».
Добавление полного списка деталей в LPub
В конце или в начале инструкции вы можете захотеть добавить список всех деталей, использованных для создания модели. Сделать это можно на любой странице щёлкнув по пункту меню «Add -> Bill of Materials». Вот результат вставки полного перечня деталей на страницу для нашего тестового проекта.
Теперь увеличим высоту списка деталей, чтобы он полностью поместился на странице.
Как разбить список деталей на несколько страниц в LPub?
Если ваша модель очень большая и деталей используется много, то полный список не поместится на одну страницу. LPub никак не решает эту проблему. В случае, если вам всё же нужно разнести список на несколько страниц, я предлагаю вам использовать следующий способ:
1. Вставьте на страницу список материалов.
2. Увеличьте высоту списка. Я рекомендую сделать высоту списка чуть меньше чем высота страницы, и чтобы список не закрывал номер страницы.
3. Увеличьте ширину страницы (пункт меню «Configuration -> Page Setup») так, чтобы весь список уместился на странице.
4. Экспортируйте проект как набор картинок PNG (пункт меню «File -> Export As… -> Export As PNG Images») во временную папку.
5. Найдите картинку со страницей со списком деталей и в любом графическом редакторе (например, Paint или GIMP) порежьте эту картинку по вертикали на несколько штук.
6. Верните размер страницы, удалите список материалов и вставьте заготовленные картинки, добавив для каждой картинки страницу.
Именно таким образом сделан полный список материалов для инструкции по сборке робота Валли.
Публикация проекта в LPub
Когда подготовленная инструкция вас полностью устраивает, можете сохранить её как PDF-файл. Делается это с помощью пункта меню «File -> Print to File». Кроме PDF вы можете экспортировать инструкцию как набор картинок png, jpeg или bmp с помощью группы пунктов меню «File -> Export As…». Картинки могут пригодиться, если вы хотите опубликовать инструкцию на своём сайте.
Итог работы с программами LDraw
И в заключении статьи хочется подвести краткий итог. Программы MLCad, LSynth и LPub вместе – это достаточно мощный инструмент для создания инструкций любой сложности, хотя и имеют ряд глюков и производят впечатление сыроватых продуктов. Например, программы LSynth и LPub не согласованы, и после работы программы LSynth приходится руками править файл проекта, чтобы провода в инструкции выглядели как надо. Но, пользуясь рекомендациями из этой статьи, вы сможете сделать красивую и подробную пошаговую инструкцию. Все вопросы по программам MLCad, LSynth и LPub оставляйте в комментариях. А всем кто очень сильно интересуется темой моделирования и создания инструкций, можно изучить и другие инструменты, такие как LeoCAD, LDCad, SR 3D Builder и официальную программу LEGO - LDD.
Tags: Учебники по использованию программ LSynth LPub LDView LDraw LEGO Mindstorms Education EV3 LEGO
Комментарии
Вы про цифру 3 на картинке ниже?
Эти цифры проставляются автоматически. Ничего делать не надо.
Может быть цвет текста выставлен такой же как и цвет фона. Попробуйте поменять в настройках "Configuration -> Parts List Setup" на закладке "Contents" в группе "Part Length" цвет, например, на красный:
Если не поможет, попробуйте изменить шрифт.
Какая у вас версия LPub? Можете сделать маленький файл с несколькими осями для теста и прислать его мне? Я попробую у себя в LPub его открыть.
Configuration::Parts List Setup::Annotations/Sorting::Display PLI Annotation, но тогда аннотации будут не только у осей. Чтобы были только у нужных списков, щёлкните по ним правой кнопкой мыши -> Part List Annotation Options -> Поставьте галочку. На вопрос "Change only this step?" ответьте "Yes".
Чтобы аннотации были только у осей, зайдите в Configuration::Edit Parameter Files::Edit Part Title PLI Annotations, удалите всё после 14 строки ("Technic: ^Technic Axle\s+(\d+\.*\d*)\s*.*$"), нажмите на верхнюю левую кнопку (Save), закройте документ (при появлении диалога нажмите OK, чтобы перезапустить программу. Если при запуске она напишет, что не может открыть документ, значит, название Вашей модели написано кириллицей. Откройте её через File::Open. Теперь можете настроить списки деталей по инструкции выше.
RSS лента комментариев этой записи