/
romost
/
flange
Обзор
Документация
Войти
/
romost
/
flange
Код
Запросы
0
Пакеты
0
Релизы
1
Аналитика
Безопасность
master
src/sealing_surface.lua
99 строк
4 KB
romost
add stud metalware
10 мар 2025, 21:49
10 мар 2025, 21:49
ae9326f
Код
Авторство
О чём код?
function CreateSealingSurfaceSolidTypeB(flangeTable, sealingSurfaceTable) local sealingThickness = sealingSurfaceTable[2].value local sealingDiameterOuter = sealingSurfaceTable[3].value local flangeDiameterInner = flangeTable[3].value return Subtract( Loft( { CreateCircle2D(Point2D(0, 0), (sealingDiameterOuter / 2) - sealingThickness), CreateCircle2D(Point2D(0, 0), sealingDiameterOuter / 2) }, { Placement3D(Point3D(0, 0, -sealingThickness), Vector3D(0, 0, 1), Vector3D(1, 0, 0)), Placement3D(Point3D(0, 0, 0), Vector3D(0, 0, 1), Vector3D(1, 0, 0)) } ), CreateRightCircularCylinder(flangeDiameterInner / 2, sealingThickness) :Shift(0, 0, -sealingThickness) ) end function CreateSealingSurfaceSolidTypeCL(sealingSurfaceTable) local sealingThickness = sealingSurfaceTable[2].value local sealingDiameterOuter = sealingSurfaceTable[3].value return CreateRightCircularCylinder(sealingDiameterOuter / 2, sealingThickness) :Shift(0, 0, -sealingThickness) end function CreateSealingDeepeningSolidTypeCL(sealingSurfaceTable) local sealingThickness = sealingSurfaceTable[2].value local sealingDiameterInner = sealingSurfaceTable[4].value local sealingDeepening = sealingSurfaceTable[5].value return CreateRightCircularCylinder(sealingDiameterInner / 2, sealingDeepening) :Shift(0, 0, -sealingThickness) end function CreateSealingDeepeningSolidTypeDM(sealingSurfaceTable) local sealingThickness = sealingSurfaceTable[2].value local sealingDeepening = sealingSurfaceTable[5].value local grooveDiameterOuter = sealingSurfaceTable[6].value local grooveDiameterInner = sealingSurfaceTable[7].value return Subtract( CreateRightCircularCylinder(grooveDiameterOuter / 2, sealingDeepening), CreateRightCircularCylinder(grooveDiameterInner / 2, sealingDeepening) ):Shift(0, 0, -sealingThickness) end function CreateSealingSurfaceSolidTypeE(flangeTable, sealingSurfaceTable) local sealingThickness = sealingSurfaceTable[2].value local sealingDiameterOuter = sealingSurfaceTable[3].value local flangeDiameterInner = flangeTable[3].value return Subtract( CreateRightCircularCylinder(sealingDiameterOuter / 2, sealingThickness), CreateRightCircularCylinder(flangeDiameterInner / 2, sealingThickness) ):Shift(0, 0, -sealingThickness) end function CreateSealingDeepeningSolidTypeJ(sealingSurfaceTable) local sealingThickness = sealingSurfaceTable[2].value local sealingDeepening = sealingSurfaceTable[5].value local grooveDiameter = sealingSurfaceTable[8].value local grooveWidth = sealingSurfaceTable[9].value return Revolve( CreatePolyline2D({ Point2D(-grooveWidth / 2, 0), Point2D(grooveWidth / 2, 0), Point2D(grooveWidth / 2 - sealingDeepening * math.tan(math.rad(23)), -sealingDeepening), Point2D(-(grooveWidth / 2 - sealingDeepening * math.tan(math.rad(23))), -sealingDeepening), Point2D(-grooveWidth / 2, 0) }), Placement3D(Point3D(0, 0, 0), Vector3D(0, 0, 1), Vector3D(1, 0, 0)) :Rotate(CreateXAxis3D(), -math.rad(90)) :Shift(grooveDiameter / 2, 0, -sealingThickness), CreateZAxis3D(), RevolutionParameters(math.rad(360)) ) end function CreateSealingDeepeningSolidTypeK(flangeTable, sealingSurfaceTable) local flangeDiameterInner = flangeTable[3].value local sealingThickness = sealingSurfaceTable[2].value local sealingDiameterInner = sealingSurfaceTable[4].value return Loft( { CreateCircle2D(Point2D(0, 0), sealingDiameterInner / 2), CreateCircle2D(Point2D(0, 0), flangeDiameterInner / 2) }, { Placement3D(Point3D(0, 0, -sealingThickness), Vector3D(0, 0, 1), Vector3D(1, 0, 0)), Placement3D(Point3D(0, 0, 0), Vector3D(0, 0, 1), Vector3D(1, 0, 0)) } ) end