Beispiel #1
0
def getIsIntersectingWithinList(loop, loopList):
	"Determine if the loop is intersecting or is within the loop list."
	leftPoint = euclidean.getLeftPoint(loop)
	for otherLoop in loopList:
		if euclidean.getNumberOfIntersectionsToLeft(otherLoop, leftPoint) % 2 == 1:
			return True
	return euclidean.isLoopIntersectingLoops(loop, loopList)
Beispiel #2
0
def getIsIntersectingWithinList(loop, loopList):
	"Determine if the loop is intersecting or is within the loop list."
	leftPoint = euclidean.getLeftPoint(loop)
	for otherLoop in loopList:
		if euclidean.getNumberOfIntersectionsToLeft(otherLoop, leftPoint) % 2 == 1:
			return True
	return euclidean.isLoopIntersectingLoops(loop, loopList)
def getLoopsFromCorrectMesh( edges, faces, vertices, z ):
	"Get loops from a carve of a correct mesh."
	remainingEdgeTable = getRemainingEdgeTable( edges, vertices, z )
	remainingValues = remainingEdgeTable.values()
	for edge in remainingValues:
		if len( edge.faceIndexes ) < 2:
			print( 'This should never happen, there is a hole in the triangle mesh, each edge should have two faces.' )
			print( edge )
			print( "Something will still be printed, but there is no guarantee that it will be the correct shape." )
			print( 'Once the gcode is saved, you should check over the layer with a z of:' )
			print( z )
			return []
	loops = []
	while isPathAdded( edges, faces, loops, remainingEdgeTable, vertices, z ):
		pass
	for loopIndex in xrange( len( loops ) - 1 ):
		loop = loops[ loopIndex ]
		if euclidean.isLoopIntersectingLoops( loop, loops[ loopIndex + 1 : ] ):
			print( 'This should never happen, the triangle mesh slice intersects itself.' )
			print( "Something will still be printed, but there is no guarantee that it will be the correct shape." )
			print( 'Once the gcode is saved, you should check over the layer with a z of:' )
			print( z )
			return []
	return loops
Beispiel #4
0
def getLoopsFromCorrectMesh(edges, faces, vertices, z):
    "Get loops from a carve of a correct mesh."
    remainingEdgeTable = getRemainingEdgeTable(edges, vertices, z)
    remainingValues = remainingEdgeTable.values()
    for edge in remainingValues:
        if len(edge.faceIndexes) < 2:
            print(
                'This should never happen, there is a hole in the triangle mesh, each edge should have two faces.'
            )
            print(edge)
            print(
                "Something will still be printed, but there is no guarantee that it will be the correct shape."
            )
            print(
                'Once the gcode is saved, you should check over the layer with a z of:'
            )
            print(z)
            return []
    loops = []
    while isPathAdded(edges, faces, loops, remainingEdgeTable, vertices, z):
        pass
    for loopIndex in xrange(len(loops) - 1):
        loop = loops[loopIndex]
        if euclidean.isLoopIntersectingLoops(loop, loops[loopIndex + 1:]):
            print(
                'This should never happen, the triangle mesh slice intersects itself.'
            )
            print(
                "Something will still be printed, but there is no guarantee that it will be the correct shape."
            )
            print(
                'Once the gcode is saved, you should check over the layer with a z of:'
            )
            print(z)
            return []
    return loops