Message 1 of 8
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hai, i need a small help.i have a working lisp routine which gives perpendicular line distance to main pline when clicked on a place perpendicular, all i want to add is the leader at the where i click and Easting and Northing and CH. and also instead of TEXT i need MText position where i can click. pls reply if its possible.
i've added a screenshot for reference ..... thanks
(defun c:Chi (/ s p c a d tp sch) (setq sch (getstring "\nSpecify start chainage : <0>")) ;"0" is set as the default value (if (= sch "")(setq sch "0")) (if (and (setq s (car (entsel "\nPick a polyline :"))) (or (= (cdr (assoc 0 (entget s))) "LWPOLYLINE") (alert "Invalid object! Please pick a polyline only.") ) ) (while (and (setq p (getpoint "\nSpecify point perpendicular to polyline :") ) (setq c (vlax-curve-getclosestpointto s p)) (setq a (angle p c)) (not (grdraw p c 1 -1)) ;; rubber line in red colour. (setq d (angle '(0. 0. 0.) (vlax-curve-getfirstderiv s (vlax-curve-getparamatpoint s c) ) ) ) (or (or (equal (rem (+ d (* pi 0.5)) (+ pi pi)) a 1e-4) (equal (rem (+ d (* pi 1.5)) (+ pi pi)) a 1e-4) ) (alert "Picked point is not a perpendicular to picked polyline. <!>" ) ) (setq tp (getpoint "\nSpecify Point for Text : ")) ) (entmakex (list '(0 . "text") '(100 . "AcDbEntity") '(67 . 0) '(370 . 13) '(100 . "AcDbText") (cons 10 tp) (cons 40 0.6) ; Change text height here (cons 1 (strcat "CH=" sch "+" (rtos (vlax-curve-getdistatpoint s c) 2 3) ;3 instead of 4 to specify precision ) ) (cons 71 0) (cons 72 0) (cons 11 '(0 0 0)) '(100 . "AcDbText") (cons 73 0) ) ) ) ) (princ) ) (vl-load-com)
Solved! Go to Solution.