Option Explicit

Option Base 1

Public z As Double '齿数

Public m As Double '齿轮模数

Public a As Double '齿轮压力角

Public r As Double '齿轮分度圆半径

Public rf As Double '齿根圆半径

Public rb As Double '基圆半径

Public rk As Double '齿顶圆半径

Public xt As Double '设置临时坐标变量

Public yt As Double

Public index As Double '循环变量

Public pitchT As Double

Public dataT() As Double '齿轮模数数据

Public dataT2() As Double

Public Const PI# = 3.14159265358979

Sub CATMain() '齿轮创建程序主入口

UserForm1.Show '进入用户窗口

End Sub

Public Function CreateGeneralGear(ByVal mT As Double, ByVal zT As Double, ByVal aT As Double, ByVal bT As Double, ByVal B As Double, ByVal LOrR As Integer)

'个参数意义分别为模数m,齿数z,压力角alpha,螺旋升角beta,齿厚B(角度单位均为deg),直齿,左旋或右旋0,1,2

aT = aT / 180 * PI '转换角度单位deg到rad

r = zT * mT / 2 '计算齿轮各参数的值

rb = r * Cos(aT)

rf = r - 1.25 * mT

rk = r + 1 * mT

If Not (Abs(bT) < 0.0001 Or LOrR = 0) Then pitchT = 2 * PI * rk * Tan((90 - bT) * PI / 180)

Dim documents1 As Documents '为后续数据层做准备

Set documents1 = CATIA.Documents

Dim partDocument1 As PartDocument

Set partDocument1 = documents1.Add("Part")

Dim part1 As Part

Set part1 = partDocument1.Part

Dim originElements1 As OriginElements

Set originElements1 = part1.OriginElements

Dim hybridBodies1 As HybridBodies

Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody

Set hybridBody1 = hybridBodies1.Add()

hybridBody1.Name = "渐开线齿轮图形数据"

Dim hybridShapeFactory1 As HybridShapeFactory

Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim hybridShapePointCoord1 As HybridShapePointCoord

Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(0#, 0#, 0#)

hybridShapePointCoord1.Name = "原点"

hybridBody1.AppendHybridShape hybridShapePointCoord1 '添加所添加的原点

part1.Update

Dim reference1 As Reference

Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1) '新建一个参考点(圆心)

Dim hybridShapePlaneExplicit1 As HybridShapePlaneExplicit

Set hybridShapePlaneExplicit1 = originElements1.PlaneXY

Dim reference2 As Reference

Set reference2 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1) '新建一个参考平面,定义在originElements类中决定

Dim hybridShapeCircleCtrRad1 As HybridShapeCircleCtrRad

Set hybridShapeCircleCtrRad1 = hybridShapeFactory1.AddNewCircleCtrRad(reference1, reference2, False, r) '据中心点和参考面,半径画分度圆

hybridShapeCircleCtrRad1.Name = "分度圆"

hybridBody1.AppendHybridShape hybridShapeCircleCtrRad1 '在当前模型中显示已在数据层面添加的模型

Set hybridShapeCircleCtrRad1 = hybridShapeFactory1.AddNewCircleCtrRad(reference1, reference2, False, rb) '画基圆

hybridShapeCircleCtrRad1.Name = "基圆"

hybridBody1.AppendHybridShape hybridShapeCircleCtrRad1

Set hybridShapeCircleCtrRad1 = hybridShapeFactory1.AddNewCircleCtrRad(reference1, reference2, False, rf) '画齿根圆

hybridShapeCircleCtrRad1.Name = "齿根圆"

hybridBody1.AppendHybridShape hybridShapeCircleCtrRad1

Set hybridShapeCircleCtrRad1 = hybridShapeFactory1.AddNewCircleCtrRad(reference1, reference2, False, rk) '画齿顶圆

hybridShapeCircleCtrRad1.Name = "齿顶圆"

hybridBody1.AppendHybridShape hybridShapeCircleCtrRad1

part1.Update

Set hybridShapePlaneExplicit1 = originElements1.PlaneXY

Set reference1 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)

Dim hybridShapePointOnPlane1 As HybridShapePointOnPlane '通过循环的方法画由15个点组成的渐开线

