(Defun C:DIMISO () (Setvar "Cmdecho" 0) (Setq DS (Getvar "Dimscale")) (Setq DA (Getvar "Dimasz")) (Setq DT (Getvar "Dimtxt")) (Setq DE (Getvar "Dimexe")) (Setq DO (Getvar "Dimexo")) (Setq A1 (/ Pi 180.0)) (Setq A2 (/ 180 Pi)) (Initget 1 "L R") (Setq A (Getkword "\nLeft/Right: ")) (Setq P1 (Getpoint "\nFirst point of the first Construction-Line or RETURN to select: ")) (Cond ((= nil P1) (Setq P2 (Entsel)) (While (= nil P2) (Princ "\nNo object found!") (Setq P2 (Entsel)) ) (Setq P2 (Osnap (Cadr P2) "_MID")) (Setq P1 (Osnap P2 "_END")) (Setq P2 (Polar P1 (Angle P1 P2) (* 2.0 (Distance P1 P2)))) ) ((Boundp 'P1) (Initget 1) (Setq P2 (Getpoint "\nFirst point of the second Construction-Line: ")) ) ) (Initget 1) (Setq P3 (Getpoint "\nPlace dimensioning line: ")) (Cond ((= A "L") (Setq B 150 C 30 G "ISOAROW2" H "ISOTEXT2" I 30) (Setpt) (If (< (Cadr P6) (Cadr P7)) (Setq F -1) (Setq F 1) ) (Dimit) ) ((= A "R") (Setq B 30 C 150 G "ISOAROW1" H "ISOTEXT1" I 330) (Setpt) (If (< (Cadr P6) (Cadr P7)) (Setq F -1) (Setq F 1) ) (Dimit) ) ) ) (Defun Setpt () (Setq P4 (Inters P1 (Polar P1 (* A1 B) 1) P3 (Polar P3 (* A1 C) 1) Onseg)) (Setq P5 (Inters P2 (Polar P2 (* A1 B) 1) P3 (Polar P3 (* A1 C) 1) Onseg)) (Setq P6 (Polar P4 (Angle P4 P5) (/ (Distance P4 P5) 2))) (Setq P7 (Polar P1 (Angle P1 P2) (/ (Distance P1 P2) 2))) ) (Defun Dimit () (Command "_LINE" (Polar P1 (Angle P1 P4) (* DO DS)) (Polar P4 (Angle P1 P4) (* DE DS)) "" "_LINE" (Polar P2 (Angle P2 P5) (* DO DS)) (Polar P5 (Angle P2 P5) (* DE DS)) "" "_LINE" P4 P5 "") (Setq P6 (Polar P6 (Angle P1 P4) (* F (* DT DS)))) (Setq D1 (Rtos (Distance P4 P5) (Getvar "Lunits") (Getvar "Luprec"))) (Command "_insert" G P4 (* DS DA) "" (* A2 (Angle P4 P5))) (Command "_insert" G P5 (* DS DA) "" (* A2 (Angle P5 P4))) (Prompt "\nDimensioning text <") (Prompt D1) (Setq D2 (Getstring t ">: ")) (If (= D2 "") (Setq D D1) (Setq D D2) ) (Command "_Text" "_S" H "_C" P6 (* DS DT) I D) )