Class: Sketchup::Entities
- Inherits:
-
Object
- Object
- Sketchup::Entities
- Includes:
- Enumerable
Overview
The Entities class is a collection of Entity objects, either in a ComponentDefinition or directly in the Model. A Entities object corresponds to a drawing context in the GUI.
Instance Method Summary # collapse
-
#[](entity_index) ⇒ Sketchup::Entity?
The #[] method is used to retrieve an entity by its index in an array of entities.
-
#active_section_plane ⇒ Sketchup::SectionPlane?
The active_section_plane method is used to access the currently active section plane in the Entities object.
-
#active_section_plane=(sec_plane) ⇒ Sketchup::SectionPlane?
The active_section_plane= method is used to set the active section plane in the Entities object.
-
#add_3d_text(string, alignment, font, is_bold = false, is_italic = false, letter_height = 1.0, tolerance = 0.0, z = 0.0, is_filled = true, extrusion = 0.0) ⇒ Boolean
The #add_3d_text method is used to create 3D text.
-
#add_arc(*args) ⇒ Object
The add_arc method is used to create an arc curve segment.
-
#add_circle(center, normal, radius, numsegs = 24) ⇒ Array<Sketchup::Edge>
The add_circle method is used to create a circle.
-
#add_cline(*args) ⇒ Sketchup::ConstructionLine
The #add_cline method is used to create a construction line.
-
#add_cpoint(point) ⇒ Sketchup::ConstructionPoint
The add_cpoint method is used to create a construction point.
-
#add_curve(*args) ⇒ Array<Sketchup::Edge>
The add_curve method is used to create a curve from a collection of edges.
-
#add_dimension_linear(*args) ⇒ Sketchup::DimensionLinear
The #add_dimension_linear method adds a linear dimension to the entities.
-
#add_dimension_radial(arc_curve, leader_break_pt) ⇒ Sketchup::DimensionRadial
The add_dimension_radial method adds a radial dimension (i.e arc/circle radius/diameter dimension) to the entities.
-
#add_edges(*args) ⇒ Array<Sketchup::Edge>
The #add_edges method is used to add a set of connected edges to the Entities collection.
-
#add_face(*args) ⇒ Sketchup::Face?
The add_face method is used to create a face.
-
#add_faces_from_mesh(polygon_mesh, smooth_flags = Geom::PolygonMesh::AUTO_SOFTEN|Geom::PolygonMesh::SMOOTH_SOFT_EDGES, f_material = nil, b_material = nil) ⇒ Integer
The #add_faces_from_mesh method is used to add Face entities to the collection of entities from a Geom::PolygonMesh.
-
#add_group(*args) ⇒ Sketchup::Group
The add_group method is used to create an empty group or a group with entities.
-
#add_image(path, point, width, height = 0.0) ⇒ Sketchup::Image?
The add_image method is used to add an image to the collection of entities.
-
#add_instance(definition, transform) ⇒ Sketchup::ComponentInstance
The add_instance method adds a component instance to the collection of entities.
-
#add_line(point1, point2) ⇒ Sketchup::Edge
The add_line method is used to add an edge to the collection of entities.
-
#add_ngon(center, normal, radius, numsides = 24) ⇒ Array<Sketchup::Edge>
The add_ngon method is used to create a multi-sided polygon.
-
#add_observer(observer) ⇒ Boolean
The add_observer method is used to add an observer to the current object.
-
#add_section_plane(plane) ⇒ Sketchup::SectionPlane?
The add_section_plane method adds a section plane object to the entities.
-
#add_text(*args) ⇒ Sketchup::Text
The #add_text method adds a note or label text entity to the entities.
- #at(entity_index) ⇒ Sketchup::Entity?
-
#build {|builder| ... } ⇒ nil
Creates an EntitiesBuilder that can be used to generate bulk geometry with performance in mind.
-
#clear! ⇒ Boolean
The clear! method is used to remove all entities from the collection of entities.
- #count ⇒ Integer
-
#each {|entity| ... } ⇒ nil
The #each method is used to iterate through the entities in the collection of entities.
-
#erase_entities(*args) ⇒ nil
The #erase_entities method is used to erase one or more entities from the model.
-
#fill_from_mesh(polygon_mesh, weld_vertices = true, smooth_flags = Geom::PolygonMesh::AUTO_SOFTEN|Geom::PolygonMesh::SMOOTH_SOFT_EDGES, f_material = nil, b_material = nil) ⇒ Boolean
The #fill_from_mesh method is used to add faces and edges to the collection of entities from a Geom::PolygonMesh.
-
#intersect_with(recurse, transform1, entities1, transform2, hidden, entities2) ⇒ nil
The intersect_with method is used to intersect an entities, component instance, or group object with a entities object.
-
#length ⇒ Integer
The #length method is used to retrieve the number of entities in the collection of entities.
-
#model ⇒ Sketchup::Model
The model method is used to retrieve the model that contains the collection of entities.
-
#parent ⇒ Sketchup::ComponentDefinition, Sketchup::Model
The parent method is used to retrieve the parent or object that contains the collection of entities.
-
#remove_observer(observer) ⇒ Boolean
The remove_observer method is used to remove an observer from the current object.
- #size ⇒ Integer
-
#transform_by_vectors(sub_entities, vectors) ⇒ Sketchup::Entities
The transform_by_vectors method is used to apply several vectors to several sub-entities all at once.
-
#transform_entities(transform, entities) ⇒ Boolean
The transform_entities method is used to apply a transform to several sub-entities all at once.
- #weld(edges) ⇒ Array<Sketchup::Curve>
Instance Method Details
↑ #[](entity_index) ⇒ Sketchup::Entity?
↑ #active_section_plane ⇒ Sketchup::SectionPlane?
The active_section_plane method is used to access the currently active section plane in the Entities object.
↑ #active_section_plane=(sec_plane) ⇒ Sketchup::SectionPlane?
The active_section_plane= method is used to set the active section plane in the Entities object.
↑ #add_3d_text(string, alignment, font, is_bold = false, is_italic = false, letter_height = 1.0, tolerance = 0.0, z = 0.0, is_filled = true, extrusion = 0.0) ⇒ Boolean
The #add_3d_text method is used to create 3D text. It will be added as edges and faces drawn at the origin.
↑ #add_arc(center, xaxis, normal, radius, start_angle, end_angle) ⇒ Array<Sketchup::Edge> #add_arc(center, xaxis, normal, radius, start_angle, end_angle, num_segments) ⇒ Array<Sketchup::Edge>
The add_arc method is used to create an arc curve segment.
↑ #add_circle(center, normal, radius, numsegs = 24) ⇒ Array<Sketchup::Edge>
The add_circle method is used to create a circle.
↑ #add_cline(start_point, end_point, stipple = '-') ⇒ Sketchup::ConstructionLine #add_cline(point, vector, stipple = '-') ⇒ Sketchup::ConstructionLine
The #add_cline method is used to create a construction line. This can be finite or infinite.
↑ #add_cpoint(point) ⇒ Sketchup::ConstructionPoint
The add_cpoint method is used to create a construction point.
↑ #add_curve(points) ⇒ Array<Sketchup::Edge> #add_curve(*points) ⇒ Array<Sketchup::Edge>
The add_curve method is used to create a curve from a collection of edges.
The arguments are either Points or an Array of Points. At least 2 points are required.
↑ #add_dimension_linear(start_pt_or_entity, end_pt_or_entity, offset_vector) ⇒ Sketchup::DimensionLinear #add_dimension_linear(start_instance_path, end_instance_path, offset_vector) ⇒ Sketchup::DimensionLinear #add_dimension_linear(start_array, end_array, offset_vector) ⇒ Sketchup::DimensionLinear
The #add_dimension_linear method adds a linear dimension to the entities.
↑ #add_dimension_radial(arc_curve, leader_break_pt) ⇒ Sketchup::DimensionRadial
The add_dimension_radial method adds a radial dimension (i.e arc/circle radius/diameter dimension) to the entities.
↑ #add_edges(points) ⇒ Array<Sketchup::Edge> #add_edges(*points) ⇒ Array<Sketchup::Edge>
If the points form a closed loop, the first and last vertex will not merge. If you intend to create a face from the edges, use #add_face directly.
The #add_edges method is used to add a set of connected edges to the Sketchup::Entities collection.
↑ #add_face(entities) ⇒ Sketchup::Face? #add_face(*entities) ⇒ Sketchup::Face?
A special case exists for any face created on the ground plane, in which case the vertex order is ignored and the face is always facing down.
The add_face method is used to create a face. You can call this method a number of ways:
- entities.add_face(edge1, edge2, edge3, ...)
- entities.add_face(edgearray)
- entities.add_face(pt1, pt2, pt3, ...)
- entities.add_face([pt1, pt2, pt3,...])
- entities.add_face(curve)
For the last form that takes a Curve, the curve must be closed - like a circle.
↑ #add_faces_from_mesh(polygon_mesh, smooth_flags = Geom::PolygonMesh::AUTO_SOFTEN|Geom::PolygonMesh::SMOOTH_SOFT_EDGES, f_material = nil, b_material = nil) ⇒ Integer
The #add_faces_from_mesh method is used to add Face entities to the collection of entities from a Geom::PolygonMesh.
The smooth_flags
parameter can contain any of the following values if passed. The constants were added in SketchUp 2014. For previous versions, numeric values have to be specified instead of the Ruby constants.
-
1: Geom::PolygonMesh::HIDE_BASED_ON_INDEX (Negative point index will hide the edge.)
-
2: Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX (Negative point index will soften the edge.)
-
4: Geom::PolygonMesh::AUTO_SOFTEN (Interior edges are softened.)
-
8: Geom::PolygonMesh::SMOOTH_SOFT_EDGES (All soft edges will also be smooth.)
The 3rd and 4th parameters will accept a Material object or a string name of a material currently in the model.
↑ #add_group(entities) ⇒ Sketchup::Group #add_group(*entities) ⇒ Sketchup::Group
Calling add_group with entities in its parameters has been known to crash SketchUp before version 8.0. It is preferable to create an empty group and then add things to its Entities collection.
The add_group method is used to create an empty group or a group with entities.
↑ #add_image(path, point, width, height = 0.0) ⇒ Sketchup::Image?
The add_image method is used to add an image to the collection of entities.
The width and height are measured in model units (i.e. inches). If the height is not given, then it is computed from the width to preserve the aspect ratio of the image.
↑ #add_instance(definition, transform) ⇒ Sketchup::ComponentInstance
The add_instance method adds a component instance to the collection of entities.
↑ #add_line(point1, point2) ⇒ Sketchup::Edge
The add_line method is used to add an edge to the collection of entities. This is not to be confused with the concept of a “line” from a geometric sense, which is an invisible object represented by an Array of a point and a vector. (See the Array class for more information on geometric lines in SketchUp.)
This method is the same as add_edges method, but returns a single edge.
↑ #add_ngon(center, normal, radius, numsides = 24) ⇒ Array<Sketchup::Edge>
The add_ngon method is used to create a multi-sided polygon.
↑ #add_observer(observer) ⇒ Boolean
The add_observer method is used to add an observer to the current object.
↑ #add_section_plane(plane) ⇒ Sketchup::SectionPlane?
The add_section_plane method adds a section plane object to the entities.
↑ #add_text(text, point, vector) ⇒ Sketchup::Text #add_text(text, instance_path_and_pt, vector) ⇒ Sketchup::Text #add_text(text, instance_array_and_pt, vector) ⇒ Sketchup::Text
The #add_text method adds a note or label text entity to the entities.
↑ #at(entity_index) ⇒ Sketchup::Entity?
↑ #build {|builder| ... } ⇒ nil
While using #build it is important to not add or remove vertices by other means of the builder. Also don't modify the position of the vertices in the Sketchup::Entities container geometry is added to. Doing so can break the vertex-cache that de-duplicates the vertices.
Creates an Sketchup::EntitiesBuilder that can be used to generate bulk geometry with performance in mind. This is particularly useful for importers where the geometry is already well defined and one wants to recreate it without further processing.
The call to #build starts an implicit operation, even if no other model changes are made within the block. This is not the same as Model#start_operation, so it's still recommended to wrap all model changes, including #build with Model#start_operation and Model#commit_operation.
Refer to the documentation of Sketchup::EntitiesBuilder for more details.
↑ #clear! ⇒ Boolean
The clear! method is used to remove all entities from the collection of entities.
↑ #count ⇒ Integer
↑ #each {|entity| ... } ⇒ nil
Don't remove content from this collection while iterating over it with #each. This would change the size of the collection and cause elements to be skipped as the indices change. Instead copy the current collection to an array using to_a
and then use each
on the array, when removing content.
The #each method is used to iterate through the entities in the collection of entities.
↑ #erase_entities(entities) ⇒ nil #erase_entities(*entities) ⇒ nil
It's faster to use this method and erase in bulk than to iterate individual drawing elements calling Drawingelement#erase!.
The #erase_entities method is used to erase one or more entities from the model.
↑ #fill_from_mesh(polygon_mesh, weld_vertices = true, smooth_flags = Geom::PolygonMesh::AUTO_SOFTEN|Geom::PolygonMesh::SMOOTH_SOFT_EDGES, f_material = nil, b_material = nil) ⇒ Boolean
The #fill_from_mesh method is used to add faces and edges to the collection of entities from a Geom::PolygonMesh. It requires that the entities collection to be filled is empty. It has higher performance than #add_faces_from_mesh, but does less error checking as it builds the geometry.
The smooth_flags
parameter can contain any of the following values if passed. The constants were added in SketchUp 2014. For previous versions, numeric values have to be specified instead of the Ruby constants:
-
1: Geom::PolygonMesh::HIDE_BASED_ON_INDEX (Negative point index will hide the edge.)
-
2: Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX (Negative point index will soften the edge.)
-
4: Geom::PolygonMesh::AUTO_SOFTEN (Interior edges are softened.)
-
8: Geom::PolygonMesh::SMOOTH_SOFT_EDGES (All soft edges will also be smooth.)
The 4rd and 5th parameters will accept a Material object or a string name of a material currently in the model.
↑ #intersect_with(recurse, transform1, entities1, transform2, hidden, entities2) ⇒ nil
The intersect_with method is used to intersect an entities, component instance, or group object with a entities object.
↑ #length ⇒ Integer
The #length method is used to retrieve the number of entities in the collection of entities.
↑ #model ⇒ Sketchup::Model
The model method is used to retrieve the model that contains the collection of entities.
↑ #parent ⇒ Sketchup::ComponentDefinition, Sketchup::Model
The parent method is used to retrieve the parent or object that contains the collection of entities. A parent can be either a Model or ComponentDefinition object.
↑ #remove_observer(observer) ⇒ Boolean
The remove_observer method is used to remove an observer from the current object.
↑ #transform_by_vectors(sub_entities, vectors) ⇒ Sketchup::Entities
The transform_by_vectors method is used to apply several vectors to several sub-entities all at once.
↑ #transform_entities(transform, entities) ⇒ Boolean
The transform_entities method is used to apply a transform to several sub-entities all at once.
If you are transforming entities in the active drawing context or any of its parent drawing contexts, the transformation will be interpreted as relative to the global coordinate system. Otherwise the transformation will be interpreted as being on the local coordinate system.