MrD33P Posted November 21, 2015 Posted November 21, 2015 lets say I have a drawing of tower and I need to display levels at different heights, say, one at base and then at 1.5 meters above and then at 3 meters .. RLs of these points is 272.5, 274, 277 etc. (RL means height of point above mean sea level). Is there any way to do it fast than just using text command, since I have to display several RLs in one drawing and I have several such drawings. please guide me. Quote
eldon Posted November 21, 2015 Posted November 21, 2015 If you are drawing an elevation view of this tower, and the elevation is equal to the y coordinate, then go to Lee-Mac's website for Elevation Marker lisp It may be what you want. Quote
MrD33P Posted November 22, 2015 Author Posted November 22, 2015 (edited) Thanks a ton eldon, the lisp in given link doesn't work as I wanted however your answer took me to another page Lisp : Elevation Marker and this worked perfectly. But please tell me how to resize the text that Lisp draw ??? Edited November 22, 2015 by MrD33P Quote
eldon Posted November 22, 2015 Posted November 22, 2015 I have not used this lisp, but the instructions tell you to enter the scale of the drawing, and it sizes the marker (and I presume the text) before you pick the marker location. Quote
MrD33P Posted November 23, 2015 Author Posted November 23, 2015 I did change scale but after changing it anything other than 1.0 it shows wrong elevation, after entering scale 1.5 (or any other) elevation of 5 becomes 5.37 or something other !! It doesn't calculate accurately after changing scale. please try once yourself and get me through. Quote
BIGAL Posted November 23, 2015 Posted November 23, 2015 Here is a rl routine it works based on a civil cross or long section so could be changed easily to suit, you would just label the floor levels with a dummy text " xxx" for each level and the ground rl as true RL "grd123.45" pick a base point them pick as many above as you like. ;Calculates level of a point in cross or long sections (setvar "cmdecho" 0) (princ "\n To run just type SRL") ;;-------------------=={ Parse Numbers }==--------------------;;` ;; ;; ;; Parses a list of numerical values from a supplied string. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; s - String to process ;; ;;------------------------------------------------------------;; ;; Returns: List of numerical values found in string. ;; ;;------------------------------------------------------------;; (defun LM:ParseNumbers ( s ) ( (lambda ( l ) (read (strcat "(" (vl-list->string (mapcar (function (lambda ( a b c ) (if (or (< 47 b 58) (and (= 45 b) (< 47 c 58) (not (< 47 a 58))) (and (= 46 b) (< 47 a 58) (< 47 c 58)) ) b 32 ) ) ) (cons nil l) l (append (cdr l) (list nil)) ) ) ")" ) ) ) (vl-string->list s) ) ) (defun c:SRL () (setq olddimzin (getvar "dimzin")) (setvar "dimzin" 0) (if (= dwgscale nil) (setq dwgscale (/ 1000.0 (getreal "\n enter vertical scale "))) ) ;(setq datum (getreal "\n Enter datum level ")) (setq datum (car (LM:ParseNumbers (cdr (assoc 1 (entget (car (entsel "\nPick datum text")))))))) (setq test 1) (setq pt1 (cadr (getpoint "\npick datum"))) (while (= test 1) (setq pt2 (cadr (getpoint "\npick point"))) (setq dist (/(abs (- pt1 pt2)) dwgscale)) (setq en1 (car (entsel "\nSelect text number:" ))) (if (/= en1 nil) (progn (setq tent (entget en1)) (setq a (+ dist datum)) (setq a (rtos a 2 3)) (setq el (subst (cons 1 a) (assoc 1 tent) tent)) (entmod el) );progn (princ "\nplease pick again"); else );if ); while t (setq el nil en nil a nil en1 nil test nil) (setvar "cmdecho" 1) (setvar "dimzin" olddimzin) (princ) ) ;ends main defun Quote
MrD33P Posted November 23, 2015 Author Posted November 23, 2015 hey BIGAL, I can't get it to work, this is what happens when I try but nothing plots could you please direct me to any tutorial ? Command: SRL Pick datum text pick datum pick point Select text number:1 please pick again pick point Select text number:2 please pick again pick point Select text number:3 please pick again pick point Select text number:4 please pick again pick point Select text number:5 please pick again pick point ; error: bad argument type: numberp: nil Quote
eldon Posted November 23, 2015 Posted November 23, 2015 I wrote my own lisp programme for annotating elevation drawings over ten years ago, and it has no error functions. But it works for me. If you look at post #5 in this thread, you can see. Best of luck with the one that you found. It looks too complicated for me. Quote
MrD33P Posted November 23, 2015 Author Posted November 23, 2015 I wrote my own lisp programme for annotating elevation drawings over ten years ago, and it has no error functions. But it works for me. If you look at post #5 in this thread, you can see. Best of luck with the one that you found. It looks too complicated for me. hey Eldon this is great but it starts from 0 elevation, what if I wanted to display RL 250.55 (from sea level) in a drawing of height 5 meters. Quote
eldon Posted November 23, 2015 Posted November 23, 2015 Offset a line so that it is at zero elevation, and set up a UCS so that your required point has the necessary "y" value equal to your RL. That is how mine works, I cannot tell how the other one works. Quote
BIGAL Posted November 24, 2015 Posted November 24, 2015 Not sure why it doesn't work Ok for me use it all the time, but like Eldon uses a similar method only diff was thanks to Lee-Mac can pick a RL123.45 and return 123.45 then pick corresponding point to this elevation as a base. Will have another look. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.