1CAD::Format::STL(3)   User Contributed Perl Documentation  CAD::Format::STL(3)
2
3
4

NAME

6       CAD::Format::STL - read/write 3D stereolithography files
7

SYNOPSIS

9       Reading:
10
11         my $stl = CAD::Format::STL->new->load("foo.stl");
12         # what about the part/multipart?
13         my @facets = $stl->part->facets;
14
15       Writing:
16
17         my $stl = CAD::Format::STL->new;
18         my $part = $stl->add_part("my part");
19         $part->add_facets(@faces);
20         $stl->save("foo.stl");
21         # or $stl->save(binary => "foo.stl");
22
23       Streaming read/write:
24
25         my $reader = CAD::Format::STL->reader("foo.stl");
26         my $writer = CAD::Format::STL->writer(binary => "bar.stl");
27         while(my $part = $reader->next_part) {
28           my $part_name = $part->name;
29           $writer->start_solid($part_name);
30           while(my @data = $part->facet) {
31             my ($normal, @vertices) = @data;
32             my @v1 = @{$vertices[0]};
33             my @v2 = @{$vertices[0]};
34             my @v3 = @{$vertices[0]};
35             # that's just for illustration
36             $writer->facet(\@v1, \@v2, \@v3);
37             # note the omitted normal
38           }
39           $writer->end_solid;
40         }
41

ABOUT

43       This module provides object-oriented methods to read and write the STL
44       (Stereo Lithography) file format in both binary and ASCII forms.  The
45       STL format is a simple set of 3D triangles.
46

Constructor

48   new
49         my $stl = CAD::Format::STL->new;
50
51   add_part
52       Create a new part in the stl.
53
54         my $part = $stl->add_part("name");
55
56       Optionally, add the faces directly:
57
58         my $part = $stl->add_part("name", @faces);
59
60   part
61       Get the part at $index.  Negative indices are valid.
62
63         my $part = $stl->part($index);
64
65       Throws an error if there is no such part.
66

I/O Methods

68   load
69       Load an STL file (auto-detects binary/ascii)
70
71         $stl = $stl->load("filename.stl");
72
73       Optionally, explicitly declare binary mode:
74
75         $stl = $stl->load(binary => "filename.stl");
76
77       The $self object is returned to allow e.g. chaining to new().
78
79       The filename may also be a filehandle.
80
81   _read_ascii
82         $self->_read_ascii($filehandle);
83
84   get_<something>
85       These functions are currently only used internally.
86
87       get_triangle
88       get_ulong
89       get_float32
90       get_short
91
92   _read_binary
93         $self->_read_binary($filehandle);
94
95   save
96         $stl->save("filename.stl");
97
98         $stl->save(binary => "filename.stl");
99
100   _write_binary
101         $self->_write_binary($filehandle);
102
103   _write_ascii
104         $self->_write_ascii($filehandle);
105

AUTHOR

107       Eric Wilhelm @ <ewilhelm at cpan dot org>
108
109       http://scratchcomputing.com/
110

BUGS

112       If you found this module on CPAN, please report any bugs or feature
113       requests through the web interface at <http://rt.cpan.org>.  I will be
114       notified, and then you'll automatically be notified of progress on your
115       bug as I make changes.
116
117       If you pulled this development version from my /svn/, please contact me
118       directly.
119
121       Copyright (C) 2007 Eric L. Wilhelm, All Rights Reserved.
122

NO WARRANTY

124       Absolutely, positively NO WARRANTY, neither express or implied, is
125       offered with this software.  You use this software at your own risk.
126       In case of loss, no person or entity owes you anything whatsoever.  You
127       have been warned.
128

LICENSE

130       This program is free software; you can redistribute it and/or modify it
131       under the same terms as Perl itself.
132
133
134
135perl v5.36.0                      2023-01-20               CAD::Format::STL(3)
Impressum