INTELLIGENT WORK FORUMS FOR ENGINEERING PROFESSIONALS
Come Join Us!
Are you an Engineering professional? Join EngTips now!
 Talk With Other Members
 Be Notified Of Responses
To Your Posts
 Keyword Search
 OneClick Access To Your
Favorite Forums
 Automated Signatures
On Your Posts
 Best Of All, It's Free!
*EngTips's functionality depends on members receiving email. By joining you are opting in to receive email.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Dimensioning an arc length.(3)

pizza (Mechanical) (OP) 
3 Jun 02 10:33 
Is it possible to dimension an arc in AutoCAD? I mean, like you can normally do with striaght line. I'd like to be able to pick an arc or pick the endpoints of the arc and have AutoCAD give me extension lines and dimension lines and of course the length of the arc (not the straight length or straight height of it). I'd like to have the dimension line follow the arc too. Right now I have to do a property check on the arc and then just right it into the drawing. Or, if it's a 3D object with a curved surface, I have to explode it until I get to the line arc that I want and then do a property check for the arc line. Thanks. 

pppmm (Mechanical) 
4 Jun 02 18:45 
That is a good question. One that I have also been looking for. It dosen't seem like to much to ask for. 

KJJ (Structural) 
5 Jun 02 8:59 
I've never been able to dimension an arc but I tend to list it then draw a line from one end to the centre point and then to the other end (forming a cheese wedge). Then dimension the angle between the two lines and edit the Mtext manually. It's not an answer but it looks okay when plotted. 

I'm all aboard on the Mtext option, not a great solution, but what is, really. What about dimensioning the arc length and radius and therefore having: S = R * Theta
Like I said not a great solution, but it works. 

(2) CarlB (Civil/Environmental) 
7 Jun 02 3:57 

Here is what I do in AutoCAD LT97: 1) Go to DIMENSION/ANGULAR 2) Now pick the arc to create the dim line 3) Now go to MODIFY/LENGTHEN 4) Click on the arc, look at Command Line to see length 5) Go to MODIFY/PROPERTIES 6) Click on Arc Dimension, and manually type in length
Alt way of manually typing in dims: a) find a dim with a fraction, copy it to the side b) now explode the dim, click on it, MODIFY/PROP c) highlight contents, and EDIT/COPY d) now the contents are saved on the WINDOWS CLIPBOARD, and as long as you don't "EDIT/COPY" anything else, you'll have those contents saved e) now erase exploded dimension f) go back up to #6, and now instead of "manually" typing everything, highlight contents box, and EDIT/PASTE g) now just change the numbers to what you want them to be
Hope this helps!
Andy Daugherty AutoCAD Draftsman Castone Corporation 

Here is what I do in AutoCAD LT97: 1) Go to DIMENSION/ANGULAR 2) Now pick the arc to create the dim line 3) Now go to MODIFY/LENGTHEN 4) Click on the arc, look at Command Line to see length 5) Go to MODIFY/PROPERTIES 6) Click on Arc Dimension, and manually type in length
Hope this helps!
Andy Daugherty AutoCAD Draftsman Castone Corporation 

Try going to Autodesk.com web site. Find Knowledge Base, Search using Keyword'(s): TS67876 / Document #. Or "Arc Length"  all the words. They have a macro that you can assign to a button to dimension an arc. 

