Jak robię instrukcję?

Mindstorms, WeDo, Lego Digital Desinger, Stud.io

Moderatorzy: Mod Team, Mod Team

Autor
Wiadomość
Awatar użytkownika
--pg--
VIP
Posty: 221
Rejestracja: 2015-07-13, 19:30
Lokalizacja: Kraków

Jak robię instrukcję?

#1 Post autor: --pg-- »

Wstęp.

Tworzenie instrukcji modelu Technic za pomocą LEGO Digital Designer i instrumentów pokrewnych należy moim zdaniem do czynności bardzo męczących lub praktycznie niewykonalnych, mam doświadczenie, że LDD gubi się w proponowaniu instrukcji nawet dla niewielkich modeli Technic (jeżeli są odpowiednio skomplikowane), proponując niewłaściwą kolejność dokładanych części. W związku z tym wypracowałem schemat postępowania pozwalający na zrobienie instrukcji w jednym pliku pdf ze zdjęć, uzupełniając kroki instrukcji spisem potrzebnych klocków.

Do tworzenia instrukcji używam TeX-a, programu znanego matematykom i osobom zajmującym się dziedzinami pokrewnymi. Program został stworzony z myślą o łatwym wpisywaniu wszelakich wyrażeń matematycznych i ich zgrabnym wyglądzie. W związku z tym tworzenie pliku pdf polega na napisaniu dokumentu tekstowego (z rozszerzeniem .tex) i poddaniu go kompilacji, czyli zinterpretowaniu i przetworzeniu do formatu pdf. Dzięki temu można napisać z klawiatury:

Kod: Zaznacz cały

