Moduł CAD::Drawing
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis treści
Co to jest
Moduł służy do tworzenia, ładowania i zapisywania grafiki komputerowej. Poniżej jest przedstawiony przykład, jak można konwertować pliki, przy pomocy modułu.use CAD::Drawing;
$drw = CAD::Drawing->new;
$drw->load("file.dwg");
# określenie opcji, z którymi poniższy tekst będzie dodany do pliku
my %opts = (
height => 5,
);
# tekst zostanie dodany do tablicy
$drw->addtext([10, 2, 5], "Jakis tekst", \%opts);
# zmieniony plik jest zapisywany
$drw->save("file.ps");
Konstruktor
- $drw = CAD::Drawing->new(%options)
- Konstruktor zwraca referencję do nowego obiektu modułu. Metodę new można wywoływać
z opcjami lub bez. Przykład:
my $drw = CAD::Drawing->new(); # lub $drw = CAD::Drawing->new(isbig=>1);
W drugim przypadku isbig=>1 oznacza, że dane geometryczne przechowywane są w pakiecie main, jako zmienne globalne. Dzięki temu, program szybciej zakończy swoje działanie, ale mogą powstać luki w pamięci, jeżeli obiekty są tworzone w pętli.
Metody
Funkcje add*
Wszystkie funkcje, jako argumenty mają dwa stałe argumenty, pierwszym jest tablica,
drugim jest hasz, w którym są określone standardowe cechy:
layer => $layername
color => $color (liczba 0-255)
linetype => $linetype (rzadko wymagany w większości formatów)
id => $id
- addline
- Funkcja dodaje linie między punktami określonymi w tablicy @pts:
@pts = ([$x1, $y1], [$x2, $y2]); $drw->addline(\@pts, \%opts);
- addtext
- Funkcja dodaje tekst umieszczony w zmiennej $string do tablicy @pt.
Opcje dotyczące napisu, np. wysokość, są umieszczone w haszu.
$drw->addtext(\@pt, $string, \%opts);
- addtexttable
- @table jest dwuwymiarową tablicą napisów. Opcja $opts{spaces} musi
zawierać referencję do listy szerokości kolumn:
$drw->addtexttable(\@point, \@table, \%opts);
Funkcje zapytań
- list_layers
- Funkcja zwraca listę warstw, które są określone w haszu.
@list = $drw->list_layers(\%opts);
- addr_by_layer
-
Funkcja zwraca adresy wszystkich obiektów, które mają ustawioną daną warstwę.
my @addr_list = $drw->addr_by_layer($layer);
- addr_by_type
- Funkcja zwraca adresy wszystkich obiektów o danym typie i warstwie.
$drw->addr_by_type($layer, $type);
Funkcje wewnętrzne
- getobj
-
Funkcja zwraca referencję do obiektu znajdującego się pod adresem $addr.
$drw->getobj($addr);
- remove
-
Funkcja usuwa obiekt znajdujący się pod adresem $addr ze struktury danych.
$drw->remove($addr);
Dodatkowe informacje
Cała dokumentacja do modułu CAD::Drawing znajduje się na stronie: http://search.cpan.org/~ewilhelm/CAD-Drawing-0.26/lib/CAD/Drawing.pm
Autor opracowania
A.Ł.
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.