Wenn Sie den Bereich in XL auswählen, beginnen Sie klassischerweise mit der Zelle oben links und enden unten rechts. Was passiert, wenn Sie von unten rechts nach oben links oder von unten links nach oben rechts vorgehen (das Ziel besteht darin, die Auswahl oben zu beenden)?
Kennen Sie Lisp (Sprache, die zu Beginn für Autocad-Makros verwendet wird)
Ich habe ein paar Kommentare hinzugefügt
(SETQ txt (CLIP-GET)); Wir rufen den Inhalt der Zwischenablage ab
(SETQ YGAP 100); Wir initialisieren
(IF (NOT txt) (QUIT "*Abbrechen*")) ; Wir prüfen, ob der Inhalt nicht leer ist (SETQ txt (STRREPLACE txt "\t" " ")); Ersetzen Sie das Spaltentrennzeichen (Tabulator) durch ein Leerzeichen (SETQ txt (STRREPLACE txt "\n" ")(")) ; Die Änderung der Zeile wird durch ein )( (SETQ txt (STRREPLACE txt "\r" "")) ; Ich weiß nicht, was return ist (in dem, was aus der Zwischenablage abgerufen wird (SETQ txt(STRREPLACE txt "," ".")) ; Wir ersetzen das , durch .
(SETQ txt (STRCAT "((" (SUBSTR txt 1 (1- (STRLEN txt))) "))")) ; Wir vervollständigen es, um eine (am Anfang und eine) am Ende zu haben
(SETQ txtlist (READ txt)); Die Zeichenkette wird in eine Form umgewandelt, die von der Sprache verstanden werden kann
(SETQ-Basis (LISTE 0 0)); Wir initialisieren
(FOREACH s txtlist (SETQ ymax 0) (SETQ x (CAR s) y (CADR s)) (WENN (> y ymax) (SETQ ymax y)) (CAD-RECTANGLE basep (LIST (+ (CAR basep) x) (+ (CADR basep) y)) 7) (SETQ basep (LIST 0 (+ (CADR basep) ymax YGAP))) ) (NEU ZEICHNEN)
Das für Lisp charakteristische "list"-System bedeutet, dass wir durch Hinzufügen der Paare () direkt die Paare "s" der Koordinaten abrufen, die selbst Listen sind.
Mit CAR und CADR können die Unterteile des Koordinatenpaares extrahiert werden. Zu Ihrer Information: Wir können das a und d kombinieren, um ein bestimmtes Element aus einer Liste mit vielen Elementen zu extrahieren (typischerweise das Ergebnis des Befehls "list", der auf ein Element oder eine Familie von Elementen angewendet wird (in diesem Fall haben wir eine Liste von Listen, und es kann einen langen Weg gehen).
Ich weiß nicht, warum es einen Test auf ymax gibt, noch wofür basep und YGAP sind