For index = 0 To 18

Set hybridShapePointOnPlane1 = hybridShapeFactory1.AddNewPointOnPlane(reference1, EvaluateX(rb, index * 0.03), EvaluateY(rb, index * 0.03)) '用曲面库类(hybridshapefactory)的方法在所选参考平面上新建各渐开线点

hybridShapePointOnPlane1.Name = "Point_" & CStr(index + 1)

hybridBody1.AppendHybridShape hybridShapePointOnPlane1

Next index

part1.Update '更新当前零部件几何体

Dim hybridShapeSpline1 As HybridShapeSpline

Set hybridShapeSpline1 = hybridShapeFactory1.AddNewSpline()

hybridShapeSpline1.SetClosing 0 '设置样条曲线封闭样式为0(0为不封闭)

hybridShapeSpline1.SetSplineType 0 '设置样条曲线投影样式0为不投影,否则应额外设置相应的reference平面变量

Dim hybridShapes1 As HybridShapes

Set hybridShapes1 = hybridBody1.HybridShapes

For index = 2 To 20

Set hybridShapePointOnPlane1 = hybridShapes1.Item("Point_" & CStr(index - 1))

Set reference1 = part1.CreateReferenceFromObject(hybridShapePointOnPlane1)

hybridShapeSpline1.AddPointWithConstraintExplicit reference1, Nothing, -1#, 1, Nothing, 0# '顺序添加参考约束点以绘制样条曲线spline

Next index

hybridShapeSpline1.Name = "渐开线齿廓曲线"

hybridBody1.AppendHybridShape hybridShapeSpline1 '向现有模型中添加已经生成的样条曲线

part1.InWorkObject = hybridShapeSpline1

part1.Update

Set hybridShapeCircleCtrRad1 = hybridShapes1.Item("分度圆") '本段代码完成渐开线与分度圆相交点的绘制

Set reference1 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1) '建立相交命令的第一个参数

Set reference2 = part1.CreateReferenceFromObject(hybridShapeSpline1)

Dim hybridShapeIntersection1 As HybridShapeIntersection

Set hybridShapeIntersection1 = hybridShapeFactory1.AddNewIntersection(reference1, reference2)

hybridShapeIntersection1.Name = "分度圆交点"

hybridBody1.AppendHybridShape hybridShapeIntersection1 '添加所生成的相交线

part1.InWorkObject = hybridShapeIntersection1

part1.Update

'本段代码完成由原点到分度圆与渐开线交点的直线绘制

Set hybridShapePointCoord1 = hybridShapes1.Item("原点")

Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1)

Set reference2 = part1.CreateReferenceFromObject(hybridShapeIntersection1)

Dim hybridShapeLinePtPt1 As HybridShapeLinePtPt

Set hybridShapeLinePtPt1 = hybridShapeFactory1.AddNewLinePtPt(reference1, reference2)

hybridShapeLinePtPt1.Name = "定位直线1"

hybridBody1.AppendHybridShape hybridShapeLinePtPt1

part1.InWorkObject = hybridShapeLinePtPt1

part1.Update

'本段代码完成由定位直线1和定角弧所做出的定位直线2及其二者的角平分线

Set hybridShapePointCoord1 = hybridShapes1.Item("原点") '画定位圆弧1

Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1)

Set hybridShapeIntersection1 = hybridShapes1.Item("分度圆交点")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeIntersection1)

Dim reference3 As Reference

Set hybridShapePlaneExplicit1 = originElements1.PlaneXY

Set reference3 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)

Dim hybridShapeCircleCtrPt1 As HybridShapeCircleCtrPt

Set hybridShapeCircleCtrPt1 = hybridShapeFactory1.AddNewCircleCtrPtWithAngles(reference1, reference2, reference3, False, 0#, 360 / zT / 2)

hybridShapeCircleCtrPt1.Name = "定位圆弧1"

hybridBody1.AppendHybridShape hybridShapeCircleCtrPt1

part1.Update

Set hybridShapePointCoord1 = hybridShapes1.Item("原点") '画定位直线2

Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1)

