wtorek, kwietnia 05, 2016


Jakiś czas temu studenci Politechniki Wrocławskiej zapytali mnie o możliwość wykorzystania gry, którą napisałem w ich konkursie. Oczywiście się na to zgodziłem. Gdyby byli Państwo zainteresowani to tutaj jest więcej informacji oraz najnowsza wersja gry: http://uosab.pwr.wroc.pl/2016/04/03/konkurs-mostow-wirtualnych-zaczynamy/

Feat - Finite Element Analysis of Truss (5)

piątek, marca 25, 2016

Kolejnym krokiem, który musimy wykonać w naszym projekcie jest zestawienie parametrów materiałowych.

BETON

W przypadku betonu większość interesujących nas wartości znajdziemy w Tablicy 3.1 normy PN-EN 1992-1-1. 


Czytając uważnie normę możemy również znaleźć zapis w punkcie 3.1.3 który przypomina nam, że moduł sprężystości betonu jest zależny od składników, które wykorzystano do jego produkcji. Podane w Tabeli 3.1 wartości tego parametru zostały wyznaczone dla betonów na kruszywie kwarcytowym, natomiast w mostach najczęściej wykorzystywane jest kruszywo bazaltowe. W związku z tym konieczne jest zwiększenie wartości modułu sprężystości o 20 % w stosunku do wartości, którą możemy odczytać w Tabeli 3.1.

Parametry materiałowe - Konstrukcje mostowe (8)

W poniższej tabeli zostały zestawione najczęściej wykorzystywane ciężary poszczególnych komponentów wchodzących w skład projektowanego mostu:

Zestawienie obciążeń stałych - Konstrukcje mostowe (3)

W ramach projektu z przedmiotu Konstrukcje mostowe będziecie zajmować się projektowaniem jednoprzęsłowego, żelbetowego mostu belkowego o specyficznych danych dla każdej pary projektowej. W związku z tym jednym z pierwszych etapów, które należy wykonać jest wstępny dobór podstawowych wymiarów oraz sporządzenie rysunków przekroju poprzecznego, podłużnego oraz widoku z góry projektowanego obiektu. Zdając sobie sprawę, że dla wielu osób może być to problematyczne, zachęcam do korzystania z szablonów, które mają ułatwić przebrnięcie przez ten pierwszy etap. Oczywiście dążąc do maksymalnej unifikacji różnych możliwych do wystąpienia przypadków, nie było możliwe stworzenie wzoru, który obejmowałby w szczegółach wszystkie możliwości. Dlatego nie można przerysować wszystkiego zupełnie bez zastanowienia i każdy z zespołów będzie musiał wykazać się inwencją twórczą oraz intuicją inżynierską.

Materiały do pobrania:


Jeżeli chcemy stworzyć coś co wychodzi poza utarte schematy, najpierw musimy poznać podstawy i wzorować się na już znanych zasadach. W związku z tym najlepiej podpatrywać to co ktoś już zrobił w danej dziedzinie. W ramach przedmiotu Konstrukcje mostowe na początku Waszego projektu musicie stworzyć trzy podstawowe rysunki, czyli przekrój poprzeczny, podłużny oraz widok z góry, które powinny wyglądać mniej więcej w taki sposób:




Więcej informacji będzie można uzyskać w czasie zajęć projektowych oraz konsultacji.

Oczywiście cechą charakterystyczną człowieka jest popełnianie błędów. W związku z tym w razie odnalezienia jakiegokolwiek błędu proszę informację zwrotną.

Przekrój poprzeczny i podłużny jednoprzęsłowego, sprężonego mostu drogowego - Konstrukcje mostowe (2)

Cel projektu

