(defun c
ol2cir (/)
(princ "\nKreise werden gezeichnet... ")
(command "cmdecho" "0")
(setq os (getvar "OSMODE"))
(setvar "OSMODE" 0)
(command "regen")
(command "bks" "w")
(command "-layer" "n" "pol2cir" "fa" "6" "pol2cir" "")
(command "-layer" "se" "pol2cir" "")
(setq auswahl (ssget "x" '((0 . "polyline"))))
(if auswahl
(progn
(setq anzahlauswahl (sslength auswahl))
(setq korrigiert 0)
(setq zaehler 0)
(repeat anzahlauswahl
(setq elementname (ssname auswahl zaehler))
(setq element (entget elementname))
(setq vorher elementname)
(setq nachher (entnext vorher))
(setq punkt (entget nachher))
(setq liste2 (list (assoc 10 punkt)))
(setq vorher nachher)
(setq kontrolle 0)
(while (/= kontrolle 1)
(setq nachher (entnext vorher))
(setq punkt (entget nachher))
(setq elname (cdr (assoc 0 punkt)))
(setq kontrolle 1)
(while (= elname "VERTEX")
(setq liste2 (append liste2 (list (assoc 10 punkt))))
(setq kontrolle 0)
(setq elname "abbruch")
)
(setq vorher nachher)
)
(setq anzahlpunkte (length liste2))
(setq abstand (/ anzahlpunkte 3))
(setq abstand (fix abstand))
(setq punkt1 (cdr (car liste2)))
(setq punkt2 (cdr (nth abstand liste2)))
(setq punkt3 (cdr (nth (fix (* 2 abstand)) liste2)))
(command "bks" "w")
(command "bks" "3" punkt1 punkt2 punkt3)
(setq punkt1 (trans punkt1 0 1))
(setq punkt2 (trans punkt2 0 1))
(setq punkt3 (trans punkt3 0 1))
(command "_circle" "_3p" punkt1 punkt2 punkt3)
(setq zaehler (+ 1 zaehler))
)
)
)
(command "bks" "w")
(setvar "OSMODE" os)
(command "cmdecho" "1")
(princ anzahlauswahl)
(princ " Kreis(e) eingezeichnet.")
(princ)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP