;isodim.lsp V2.0 2-1-98 Bill DeShawn bdeshawn@prodigy.com (defun rtd (A) (/ (* A 180.0) PI) ) (defun isodimerr (msg) (setq msg "\nDone")(princ msg)(terpri) (setvar "snapstyl" snpstl) (setq p1 nil p2 nil p3 nil snpstl nil df nil du nil cmde nil lu nil) (setq *error* olderr) (setvar "dimfit" df) (setvar "dimupt" du) (setvar "orthomode" ortho) (setvar "lunits" lu) (setvar "snapstyl" snpstl) (princ) ) (defun c:isodim (/ lu df du ortho snpstl p1 p2 p3) (setq lu (getvar "lunits")) (setvar "lunits" 2) (setq df (getvar "dimfit")) (setvar "dimfit" 5);TEMPORARILY SETS DIMFIT TO 5 (setq du (getvar "dimupt")) (setvar "dimupt" 1) ;TEMPORARILY SETS DIMUPT TO 1 (setq ortho (getvar "orthomode")) (setvar "orthomode" 0) ;TEMPORARILY TURNS OFF ORTHO (F8) (setq olderr *error*) (setq *error* isodimerr) (setq snpstl (getvar "snapstyl")) (setvar "snapstyl" 1) (setq p1 (getpoint "\nFirst point: ")) (if (not p1) (progn (setq ent (nentsel "\nPick line: ")) (setq elist (entget (car ent))) (setq p1 (cdr (assoc 10 elist))) (setq p2 (cdr (assoc 11 elist))) (if (not p2) (progn (alert "Polylines can't be done that way!\nPick a second point on Polyline.") (setq p2 (getpoint p1 "\nPolylines can't be done that way. 2nd point: "))) ) ) ) (if (not p2) (setq p2 (getpoint p1 "\nSecond point: ")) ) (setq p3 (getpoint p2 "\n Pick point for iso direction. Use Ctrl + E for Isoplane: ")) (command "dim1" "align" P1 P2 P3 "") (setq ang (rtd (angle p2 p3))) (if (and (<= ang 60.00)(> ang 0.00))(setq isoang 30.00)) (if (and (<= ang 120.00)(> ang 60.00))(setq isoang 90.00)) (if (and (<= ang 180.00)(> ang 120.00))(setq isoang 150.00)) (if (and (<= ang 240.00)(> ang 180.00))(setq isoang 210.00)) (if (and (<= ang 300.00)(> ang 240.00))(setq isoang 270.00)) (if (and (<= ang 360.00)(> ang 300.00))(setq isoang 330.00)) (setq cmde (getvar "cmdecho")) (setvar "cmdecho" 1) (command "dim" "obl" "l" "" isoang "te" "l" "none" pause "" "exit") (setvar "cmdecho" cmde) (setvar "snapstyl" snpstl) (setvar "dimfit" df) (setvar "dimupt" du) (setvar "orthomode" ortho) (setvar "lunits" lu) (princ) ) (alert "You may set your Object Snap modes if you wish.") (prompt "Type ISODIM to execute. ")(terpri) (princ)