🌓
搜索
 找回密码
 立即注册

SketchUp插件开发详解——创建圆弧

admin 2023-11-16 10:27:42 104089

圆弧是一种特殊的曲线,如果我们已经知道要创建的圆弧的每个点的位置,同样可以使用上一篇中的创建曲线的方法进行创建。但是在这一节我们要介绍的是SketchUp中提供的创建圆弧的方法和所创建的圆弧对象。

创建圆弧

因为圆弧是规则的形状曲线,所以需要更多的控制参数,所以创建圆弧的API要相对复杂:

add_arc(center, xaxis, normal, radius, start_angle, end_angle)

add_arc(center, xaxis, normal, radius, start_angle, end_angle, num_segments)

两组不同参数的差别只是后面多了一个段数参数,因为SketchUp中是用边线段集合来表示曲线的,可以在生成圆弧的时候指定段数,段数越多,表示出的曲线越精细,显示效果也就越好。如果不指定段数的话,生成的圆弧的段数是根据圆弧的角度来定的,具体段数的计算是:

  • 度数小于等于30度时,段数为2。

  • 度数大于30度时,段数为:(度数/15)向上取整。

并且每段边线所占的角度是均匀的。

创建圆弧的其余参数如下:

  • center:圆弧的圆心。

  • xaxis:圆弧的坐标系的X轴,也就是从圆弧的圆心指向一个基准方向的向量。

  • normal:圆弧的法向,表示的是圆弧是以这个向量为基准按右手定则旋转的。

  • radius:圆弧的半径。

  • start_angle:圆弧起始位置相对X轴的角度,也就是按右手定则从xaxis旋转的角度。

  • end_angle:圆弧终止位置相对X轴的角度。

例如:

entities = Sketchup.active_model.entities
center = Geom::Point3d.new(0, 0, 0)
xaxis = Geom::Vector3d.new(1, 0, 0)
normal = Geom::Vector3d.new(0, 0, 1)
entities.add_arc(center, xaxis, normal, 10, 0, 60.degrees)

可以得到弧线

返回值和创建曲线是一样的:

[#<Sketchup::Edge:0x000001ccbc9cd0f8>, #<Sketchup::Edge:0x000001ccbc9cd0d0>, #<Sketchup::Edge:0x000001ccbc9cd0a8>, #<Sketchup::Edge:0x000001ccbc9cd080>]

不同的是,通过edge.curve方法我们获取到的是一个ArcCurve对象,通过这个圆弧对象除可以获取到曲线的各种参数外,还可以获取到圆弧的圆心、半径等圆弧自身特有的参数。

创建圆

圆其实就是起始角度和终止角度之间的差刚好是360度的圆弧,所以完全可以通过创建圆弧的API来创建圆,但为了方便,SketchUp还提供了一个专门创建圆的方法:

add_circle(center, normal, radius, numsegs = 24)

参数比创建圆弧更简单,返回值和创建的曲线对象和创建圆弧的API没有任何区别。例如:

center = Geom::Point3d.new(0, 0, 0)
normal = Geom::Vector3d.new(0, 0, 1)
entities.add_circle(center, normal, 10)

可以得到一个圆:

同等的使用创建圆弧的API的方法是:

center = Geom::Point3d.new(0, 0, 0)
xaxis = Geom::Vector3d.new(1, 0, 0)
normal = Geom::Vector3d.new(0, 0, 1)
entities.add_arc(center, xaxis, normal, 10, 0, 360.degrees)



扫一扫

112371.jpg
随机推荐

最新主题

0 回复

高级模式
游客
返回顶部