Alternative approach:
1.
Assume that the scaling of the block is always 1 or -1. And that the block is only used in a 2D context.
2.
The insertion point of the block reference, point p1 and point p2 are on the same line.
3.
Point p1 is a fixed distance from the insertion point of the block reference.
4.
The distance from p1 to p2 is determined by the 'Distance1' dynamic property. You can retrieve this value using code. See example below.
5.
You can now use the insertion point, the sign of the X and Y scaling, and the rotation of the block reference, combined with the values from step 3 and 4, to calculate p1 and p2. Tip: Use the polar function.
; (GetPropValue (vlax-ename->vla-object (car (entsel))) "Distance1")
(defun GetPropValue (blockRefObj propName / ret)
(vl-some
'(lambda (propObj)
(if (= (strcase propName) (strcase (vlax-get propObj 'propertyname)))
(progn
(setq ret (vlax-get propObj 'value))
T
)
)
)
(vlax-invoke blockRefObj 'getdynamicblockproperties)
)
ret
)