Hi there I found a routine but don't know why it doesn't work.
I took it from here
http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/delaunay-triangulation/m-p/871300Here is the error I get "
; error: Automation Error. Problem in loading application"
the debugger points to this section ->
(vla-getinterfaceObject
(vlax-get-acad-object)
"AcadX.Application"
)
(vl-load-com)
(if (not *acadx*)
(setq *acadx*
(vla-getinterfaceObject
(vlax-get-acad-object)
"AcadX.Application"
)
)
)
(defun VarIsArray (var)
(and
(eq (type var) 'variant)
(eq vlax-vbArray
(logand
(vlax-variant-type var)
vlax-vbArray
)
)
(not (zerop (VarArrayLen var)))
)
)
(defun VarArrayLen (var / array)
(setq array (vlax-variant-value var))
(- (vlax-safearray-get-u-bound array 1)
(vlax-safearray-get-l-bound array 1)
-1
)
)
(defun List->Coordinates (plist)
(vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray
vlax-vbDouble
(cons 0 (1- (* (length (car plist))
(length plist))))
)
(apply 'append plist)
)
)
)
(defun Coordinates->List (array dims / vlist rslt)
(if (eq (type array) 'variant)
(setq array (vlax-variant-value array))
)
(setq vlist (vlax-safearray->list array))
(if (eq dims 2)
(while vlist
(setq rslt
(cons
(list
(car vlist)
(cadr vlist)
)
rslt
)
vlist (cddr vlist)
)
)
(while vlist
(setq rslt
(cons
(list
(car vlist)
(cadr vlist)
(caddr vlist)
)
rslt
)
vlist (cdddr vlist)
)
)
)
(reverse rslt)
)
;; Generates a triangular mesh from selected AutoCAD POINT
;; entities. All points must lie in the XY plane.
(defun Celaunay2D ( / x ss points i p triangles)
(setq x *acadx*)
(setq ss (ssget '((0 . "POINT"))))
(if (zerop (sslength ss))
(exit)
)
(repeat (setq i (sslength ss))
(setq p (cdr (assoc 10
(entget
(ssname ss (setq i (1- i)))))))
(setq points
(cons
(list (car p) (cadr p))
points
)
)
)
(setq triangles
(coordinates->list
(vlax-invoke-method x
'Triangulate2d
(list->coordinates points)
)
3
)
)
(foreach triangle triangles
(gr-triangle triangle)
)
)
(defun gr-triangle (triangle / verts)
(setq verts
(mapcar
'(lambda (i)
(nth i points)
)
triangle
)
)
(grdraw (car verts) (cadr verts) 1)
(grdraw (cadr verts) (caddr verts) 1)
(grdraw (caddr verts) (car verts) 1)
)
;;;;;;;;;;;;;;;;;;; DELAUNAY2D.LSP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Don't know how to fix it.
thanks