Set reference2 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMCircle.5;2);None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeCircleCtrPt1)

Set hybridShapeLinePtPt1 = hybridShapeFactory1.AddNewLinePtPt(reference1, reference2)

hybridShapeLinePtPt1.Name = "定位直线2"

hybridBody1.AppendHybridShape hybridShapeLinePtPt1

part1.Update

Set hybridShapeLinePtPt1 = hybridShapes1.Item("定位直线1")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeLinePtPt1)

Dim hybridShapeLinePtPt2 As HybridShapeLinePtPt

Set hybridShapeLinePtPt2 = hybridShapes1.Item("定位直线2")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeLinePtPt2)

Dim hybridShapeLineBisecting1 As HybridShapeLineBisecting

Set hybridShapeLineBisecting1 = hybridShapeFactory1.AddNewLineBisecting(reference1, reference2, 0#, rk + 10, False, 1)

hybridShapeLineBisecting1.Name = "定位直线3"

hybridBody1.AppendHybridShape hybridShapeLineBisecting1

part1.InWorkObject = hybridShapeLineBisecting1

part1.Update

'以下代码完成由定位角平分线所作对称特征即在其基础之上的圆弧的绘制

Set hybridShapeSpline1 = hybridShapes1.Item("渐开线齿廓曲线")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSpline1) '建立对称特征的第1个参数

Set hybridShapeLineBisecting1 = hybridShapes1.Item("定位直线3")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeLineBisecting1) '建立对称的第2个参数

Dim hybridShapeSymmetry1 As HybridShapeSymmetry

Set hybridShapeSymmetry1 = hybridShapeFactory1.AddNewSymmetry(reference1, reference2) '建立对称特征

hybridShapeSymmetry1.Name = "渐开线齿廓对称"

hybridShapeSymmetry1.VolumeResult = False '设置对称特征结果为曲面非体积

hybridBody1.AppendHybridShape hybridShapeSymmetry1

part1.InWorkObject = hybridShapeSymmetry1

part1.Update

Set hybridShapeSpline1 = hybridShapes1.Item("渐开线齿廓曲线") '绘制2点补充圆弧

Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMCurve.1;2);None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeSpline1)

Set hybridShapeSymmetry1 = hybridShapes1.Item("渐开线齿廓对称")

Set reference2 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMSymmetry.1;(Brp:(GSMCurve.1;2)));None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeSymmetry1)

Set hybridShapePlaneExplicit1 = originElements1.PlaneXY

Set reference3 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)

Dim hybridShapeCircle2PointsRad1 As HybridShapeCircle2PointsRad

Set hybridShapeCircle2PointsRad1 = hybridShapeFactory1.AddNewCircle2PointsRad(reference1, reference2, reference3, False, rk + 20, 1)

hybridShapeCircle2PointsRad1.Name = "补充圆弧1"

hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad1

part1.InWorkObject = hybridShapeCircle2PointsRad1

part1.Update

'以下代码完成依据所提供参数绘制的渐开线齿槽的导角和接合过程

Set hybridShapeSpline1 = hybridShapes1.Item("渐开线齿廓曲线")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSpline1)

Set hybridShapeCircleCtrRad1 = hybridShapes1.Item("基圆")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1)

Dim hybridShapeCorner1 As HybridShapeCorner

Set hybridShapeCorner1 = hybridShapeFactory1.AddNewCorner(reference1, reference2, Nothing, rb / 30, -1, 1, False)

hybridShapeCorner1.Name = "倒圆角1"

hybridBody1.AppendHybridShape hybridShapeCorner1

part1.Update

Set hybridShapeSymmetry1 = hybridShapes1.Item("渐开线齿廓对称")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSymmetry1)

Set hybridShapeCircleCtrRad1 = hybridShapes1.Item("基圆")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1)

Set hybridShapeCorner1 = hybridShapeFactory1.AddNewCorner(reference1, reference2, Nothing, rb / 30, 1, 1, False)

hybridShapeCorner1.Name = "倒圆角2"

hybridBody1.AppendHybridShape hybridShapeCorner1

part1.InWorkObject = hybridShapeCorner1

part1.Update

