Is there a way to get autocad to dimension survey lines? That is show bearings and distances. I haven't worked with Autocad since version 12. Back in the 90's we a lisp routine that did this but I wasn't able to load it into 2000.
I am interested in this routine too. Actually I was thinking of developing one for myself...I won't mind getting a ready-made version. Suppose I go ahead and complete the routine? Howz that?
well i have an old label routine for acad. have used them for both acad 14 & 2002. don't use them much now use eagle point, they are approx. 8 years old. try them for yourself, 25$ to register. they don't "time out" and if you locate the author and enjoy his product then let him know and send $$. see "readme.doc".
can't seem to include the zip file in this post, so therefore e-mail to request label routine.
lee@polysurveying.com
Intel P4 1.7 GHZ
768 RDRAM
Win 2000 Pro
Autocad 14, 2002 with EP 2.3.1
Why not post your lisp file here
and let the guys see it and determine
why it will not load into 2000.
It should load unless you have some
type of memory limitation or not
have lisp feature on.
Here is a lisp file I've used since rel. 12 and still use in Map 5. It puts the dist & heading on the text layer and it the text layer doesn't exist then it creates it.
I searched my archives and came up with these. The one I am attempting to load is one of these but has been modified for Canadian use. The distances are in metres and decimals thereof ( a lttle legal mumbo jumbo from a surveyor's affidavit)and bearings are azmuiths measured from north, that is bearings are from 0 to 360 degrees measured clockwise from north.
;program to note the bearing and distance between two points
;or the two ends of a line for Architects and Civil Engineers
;who don't have a cogo package and need to label boundary lines
;you can change the layer names, colors, and linetypes as you
;see fit
;
(defun C:CLEAN (); delete this function if you already have it loaded
(setq atomlist (member 'C:CLEAN atomlist));'DONE
);close defun
;functions half,spcg,spc,rtd,and convert are all utility functions
;to clean up the main program
;
(defun half (pi) ;returns 90 degrees in radians
(/ pi 2))
(defun spcg (ts) ;returns line spacing = 1/2 text size
(/ ts 2))
(defun spc (ts) ;returns offset from end of line = 2 x text size
(* ts 2))
(defun rtd (ang / ) ;converts radians to degrees
(* (/ ang pi) 180.0))
(defun convert (angtext) ;replaces d in text string with degrees
;symbol
(setq newtext "" test nil)
(setq L (strlen angtext))
(setq n 4)
(while (<= n L)
(setq ds (substr angtext n 1))
(if (= ds "d"
(progn
(setq ds "%%d"
(setq test T)
(setq newtext (strcat (substr angtext 1 (1- n))
ds (substr angtext (1+ n))))
);close progn
);close if
(if (= T test)(setq n (1+ L)) (setq n (1+ n)))
);close while
(setq angtext newtext)
);close defun
;
;main program begins here
;cflag for centered, right justified, or left justified text location
;lflag for above or below line text location
;tflag for text content - bearing only, distance only, or both
;
(defun CISTNOTE ()
(graphscr)
(setq save (getvar "CLAYER");saves current layer
(setvar "CMDECHO" 0);turns off command echoing to screen
(setq cont "Y"initializes value for repeating program
(setq pstring (strcat "Text height <default="
(rtos (getvar "TEXTSIZE" 2 2) ">: ")
;sets default value for text height prompt
(command "LAYER" "MAKE" "BRG_DIST" "COLOR" "RED" "BRG_DIST" ""
;places text on new layer brg_dist with color=red
;a layer ltype command could be added here if desired
(setq tflag (strcase
(getstring "Bearing only, Distance only, or both - Type B, D, or BD
<default=BD>: "))
(if (= tflag ""(setq tflag "BD");default
(if (or (= tflag "B"(= tflag "D")
(progn
(setq lflag (strcase
(getstring "Locate text A, or B line <default=A>: "))
(if (= lflag "" (setq lflag "A")
);close progn - then clause of if statement
(progn
(setq lflag (strcase
(getstring "Locate text A, B, or AB line
<default=AB>: "))
(if (= lflag "" (setq lflag "AB")
);close progn - else clause of if statement
);close if
(setq cflag (strcase
(getstring "Right end, Centered, or Left end of line
<default=C>: "))
(if (= cflag "" (setq cflag "C");default
(setq ts (getdist pstring));sets text height
(if (= ts nil) (setq ts (getvar "TEXTSIZE"));default
(setvar "OSMODE" 9)
(while (= cont "Y"repeats with same values
(setq pt1 (osnap (getpoint "First point: " "node,endpoint")
(setq pt2 (osnap (getpoint "Second point: " "node,endpoint")
(setq dist (distance pt1 pt2))
(setq ang (angle pt1 pt2))
(setq disttext (strcat (rtos dist 2 2) "'");adds feet symbol to
;string
(setq angtext (angtos ang 4 4));converts angle to surveyor units
(if (> (strlen angtext) 6)(setq angtext (convert angtext)));see
;convert
(if (or (= lflag "A" (= lflag "B")
(progn
(cond
((= tflag "BD"(setq txt (strcat angtext " "
disttext)))
((= tflag "B"(setq txt angtext))
((= tflag "D"(setq txt disttext))
);close cond
);close progn
);close if
(cond
((= cflag "L"
(setq loc (polar pt1 ang (spc ts))))
((= cflag "C"
(setq loc (polar pt1 ang (/ dist 2))))
((= cflag "R"
(setq loc (polar pt1 ang (- dist (spc ts)))))
);close cond - starting location for text
(setq locOFF1 (polar loc (+ ang (half pi)) (spcg ts))); above
;line
(setq locOFF2 (polar loc (- ang (half pi)) (* (spcg ts) 3)));
;below line
(setq anglin (rtd ang)); sets text angle to proper units
(cond
((= cflag "L"
(cond
((= tflag "BD"
(cond
((= lflag "AB"
(command "TEXT" locOFF1 ts anglin angtext)
(command "TEXT" locOFF2 ts anglin disttext))
((= lflag "A"
(command "TEXT" locOFF1 ts anglin txt))
((= lflag "B"
(command "TEXT" locOFF2 ts anglin txt))
); close cond
); close expresion
((or (= tflag "B"(= tflag "D")
(cond
((= lflag "A"
(command "TEXT" locOFF1 ts anglin txt))
((= lflag "B"
(command "TEXT" locOFF2 ts anglin txt))
); close cond
); close expresion
); close cond - prints text in proper location and format
); close expresion = "L"
((/= cflag "L"
(cond
((= tflag "BD"
(cond
((= lflag "AB"
(command "TEXT" cflag locOFF1 ts anglin angtext)
(command "TEXT" cflag locOFF2 ts anglin
disttext))
((= lflag "A"
(command "TEXT" cflag locOFF1 ts anglin txt))
((= lflag "B"
(command "TEXT" cflag locOFF2 ts anglin txt))
); close cond
); close expresion
((or (= tflag "B"(= tflag "D")
(cond
((= lflag "A"
(command "TEXT" cflag locOFF1 ts anglin txt))
((= lflag "B"
(command "TEXT" cflag locOFF2 ts anglin txt))
); close cond
); close expresion
); close cond - prints text in proper location and format
); close expresion /= "L"
); close cond
(setq cont "N"
(prompt "To change variables type N and execute program again or
for"
(setq cont (strcase
(getstring " another with the same values type Y <default=N>:
"))
(if (null cont)(setq cont "N");do not repeat
);close while
(command "LAYER" "SET" save "" ;returns to original layer
'DONE;returns done at exit from program
);close defun