How can I change RefPlane selections

Discussion in 'SolidWorks' started by tong1998, Aug 25, 2008.

  1. tong1998

    tong1998 Guest

    Hi,

    I am trying to use Solidworks API to change the RefPlane selections.
    Basically I have a part which includes a RefPlane feature that's of
    swRefPlaneAngle type. The definition of this plane includes two
    things: a RefPlane, and a SketchLine. I would like to update the
    selections with another RefPlane and another SketchLine.

    I was trying to achieve this using the Selections property of
    RefPlane. But I got the error message "Attempted to read or write
    protected memory. This is often in indicator that the other memory is
    corrupt." on the line "plane.Selections = New Object() {p, l}".

    I am pretty new to vb and solidworks api. I cannot figure out what I
    did was wrong. Any suggestion will be greatly appreciated!

    The detailed code is as follows.

    Dim swModel As ModelDoc2 = iSwApp.ActiveDoc
    Dim swPart As PartDoc = swModel
    Dim feature As Feature
    Dim ret As Boolean

    ' get the plane that is to be modified
    Dim planeFea As Feature =
    swPart.FeatureByName(nameOldPlane)
    Dim plane As RefPlaneFeatureData
    plane = feature.GetDefinition

    ' access the selection
    plane.AccessSelections(swModel, Nothing)

    ' check that the plane is of the correct type
    If plane.Type <> swRefPlaneType_e.swRefPlaneAngle Then
    Throw New Exception("Incorrect plane type")
    End If

    ' modify the selections
    Dim ents As Object = plane.Selections
    If UBound(ents) <> 1 Then
    Throw New Exception("Incorrect # of plane entities")
    End If

    ' get the new RefPlane and SketchLine
    p = ... ' get the new RefPlane
    l = .... ' get the new SketchLine

    plane.Selections = New Object() {p, l}
    ret = feature.ModifyDefinition(plane, swPart, Nothing)
    plane = Nothing
     
    tong1998, Aug 25, 2008
    #1
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.