sketchup ruby 中 add_line 和 add_edges区别

您好!在 SketchUp Ruby API 中,add_lineadd_edges 都可以用于创建线段或边集。它们的区别在于参数不同。

add_line 方法需要传递两个参数,分别是起点和终点的 3D 坐标(Point3d),并返回一个 Edge 对象,该对象表示新创建的线段。例如:

start_point = Geom::Point3d.new(0, 0, 0)
end_point = Geom::Point3d.new(10, 0, 0)
new_edge = Sketchup.active_model.entities.add_line(start_point, end_point)

add_edges 方法需要传递一个参数,即一个由顺序排列的 3D 坐标数组(Array of Point3d),并返回一个包含多条线段的 Edges 对象。例如:

points = [Geom::Point3d.new(0, 0, 0),
          Geom::Point3d.new(10, 0, 0),
          Geom::Point3d.new(10, 10, 0),
          Geom::Point3d.new(0, 10, 0)]
new_edges = Sketchup.active_model.entities.add_edges(points)

代码解释:

  1. Geom::Point3d.new(x, y, z) 创建一个 3D 坐标。
  2. Sketchup.active_model.entities 获取当前场景中的实体集合,即将要添加线段或边集的容器。
  3. entities.add_line(start_point, end_point) 创建一条起点为 start_point,终点为 end_point 的线段,并返回一个 Edge 对象。
  4. entities.add_edges(points) 创建一组连接 points 中所有点的线段,返回一个包含多个线段的 Edges 对象。

总之,如果要创建单条线段,请使用 add_line;如果要创建多条线段,请使用 add_edges