$$\frac{\pi\left(r+h\right)^3}{\sqrt{a^2+b^2}} \approx 
\left\{\begin{array}{l}
 1 \\
-1 \\
\end{array}\right.$$
i dostać na środku stronu u góry w pliku pdf:
Obrazek
co oczywiście nie ma żadnego głębszego sensu matematycznego, ale pokazuje możliwości tego programu. Program ma naprawdę sporo możliwości, oprócz symboli matematycznych można pisać zwykły tekst (razem z numeracją, punktowaniem, formatowaniem, itd. jak w Wordzie) oraz wstawiać rysunki w formacie jpg.

Ostatnia ewentualność jest kamieniem węgielnym do tworzenia instrukcji. Dzięki temu po przygotowaniu zdjęć i miniaturowych rysunków klocków całą resztę wpisuję z klawiatury, obficie korzystając ze skrótów CTRL+C, CTRL+V. W efekcie dostaję gotowy plik tekstowy, następnie tylko klikam w przycisk „kompiluj” i pojawia się gotowy plik pdf. Prześledźmy kolejne składowe czynności.

Rysunki klocków

Skoro tworzę z LEGO Technic, nie używam wielu kolorów i wielu kształtów, faktycznie sięgam po kilkaset różnych części, uwzględniając kształt i kolor. W związku z tym musiałem jednorazowo przygotować folder z miniaturami posiadanych klocków, uzupełniam go w trakcie kupowania klocka o nowym kształcie lub kolorze. Z pomocą przyszedł portal rebrickable, w którym mogłem utworzyć szachownicę miniaturek posiadanych klocków, potem tylko trzeba było z tego powycinać pojedyncze miniaturki. Folder z miniaturkami wygląda następująco (powiększenie po kliknięciu).
Obrazek
W folderze mam 859 miniaturek oraz folder Instruction. Wymyślałem krótkie i łatwe do zapamiętania nazwy, często odwołujące się do powszechnego nazewnictwa (np. b1x1 to brick 1x1, p2x4 to plate o podanych wymiarach, a5 to oś o długości pięciu studów), czasem nawiązujące do kształtu (np. widziane na zrzucie ekranu łączniki), a rzadko, z braku lepszych rozwiązań, powstawała abstrakcyjna grupa nazw (np. x2, x3, x5, x7, x9, x11, x13, x15 to belki Technic, a y2, y3, y4, y5 to płaskie belki Technic z wejściami na oś na końcach). Końcówkę nazwy stanowi kolor klocka. Teraz jedynie przy rzadszych klockach muszę sprawdzać nazwę.

Zdjęcia kroków instrukcji

Ten etap wygląda tak samo bez względu na rodzaj instrukcji wykorzystującej fotografię. Na jednolitym tle powstaje model, najczęściej z oddzielnych modułów, przy czym moduły też wymagają często od kilku do kilkudziesięciu kroków. Wypracowałem sobie standard z dwoma zdjęciami w formacie 4:3 na stronie instrukcji, więc każde zdjęcie przycinam do takiego formatu. Gdy zdjęcia mam przygotowane, przepuszczam je przez program do zmniejszania wymiarów, co sprawia, że przed stworzeniem instrukcji wymiary wszystkich są jednolite np. 800x600 lub 700x525. Dzięki temu zdjęcia mają mniejszy rozmiar od pierwotnych oraz akceptowalną ostrość. Jednolite wymiary pozwalają także panować mi nad rozmiarem końcowym instrukcji. Wszystkie obrobione zdjęcia kroków instrukcji gromadzę we wspomnianym folderze Instruction.

Plik wsadowy

Plik tekstowy o rozszerzeniu .tex zapisuję w folderze Instruction. Jak to z programowaniem bywa, potrzeba kilku linijek wstępu:

Kod: Zaznacz cały

% --translate-file=cp1250pl
\documentclass[a4paper,12pt]{amsart}
\usepackage[a4paper,left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage[cp1250]{inputenc}
\usepackage[OT4]{fontenc}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{wasysym}
\usepackage{amssymb}
Pewnie obeszłoby się bez większości pakietów (usepackage), ale już mam przygotowaną wersję pliku także do swoich zawodowych potrzeb, więc nie marnuję czasu na zastanawianie się, które pakiety są potrzebne, a które zbędne. Potem pojawia się linijka wprowadzająca numer kroku:

Kod: Zaznacz cały

\newcounter{stepno}
Następnie zaczynam widoczną część dokumentu od strony tytułowej:

Kod: Zaznacz cały

\begin{document}
\setcounter{stepno}{1}

\begin{center}
\Large

\textbf{LEGO minifig in a scale of 15:1} (part 1)
\medskip

\normalsize
\texttt{--pg--}
\medskip

(Piotr Gurdek)
\bigskip

\end{center}
\bigskip
Ustalam na niej wartość numeru kroku na 1 (co jest w pamięci podczas kompilowania), a większą, pogrubioną i wyśrodkowaną czcionką podaję tytuł. Kolejno pojawiają się cztery linijki wklejające na stronie tytułowej zdjęcie, tutaj zz2.jpg, czyli całego modelu:

Kod: Zaznacz cały

\begin{figure}[htb]
\centering
\includegraphics[width=0.4\textwidth]{zz2}
\end{figure}
oraz numery stron z kluczowymi fragmentami budowy, taki pobieżny spis treści.

Kod: Zaznacz cały

Here are some useful pages in the first part.
\begin{itemize}
\item a head: page \pageref{page-head},
\item a neck: page \pageref{page-neck},
\item a mechanism: page \pageref{page-mech},
\item the left leg: page \pageref{page-legleft},
\item the right leg: page \pageref{page-legright}.
\end{itemize}

\newpage
Odwołuję się za pomocą wskaźników, więc po ewentualnych zmianach w instrukcji numeracja będzie wciąż poprawna. Strona tytułowa po skompilowaniu wygląda następująco:
Obrazek
Dalej zaczyna się monotonny kod tworzący dwa kroki na stronie z ewentualnym spisem, początek drugiej strony przykładowej instrukcji powstaje z następującego kodu:

Kod: Zaznacz cały

\label{page-head}
\noindent\textbf{STEP \arabic{stepno}}.
\addtocounter{stepno}{1}
Polecenie \label pojawia się rzadko i wskazuje miejsce w dokumencie, do którego ma zostać podany numer strony w spisie treści na stronie pierwszej. Druga przytoczona linia powoduje wypisanie w pliku pdf: STEP 1., a ostatnia powoduje powiększenie wskaźnika numerującego kroki o 1. Czemu takie dziwne rozwiązanie? Dzięki temu nie muszę wpisywać każdego numeru samodzielnie, a gdy dodam lub skasuję krok w gotowej części instrukcji, numeracja ustawi się właściwie po skompilowaniu. Pod pogrubionym nagłówkiem ląduje spis potrzebnych części i zdjęcie m1.jpg:

Kod: Zaznacz cały

\begin{figure}[htb]
\centering
\textbf{15x}\includegraphics[scale=0.55]{../pp-black}
\textbf{6x}\includegraphics[scale=0.55]{../ppp-blue}
\textbf{1x}\includegraphics[scale=0.55]{../x3-yellow}
\textbf{1x}\includegraphics[scale=0.55]{../x5-yellow}
\textbf{3x}\includegraphics[scale=0.55]{../x5-lbg}
\textbf{2x}\includegraphics[scale=0.55]{../x13-lbg}
\textbf{1x}\includegraphics[scale=0.55]{../f5x7-lbg} \\
\textbf{1x}\includegraphics[scale=0.55]{../panel5x11-yellow}
\end{figure}
\begin{figure}[htb]
\centering
\includegraphics[width=0.6\textwidth]{m1}
\end{figure}
W spisie części wypisuję po siedem różnych części w każdej linii, polecenie \\ zaczyna nową linię, w nawiasach klamrowych podaję ścieżkę dostępu do pliku jpg (jak widać nie muszę podawać rozszerzenia), np. {../pp-black}. Liczbę elementów ustalam, oglądając zrobione zdjęcie. Zdecydowałem się na siedem części w linii, żeby mieć pewność, że się zmieści, osiem miniatur też się mieści, tylko liczby używanych części muszą być jednocyfrowe. Równocześnie przy przyjętych wymiarach zdjęć i miniatur wiem, że oprócz dwóch zdjęć mieszczą się dokładnie trzy linijki spisu klocków, nie muszę zatem zastanawiać się przy dłuższych spisach, czy układ zmieści się na stronie. W wypadku zbyt długiego spisu drugie zdjęcie przenoszę automatycznie na następną stronę. Mogę w ten sposób pisać kilkadziesiąt stron na klawiaturze, nie podglądając efektu po kompilacji.

Na tej samej stronie pojawia się jeszcze zdjęcie m2.jpg, w kroku drugim nie dokłada się żadnych nowych części.

Kod: Zaznacz cały

\noindent\textbf{STEP \arabic{stepno}}.
\addtocounter{stepno}{1}
\begin{figure}[htb]
\centering
\includegraphics[width=0.6\textwidth]{m2}
\end{figure}

\newpage
Po skompilowaniu strona druga wygląda następująco:
Obrazek
Dalej postępuję podobnie. Część pierwsza kończy się stroną z jednym zdjęciem:

Kod: Zaznacz cały

\newpage 

\noindent\textbf{STEP \arabic{stepno}}.
\addtocounter{stepno}{1}
\begin{figure}[htb]
\centering
\includegraphics[width=0.6\textwidth]{o76}
\end{figure}
\end{document}
Za poleceniem \end{document} mam schowane puste szablony:

Kod: Zaznacz cały

\noindent\textbf{STEP \arabic{stepno}}.
\addtocounter{stepno}{1}
\begin{figure}[htb]
\centering
\textbf{1x}\includegraphics[scale=0.55]{../pp-black}
\textbf{1x}\includegraphics[scale=0.55]{../ppp-blue}
\textbf{1x}\includegraphics[scale=0.55]{../ap-blue}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../} 
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\textbf{1x}\includegraphics[scale=0.55]{../}
\end{figure}
\begin{figure}[htb]
\centering
\includegraphics[width=0.6\textwidth]{}
\end{figure}

\noindent\textbf{STEP \arabic{stepno}}.
\addtocounter{stepno}{1}
\begin{figure}[htb]
\centering
\includegraphics[width=0.6\textwidth]{}
\end{figure}
które co chwilę kopiuję i uzupełniam.

Zliczanie części

Wspomniałem, że przy każdym rysunku zliczam dokładane części, uważnie przeglądając zrobione zdjęcie. Skoro sensownie zrobiona instrukcja wymaga sumarycznej liczby części każdego rodzaju i koloru, trzeba te liczby dodać do siebie. Tu z pomocą przychodzi na stałe przygotowany arkusz Excela, w którym w kolejnych kolumnach wpisuję kolejne liczebności klocków z kroków, czasem łącząc kilka kroków w jeden, bo wnoszą mało nowych części. Lewy górny róg arkusza wygląda następująco:
Obrazek
Drugi arkusz w tym pliku Excela jest przygotowany tak, aby szybko stał się spisem .csv według standardu rebrickable.

Wszystko, co do tej pory napisałem, brzmi strasznie, aczkolwiek są to programy dobrze przeze mnie znane. Wykonanie instrukcji modelu z tysiąca elementów zajęłoby mi kilkanaście godzin intensywnej pracy, czyli dwa dni, biorąc pod uwagę ograniczony czas robienia zdjęć ze względu dobre oświetlenie światłem dziennym. Jak się chwilę zastanowię, czas poświęcony na instrukcję stanowi 2-5% całkowitego czasu pracy nad modelem.

Próba generalna

Po wykonaniu wszystkich opisanych czynności następuje czas na próbę generalną, czyli rozłożenie modelu na posegregowane klocki i złożenie według instrukcji. Przed złożeniem sprawdzam, czy liczebność większości typów klocków się zgadza (nie liczę jedynie dwóch najliczniejszych pinów, według mojej nomenklatury pp-black i ppp-blue). Jeżeli są różnice, notuję i zwracam szczególną uwagę podczas składania. Budując model, nie spieszę się, sprawdzam skład dokładanych klocków, poprawiam rzadkie błędy w liczbie elementów, naprawiając pomyłki w plikach, uzupełniam niektóre zdjęcia ramkami, strzałkami lub komentarzem. Po złożeniu i sprawdzeniu instrukcja jest gotowa.

Dlaczego?

Folder z instrukcjami (oraz profil na rebrickable) jest taką wirtualną półką ze zrobionymi MOC-ami. Dzięki temu model nie ginie, a klocków używam po raz kolejny, co jest ogromną zaletą, bo pozwala na posiadanie niewielkiej liczby klocków. W praktyce dysponuję około 18 tysiącami części (większości klocków z dzieciństwa nie używam, po dorzuceniu tych nieużywanych byłoby w sumie 20000 części, więc niewiele więcej). Należy również nadmienić, że około 6000 stanowią piny zajmujące niewiele miejsca. Przypuszczam, że kolekcja jest niewielka jak na członka LUGPol-u, a budować się da.
Ostatnio zmieniony 2017-08-09, 12:57 przez --pg--, łącznie zmieniany 1 raz.

Awatar użytkownika
M_longer
VIP
Posty: 5429
Rejestracja: 2007-09-29, 08:47
Lokalizacja: Lubin
brickshelf: M-longer
Kontakt:

 

#2 Post autor: M_longer »

Nie mam teraz czasu dokładnie Twojego wpisu przejrzeć (po obiedzie pewnie zerknę), ale na szybko: LDD to kpina jeśli chodzi o instrukcje, więc z tym się zgadzam całkowicie, ALE jest alternatywa, baaardzo sensowna: pakiet Ldraw.
Czyli MLCad, LDView, LPub.

http://www.ldraw.org/

Da się w nim robić bardzo szczegółowe i dobrze wyglądające instrukcje, bez wpisywania masy rzeczy z palca:

Obrazek

EDIT:

Przeczytałem. Nawet ciekawe, dla osoby niezaznajomionej z tym programem nawet nieco straszne ;)

Ale jednak... marnujesz nieco czas w ten sposób. MLCad automatycznie zlicza elementy, robi listy części, możesz sobie dowolnie obracać poszczególne moduły w trakcie tworzenia instrukcji a poprawki można nanieść w locie - bo cały czas pracuje się na pliku z modelem w 3D. Fakt faktem że na początku jest nieco trudny w obsłudze, ale po przebrnięciu przez początkowe problemy, w połączeniu z LPubem, okazuje się być naprawdę dobrym narzędziem do tworzenia instrukcji.

Awatar użytkownika
--pg--
VIP
Posty: 221
Rejestracja: 2015-07-13, 19:30
Lokalizacja: Kraków

#3 Post autor: --pg-- »

M_longer, dzięki za informację, pewnie kiedyś spróbuję. Czy to w tym programie układanie kabli i giętkich elementów nastręcza trudności?

Awatar użytkownika
M_longer
VIP
Posty: 5429
Rejestracja: 2007-09-29, 08:47
Lokalizacja: Lubin
brickshelf: M-longer
Kontakt:

 

#4 Post autor: M_longer »

--pg-- pisze:Czy to w tym programie układanie kabli i giętkich elementów nastręcza trudności?
Nastręcza. Trudności.
Oraz powoduje uwiąd roślin doniczkowych w domu, na skutek zagęszczenia słów powszechnie uważanych za obelżywe, latających w powietrzu podczas uczenia się jak te giętkie rzeczy tworzyć.

Ale jak na to patrzę z perspektywy czasu, to za bardzo chciałem kombinować, kwestia obycia z programem :)

Jetboy

#5 Post autor: Jetboy »

Jak przyjdę do domu to sprawdzę w czym ja ostatnio składałem instrukcje. Było łatwo i przyjemnie i nie było problemów z układaniem kabli, bo model się zaczytuje z LDD.

Awatar użytkownika
M_longer
VIP
Posty: 5429
Rejestracja: 2007-09-29, 08:47
Lokalizacja: Lubin
brickshelf: M-longer
Kontakt:

 

#6 Post autor: M_longer »

Jetboy pisze:Było łatwo i przyjemnie i nie było problemów z układaniem kabli, bo model się zaczytuje z LDD.
Blueprint.
Tyle że LDD nie ma niektórych elementów. Niestety.
Ostatnio zmieniony 2017-08-09, 14:19 przez M_longer, łącznie zmieniany 1 raz.

Awatar użytkownika
Innos
Posty: 1026
Rejestracja: 2011-01-10, 22:01
Lokalizacja: Krakówarszawa
brickshelf: Innos

 

#7 Post autor: Innos »

Podziwiam nakład pracy włożony w tworzenie instrukcji. I Twoje zorganizowanie klockowe też, zrealizować duży i dość zaawansowany projekt wykorzystując 1/3 wszystkich swoich klockowych zasobów i nie potrzebując wiele więcej to jest swoisty wyczyn. 18k klocków to ja niedawno wyselekcjonowałem u siebie jako niepotrzebne. ;) No ale jeśli skupić się głównie na Technicu to jest trochę łatwiej z trzymaniem kolekcji w ryzach. :)
-He's much too bright for that.
-Bright? He's a common ignorant slob. He don't even speak good English.
-He doesn't speak good English.

