Luis,
I just needed to place a block in a room defined by a ploy, so it doesn't need to be in the centroid, just nicely in the room. So i (DEFUN mir_VERTEXEN_uit (EL)
(setq vertexen (list ())
ele el
vertex (list (trans (cdr (assoc 10 ele)) 0 1))
) ;_ end of setq
(while vertex
(setq vertexen (append vertexen vertex)
ele (cdr (member (assoc 10 ele) ele))
) ;_ end of setq
(if (cdr (assoc 10 ele))
(setq vertex (list (trans (cdr (assoc 10 ele)) 0 1)))
(setq vertex nil)
) ;_ end of if
) ;_ end of while
(setq vertexen (vl-remove nil vertexen))
; (sort_vertexen)
)
(defun sort_vertexen (vertexen )
(setq vertexen (cdr vertexen))
(setq xp (list ()))
(setq yp (list ())
cnt 0
) ;_ end of setq
(repeat (length vertexen)
(setq vertex (nth cnt vertexen)
x (list (car vertex))
y (list (cadr vertex))
xp (append xp x)
yp (append yp y)
cnt (1+ cnt)
) ;_ end of setq
) ;_ end of repeat
(setq xp (cdr xp)
yp (cdr yp)
) ;_ end of setq
(setq xmin (vl-sort xp '<)
ymin (vl-sort yp '<)
xmax (vl-sort xp '>)
ymax (vl-sort yp '>)
) ;_ end of setq
(setq pt1 (list (car xmin) (car ymin))
pt2 (list (car xmax) (car ymax))
) ;_ end of setq
)
So i just used this code i had for some differend use and found with
(setq pti (polar pt1(angle pt1 pt2)
(/( distance pt1 pt2)2)))
a point nice in the room.
Thanks, Luis