Hallo mal wieder,
nicht was du schreibst, aber was du meinst: JA, das geht.
>>"gibt es eine Möglichkeit die Zeichenreihenfolge eines kompletten Layers zu ändern, also sagen der komplette Layer liegt über/unter diesen Layer."
1. Layer haben mit der Objektanzeigereihenfolge nichts zutun (in AutoCAD/LT)
2. Die Objektanzeigereihenfolge ist für jedes Objekt innerhalb des aktuellen Bereiches (Modell oder Layout, Block oder Xref) festzulegen.
>>"Durch eine Ergänzung die ich hier im Forum gefunden habe, kann ich einen kompletten Layer auswählen und diesen über/unter ein Objekt setzten,
>>"nur würde ich gerne nicht nur ein Objekt auswählen sondern ein kompletten Layer."
Du widersprichst dir, oder?
Die Ergänzung wählt doch "einen kompletten Layer", genau was du möchtest..
Wenn du bedenkst dass du überhaupt nicht "einen Layer" und auch nicht "alle Objekte eines Layers" damit wählst, dann geht das.
(Deine "Ergänzung" wählt alle unverschachtelten Objekte des Layers im aktuellen Bereich <- nur um korrekt zu sein, Spitzfindigkeit ist hier unerlässlich)
Der Befehl ZEICHREIHENF lässt die Wahl mehrerer Referenzobjekte zu, also wählst du einfach "alle unverschachtelten Objekte welche auf diesen Layer verweisen" wählen, voila - Ziel erreicht.
https://help.autodesk.com/view/ACD/2023/DEU/?guid=GUID-3DC76D6E-8F81-4803-8D0A-AA7541D6357E
oder einfach testen, ZEICHREIHENF<enter> los gehts.
>>"Folgenden Befehl habe ich zu kompletten Layerauswahl verwendet:"
Genau genommen macht der Ausdruck: "alle unverschachtelten Objekte des aktuellen Bereiches welche auf diesen Layer verweisen", ja.
>>"Gibt es zusätzlich die Möglichkeit ein Objekt eine Ebene nach oben bzw. unten zu Schieben, ausgehend von der ursprünglichen Zeichenreihen also gleich wie in Bildbearbeitungsprogrammen. "
Im Grunde gibt es keine Ebenen in DXF/DWG, abgesehen von echten 3D-Positions-Unterschieden es gibt nur eine lineare Anzeigereihenfolge.
Würde also in deiner Vorstellung bedeuten: Immer genau 1 Objekt pro (Anzeige)Ebene!
So, und nun schaust du dir an wie man in einem MenüMakro, Script oder auch per (send)commands
Eingaben in die Befehlszeile automatisiert ablaufen lässt.
Da der Grundsatz zunächst der gleiche ist bedeutet es zunächst einmal AutoCAD-Befehle
über die Befehlszeile zu steuern - per HAND!
Dann muss man den Syntax für die Eingabe per MenüMakro, Script oder für (send)command eine Programmiersprache anpassen und fertig.
Händisch per Tastatur:
KREIS<enter>
0,0<enter>
50<enter>
im entsprechenden Syntax für
Script.scr:
KREIS
0,0
50
Makro.cuix&Werkzeugpaletten
KREIS;0,0;50
Lisp-(command:
(command "KREIS" "0,0" "50")
Im Lisp (command....)Ausdruck gibt es ganz grob folgende Regel:
Was genau so in der Befehlszeile ankommen soll wird in "" geschrieben (= "dumme Texteingabe")
und für den Fall man hat einen Lispausdruck der darin verarbeitet werden soll, dann keine "" um den Ausdruck.
(command "KREIS" (getpoint "\nPunkt wählen") PAUSE)
Das Prinzip sollte eigentlich jedem in Sekunden klar sein, spätestens wenn man den Kreis einmal per Tastatur erstellt hat.
Hier steht auch was zu Makro und Skript: https://ww3.cad.de/cgi-bin/ubb/ubbmisc.cgi?action=getannounce&ForumNumber=54&Start=2456475.99&End=2462835&Announce=2
Befehl für die Anzeigereihenfolge ist dir bekannt, also: _DRAWORDER oder auch ZEICHREIHENF
Dann tippe jetzt mal ein was du benötigst und dann setze es einfach um in Makro,Script oder auch Lisp.
Wenn der Befehl nach Objekten fragt, dann setzt du diesen Ausdruck ein (du erkennst diesen, er ist nur etwas verkürzt)
(ssget "_X" (list (assoc 8 (entget(ssname (ssget "_:S") 0)))(cons 410 (getvar "CTAB")))))
Versuche es mal in der Befehlzeile:
ZEICHREIHENF<enter>
(ssget "_X" (list (assoc 8 (entget(ssname (ssget "_:S") 0)))(cons 410 (getvar "CTAB")))))<enter>
<enter>
usw.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP