;;; Quelle: http://ww3.cad.de/foren/ubb/Forum54/HTML/008146.shtml#000013 ;;; modifiziert von jupa, Oct. 2016 (defun c:fteiler( / d p1 p2 ar a1 a2 guess odir dir done eps getarea anz) (defun getarea(pt / ) (command"_-hatch" pt "") (command"_area""_o"(entlast)) (entdel(entlast)) (getvar"area") ) (setq anz (getint "\nAnzahl Teile: ")) (setq l(car(entsel"\nTrennelement wählen: "))) (setq p1(getpoint"\nLinker Punkt: ")) (setq p2(getpoint"\nRechter Punkt: ")) (setq d(/ 1.0 anz)) (setq eps 0.00000001) (setq guess 1) (while(not done) (setq a1(getarea p1)) (setq a2(getarea p2)) (setq ar(+ a1 a2)) (cond ( (> a1(* ar d)) (setq odir dir dir 0) ) ( (< a1(* ar d)) (setq odir dir dir 1) ) ) (if(and odir(/= odir dir)) (setq guess(* guess 0.5)) ) (if(<(abs guess)eps) (setq done 'T) ) ; (princ "------------------\n") ; (princ "a1 = ")(princ a1)(princ"\n") ; (princ "a2 = ")(princ a2)(princ"\n") ; (princ "ar = ")(princ ar)(princ"\n") ; (princ "guess = ")(princ guess)(princ"\n") (command"_move"l""'(0 0 0)(list(if(= dir 0)(- guess)guess)0 0)) ) (command"_-boundary" p1 "") (if (= anz 2) (command"_-boundary" p2 "")) (entdel l) (princ) )