I think something like pick 1st line/pline segment. Dog ear yes/no, pick next segment, dog ear end yes/no, pick segment and so on. One case is a single line others two minimum.
Maybe making it a pline will help. Needs a bit of thought but I think can be done. I did something like this for another task offset a line pick next line offset then fillet.
This is just a sub function about getting direction of a pline segment. Based on pick end. May need to use, I think I got original code from Lee-mac.
(defun getplineseg (ent / ename param preparam postparam)
(setq ename (car ent))
(setq pt (cadr ent))
(setq pt (vlax-curve-getClosestPointTo ename pt))
(setq param (vlax-curve-getParamAtPoint ename pt))
(setq preparam (fix param))
(setq postparam (1+ preparam))
(setq pt1 (vlax-curve-getPointAtParam ename preparam)
pt2 (vlax-curve-getPointAtParam ename postparam)
)
(setq d1 (distance pt pt1))
(setq d2 (distance pt pt2))
(if (> d1 d2)
(setq tmp pt1
pt1 pt2
pt2 tmp)
)
(princ)
)
