(defun c:ss2pipe () (setq pickmode (getvar "pickstyle")) (setvar "pickstyle" 0) (command "_ucs" "_world") (princ "\nObjekte wählen: ") (setq ss (ssget)) (setq DN (getreal "\nRohrdurchmesser: ")) (setq indx -1) (repeat (sslength ss) (setq indx (1+ indx)) (setq en (ssname ss indx)) (setq en_0entity (cdr (assoc 0 (entget en)))) (setq en_8entity (cdr (assoc 8 (entget en)))) (if (= en_0entity "LINE") (progn (command "_ucs" "_world") (setq en_ap (cdr (assoc 10 (entget en)))) (setq en_ep (cdr (assoc 11 (entget en)))) (setq en_apx (car en_ap)) (setq en_apy (cadr en_ap)) (setq en_apz (caddr en_ap)) (setq en_epx (car en_ep)) (setq en_epy (cadr en_ep)) (setq en_epz (caddr en_ep)) (setq en_x (- en_epx en_apx)) (setq en_y (- en_epy en_apy)) (setq en_z (- en_epz en_apz)) (setq en_xy (sqrt (+ (expt en_x 2) (expt en_y 2)))) (setq angle_z (/ (* (angle (list en_apx en_apy 0.0) (list en_epx en_epy 0.0)) 180) PI)) (setq angle_y (/ (* (angle (list 0.0 0.0 0.0) (list en_xy en_z 0.0)) 180) PI)) (command "_ucs" "_m" en_ap "_ucs" "z" angle_z "_ucs" "y" (- 90 angle_y)) (setvar "clayer" en_8entity) (setq farbenew (cdr (assoc 62 (entget en)))) (command "_-color" farbenew) (command "_circle" (list 0.0 0.0 0.0) (/ DN 2.0)) (command "_extrude" (entlast) "" "p" en) ) ) ;end if (if (= en_0entity "ARC") (progn (command "_ucs" "_obj" en) (setq en_rad (cdr (assoc 40 (entget en)))) (command "_ucs" "_m" (list en_rad 0.0 0.0) "_ucs" "x" 90) (setvar "clayer" en_8entity) (setq farbenew (cdr (assoc 62 (entget en)))) (command "_-color" farbenew) (command "_circle" (list 0.0 0.0 0.0) (/ DN 2.0)) (command "_extrude" (entlast) "" "_p" en) ) );end if );end repeat (setvar "pickstyle" pickmode) (princ) )