neue Folder LAYOUT MENU und MODULE dazu
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
; -------------------------------------------------------------
|
||||
; Positionieren AW 1.5.93 - abgeleitet von UPDATE
|
||||
; aus TEWI - AutoCAD und Datenbanken
|
||||
; die Prozedur LESEN zum Einlesen der Žnderungen
|
||||
; --------------------------------------------------------------
|
||||
|
||||
(defun LESEN ()
|
||||
(setq datei-inhalt ())
|
||||
(setq datei (open "TEST.SDF" "r"))
|
||||
(setq zeile (read-line datei))
|
||||
(while zeile
|
||||
(setq raum (substr zeile 1 3))
|
||||
(setq person (substr zeile 6))
|
||||
(setq zeilen-liste (list raum person))
|
||||
(setq datei-inhalt (cons zeilen-liste datei-inhalt))
|
||||
(setq zeile (read-line datei))
|
||||
)
|
||||
(close datei)
|
||||
)
|
||||
|
||||
; die Prozedur ATTLISTE findet die Blockeinf�gungen in der Datenbank
|
||||
|
||||
(defun ATTLISTE ()
|
||||
(setq eigenschafts-liste ())
|
||||
(setq e (entnext))
|
||||
(while e
|
||||
(setq typ (cdr (assoc 0 (entget e))))
|
||||
(setq blockname (cdr (assoc 2 (entget e))))
|
||||
(if
|
||||
(and
|
||||
(equal typ "INSERT")
|
||||
(equal (cdr (assoc 66 (entget e))) 1)
|
||||
)
|
||||
(EIGENSCHAFTSLISTE-BILDEN e)
|
||||
)
|
||||
(setq e (entnext e))
|
||||
)
|
||||
)
|
||||
|
||||
; die Prozedur EIGENSCHAFTSLISTE-BILDEN ermittelt die wichtigen Daten aus
|
||||
; der Datenbank
|
||||
|
||||
(defun EIGENSCHAFTSLISTE-BILDEN (e)
|
||||
(setq db-liste ())
|
||||
(while (not
|
||||
(equal
|
||||
(cdr (assoc 0 (entget e)))
|
||||
"SEQEND"))
|
||||
(cond
|
||||
((cdr (assoc 66 (entget e)))
|
||||
(setq db-liste ())
|
||||
(setq satz-liste ())
|
||||
(setq satz-liste
|
||||
(cons (cdr (assoc -1 (entget e))) satz-liste))
|
||||
(setq satz-liste
|
||||
(cons (cdr (assoc 2 (entget e))) satz-liste))
|
||||
(setq db-liste (cons satz-liste db-liste))
|
||||
)
|
||||
((equal (cdr (assoc 0 (entget e))) "ATTRIB")
|
||||
(setq satz-liste ())
|
||||
(setq satz-liste
|
||||
(cons (cdr (assoc 1 (entget e))) satz-liste))
|
||||
(setq satz-liste
|
||||
(cons (cdr (assoc 2 (entget e))) satz-liste))
|
||||
(setq db-liste (cons satz-liste db-liste))
|
||||
(if
|
||||
(equal (cdr (assoc 2 (entget e))) "RAUM")
|
||||
(setq schl�ssel (cdr (assoc 1 (entget e))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(setq e (entnext e))
|
||||
)
|
||||
(setq db-liste (reverse db-liste))
|
||||
(setq db-liste (cons schl�ssel db-liste))
|
||||
(setq eigenschafts-liste
|
||||
(cons db-liste eigenschafts-liste))
|
||||
)
|
||||
|
||||
; die Prozedur ŽNDERE-NAMEN f�hrt die Žnderung aus
|
||||
|
||||
(defun ŽNDERE-NAMEN ()
|
||||
(setq eingabe-liste datei-inhalt)
|
||||
(while eingabe-liste
|
||||
(setq vergleichs-liste (car eingabe-liste))
|
||||
(setq eingabe-liste (cdr eingabe-liste))
|
||||
(setq raum (car vergleichs-liste))
|
||||
(setq name (last vergleichs-liste))
|
||||
(cond
|
||||
((assoc raum eigenschafts-liste)
|
||||
(setq attribut-liste (assoc raum eigenschafts-liste))
|
||||
(setq e-zu-„ndern (last (cadr attribut-liste)))
|
||||
(while (not
|
||||
(equal (cdr (assoc 0 (entget e-zu-„ndern))) "SEQEND"))
|
||||
(setq attribut-bezeichnung (cdr (assoc 2 (entget e-zu-„ndern))))
|
||||
(cond
|
||||
((equal attribut-bezeichnung "PERSON")
|
||||
(entmod (subst (cons '1 name) (assoc 1 (entget e-zu-„ndern))
|
||||
(entget e-zu-„ndern)))
|
||||
(entupd e-zu-„ndern)
|
||||
)
|
||||
)
|
||||
(setq e-zu-„ndern (entnext e-zu-„ndern))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
; das Hauptprogramm POSITIONIEREN
|
||||
|
||||
(defun C:UPDATE ()
|
||||
(LESEN)
|
||||
(ATTLISTE)
|
||||
(ŽNDERE-NAMEN)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user