Set hybridShapeSpline1 = hybridShapes1.Item("渐开线齿廓曲线")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSpline1)

Set hybridShapeCorner1 = hybridShapes1.Item("倒圆角1")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeCorner1)

Dim hybridShapeSplit1 As HybridShapeSplit

Set hybridShapeSplit1 = hybridShapeFactory1.AddNewHybridSplit(reference1, reference2, -1)

hybridShapeSplit1.Name = "截除曲线1"

hybridBody1.AppendHybridShape hybridShapeSplit1

part1.Update

Set hybridShapeSymmetry1 = hybridShapes1.Item("渐开线齿廓对称")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSymmetry1)

Set hybridShapeCorner1 = hybridShapes1.Item("倒圆角2")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeCorner1)

Set hybridShapeSplit1 = hybridShapeFactory1.AddNewHybridSplit(reference1, reference2, -1)

hybridShapeSplit1.Name = "截除曲线2"

hybridBody1.AppendHybridShape hybridShapeSplit1

part1.InWorkObject = hybridShapeSplit1

part1.Update '以下将建立基于2点和半径的补充圆弧

Dim hybridShapeCorner2 As HybridShapeCorner

Set hybridShapeCorner2 = hybridShapes1.Item("倒圆角2")

Set hybridShapeCorner1 = hybridShapes1.Item("倒圆角1")

Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMCorner.2;1);None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeCorner2)

Set reference2 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMCorner.1;2);None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeCorner1)

Set originElements1 = part1.OriginElements

Set hybridShapePlaneExplicit1 = originElements1.PlaneXY

Set reference3 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)

Set hybridShapeCircle2PointsRad1 = hybridShapeFactory1.AddNewCircle2PointsRad(reference1, reference2, reference3, False, rb, 1)

hybridShapeCircle2PointsRad1.Name = "补充圆弧2"

hybridBody1.AppendHybridShape hybridShapeCircle2PointsRad1

part1.InWorkObject = hybridShapeCircle2PointsRad1

part1.Update '以下将完成以上步骤所绘制曲线的接合,以形成最终的渐开线齿槽

Set hybridShapeCircle2PointsRad1 = hybridShapes1.Item("补充圆弧1")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad1)

Set hybridShapeSplit1 = hybridShapes1.Item("截除曲线1")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeSplit1)

Dim hybridShapeAssemble1 As HybridShapeAssemble

Set hybridShapeAssemble1 = hybridShapeFactory1.AddNewJoin(reference1, reference2)

Set hybridShapeCorner1 = hybridShapes1.Item("倒圆角1")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeCorner1)

hybridShapeAssemble1.AddElement reference1 '添加其余接合约束

Set hybridShapeCircle2PointsRad1 = hybridShapes1.Item("补充圆弧2")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeCircle2PointsRad1)

hybridShapeAssemble1.AddElement reference1

Set hybridShapeCorner1 = hybridShapes1.Item("倒圆角2")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeCorner1)

hybridShapeAssemble1.AddElement reference1

Set hybridShapeSplit1 = hybridShapes1.Item("截除曲线2")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSplit1)

hybridShapeAssemble1.AddElement reference1

hybridShapeAssemble1.SetConnex 1 '设置接合对象的相关参数

hybridShapeAssemble1.SetManifold 1

hybridShapeAssemble1.SetSimplify 0

hybridShapeAssemble1.SetSuppressMode 0

hybridShapeAssemble1.SetDeviation 0.001

hybridShapeAssemble1.SetAngularToleranceMode 0

hybridShapeAssemble1.SetAngularTolerance 0.5

hybridShapeAssemble1.SetFederationPropagation 0

hybridShapeAssemble1.Name = "渐开线齿槽"

hybridBody1.AppendHybridShape hybridShapeAssemble1

part1.InWorkObject = hybridShapeAssemble1

part1.Update

'以下代码将完成齿轮主体(即齿顶圆高度)的实体拉伸操作

Dim bodies1 As Bodies

Set bodies1 = part1.Bodies

Dim body1 As Body

Set body1 = bodies1.Item("零部件几何体")

body1.Name = "零件实体"

