    # Thread: Calculate the horizontal distance between two points or objects that have X,Y,Z

1. Login to Give a bone

## Calculate the horizontal distance between two points or objects that have X,Y,Z

I need a lisp that will calculate the horizontal distance between two points or objects that have x,y,z with them. I do not need it label just for it to show the distance and bearing in the command prompt all of the lisps I have found label it and I am not sure which part of the routine calculates it.  Reply With Quote

2. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

If you only want the x value distance, and it is in point format.

Code:
`(setq Xdist (abs (- (car Pt1) (car Pt2))))`
Tim  Reply With Quote

3. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

Sometimes it is not just between two points maybe a polyline or something that has a z value with it that is not set to zero. I just need it to display the distance and bearing.  Reply With Quote

4. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

Can you just use the distance command within Acad? It will give you the total distance, distance in all planes, and the angle.

Tim  Reply With Quote

5. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

If I pick two points (x1,y1) and (x2,y2) I just need to use the distance between two points which is (x1-x2)/(y1-y2) the distance command in autocad gives you a slope distance. I am not sure if I explained this well but if there are any questions let me know.  Reply With Quote

6. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

You don't have Autodesk Map or LDT do you? They have tools that do what you want.  Reply With Quote

7. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

yes i have ldt 2005 where is the tool that does that?  Reply With Quote

8. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

Then maybe
Code:
```(setq Xdist (abs (- (car Pt1) (car Pt2))))
(setq YourDist (/ Xdist Ydist))```
Tim  Reply With Quote

9. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z Originally Posted by chrisw.94380
yes i have ldt 2005 where is the tool that does that?
Check out the Map toolbars. Look for one called "Coordinate Geometry". There are some nice tools for getting arc and line info. The command line entry for the command you want is MAPCGLIST.  Reply With Quote

10. Login to Give a bone

## Re: Calculate the horizontal distance between two points or objects that have X,Y,Z

This routine will give you Bearing, Distance, Delta elev and Slope:
Code:
```;|CADALYST Tip1666:DEC2000  DST.LSP  Quick Distance  (c)2000, Robert M. Jacobson

DST.LSP WRITTEN BY ROBERT M. JACOBSON
Modified by Tom Beauford: droped redundent prompts & expanded listed info.

Dst.lsp will prompt the user to pick the first point, then pick the next point,
then display the distance picked by with a colored line, every distance measured
shows a different color. the bearing & horizontal distance will be displayed in
the left corner of the status line and the bearing, horizontal distance, difference
in elevation and slope will be displayed on the command line. |;

(defun C:DST ( / 2DIST fact str1 tw CNTR PT1 PT2 ang DST PDST Pang)

(defun 2DIST (PT)
) ;defun

(setq fact nil)
(if(and(= 1 (getvar "cvport"))(trans '(1 0 0) 2 3 0))
(progn
(setq fact (car (trans '(1 0 0) 2 3 0)))
(princ "\nPS:MS == 1:")
(princ(/ 1 fact))
(command "mspace")
(setq tw (- (* 2 pi)(cdr(assoc 51(entget(acet-currentviewport-ename))))))
(command "pspace")
)
)
(setq CNTR 0 ;INITIALIZE COUNTER
PT1 (getpoint "\nPick First Point") ;PROMPT FOR FIRST POINT
PT2 PT1
)
(while PT2 ;IF YES OR ENTER
(setq PT2 (getpoint "\nPick Next Point" PT1)) ;PROMPT FOR NEXT POINT
(if PT2
(progn
(if fact
(progn
(setq DST (/ (distance (2DIST PT1)(2DIST PT2))fact) ;CONVERT TO STRING
PDST (distance (2DIST PT1)(2DIST PT2)) ;CONVERT TO STRING
CNTR (1+ CNTR) ;ADD TO COUNTER FOR COLOR CHANGE
Pang (angtos (angle pt1 pt2)4 4)
ang (angtos (+(angle pt1 pt2)tw)4 4)
deltaz  (/ (- (car(cddr pt2)) (car(cddr pt1)))fact)
slope   (/ deltaz DST)
)
(if(eq Pang ang)
(setq DST(strcat "MS Bearing= "ang ", Dist= " (rtos DST 2 2) "', PS Dist= " (rtos PDST 2 2) "\""))
(setq DST(strcat "MS Bearing= "ang ", Dist= " (rtos DST 2 2) "', PS Bearing= "Pang ", Dist= " (rtos PDST 2 2) "\""))
);if
);progn
(setq DST (distance (2DIST PT1)(2DIST PT2))
CNTR (1+ CNTR)
ang (angtos (angle pt1 pt2)4 4)
deltaz  (- (car(cddr pt2)) (car(cddr pt1)))
slope   (/ deltaz DST)
DST	 (strcat "Bearing= "ang ", Dist= " (rtos DST 2 2) "'")
)
);if fact
(prompt (strcat "\n" DST)) ;Print the distance to command line
(if (/= 0 deltaz)(prompt (strcat "\nDelta elev= "(rtos deltaz) "   Slope= "(rtos slope 2 6))))
(grtext -1 DST) ;Print distance in status line
(grdraw PT1 PT2 CNTR 2) ;Draw a colored line between points
(setq PT1 PT2) ;Change start point
) ;end progn
) ;end if PT2
) ;end while PT2
(grtext -1 "") ;Clear status line
(princ)
) ;end fun``` Originally Posted by chrisw.94380
I need a lisp that will calculate the horizontal distance between two points or objects that have x,y,z with them. I do not need it label just for it to show the distance and bearing in the command prompt all of the lisps I have found label it and I am not sure which part of the routine calculates it.  Reply With Quote

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•