View Full Version : Looking for a LISP routine to cut area of parcel of land
xfirez
2006-06-01, 09:39 AM
hi..i'm workin' as land surveyor...having problem..'im looking as .lsp for cutting area of parcel of land.
thank you..
Tom Beauford
2006-06-01, 11:32 AM
Could you be more spicific? Are you dividing a parcel into equal parts or maybe sectioning out a certin acreage?
xfirez
2006-06-04, 01:55 AM
irregular size of parcel land...i would to cut a ceratin parcel of land area...(sory for bad english)...acre...or subdivision land..
thanks
irregular size of parcel land...i would to cut a ceratin parcel of land area...(sory for bad english)...acre...or subdivision land..
thanks
Do you have an example you would like to share? This may help with the description a bit.
xfirez
2006-06-05, 05:40 AM
Here's a screenshot:
http://img228.imageshack.us/img228/5389/autocadsample9mv.jpg
target area was 10,000 sq.m ,Baseline, bearing and distances.
thanks.
Tom Beauford
2006-06-05, 01:08 PM
Draw the three courses N 2°44' W 223.8 m, S 53°35' E 202.22 m, and S 45°18' W 177.07 m in Autocad. Intersect the start and end to form a triangle. Copy it in place. List it to get the Area (Let's call that AT and call AT - 10,000 AR). Scale the copy using the intersected point as the base point. For the scale factor first divide AR by AT, then find the square root of that. Use boundary to draw the parcel, then list it and it should be 10,000. Worked on my machine. The N 45°18' E length came out to be 58.04 m and the S 2°44' E length came out to be 73.94 m.
Good luck,
rkmcswain
2006-06-05, 01:25 PM
Here's a screenshot:
http://img228.imageshack.us/img228/5389/autocadsample9mv.jpg
target area was 10,000 sq.m ,Baseline, bearing and distances.
thanks.
What software applications are you using? Most survey applications include a sliding side area calcualtion routine.
xfirez
2006-06-05, 03:12 PM
@...rkmcswain
i'm using "AutoCad LT 2004 and Autodesk Survey 2004"...
@..Tom Beauford
it takes times during fieldwork..only what i want is (.lsp)...i have lisp which calculating of area.so what i want to know is " Cutting Area of a certain parcel land "..
Good day and thanks
rkmcswain
2006-06-05, 03:22 PM
i'm using "AutoCad LT 2004 and Autodesk Survey 2004"...
How are you able to use Autodesk Survey without Land Desktop? Survey is not a standalone application, and it doesn't run on top of LT.
xfirez
2006-06-06, 07:23 AM
How are you able to use Autodesk Survey without Land Desktop? Survey is not a standalone application, and it doesn't run on top of LT.
opss...lol.is not LT..it is Land Desktop 2004..darn...so any help my friend
rkmcswain
2006-06-06, 12:03 PM
Have you looked at the Parcels menu in LDT?
There are 4 parcel resizing routines.
* Slide Bearing
* Radial
* Swing on Line
* Swing on Curve
xfirez
2006-06-10, 01:49 AM
yeah i tried those command...but this is what i need..all i want is a simple program such as AUTOLISP..give an example..try to cut an area.....command>>>"cutting area" ent.>>>pick LINE 1..next pick LINE 2..ENT...pick BASELINE 1...ent...ENTRY AREA...ENT..
RESULT...
line 1 = mts
line 2 = mts
baseline 2 = mts..
ATTACHMENT SAMPLE:
http://img157.imageshack.us/img157/4646/autolisp7ap.jpg
xfirez
2006-07-15, 03:38 PM
any help pls...thanks again
xfirez
2009-03-22, 01:40 AM
here is the sample...
http://img6.imageshack.us/img6/883/cuttingarea2.jpg
Bruno.Valsecchi
2009-03-22, 01:43 PM
Division of a quadrilateral by a divided line, parallel on the base line.
"Expression of Saron"
Quickly and dirty.
(defun ang_between (p10 p11 p20 p21 / px p1 p2 l_pt l_d p ang)
(setq px (inters p10 p11 p20 p21 nil))
(cond
(px
(if (> (distance px p10) (distance px p11)) (setq p1 p10) (setq p1 p11))
(if (> (distance px p20) (distance px p21)) (setq p2 p20) (setq p2 p21))
(setq
l_pt (list px p1 p2)
l_d (mapcar 'distance l_pt (append (cdr l_pt) (list (car l_pt))))
p (/ (apply '+ l_d) 2.0)
ang (* (atan (sqrt (/ (* (- p (car l_d)) (- p (caddr l_d))) (* p (- p (cadr l_d)))))) 2.0)
)
)
(T
nil
)
)
)
(defun c:divide_saron ( / pt1 pt2 pt3 pt4 S1 ang1 ang2 x1 x2 ptx1 ptx2)
(setq pt1 (getpoint "\nFirst point of baseline: "))
(setq pt2 (getpoint pt1 "\nSecond point of baseline: "))
(setq pt3 (getpoint pt1 "\nPoint of first adjacent side: "))
(setq pt4 (getpoint pt2 "\nPoint of second adjacent side: "))
(setq S1 (getreal "\nWanted area: "))
(setq ang1 (ang_between pt1 pt2 pt1 pt3))
(setq ang2 (ang_between pt2 pt1 pt2 pt4))
(setq ang1 (- pi ang1) ang2 (- pi ang2))
(setq x1
(*
(/
(* (distance pt1 pt2) (sin ang1))
(sin (+ ang1 ang2))
)
(1-
(+ ;or can be "-"
(sqrt
(1+
(/
(* 2.0 S1 (sin (+ ang1 ang2)))
(* (distance pt1 pt2) (distance pt1 pt2) (sin ang1) (sin ang2))
)
)
)
)
)
)
)
(setq x2 (/ (* x1 (sin ang2)) (sin ang1)))
(setq ptx1 (polar pt1 (angle pt1 pt3) x2))
(setq ptx2 (polar pt2 (angle pt2 pt4) x1))
(command "_.line" "_none" ptx1 "_none" ptx2 "")
)
xfirez
2009-03-22, 03:08 PM
Division of a quadrilateral by a divided line, parallel on the base line.
"Expression of Saron"
Quickly and dirty.
(defun ang_between (p10 p11 p20 p21 / px p1 p2 l_pt l_d p ang)
(setq px (inters p10 p11 p20 p21 nil))
(cond
(px
(if (> (distance px p10) (distance px p11)) (setq p1 p10) (setq p1 p11))
(if (> (distance px p20) (distance px p21)) (setq p2 p20) (setq p2 p21))
(setq
l_pt (list px p1 p2)
l_d (mapcar 'distance l_pt (append (cdr l_pt) (list (car l_pt))))
p (/ (apply '+ l_d) 2.0)
ang (* (atan (sqrt (/ (* (- p (car l_d)) (- p (caddr l_d))) (* p (- p (cadr l_d)))))) 2.0)
)
)
(T
nil
)
)
)
(defun c:divide_saron ( / pt1 pt2 pt3 pt4 S1 ang1 ang2 x1 x2 ptx1 ptx2)
(setq pt1 (getpoint "\nFirst point of baseline: "))
(setq pt2 (getpoint pt1 "\nSecond point of baseline: "))
(setq pt3 (getpoint pt1 "\nPoint of first adjacent side: "))
(setq pt4 (getpoint pt2 "\nPoint of second adjacent side: "))
(setq S1 (getreal "\nWanted area: "))
(setq ang1 (ang_between pt1 pt2 pt1 pt3))
(setq ang2 (ang_between pt2 pt1 pt2 pt4))
(setq ang1 (- pi ang1) ang2 (- pi ang2))
(setq x1
(*
(/
(* (distance pt1 pt2) (sin ang1))
(sin (+ ang1 ang2))
)
(1-
(+ ;or can be "-"
(sqrt
(1+
(/
(* 2.0 S1 (sin (+ ang1 ang2)))
(* (distance pt1 pt2) (distance pt1 pt2) (sin ang1) (sin ang2))
)
)
)
)
)
)
)
(setq x2 (/ (* x1 (sin ang2)) (sin ang1)))
(setq ptx1 (polar pt1 (angle pt1 pt3) x2))
(setq ptx2 (polar pt2 (angle pt2 pt4) x1))
(command "_.line" "_none" ptx1 "_none" ptx2 "")
)
oh..gr8t perfect..thank you man..
oliver
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.