part1.InWorkObject = body1 '在执行相应特征操作前先应设置Catia工作于对应的命令种类下

Set hybridShapeCircleCtrRad1 = hybridShapes1.Item("齿顶圆")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1)

Dim pad1 As Pad

Dim shapeFactory1 As ShapeFactory

Set shapeFactory1 = part1.ShapeFactory

Set pad1 = shapeFactory1.AddNewPadFromRef(reference1, B) '拉伸齿轮实体

pad1.Name = "齿轮实体"

part1.Update

'以下代码将完成齿轮渐开线齿廓的开槽功能

If Abs(bT) < 0.0001 Or LOrR = 0 Then '齿轮斜角为直齿的情况

Dim pocket1 As Pocket '添加渐开线齿槽

Set shapeFactory1 = part1.ShapeFactory

Set hybridShapeAssemble1 = hybridShapes1.Item("渐开线齿槽")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeAssemble1)

Set pocket1 = shapeFactory1.AddNewPocketFromRef(reference1, B + 5)

Dim limit1 As Limit '为避免单单用参数化的形式可能造成的反向错误,将其设为穿透模式

Set limit1 = pocket1.FirstLimit

limit1.LimitMode = catUpThruNextLimit '设置穿透形式为直到下一对象(平面或曲面)

part1.InWorkObject = pocket1

pocket1.Name = "完整齿槽"

part1.Update

Else '余下的为斜齿的情况,左旋与右旋定义螺旋线(Helix)的旋向不同即可

Set hybridShapeSymmetry1 = hybridShapes1.Item("渐开线齿廓对称") '绘制交点

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSymmetry1)

Set reference2 = part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(Pad.1;1);None:();Cf11:());Face:(Brp:(Pad.1;0:(Brp:(GSMCircle.4)));None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", pad1)

Set hybridShapeIntersection1 = hybridShapeFactory1.AddNewIntersection(reference1, reference2)

hybridShapeIntersection1.PointType = 1 '设置运算结果为点

hybridShapeIntersection1.Name = "定位交点"

hybridBody1.AppendHybridShape hybridShapeIntersection1

part1.InWorkObject = hybridShapeIntersection1

part1.Update

Set originElements1 = part1.OriginElements

Set hybridShapePlaneExplicit1 = originElements1.PlaneXY

Set reference1 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)

Set hybridShapePointCoord1 = hybridShapes1.Item("原点")

Set reference2 = part1.CreateReferenceFromObject(hybridShapePointCoord1)

Dim hybridShapeLineNormal1 As HybridShapeLineNormal

Set hybridShapeLineNormal1 = hybridShapeFactory1.AddNewLineNormal(reference1, reference2, 0#, B + 10, True)

hybridShapeLineNormal1.Name = "螺旋线轴线"

hybridBody1.AppendHybridShape hybridShapeLineNormal1

part1.InWorkObject = hybridShapeLineNormal1

part1.Update

Set hybridShapeIntersection1 = hybridShapes1.Item("定位交点")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeIntersection1)

Set hybridShapeLineNormal1 = hybridShapes1.Item("螺旋线轴线")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeLineNormal1)

Dim hybridShapeHelix1 As HybridShapeHelix

Set hybridShapeHelix1 = hybridShapeFactory1.AddNewHelix(reference2, True, reference1, pitchT, B + 10, IIf(LOrR = 1, True, False), 0#, 0#, False)

hybridShapeHelix1.Name = "螺旋曲线"

hybridBody1.AppendHybridShape hybridShapeHelix1

part1.InWorkObject = hybridShapeHelix1

part1.Update

Set hybridShapes1 = hybridBody1.HybridShapes

Set hybridShapeAssemble1 = hybridShapes1.Item("渐开线齿槽")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeAssemble1)

Set hybridShapeHelix1 = hybridShapes1.Item("螺旋曲线")

Set reference2 = part1.CreateReferenceFromObject(hybridShapeHelix1)

Dim slot1 As slot

Set shapeFactory1 = part1.ShapeFactory

Set body1 = bodies1.Item("零件实体")

part1.InWorkObject = body1 '由于切换了工作模式需要改变模式为实体工作模式

