@Sea-Haven wrote:
....using Gcen onece you make a pline of the points, then just erase the dummy pline.
(setq pt (osnap (vlax-curve-getStartPoint (vlax-ename->vla-object (entlast)) "gcen")))
A few comments:
The (vlax-curve...) functions do not require conversion of an entity to a VLA object, but can use the entity name directly. So that [which I believe has one of its right parentheses in the wrong place] can be simply:
(setq pt (osnap (vlax-curve-getStartPoint entlast) "gcen")))
I prefer the weighted-average approach [Message 5], because:
A. It doesn't require drawing anything that later needs to be eliminated, but needs only the points;
B. It doesn't matter in which order the points are picked. If you happen to pick them in an order that, when drawn through them in order, would give this kind of Polyline:

then GCEN Osnap fails [it doesn't like self-intersection]. So for that approach, it would be necessary to prompt the User to pick sequentially around, and do some kind of calculations to check that they did, and if not, adjust the order of the points to get a non-self-intersecting Polyline.
C. It can work with points with different Z coordinates as well as different XY positions. And if variations in Z coordinate are involved, it can't be done by drawing a 3D Polyline, because GCEN Osnap doesn't accept them, even if they are planar and non-self-intersecting.
Kent Cooper, AIA