Message 1 of 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
What's wrong with the code below? It has a problem making line1A, but not line2. I've mess around quite a bit to try and get it to work. My assumption is that it has something to do with the oPoint0. I've make a longer version of this script that creates about a dozen lines, but the issue is always the first line. What am I misunderstanding about the API and points?
To use this, start a sketch in a part and drawing a line. Run this script and select the end point of the line.
Public Sub Main()
'Start in an active sketch
Dim oDrawDoc As PartDocument
oDrawDoc = ThisApplication.ActiveDocument
Dim oSketches As PlanarSketches
oSketches = ThisApplication.ActiveDocument.ComponentDefinition.Sketches
Dim oSketch As PlanarSketch
If TypeOf ThisApplication.ActiveEditObject Is Sketch Then
oSketch = ThisApplication.ActiveEditObject
Else
MessageBox.Show("Need to be in an Active Sketch.", "Title")
Exit Sub
End If
selectedStartPoint = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kSketchPointFilter, "Select point")
Dim oPoint0 As Point2d
'oPoint0 = ThisApplication.TransientGeometry.CreatePoint2d(selectedStartPoint.Geometry.X, selectedStartPoint.Geometry.Y)
test = False
Dim startpoint As SketchPoint
For Each startpoint In oSketch.SketchPoints
If startpoint.Geometry.IsEqualTo(selectedStartPoint.Geometry)
oPoint0 = ThisApplication.TransientGeometry.CreatePoint2d(startpoint.Geometry.X, startpoint.Geometry.Y)
test = True
End If
Next
Dim oPoint1A As Point2d
oPoint1A = ThisApplication.TransientGeometry.CreatePoint2d(line0.EndSketchPoint.Geometry.X + (1 * 2.54), line0.EndSketchPoint.Geometry.Y)
Dim line1A As SketchLine
linelA = oSketch.SketchLines.AddByTwoPoints(oPoint0, oPoint1A)
' ISSUE WITH THE NEXT LINE !!!!!!!
oSketch.GeometricConstraints.AddHorizontal(line1A)
Dim oPoint2 As Point2d
oPoint2 = ThisApplication.TransientGeometry.CreatePoint2d(oPoint1A.X, oPoint1A.Y + (1 * 2.54))
Dim line2 As SketchLine
' ISSUE WITH THE COMMENTED OUT LINE, B/C line1A IS NOT AN OBJECT?
'line2 = oSketch.SketchLines.AddByTwoPoints(line1A.EndSketchPoint, oPoint2)
line2 = oSketch.SketchLines.AddByTwoPoints(oPoint1A, oPoint2)
MessageBox.Show(line2.Geometry.StartPoint.X, "Title")
oSketch.GeometricConstraints.AddVertical(line2)
End Sub
Solved! Go to Solution.