ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
RERob Edwards04/03/2019

This one's absolutely doing my head in.. I swear it worked yesterday, but I could be wrong.

I'm editing a new sketch in context of an Assembly. I added a few dimensions that are driven.

If the value of a certain dimension is below a threshold I want to delete it.

I kept the DisplayDimension object returned from creating it and am following the advice in this post...

namely to get the annotation to select prior to deleting.

From what I can tell, I have the correct dimension. The call to select returns True but it doesn't get deleted.

I also get this box pop up with the messsge

"Entities that do not belong to the active sketch cannot be deleted."

When I add a break point after selection and manually select the dimension, it works just fine.

Somethings not right.. and I don't have a clue what else to try.

Here's the code

'Add dimensions

Dim Haunch_swDD As SldWorks.DisplayDimension

Set Haunch_swDD = AddDimensionBetweenSketchPointAndEntity(vSketchEntities(0), pm.Haunch, "ThisOne")

Haunch_swDD.GetDimension.DrivenState = swDimensionDriven

Select Case True

Case Haunch_swDD Is Nothing

Case IsVerySmall(Haunch_swDD.GetDimension)

Dim swAnn As SldWorks.Annotation

Debug.Print Haunch_swDD.GetNameForSelection

Set swAnn = Haunch_swDD.GetAnnotation()

If swAnn.Select3(False, Nothing) Then

Debug.Print "name:" & swAnn.GetName & vbCr & "Type:" & swAnn.GetType

Debug.Print swModel.Extension.DeleteSelection2(0)

End If

[...]

...

Private Function AddDimensionBetweenSketchPointAndEntity(ByVal p As SldWorks.SketchPoint, e As SldWorks.Entity, Optional DimName = "") As SldWorks.DisplayDimension

p.Select4 False, Nothing

e.Select4 True, Nothing

Dim swDD As SldWorks.DisplayDimension

Set swDD = swModel.AddDimension2(p.X, p.Y, p.Z)

If Not swDD Is Nothing And DimName <> "" Then

swDD.GetDimension.name = DimName

End If

Set AddDimensionBetweenSketchPointAndEntity = swDD

End Function