本文描述利用SCDM脚本绘制方程曲线的基本方法。
早期版本的SCDM中可以利用参数方程绘制曲线,然而新版本已经找不到此功能了,只能绘制三维方程曲面。不过仍然可以使用脚本绘制参数曲线。
脚本
功能y=sin(x)
的曲线# 设置草绘平面为XY面
sectionPlane = Plane.PlaneXY
result = ViewHelper.SetSketchPlane(sectionPlane)
# EndBlock
# 草绘样条曲线
pi = 3.14159265
points = List[Point2D]()
for i in range(0,370,10):
x = math.radians(i)
y = math.sin(x)
point = Point2D.Create(MM(x),MM(y))
points.Add(point)
result = SketchNurbs.CreateFrom2DPoints(False, points)
# EndBlock
生成的草图曲线如图所示。
画个阿基米德螺线,可以使用下面的代码:
# 设置草绘平面
sectionPlane = Plane.PlaneXY
result = ViewHelper.SetSketchPlane(sectionPlane)
# EndBlock
# 草绘样条曲线
pi = 3.14159265
A = 1
B = 1
points = List[Point2D]()
for i in range(0,370,10):
angle = math.radians(i)
x =(A+B*angle)*math.cos(angle)
y = (A+B*angle)*math.sin(angle)
point = Point2D.Create(MM(x),MM(y))
points.Add(point)
result = SketchNurbs.CreateFrom2DPoints(False, points)
# EndBlock
结果如图所示。
心脏线可以采用下面的代码:
# 设置草绘平面
sectionPlane = Plane.PlaneXY
result = ViewHelper.SetSketchPlane(sectionPlane)
# EndBlock
# 草绘样条曲线
pi = 3.14159265
r=1
points = List[Point2D]()
for i in range(0,370,10):
angle = math.radians(i)
x =r*(2*math.cos(angle)-math.cos(2*angle))
y = r*(2*math.sin(angle)-math.sin(2*angle))
point = Point2D.Create(MM(x),MM(y))
points.Add(point)
result = SketchNurbs.CreateFrom2DPoints(False, points)
# EndBlock
生成的模型如图所示。
可以看到,若已知曲线的参数方程,很容易利用脚本绘制出曲线草图。
三维几何点不能使用Point2D
类,而应该使用Point
类进行创建。
如三维螺旋线参数方程为:
其中
# 草绘样条曲线
pi = 3.14159265
a=10
b=1
points = List[Point]()
#这里1080为角度,表示3圈
for i in range(0,1080,10):
angle = math.radians(i)
x =a*math.cos(angle)
y = a*math.sin(angle)
z =b*angle
point = Point.Create(MM(x),MM(y),MM(z))
points.Add(point)
result = SketchNurbs.CreateFrom3DPoints(False,points)
# EndBlock
绘制的螺旋线如图所示。
采用扫掠的方式画个弹簧试试看。
总体上还是比较简单的。
(完毕)