wtorek, 24 marca 2009

Pseudokorbowód w BRL-CAD

Zespół programów BRL-CAD służy do modelowania bryłowego. Jest on jednym z nielicznych przypadków tak zaawansowanego oprogramowania udostępnianego za darmo - na licencjach BSD i LGPL. Historia BRL-CAD sięga lat 70-tych, kiedy w biurach armii amerykańskiej zaczęły się prace nad nowym systemem wspomagającym projektowanie (CAD). W 2004 roku został opublikowany kod źródłowy BRL-CAD, a obecnie są dostępne porty dla wielu systemów operacyjnych - od BSD poprzez GNU/Linuksa po Windows. Sam BRL-CAD ma obecnie ponad milion linii kodu i posłużył do zaprojektowania znacznej części uzbrojenia U.S. Army.
Niestety obsługa nie jest zbyt łatwa, wymaga głównie używania wiersza poleceń.

Instalacja na GNU/Linuksie.
Ściągamy plik instalacyjny z sourceforge.

Rozpakowujemy paczkę poleceniem
tar xvjf brlcad_***.tar.bz2

i kopiujemy katalog /usr we właściwe miejsce (jako root)
cp -r usr /

Sprawdzamy czy zależności są spełnione
ldd /usr/brlcad/bin/mged
w przypadku braku libstdc++.so.5 tworzymy dowiązanie (lub jeśli mamy taką możliwość to instalujemy libc5 z repozytorium)
cd /usr/lib

ln -s libstdc++.so.6 libstdc++.so.5



Pierwszy model.
Stworzymy element podobny do korbowodu z silnika dwusuwowego (z rozkładanym wałem).

Uruchamiamy (będąc w którymś z własnych katalogów) MGED, tworząc nową bibliotekę elementów
/usr/brlcad/bin/mged korbow1.g

Widzimy czarne okno - obszar rysunku i wiersz poleceń, wciskamy m by zobaczyć układ współrzędnych. Ustawiamy tytuł poleceniem
title korbowod


Teraz spróbujemy stworzyć trzon korbowodu poleceniem
in trzon1.s rpp -10 10 0 100 5 15

in to tryb interaktywny, gdy czegoś nie podamy to zostaniemy dodatkowo zapytani. trzon1.s to nazwa bryły, rpp to typ bryły - prostopadłościan. Kolejne liczby to wymiary: x_min, x_max, y_min, y_max, z_min, z_max. Czyli będzie to prostopadłościan o długości 100mm, grubości 10mm, dzielony na pół przez płaszczyznę YZ, będący 5mm nad płaszczyzną XY.

Teraz wstawimy walec będący stopą korbowodu
in dol1.s rcc 0 0 0 0 0 20 30

Pierwsze trzy liczby to położenie początkowe x, y, z. Kolejne trzy to przesunięcia względem tych położeń, widać przesunięcie o 20 na osi Z, które będzie wysokością walca. Ostatnia liczba to promień walca.
Tak samo wstawiamy główkę
in glowka1.s rcc 0 100 0 0 0 20 15

Tu położenie y musi wynosić 100mm, bo główka jest na drugim końcu trzonu.

Teraz przycinamy trzon stopą i główką (by nie wszedł nam do późniejszych otworów)
r korb1.r u trzon1.s - dol1.s - glowka1.s

(- to wycinanie, u to łączenie)

Tworzymy i wycinamy otwory w główce i stopie (dwa kolejne przenikania)
in otwor1.s rcc 0 0 0 0 0 20 25
r ot1.r u dol1.s - otwor1.s
in otwor2.s rcc 0 100 0 0 0 20 10
r ot2.r u glowka1.s - otwor2.s


Na koniec łączymy wszystkie operacje boolean (przenikania)
comb korbow.c u korb1.r u ot1.r u ot2.r


I "raytracingujemy" nasz korbowód
B korbow.c
File->Render View




Na koniec kilka przydatnych poleceń:
draw nazwaelementu - pokazanie danego elementu
erase nazwaelementu - ukrycie danego elementu
kill nazwaelementu - całkowite usunięcie
ls - wypisanie obecnych elementów
l nazwaelementu - informacje o danym elemencie
quit - zamknięcie programu:)

1 komentarz:

  1. Wyszła nowa wersja 7.16.6. Soft na pierwszy rzut oka nieporęczny, ale kryje spore możliwości. Jeszcze proszę!

    OdpowiedzUsuń