;; ! **************************************************************************** ;; ! C:MidPoly ;; ! **************************************************************************** ;; ! Function : Determines the mid point of a polyline and draws a point at that ;; ! location ;; ! Author : Rakesh Rao, (C) 2004, Four Dimension Technologies ;; ! Bangalore, India ;; ! Email : rakesh.rao@4d-technologies.com ;; ! Web www.4d-technologies.com ;; ! Updated : March 11, 2004 ;; ! **************************************************************************** (defun c:MidPoly ( / ent ename entl en oname param len hLen MidPt OS ) (setq ent (entsel "\nSelect polyline:")) (if ent (progn (setq ename (car ent) entl (entget ename) en (cdr (assoc 0 entl)) ) (if (member en (list "POLYLINE" "LWPOLYLINE")) (progn (setq oname (vlax-ename->vla-object ename) param (vlax-curve-getEndParam oname) len (vlax-curve-getDistAtParam oname param) hLen (* 0.5 len) MidPt (vlax-curve-getPointAtDist oname hLen) ) (vlax-release-object oname) (setq OS (getvar "OSMODE")) (setvar "OSMODE" 0) (command "._Point" MidPt) (princ "\nPoint object created at mid-point:")(princ MidPt) (setvar "OSMODE" OS) ) (princ "\nYou must pick a polyline object only.") ) )) (prin1) ) (princ "\nType 'MidPoly' to start.") (prin1)