0 Replies Latest reply on Jun 13, 2017 10:03 AM by John Alexander

    Any better method than SelectByID2?

    John Alexander

      I'm trying to get a reference to silhouette edges in a drawing view. In a previous post, I learned that what I consider to be the best-practice method isn't possible due to what is probably a bug with the GetVisibleEntities function for SW2012 that has since been fixed.


      GetVisibleEntities causes crash when type is swViewEntityType_SilhouetteEdge


      My workaround has been to compute the silhouette edges using Face::GetSilhoutteEdgesVB, transform the vertices of an edge returned by that method to the drawing view's coordinate system and then perform SelectByID2 on that drawing view at the midpoint (or mid-curve if the silhouette edge isn't linear).


      This approach has managed to get a reference to the desired silhouette edge about 90% of the time. I would like this macro to be more robust than that. The problem with SelectByID2 is that it seems to be dependent on the camera viewport.



      If I zoom out far enough or just don't have the model in focus, the midpoint selection method fails on that chamfered corner.


      My question is, given a known position of a SilhouetteEdge in a drawing view, are there better techniques for getting a reference to that object? Are there better methods of going from an Edge generated by GetSilhouetteEdgesVB to its corresponding SilhouetteEdge in the drawing view without relying on selection?