@Kent1Cooper wrote:
That should be achievable without drawing a temporary Line, something like this [untested]:
....
I guess a temp line made the sence at the time... but you're right, thx.
(defun c:SplitDims (/ sel newpt ent edata elist def1 def2)
(command "_.UCS" "_W")
(if (and (setq sel (entsel "\nSelect Dimension to Split: "))
(setq def1 (cdr (assoc 13 (entget (car sel))))
def2 (cdr (assoc 14 (entget (car sel))))))
(while (setq newpt (getpoint def2 "\nSelect new Dim Point <exit>: "))
(setq newpt (inters def1 def2 newpt (polar newpt (+ (angle def1 def2) (/ pi 2)) 1) nil)
ent (car sel)
edata (entget ent)
elist (vl-remove-if
'(lambda (pair)
(member (car pair)
(list -1 2 5 102 310 300 330 331 340 350 360 410)))
edata))
(entmod (subst (cons 14 newpt) (assoc 14 elist) edata))
(entmakex (subst (cons 13 newpt) (assoc 13 elist) elist))))
(command "_.UCS" "_P")
(princ)
)
@miroslav.pristov For other potential readers you should mark the final version as the solution.