• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

src/H03-May-2022-3,7702,946

.gitignoreH A D12-Oct-2019297 3332

.travis.ymlH A D12-Oct-2019573 2725

COMPILED.xmlH A D12-Oct-2019104 129

COPYINGH A D12-Oct-201917.7 KiB340281

ChangeLog.oldH A D12-Oct-20191.7 KiB4329

INSTALLH A D12-Oct-2019470 1512

Makefile.amH A D12-Oct-2019994 6346

README.mdH A D12-Oct-20194.9 KiB11696

SYSTEM.xmlH A D12-Oct-2019131 129

admesh.1H A D12-Oct-20195.8 KiB174151

autogen.shH A D12-Oct-2019155 106

block.stlH A D12-Oct-20193.4 KiB8786

configure.acH A D12-Oct-20192.3 KiB9179

fortag.shH A D12-Oct-2019377 1412

libadmesh.pc.inH A D12-Oct-2019227 1210

README.md

1About this release and repository:
2----------------------------------
3
4ADMesh was released as an application in 1995/96. Not much happened since then.
5As the code of this project might bring use for others, this "fork" was created
6to provide a shared library. Once done that, I've collected lots of bugfixes
7from the world around us.
8
9No further development will be done, but bugs will be resolved, if possible.
10
11Don't patch this project downstream but use this code, so all can benefit from
12the changes. Pull requests are welcome, but be sure to generate no warnings.
13
14Grab the 0.98.4 tarball:
15https://github.com/admesh/admesh/releases/download/v0.98.4/admesh-0.98.4.tar.gz
16
17About ADMesh:
18-------------
19
20ADMesh is a program for processing triangulated solid meshes. Currently,
21ADMesh only reads the STL file format that is used for rapid prototyping
22applications, although it can write STL, VRML, OFF, and DXF files.
23
24Additional information regarding the underlying algorithms of ADMesh
25can be found in Anthony Martin's Masters Thesis available from here:
26
27http://www.varlog.com/admesh-htm/ADMeshThesis.zip
28
29Features:
30---------
31
32 * Read and write binary and ASCII STL files
33 * Check STL files for flaws (i.e. unconnected facets, bad normals)
34 * Repair facets by connecting nearby facets that are within a given tolerance
35 * Fill holes in the mesh by adding facets.
36 * Repair normal directions (i.e. facets should be CCW)
37 * Repair normal values (i.e. should be perpendicular to facet with length=1)
38 * Remove degenerate facets (i.e. facets with 2 or more vertices equal)
39 * Translate in x, y, and z directions
40 * Rotate about the x, y, and z axes
41 * Mirror about the xy, yz, and xz planes
42 * Scale the part by a factor
43 * Merge 2 STL files into one
44 * Write an OFF file
45 * Write a VRML file
46 * Write a DXF file
47 * Calculate the volume of a part
48
49ADMesh outputs the following statistics after processing:
50
51````
52================= Results produced by ADMesh version 0.98.4 =================
53Input file         : sphere.stl
54File type          : Binary STL file
55Header             : Processed by ADMesh version 0.98.4
56============== Size ==============
57Min X = -1.334557, Max X = 1.370952
58Min Y = -1.377953, Max Y = 1.377230
59Min Z = -1.373225, Max Z = 1.242838
60========= Facet Status ========== Original ============ Final ====
61Number of facets                 :  3656                3656
62Facets with 1 disconnected edge  :    18                   0
63Facets with 2 disconnected edges :     3                   0
64Facets with 3 disconnected edges :     0                   0
65Total disconnected facets        :    21                   0
66=== Processing Statistics ===     ===== Other Statistics =====
67Number of parts       :     1        Volume   :  10.889216
68Degenerate facets     :     0
69Edges fixed           :    24
70Facets removed        :     0
71Facets added          :     0
72Facets reversed       :     0
73Backwards edges       :     0
74Normals fixed         :     0
75````
76
77There are two different algorithms used for fixing unconnected facets.  The
78first algorithm finds an unconnected edge, and then checks nearby within a
79given tolerance for another unconnected edge.  It then fixes edges within
80tolerance.  Some meshes can be completely fixed just using this method.  If
81there are still unconnected facets after this "nearby check" has been done,
82then a second algorithm is used.  This algorithm just fills any holes in the
83mesh by adding facets until all of the holes are filled.  Using these two
84algorithms, almost any imperfect STL file can be "fixed" 100% so that there
85are 0 unconnected facets.  Whether the resulting mesh is what you really
86want is another question since there is no way for ADMesh to add information
87that isn't there.
88
89At this point ADMesh is only command-line driven and has no windowing
90capabilities.  This should make it extremely easy to port to any UNIX-like
91system, and it shouldn't have any problems compiling on Windows NT, and some
92people have had success compiling it under DOS or Windows using DJGPP.
93
94ADMesh was developed on a 486/66 with 16Mb running the Linux operating system.
95It has also been compiled and run on the following systems:
96SunOS 4.1.3
97IRIX  5.2
98Please let me know about successes or failures with other systems.
99
100On my Linux system with 16Mb of memory, I can easily process files that have
101up to about 200,000 facets.  Files larger than this can be processed, but
102the system begins to slow down significantly due to swapping.  A system with
103more memory will be able to process greater numbers of facets more easily.
104Following are some indications of process times:
105
106 * 40,000  facets: 10 seconds
107 * 80,000  facets: 20 seconds
108 * 160,000 facets: 50 seconds
109 * 320,000 facets: 13 minutes (heavy swapping occurred)
110
111Note that those times were calculated around 1996.
112
113ADMesh is free but copyrighted software.  It is distributed under the terms
114of the GNU General Public License (GPL). Details of the GPL are in the file
115COPYING that comes with the ADMesh software package.
116