Set slot1 = shapeFactory1.AddNewSlotFromRef(reference1, reference2)

part1.Update

End If

'以下代码将完成开槽操作的圆模式以最终完成渐开线齿形

Set hybridShapePointCoord1 = hybridShapes1.Item("原点")

Set reference1 = part1.CreateReferenceFromObject(hybridShapePointCoord1)

Set bodies1 = part1.Bodies

Set body1 = bodies1.Item("零件实体")

Set pad1 = body1.Shapes.Item("齿轮实体")

Set reference2 = part1.CreateReferenceFromBRepName("FSur:(Face:(Brp:(Pad.1;1);None:();Cf11:());WithTemporaryBody;WithoutBuildError;WithInitialFeatureSupport;MFBRepVersion_CXR15)", pad1)

Dim circlePatten1 As CircPattern

If Abs(bT) < 0.0001 Or LOrR = 0 Then Set pocket1 = body1.Shapes.Item("完整齿槽")

Set circlePatten1 = shapeFactory1.AddNewCircPattern(IIf(Abs(bT) < 0.0001 Or LOrR = 0, pocket1, slot1), 1, zT, 20#, 360 / zT, 1, 1, reference1, reference2, True, 0#, True)

circlePatten1.Name = "环形阵列"

part1.InWorkObject = circlePatten1

part1.Update

'最后需要完成对象的消隐工作

Dim selection1 As Selection

Set selection1 = partDocument1.Selection

Dim visPropertySet1 As VisPropertySet

Set visPropertySet1 = selection1.VisProperties

selection1.Add hybridBody1

visPropertySet1.SetShow 1

part1.Update

End Function

Public Function EvaluateX(ByVal rbT As Double, ByVal t As Double) As Double '注意这里的参数方程的取值范围为0~1

EvaluateX = rbT * Sin(t * PI / 2) - rbT * t * PI / 2 * Cos(t * PI / 2)

End Function

Public Function EvaluateY(ByVal rbT As Double, ByVal t As Double) As Double '这里的参数t取值也为0~1

EvaluateY = rbT * Cos(t * PI / 2) + rbT * PI * t / 2 * Sin(t * PI / 2)

End Function

catia73631234567890相关推荐

  1. aws root账户_所以您继承了一个AWS账户

    aws root账户 Many engineers have found themselves in the unenviable position of being handed the keys ...

最新文章

  1. 记一次大规模数据迁移和加密
  2. ​防火墙(一)主机型防火墙
  3. [Voice Tips 2] IPHONE
  4. 简单的Socket实现web功能
  5. mfc程序转化为qt_工控编程,Qt 学习之路
  6. Git 基本操作教程
  7. c语言中判断输入是否为数字_C 判断
  8. gsoap使用心得! (win32)
  9. 项目管理基本目录结构
  10. C语言 底层IO openclose
  11. axios_json-server的介绍与服务器搭建---axios工作笔记002
  12. java的语法基础_JAVA语法基础1(入门手册)
  13. Oracle数据库运维方案及优化
  14. npp夜光数据介绍 viirs_NPP-VIIRS年度夜间灯光数据的合成方法与验证
  15. Jenkins 构建项目流程
  16. 车载播放器 android,KX万能播放器
  17. 项目环境搭建-logback.xml常用配置
  18. 如何使用Visual C进行画图
  19. 有时,你需要宣扬你的野心
  20. 开源网店系统源码PrestaShop v1.7.7.0

热门文章

  1. 如何隐藏网络计算机,电脑隐藏网络怎么连接
  2. 诗经 - 小雅 - 彤弓
  3. 唐都 计算机组成原理软件cm3,计算机专业实验室的特色建设.doc
  4. 通过2DAO 投资二级市场的机会与潜力
  5. php全能环境,linux php全能环境一键安装,小白福利!
  6. 数字类型--就要学习Go系列
  7. android studio checkstyle插件,Android Studio配置CheckStyle
  8. 美国打车应用Lyft宣布IPO发行价定为72美元 今晚登陆纳斯达克
  9. windows中Oracle服务连接不上错误排查及解决方法-实用
  10. 碧瑶答疑网-软件需求规格说明书