Hallo
Ich verwende einige LISP Files in ACAD2008. Leider funktioniern diese nicht mehr im ACAD2010 und höher. Wie kann ich die Files umschreiben, damit diese wieder benutz werden können. Vielen Dank für eure Hilfe.
Anwendung: Punktliste erstellen
LSP: Punktliste.lsp
DCL: Punktliste.dcl (weiter unten)
*****LSP****
(prompt "PKT zum Starten")
(defun C:pkt (/)
(setq MD_ERR *ERROR*
*ERROR* M:FEHLER
) ;_ end of setq
;;Marke für Zurück nach Abbruch setzen
(command "_UNDO" "_MARK")
;Fangfunktion
(setq OLDOSM (getvar "osmode"))
(if
(< (setq DCL_ID (load_dialog "Punkteliste.dcl")) 0)
(progn
(alert "\nPunktliste.dcl nicht gefunden. Abbruch!")
(exit)
)
(progn
(setq WHAT_NEXT 7)
(OFANG-DIALOG DCL_ID)
(unload_dialog DCL_ID)
) ;_ end of progn
) ;_ end of if
(if (not (setq listnam (findfile "punkteliste.txt")))
(setq listnam (getfiled "Punktliste anlegen" "punktliste" "asc" 1))
) ;_ end of if
(if listnam
(progn
(setvar "osmode" zahl)
(setq nr 1000)
(While
(setq pkt (getpoint "Punkt zeigen: "))
/=
NULL
(setq pktlst (strcat " K ! ! "
(itoa (setq nr (1+ nr)))
"! 61!2! " (rtos (car pkt))
"! "
(rtos (cadr pkt))
"! ! "
(rtos (caddr pkt))"!"
) ;_ end of strcat
) ;_ end of setq
(setq DAT_ID (open listnam "a"))
(write-line pktlst DAT_ID)
(close DAT_ID)
) ;_ end of While
) ;_ end of progn
) ;_ end of if
(setvar "osmode" oldosm)
) ;_ end of defun
(defun OFANG-DIALOG (DCL_ID /)
(setq
bed1 0
bed2 0
bed3 0
bed4 0
bed5 0
bed6 0
bed7 0
bed8 0
bed9 0
bed10 0
zahl 0
) ;_ end of setq
(while (< 1 WHAT_NEXT)
(new_dialog "Objektfang" DCL_ID)
(action_tile "bed1" "(setq bed1 (atoi $value))")
(action_tile "bed2" "(setq bed2 (atoi $value))")
(action_tile "bed3" "(setq bed3 (atoi $value))")
(action_tile "bed4" "(setq bed4 (atoi $value))")
(action_tile "bed5" "(setq bed5 (atoi $value))")
(action_tile "bed6" "(setq bed6 (atoi $value))")
(action_tile "bed7" "(setq bed7 (atoi $value))")
(action_tile "bed8" "(setq bed8 (atoi $value))")
(action_tile "bed9" "(setq bed9 (atoi $value))")
(action_tile "bed10" "(setq bed10 (atoi $value))")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq WHAT_NEXT (start_dialog))
(cond
((= WHAT_NEXT 1)
(if (= bed1 1)
(setq zahl (+ zahl 1))
)
(if (= bed2 1)
(setq zahl (+ zahl 64))
)
(if (= bed3 1)
(setq zahl (+ zahl 2))
)
(if (= bed4 1)
(setq zahl (+ zahl 128))
)
(if (= bed5 1)
(setq zahl (+ zahl 4))
)
(if (= bed6 1)
(setq zahl (+ zahl 256))
)
(if (= bed7 1)
(setq zahl (+ zahl 8))
)
(if (= bed8 1)
(setq zahl (+ zahl 512))
)
(if (= bed9 1)
(setq zahl (+ zahl 16))
)
(if (= bed10 1)
(setq zahl (+ zahl 32))
)
)
) ;_ end of cond
) ;_ end of while
) ;_ end of defun
(defun M:FEHLER (S)
(print (strcat "M:fehler " S))
(close DAT_ID)
(command)
(command "_UNDO" "_BACK")
(setq *ERROR* MD_ERR)
(princ)
) ;_ end of defun
;|«Visual LISP© Format Options»
(72 2 40 1 T "end of " 60 9 0 0 0 nil T nil T)
;*** KEINEN Text unterhalb des Kommentars hinzufügen! ***|;
****DCL***
Objektfang : dialog {
label = "Objektfang festlegen";
:boxed_radio_column {
label = "Objektfang ";
:row {
: toggle {
alignment = left;
width = 23;
fixed_width = true;
label = "Endpunkt";
key = "bed1";
}
: toggle {
alignment = left;
label = "Basispunkt";
key = "bed2";
}
}
:row {
: toggle {
alignment = left;
width = 10;
fixed_width = true;
label = "Mittelpunkt";
key = "bed3";
}
: toggle {
alignment = left;
label = "Lot";
key = "bed4";
}
}
:row {
: toggle {
alignment = left;
width = 21;
fixed_width = true;
label = "Zentrum";
key = "bed5";
}
: toggle {
alignment = left;
label = "Tangente";
key = "bed6";
}
}
:row {
: toggle {
alignment = left;
width = 27;
fixed_width = true;
label = "Punkt";
key = "bed7";
}
: toggle {
alignment = left;
label = "Nächster Punkt";
key = "bed8";
}
}
:row {
: toggle {
alignment = left;
width = 24;
fixed_width = true;
label = "Quadrant";
key = "bed9";
}
: toggle {
alignment = left;
label = "Schnittpunkt";
key = "bed10";
}
}
}
ok_cancel;
}
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP