Edge

class Edge

Parent: Drawingelement | Class Index
Methods:all_connected, common_face, curve, end, faces, find_faces, length, line, other_vertex, reversed_in?, smooth=, smooth?, soft=, soft?, split, start, used_by?, verticies |
Sample Code: edgetests.rb |

The Edge class contains methods modifying and extracting information for edges.

Instance Methods

all_connected
The all_connected method retrieves all of the entities connected to an edge.
Syntax:
entities = edge.all_connected
Arguments:
Return Value:
entities - the entities connected to the edge
Comments:
Example:

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
# I just happen to know that the second and third entities in the
# entities objects are edges.
entity1 = entities[1]
entity2 = entities[2]
edges = entity1.all_connected
if (edges)
UI.messagebox edges
else
UI.messagebox "Failure"
end

common_face
The common_face method is used to identify a face that is common to two edges.
Syntax:
face = edge1.common_face edge2
Arguments:
edge2 - the face whose edge you are checking for commonality
Return Value:
face - the Face object that is common to the two edges if successful
Comments:
Example:

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0,0,0]
pts[1] = width,0,0]
pts[2] = [width,depth,0]
pts[3] = [0,depth,0]
# Add the face to the entities in the model
face = entities.add_face pts
# I know that the second and third entity objects are edges
entity1 = entities[1]
entity2 = entities[2]
UI.messagebox entity1
UI.messagebox entity2
face = entity1.common_face entity2
if (face)
UI.messagebox face
else
UI.messagebox "Failure: No Common Face"
end

curve
The curve method is used to determine if an edge to see if it is a ArcCurve object.
Syntax:
arccurve = edge.curve
Arguments:
Return Value:
arccurve - returns an ArcCurve object if it is a curve, false if it is not a curve
Comments:
Example:

curve = edge.curve
if (curve)
# if it is a curve, display a pointer to the curve
UI.messagebox curve
else
UI.messagebox "Failure: Not a Curve"
end

end
The end method is used to retrieve the Vertex object at the end of the edge.
Syntax:
vertex = edge.end
Arguments:
Return Value:
vertex - a Vertex object if successful
Comments:
Example:

vertex = edge.end
if (vertex)
# display a pointer to the Vertex
UI.messagebox vertex
else
UI.messagebox "Failure"
end
point = vertex.position
# Let's get the Point3d of the vertex
if (point)
UI.messagebox point
else
UI.messagebox "Failure"

end

faces
The faces method is used to retrieve all of the faces common to the edge.
Syntax:
faces edge.faces
Arguments:
Return Value:
faces - an array of Face objects if successful, false if unsuccessful
Comments:
Example:

faces = edge.faces
if (faces)
# Display the pointer to the first face returned in the array
UI.messagebox faces[0]
else
UI.messagebox "Failure: No Faces Found"
end

find_faces
The find_faces method is used to find all Face objects that were created with this edge
Syntax:
number = edge.find_faces
Arguments:
Return Value:
number - the number of faces found
Comments:
Example:

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
# I just happen to know that the second entity in the
# entities objects is an edge.
entity1 = entities[1]
# Getting zero.
number = entity1.find_faces
if (number)
UI.messagebox number
else
UI.messagebox "Failure"
end

length
The length method is used to retrieve the length of an edge in current units.
Syntax:
length = edge.length
Arguments:
Return Value:
length - the length of the edge in current units
Comments:
Example:
length = edge.length if (length) UI.messagebox length

line
The line method is used to retrieve the line defined by the edge.
Syntax:
line = edge.line
Arguments:
Return Value:
line - an array with a Point3d object and a Vector3d object.
Comments:
Example:

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0,0,0]
pts[1] = width,0,0]
pts[2] = [width,depth,0]
pts[3] = [0,depth,0]
# Add the face to the entities in the model
face = entities.add_face pts
# I know that the second and entity object is an edge
entity1 = entities[1]
# Returns a 3d ray
line = edge.line
if (line)
# Result is (100" 0", 0") (0.0, 1.0, 0.0)
UI.messagebox line
else
UI.messagebox "Failure"
end

other_vertex
The other_vertex method is used to find the opposite vertex given one vertex of the edge.
Syntax:
vertex2 = edge.other_vertex vertex1
Arguments:
vertex1 - one of the Vertex objects associated with the edge
Return Value:
vertex2 - the other Vertex object associated with the edge
Comments:
Example:

# Get the end vertex of an edge
vertex = edge.end
# Should find the starting vertex
othervertex = edge.other_vertex vertex
if (othervertex)
UI.messagebox othervertex
else
UI.messagebox "Failure"
end
# The Point3d for the vertex
point = othervertex.position
if (point)
UI.messagebox point
else
UI.messagebox "Failure"

end

reversed_in?
The reversed_in? method is used to determine if the EdgeUse object is traversed in the corresponding direction as its corresponding edge.
Syntax:
status = edge.reversed_in? face
Arguments:
face - the Face object that is bounded by the edge.
Return Value:
status - true if the edge is reversed, nil if it is not reversed.
Comments:
Example:

begin
# When the geometry is a 2d rectangle with four edges, the face itself
# is entities[4]
status = entity.reversed_in? entities[4]
rescue
UI.messagebox $!.message

end
if (status)
UI.messagebox status
else
UI.messagebox "Failure"

smooth=
The smooth= method is used to set the edge to be smooth.
Syntax:
status = entity.smooth= value
Arguments:
value - true if you want the edge to be smooth, false if you do not want the edge to be smooth
Return Value:
status - true if successful, false if unsuccessful
Comments:
Example:

# Examine the current smooth setting on an edge
status = entity.smooth?
if (status)
# If true, set it to false
UI.messagebox "Smooth"
status = entity.smooth="false"
else
# if false, set it to true
UI.messagebox 'Not Smooth"
status = entity.smooth="true"
end

smooth?
The smooth? method is used to retrieve the current smooth setting for an edge.
Syntax:
status = edge.smooth?
Arguments:
Return Value:
status - true if smooth, false if not smooth
Comments:
Example:

# Examine the current smooth setting on an edge
status = entity.smooth?
if (status)
# If true, set it to false
UI.messagebox "Smooth"
status = entity.smooth="false"
else
# if false, set it to true
UI.messagebox 'Not Smooth"
status = entity.smooth="true"
end

soft=
The smooth= method is used to set the edge to be soft.
Syntax:
status = entity.soft = value
Arguments:
value - true if you want the edge to be soft, false if you do not want the edge to be soft
Return Value:
status - true if successful, false if unsuccessful
Comments:
Example:

# Examine the current soft setting on an edge
status = entity.soft?
if (status)
# If true, set it to false
UI.messagebox "Soft"
status = entity.soft="false"
else
# if false, set it to true
UI.messagebox 'Not Soft"
status = entity.soft="true"
end

soft?
The soft? method is used to retrieve the current smooth setting for an edge.
Syntax:
status = edge.soft?
Arguments:
Return Value:
status - true if soft, false if not soft
Comments:
Example:

# Examine the current soft setting on an edge
status = entity.soft?
if (status)
# If true, set it to false
UI.messagebox "Soft"
status = entity.soft="false"
else
# if false, set it to true
UI.messagebox 'Not Soft"
status = entity.soft="true"
end

split
The split method is used to to split an edge into to or more distinct edges.
Syntax:
edge = edge.split position
Arguments:
position - a Point3d object whose location is along the edge
Return Value:
edge - an Edge object if successful
Comments:
Example:

depth = 100
width = 100
model = Sketchup.active_model
entities = model.active_entities
pts = []
pts[0] = [0, 0, 0]
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
# Add the face to the entities in the model
face = entities.add_face pts
# I just happen to know that the second entity in the
# entities objects is an edge.
entity = entities[1]
vertex = entity.end

# Get a Point3d for the end vertex
position = vertex.position
UI.messagebox position
# Get the y value (the only value that changes between beginning and
# end verticies)
y = position.y

# Returing 8' 4" or 100"
# Divide the y value by 2 to get a new y value that is 1/2 the distance between
# start and end verticies
newy = y / 2

# Put the new y position in the Point3d object
UI.messagebox position
position.y=newy

# Split the edge with the new Point3d object (should get 2 edges on
# right-hand side of square)
edge = entity.split position
if (edge)
UI.messagebox edge
else
UI.messagebox "Failure"
end

start
The end method is used to retrieve the Vertex object at the start of the edge.
Syntax:
vertex = edge.start
Arguments:
Return Value:
vertex - a Vertex object if successful
Comments:
Example:

vertex = edge.start
if (vertex)
# display a pointer to the Vertex
UI.messagebox vertex
else
UI.messagebox "Failure"
end
point = vertex.position
# Let's get the Point3d of the vertex
if (point)
UI.messagebox point
else
UI.messagebox "Failure"

end

used_by?
The used_by? method is used to see if a vertex is used by an edge.
Syntax:
status = edge.usedby? vertex
Arguments:
vertex - a Vertex object
Return Value:
status - true if the vertex belongs to the edge, false if the vertex does not belong to the edge
Comments:
Example:

# Returns a vertex
vertex = entity1.start

# Check to see if the vertex is used by the edge
status = entity1.used_by? vertex
if (status)
UI.messagebox status
else
UI.messagebox "Failure"
end

vertices
The vertices method is used to retrieve an Array object consisting of the two vertices for an edge.
Syntax:
vertices = edge.vertices
Arguments:
Return Value:
vertices - an Array object of two Vertex objects
Comments:
Example:

vertices = entity1.vertices
if (vertices)
UI.messagebox vertices
else
UI.messagebox "Failure"
end
# Examine the first vertex
vertex = vertices[0]
point = vertex.position
UI.messagebox point