常用spaceclaim脚本(三)
拉伸曲线
ptList=List[Point]() #定义一个点的列表
ptList.Add(Point.Create(MM(11),MM(-14),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(22),MM(2),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(20), MM(25),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(24), MM(41),MM(0))) #创建点,并放入列表当中
ncurve = NurbsCurve.CreateThroughPoints(False, ptList, 0.0001) #创建一个样条曲线穿过所有创建的点
curveSegment = CurveSegment.Create(ncurve) #创建一个有限线段对象
designCurve = DesignCurve.Create(GetRootPart(),curveSegment) #创建DesignCurve对象
selection = Selection.Create(designCurve) #将DesignCurve对象选入
options = ExtrudeEdgeOptions() #定义一个拉伸曲线的选项,后面传入拉伸选项当中
options.PullSymmetric = False #是否双向拉伸
options.Copy = False #是否拷贝拉伸的曲线到最终位置
options.ExtrudeType = ExtrudeType.None #拉伸的类型
result = ExtrudeEdges.Execute(selection, Point.Create(MM(0), MM(0), MM(0)), Direction.Create(0, 0, 1), MM(20), options) #拉伸,该函数一共有两个重载函数
导圆角(导直角还无法实现)
result=BlockBody.Create(Point.Create(MM(-10), MM(-10), MM(-10)), Point.Create(MM(10), MM(10), MM(10))) #创建一个正方体
selection = Selection.Create(result.CreatedBody.Edges) #选中正方体的所有边
result = ConstantRound.Execute(selection, MM(2)) #倒角,该函数一共有两个重载函数,这里用到的函数,第一个参数为倒角的边,第二个参数为倒角的半径,第三个参数为默认参数,默认参数为null
偏移边
ptList=List[Point]() #定义一个点的列表
ptList.Add(Point.Create(MM(11),MM(-14),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(22),MM(2),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(20), MM(25),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(24), MM(41),MM(0))) #创建点,并放入列表当中
ncurve = NurbsCurve.CreateThroughPoints(False, ptList, 0.0001) #创建一个样条曲线穿过所有创建的点
curveSegment = CurveSegment.Create(ncurve) #创建一个有限线段对象
designCurve = DesignCurve.Create(GetRootPart(),curveSegment) #创建DesignCurve对象
selection = Selection.Create(designCurve) #将DesignCurve对象选入
options = ExtrudeEdgeOptions() #定义一个拉伸曲线的选项,后面传入拉伸选项当中
options.PullSymmetric = False #是否双向拉伸
options.Copy = False #是否拷贝拉伸的曲线到最终位置
options.ExtrudeType = ExtrudeType.None #拉伸的类型
result = ExtrudeEdges.Execute(selection, Point.Create(MM(0), MM(0), MM(0)), Direction.Create(0, 0, 1), MM(20), options) #拉伸,该函数一共有两个重载函数
selection = Selection.Create(GetRootPart().Bodies[0].Faces[0].Edges[3])
result = OffsetEdges.Execute(selection, MM(-9.82))
拉伸一个面
ptList=List[Point]() #定义一个点的列表
ptList.Add(Point.Create(MM(11),MM(-14),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(22),MM(2),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(20), MM(25),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(24), MM(41),MM(0))) #创建点,并放入列表当中
ncurve = NurbsCurve.CreateThroughPoints(False, ptList, 0.0001) #创建一个样条曲线穿过所有创建的点
curveSegment = CurveSegment.Create(ncurve) #创建一个有限线段对象
designCurve = DesignCurve.Create(GetRootPart(),curveSegment) #创建DesignCurve对象
selection_curve = Selection.Create(designCurve) #将DesignCurve对象选入
option_one = ExtrudeEdgeOptions() #定义一个拉伸曲线的选项,后面传入拉伸选项当中
option_one.PullSymmetric = False #是否双向拉伸
option_one.Copy = False #是否拷贝拉伸的曲线到最终位置
option_one.ExtrudeType = ExtrudeType.None #拉伸的类型
ExtrudeEdges.Execute(selection_curve, Point.Create(MM(0), MM(0), MM(0)), Direction.Create(0, 0, 1), MM(20), option_one) #拉伸,该函数一共有两个重载函数
selection_face = Selection.Create(GetRootPart().Bodies[0].Faces[0]) #选中对应的面
ThickenFaces.Execute(selection_face, Direction.Create(1, 1, 0), MM(60), ThickenFaceOptions()) #拉伸,第一个参数为拉伸的面,第二个参数为拉伸的方向,第三个参数为拉伸的长度,第四个参数为拉伸的相关设置,如果需要更进一步设置拉伸的相关参数,需要更详细的设置第四个参数
沿路径扫掠
CircularSurface.Create(MM(10), Direction.Create(0, 1, 0),Point.Create(MM(11),MM(-14),MM(0)))
selection=Selection.Create(GetRootPart().Bodies[0].Faces[0])
ptList=List[Point]() #定义一个点的列表
ptList.Add(Point.Create(MM(11),MM(-14),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(22),MM(2),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(20), MM(25),MM(0))) #创建点,并放入列表当中
ptList.Add(Point.Create(MM(24), MM(41),MM(0))) #创建点,并放入列表当中
ncurve = NurbsCurve.CreateThroughPoints(False, ptList, 0.0001) #创建一个样条曲线穿过所有创建的点
curveSegment = CurveSegment.Create(ncurve) #创建一个有限线段对象
curve_lenghth=curveSegment.Length
designCurve = DesignCurve.Create(GetRootPart(),curveSegment) #创建DesignCurve对象
pathselection=Selection.Create(designCurve) #将DesignCurve对象选入
options = SweepFaceCommandOptions()
options.KeepMirror = True
options.KeepLayoutSurfaces = False
options.KeepCompositeFaceRelationships = True
options.ExtrudeType = ExtrudeType.Add
options.KeepLayoutSurfaces = False
result = SweepFaces.Execute(selection, pathselection,curve_lenghth, options)
生成一个圆环
circle = CircularSurface.Create(MM(2), Direction.DirY, Point.Create(MM(10), MM(0), MM(20))) #首先创建一个圆面
selection = Selection.Create(circle.CreatedBody.Faces[0]) #选中圆面
RevolveFaces.Execute(selection, Line.Create(Point.Origin, Direction.DirZ), DEG(360), RevolveFaceOptions()) #旋转函数有两个函数,这里应用的函数,第一个参数为旋转的面,第二个为旋转轴,这里通过原点和z轴确定,注意Line是矢量,第三个参数为旋转的角度,第四个参数为更进一步设置旋转的参数选项
放样
loft_face=List[DesignFace]() #创建一个DesignFace的列表
CircularSurface.Create(MM(10), Direction.Create(0, 0, 1)) #创建第一个圆面
loft_face.Add(GetRootPart().Bodies[0].Faces[0]) #将第一个圆面添加到列表当中
CircularSurface.Create(MM(20), Direction.Create(0, 0, 1),Point.Create(MM(0),MM(0),MM(30))) #创建第二个圆面
loft_face.Add(GetRootPart().Bodies[1].Faces[0]) #将第二个圆面添加到列表当中
selection = Selection.Create(loft_face) #通过列表,选中圆面
result = Loft.Create(selection) #放样
更加详细的设置可参考下面的设置:
loft_face=List[DesignFace]() #创建一个DesignFace的列表
CircularSurface.Create(MM(10), Direction.Create(0, 0, 1)) #创建第一个圆面
loft_face.Add(GetRootPart().Bodies[0].Faces[0]) #将第一个圆面添加到列表当中
CircularSurface.Create(MM(20), Direction.Create(0, 0, 1),Point.Create(MM(0),MM(0),MM(30))) #创建第二个圆面
loft_face.Add(GetRootPart().Bodies[1].Faces[0]) #将第二个圆面添加到列表当中
selection = Selection.Create(loft_face) #通过列表,选中圆面
options = LoftOptions() #创建一个放样选项类的对象
options.GeometryCommandOptions = GeometryCommandOptions() #设置放样的几何
options.GeometryCommandOptions.KeepMirror = True options.GeometryCommandOptions.KeepLayoutSurfaces = True
options.GeometryCommandOptions.KeepCompositeFaceRelationships = True
options.GeometryCommandOptions.Select = True
options.PeriodicBlend = False #是否是一个闭合的放样
options.RotationalBlend = False #是否是一个旋转的放样
options.SheetMetalBlend = False #是否是金属面板混合
options.ClockIt = False
options.IsRuled = False
options.IsLocalGuide = False #是否使用本地导轨
options.ExtrudeType = ExtrudeType.Add #放样的方式为增加材料
result = Loft.Create(selection, None, options) #放样,本函数有三个参数,第一个参数选择放样的对象;第二个参数为可选参数,导轨的选择,默认为null;第三个参数也是可选参数,对放样的相关设置,默认为null
抽壳
#创建一个正方体
result = BlockBody.Create(Point.Create(MM(-10), MM(-10), MM(-10)), Point.Create(MM(10), MM(10), MM(10)))
selection = Selection.Create(result.CreatedBody) #选中生成的正方体
Shell.ShellBodies(selection, MM(-1)) #抽壳,该函数第一个参数为抽壳的对象,第二个参数为抽壳偏移的厚度
抽壳去掉某一面
result = BlockBody.Create(Point.Create(MM(-10), MM(-10), MM(-10)), Point.Create(MM(10), MM(10), MM(10))) #创建一个正方体
remove_face=result.CreatedBody.Faces[0] #选中删除的面
selection = Selection.Create(remove_face) #创建一个删除面的选择对象
result = Shell.RemoveFaces(selection, MM(-1)) #抽壳删除面,第一个参数为删除的面,第二个参数为抽壳偏移的厚度