@pr0pjer1005XXK7W hi,
check this one, am i in the right direction?
insert the 2 attached blocks before running the lisp.
enjoy
Moshe
(defun c:hotgrip (/ _geometry _midpt _bscale ; local functions
ss0 ss1 scl ename lst i pi0 pt1)
(setq _geometry (lambda (ent) (mapcar (function (lambda (item) (cdr item))) (vl-remove-if-not (function (lambda (item) (= (car item) 10))) (entget ent)))))
(setq _midpt (lambda (p0 p1) (mapcar (function (lambda (x0 x1) (/ (+ x0 x1) 2))) p0 p1)))
(setq _bscale (lambda (sz) (atof (rtos (/ (cadr sz) (car sz)) 2 2))))
(setvar "cmdecho" 0)
(command "._undo" "_begin")
(if (and
(setq ss0 (ssget ":s:e+." '((0 . "lwpolyline"))))
(setq ss1 (ssget "_cp" (_geometry (ssname ss0 0)) '((0 . "lwpolyline"))))
)
(progn
(ssdel (ssname ss0 0) ss1)
(setq scl (_bscale (getvar "screensize")))
(setq savColor (getvar "cecolor"))
(setvar "cecolor" "yellow")
(foreach ename (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))
(setq lst (_geometry ename))
(setq i 0 pt0 (nth i lst))
(command "._insert" "sqrgrip" "_none" pt0 scl scl 0)
(foreach pt1 (cdr lst)
(command "._insert" "recgrip" "_none" (_midpt pt0 pt1) scl scl (angtos (angle pt0 pt1) 0 4))
(command "._insert" "sqrgrip" "_none" pt1 scl scl 0)
(setq pt0 pt1)
); foreach
); foreach
(setvar "cecolor" savColor)
(if (setq ss1 (ssget "_wp" (_geometry (ssname ss0 0)) '((0 . "insert") (2 . "sqrgrip,recgrip"))))
(command "._chprop" "_si" ss1 "_color" "red" "")
)
); progn
); if
(command "._undo" "_end")
(setvar "cmdecho" 1)
(princ)
); c:hotgrip