W ramach projektu z przedmiotu Konstrukcje mostowe Waszym zadaniem będzie zaprojektowanie jednoprzęsłowego, żelbetowego mostu drogowego o konstrukcji płytowo-belkowej i posadowieniu bezpośrednim. Co to oznacza?

  • Jednoprzęsłowy, oznacza, że daną przeszkodę przekroczymy jednym "elementem", który będzie "rozpięty" pomiędzy naszymi podporami, które w mostownictwie najczęściej nazywamy przyczółkami. Odległość pomiędzy osiami podpór, a dokładniej mówiąc łożysk (czyli elementów pozwalających w bezpieczny sposób przekazać siły z konstrukcji na przyczółki), będziemy w tym wypadku nazywać rozpiętością teoretyczną. Schematem statycznym, który zastosujemy do obliczeń będzie belka swobodnie podparta. Tego typu konstrukcje stosujemy najczęściej w przypadku mostów o rozpiętości teoretycznej do 30,0 m.
  • Żelbetowy, oznacza, że do betonowej konstrukcji wprowadzimy pręty zbrojeniowe, które w tym przypadku będziemy prowadzić zarówno równolegle jak i prostopadle do osi podłużnej dźwigarów oraz płyty pomostowej.
  • Belkowy, oznacza, że główny element nośny będzie miał formę belki. W naszym przypadku będą to dwie belki trapezowe.
  • O posadowieniu bezpośrednim, oznacza, że przyjmujemy w naszym projekcie, że warunki gruntowe pozwalają na posadowienie naszych podpór bezpośrednio na warstwie nośnej i nie są wymagane fundamenty pośrednie np. w postaci pali.

Dane projektowe

Projekt będziecie wykonywać pojedynczo bądź dwójkami z zaznaczeniem, że zakres w obu przypadkach będzie taki sam. Każda grupa otrzyma zestaw unikalnych danych, które sprawią, że każdy z projektów będzie w pewnym stopniu oryginalny. Zmiennymi parametrami są:
  • rozpiętość teoretyczna,
  • przeszkoda,
  • wysokość nad terenem,
  • spadek niwelety jezdni,
  • szerokość jezdni,
  • szerokość chodnika,
  • klasa betonu.

Zawartość projektu

W celu zaliczenia przedmiotu należy sporządzić projekt i oddać go w estetycznej, papierowej formie. Niezbędne jest spełnienie wszystkich wymienionych poniżej punktów:

Wymagania do zaliczenia

Biorąc pod uwagę minione doświadczenia, w celu sprawnego i owocnego przeprowadzenia kursu wymagane będą minimum:
  • dwie konsultacje rysunków ogólnych,
  • dwie konsultacje części obliczeniowej,
  • jedna konsultacja rysunków wykonawczych.
Ostatecznie wymagania, które muszą być spełnione, aby z pozytywną oceną zakończyć całość kursu to:
  • zaliczenie rysunków ogólnych najpóźniej w ostatnim tygodniu kwietnia,
  • zaliczenie części obliczeniowej projektu,
  • zaliczenie rysunków wykonawczych,
  • odpowiedź pisemna z zakresu projektu.

Zakres projektu - Konstrukcje mostowe (1)

czwartek, lutego 18, 2016

Kolejne małe ulepszenia dotyczące gry. Obecnie dodałem możliwość budowy konstrukcji w trójwymiarze oraz dodatkowe etapy w których będzie można wykorzystywać podpory.




Feat - Finite Element Analysis of Truss (4)

czwartek, lutego 04, 2016

Progressss... Mam nadzieję, że uda się w tej formie doprowadzić grę do końca. Niestety na Androidzie będzie nieco gorzej z tego względu, że na wielu telefonach nie byłoby możliwe uruchomienie gry z taką grafiką.


Co sądzicie?:)

Feat - Finite Element Analysis of Truss (3)

poniedziałek, stycznia 25, 2016

Prace postępują bardzo powoli ze względu na chroniczny brak czasu. Jednak mam nadzieję, że już niedługo pojawi się pierwsza beta wersja na Androida. Z największych nowości to:
  • możliwość pobrania gry z Google Play,
  • system odznaczeń,
  • globalna lista wyników zintegrowana z Google Play,
  • dodane nowe funkcje usprawniające budowanie mostu,
  • wyświetlanie naprężenia w elementach.
