ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
SBSteven Boege27/03/2020

I'm trying to extend the macro _FullyDefineSketch to work with 3D Sketches.  I managed to make a version that gets points in a 3D Sketch and lists their coordinates.  But I can't figure out how to fix them.  The macro fixes the 2D Sketch points in the attached .sldprt file, but not the 3D Sketch points.  Some files have many 3D Sketches, so manually editing sketches is impractical.

If FeatType = "3DProfileFeature" Then
   Set swSketch = Feature.GetSpecificFeature2
   longSketchStatus = swSketch.GetConstrainedStatus()
   If longSketchStatus = 2 Then
      Part.ClearSelection2 True   
      boolstatus = Part.Extension.SelectByID2(FeatName, "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
      Part.EditSketch
      Part.ClearSelection2 True
      boolstatus = Part.Extension.SelectByID2("Point1@Origin", "EXTSKETCHPOINT", 0, 0, 0, True, 6, Nothing, 0)
      longstatus = Part.SketchManager.FullyDefineSketch(1, 1, 1023, 1, 1, Nothing, -1, Nothing, 1, -1)

      'Execerpted from https://help.solidworks.com/2018/english/api/sldworksapi/Get_Sketch_Points_Example_VB.htm
      sketchPointArray = swSketch.GetSketchPoints2
      For ii = 0 To UBound(sketchPointArray)      
          Set swSketchPoint = sketchPointArray(i)
          ' Get the x & y coordinates      
          Part.SketchAddConstraints "sgFIXED"
         xValue = sketchPointArray(ii).X
          yValue = sketchPointArray(ii).Y
          Debug.Print "Sketch point coordinates: "
          Debug.Print " x: " & xValue
          Debug.Print " y: " & yValue
          Debug.Print " "
      Next ii
       Part.ClearSelection2 True
       Part.SketchManager.InsertSketch True
      Part.ClearSelection2 True
   End If
End If