Someone recently gave me this LISP. MicroStation users always ask me if we can do this in ACAD. I finally got someone to give the LISP. Here it is ....
;; ;; Ploetzl, Mieling  Vienna compuserve id 100115,3172 ;; ;; DIMARC.LSP ;; ;; dim length of an arc ;; uses the autocad command dim angle and replaces the angle measure ;; with the length of the arc segment ;; ;; CALL: dima ;; ;; 0992pf ver11c2/0.1 ;; 0494pf ver12c1/0.2 ;; ; ; error, save and restore variables ; (defun be:er (s) (if (/= s "Function cancelled" )(prompt (strcat "\nError: " s))) (setq *error* be_or) (setvar "osmode" oosm) (setvar "cmdecho" ocmd) (princ) ) ; ; up info ; (defun be:inf () (prompt (strcat "\nLayer: " (getvar "clayer") "\tTextheight: " (rtos (getvar "dimtxt")) "\tDimStyle: " (getvar "dimstyle") ) ) ) (princ ".") ;; ;; dima ;; (defun c:dima (/ e d piu sel elem selnam rad ang lae antw ptr pt1 pt2 rad1 rad2)
;error, save var (setq be_or *error* *error* be:er oosm (getvar "osmode") ocmd (getvar "cmdecho") piu (/ 180.0 pi) e (getvar "lunits") d (getvar "luprec") ) (setvar "cmdecho" 0) (setvar "dimse1" 0) (setvar "dimse2" 0)
(prompt "\nDim ArcLength ver12c1/0.2pf0494") (be:inf) (if (setq sel (entsel "\nSelect ARC / RETURN to select points: ")) (progn (setq elem (entget (car sel))) (prompt (setq selnam (cdr (assoc 0 elem)))) (if (= selnam "ARC") (progn (setq rad (cdr (assoc 40 elem))) (setq ang ( (cdr (assoc 51 elem))(cdr (assoc 50 elem)) ) ) (if (< ang 0)(setq ang (+ ang (* 2 pi) ) ) ) (setq ang (* ang piu)) (setq lae (/ (* pi ang rad) 180.0) ) (prompt (strcat "\nRadius = " (rtos rad) "\tAngle = " (rtos ang) "\tLength = " (rtos lae) ) );prompt (prompt (strcat "\nLength arc: <" (rtos lae) "> ")) (setq antw (getdist)) (if (/= antw nil)(setq lae antw)) (setvar "cmdecho" 1) (command "_.dim1" "_ang" sel pause (rtos lae) pause) );progn arc (prompt "\nNo arc.") );if elem );progn (progn (setq ptr (getpoint "\nMidpoint: ")) (setq pt1 (getpoint "\nFirst arc point: ")) (setq pt2 (getpoint "\nSecend arc point: ")) (setq ang1 (angle ptr pt1) ang2 (angle ptr pt2) rad1 (distance ptr pt1) rad2 (distance ptr pt2) ) (if (/= (rtos rad1 2 10) (rtos rad2 2 10)) (prompt "\nRadius is different!") (progn (if (> ang2 ang1) (setq ang (/ (* ( ang2 ang1) 180.0) pi)) (setq ang (/ (* ( ang1 ang2) 180.0) pi)) ) (setq lae (/ (* ang pi rad1) 180.0)) (command "_.arc" "_c" ptr pt1 pt2) (setq sel (list (ssname (ssget "_L") 0) pt1)) (setvar "cmdecho" 1) (command "_.dim1" "_ang" sel pause (rtos lae) pause) (command "_.erase" sel "") );progn );if );progn );if ;error restore (setq *error* be_or) (setvar "cmdecho" ocmd) (setvar "osmode" oosm) (princ)
) ;bemw ;; (princ ".") (prompt "\nDimarc.lsp loaded. Call command with DIMA. pf0494") (princ) ;;end dimarc.lsp pf
Copy the above to a text file and rename it to "DIMARC.LSP" Load this lisp and type "dimarc" Hope this helps! RICH@LG (ARCHITECT) 

You gotta type "dima" for RICHatLG lisp to work 

Sorry! :(
He's right! Rich@LG 

IFRs (Petroleum) 
22 Nov 02 14:05 
I use several lisp routines to arc dimensions that convert the angle to an arc length. Mine do not have any error checking etc but they are functional. Here is an easy one:
(DEFUN C:DV3 (/ p1 p2 p3 p4 x1 x2 x3 y1 y2 y3 adj dx dy opp om ang rad arc ark) ; Dimension INT to INT along any circle (SetVar "CMDECHO" 0) (Setq om (GetVar "OSMODE")) (COMMAND "Osnap" "Int") (setq p1 (getpoint "\nSnap to first INT: ") p2 (getpoint "\nSnap to second INT: ") ) (COMMAND "Osnap" "CEN") (setq p4 (getpoint "\nPick a point on the arc: ")) (COMMAND "Osnap" "NON") (setq p3 (getpoint "\nPoint to dimension location: ") x1 ( (car p1) (car p4)) y1 ( (cadr p1) (cadr p4)) x2 ( (car p2) (car p4)) y2 ( (cadr p2) (cadr p4)) x3 ( / ( + x2 x1 ) 2.0000 ) y3 ( / ( + y2 y1 ) 2.0000 ) adj ( sqrt ( + ( * x3 x3 ) ( * y3 y3 ))) dx (  x3 x2 ) dy (  y3 y2 ) opp ( sqrt ( + ( * dx dx ) ( * dy dy ))) ang ( atan ( / opp adj )) rad ( getvar "Userr2") arc ( * rad ang 2.0000 ) ark (rtos arc) ) (COMMAND "DIM1" "ANG" "" P4 P1 P2 P3 ARK P3) (COMMAND "DIM1" "HOM" "L" "") (COMMAND "DIM1" "TE" "L" PAUSE) (SetVar "OSMODE" om) (SetVar "CMDECHO" 0) (princ) ) 