A tak to w tej chwili się mniej więcej przedstawia:





Feat - Finite Element Analysis of Truss (2)

W kolejnej części dotyczącej skryptów w Mathcadzie, będziemy zajmować się sprawdzaniem warunków. Sam sposób, aby tego dokonać jest bardzo prosty, jednak często chcielibyśmy jakoś wyróżnić nasze rozwiązanie spośród tysiąca innych wzorów, które znajdują się w naszym projekcie. Możemy to osiągnąć poprzez kolorowanie tego warunku w zależności od tego czy jest one spełniony. Niestety w standardowych opcjach Mathcada nie jest to takie proste do osiągnięcia. Z pomocą przychodzą skrypty.


Zaczynamy od stworzenia prostego obiektu typu TextBox, który następnie oskryptujemy.


Musimy zdefiniować zmienną wejściową, której wartość będziemy sprawdzać. W tym celu klikamy prawym przyciskiem myszy na dodany obiekt i wybieramy opcję <Add Input Variable>. W razie potrzeby można wprowadzić kilka zmiennych wejściowych, jak i wyjściowych.


W zależności od liczby wprowadzonych zmiennych pojawiła się określona liczba czarnych kwadracików oznaczających pola czekające na uzupełnienie. Zadajmy zmienną i oznaczmy ją przykładowo jako "y".


Dodatkowo wprowadźmy przykładową funkcję oraz jej wartość w danym punkcie.


W kolejnym kroku możemy przejść już do edycji naszego skryptu. W tym celu klikamy prawym przyciskiem myszy na TextBox i wybieramy <Edit Script...>.


Kod skryptu edytujemy, żeby prezentował się jak następujący:


Oczywiście jest to tylko przykładowy sposób. W przypadku innych sprawdzeń należy skrypt zmodyfikować. Jak można się domyślić poszczególny linie kodu odpowiadają za:
If Inputs(0).Value < 100 Then     # sprawdza zadany warunek dla pierwszej zmienne wejściowej, w naszym przypadku "y"
TextBox.BackColor = RGB(59,255,127)    # ustala kolor tła, w przypadku gdy warunek jest spełniony
TextBox.Text = "Warunek spełniony: y < 100     # wyświetla komunikat w przypadku, gdy komunikat jest spełniony
Outputs(0).Value = "Możemy też określić dane wyjściowe..."     # określa wartość wyjściową dla naszego TextBoxu 
 Po zakończeniu edycji akceptujemy zmiany i wychodzimy z edytora.

Teraz możemy przetestować działanie naszego skryptu, zadając różne wartości naszej przykładowej funkcji. W obu przypadkach o spełnieniu bądź niespełnieniu warunku, poinformuje nas odpowiedni kolor tła TextBoxu oraz informacja wyświetlana w polu tekstowym.


Kiedy nie uda nam się spełnić warunku powinniśmy zobaczyć taki oto komunikat:


Podsumowując - jesteśmy teraz w stanie do kluczowy sprawdzeń w naszym projekcie dodać odpowiedni skrypt, który w zależności od sytuacji pokoloruje nasz wynik. Znacznie ułatwia to wizualny odbiór takiego dokumentu i pozwala w prostszy sposób wyłapać ewentualne błędy.

Widok ogólny projektu z kodem skryptu do kolorowania warunków

Mathcad - skrypty dla bardziej zaawansowanych. Część 2 - kolorowanie warunku ze względu na jego wartość

Kiedy robimy kolejny projekt, który ma związek z betonem, nudne może być ponowne wprowadzanie wszystkich parametrów materiału. Jest na to sposób. Możemy stworzyć skrypt, który umożliwi nam wybrać daną klasę betonu, a cała reszta zdefiniowana zostanie automatycznie. Jak to zrobić?



Przepis znajdziecie poniżej.


Teraz musimy zdefiniować pozycje w naszym ListBoxie, które będą oznaczały kolejne klasy betonu.


