Message 1 of 1
Path for sweep not complete using ilogic

Not applicable
10-19-2015
07:35 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi
I have a question regarding the path for the sweep feature using ilogic. The sweep feature doesn't follow to the end of the path if I run my rule. However, when I choose the path manually there are no problems...
why is that? I must have missed something in my code.
I have used much of the API references in the help topics trying to solve the problem but to no success.
I really appreciate if someone can help me.
Dim oNOC As Integer Dim oCoil_Start_X As Double Dim oCoil_Start_Y As Double Dim oCoil_Start_Z As Double Dim oCoil_Distance As Double Dim oCentral_Tube As Double Dim oCoil_t As Double Dim Coil_R As Double Dim oBend_R As Double Dim oManifold_Coil_Distance As Double Dim oCoilHeight As Double Dim oCoilDiff As Double Dim oCoilPitch As Double Dim oRevolutions As Double 'input oCoil_Start_X = Shell_D+270 oNOC = NOC oCoil_Distance = Coil_Distance oCoil_D = Coil_D oCoil_t = Coil_t Coil_R = Central_Tube/2 oBend_R = Bend_R oCoilPitch = Coil_Pitch oCentral_Tube = Central_Tube oRevolutions = Revolutions oManifold_Coil_Distance = Manifold_Coil_Distance oCoilHeight = Ceil((Round((Coil_D+1)*(Revolutions+1))/100+0.5))*100 oCoilDiff = oCoilHeight-0.5*oCoilPitch-oCoilPitch*oRevolutions CoilDiff = oCoilDiff 'reference to the current active document Dim oPartDoc As PartDocument oPartDoc = ThisApplication.ActiveDocument 'reference to the component definition Dim oCompDef As PartComponentDefinition oCompDef = oPartDoc.ComponentDefinition 'transient geometry Dim oTG As TransientGeometry oTG = ThisApplication.TransientGeometry Dim oWorkPlaneStart As WorkPlane oWorkPlaneStart = oCompDef.WorkPlanes.AddByPlaneAndOffset(oCompDef.WorkPlanes.Item(3),0.1*oCoilHeight,False) oWorkPlaneStart.Name = "Coil start plane" For i=1 To oNOC Coil_R = 0.5*(oCentral_Tube+(2*i-1)*(oCoil_Distance+oCoil_D)) oCoil_Start_Y = (-oNOC+1+2*(i-1))*oManifold_Coil_Distance*0.5 'conditional statement to detemine wheter the coils are in quadrant 1 or 2. If oCoil_Start_Y >= 0 Then 'equations for determination of the unknown variables Dim X As Double Dim X1 As Double Dim Y1 As Double Dim alfa As Double X = ((Coil_R+oBend_R)^2-(oCoil_Start_Y+oBend_R)^2)^0.5 Alfa = Acos(X/(Coil_R+oBend_R)) X1 = Coil_R*Cos(Alfa) Y1 = Coil_R*Sin(Alfa) 'Coils at outlet '------------------------------------------------------------------------------------------ 'Dim oSketch1 As PlanarSketch Dim oSketch1 As PlanarSketch oSketch1 = oCompDef.Sketches.add(oCompDef.Workplanes.item(3)) oSketch1.Name = "CoilSketch outlet" & i Dim oPoint1(0 To 6) As Point2d oPoint1(0) = oTG.CreatePoint2d(0.1*oCoil_Start_X,-0.1*oCoil_Start_Y) oPoint1(1) = oTG.CreatePoint2d(0.1*X,-0.1*oCoil_Start_Y) oPoint1(2) = oTG.CreatePoint2d(0.1*X1,-0.1*oCoil_Start_Y) oPoint1(3) = oTG.CreatePoint2d(0.1*X1,-0.1*Y1) 'intersection oPoint1(4) = oTG.CreatePoint2d(0.1*X,-0.1*(oCoil_Start_Y+oBend_R)) 'center of bend oPoint1(5) = oTG.CreatePoint2d(0.1*X1,-0.1*Coil_R) oPoint1(6) = oTG.CreatePoint2d(0,-0.1*Coil_R) 'create origin at outlet Dim oOriginOutlet1 As Point2d oOriginOutlet1 = oTG.CreatePoint2d(0,0) Dim oArc1 As SketchArc Dim oArc2 As SketchArc Dim oLine1 As SketchLine oLine1 = oSketch1.SketchLines.AddByTwoPoints(oPoint1(1),oPoint1(0)) oArc1 = oSketch1.SketchArcs.AddByCenterStartEndPoint(oPoint1(4),oPoint1(1),oPoint1(3),True) oArc2 = oSketch1.SketchArcs.AddByCenterStartEndPoint(oOriginOutlet1,oPoint1(3),oPoint1(6),False) oSketch1.GeometricConstraints.AddGround(oLine1) oSketch1.GeometricConstraints.AddGround(oArc1) oSketch1.GeometricConstraints.AddGround(oArc2) '------------------------------------------------------------------------------------------ 'Create coils for helix Dim oSketch3D As Sketch3D oSketch3D = oCompDef.Sketches3D.Add oSketch3D.Name = "Coil system" & i Dim equationCurve1 As SketchEquationCurve3D equationCurve1 = oSketch3D.SketchEquationCurves3D.Add( _ CoordinateSystemTypeEnum.kCylindrical, _ Coil_R,"-90-90*t", "0.5*Coil_Pitch*t", 0, 1) oSketch3D.GeometricConstraints3D.AddGround(equationCurve1) Dim equationCurve2 As SketchEquationCurve3D equationCurve2 = oSketch3D.SketchEquationCurves3D.Add( _ CoordinateSystemTypeEnum.kCylindrical, _ Coil_R,"-180-360*t", "0.5*Coil_Pitch+Coil_Pitch*t", 0, Revolutions) oSketch3D.GeometricConstraints3D.AddGround(equationCurve2) Dim equationCurve3 As SketchEquationCurve3D equationCurve3 = oSketch3D.SketchEquationCurves3D.Add( _ CoordinateSystemTypeEnum.kCylindrical, _ Coil_R,"-180-90*t","0.5*Coil_Pitch+Coil_Pitch*Revolutions+CoilDiff*t" , 0, 1) oSketch3D.GeometricConstraints3D.AddGround(equationCurve3) 'Coils at inlet '------------------------------------------------------------------------------------------ oSketch2 = oCompDef.Sketches.add(oWorkPlaneStart) oSketch2.Name = "CoilSketch inlet" & i Dim oPoint2(0 To 6) As Point2d oPoint2(0) = oTG.CreatePoint2d(0.1*oCoil_Start_X,0.1*oCoil_Start_Y) oPoint2(1) = oTG.CreatePoint2d(0.1*X,0.1*oCoil_Start_Y) oPoint2(2) = oTG.CreatePoint2d(0.1*X1,0.1*oCoil_Start_Y) oPoint2(3) = oTG.CreatePoint2d(0.1*X1,0.1*Y1) 'intersection oPoint2(4) = oTG.CreatePoint2d(0.1*X,0.1*(oCoil_Start_Y+oBend_R)) 'center of bend oPoint2(5) = oTG.CreatePoint2d(0.1*X1,0.1*Coil_R) oPoint2(6) = oTG.CreatePoint2d(0,0.1*Coil_R) 'create origin at outlet Dim oOriginOutlet As Point2d oOriginOutlet = oTG.CreatePoint2d(0,0) Dim oLine As SketchLine oLine = oSketch2.SketchLines.AddByTwoPoints(oPoint2(0),oPoint2(1)) oArc1 = oSketch2.SketchArcs.AddByCenterStartEndPoint(oPoint2(4),oLine.EndSketchPoint,oPoint2(3),False) oArc2 = oSketch2.SketchArcs.AddByCenterStartEndPoint(oOriginOutlet,oPoint2(3),oPoint2(6),True) oSketch2.GeometricConstraints.AddGround(oLine) oSketch2.GeometricConstraints.AddGround(oArc1) oSketch2.GeometricConstraints.AddGround(oArc2) '------------------------------------------------------------------------------------------ 'Create circle at endpoint of oLine1 Dim oPointCircle As Point oPointCircle = oSketch1.SketchToModelSpace(oLine1.EndSketchPoint.Geometry) Dim oWorkPlaneCircles As WorkPlane oWorkPlaneCircles = oCompDef.WorkPlanes.AddByNormalToCurve(oLine1, oLine1.EndSketchPoint) oWorkPlaneCircles.Name = "Circles" oSketch1 = oCompDef.Sketches.add(oWorkPlaneCircles) oSketch1.Name = "Circles" & i Dim oCircle As SketchCircle oCircle = oSketch1.SketchCircles.AddByCenterRadius(oSketch1.ModelToSketchSpace(oPointCircle),0.1*oCoil_D*0.5) oSketch1.GeometricConstraints.AddGround(oCircle) oCircle = oSketch1.SketchCircles.AddByCenterRadius(oSketch1.ModelToSketchSpace(oPointCircle),(oCoil_D-2*oCoil_t)*0.1*0.5) oSketch1.GeometricConstraints.AddGround(oCircle) Dim oPath As Path oPath = oCompDef.Features.SweepFeatures.CreatePath(oLine) Dim oProfile As Profile oProfile = oSketch1.Profiles.AddForSolid 'Sweep the circles And path Dim oSweep As SweepFeature oSweep = oCompDef.Features.SweepFeatures.AddUsingPath(oProfile,oPath,kJoinOperation) oSweep.Name = "Coil system" Else End if next