sketchup-api-stubs 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs.rb +1 -1
  3. data/lib/sketchup-api-stubs/sketchup.rb +147 -145
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +498 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
  16. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  17. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
  18. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
  20. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  21. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
  22. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  23. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  25. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  26. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  27. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  28. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  29. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  30. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  31. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  33. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  34. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  36. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  37. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  38. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  39. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  40. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  41. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
  42. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  43. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  44. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  47. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  135. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
  136. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
  137. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
  138. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  139. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  140. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  141. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  142. data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
  143. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  144. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  145. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  146. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
  147. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  148. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  149. data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
  150. metadata +4 -2
@@ -1,211 +1,211 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The EdgeUse class defines how an Edge is used in the definition of a Face.
5
- #
6
- # @version SketchUp 6.0
7
- class Sketchup::EdgeUse < Sketchup::Entity
8
-
9
- # Instance Methods
10
-
11
- # The edge method is used to retrieve the edge for the edge use.
12
- #
13
- # @example
14
- # entities = Sketchup.active_model.active_entities
15
- # points = []
16
- # points << Geom::Point3d.new(0, 0, 0)
17
- # points << Geom::Point3d.new(100, 0, 0)
18
- # points << Geom::Point3d.new(100, 200, 0)
19
- # points << Geom::Point3d.new(0, 200, 0)
20
- # face = entities.add_face(points)
21
- # loop = face.outer_loop
22
- # edgeuses = loop.edgeuses
23
- # edgeuse = edgeuses[0]
24
- # edge = edgeuse.edge
25
- #
26
- # @return edge - an Edge object used by this edge use
27
- #
28
- # @version SketchUp 6.0
29
- def edge
30
- end
31
-
32
- # The end_vertex_normal method is used to retrieve the vertex normal for the
33
- # end point of this edgeuse.
34
- #
35
- # @example
36
- # entities = Sketchup.active_model.active_entities
37
- # points = []
38
- # points << Geom::Point3d.new(0, 0, 0)
39
- # points << Geom::Point3d.new(100, 0, 0)
40
- # points << Geom::Point3d.new(100, 200, 0)
41
- # points << Geom::Point3d.new(0, 200, 0)
42
- # face = entities.add_face(points)
43
- # loop = face.outer_loop
44
- # edgeuses = loop.edgeuses
45
- # edgeuse = edgeuses[0]
46
- # vector3d = edgeuse.end_vertex_normal
47
- #
48
- # @return vector3d - a vector3d object if successful.
49
- #
50
- # @version SketchUp 6.0
51
- def end_vertex_normal
52
- end
53
-
54
- # The face method is used to retrieve the face used by this edge use.
55
- #
56
- # @example
57
- # entities = Sketchup.active_model.active_entities
58
- # points = []
59
- # points << Geom::Point3d.new(0, 0, 0)
60
- # points << Geom::Point3d.new(100, 0, 0)
61
- # points << Geom::Point3d.new(100, 200, 0)
62
- # points << Geom::Point3d.new(0, 200, 0)
63
- # face = entities.add_face(points)
64
- # loop = face.outer_loop
65
- # edgeuses = loop.edgeuses
66
- # edgeuse = edgeuses[0]
67
- # face = edgeuse.face
68
- #
69
- # @return face - a Face object used by this edge use
70
- #
71
- # @version SketchUp 6.0
72
- def face
73
- end
74
-
75
- # The loop method is used to retrieve the loop for this edge use.
76
- #
77
- # @example
78
- # entities = Sketchup.active_model.active_entities
79
- # points = []
80
- # points << Geom::Point3d.new(0, 0, 0)
81
- # points << Geom::Point3d.new(100, 0, 0)
82
- # points << Geom::Point3d.new(100, 200, 0)
83
- # points << Geom::Point3d.new(0, 200, 0)
84
- # face = entities.add_face(points)
85
- # loop = face.outer_loop
86
- # edgeuses = loop.edgeuses
87
- # edgeuse = edgeuses[0]
88
- # loop = edgeuse.loop
89
- #
90
- # @return loop - a Loop object that contains this edge use.
91
- #
92
- # @version SketchUp 6.0
93
- def loop
94
- end
95
-
96
- # The next method is used to retrieve the next edge use in a loop.
97
- #
98
- # @example
99
- # entities = Sketchup.active_model.active_entities
100
- # points = []
101
- # points << Geom::Point3d.new(0, 0, 0)
102
- # points << Geom::Point3d.new(100, 0, 0)
103
- # points << Geom::Point3d.new(100, 200, 0)
104
- # points << Geom::Point3d.new(0, 200, 0)
105
- # face = entities.add_face(points)
106
- # loop = face.outer_loop
107
- # edgeuses = loop.edgeuses
108
- # edgeuse = edgeuses[0]
109
- # next_edgeuse = edgeuse.next
110
- #
111
- # @return edgeuse - the next EdgeUse object in a loop
112
- #
113
- # @version SketchUp 6.0
114
- def next
115
- end
116
-
117
- # The partners method is used to retrieve all of the partner edge uses that
118
- # uses the same edge.
119
- #
120
- # @example
121
- # entities = Sketchup.active_model.active_entities
122
- # points1 = []
123
- # points1 << Geom::Point3d.new(0, 0, 0)
124
- # points1 << Geom::Point3d.new(100, 0, 0)
125
- # points1 << Geom::Point3d.new(100, 200, 0)
126
- # points1 << Geom::Point3d.new(0, 200, 0)
127
- # face1 = entities.add_face(points1)
128
- # points2 = []
129
- # points2 << Geom::Point3d.new(100, 0, 0)
130
- # points2 << Geom::Point3d.new(200, 0, 0)
131
- # points2 << Geom::Point3d.new(200, 200, 0)
132
- # points2 << Geom::Point3d.new(100, 200, 0)
133
- # face2 = entities.add_face(points2)
134
- # loop = face1.outer_loop
135
- # edgeuses = loop.edgeuses
136
- # edgeuse = edgeuses[1]
137
- # partners = edgeuse.partners
138
- #
139
- # @return array - an array of partner Edge Use objects.
140
- #
141
- # @version SketchUp 6.0
142
- def partners
143
- end
144
-
145
- # The previous method is used to retrieve the previous edge use in a loop.
146
- #
147
- # @example
148
- # entities = Sketchup.active_model.active_entities
149
- # points = []
150
- # points << Geom::Point3d.new(0, 0, 0)
151
- # points << Geom::Point3d.new(100, 0, 0)
152
- # points << Geom::Point3d.new(100, 200, 0)
153
- # points << Geom::Point3d.new(0, 200, 0)
154
- # face = entities.add_face(points)
155
- # loop = face.outer_loop
156
- # edgeuses = loop.edgeuses
157
- # edgeuse = edgeuses[0]
158
- # previous_edgeuse = edgeuse.previous
159
- #
160
- # @return edgeuse - the previous Edge Use object in the loop
161
- #
162
- # @version SketchUp 6.0
163
- def previous
164
- end
165
-
166
- # The reversed? method is used to determine if the edge direction is opposite
167
- # of the edge use direction. The edge use direction is the same as the loop
168
- # it belongs to.
169
- #
170
- # @example
171
- # entities = Sketchup.active_model.active_entities
172
- # points = []
173
- # points << Geom::Point3d.new(0, 0, 0)
174
- # points << Geom::Point3d.new(100, 0, 0)
175
- # points << Geom::Point3d.new(100, 200, 0)
176
- # points << Geom::Point3d.new(0, 200, 0)
177
- # face = entities.add_face(points)
178
- # loop = face.outer_loop
179
- # edgeuses = loop.edgeuses
180
- # edgeuse = edgeuses[0]
181
- # reversed = edgeuse.reversed?
182
- #
183
- # @return [Boolean] boolean - true if reversed, false if not reversed.
184
- #
185
- # @version SketchUp 6.0
186
- def reversed?
187
- end
188
-
189
- # The start_vertex_normal method is used to retrieve the vertex normal for
190
- # the start point of this edgeuse.
191
- #
192
- # @example
193
- # entities = Sketchup.active_model.active_entities
194
- # points = []
195
- # points << Geom::Point3d.new(0, 0, 0)
196
- # points << Geom::Point3d.new(100, 0, 0)
197
- # points << Geom::Point3d.new(100, 200, 0)
198
- # points << Geom::Point3d.new(0, 200, 0)
199
- # face = entities.add_face(points)
200
- # loop = face.outer_loop
201
- # edgeuses = loop.edgeuses
202
- # edgeuse = edgeuses[0]
203
- # vector3d = edgeuse.start_vertex_normal
204
- #
205
- # @return vector3d - a vector3d object if successful.
206
- #
207
- # @version SketchUp 6.0
208
- def start_vertex_normal
209
- end
210
-
211
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The EdgeUse class defines how an Edge is used in the definition of a Face.
5
+ #
6
+ # @version SketchUp 6.0
7
+ class Sketchup::EdgeUse < Sketchup::Entity
8
+
9
+ # Instance Methods
10
+
11
+ # The edge method is used to retrieve the edge for the edge use.
12
+ #
13
+ # @example
14
+ # entities = Sketchup.active_model.active_entities
15
+ # points = []
16
+ # points << Geom::Point3d.new(0, 0, 0)
17
+ # points << Geom::Point3d.new(100, 0, 0)
18
+ # points << Geom::Point3d.new(100, 200, 0)
19
+ # points << Geom::Point3d.new(0, 200, 0)
20
+ # face = entities.add_face(points)
21
+ # loop = face.outer_loop
22
+ # edgeuses = loop.edgeuses
23
+ # edgeuse = edgeuses[0]
24
+ # edge = edgeuse.edge
25
+ #
26
+ # @return edge - an Edge object used by this edge use
27
+ #
28
+ # @version SketchUp 6.0
29
+ def edge
30
+ end
31
+
32
+ # The end_vertex_normal method is used to retrieve the vertex normal for the
33
+ # end point of this edgeuse.
34
+ #
35
+ # @example
36
+ # entities = Sketchup.active_model.active_entities
37
+ # points = []
38
+ # points << Geom::Point3d.new(0, 0, 0)
39
+ # points << Geom::Point3d.new(100, 0, 0)
40
+ # points << Geom::Point3d.new(100, 200, 0)
41
+ # points << Geom::Point3d.new(0, 200, 0)
42
+ # face = entities.add_face(points)
43
+ # loop = face.outer_loop
44
+ # edgeuses = loop.edgeuses
45
+ # edgeuse = edgeuses[0]
46
+ # vector3d = edgeuse.end_vertex_normal
47
+ #
48
+ # @return vector3d - a vector3d object if successful.
49
+ #
50
+ # @version SketchUp 6.0
51
+ def end_vertex_normal
52
+ end
53
+
54
+ # The face method is used to retrieve the face used by this edge use.
55
+ #
56
+ # @example
57
+ # entities = Sketchup.active_model.active_entities
58
+ # points = []
59
+ # points << Geom::Point3d.new(0, 0, 0)
60
+ # points << Geom::Point3d.new(100, 0, 0)
61
+ # points << Geom::Point3d.new(100, 200, 0)
62
+ # points << Geom::Point3d.new(0, 200, 0)
63
+ # face = entities.add_face(points)
64
+ # loop = face.outer_loop
65
+ # edgeuses = loop.edgeuses
66
+ # edgeuse = edgeuses[0]
67
+ # face = edgeuse.face
68
+ #
69
+ # @return face - a Face object used by this edge use
70
+ #
71
+ # @version SketchUp 6.0
72
+ def face
73
+ end
74
+
75
+ # The loop method is used to retrieve the loop for this edge use.
76
+ #
77
+ # @example
78
+ # entities = Sketchup.active_model.active_entities
79
+ # points = []
80
+ # points << Geom::Point3d.new(0, 0, 0)
81
+ # points << Geom::Point3d.new(100, 0, 0)
82
+ # points << Geom::Point3d.new(100, 200, 0)
83
+ # points << Geom::Point3d.new(0, 200, 0)
84
+ # face = entities.add_face(points)
85
+ # loop = face.outer_loop
86
+ # edgeuses = loop.edgeuses
87
+ # edgeuse = edgeuses[0]
88
+ # loop = edgeuse.loop
89
+ #
90
+ # @return loop - a Loop object that contains this edge use.
91
+ #
92
+ # @version SketchUp 6.0
93
+ def loop
94
+ end
95
+
96
+ # The next method is used to retrieve the next edge use in a loop.
97
+ #
98
+ # @example
99
+ # entities = Sketchup.active_model.active_entities
100
+ # points = []
101
+ # points << Geom::Point3d.new(0, 0, 0)
102
+ # points << Geom::Point3d.new(100, 0, 0)
103
+ # points << Geom::Point3d.new(100, 200, 0)
104
+ # points << Geom::Point3d.new(0, 200, 0)
105
+ # face = entities.add_face(points)
106
+ # loop = face.outer_loop
107
+ # edgeuses = loop.edgeuses
108
+ # edgeuse = edgeuses[0]
109
+ # next_edgeuse = edgeuse.next
110
+ #
111
+ # @return edgeuse - the next EdgeUse object in a loop
112
+ #
113
+ # @version SketchUp 6.0
114
+ def next
115
+ end
116
+
117
+ # The partners method is used to retrieve all of the partner edge uses that
118
+ # uses the same edge.
119
+ #
120
+ # @example
121
+ # entities = Sketchup.active_model.active_entities
122
+ # points1 = []
123
+ # points1 << Geom::Point3d.new(0, 0, 0)
124
+ # points1 << Geom::Point3d.new(100, 0, 0)
125
+ # points1 << Geom::Point3d.new(100, 200, 0)
126
+ # points1 << Geom::Point3d.new(0, 200, 0)
127
+ # face1 = entities.add_face(points1)
128
+ # points2 = []
129
+ # points2 << Geom::Point3d.new(100, 0, 0)
130
+ # points2 << Geom::Point3d.new(200, 0, 0)
131
+ # points2 << Geom::Point3d.new(200, 200, 0)
132
+ # points2 << Geom::Point3d.new(100, 200, 0)
133
+ # face2 = entities.add_face(points2)
134
+ # loop = face1.outer_loop
135
+ # edgeuses = loop.edgeuses
136
+ # edgeuse = edgeuses[1]
137
+ # partners = edgeuse.partners
138
+ #
139
+ # @return array - an array of partner Edge Use objects.
140
+ #
141
+ # @version SketchUp 6.0
142
+ def partners
143
+ end
144
+
145
+ # The previous method is used to retrieve the previous edge use in a loop.
146
+ #
147
+ # @example
148
+ # entities = Sketchup.active_model.active_entities
149
+ # points = []
150
+ # points << Geom::Point3d.new(0, 0, 0)
151
+ # points << Geom::Point3d.new(100, 0, 0)
152
+ # points << Geom::Point3d.new(100, 200, 0)
153
+ # points << Geom::Point3d.new(0, 200, 0)
154
+ # face = entities.add_face(points)
155
+ # loop = face.outer_loop
156
+ # edgeuses = loop.edgeuses
157
+ # edgeuse = edgeuses[0]
158
+ # previous_edgeuse = edgeuse.previous
159
+ #
160
+ # @return edgeuse - the previous Edge Use object in the loop
161
+ #
162
+ # @version SketchUp 6.0
163
+ def previous
164
+ end
165
+
166
+ # The reversed? method is used to determine if the edge direction is opposite
167
+ # of the edge use direction. The edge use direction is the same as the loop
168
+ # it belongs to.
169
+ #
170
+ # @example
171
+ # entities = Sketchup.active_model.active_entities
172
+ # points = []
173
+ # points << Geom::Point3d.new(0, 0, 0)
174
+ # points << Geom::Point3d.new(100, 0, 0)
175
+ # points << Geom::Point3d.new(100, 200, 0)
176
+ # points << Geom::Point3d.new(0, 200, 0)
177
+ # face = entities.add_face(points)
178
+ # loop = face.outer_loop
179
+ # edgeuses = loop.edgeuses
180
+ # edgeuse = edgeuses[0]
181
+ # reversed = edgeuse.reversed?
182
+ #
183
+ # @return [Boolean] boolean - true if reversed, false if not reversed.
184
+ #
185
+ # @version SketchUp 6.0
186
+ def reversed?
187
+ end
188
+
189
+ # The start_vertex_normal method is used to retrieve the vertex normal for
190
+ # the start point of this edgeuse.
191
+ #
192
+ # @example
193
+ # entities = Sketchup.active_model.active_entities
194
+ # points = []
195
+ # points << Geom::Point3d.new(0, 0, 0)
196
+ # points << Geom::Point3d.new(100, 0, 0)
197
+ # points << Geom::Point3d.new(100, 200, 0)
198
+ # points << Geom::Point3d.new(0, 200, 0)
199
+ # face = entities.add_face(points)
200
+ # loop = face.outer_loop
201
+ # edgeuses = loop.edgeuses
202
+ # edgeuse = edgeuses[0]
203
+ # vector3d = edgeuse.start_vertex_normal
204
+ #
205
+ # @return vector3d - a vector3d object if successful.
206
+ #
207
+ # @version SketchUp 6.0
208
+ def start_vertex_normal
209
+ end
210
+
211
+ end
@@ -1,1119 +1,1126 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Entities class is a container class for all entities in a model (it is a
5
- # collection of Entity objects).
6
- #
7
- # @version SketchUp 6.0
8
- class Sketchup::Entities
9
-
10
- # Includes
11
-
12
- include Enumerable
13
-
14
- # Instance Methods
15
-
16
- # The {#[]} method is used to retrieve an entity by its index in an array of
17
- # entities. The index is a number between +0+ and entities.length - 1. In
18
- # general, it is preferable to use the {#each} method to iterate though all
19
- # of the entities in the collection as it will be much more efficient.
20
- #
21
- # @example
22
- # entities = Sketchup.active_model.entities
23
- # entity = entities[0]
24
- #
25
- # @param [Integer] entity_index
26
- # The index for a specific entity.
27
- #
28
- # @return [Sketchup::Entity, nil] an {Sketchup::Entity} object if successful,
29
- # +nil+ if not found
30
- #
31
- # @see #at
32
- #
33
- # @version SketchUp 6.0
34
- def [](entity_index)
35
- end
36
-
37
- # The active_section_plane method is used to access the currently active
38
- # section plane in the Entities object.
39
- #
40
- # @example
41
- # sp = Sketchup.active_model.entities.active_section_plane
42
- # puts "Active section plane is #{sp}" if !sp.nil?
43
- #
44
- # @return [Sketchup::SectionPlane, nil] the active SectionPlane or nil if none is active.
45
- #
46
- # @version SketchUp 2014
47
- def active_section_plane
48
- end
49
-
50
- # The active_section_plane= method is used to set the active section plane in
51
- # the Entities object.
52
- #
53
- # @example
54
- # entities = Sketchup.active_model.entities
55
- # sp = entities.add_section_plane([50, 50, 0], [1.0, 1.0, 0])
56
- # entities.active_section_plane = sp
57
- #
58
- # @param [Sketchup::SectionPlane, nil] sec_plane
59
- # the SectionPlane object to be set active. Pass nil to
60
- # deactivate any active section plane.
61
- #
62
- # @return [Sketchup::SectionPlane, nil] the SectionPlane object that was set active.
63
- #
64
- # @version SketchUp 2014
65
- def active_section_plane=(sec_plane)
66
- end
67
-
68
- # The add_3d_text is used to create 3D text. It will be added as edges and
69
- # faces drawn at the origin.
70
- #
71
- # @example
72
- # # Draw the word "test" at the origin of the model, aligned left, in
73
- # # Arial Bold, not italics, 1" in size, best tolerance quality, filled,
74
- # # with an extrusion size of 5".
75
- # entities = Sketchup.active_model.entities
76
- # success = entities.add_3d_text('test', TextAlignLeft, "Arial",
77
- # true, false, 1.0, 0.0, 0.5, true, 5.0)
78
- #
79
- # @param [String] string
80
- # The text to create.
81
- #
82
- # @param [Integer] alignment
83
- # Number that defines the alignment. There are constants
84
- # called TextAlignLeft, TextAlignRight, and
85
- # TextAlignCenter that can be passed.
86
- #
87
- # @param [String] font
88
- # font name.
89
- #
90
- # @param [Boolean] is_bold
91
- # true for bold.
92
- #
93
- # @param [Boolean] is_italic
94
- # true for italic.
95
- #
96
- # @param [Numeric] letter_height
97
- # Height of the text in inches.
98
- #
99
- # @param [Numeric] tolerance
100
- # Tolerance of the curve creation. Defaults to
101
- # 0.0, which creates the highest possible curve quality.
102
- #
103
- # @param [Numeric] z
104
- # z position in inches.
105
- #
106
- # @param [Boolean] is_filled
107
- # true for filled, which will put a face between the edges of the letters.
108
- #
109
- # @param [Numeric] extrusion
110
- # Extrusion depth in inches.
111
- #
112
- # @return [Boolean] true if successful
113
- #
114
- # @version SketchUp 6.0
115
- def 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)
116
- end
117
-
118
- # The add_arc method is used to create an arc curve segment.
119
- #
120
- # @example
121
- # centerpoint = Geom::Point3d.new
122
- # # Create a circle perpendicular to the normal or Z axis
123
- # vector = Geom::Vector3d.new 0,0,1
124
- # vector2 = Geom::Vector3d.new 1,0,0
125
- # vector3 = vector.normalize!
126
- # model = Sketchup.active_model
127
- # entities = model.active_entities
128
- # edges = entities.add_arc centerpoint, vector2, vector3, 10, 15.degrees, 135.degrees
129
- # arccurve = edges.first.curve
130
- #
131
- # @overload add_arc(center, xaxis, normal, radius, start_angle, end_angle)
132
- #
133
- # @param [Geom::Point3d] center A Point3d object representing the center .
134
- # @param [Geom::Vector3d] xaxis A Vector3d object representing xaxis for the arc.
135
- # @param [Geom::Vector3d] normal A Vector3d object representing normal for the arc.
136
- # @param [Numeric] radius The radius of the arc.
137
- # @param [Numeric] start_angle Start angle for the arc, in radians.
138
- # @param [Numeric] end_angle End angle for the arc, in radians.
139
- # @return [Array<Sketchup::Edge>] an array of Edge objects that define the arc.
140
- #
141
- # @overload add_arc(center, xaxis, normal, radius, start_angle, end_angle, num_segments)
142
- #
143
- # @param [Geom::Point3d] center A Point3d object representing the center .
144
- # @param [Geom::Vector3d] xaxis A Vector3d object representing xaxis for the arc.
145
- # @param [Geom::Vector3d] normal A Vector3d object representing normal for the arc.
146
- # @param [Numeric] radius The radius of the arc.
147
- # @param [Numeric] start_angle Start angle for the arc, in radians.
148
- # @param [Numeric] end_angle End angle for the arc, in radians.
149
- # @param [Integer] num_segments How many segments to draw.
150
- # @return [Array<Sketchup::Edge>] an array of Edge objects that define the arc.
151
- #
152
- # @version SketchUp 6.0
153
- def add_arc(*args)
154
- end
155
-
156
- # The add_circle method is used to create a circle.
157
- #
158
- # @example
159
- # centerpoint = Geom::Point3d.new
160
- # # Create a circle perpendicular to the normal or Z axis
161
- # vector = Geom::Vector3d.new 0,0,1
162
- # vector2 = vector.normalize!
163
- # model = Sketchup.active_model
164
- # entities = model.active_entities
165
- # edges = entities.add_circle centerpoint, vector2, 10
166
- #
167
- # @param [Geom::Point3d] center
168
- # A Point3d object representing the center.
169
- #
170
- # @param [Geom::Vector3d] normal
171
- # A Vector3d object representing normal for the arc.
172
- #
173
- # @param [Numeric] radius
174
- # The radius of the arc.
175
- #
176
- # @param [Integer] numsegs
177
- # The number of segments.
178
- #
179
- # @return [Array<Sketchup::Edge>] an Array object containing edges if successful
180
- #
181
- # @version SketchUp 6.0
182
- def add_circle(center, normal, radius, numsegs = 24)
183
- end
184
-
185
- # The {#add_cline} method is used to create a construction line. This can be
186
- # finite or infinite.
187
- #
188
- # @example
189
- # model = Sketchup.active_model
190
- # entities = model.active_entities
191
- # point1 = Geom::Point3d.new(0, 0, 0)
192
- # point2 = Geom::Point3d.new(20, 20, 20)
193
- # cline = entities.add_cline(point1, point2)
194
- #
195
- # @overload add_cline(start_point, end_point, stipple = '-')
196
- #
197
- # Creates a finite construction line.
198
- # @param [Geom::Point3d] start_point
199
- # @param [Geom::Point3d] end_point
200
- # @param [String] stipple See {ConstructionLine#stipple=} for acceptable
201
- # patterns.
202
- #
203
- # @overload add_cline(point, vector, stipple = '-')
204
- #
205
- # Creates an infinite construction line.
206
- # @param [Geom::Point3d] point
207
- # @param [Geom::Point3d] vector
208
- # @param [String] stipple See {ConstructionLine#stipple=} for acceptable
209
- # patterns.
210
- #
211
- # @return [Sketchup::ConstructionLine]
212
- #
213
- # @version SketchUp 6.0
214
- def add_cline(*args)
215
- end
216
-
217
- # The add_cpoint method is used to create a construction point.
218
- #
219
- # @example
220
- # model = Sketchup.active_model
221
- # entities = model.active_entities
222
- # point1 = Geom::Point3d.new(100,200,300)
223
- # constpoint = entities.add_cpoint point1
224
- # if (constpoint)
225
- # UI.messagebox constpoint
226
- # else
227
- # UI.messagebox "Failure"
228
- # end
229
- #
230
- # @param [Geom::Point3d] point
231
- # A Point3d object.
232
- #
233
- # @return [Sketchup::ConstructionPoint] a ConstructionPoint object if
234
- # successful
235
- #
236
- # @version SketchUp 6.0
237
- def add_cpoint(point)
238
- end
239
-
240
- # The add_curve method is used to create a curve from a collection of edges.
241
- #
242
- # The arguments are either Points or an Array of Points. At least 2 points are
243
- # required.
244
- #
245
- # @example
246
- # entities = Sketchup.active_model.entities
247
- # curve = entities.add_curve [0,0,0], [0,10,0], [1,20,0]
248
- #
249
- # @overload add_curve(points)
250
- #
251
- # @param [Array<Geom::Point3d>] points
252
- #
253
- # @overload add_curve(*points)
254
- #
255
- # @param [Array<Geom::Point3d>] points
256
- #
257
- # @return [Array<Sketchup::Edge>]
258
- #
259
- # @version SketchUp 6.0
260
- def add_curve(*args)
261
- end
262
-
263
- # The {#add_dimension_linear} method adds a linear dimension to the entities.
264
- #
265
- # @example
266
- # entities = Sketchup.active_model.entities
267
- # # From point to point
268
- # dim = entities.add_dimension_linear [50, 10, 0], [100, 10, 0], [0, 20, 0]
269
- # # Between edge vertices
270
- # edge = entities.add_edges([50,50,0], [40,10,0])[0]
271
- # v0 = edge.start
272
- # v1 = edge.end
273
- # dim = entities.add_dimension_linear v0, v1, [0, 0, 20]
274
- # # From an edge's midpoint to a construction point
275
- # p0 = edge.start.position
276
- # p1 = edge.end.position
277
- # mp = Geom::Point3d.new((p0.x+p1.x)/2.0, (p0.y+p1.y)/2.0, (p0.z+p1.z)/2.0)
278
- # cp = entities.add_cpoint [50, 10, 0]
279
- # dim = entities.add_dimension_linear [edge, mp], cp, [20, 0, 0]
280
- # # alternatively, the start params could be passed in separately
281
- # dim = entities.add_dimension_linear edge, mp, cp, [20, 0, 0]
282
- #
283
- # @example Instance path
284
- # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
285
- # edge = instance.definition.entities.grep(Sketchup::Edge).first
286
- # instance_path = Sketchup::InstancePath.new([instance, edge])
287
- # start_point = edge.start.position
288
- # end_point = edge.end.position
289
- # vector = Geom::Vector3d.new(30, 30, 0)
290
- # Sketchup.active_model.entities.add_dimension_linear([instance_path, start_point], [instance_path, end_point], vector)
291
- #
292
- # @example Instance path as an array
293
- # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
294
- # edge = instance.definition.entities.grep(Sketchup::Edge).first
295
- # path = [instance, edge]
296
- # start_point = edge.start.position
297
- # end_point = edge.end.position
298
- # vector = Geom::Vector3d.new(30, 30, 0)
299
- # Sketchup.active_model.entities.add_dimension_linear([path, start_point], [path, end_point], vector)
300
- #
301
- # @overload add_dimension_linear(start_pt_or_entity, end_pt_or_entity, offset_vector)
302
- #
303
- # @param [Geom::Point3d, Sketchup::Entity] start_pt_or_entity
304
- # the reference point and/or entity at the start of
305
- # the dimension. This parameter can take several
306
- # forms:
307
- # @param [Geom::Point3d, Sketchup::Entity] end_pt_or_entity
308
- # the reference point and/or entity at the end
309
- # of the dimension. This parameter takes the exact
310
- # same forms as 'start_pt_or_entity'.
311
- # @param [Geom::Vector3d] offset_vector
312
- # the parallel offset vector from the reference line
313
- # to the dimension line measured from the 'start'
314
- # reference point.
315
- #
316
- # @overload add_dimension_linear(start_instance_path, end_instance_path, offset_vector)
317
- #
318
- # @note Added in SketchUp 2019.
319
- # @param [Array<Sketchup::InstancePath, Geom::Point3d>] start_instance_path An array
320
- # containing a {Sketchup::InstancePath} and a {Geom::Point3d}.
321
- # @param [Array<Sketchup::InstancePath, Geom::Point3d>] end_instance_path An array
322
- # containing a {Sketchup::InstancePath} and a {Geom::Point3d}.
323
- # @param [Geom::Vector3d] offset_vector The parallel offset vector from the
324
- # reference line to the dimension line measured from the start reference
325
- # point.
326
- #
327
- # @overload add_dimension_linear(start_array, end_array, offset_vector)
328
- #
329
- # @note Added in SketchUp 2019.
330
- # @param [Array(Array<Entity>, Geom::Point3d)] start_array
331
- # The {Array<Entity>} must contain one or more {Sketchup::ComponentInstance}'s
332
- # and a leaf entity. The leaf entity can be a {Sketchup::Vertex},
333
- # {Sketchup::ConstructionPoint}, {Sketchup::ConstructionLine}, or
334
- # {Sketchup::Edge}. The {Geom::Point3d} is the point associated with the leaf entity.
335
- # @param [Array(Array<Entity>, Geom::Point3d)] end_array
336
- # The {Array<Entity>} must contain one or more {Sketchup::ComponentInstance}'s
337
- # and a leaf entity. The leaf entity can be a {Sketchup::Vertex},
338
- # {Sketchup::ConstructionPoint}, {Sketchup::ConstructionLine}, or
339
- # {Sketchup::Edge}. The {Geom::Point3d} is the point associated with the leaf entity.
340
- # @param [Geom::Vector3d] offset_vector The parallel offset vector from the
341
- # reference line to the dimension line measured form the start reference
342
- # point.
343
- #
344
- # @return [Sketchup::DimensionLinear] the created dimension
345
- #
346
- # @version SketchUp 2014
347
- def add_dimension_linear(*args)
348
- end
349
-
350
- # The add_dimension_radial method adds a radial dimension (i.e arc/circle
351
- # radius/diameter dimension) to the entities.
352
- #
353
- # @example
354
- # entities = Sketchup.active_model.entities
355
- # # Create a circle
356
- # centerpoint = Geom::Point3d.new(10, 10, 0)
357
- # vector = Geom::Vector3d.new(0, 0, 1)
358
- # edges = entities.add_circle centerpoint, vector, 10
359
- # circle = edges[0].curve
360
- # dim = entities.add_dimension_radial circle, [30, 30, 0]
361
- #
362
- # @param [Sketchup::ArcCurve] arc_curve
363
- # an ArcCurve object to which the dimension is to be
364
- # attached.
365
- #
366
- # @param [Geom::Point3d] leader_break_pt
367
- # a Point3d for the break point on the leader where the
368
- # dimension text is attached.
369
- #
370
- # @return [Sketchup::DimensionRadial] the created dimension
371
- #
372
- # @version SketchUp 2014
373
- def add_dimension_radial(arc_curve, leader_break_pt)
374
- end
375
-
376
- # The {#add_edges} method is used to add a set of connected edges to the
377
- # {Sketchup::Entities} collection.
378
- #
379
- # @example
380
- # model = Sketchup.active_model
381
- # entities = model.active_entities
382
- # point1 = Geom::Point3d.new(0,0,0)
383
- # point2 = Geom::Point3d.new(20,20,20)
384
- # edges = entities.add_edges point1, point2
385
- #
386
- # @note If the points form a closed loop, the first and last vertex will not
387
- # merge. If you intend to create a face from the edges, use {#add_face}
388
- # directly.
389
- #
390
- # @overload add_edges(points)
391
- #
392
- # @param [Array<Geom::Point3d>] points At least two points required.
393
- # @return [Array<Sketchup::Edge>]
394
- #
395
- # @overload add_edges(*points)
396
- #
397
- # @param [Array<Geom::Point3d>] points At least two points required.
398
- # @return [Array<Sketchup::Edge>]
399
- #
400
- # @return [Array<Sketchup::Edge>] an array of Edge objects if successful
401
- #
402
- # @version SketchUp 6.0
403
- def add_edges(*args)
404
- end
405
-
406
- # The add_face method is used to create a face. You can call this method a
407
- # number of ways:
408
- #
409
- # - entities.add_face(edge1, edge2, edge3, ...)
410
- # - entities.add_face(edgearray)
411
- # - entities.add_face(pt1, pt2, pt3, ...)
412
- # - entities.add_face([pt1, pt2, pt3,...])
413
- # - entities.add_face(curve)
414
- #
415
- # For the last form that takes a Curve, the curve must be closed - like a
416
- # circle.
417
- #
418
- # Note that a special case exists for any face created on the ground plane, in
419
- # which case the vertex order is ignored and the face is always facing down.
420
- #
421
- # @example
422
- # depth = 100
423
- # width = 100
424
- # model = Sketchup.active_model
425
- # entities = model.active_entities
426
- # pts = []
427
- # pts[0] = [0, 0, 0]
428
- # pts[1] = [width, 0, 0]
429
- # pts[2] = [width, depth, 0]
430
- # pts[3] = [0, depth, 0]
431
- # # Add the face to the entities in the model
432
- # face = entities.add_face(pts)
433
- #
434
- # @overload add_face(entities)
435
- #
436
- # @param [Array<Sketchup::Edge>, Array<Geom::Point3d>, Sketchup::Curve] entities
437
- #
438
- # @overload add_face(*entities)
439
- #
440
- # @param [Array<Sketchup::Edge>, Array<Geom::Point3d>] entities
441
- #
442
- # @return [Sketchup::Face, nil]
443
- #
444
- # @version SketchUp 6.0
445
- def add_face(*args)
446
- end
447
-
448
- # The {#add_faces_from_mesh} method is used to add Face objects to the
449
- # collection of entities from a PolygonMesh.
450
- #
451
- # The +smooth_flags+ parameter can contain any of the following values if
452
- # passed. The constants were added in SketchUp 2014. For previous versions,
453
- # numeric values have to be specified instead of the Ruby constants.
454
- #
455
- # - 0: {Geom::PolygonMesh::NO_SMOOTH_OR_HIDE}
456
- # - 1: {Geom::PolygonMesh::HIDE_BASED_ON_INDEX} (Negative point index will hide the edge.)
457
- # - 2: {Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX} (Negative point index will soften the edge.)
458
- # - 4: {Geom::PolygonMesh::AUTO_SOFTEN} (Interior edges are softened.)
459
- # - 8: {Geom::PolygonMesh::SMOOTH_SOFT_EDGES} (All soft edges will also be smooth.)
460
- #
461
- # The 3rd and 4th parameters will accept a {sketchup::Material} object or a
462
- # string name of a material currently in the model.
463
- #
464
- # @example
465
- # pm = Geom::PolygonMesh.new
466
- # pm.add_point([ 0, 0, 0]) # 1
467
- # pm.add_point([10, 0, 0]) # 2
468
- # pm.add_point([10,10, 0]) # 3
469
- # pm.add_point([ 0,10, 0]) # 4
470
- # pm.add_point([20, 0, 5]) # 5
471
- # pm.add_point([20,10, 5]) # 6
472
- # pm.add_polygon(1, -2, 3, 4)
473
- # pm.add_polygon(2, 5,6, -3)
474
- #
475
- # # Create a new group that we will populate with the mesh.
476
- # group = Sketchup.active_model.entities.add_group
477
- # material = Sketchup.active_model.materials.add('green')
478
- # smooth_flags = Geom::PolygonMesh::NO_SMOOTH_OR_HIDE
479
- # group.entities.add_faces_from_mesh(pm, smooth_flags, material)
480
- #
481
- # @param [Geom::PolygonMesh] polygon_mesh
482
- #
483
- # @param [Integer] smooth_flags
484
- # flags for softening and smoothing of edges.
485
- #
486
- # @param [Sketchup::Material, String] f_material
487
- # material to paint front faces with.
488
- #
489
- # @param [Sketchup::Material, String] b_material
490
- # material to paint back faces with.
491
- #
492
- # @return [Integer] Number of faces created
493
- #
494
- # @version SketchUp 6.0
495
- def add_faces_from_mesh(polygon_mesh, smooth_flags = Geom::PolygonMesh::AUTO_SOFTEN|Geom::PolygonMesh::SMOOTH_SOFT_EDGES, f_material = nil, b_material = nil)
496
- end
497
-
498
- # The add_group method is used to create an empty group or a group with
499
- # entities.
500
- #
501
- # @example
502
- # model = Sketchup.active_model
503
- # entities = model.active_entities
504
- # group = entities.add_group
505
- #
506
- # @note Calling add_group with entities in its parameters has been known to
507
- # crash SketchUp before version 8.0. It is preferable to create an empty
508
- # group and then add things to its Entities collection.
509
- #
510
- # @overload add_group(entities)
511
- #
512
- # @param [Array<Sketchup::Entity>] entities
513
- # an entities collection to add to the group.
514
- #
515
- # @overload add_group(*entities)
516
- #
517
- # @param [Array<Sketchup::Entity>] entities
518
- # an entities collection to add to the group.
519
- #
520
- # @return [Sketchup::Group]
521
- #
522
- # @version SketchUp 6.0
523
- def add_group(*args)
524
- end
525
-
526
- # The add_image method is used to add an image to the collection of entities.
527
- #
528
- # The width and height are measured in model units (i.e. inches). If the
529
- # height is not given, then it is computed from the width to preserve the
530
- # aspect ratio of the image.
531
- #
532
- # @example
533
- # model = Sketchup.active_model
534
- # entities = model.active_entities
535
- # point = Geom::Point3d.new 10,20,30
536
- # image = entities.add_image "Shapes.jpg", point, 300
537
- # if (image)
538
- # UI.messagebox image
539
- # else
540
- # UI.messagebox "Failure"
541
- # end
542
- #
543
- # @param [String] filename
544
- # A filename for the image file.
545
- #
546
- # @param [Geom::Point3d] point
547
- # A Point3d object representing the insertion point of
548
- # the image.
549
- #
550
- # @param [Numeric] width
551
- # Width for the image.
552
- #
553
- # @param [Numeric] height
554
- # height for the image if you want to control
555
- # width and height independently. Leave as default +0.0+ when you want it
556
- # to be relative to the aspect ratio.
557
- #
558
- # @return [Sketchup::Image, nil] an Image object if successful.
559
- #
560
- # @version SketchUp 6.0
561
- def add_image(filename, point, width, height = 0.0)
562
- end
563
-
564
- # The add_instance method adds a component instance to the collection of
565
- # entities.
566
- #
567
- # @example
568
- # point = Geom::Point3d.new 10,20,30
569
- # transform = Geom::Transformation.new point
570
- # model = Sketchup.active_model
571
- # entities = model.active_entities
572
- # path = Sketchup.find_support_file "Bed.skp",
573
- # "Components/Components Sampler/"
574
- # definitions = model.definitions
575
- # componentdefinition = definitions.load path
576
- # instance = entities.add_instance componentdefinition, transform
577
- # if (instance)
578
- # UI.messagebox instance
579
- # else
580
- # UI.messagebox "Failure"
581
- # end
582
- #
583
- # @param [Sketchup::ComponentDefinition] definition
584
- # A ComponentDefinition object.
585
- #
586
- # @param [Geom::Transformation] transform
587
- # A Transformation object.
588
- #
589
- # @return [Sketchup::ComponentInstance] a ComponentInstance object if successful
590
- #
591
- # @version SketchUp 6.0
592
- def add_instance(definition, transform)
593
- end
594
-
595
- # The add_line method is used to add an edge to the collection of entities.
596
- # This is not to be confused with the concept of a "line" from a geometric
597
- # sense, which is an invisible object represented by an Array of a point
598
- # and a vector. (See the Array class for more information on geometric lines in
599
- # SketchUp.)
600
- #
601
- # This method is the same as add_edges method, but returns a single edge.
602
- #
603
- # @example
604
- # model = Sketchup.active_model
605
- # entities = model.active_entities
606
- # point1 = Geom::Point3d.new(0,0,0)
607
- # point2 = Geom::Point3d.new(20,20,20)
608
- # line = entities.add_line point1,point2
609
- # if (line)
610
- # UI.messagebox line
611
- # else
612
- # UI.messagebox "Failure"
613
- # end
614
- #
615
- # @param [Geom::Point3d] point1
616
- # Point3d object representing the edge's starting point.
617
- #
618
- # @param [Geom::Point3d] point2
619
- # Point3d object representing the edge's ending point.
620
- #
621
- # @return [Sketchup::Edge] a Edge object if successful
622
- #
623
- # @version SketchUp 6.0
624
- def add_line(point1, point2)
625
- end
626
-
627
- # The add_ngon method is used to create a multi-sided polygon.
628
- #
629
- # @example
630
- # entities = Sketchup.active_model.entities
631
- # center = Geom::Point3d.new
632
- # normal = Geom::Vector3d.new(0,0,1)
633
- # radius = 100
634
- # numsides = 6
635
- # edges = entities.add_ngon center, normal, radius, numsides
636
- #
637
- # @param [Geom::Point3d] center
638
- # A Point3d object representing the center of the polygon.
639
- #
640
- # @param [Geom::Vector3d] normal
641
- # A Vector3d object.
642
- #
643
- # @param [Numeric] radius
644
- # A radius.
645
- #
646
- # @param [Integer] numsides
647
- # The number of sides for the polygon.
648
- #
649
- # @return [Array<Sketchup::Edge>] an array of Edges that make up the polygon if
650
- # successful
651
- #
652
- # @version SketchUp 6.0
653
- def add_ngon(center, normal, radius, numsides = 24)
654
- end
655
-
656
- # The add_observer method is used to add an observer to the current object.
657
- #
658
- # @example
659
- # entities = Sketchup.active_model.entities
660
- # status = entities.add_observer observer
661
- #
662
- # @param [Object] observer
663
- # An observer.
664
- #
665
- # @return [Boolean] true if successful, false if unsuccessful.
666
- #
667
- # @version SketchUp 6.0
668
- def add_observer(observer)
669
- end
670
-
671
- # The add_section_plane method adds a section plane object to the entities.
672
- #
673
- # @example
674
- # # Create a section plane
675
- # model = Sketchup.active_model
676
- # sp = model.entities.add_section_plane([50, 50, 0], [1.0, 1.0, 0])
677
- # # Activate it
678
- # sp.activate
679
- # # Make sure section planes are visible
680
- # model.rendering_options['DisplaySectionPlanes'] = true
681
- #
682
- # @param plane
683
- # the geometric plane where the SectionPlane object is to
684
- # be created. Refer to the Geom module for information on
685
- # how planes are represented.
686
- #
687
- # @return [Sketchup::SectionPlane, nil] the created SectionPlane object if
688
- # successful, nil on failure.
689
- #
690
- # @version SketchUp 2014
691
- def add_section_plane(plane)
692
- end
693
-
694
- # The {#add_text} method adds a note or label text entity to the entities.
695
- #
696
- # @example
697
- # coordinates = [10, 10, 10]
698
- # model = Sketchup.active_model
699
- # entities = model.entities
700
- # point = Geom::Point3d.new coordinates
701
- # text = entities.add_text "This is a Test", point
702
- #
703
- # @example Instance path
704
- # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
705
- # edge = instance.definition.entities.grep(Sketchup::Edge).first
706
- # instance_path = Sketchup::InstancePath.new([instance, edge])
707
- # point = edge.start.position
708
- # vector = Geom::Vector3d.new(30, 30, 0)
709
- # Sketchup.active_model.entities.add_text("mytext", [instance_path, point], vector)
710
- #
711
- # @example Instance path as an array
712
- # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
713
- # edge = instance.definition.entities.grep(Sketchup::Edge).first
714
- # path = [instance, edge]
715
- # point = edge.start.position
716
- # vector = Geom::Vector3d.new(30, 30, 0)
717
- # Sketchup.active_model.entities.add_text("mytext", [path, point], vector)
718
- #
719
- # @overload add_text(text, point, vector)
720
- #
721
- # @bug SketchUp 2019.0 had a regression bug where an error was thrown if
722
- # +point+ was provided as a {Sketchup::Vertex} or {Sketchup::InputPoint}.
723
- # This was fixed in SketchUp 2019.1.
724
- # @param [String] text The text string to add.
725
- # @param [Geom::Point3d, Sketchup::Vertex, Sketchup::InputPoint] point
726
- # A Point3d object representing the insertion point.
727
- # @param [Geom::Vector3d] vector The Vector representing an arrow leader.
728
- #
729
- # @overload add_text(text, instance_path_and_pt, vector)
730
- #
731
- # @version SketchUp 2019
732
- # @param [String] text The text to add.
733
- # @param [Array<Sketchup::InstancePath, Geom::Point3d>] instance_path_and_pt
734
- # The array containing a {Sketchup::InstancePath} and a {Geom::Point3d}.
735
- # @param [Geom::Vector3d] vector The vector representing an arrow leader.
736
- #
737
- # @overload add_text(text, instance_array_and_pt, vector)
738
- #
739
- # @version SketchUp 2019
740
- # @param [String] text The text to add.
741
- # @param [Array(Array<Sketchup::Entity>, Geom::Point3d)] instance_array_with_pt
742
- # The array containing one or more {Sketchup::ComponentInstance}'s and a
743
- # leaf entity. The leaf entity can be a {Sketchup::Vertex},
744
- # {Sketchup::ConstructionPoint}, {Sketchup::ConstructionLine}, or
745
- # {Sketchup::Edge}. The {Geom::Point3d} is the point associated with the
746
- # leaf entity.
747
- # @param [Geom::Vector3d] vector The vector representing an arrow leader.
748
- #
749
- # @return [Sketchup::Text] a Text object if successful
750
- #
751
- # @version SketchUp 6.0
752
- def add_text(*args)
753
- end
754
-
755
- # The {#at} method is an alias for {#[]}.
756
- #
757
- # @example
758
- # entities = Sketchup.active_model.entities
759
- # entity = entities.at(0)
760
- #
761
- # @param [Integer] entity_index
762
- # The index for a specific entity.
763
- #
764
- # @return [Sketchup::Entity, nil]
765
- #
766
- # @see #[]
767
- #
768
- # @version SketchUp 6.0
769
- def at(entity_index)
770
- end
771
-
772
- # The clear! method is used to remove all entities from the collection of
773
- # entities.
774
- #
775
- # @example
776
- # coordinates = [10, 10, 10]
777
- # model = Sketchup.active_model
778
- # entities = model.entities
779
- # point = Geom::Point3d.new coordinates
780
- # text = entities.add_text "This is a Test", point
781
- # UI.messagebox "Clearing All"
782
- # status = entities.clear!
783
- #
784
- # @return [Boolean] true if successful, false if unsuccessful
785
- #
786
- # @version SketchUp 6.0
787
- def clear!
788
- end
789
-
790
- #
791
- # @example
792
- # model = Sketchup.active_model
793
- # entities = model.entities
794
- # entities.add_cpoint([10, 10, 10])
795
- # number = entities.count
796
- #
797
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
798
- # +Enumable+ mix-in module. Prior to that the {#count} method is an alias
799
- # for {#length}.
800
- #
801
- # @return [Integer]
802
- #
803
- # @see #length
804
- #
805
- # @version SketchUp 6.0
806
- def count
807
- end
808
-
809
- # The each method is used to iterate through the entities in the collection of
810
- # entities.
811
- #
812
- # @example
813
- # coordinates = [10, 10, 10]
814
- # model = Sketchup.active_model
815
- # entities = model.entities
816
- # point = Geom::Point3d.new coordinates
817
- # text = entities.add_text "This is a Test", point
818
- # entities.each { | entity| UI.messagebox entity }
819
- #
820
- # @return [nil]
821
- #
822
- # @version SketchUp 6.0
823
- #
824
- # @yieldparam [Sketchup::Entity] entity
825
- def each
826
- end
827
-
828
- # The erase_entities method is used to erase one or more entities from the
829
- # model.
830
- #
831
- # @example
832
- # depth = 100
833
- # width = 100
834
- # model = Sketchup.active_model
835
- # entities = model.active_entities
836
- # pts = []
837
- # pts[0] = [0, 0, 0]
838
- # pts[1] = [width, 0, 0]
839
- # pts[2] = [width, depth, 0]
840
- # pts[3] = [0, depth, 0]
841
- #
842
- # # Add the face to the entities in the model
843
- # face = entities.add_face pts
844
- #
845
- # # I just happen to know that the second entity in the
846
- # # entities objects is an edge, so erase it.
847
- # UI.messagebox entities
848
- # entities.erase_entities entities[1]
849
- # UI.messagebox entities
850
- #
851
- # @overload erase_entities(entities)
852
- #
853
- # @param [Array<Sketchup::Entity>] entities
854
- #
855
- # @overload erase_entities(*entities)
856
- #
857
- # @param [Array<Sketchup::Entity>] entities
858
- #
859
- # @return [nil]
860
- #
861
- # @version SketchUp 6.0
862
- def erase_entities(*args)
863
- end
864
-
865
- # The {#fill_from_mesh} method is used to add faces and edges to the collection
866
- # of entities from a {Geom::PolygonMesh}. It requires that the entities
867
- # collection to be filled is empty. It has higher performance than
868
- # {#add_faces_from_mesh}, but does less error checking as it builds the
869
- # geometry.
870
- #
871
- # The +smooth_flags+ parameter can contain any of the following values if
872
- # passed. The constants were added in SketchUp 2014. For previous versions,
873
- # numeric values have to be specified instead of the Ruby constants:
874
- #
875
- # - 0: {Geom::PolygonMesh::NO_SMOOTH_OR_HIDE}
876
- # - 1: {Geom::PolygonMesh::HIDE_BASED_ON_INDEX} (Negative point index will hide the edge.)
877
- # - 2: {Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX} (Negative point index will soften the edge.)
878
- # - 4: {Geom::PolygonMesh::AUTO_SOFTEN} (Interior edges are softened.)
879
- # - 8: {Geom::PolygonMesh::SMOOTH_SOFT_EDGES} (All soft edges will also be smooth.)
880
- #
881
- # The 4rd and 5th parameters will accept a {Sketchup::Material} object or a
882
- # string name of a material currently in the model.
883
- #
884
- # @example
885
- # pm = Geom::PolygonMesh.new
886
- # pm.add_point([ 0, 0, 0]) # 1
887
- # pm.add_point([10, 0, 0]) # 2
888
- # pm.add_point([10,10, 0]) # 3
889
- # pm.add_point([ 0,10, 0]) # 4
890
- # pm.add_point([20, 0, 5]) # 5
891
- # pm.add_point([20,10, 5]) # 6
892
- # pm.add_polygon(1, -2, 3, 4)
893
- # pm.add_polygon(2, 5, 6, -3)
894
- #
895
- # # Create a new group that we will populate with the mesh.
896
- # group = Sketchup.active_model.entities.add_group
897
- # material = Sketchup.active_model.materials.add('red')
898
- # smooth_flags = Geom::PolygonMesh::HIDE_BASED_ON_INDEX
899
- # group.entities.fill_from_mesh(pm, true, smooth_flags, material)
900
- #
901
- # @param [Geom::PolygonMesh] polygon_mesh
902
- #
903
- # @param [Boolean] weld_vertices
904
- # This argument has no effect and is kept for
905
- # compatibility reasons. Points are always
906
- # merged.
907
- #
908
- # @param [Integer] smooth_flags
909
- # flags for softening and smoothing of edges.
910
- #
911
- # @param [Sketchup::Material, String] f_material
912
- # material to paint front faces with.
913
- #
914
- # @param [Sketchup::Material, String] b_material
915
- # material to paint back faces with.
916
- #
917
- # @return [Boolean]
918
- #
919
- # @version SketchUp 6.0
920
- def 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)
921
- end
922
-
923
- # The intersect_with method is used to intersect an entities, component
924
- # instance, or group object with a entities object.
925
- #
926
- # @example
927
- # entities.intersect_with recurse, transformation1, entities1,
928
- # transformation2, hidden, entities2
929
- #
930
- # @param [Boolean] recurse
931
- # true if you want this entities object to be recursed
932
- # (intersection lines will be put inside of groups and
933
- # components within this entities object).
934
- #
935
- # @param [Geom::Transformation] transform1
936
- # The transformation for this entities object.
937
- #
938
- # @param [Sketchup::Entities] entities1
939
- # The entities object where you want the intersection
940
- # lines to appear.
941
- #
942
- # @param [Geom::Transformation] transform2
943
- # The transformation for entities1.
944
- #
945
- # @param [Boolean] hidden
946
- # true if you want hidden geometry in this entities
947
- # object to be used in the intersection.
948
- #
949
- # @param [Sketchup::Entity, Array<Sketchup::Entity>] entities2
950
- # A single entity, or an array of entities.
951
- #
952
- # @return [nil]
953
- #
954
- # @version SketchUp 6.0
955
- def intersect_with(recurse, transform1, entities1, transform2, hidden, entities2)
956
- end
957
-
958
- # The {#length} method is used to retrieve the number of entities in the
959
- # collection of entities.
960
- #
961
- # @example
962
- # model = Sketchup.active_model
963
- # entities = model.entities
964
- # entities.add_cpoint([10, 10, 10])
965
- # number = entities.length
966
- #
967
- # @return [Integer]
968
- #
969
- # @see #size
970
- #
971
- # @version SketchUp 6.0
972
- def length
973
- end
974
-
975
- # The model method is used to retrieve the model that contains the collection
976
- # of entities.
977
- #
978
- # @example
979
- # coordinates = [10, 10, 10]
980
- # model = Sketchup.active_model
981
- # entities = model.entities
982
- # point = Geom::Point3d.new coordinates
983
- # text = entities.add_text "This is a Test", point
984
- # model = entities.model
985
- #
986
- # @return [Sketchup::Model] the model that contains the collection of
987
- # entities if successful.
988
- #
989
- # @version SketchUp 6.0
990
- def model
991
- end
992
-
993
- # The parent method is used to retrieve the parent or object that contains the
994
- # collection of entities. A parent can be either a Model or
995
- # ComponentDefinition object.
996
- #
997
- # @example
998
- # coordinates = [10, 10, 10]
999
- # model = Sketchup.active_model
1000
- # entities = model.entities
1001
- # point = Geom::Point3d.new coordinates
1002
- # text = entities.add_text "This is a Test", point
1003
- # parent = entities.parent
1004
- #
1005
- # @return [Sketchup::ComponentDefinition, Sketchup::Model] the object that
1006
- # contains the collection of entities if successful
1007
- #
1008
- # @version SketchUp 6.0
1009
- def parent
1010
- end
1011
-
1012
- # The remove_observer method is used to remove an observer from the current
1013
- # object.
1014
- #
1015
- # @example
1016
- # entities = Sketchup.active_model.entities
1017
- # status = entities.remove_observer observer
1018
- #
1019
- # @param [Object] observer
1020
- # An observer.
1021
- #
1022
- # @return [Boolean] true if successful, false if unsuccessful.
1023
- #
1024
- # @version SketchUp 6.0
1025
- def remove_observer(observer)
1026
- end
1027
-
1028
- # The {#size} method is an alias for the {#length} method.
1029
- #
1030
- # @example
1031
- # model = Sketchup.active_model
1032
- # entities = model.entities
1033
- # entities.add_cpoint([10, 10, 10])
1034
- # number = entities.size
1035
- #
1036
- # @return [Integer]
1037
- #
1038
- # @see #length
1039
- #
1040
- # @version SketchUp 2014
1041
- def size
1042
- end
1043
-
1044
- # The transform_by_vectors method is used to apply several vectors to several
1045
- # sub-entities all at once.
1046
- #
1047
- # @example
1048
- # # Need better Ruby example.
1049
- # entities = entities.transform_by_vectors sub_entities, vector_array
1050
- #
1051
- # @param [Array<Sketchup::Entity>] sub_entities
1052
- # An array of entities to transform.
1053
- #
1054
- # @param [Array<Geom::Vector3d>] vectors
1055
- # An array of vectors to apply.
1056
- #
1057
- # @return [Sketchup::Entities]
1058
- #
1059
- # @version SketchUp 6.0
1060
- def transform_by_vectors(sub_entities, vectors)
1061
- end
1062
-
1063
- # The transform_entities method is used to apply a transform to several
1064
- # sub-entities all at once.
1065
- #
1066
- # Important note: If you apply a transformation to entities that are
1067
- # not in the current edit context (i.e. faces that are inside a group),
1068
- # SketchUp will apply the transformation incorrectly, since the geometry
1069
- # has one origin and the current edit context has another. You can correct
1070
- # for this by watching the Model.edit_transform and Model.active_path. See
1071
- # ModelObserver.onActivePathChanged for more information.
1072
- #
1073
- # @example
1074
- # entities = Sketchup.active_model.entities
1075
- # entities.add_line([0,0,0],[100,100,100])
1076
- # entities.add_line([0,0,0],[200,-10,-10])
1077
- #
1078
- # entities_to_transform = []
1079
- # entities_to_transform.push(entities[0])
1080
- # entities_to_transform.push(entities[1])
1081
- #
1082
- # transform = Geom::Transformation.new([100,0,0])
1083
- # entities.transform_entities(transform, ent1, ent2, ent3)
1084
- #
1085
- # @param [Geom::Transformation] transform
1086
- # The Transformation to apply.
1087
- #
1088
- # @param [Array<Sketchup::Entity>] entities
1089
- # An array or series of entities to transform.
1090
- #
1091
- # @return [Boolean] results of the transform.
1092
- #
1093
- # @version SketchUp 6.0
1094
- def transform_entities(transform, entities)
1095
- end
1096
-
1097
- # The {#weld} method takes a set of edges and find all possible chains of edges
1098
- # and connect them with a {Sketchup::Curve}.
1099
- #
1100
- # A curve will not cross another curve. They will split where multiple curves
1101
- # meet.
1102
- #
1103
- # @example
1104
- # entities = Sketchup.active_model.entities
1105
- # edges = model.selection.grep(Sketchup::Edge)
1106
- # curves = entities.weld(edges)
1107
- #
1108
- # @param [Array<Sketchup::Edge>] edges
1109
- #
1110
- # @raise [ArgumentError] if the given entities are not part of the same
1111
- # {Sketchup::Entities} collection.
1112
- #
1113
- # @return [Array<Sketchup::Curve>]
1114
- #
1115
- # @version SketchUp 2020.1
1116
- def weld(edges)
1117
- end
1118
-
1119
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The {Sketchup::Entities} class is a collection of Entity objects, either in a
5
+ # {Sketchup::ComponentDefinition} or directly in the {Sketchup::Model}. A
6
+ # {Sketchup::Entities} object corresponds to a drawing context in the GUI.
7
+ #
8
+ # @version SketchUp 6.0
9
+ class Sketchup::Entities
10
+
11
+ # Includes
12
+
13
+ include Enumerable
14
+
15
+ # Instance Methods
16
+
17
+ # The {#[]} method is used to retrieve an entity by its index in an array of
18
+ # entities. The index is a number between +0+ and entities.length - 1. In
19
+ # general, it is preferable to use the {#each} method to iterate though all
20
+ # of the entities in the collection as it will be much more efficient.
21
+ #
22
+ # @example
23
+ # entities = Sketchup.active_model.entities
24
+ # entity = entities[0]
25
+ #
26
+ # @param [Integer] entity_index
27
+ # The index for a specific entity.
28
+ #
29
+ # @return [Sketchup::Entity, nil] an {Sketchup::Entity} object if successful,
30
+ # +nil+ if not found
31
+ #
32
+ # @see #at
33
+ #
34
+ # @version SketchUp 6.0
35
+ def [](entity_index)
36
+ end
37
+
38
+ # The active_section_plane method is used to access the currently active
39
+ # section plane in the Entities object.
40
+ #
41
+ # @example
42
+ # sp = Sketchup.active_model.entities.active_section_plane
43
+ # puts "Active section plane is #{sp}" if !sp.nil?
44
+ #
45
+ # @return [Sketchup::SectionPlane, nil] the active SectionPlane or nil if none is active.
46
+ #
47
+ # @version SketchUp 2014
48
+ def active_section_plane
49
+ end
50
+
51
+ # The active_section_plane= method is used to set the active section plane in
52
+ # the Entities object.
53
+ #
54
+ # @example
55
+ # entities = Sketchup.active_model.entities
56
+ # sp = entities.add_section_plane([50, 50, 0], [1.0, 1.0, 0])
57
+ # entities.active_section_plane = sp
58
+ #
59
+ # @param [Sketchup::SectionPlane, nil] sec_plane
60
+ # the SectionPlane object to be set active. Pass nil to
61
+ # deactivate any active section plane.
62
+ #
63
+ # @return [Sketchup::SectionPlane, nil] the SectionPlane object that was set active.
64
+ #
65
+ # @version SketchUp 2014
66
+ def active_section_plane=(sec_plane)
67
+ end
68
+
69
+ # The add_3d_text is used to create 3D text. It will be added as edges and
70
+ # faces drawn at the origin.
71
+ #
72
+ # @example
73
+ # # Draw the word "test" at the origin of the model, aligned left, in
74
+ # # Arial Bold, not italics, 1" in size, best tolerance quality, filled,
75
+ # # with an extrusion size of 5".
76
+ # entities = Sketchup.active_model.entities
77
+ # success = entities.add_3d_text('test', TextAlignLeft, "Arial",
78
+ # true, false, 1.0, 0.0, 0.5, true, 5.0)
79
+ #
80
+ # @param [String] string
81
+ # The text to create.
82
+ #
83
+ # @param [Integer] alignment
84
+ # Number that defines the alignment. There are constants
85
+ # called TextAlignLeft, TextAlignRight, and
86
+ # TextAlignCenter that can be passed.
87
+ #
88
+ # @param [String] font
89
+ # font name.
90
+ #
91
+ # @param [Boolean] is_bold
92
+ # true for bold.
93
+ #
94
+ # @param [Boolean] is_italic
95
+ # true for italic.
96
+ #
97
+ # @param [Numeric] letter_height
98
+ # Height of the text in inches.
99
+ #
100
+ # @param [Numeric] tolerance
101
+ # Tolerance of the curve creation. Defaults to
102
+ # 0.0, which creates the highest possible curve quality.
103
+ #
104
+ # @param [Numeric] z
105
+ # z position in inches.
106
+ #
107
+ # @param [Boolean] is_filled
108
+ # true for filled, which will put a face between the edges of the letters.
109
+ #
110
+ # @param [Numeric] extrusion
111
+ # Extrusion depth in inches.
112
+ #
113
+ # @return [Boolean] true if successful
114
+ #
115
+ # @version SketchUp 6.0
116
+ def 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)
117
+ end
118
+
119
+ # The add_arc method is used to create an arc curve segment.
120
+ #
121
+ # @example
122
+ # centerpoint = Geom::Point3d.new
123
+ # # Create a circle perpendicular to the normal or Z axis
124
+ # vector = Geom::Vector3d.new 0,0,1
125
+ # vector2 = Geom::Vector3d.new 1,0,0
126
+ # vector3 = vector.normalize!
127
+ # model = Sketchup.active_model
128
+ # entities = model.active_entities
129
+ # edges = entities.add_arc centerpoint, vector2, vector3, 10, 15.degrees, 135.degrees
130
+ # arccurve = edges.first.curve
131
+ #
132
+ # @overload add_arc(center, xaxis, normal, radius, start_angle, end_angle)
133
+ #
134
+ # @param [Geom::Point3d] center A Point3d object representing the center .
135
+ # @param [Geom::Vector3d] xaxis A Vector3d object representing xaxis for the arc.
136
+ # @param [Geom::Vector3d] normal A Vector3d object representing normal for the arc.
137
+ # @param [Numeric] radius The radius of the arc.
138
+ # @param [Numeric] start_angle Start angle for the arc, in radians.
139
+ # @param [Numeric] end_angle End angle for the arc, in radians.
140
+ # @return [Array<Sketchup::Edge>] an array of Edge objects that define the arc.
141
+ #
142
+ # @overload add_arc(center, xaxis, normal, radius, start_angle, end_angle, num_segments)
143
+ #
144
+ # @param [Geom::Point3d] center A Point3d object representing the center .
145
+ # @param [Geom::Vector3d] xaxis A Vector3d object representing xaxis for the arc.
146
+ # @param [Geom::Vector3d] normal A Vector3d object representing normal for the arc.
147
+ # @param [Numeric] radius The radius of the arc.
148
+ # @param [Numeric] start_angle Start angle for the arc, in radians.
149
+ # @param [Numeric] end_angle End angle for the arc, in radians.
150
+ # @param [Integer] num_segments How many segments to draw.
151
+ # @return [Array<Sketchup::Edge>] an array of Edge objects that define the arc.
152
+ #
153
+ # @version SketchUp 6.0
154
+ def add_arc(*args)
155
+ end
156
+
157
+ # The add_circle method is used to create a circle.
158
+ #
159
+ # @example
160
+ # centerpoint = Geom::Point3d.new
161
+ # # Create a circle perpendicular to the normal or Z axis
162
+ # vector = Geom::Vector3d.new 0,0,1
163
+ # vector2 = vector.normalize!
164
+ # model = Sketchup.active_model
165
+ # entities = model.active_entities
166
+ # edges = entities.add_circle centerpoint, vector2, 10
167
+ #
168
+ # @param [Geom::Point3d] center
169
+ # A Point3d object representing the center.
170
+ #
171
+ # @param [Geom::Vector3d] normal
172
+ # A Vector3d object representing normal for the arc.
173
+ #
174
+ # @param [Numeric] radius
175
+ # The radius of the arc.
176
+ #
177
+ # @param [Integer] numsegs
178
+ # The number of segments.
179
+ #
180
+ # @return [Array<Sketchup::Edge>] an Array object containing edges if successful
181
+ #
182
+ # @version SketchUp 6.0
183
+ def add_circle(center, normal, radius, numsegs = 24)
184
+ end
185
+
186
+ # The {#add_cline} method is used to create a construction line. This can be
187
+ # finite or infinite.
188
+ #
189
+ # @example
190
+ # model = Sketchup.active_model
191
+ # entities = model.active_entities
192
+ # point1 = Geom::Point3d.new(0, 0, 0)
193
+ # point2 = Geom::Point3d.new(20, 20, 20)
194
+ # cline = entities.add_cline(point1, point2)
195
+ #
196
+ # @overload add_cline(start_point, end_point, stipple = '-')
197
+ #
198
+ # Creates a finite construction line.
199
+ # @param [Geom::Point3d] start_point
200
+ # @param [Geom::Point3d] end_point
201
+ # @param [String] stipple See {ConstructionLine#stipple=} for acceptable
202
+ # patterns.
203
+ #
204
+ # @overload add_cline(point, vector, stipple = '-')
205
+ #
206
+ # Creates an infinite construction line.
207
+ # @param [Geom::Point3d] point
208
+ # @param [Geom::Point3d] vector
209
+ # @param [String] stipple See {ConstructionLine#stipple=} for acceptable
210
+ # patterns.
211
+ #
212
+ # @return [Sketchup::ConstructionLine]
213
+ #
214
+ # @version SketchUp 6.0
215
+ def add_cline(*args)
216
+ end
217
+
218
+ # The add_cpoint method is used to create a construction point.
219
+ #
220
+ # @example
221
+ # model = Sketchup.active_model
222
+ # entities = model.active_entities
223
+ # point1 = Geom::Point3d.new(100,200,300)
224
+ # constpoint = entities.add_cpoint point1
225
+ # if (constpoint)
226
+ # UI.messagebox constpoint
227
+ # else
228
+ # UI.messagebox "Failure"
229
+ # end
230
+ #
231
+ # @param [Geom::Point3d] point
232
+ # A Point3d object.
233
+ #
234
+ # @return [Sketchup::ConstructionPoint] a ConstructionPoint object if
235
+ # successful
236
+ #
237
+ # @version SketchUp 6.0
238
+ def add_cpoint(point)
239
+ end
240
+
241
+ # The add_curve method is used to create a curve from a collection of edges.
242
+ #
243
+ # The arguments are either Points or an Array of Points. At least 2 points are
244
+ # required.
245
+ #
246
+ # @example
247
+ # entities = Sketchup.active_model.entities
248
+ # curve = entities.add_curve [0,0,0], [0,10,0], [1,20,0]
249
+ #
250
+ # @overload add_curve(points)
251
+ #
252
+ # @param [Array<Geom::Point3d>] points
253
+ #
254
+ # @overload add_curve(*points)
255
+ #
256
+ # @param [Array<Geom::Point3d>] points
257
+ #
258
+ # @return [Array<Sketchup::Edge>]
259
+ #
260
+ # @version SketchUp 6.0
261
+ def add_curve(*args)
262
+ end
263
+
264
+ # The {#add_dimension_linear} method adds a linear dimension to the entities.
265
+ #
266
+ # @example
267
+ # entities = Sketchup.active_model.entities
268
+ # # From point to point
269
+ # dim = entities.add_dimension_linear [50, 10, 0], [100, 10, 0], [0, 20, 0]
270
+ # # Between edge vertices
271
+ # edge = entities.add_edges([50,50,0], [40,10,0])[0]
272
+ # v0 = edge.start
273
+ # v1 = edge.end
274
+ # dim = entities.add_dimension_linear v0, v1, [0, 0, 20]
275
+ # # From an edge's midpoint to a construction point
276
+ # p0 = edge.start.position
277
+ # p1 = edge.end.position
278
+ # mp = Geom::Point3d.new((p0.x+p1.x)/2.0, (p0.y+p1.y)/2.0, (p0.z+p1.z)/2.0)
279
+ # cp = entities.add_cpoint [50, 10, 0]
280
+ # dim = entities.add_dimension_linear [edge, mp], cp, [20, 0, 0]
281
+ # # alternatively, the start params could be passed in separately
282
+ # dim = entities.add_dimension_linear edge, mp, cp, [20, 0, 0]
283
+ #
284
+ # @example Instance path
285
+ # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
286
+ # edge = instance.definition.entities.grep(Sketchup::Edge).first
287
+ # instance_path = Sketchup::InstancePath.new([instance, edge])
288
+ # start_point = edge.start.position
289
+ # end_point = edge.end.position
290
+ # vector = Geom::Vector3d.new(30, 30, 0)
291
+ # Sketchup.active_model.entities.add_dimension_linear([instance_path, start_point], [instance_path, end_point], vector)
292
+ #
293
+ # @example Instance path as an array
294
+ # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
295
+ # edge = instance.definition.entities.grep(Sketchup::Edge).first
296
+ # path = [instance, edge]
297
+ # start_point = edge.start.position
298
+ # end_point = edge.end.position
299
+ # vector = Geom::Vector3d.new(30, 30, 0)
300
+ # Sketchup.active_model.entities.add_dimension_linear([path, start_point], [path, end_point], vector)
301
+ #
302
+ # @overload add_dimension_linear(start_pt_or_entity, end_pt_or_entity, offset_vector)
303
+ #
304
+ # @param [Geom::Point3d, Sketchup::Entity] start_pt_or_entity
305
+ # the reference point and/or entity at the start of
306
+ # the dimension. This parameter can take several
307
+ # forms:
308
+ # @param [Geom::Point3d, Sketchup::Entity] end_pt_or_entity
309
+ # the reference point and/or entity at the end
310
+ # of the dimension. This parameter takes the exact
311
+ # same forms as 'start_pt_or_entity'.
312
+ # @param [Geom::Vector3d] offset_vector
313
+ # the parallel offset vector from the reference line
314
+ # to the dimension line measured from the 'start'
315
+ # reference point.
316
+ #
317
+ # @overload add_dimension_linear(start_instance_path, end_instance_path, offset_vector)
318
+ #
319
+ # @note Added in SketchUp 2019.
320
+ # @param [Array<Sketchup::InstancePath, Geom::Point3d>] start_instance_path An array
321
+ # containing a {Sketchup::InstancePath} and a {Geom::Point3d}.
322
+ # @param [Array<Sketchup::InstancePath, Geom::Point3d>] end_instance_path An array
323
+ # containing a {Sketchup::InstancePath} and a {Geom::Point3d}.
324
+ # @param [Geom::Vector3d] offset_vector The parallel offset vector from the
325
+ # reference line to the dimension line measured from the start reference
326
+ # point.
327
+ #
328
+ # @overload add_dimension_linear(start_array, end_array, offset_vector)
329
+ #
330
+ # @note Added in SketchUp 2019.
331
+ # @param [Array(Array<Entity>, Geom::Point3d)] start_array
332
+ # The {Array<Entity>} must contain one or more {Sketchup::ComponentInstance}'s
333
+ # and a leaf entity. The leaf entity can be a {Sketchup::Vertex},
334
+ # {Sketchup::ConstructionPoint}, {Sketchup::ConstructionLine}, or
335
+ # {Sketchup::Edge}. The {Geom::Point3d} is the point associated with the leaf entity.
336
+ # @param [Array(Array<Entity>, Geom::Point3d)] end_array
337
+ # The {Array<Entity>} must contain one or more {Sketchup::ComponentInstance}'s
338
+ # and a leaf entity. The leaf entity can be a {Sketchup::Vertex},
339
+ # {Sketchup::ConstructionPoint}, {Sketchup::ConstructionLine}, or
340
+ # {Sketchup::Edge}. The {Geom::Point3d} is the point associated with the leaf entity.
341
+ # @param [Geom::Vector3d] offset_vector The parallel offset vector from the
342
+ # reference line to the dimension line measured form the start reference
343
+ # point.
344
+ #
345
+ # @return [Sketchup::DimensionLinear] the created dimension
346
+ #
347
+ # @version SketchUp 2014
348
+ def add_dimension_linear(*args)
349
+ end
350
+
351
+ # The add_dimension_radial method adds a radial dimension (i.e arc/circle
352
+ # radius/diameter dimension) to the entities.
353
+ #
354
+ # @example
355
+ # entities = Sketchup.active_model.entities
356
+ # # Create a circle
357
+ # centerpoint = Geom::Point3d.new(10, 10, 0)
358
+ # vector = Geom::Vector3d.new(0, 0, 1)
359
+ # edges = entities.add_circle centerpoint, vector, 10
360
+ # circle = edges[0].curve
361
+ # dim = entities.add_dimension_radial circle, [30, 30, 0]
362
+ #
363
+ # @param [Sketchup::ArcCurve] arc_curve
364
+ # an ArcCurve object to which the dimension is to be
365
+ # attached.
366
+ #
367
+ # @param [Geom::Point3d] leader_break_pt
368
+ # a Point3d for the break point on the leader where the
369
+ # dimension text is attached.
370
+ #
371
+ # @return [Sketchup::DimensionRadial] the created dimension
372
+ #
373
+ # @version SketchUp 2014
374
+ def add_dimension_radial(arc_curve, leader_break_pt)
375
+ end
376
+
377
+ # The {#add_edges} method is used to add a set of connected edges to the
378
+ # {Sketchup::Entities} collection.
379
+ #
380
+ # @example
381
+ # model = Sketchup.active_model
382
+ # entities = model.active_entities
383
+ # point1 = Geom::Point3d.new(0,0,0)
384
+ # point2 = Geom::Point3d.new(20,20,20)
385
+ # edges = entities.add_edges point1, point2
386
+ #
387
+ # @note If the points form a closed loop, the first and last vertex will not
388
+ # merge. If you intend to create a face from the edges, use {#add_face}
389
+ # directly.
390
+ #
391
+ # @overload add_edges(points)
392
+ #
393
+ # @param [Array<Geom::Point3d>] points At least two points required.
394
+ # @return [Array<Sketchup::Edge>]
395
+ #
396
+ # @overload add_edges(*points)
397
+ #
398
+ # @param [Array<Geom::Point3d>] points At least two points required.
399
+ # @return [Array<Sketchup::Edge>]
400
+ #
401
+ # @return [Array<Sketchup::Edge>] an array of Edge objects if successful
402
+ #
403
+ # @version SketchUp 6.0
404
+ def add_edges(*args)
405
+ end
406
+
407
+ # The add_face method is used to create a face. You can call this method a
408
+ # number of ways:
409
+ #
410
+ # - entities.add_face(edge1, edge2, edge3, ...)
411
+ # - entities.add_face(edgearray)
412
+ # - entities.add_face(pt1, pt2, pt3, ...)
413
+ # - entities.add_face([pt1, pt2, pt3,...])
414
+ # - entities.add_face(curve)
415
+ #
416
+ # For the last form that takes a Curve, the curve must be closed - like a
417
+ # circle.
418
+ #
419
+ # Note that a special case exists for any face created on the ground plane, in
420
+ # which case the vertex order is ignored and the face is always facing down.
421
+ #
422
+ # @example
423
+ # depth = 100
424
+ # width = 100
425
+ # model = Sketchup.active_model
426
+ # entities = model.active_entities
427
+ # pts = []
428
+ # pts[0] = [0, 0, 0]
429
+ # pts[1] = [width, 0, 0]
430
+ # pts[2] = [width, depth, 0]
431
+ # pts[3] = [0, depth, 0]
432
+ # # Add the face to the entities in the model
433
+ # face = entities.add_face(pts)
434
+ #
435
+ # @overload add_face(entities)
436
+ #
437
+ # @param [Array<Sketchup::Edge>, Array<Geom::Point3d>, Sketchup::Curve] entities
438
+ #
439
+ # @overload add_face(*entities)
440
+ #
441
+ # @param [Array<Sketchup::Edge>, Array<Geom::Point3d>] entities
442
+ #
443
+ # @return [Sketchup::Face, nil]
444
+ #
445
+ # @version SketchUp 6.0
446
+ def add_face(*args)
447
+ end
448
+
449
+ # The {#add_faces_from_mesh} method is used to add Face objects to the
450
+ # collection of entities from a PolygonMesh.
451
+ #
452
+ # The +smooth_flags+ parameter can contain any of the following values if
453
+ # passed. The constants were added in SketchUp 2014. For previous versions,
454
+ # numeric values have to be specified instead of the Ruby constants.
455
+ #
456
+ # - 0: {Geom::PolygonMesh::NO_SMOOTH_OR_HIDE}
457
+ # - 1: {Geom::PolygonMesh::HIDE_BASED_ON_INDEX} (Negative point index will hide the edge.)
458
+ # - 2: {Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX} (Negative point index will soften the edge.)
459
+ # - 4: {Geom::PolygonMesh::AUTO_SOFTEN} (Interior edges are softened.)
460
+ # - 8: {Geom::PolygonMesh::SMOOTH_SOFT_EDGES} (All soft edges will also be smooth.)
461
+ #
462
+ # The 3rd and 4th parameters will accept a {sketchup::Material} object or a
463
+ # string name of a material currently in the model.
464
+ #
465
+ # @example
466
+ # pm = Geom::PolygonMesh.new
467
+ # pm.add_point([ 0, 0, 0]) # 1
468
+ # pm.add_point([10, 0, 0]) # 2
469
+ # pm.add_point([10,10, 0]) # 3
470
+ # pm.add_point([ 0,10, 0]) # 4
471
+ # pm.add_point([20, 0, 5]) # 5
472
+ # pm.add_point([20,10, 5]) # 6
473
+ # pm.add_polygon(1, -2, 3, 4)
474
+ # pm.add_polygon(2, 5,6, -3)
475
+ #
476
+ # # Create a new group that we will populate with the mesh.
477
+ # group = Sketchup.active_model.entities.add_group
478
+ # material = Sketchup.active_model.materials.add('green')
479
+ # smooth_flags = Geom::PolygonMesh::NO_SMOOTH_OR_HIDE
480
+ # group.entities.add_faces_from_mesh(pm, smooth_flags, material)
481
+ #
482
+ # @param [Geom::PolygonMesh] polygon_mesh
483
+ #
484
+ # @param [Integer] smooth_flags
485
+ # flags for softening and smoothing of edges.
486
+ #
487
+ # @param [Sketchup::Material, String] f_material
488
+ # material to paint front faces with.
489
+ #
490
+ # @param [Sketchup::Material, String] b_material
491
+ # material to paint back faces with.
492
+ #
493
+ # @return [Integer] Number of faces created
494
+ #
495
+ # @version SketchUp 6.0
496
+ def add_faces_from_mesh(polygon_mesh, smooth_flags = Geom::PolygonMesh::AUTO_SOFTEN|Geom::PolygonMesh::SMOOTH_SOFT_EDGES, f_material = nil, b_material = nil)
497
+ end
498
+
499
+ # The add_group method is used to create an empty group or a group with
500
+ # entities.
501
+ #
502
+ # @example
503
+ # model = Sketchup.active_model
504
+ # entities = model.active_entities
505
+ # group = entities.add_group
506
+ #
507
+ # @note Calling add_group with entities in its parameters has been known to
508
+ # crash SketchUp before version 8.0. It is preferable to create an empty
509
+ # group and then add things to its Entities collection.
510
+ #
511
+ # @overload add_group(entities)
512
+ #
513
+ # @param [Array<Sketchup::Entity>] entities
514
+ # an entities collection to add to the group.
515
+ #
516
+ # @overload add_group(*entities)
517
+ #
518
+ # @param [Array<Sketchup::Entity>] entities
519
+ # an entities collection to add to the group.
520
+ #
521
+ # @return [Sketchup::Group]
522
+ #
523
+ # @version SketchUp 6.0
524
+ def add_group(*args)
525
+ end
526
+
527
+ # The add_image method is used to add an image to the collection of entities.
528
+ #
529
+ # The width and height are measured in model units (i.e. inches). If the
530
+ # height is not given, then it is computed from the width to preserve the
531
+ # aspect ratio of the image.
532
+ #
533
+ # @example
534
+ # model = Sketchup.active_model
535
+ # entities = model.active_entities
536
+ # point = Geom::Point3d.new 10,20,30
537
+ # image = entities.add_image "Shapes.jpg", point, 300
538
+ # if (image)
539
+ # UI.messagebox image
540
+ # else
541
+ # UI.messagebox "Failure"
542
+ # end
543
+ #
544
+ # @param [String] path
545
+ # A path for the image file.
546
+ #
547
+ # @param [Geom::Point3d] point
548
+ # A Point3d object representing the insertion point of
549
+ # the image.
550
+ #
551
+ # @param [Numeric] width
552
+ # Width for the image.
553
+ #
554
+ # @param [Numeric] height
555
+ # height for the image if you want to control
556
+ # width and height independently. Leave as default +0.0+ when you want it
557
+ # to be relative to the aspect ratio.
558
+ #
559
+ # @return [Sketchup::Image, nil] an Image object if successful.
560
+ #
561
+ # @version SketchUp 6.0
562
+ def add_image(path, point, width, height = 0.0)
563
+ end
564
+
565
+ # The add_instance method adds a component instance to the collection of
566
+ # entities.
567
+ #
568
+ # @example
569
+ # point = Geom::Point3d.new 10,20,30
570
+ # transform = Geom::Transformation.new point
571
+ # model = Sketchup.active_model
572
+ # entities = model.active_entities
573
+ # path = Sketchup.find_support_file "Bed.skp",
574
+ # "Components/Components Sampler/"
575
+ # definitions = model.definitions
576
+ # componentdefinition = definitions.load path
577
+ # instance = entities.add_instance componentdefinition, transform
578
+ # if (instance)
579
+ # UI.messagebox instance
580
+ # else
581
+ # UI.messagebox "Failure"
582
+ # end
583
+ #
584
+ # @param [Sketchup::ComponentDefinition] definition
585
+ # A ComponentDefinition object.
586
+ #
587
+ # @param [Geom::Transformation] transform
588
+ # A Transformation object.
589
+ #
590
+ # @return [Sketchup::ComponentInstance] a ComponentInstance object if successful
591
+ #
592
+ # @version SketchUp 6.0
593
+ def add_instance(definition, transform)
594
+ end
595
+
596
+ # The add_line method is used to add an edge to the collection of entities.
597
+ # This is not to be confused with the concept of a "line" from a geometric
598
+ # sense, which is an invisible object represented by an Array of a point
599
+ # and a vector. (See the Array class for more information on geometric lines in
600
+ # SketchUp.)
601
+ #
602
+ # This method is the same as add_edges method, but returns a single edge.
603
+ #
604
+ # @example
605
+ # model = Sketchup.active_model
606
+ # entities = model.active_entities
607
+ # point1 = Geom::Point3d.new(0,0,0)
608
+ # point2 = Geom::Point3d.new(20,20,20)
609
+ # line = entities.add_line point1,point2
610
+ # if (line)
611
+ # UI.messagebox line
612
+ # else
613
+ # UI.messagebox "Failure"
614
+ # end
615
+ #
616
+ # @param [Geom::Point3d] point1
617
+ # Point3d object representing the edge's starting point.
618
+ #
619
+ # @param [Geom::Point3d] point2
620
+ # Point3d object representing the edge's ending point.
621
+ #
622
+ # @return [Sketchup::Edge] a Edge object if successful
623
+ #
624
+ # @version SketchUp 6.0
625
+ def add_line(point1, point2)
626
+ end
627
+
628
+ # The add_ngon method is used to create a multi-sided polygon.
629
+ #
630
+ # @example
631
+ # entities = Sketchup.active_model.entities
632
+ # center = Geom::Point3d.new
633
+ # normal = Geom::Vector3d.new(0,0,1)
634
+ # radius = 100
635
+ # numsides = 6
636
+ # edges = entities.add_ngon center, normal, radius, numsides
637
+ #
638
+ # @param [Geom::Point3d] center
639
+ # A Point3d object representing the center of the polygon.
640
+ #
641
+ # @param [Geom::Vector3d] normal
642
+ # A Vector3d object.
643
+ #
644
+ # @param [Numeric] radius
645
+ # A radius.
646
+ #
647
+ # @param [Integer] numsides
648
+ # The number of sides for the polygon.
649
+ #
650
+ # @return [Array<Sketchup::Edge>] an array of Edges that make up the polygon if
651
+ # successful
652
+ #
653
+ # @version SketchUp 6.0
654
+ def add_ngon(center, normal, radius, numsides = 24)
655
+ end
656
+
657
+ # The add_observer method is used to add an observer to the current object.
658
+ #
659
+ # @example
660
+ # entities = Sketchup.active_model.entities
661
+ # status = entities.add_observer observer
662
+ #
663
+ # @param [Object] observer
664
+ # An observer.
665
+ #
666
+ # @return [Boolean] true if successful, false if unsuccessful.
667
+ #
668
+ # @version SketchUp 6.0
669
+ def add_observer(observer)
670
+ end
671
+
672
+ # The add_section_plane method adds a section plane object to the entities.
673
+ #
674
+ # @example
675
+ # # Create a section plane
676
+ # model = Sketchup.active_model
677
+ # sp = model.entities.add_section_plane([50, 50, 0], [1.0, 1.0, 0])
678
+ # # Activate it
679
+ # sp.activate
680
+ # # Make sure section planes are visible
681
+ # model.rendering_options['DisplaySectionPlanes'] = true
682
+ #
683
+ # @param plane
684
+ # the geometric plane where the SectionPlane object is to
685
+ # be created. Refer to the Geom module for information on
686
+ # how planes are represented.
687
+ #
688
+ # @return [Sketchup::SectionPlane, nil] the created SectionPlane object if
689
+ # successful, nil on failure.
690
+ #
691
+ # @version SketchUp 2014
692
+ def add_section_plane(plane)
693
+ end
694
+
695
+ # The {#add_text} method adds a note or label text entity to the entities.
696
+ #
697
+ # @example
698
+ # coordinates = [10, 10, 10]
699
+ # model = Sketchup.active_model
700
+ # entities = model.entities
701
+ # point = Geom::Point3d.new coordinates
702
+ # text = entities.add_text "This is a Test", point
703
+ #
704
+ # @example Instance path
705
+ # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
706
+ # edge = instance.definition.entities.grep(Sketchup::Edge).first
707
+ # instance_path = Sketchup::InstancePath.new([instance, edge])
708
+ # point = edge.start.position
709
+ # vector = Geom::Vector3d.new(30, 30, 0)
710
+ # Sketchup.active_model.entities.add_text("mytext", [instance_path, point], vector)
711
+ #
712
+ # @example Instance path as an array
713
+ # instance = Sketchup.active_model.active_entities.grep(Sketchup::ComponentInstance).first
714
+ # edge = instance.definition.entities.grep(Sketchup::Edge).first
715
+ # path = [instance, edge]
716
+ # point = edge.start.position
717
+ # vector = Geom::Vector3d.new(30, 30, 0)
718
+ # Sketchup.active_model.entities.add_text("mytext", [path, point], vector)
719
+ #
720
+ # @overload add_text(text, point, vector)
721
+ #
722
+ # @bug SketchUp 2019.0 had a regression bug where an error was thrown if
723
+ # +point+ was provided as a {Sketchup::Vertex} or {Sketchup::InputPoint}.
724
+ # This was fixed in SketchUp 2019.1.
725
+ # @param [String] text The text string to add.
726
+ # @param [Geom::Point3d, Sketchup::Vertex, Sketchup::InputPoint] point
727
+ # A Point3d object representing the insertion point.
728
+ # @param [Geom::Vector3d] vector The Vector representing an arrow leader.
729
+ #
730
+ # @overload add_text(text, instance_path_and_pt, vector)
731
+ #
732
+ # @version SketchUp 2019
733
+ # @param [String] text The text to add.
734
+ # @param [Array<Sketchup::InstancePath, Geom::Point3d>] instance_path_and_pt
735
+ # The array containing a {Sketchup::InstancePath} and a {Geom::Point3d}.
736
+ # @param [Geom::Vector3d] vector The vector representing an arrow leader.
737
+ #
738
+ # @overload add_text(text, instance_array_and_pt, vector)
739
+ #
740
+ # @version SketchUp 2019
741
+ # @param [String] text The text to add.
742
+ # @param [Array(Array<Sketchup::Entity>, Geom::Point3d)] instance_array_with_pt
743
+ # The array containing one or more {Sketchup::ComponentInstance}'s and a
744
+ # leaf entity. The leaf entity can be a {Sketchup::Vertex},
745
+ # {Sketchup::ConstructionPoint}, {Sketchup::ConstructionLine}, or
746
+ # {Sketchup::Edge}. The {Geom::Point3d} is the point associated with the
747
+ # leaf entity.
748
+ # @param [Geom::Vector3d] vector The vector representing an arrow leader.
749
+ #
750
+ # @return [Sketchup::Text] a Text object if successful
751
+ #
752
+ # @version SketchUp 6.0
753
+ def add_text(*args)
754
+ end
755
+
756
+ # The {#at} method is an alias for {#[]}.
757
+ #
758
+ # @example
759
+ # entities = Sketchup.active_model.entities
760
+ # entity = entities.at(0)
761
+ #
762
+ # @param [Integer] entity_index
763
+ # The index for a specific entity.
764
+ #
765
+ # @return [Sketchup::Entity, nil]
766
+ #
767
+ # @see #[]
768
+ #
769
+ # @version SketchUp 6.0
770
+ def at(entity_index)
771
+ end
772
+
773
+ # The clear! method is used to remove all entities from the collection of
774
+ # entities.
775
+ #
776
+ # @example
777
+ # coordinates = [10, 10, 10]
778
+ # model = Sketchup.active_model
779
+ # entities = model.entities
780
+ # point = Geom::Point3d.new coordinates
781
+ # text = entities.add_text "This is a Test", point
782
+ # UI.messagebox "Clearing All"
783
+ # status = entities.clear!
784
+ #
785
+ # @return [Boolean] true if successful, false if unsuccessful
786
+ #
787
+ # @version SketchUp 6.0
788
+ def clear!
789
+ end
790
+
791
+ #
792
+ # @example
793
+ # model = Sketchup.active_model
794
+ # entities = model.entities
795
+ # entities.add_cpoint([10, 10, 10])
796
+ # number = entities.count
797
+ #
798
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
799
+ # +Enumable+ mix-in module. Prior to that the {#count} method is an alias
800
+ # for {#length}.
801
+ #
802
+ # @return [Integer]
803
+ #
804
+ # @see #length
805
+ #
806
+ # @version SketchUp 6.0
807
+ def count
808
+ end
809
+
810
+ # The {#each} method is used to iterate through the entities in the collection
811
+ # of entities.
812
+ #
813
+ # @example
814
+ # coordinates = [10, 10, 10]
815
+ # model = Sketchup.active_model
816
+ # entities = model.entities
817
+ # point = Geom::Point3d.new coordinates
818
+ # text = entities.add_text "This is a Test", point
819
+ # entities.each { | entity| puts entity }
820
+ #
821
+ # @note Don't remove content from this collection while iterating over it with
822
+ # {#each}. This would change the size of the collection and cause elements to
823
+ # be skipped as the indices change. Instead copy the current collection to an
824
+ # array using +to_a+ and then use +each+ on the array, when removing content.
825
+ #
826
+ # @return [nil]
827
+ #
828
+ # @version SketchUp 6.0
829
+ #
830
+ # @yieldparam [Sketchup::Entity] entity
831
+ def each
832
+ end
833
+
834
+ # The erase_entities method is used to erase one or more entities from the
835
+ # model.
836
+ #
837
+ # @example
838
+ # depth = 100
839
+ # width = 100
840
+ # model = Sketchup.active_model
841
+ # entities = model.active_entities
842
+ # pts = []
843
+ # pts[0] = [0, 0, 0]
844
+ # pts[1] = [width, 0, 0]
845
+ # pts[2] = [width, depth, 0]
846
+ # pts[3] = [0, depth, 0]
847
+ #
848
+ # # Add the face to the entities in the model
849
+ # face = entities.add_face pts
850
+ #
851
+ # # I just happen to know that the second entity in the
852
+ # # entities objects is an edge, so erase it.
853
+ # UI.messagebox entities
854
+ # entities.erase_entities entities[1]
855
+ # UI.messagebox entities
856
+ #
857
+ # @overload erase_entities(entities)
858
+ #
859
+ # @param [Array<Sketchup::Entity>] entities
860
+ #
861
+ # @overload erase_entities(*entities)
862
+ #
863
+ # @param [Array<Sketchup::Entity>] entities
864
+ #
865
+ # @return [nil]
866
+ #
867
+ # @version SketchUp 6.0
868
+ def erase_entities(*args)
869
+ end
870
+
871
+ # The {#fill_from_mesh} method is used to add faces and edges to the collection
872
+ # of entities from a {Geom::PolygonMesh}. It requires that the entities
873
+ # collection to be filled is empty. It has higher performance than
874
+ # {#add_faces_from_mesh}, but does less error checking as it builds the
875
+ # geometry.
876
+ #
877
+ # The +smooth_flags+ parameter can contain any of the following values if
878
+ # passed. The constants were added in SketchUp 2014. For previous versions,
879
+ # numeric values have to be specified instead of the Ruby constants:
880
+ #
881
+ # - 0: {Geom::PolygonMesh::NO_SMOOTH_OR_HIDE}
882
+ # - 1: {Geom::PolygonMesh::HIDE_BASED_ON_INDEX} (Negative point index will hide the edge.)
883
+ # - 2: {Geom::PolygonMesh::SOFTEN_BASED_ON_INDEX} (Negative point index will soften the edge.)
884
+ # - 4: {Geom::PolygonMesh::AUTO_SOFTEN} (Interior edges are softened.)
885
+ # - 8: {Geom::PolygonMesh::SMOOTH_SOFT_EDGES} (All soft edges will also be smooth.)
886
+ #
887
+ # The 4rd and 5th parameters will accept a {Sketchup::Material} object or a
888
+ # string name of a material currently in the model.
889
+ #
890
+ # @example
891
+ # pm = Geom::PolygonMesh.new
892
+ # pm.add_point([ 0, 0, 0]) # 1
893
+ # pm.add_point([10, 0, 0]) # 2
894
+ # pm.add_point([10,10, 0]) # 3
895
+ # pm.add_point([ 0,10, 0]) # 4
896
+ # pm.add_point([20, 0, 5]) # 5
897
+ # pm.add_point([20,10, 5]) # 6
898
+ # pm.add_polygon(1, -2, 3, 4)
899
+ # pm.add_polygon(2, 5, 6, -3)
900
+ #
901
+ # # Create a new group that we will populate with the mesh.
902
+ # group = Sketchup.active_model.entities.add_group
903
+ # material = Sketchup.active_model.materials.add('red')
904
+ # smooth_flags = Geom::PolygonMesh::HIDE_BASED_ON_INDEX
905
+ # group.entities.fill_from_mesh(pm, true, smooth_flags, material)
906
+ #
907
+ # @param [Geom::PolygonMesh] polygon_mesh
908
+ #
909
+ # @param [Boolean] weld_vertices
910
+ # This argument has no effect and is kept for
911
+ # compatibility reasons. Points are always
912
+ # merged.
913
+ #
914
+ # @param [Integer] smooth_flags
915
+ # flags for softening and smoothing of edges.
916
+ #
917
+ # @param [Sketchup::Material, String] f_material
918
+ # material to paint front faces with.
919
+ #
920
+ # @param [Sketchup::Material, String] b_material
921
+ # material to paint back faces with.
922
+ #
923
+ # @return [Boolean]
924
+ #
925
+ # @version SketchUp 6.0
926
+ def 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)
927
+ end
928
+
929
+ # The intersect_with method is used to intersect an entities, component
930
+ # instance, or group object with a entities object.
931
+ #
932
+ # @example
933
+ # entities.intersect_with recurse, transformation1, entities1,
934
+ # transformation2, hidden, entities2
935
+ #
936
+ # @param [Boolean] recurse
937
+ # true if you want this entities object to be recursed
938
+ # (intersection lines will be put inside of groups and
939
+ # components within this entities object).
940
+ #
941
+ # @param [Geom::Transformation] transform1
942
+ # The transformation for this entities object.
943
+ #
944
+ # @param [Sketchup::Entities] entities1
945
+ # The entities object where you want the intersection
946
+ # lines to appear.
947
+ #
948
+ # @param [Geom::Transformation] transform2
949
+ # The transformation for entities1.
950
+ #
951
+ # @param [Boolean] hidden
952
+ # true if you want hidden geometry in this entities
953
+ # object to be used in the intersection.
954
+ #
955
+ # @param [Sketchup::Entity, Array<Sketchup::Entity>] entities2
956
+ # A single entity, or an array of entities.
957
+ #
958
+ # @return [nil]
959
+ #
960
+ # @version SketchUp 6.0
961
+ def intersect_with(recurse, transform1, entities1, transform2, hidden, entities2)
962
+ end
963
+
964
+ # The {#length} method is used to retrieve the number of entities in the
965
+ # collection of entities.
966
+ #
967
+ # @example
968
+ # model = Sketchup.active_model
969
+ # entities = model.entities
970
+ # entities.add_cpoint([10, 10, 10])
971
+ # number = entities.length
972
+ #
973
+ # @return [Integer]
974
+ #
975
+ # @see #size
976
+ #
977
+ # @version SketchUp 6.0
978
+ def length
979
+ end
980
+
981
+ # The model method is used to retrieve the model that contains the collection
982
+ # of entities.
983
+ #
984
+ # @example
985
+ # coordinates = [10, 10, 10]
986
+ # model = Sketchup.active_model
987
+ # entities = model.entities
988
+ # point = Geom::Point3d.new coordinates
989
+ # text = entities.add_text "This is a Test", point
990
+ # model = entities.model
991
+ #
992
+ # @return [Sketchup::Model] the model that contains the collection of
993
+ # entities if successful.
994
+ #
995
+ # @version SketchUp 6.0
996
+ def model
997
+ end
998
+
999
+ # The parent method is used to retrieve the parent or object that contains the
1000
+ # collection of entities. A parent can be either a Model or
1001
+ # ComponentDefinition object.
1002
+ #
1003
+ # @example
1004
+ # coordinates = [10, 10, 10]
1005
+ # model = Sketchup.active_model
1006
+ # entities = model.entities
1007
+ # point = Geom::Point3d.new coordinates
1008
+ # text = entities.add_text "This is a Test", point
1009
+ # parent = entities.parent
1010
+ #
1011
+ # @return [Sketchup::ComponentDefinition, Sketchup::Model] the object that
1012
+ # contains the collection of entities if successful
1013
+ #
1014
+ # @version SketchUp 6.0
1015
+ def parent
1016
+ end
1017
+
1018
+ # The remove_observer method is used to remove an observer from the current
1019
+ # object.
1020
+ #
1021
+ # @example
1022
+ # entities = Sketchup.active_model.entities
1023
+ # status = entities.remove_observer observer
1024
+ #
1025
+ # @param [Object] observer
1026
+ # An observer.
1027
+ #
1028
+ # @return [Boolean] true if successful, false if unsuccessful.
1029
+ #
1030
+ # @version SketchUp 6.0
1031
+ def remove_observer(observer)
1032
+ end
1033
+
1034
+ # The {#size} method is an alias for the {#length} method.
1035
+ #
1036
+ # @example
1037
+ # model = Sketchup.active_model
1038
+ # entities = model.entities
1039
+ # entities.add_cpoint([10, 10, 10])
1040
+ # number = entities.size
1041
+ #
1042
+ # @return [Integer]
1043
+ #
1044
+ # @see #length
1045
+ #
1046
+ # @version SketchUp 2014
1047
+ def size
1048
+ end
1049
+
1050
+ # The transform_by_vectors method is used to apply several vectors to several
1051
+ # sub-entities all at once.
1052
+ #
1053
+ # @example
1054
+ # # Raise vertices in selection by their distance to the origin.
1055
+ # model = Sketchup.active_model
1056
+ # entities = model.active_entities
1057
+ # with_vertices = entities.select { |entity| entity.respond_to?(:vertices) }
1058
+ # vertices = with_vertices.flat_map(&:vertices).uniq
1059
+ # lengths = vertices.map { |vertex| vertex.position.distance(ORIGIN) }
1060
+ # vectors = lengths.map { |length| Geom::Vector3d.new(0, 0, length) }
1061
+ #
1062
+ # entities.transform_by_vectors(vertices, vectors)
1063
+ #
1064
+ # @param [Array<Sketchup::Entity>] sub_entities
1065
+ # An array of entities to transform.
1066
+ #
1067
+ # @param [Array<Geom::Vector3d>] vectors
1068
+ # An array of vectors to apply.
1069
+ #
1070
+ # @return [Sketchup::Entities]
1071
+ #
1072
+ # @version SketchUp 6.0
1073
+ def transform_by_vectors(sub_entities, vectors)
1074
+ end
1075
+
1076
+ # The transform_entities method is used to apply a transform to several
1077
+ # sub-entities all at once.
1078
+ #
1079
+ # If you are transforming entities in the active drawing context or any of its
1080
+ # parent drawing contexts, the transformation will be interpreted as relative
1081
+ # to the global coordinate system. Otherwise the transformation will be
1082
+ # interpreted as being on the local coordinate system.
1083
+ #
1084
+ # @example
1085
+ # entities = Sketchup.active_model.entities
1086
+ # entity1 = entities.add_line([0,0,0],[100,100,100])
1087
+ # entity2 = entities.add_line([0,0,0],[200,-10,-10])
1088
+ #
1089
+ # transformation = Geom::Transformation.new([100,0,0])
1090
+ # entities.transform_entities(transformation, [entity1, entity2])
1091
+ #
1092
+ # @param [Geom::Transformation] transform
1093
+ # The Transformation to apply.
1094
+ #
1095
+ # @param [Array<Sketchup::Entity>] entities
1096
+ # An array or series of entities to transform.
1097
+ #
1098
+ # @return [Boolean] +false+ if the entities array was empty.
1099
+ #
1100
+ # @version SketchUp 6.0
1101
+ def transform_entities(transform, entities)
1102
+ end
1103
+
1104
+ # The {#weld} method takes a set of edges and find all possible chains of edges
1105
+ # and connect them with a {Sketchup::Curve}.
1106
+ #
1107
+ # A curve will not cross another curve. They will split where multiple curves
1108
+ # meet.
1109
+ #
1110
+ # @example
1111
+ # model = Sketchup.active_model
1112
+ # edges = model.selection.grep(Sketchup::Edge)
1113
+ # curves = model.active_entities.weld(edges)
1114
+ #
1115
+ # @param [Array<Sketchup::Edge>] edges
1116
+ #
1117
+ # @raise [ArgumentError] if the given entities are not part of the same
1118
+ # {Sketchup::Entities} collection.
1119
+ #
1120
+ # @return [Array<Sketchup::Curve>]
1121
+ #
1122
+ # @version SketchUp 2020.1
1123
+ def weld(edges)
1124
+ end
1125
+
1126
+ end