(defun c:Bleinf(/ dcl_id lstnorm lstD lstjanein Norm Durchmesser Beschr pfad block datei aktueller_layer mleader mleader_data) (setq dcl_id (load_dialog "Schraubenbox.dcl"));Dialogdatei (if (not (new_dialog "Schraube_box" dcl_id));Dialogname (exit)) ;;;;;;;;;;;;;;;;;;;;Befüllen der Dialogfelder und Setzen Vorgabewerte (setq lstnorm (list "DIN 7991" "DIN 912" "Sechskantschraube")) (start_list "Schraube_Norm") (mapcar 'add_list lstnorm) (end_list) (set_tile "Schraube_Norm" "2") (setq lstD (list "M4" "M5" "M6" "M8" "M12" "M14" "M16" "M18" "M20" "M22" "M24" "M27" "M30" "M33" "M36")) (start_list "Schraube_D") (mapcar 'add_list lstD) (end_list) (set_tile "Schraube_D" "4") (setq lstjanein (list "Ja" "Nein")) (start_list "Schraube_beschr") (mapcar 'add_list lstjanein) (end_list) (set_tile "Schraube_beschr" "0") ;;;;;;;;;;;;;;;;;;;;;;Aktionen für Schaltflächen definieren (action_tile "akzeptieren" "(setq Norm (nth (atoi (get_tile \"Schraube_Norm\")) lstnorm)) (setq Durchmesser (nth (atoi (get_tile \"Schraube_D\")) lstD)) (setq Beschr (nth (atoi (get_tile \"Schraube_beschr\")) lstjanein)) (done_dialog 1)" ) (action_tile "abbrechen" "(done_dialog 0)" ) (start_dialog) (unload_dialog dcl_id) (setq pfad (strcat "J:/Reichel/ACAD/Blöcke/Generator/"));Pfaddefinition der Blockdatei (setq block (strcat Norm Durchmesser));Blockname aus Dialog zusammenstellen (setq datei (strcat Pfad block));einzufügender Block (setq aktueller_layer (getvar "CLAYER")) ;aktuellen Layer auslesen (command "-layer" "se" "---Schrauben" "") ;Einfügelayer für Block (command "._insert" datei "_s" 1 PAUSE PAUSE) ;Block einfügen (if (= (strcat Beschr) "Ja");wenn im Dialog Beschriftung gewünscht (Progn ;Beschriftung (command "_mleader" (getpoint "\nP1") (getpoint "\nP2") (strcat Norm " " Durchmesser)) (setq mleader (entlast)) (setq mleader_data (entget mleader)) (if (assoc 8 mleader_data) (setq mleader_data (subst (cons 8 "---BEM") (assoc 8 mleader_data) mleader_data)) (setq mleader_data (reverse (cons (cons 8 "---BEM") (reverse mleader_data)))) ) (entmod mleader_data) ) ) (setvar "CLAYER" aktueller_layer) ;Layer wieder zurücksetzen )