Muszel
Posty: 178
Rejestracja: 2016-06-05, 18:51
Lokalizacja: Łódź
brickshelf: Proszę uzupełnić

 

#8 Post autor: Muszel »

Posiada ktoś jakiś fajny poradnik, bądź zna dobry film na YT, gdzie pokazane jest jak krok po kroku stworzyć prostą instrukcję dla siebie (bez wodotrysków) na podstawie pakietu Ldraw i pliku wyjściowego jako model w LDD? Byłbym wdzięczny za pomoc :)
Pozdrawiam,
Piotrek

Awatar użytkownika
M_longer
VIP
Posty: 5429
Rejestracja: 2007-09-29, 08:47
Lokalizacja: Lubin
brickshelf: M-longer
Kontakt:

 

#9 Post autor: M_longer »

Posiada ktoś jakiś fajny poradnik, bądź zna dobry film na YT, gdzie pokazane jest jak krok po kroku stworzyć prostą instrukcję dla siebie (bez wodotrysków) na podstawie pakietu Ldraw i pliku wyjściowego jako model w LDD? Byłbym wdzięczny za pomoc :)
Od razu zastrzegam że wymaga nieco więcej uwagi, ale jest dobre:
http://www.holly-wood.it/mlcad/basic1-en.html

Muszel
Posty: 178
Rejestracja: 2016-06-05, 18:51
Lokalizacja: Łódź
brickshelf: Proszę uzupełnić

 

#10 Post autor: Muszel »

Ooo... trochę jest czytania, ale na pewno pomoże, dzięki!
Pozdrawiam,
Piotrek

Awatar użytkownika
Jarema1980
Posty: 207
Rejestracja: 2015-04-07, 19:59
Lokalizacja: Częstochowa
Kontakt:

#11 Post autor: Jarema1980 »

Pozwolicie iż odświeżę temat i zaproponuje http://bugeyedmonkeys.com/alpha/web_lic/.

Awatar użytkownika
JAREMA.
VIP
Posty: 712
Rejestracja: 2014-08-12, 21:03
Lokalizacja: Katowice

#12 Post autor: JAREMA. »

Jarema1980 pisze:Pozwolicie iż odświeżę temat i zaproponuje http://bugeyedmonkeys.com/alpha/web_lic/.
M_longer, mnie zaciekawił instrukcją, wrzuć taką jak chcesz zachęcić do propozycji, na razie mnie nie przekonuje odpadając to na telefonie :/ albo chociaż cokolwiek napisz dlaczego to proponujesz.

ODPOWIEDZ