;(setq AWS(ssadd));auswahlsatz wird erstellt (leer) ;(while ;beginn schleife ;(setq OBJ(entnext OBJ));bedingung (argument) und setzen von obj auf folgeobjekt ;(ssadd OBJ AWS));(expression) objekt zu auswahlsatz hinzufügen, ende schleife ;(sssetfirst AWS AWS);aws aktivsetzen --> brauchst du das?! (defun c:3dge () ; Geländer zeichnen mit Handlauf DN50, Knielauf DN32 und Fußleiste 120x10 ; mindestlänge 1101mmm ; mit Anleihen aus 3D Behälter von Hans Jürgen Scheeren ; und Tubex von Larry Criswell ; und nun auch mit Anmerkungen/Korrekturen von Tunnelbauer und Runkelrübe ; Danke! ; ... und nun vom Hausmeister weitergeschrieben ... (vl-load-com) (setvar "cmdecho" 0) (setq osmode_old (getvar "osmode")) (command "osmode" "1") (command "ortho" "_off") (setq pickmode (getvar "pickstyle")) (setvar "pickstyle" 0) (command "_ucs" "_w") (setq startpunkt_1 (getpoint "\nStartpunkt wählen: ")) (setq endpunkt_1 (getpoint "\nEndpunkt wählen: ")) (setq Gelaender (ssadd)) ; Hilfslinien zeichnen (command "_line" startpunkt_1 endpunkt_1 "") (setq Achse_Handlauf (entlast)) (command "_line" startpunkt_1 ".xy" startpunkt_1 "@0,0,1100" "") (setq Achse_Saeule1 (entlast)) ; Nebenrechnungen (setq alldata (entget Achse_Handlauf)) (setq startpunkt_1 (cdr (assoc 10 alldata))) (setq endpunkt_1 (cdr (assoc 11 alldata))) (setq Abstand (distance startpunkt_1 endpunkt_1)) (setq Anzahl_Saeulen (+ 1 (fix (/ Abstand 1100)))) (setq Startabstand (abs (/ (- Abstand (* (fix (/ Abstand 1100)) 1100)) 2)) ) ; um die Säulen mittig anzuordnen (if (tblobjname "UCS" "bks_Handlauf") (vla-delete (vla-item (vla-get-UserCoordinateSystems (vla-get-activedocument (vlax-get-acad-object) ) ) "bks_Handlauf" ) ) ) (command "_ucs" "_ob" Achse_Handlauf) ; Ausrichtung BKS auf Hilfsline (command "_ucs" "_na" "_s" "bks_Handlauf") ; Sicherung vom BKS Handlauf ; Zeichne Handlauf (command "_ucs" "_w") (command "_ucs" "3p" startpunkt_1 endpunkt_1 "124342,13265,9887") (command "_ucs" "y" "90") (command "_circle" "0,0" 30.15) (setq circlast (entlast)) (setq circlist (list circlast)) (setq circlist2 (append circlist circlist2)) (command "_extrude" circlast "" "p" Achse_Handlauf) (setq Handlauf (entlast)) (ssadd Handlauf Gelaender) ; Zeichne Knielauf (command "_circle" "0,0" 21.2) (setq circlast (entlast)) (setq circlist (list circlast)) (setq circlist2 (append circlist circlist2)) (command "_extrude" circlast "" "p" Achse_Handlauf) (setq Knielauf (entlast)) (ssadd Knielauf Gelaender) (command "_ucs" "_na" "_r" "bks_Handlauf") ; Rücksicherung vom BKS Handlauf ; Zeichne Fußleiste (command "_box" (trans startpunkt_1 0 1) "l" Abstand "10" "120" ) (setq Fussleiste (entlast)) (ssadd Fussleiste Gelaender) ; den ganzen Krempel gerade rücken (command "_move" Handlauf "" (trans startpunkt_1 0 1) ".xy" (trans startpunkt_1 0 1) "1100" ) ; Handlauf hochschieben (command "_move" Knielauf "" (trans startpunkt_1 0 1) ".xy" (trans startpunkt_1 0 1) "650" ) ; Knielauf hochschieben (command "_move" Fussleiste "" (trans startpunkt_1 0 1) ".xy" (trans startpunkt_1 0 1) "30" ) ; Fußleiste hochschieben (command "_move" Fussleiste "" (trans startpunkt_1 0 1) ".zx" (trans startpunkt_1 0 1) "30" ) ; Fußleiste nach außen schieben ; Geländersäulen zeichnen (command "_box" "_c" (trans startpunkt_1 0 1) "l" "200" "80" "10" ) (setq Fussplatte (entlast)) (command "_move" "l" "" (trans startpunkt_1 0 1) ".xy" (trans startpunkt_1 0 1) "5" ) (command "_cylinder" (trans startpunkt_1 0 1) "30.15" "1100" ) (setq Saeule (entlast)) (command "_union" Fussplatte Saeule "") (setq Staender (entlast)) (ssadd Staender Gelaender) (command "_move" Staender "" (trans startpunkt_1 0 1) ".yz" (trans startpunkt_1 0 1) Startabstand ) ;Ist Anzahl_Saeulen größer 1 dann ... (if (> Anzahl_Saeulen 1) (progn (command "_array" Staender "" "_r" "1" Anzahl_Saeulen "1100") (while ;beginn schleife (setq Staender (entnext Staender)) (ssadd Staender Gelaender) ) ) ;end progn ) (sssetfirst Gelaender Gelaender) (command "_union" Gelaender "") (command "_erase" Achse_Handlauf "") ; Löschen der Hilfslinien (command "_erase" Achse_Saeule1 "") ; Löschen der Hilfslinien (command "_ucs" "_na" "_d" "bks_Handlauf") ; Löschen BKS Handlauf (setvar "pickstyle" pickmode) (setvar "osmode" osmode_old) (command "_ucs" "_w") (setvar "cmdecho" 1) (command "_ucs" "_w") )