Έστω ότι έχουμε οικόπεδο σαν αυτό της εικόνας παραπλεύρως με τα ευθύγραμμα τμήματα 1- 3 και 2 - 4 να έχουν ενιαία κλίση . Οι 1-2 και 3-4 είναι παράλληλες . Αρκετές φορές συμβαίνει να θέλουμε να οριοθετήσουμε συγκεκριμένα εμβαδά δηλαδή , ποια θα έπρεπε να είναι η θέση του ορίου 3-4 αν το εμβαδό μας θέλαμε να είναι συγκεκριμένα τετραγωνικά μέτρα.
Αυτό , λύνεται προσεγγιστικά με δοκιμές αλλά υπάρχουν και ευκολότεροι τρόποι .
Πληκτρολογείστε τον κώδικα παρακάτω και αποθηκεύστε τον σε αρχείο με όνομα dianomi.lsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | (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:divarea ( / 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 "") ) |
Στη συνέχεια "φορτώστε" το αρχείο Dianomi.lsp (Menu : Tools -> Autolisp -> Load Application).
Τρέξτε το πρόγραμμα γράφοντας απλά divarea στη γραμμή εντολών του Autocad.
Όταν θα σας ζητηθεί να υποδείξετε σημεία , δείξτε τα με τη σειρά 1 - 2 - 3 - 4 , όπως φαίνονται στην 1η εικόνα . Στη συνέχεια θα σας ζητηθεί το επιθυμητό εμβαδό . Δώστε π.χ. 6500 (τετρ. μέτρα) . Δείτε ότι σχεδιάστηκε γραμμή ώστε το διαγραμμισμένο γεωμετρικό χωρίο να έχει ακριβώς το εμβαδό που ζητήσατε.
Πιστεύω να φανεί χρήσιμο.