Wprowadzamy kolejne klasy betonu oraz ustalamy, która z wartości ma być domyślna w przypadku uruchomienia Mathcada.


Klikamy następnie na <File> oraz <Apply changes>, aby zastosować zmiany. Możemy po tym wszystkim zamknąć Edytor.


Klikamy prawym przyciskiem na wolne miejsce obszaru roboczego po czym wybieramy <Insert> oraz <Table>, aby wstawić tabelę z danymi dostępnych klas betonu.


Uzupełniamy tabelę danymi, które możemy znaleźć w normie PN-EN 1992-1-1 Projektowanie konstrukcji z betonu.


Następnie musimy wprowadzić definicje odpowiednich parametrów, których wartości będą wyszukiwane w tabeli.


Teraz możemy wprowadzić <Area> (Obszar), który będziemy mogli ukryć, aby nie rozpraszało to już naszej uwagi.



Możemy nazwać ten Obszar np. "Klasa betonu". Żeby to zrobić, klikamy w jedną z linii prawy przyciskiem myszy, a następnie wybieramy <Properties>. W nowym oknie klikamy w zakładkę <Area>, gdzie możemy wpisać nową nazwę.


Teraz klikając dwukrotnie na strzałkę naszego obszaru, możemy go ukryć.
Użytkownikowi możemy pokazać jedynie wyniki.


Za pomocą strzałek na klawiaturze lub kliknięciem myszki możemy wybrać daną klasę betonu, a wszystkie parametry zostaną automatycznie zaktualizowane.

Zaprezentowane podejście ma jednak jedną wadę (da się je obejść, jednak w nieco skomplikowany sposób) - po każdym ponownym uruchomieniu Mathcada, wybrana domyślnie będzie klasa zdefiniowana w Edytorze Skryptów. Dlatego też musimy pamiętać, aby na odpowiednią wartość ustawić zmienną ListBox.CurSel np. gdy mamy klasę C20/25 to ListBox.CurSel = 2.

Cały plik skryptu może wyglądać następująco:


Tak przygotowany skrypt można kopiować do kolejnych projektów. Jedyne co będziemy musieli zrobić, to wybrać daną klasę betonu, a cała reszta zostanie zaktualizowana automatycznie.

Mathcad - skrypty dla bardziej zaawansowanych. Część 1 - skrypt automatyzujący dobór parametrów betonu

