Переопределяю отрисовку объектов в AutoCAD с помощью:
public class AlxdDrawOverrule : DrawableOverrule
{
        public override bool WorldDraw(Drawable drawable, WorldDraw wd)
        {
 
        }
}
В частности, надо между двумя текстовыми (пока только текстовыми) объектами начертить линию, как бы показать между ними некую связь. Сделал вот так:
                    Vector3d normal = new Vector3d();
                    if (drawable is Autodesk.AutoCAD.DatabaseServices.MText)
                    {
                        normal = (drawable as Autodesk.AutoCAD.DatabaseServices.MText).Normal;
                    }
                    else
                        if (drawable is Autodesk.AutoCAD.DatabaseServices.DBText)
                        {
                            normal = (drawable as Autodesk.AutoCAD.DatabaseServices.DBText).Normal;
                        }
                        else
                            return base.WorldDraw(mydrawable, wd);
 
                    Extents3d extents1 = drawable.Bounds.Value;
                    Point3d midPoint = extents1.MaxPoint + extents1.MaxPoint.GetVectorTo(extents1.MinPoint).DivideBy(2);
 
                    if (validatedGroundElevations.Count > iofDistanceBetweenElevations)
                    {
                        Extents3d extents2 = validatedGroundElevations[iofDistanceBetweenElevations].Open(OpenMode.ForRead).Bounds.Value;
                        Point3d midPointGroundElevation = extents2.MaxPoint + extents2.MaxPoint.GetVectorTo(extents2.MinPoint).DivideBy(2);
                            
                        wd.Geometry.WorldLine(midPoint, midPointGroundElevation);
                    }
 
                    if (validatedGroundElevations.Count > iofDistanceBetweenElevations + 1)
                    {
                        Extents3d extents2 = validatedGroundElevations[iofDistanceBetweenElevations + 1].Open(OpenMode.ForRead).Bounds.Value;
                        Point3d midPointGroundElevation = extents2.MaxPoint + extents2.MaxPoint.GetVectorTo(extents2.MinPoint).DivideBy(2);
                        wd.Geometry.WorldLine(midPoint, midPointGroundElevation);
                    }
Все отлично отрисовывается. Но очень некрасиво, что линии исходят из центра текстовых объектов. Как бы их так аккуратненько подрезать до границ (extent) текстовых объектов? 
В моем случае есть Extents3d и две точки Point3d. Надо найти точку пересечения мнимой линии проходящей через указанные точки с экстентами. Сперва с экстентами первого текстового объекта, а потом с экстентами второго. Таким образом получить две новые точки и их использовать для построения линии связи.
Голову сломал, как вычислить точки не "городя огород".