skeinforge_tools.skeinforge_utilities.triangle_mesh ($Date: 2008/02/05 $)
index
/home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap/skeinforge_tools/skeinforge_utilities/triangle_mesh.py

Triangle Mesh holds the faces and edges of a triangular mesh.

It can read from and write to a GNU Triangulated Surface (.gts) file.

The following examples carve the GNU Triangulated Surface file Screw Holder Bottom.stl. The examples are run in a terminal in the folder which contains Screw Holder Bottom.stl and triangle_mesh.py.


>python
Python 2.5.1 (r251:54863, Sep 22 2007, 01:43:31)
[GCC 4.2.1 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import carve
>>> carve.main()
File Screw Holder Bottom.stl is being carved.
The carved file is saved as Screw Holder Bottom_carve.gcode
It took 3 seconds to carve the file.


>>> carve.writeOutput( 'Screw Holder Bottom.stl' )
File Screw Holder Bottom.gcode is being carved.
The carved file is saved as Screw Holder Bottom_carve.gcode
It took 3 seconds to carve the file.


>>> carve.getGcode("
54 162 108 Number of Vertices,Number of Edges,Number of Faces
-5.800000000000001 5.341893939393939 4.017841892579603 Vertex Coordinates XYZ
5.800000000000001 5.341893939393939 4.017841892579603
..
many lines of GNU Triangulated Surface vertices, edges and faces
..
")

 
Modules
       
__init__
cStringIO
cmath
skeinforge_tools.skeinforge_utilities.euclidean
skeinforge_tools.skeinforge_utilities.gcodec
skeinforge_tools.skeinforge_utilities.intercircle
math

 
Classes
       
Edge
EdgePair
Face
LoopArea
TriangleMesh

 
class Edge
    An edge of a triangle mesh.
 
  Methods defined here:
__init__(self)
Set the face indexes to None.
__repr__(self)
Get the string representation of this Edge.
addFaceIndex(self, faceIndex)
Add first None face index to input face index.
getFromVertexIndexes(self, edgeIndex, vertexIndexes)
Initialize from two vertex indices.
getGNUTriangulatedSurfaceLine(self)
Get the GNU Triangulated Surface (.gts) line of text.

 
class EdgePair
     Methods defined here:
__init__(self)
Pair of edges on a face.
__repr__(self)
Get the string representation of this EdgePair.
getFromIndexesEdges(self, edgeIndexes, edges)
Initialize from edge indices.

 
class Face
    A face of a triangle mesh.
 
  Methods defined here:
__init__(self)
Set the edge indexes to None.
__repr__(self)
Get the string representation of this Face.
getFromEdgeIndexes(self, edgeIndexes, edges, faceIndex)
Initialize from edge indices.
getGNUTriangulatedSurfaceLine(self)
Get the GNU Triangulated Surface (.gts) line of text.
setEdgeIndexesToVertexIndexes(self, edges, edgeTable)
Set the edge indexes to the vertex indexes.

 
class LoopArea
    Complex loop with an area.
 
  Methods defined here:
__init__(self, loop)
__repr__(self)
Get the string representation of this flat path.

 
class TriangleMesh
    A triangle mesh.
 
  Methods defined here:
__init__(self)
Add empty lists.
__repr__(self)
Get the string representation of this TriangleMesh.
getCarveCornerMaximum(self)
Get the corner maximum of the vertices.
getCarveCornerMinimum(self)
Get the corner minimum of the vertices.
getCarveLayerThickness(self)
Get the layer thickness.
getCarveRotatedBoundaryLayers(self)
Get the rotated boundary layers.
getGNUTriangulatedSurfaceText(self)
Get this mesh in the GNU Triangulated Surface (.gts) format.
getLoopsFromMesh(self, z)
Get loops from a carve of a mesh.
getZAddExtruderPaths(self, z)
Get next z and add extruder loops.
setCarveBridgeLayerThickness(self, bridgeLayerThickness)
Set the bridge layer thickness.  If the infill is not in the direction of the bridge, the bridge layer thickness should be given as None or not set at all.
setCarveImportRadius(self, importRadius)
Set the import radius.
setCarveIsCorrectMesh(self, isCorrectMesh)
Set the is correct mesh flag.
setCarveLayerThickness(self, layerThickness)
Set the layer thickness.
setEdgesForAllFaces(self)
Set the face edges of all the faces.

 
Functions
       
addEdgePair(edgePairTable, edges, faceEdgeIndex, remainingEdgeIndex, remainingEdgeTable)
Add edge pair to the edge pair table.
addLoopToPointTable(loop, pointTable)
Add the points in the loop to the point table.
addPointsAtZ(edgePair, points, radius, vertices, z)
Add point complexes on the segment between the edge intersections with z.
addToZoneArray(point, z, zoneArray, zZoneInterval)
Add a height to the zone array.
addWithLeastLength(loops, point, shortestAdditionalLength)
Insert a point into a loop, at the index at which the loop would be shortest.
compareAreaAscending(loopArea, otherLoopArea)
Get comparison in order to sort loop areas in ascending order of area.
compareAreaDescending(loopArea, otherLoopArea)
Get comparison in order to sort loop areas in descending order of area.
getAdditionalLoopLength(loop, point, pointIndex)
Get the additional length added by inserting a point into a loop.
getBridgeDirection(belowLoops, layerLoops, layerThickness)
Get span direction for the majority of the overhanging extrusion perimeter, if any.
getBridgeLoops(layerThickness, loop)
Get the inset bridge loops from the loop.
getCarveIntersectionFromEdge(edge, vertices, z)
Get the complex where the carve intersects the edge.
getCommonVertexIndex(edgeFirst, edgeSecond)
Get the vertex index that both edges have in common.
getDoubledRoundZ(overhangingSegment, segmentRoundZ)
Get doubled plane angle around z of the overhanging segment.
getInclusiveLoops(allPoints, corners, importRadius, isInteriorWanted=True)
Get loops which include most of the points.
getInsetPoint(loop, tinyRadius)
Get the inset vertex.
getLoopsFromCorrectMesh(edges, faces, vertices, z)
Get loops from a carve of a correct mesh.
getLoopsFromUnprovenMesh(edges, faces, importRadius, vertices, z)
Get loops from a carve of an unproven mesh.
getLoopsInOrderOfArea(compareAreaFunction, loops)
Get the loops in the order of area according to the compare function.
getLoopsWithCorners(corners, importRadius, loops, pointTable)
Add corners to the loops.
getLowestZoneIndex(zoneArray, z)
Get the lowest zone index.
getNextEdgeIndexAroundZ(edge, faces, remainingEdgeTable)
Get the next edge index in the mesh carve.
getNumberOfOddIntersectionsFromLoops(leftPoint, loops)
Get the number of odd intersections with the loops.
getOverhangDirection(belowOutsetLoops, segmentBegin, segmentEnd)
Add to span direction from the endpoint segments which overhang the layer below.
getOverlapRatio(loop, pointTable)
Get the overlap ratio between the loop and the point table.
getPath(edges, pathIndexes, loop, z)
Get the path from the edge intersections.
getRemainingEdgeTable(edges, vertices, z)
Get the remaining edge hashtable.
getSharedFace(firstEdge, faces, secondEdge)
Get the face which is shared by two edges.
getTriangleMesh(fileName='')
Carve a GNU Triangulated Surface file.  If no fileName is specified, carve the first GNU Triangulated Surface file in this folder.
getWideAnglePointIndex(loop)
Get a point index which has a wide enough angle, most point indexes have a wide enough angle, this is just to make sure.
getZoneInterval(layerThickness)
Get the zone interval around the slice height.
isInline(beginComplex, centerComplex, endComplex)
Determine if the three complex points form a line.
isPathAdded(edges, faces, loops, remainingEdgeTable, vertices, z)
Get the path indexes around a triangle mesh carve and add the path to the flat loops.

 
Data
        __author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
__credits__ = 'Art of Illusion <http://www.artofillusion.org/>'
__date__ = '$Date: 2008/02/05 $'
__license__ = 'GPL 3.0'
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)

 
Author
        Enrique Perez (perez_enrique@yahoo.com)

 
Credits
        Art of Illusion <http://www.artofillusion.org/>