Każdy powinien zdawać sobie sprawę, że wiele czynności w Mathcadzie jesteśmy w stanie wykonać znacznie szybciej stosując skróty klawiaturowe zamiast myszki. Dużo efektywniej jest nacisnąć kombinację dwóch lub maksymalnie trzech klawiszy, niż najeżdżać pieczołowicie na małą ikonkę ukrytą w gąszczu innych mało wyraźnych symboli. Dlatego też warto nauczyć się kilku podstawowych skrótów, które po kilku użyciach wejdą nam w nawyk i przyśpieszą naszą pracę. Przed przejściem dalej zachęcam do włączenia Mathcada i próbowania od razu pokazanych tu skrótów - a nuż coś zostanie w głowie i przyda się w przyszłości.
[ - wstawienie dolnego indeksu
\ - wstawienie pierwiastka kwadratowego
/ - wstawienie ułamka
' - wstawienie nawiasów półokrągłych
| - wstawienie wartości bezwzględnej 
TAB - przeskok pomiędzy znacznikami linijki
 CTRL + E - wstawianie funkcji z bazy dostępnej w programie
 CTRL + G - zmiana litery na jej gracki odpowiednik
CTRL + I - wstawienie całki
CTRL + M - wstawianie macierzy
CTRL + 3 - znak "różny od"
CTRL + 4 - znak sumy 
CTRL + 9 - znak "mniejszy bądź równy"
CTRL + 0 - znak "większy bądź równy"
SHITF + " - wstawianie obszaru tekstowego 
SHITF + : - definicja zmiennej  
SHITF + ? - wstawienie pochodnej   

Oczywiście nie są to wszystkie skróty w programie, a zaledwie ich ułamek. Znajomość kolejnych na pewno pozytywnie wpłynie na jakość naszej pracy, dlatego zachęcam do zgłębiania przeróżnych kombinacji. Wiele z nich można znaleźć w popularnych książkach traktujących o Mathcadzie, które możemy znaleźć w księgarniach i bibliotece. Zachęcam!

Mathcad - sposoby na bardziej efektywną pracę. Część 3 - przydatne skróty klawiaturowe

Mathcad ma wiele wspólnych cech z językami programowania, dlatego lubię myśleć o projekcie napisanym w Mathcadzie jak o programie, który ma wykonać określone zadanie. Można jednak pójść jeszcze dalej i starać się wdrożyć niektóre ze znanych zasad programistów.

1. Komentuj! - jeżeli wprowadzasz nową definicję, nowy wzór lub ogólnie mówiąc cokolwiek, postaraj się poświęcić kilka sekund na skomentowanie tego co wprowadziłeś. Ma to kilka niewątpliwych zalet, które w dłuższym okresie czasu przeważają wadę jaką jest dłuższy czas pracy. Pozwól, że wymienię kilka z nich:
  • Pamięć człowieka jest bardzo ulotna.Uwierz mi, że w następnym semestrze, gdy będziesz chciał ponownie użyć stworzonego przez siebie skryptu, nie będziesz przekonany jak on tak naprawdę działa. Co więcej zaczniesz się też zastanawiać skąd wzięły się te wartości i dlaczego wynoszą właśnie tyle?
  • Dlatego zachęcam, żebyś opisywał czego dotyczy wprowadzana wartość oraz skąd się ona bierze lub z jakiego punktu normy pochodzi. Może wydaje ci się to przesadą, ale te kilka sekund które poświęcisz teraz, zaoszczędzi Ci wiele minut albo nawet godzin w przyszłości.
  • Inne osoby, które potencjalnie będą wykorzystywać twój kod, będą miały ułatwione zadanie. Po przeczytaniu komentarzy będą mogły zorientować się o co w tym wszystkim chodzi.
  • Pamiętaj, żeby jednak nie przesadzać i nie komentować rzeczy oczywistych.
2. Stosuj określone wcięcia dla danego typu tekstu - wymyśl sobie szablon, który będziesz stosował do wszystkich projektów. Wykorzystuj dobrodziejstwa stylów i wyróżnij główne punkty swojej pracy. Pozwoli to na łatwiejsze odnalezienie w gąszczu wzorów oraz znaczną poprawę wizualnej strony projektu.


3. Stosuj znaczące nazwy zmiennych - dzięki temu, gdy pojawi się ona za kilkanaście stron nadal będziesz wiedział czego dotyczy. Nie będziesz musiał wracać do początku lub szukać jej po całym dokumencie.

4. Pisz skrypty rozwiązujące konkretne zadania - staraj się pisać skrypty w taki sposób, aby stanowiły one swego rodzaju klocki z których można złożyć kolejne zabawki. Dla przykładu możesz stworzyć algorytmy do określania otuliny betonu, skrypt do określania parametrów betonu na podstawie jego klasy, czy też parametrów danego typu dwuteownika. Może ten jeden raz zajmie ci to wszystko nieco więcej czasu, ale następny projekt będziesz składał jak klocki lego - nie muszę chyba dodawać ile czasu zaoszczędzisz?

5. Stosuj się zasadę czarnej skrzynki (hermetyzacja) - gdy już napiszesz jakiś algorytm i jesteś pewny jego działania, warto ukryć jego "jądro". Użytkownik nie musi wiedzieć jak działa taki skrypt. Wystarczy, że określi dane wejściowe i otrzyma poprawne dane wyjściowe. Oczywiście zawsze istnieje furtka, żeby zobaczyć jak dany algorytm działa, ale jeżeli masz go sprawdzonego, to najczęściej nie ma potrzeby ponownie do niego zaglądać.

Na dzisiaj tylko pięć podstawowych zasad. Oczywiście może być ich dużo więcej i każdy z użytkowników może wypracować sobie własne. Dodatkowo warto czasem sięgnąć do pokrewnej dziedziny jaką jest programowanie, bo wiele można tam podpatrzeć i wdrożyć z powodzeniem w swojej pracy.

Mathcad - sposoby na bardziej efektywną pracę. Część 2 - sposoby pracy w Mathcadzie

W życiu każdego studenta kierunków technicznych przychodzi taki moment, że spotyka on na swojej drodze program, który musi zacząć wykorzystywać do obliczeń. W Polsce dużą popularność zdobył Mathcad ze względu na prostotę obsługi i duże możliwości. Jednak nie wszyscy efektywnie posługują się tym narzędziem - czas to zmienić.


1. Często jako standardowe ustawienia program narzuca nam dość duże marginesy. Rzutuje to na naszą pracę i efektywność wykorzystania strony. Dlatego warto przed przystąpieniem do działania zmienić te wartości.


2. Mathcad wyposażony jest w przyrząd niezbędny dla każdego inżyniera - linijkę. Niestety nie jest ona standardowo aktywna.


Linijka pozwala nam na znacznie więcej niż tylko lepszą orientację. Typowo ustawioną jednostką są <Inches> (Cale), ale klikając w nią prawym przyciskiem myszy możemy zmienić ustawienia.


Na samym dole tego menu widzimy, że znajduje się na razie nieaktywna jeszcze jedna opcja <Show Guideline> (Pokaż linie pomocnicze). Jeżeli chcemy ją włączyć musimy kliknąć lewym przyciskiem myszy w naszą linijkę. Pojawia się tajemniczy znaczek "L", który oznacza położenie naszych linii pomocniczych. 
Gdybyśmy chcieli je usunąć, musimy przytrzymać lewy przycisk myszy na znaczniku, a następnie przeciągnąć go poza obszar linijki.


Teraz ponownie wchodzimy w menu kontekstowe, ale tym razem klikając prawym przyciskiem myszy czarne znaczniki na naszej linijce. Za każdym razem wybieramy <Show Guideline>, a naszym oczom ukazują się kolejne linie pomocnicze.


Można zapytać "po co nam to wszystko"? Z kilku powodów. 
- Po pierwsze, możemy dzięki temu wizualnie podzielić naszą stronę na odseparowane od siebie obszary np. po lewej wzory, a po prawej ich wyjaśnienia. Dodatkowo wszystko będzie idealnie wyrównane, a przez to bardziej czytelne.


- Po drugie, jeżeli napiszemy wzór po lewej stronie okna, to w przypadku gdy chcemy od razu wprowadzić jego definicję, tak jak w sytuacji przedstawionej powyżej, możemy to zrobić poprzez jednokrotne lub dwukrotne  kliknięcie w klawisz <Tab>. Jest to znacznie szybsze niż posługiwanie się myszką, a dodatkowo wszystko mamy od razu wyrównane do linii pomocniczej.
- Po trzecie, jeśli mamy aktywowaną linijkę, możemy ją wykorzystać do formatowania obszarów tekstowych. 


Mathcad - sposoby na bardziej efektywną pracę. Część 1 - sposoby pracy w Mathcadzie

piątek, stycznia 22, 2016

Zapraszam do zapoznania się z serią filmów przedstawiającą modelowanie mostu podwieszonego wraz ze wstępną analizą naciągu kabli. Materiały przygotowane w ramach zajęć z przedmiotu Modelowanie Obiektów Specjalnych.

Wersję trial oprogramowania Midas Civil można pobrać z oficjalnej strony: midasuser.com

Film wzorowany na tutorialu z oficjalnego kanału Midas Civil Engineering:
Więcej informacji na temat modelowanego obiektu można znaleźć w artykule na jego temat (język angielski).

Zapraszam do oglądania, próbowania własnych sił i komentowania!


Modelowanie mostu podwieszonego w programie MIDAS