Forum:Lisp
Thema:Rückgabe von (command... an Variable
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
archtools

Beiträge: 719 / 16

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

Zitat:
Original erstellt von cadking:
Hallo Lispler,
gibt es eine Möglichkeit, dass was der Befehl (command "... zurückgibt an ein (setq zu übergeben?

Beispiel:
(command "-xref" "_r" "296_G-05-Überströmung")
gibt zurück:
-xref
Option eingeben [?/Binden/Lösen/Pfad/pFadtyp/Entfernen/Neuladen/Überlagern/Zuordnen] <Zuordnen>: _r
Namen für neu zu ladende XRef(s) eingeben: 296_G-05-Überströmung
XRef "296_G-05-Überströmung": ..\..\..\..\..\Gebäudemodule\Gebaeude 296\Integrationsplanung\Decke\Überströmung\296_G-05-Überströmung.dwg
"296_G-05-Überströmung" ist unreferenziert.

ich möchte daraus
"296_G-05-Überströmung" ist unreferenziert.
an ein (setq xrefgefunden
übergeben. Geht das?




Dass (command ...) immer NIL zurück gibt, hast Du ja schon erfahren. Du musst Dir dann eben eine Lisp-Funktion basteln, etwa so:

(defun add-xref (myxreffile / lastent)
(cond
  ((not (findfile myxreffile))
    (setq errcode 1)
  )
  ((incompatibelversion myxreffile)
    (setq errcode 2)
  )
  ((recursive-file myxreffile)
    (setq errcode 3)
  )
  (T
  (setq lastent (entlast))
  (command "._xref" ....)
  (if (equal lastent (entlast))
    (setq errcode 4)
    (setq errcode 0)
  )
  )
)
errcode
)

Die Funktionen (incompatibelversion ...) zur Erkennung inkompatibler DWG-Versionen und (recursive-file ...) zur Erkennung selbstreferenzierender DWGs musst Du natürlich noch selbst schreiben.

Allerdings gibt es Möglichkeiten, das etwas kompakter und eleganter zu machen. Guck dafür mal nach den Möglichkeiten des Error-Handlings durch *error* und durch vl-catch-all-apply