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