Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp/Script Anzeigenreihenfolge

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Lisp/Script Anzeigenreihenfolge (3624 mal gelesen)
Kramer24
Ehrenmitglied V.I.P. h.c.
Architekt


Sehen Sie sich das Profil von Kramer24 an!   Senden Sie eine Private Message an Kramer24  Schreiben Sie einen Gästebucheintrag für Kramer24

Beiträge: 5881
Registriert: 09.11.2001

erstellt am: 31. Jan. 2004 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, ich habe die Schnauze voll....

Ich möchte für eine wichtige Zeichnung (Lageplan meiner Diplomarbeit) immer wieder dieselbe Anzeigenreihenfolge (Schraffuren/andere Objekte gemischt) layerweise herstellen, um so Fehler vor dem Plotten zu vermeiden. Ich wollte mir die Mühe machen ein script zu erstellen.
Alle Progrämmchen, die ich kenne sind mehr oder weniger ungeeignet.

Ich suche einen Befehl, oä., wie ich die Objekte eines Layers aktiviere, um sie dann über "_draworder" noch oben bzw. nach unten zu schieben.
Hat jemand eine Idee?

Lothar

------------------
"Stellt Euch vor, es geht, und keiner kriegt's hin." (Neuss)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Claudio
Mitglied
Architekt


Sehen Sie sich das Profil von Claudio an!   Senden Sie eine Private Message an Claudio  Schreiben Sie einen Gästebucheintrag für Claudio

Beiträge: 334
Registriert: 13.04.2002

ACA, Revit, MAX 2020

erstellt am: 31. Jan. 2004 17:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

;;;DIE Layer in LALI sind Beispielhaft- einfach Deine Layer
;;;der Reihe nach eintragen.

(defun c:LAYDRAW (/ LALI SS1)
(setq LALI (list "TEXT" "MASS"))
(foreach n LALI  (setq SS1 (ssget "X" (list (cons 8 n)))) (command "_draworder" SS1 "" "o") )
(princ))

;;;Gruß Claudio

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 31. Jan. 2004 19:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich


SORT_BY_LAYER.txt

 
... und hier die Lösung von Claudio etwas abgesicherter und breiter "ausgewalzter" :--> Siehe Anhang!
( Nur der Vollständigkeit halber und weil ich das Thema auch interessant fand  <grins> )

Thomas

------------------

[Diese Nachricht wurde von CADmium am 02. Feb. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kramer24
Ehrenmitglied V.I.P. h.c.
Architekt


Sehen Sie sich das Profil von Kramer24 an!   Senden Sie eine Private Message an Kramer24  Schreiben Sie einen Gästebucheintrag für Kramer24

Beiträge: 5881
Registriert: 09.11.2001

erstellt am: 01. Feb. 2004 16:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Danke Ihr beiden,

werde mal testen. Ich denke, dass mir das hilft.

@Thomas: "BTN-Ware" merk' ich mir...

Lothar

------------------
"Stellt Euch vor, es geht, und keiner kriegt's hin." (Neuss)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 02. Feb. 2004 09:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Hi Kramer,
BTN kommt im Original von diesem bemerkenswerten Lisp'ler: http://home.pacifier.com/~nemi/

Ist ein gutes Motto, steht auch in dem ein oder anderen meiner Lisp's drin :-)

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nasswassa
Mitglied
Planer

Sehen Sie sich das Profil von nasswassa an!   Senden Sie eine Private Message an nasswassa  Schreiben Sie einen Gästebucheintrag für nasswassa

Beiträge: 4
Registriert: 03.10.2003

erstellt am: 17. Apr. 2004 22:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Claudio:
;;;DIE Layer in LALI sind Beispielhaft- einfach Deine Layer
;;;der Reihe nach eintragen.

;;;Gruß Claudio


Hi.

In deinem Beitrag verweist du auf http://ww3.cad.de/foren/ubb/uploads/CADmium/SORT_BY_LAYER.txt

Dieses Tool könnte ich dringend gebrauchen, aber in der Lisp Routine existiert keine Funktion  " c: ", ich weiß nicht, wie man die zum laufen kriegt.

Für einen Tip bin ich sehr dankbar!!

erwin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

heidi
Mitglied
CAD-Dienstleister


Sehen Sie sich das Profil von heidi an!   Senden Sie eine Private Message an heidi  Schreiben Sie einen Gästebucheintrag für heidi

Beiträge: 1130
Registriert: 01.11.2001

Dell Precicion M6700
Nvidia Quadro K3000M
AutoCAD 2012 Sp2
nXtRender
Tetra4D
eigene Tools
Adobe CreativeSuite 6
———————————
MacBook Pro i9 2,3/16/5
Big Sur 11.5.1
BricsCAD V21 Pro

erstellt am: 18. Apr. 2004 11:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Hallo Erwin,
im Listing steht beschrieben, dass du die Funktion so aufrufen sollst
Aufruf z.B. :  (SORT_BY_LAYER '("AM_8" "AM_3" "AM_1" "AM_0" "AM_5"))           

------------------
Gruß Heidi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 18. Apr. 2004 13:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

oder  - wenn du immer die gleiche Layerreihenfolgehaben willst -
(defun c:SORT_BY_LAYER ()
  (SORT_BY_LAYER '("AM_8" "AM_3" "AM_1" "AM_0" "AM_5"))
)

oder mit Abfrage

(defun c:SORT_BY_LAYER ( / LAYER LAYERLIST)
  (while (setq LAYER(getstring "\nLAYER : "))
    (if (tblsearch "LAYER" LAYER)
      (setq LAYERLIST (cons LAYER LAYERLIST))
      (princ "\nEingegebener Layer existiert nicht!") 
    )
  ) 
  (if LAYERLIST
    (SORT_BY_LAYER (reverse LAYERLIST))
  )
)

.. alles ungetestet.. bei Probs noch mal melden!

------------------
- Thomas -

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TomiProg
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von TomiProg an!   Senden Sie eine Private Message an TomiProg  Schreiben Sie einen Gästebucheintrag für TomiProg

Beiträge: 51
Registriert: 29.04.2004

WinNT4.0(SP6) + AutoCAD 14.01, P3/400MHz(gääähn),256MB,Graphtec KD4620, ATI 3D Rage Pro(8MB)

erstellt am: 16. Nov. 2004 11:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Hallo Lispler.

Ich habe ein Problem mit dem "_DRAWORDER"-Command. Wenn ich den Befehl
(command "_draworder" SS1 "" "o")
ausführen lasse, wobei SS1 ein Auswahlsatz ist, bekomme ich nur Schrott zurück. AutoLISP setzt diesen Befehl nicht um. In der Befehlszeile bleibt das Programm stehen mit folgender Anzeige:
<Auswahlsatz: xy>
Ich kann nur noch Return oder ESC drücken und als Antwort auf Return bekomme ich als Meldung:

Unbekannter Befehl "TEST". Drücken Sie F1-Taste ...
Unbekannter Befehl "TEST". Drücken Sie F1-Taste ...
Unbekannter Befehl "U". Drücken Sie F1-Taste ...

(Test ist der Programmname "DEFUN C:TEST()...")

Kann mir jemand sagen, woran das liegen kann?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 16. Nov. 2004 13:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

*quatschlösch*

es ist sicherlich irgendwo ein Return zu viel drin - aber wo?
Dazu müsstest du mehr von deiner Func preisgeben

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TomiProg
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von TomiProg an!   Senden Sie eine Private Message an TomiProg  Schreiben Sie einen Gästebucheintrag für TomiProg

Beiträge: 51
Registriert: 29.04.2004

WinNT4.0(SP6) + AutoCAD 14.01, P3/400MHz(gääähn),256MB,Graphtec KD4620, ATI 3D Rage Pro(8MB)

erstellt am: 16. Nov. 2004 14:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Sehr witzig, CADwiesel ;-)

Nun gut. Es genügt wohl nicht, wenn ich die entscheidene Zeile preisgebe. Hier der ganze Code, der so nicht funktionieren will:

(defun c:test(/ objekt)
(setq objekt (ssget "L")) ;letztes Objekt auswählen. Ist eine Solid-Schraffur
(command "_draworder" objekt "" "u")
(princ))


Wenn hier jemand ein Return zuviel erkennt, dann kann der Code wie von
Claudio (ganz oben) auch nicht funktionieren.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 16. Nov. 2004 16:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

in diesem Lisp ist logischerweise genausokein Fehler drin, wie in deinem vorherigen Posting.

gehe einfach mal dein Lisp im VL-Editor - im debuggmodus durch und überwache mal (getvar "cmdactive")
irgendwo wird die Setvar bei einem Commandbefehl auf 1 stehen - vielleicht sogar schon bevor du zu dem draworder - command kommst.
Aber der Fehler wird sicherlich bei irgendeinem command liegen, das nicht beendet wurde.

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TomiProg
Mitglied
Technischer Zeichner


Sehen Sie sich das Profil von TomiProg an!   Senden Sie eine Private Message an TomiProg  Schreiben Sie einen Gästebucheintrag für TomiProg

Beiträge: 51
Registriert: 29.04.2004

WinNT4.0(SP6) + AutoCAD 14.01, P3/400MHz(gääähn),256MB,Graphtec KD4620, ATI 3D Rage Pro(8MB)

erstellt am: 17. Nov. 2004 15:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADwiesel:
in diesem Lisp ist logischerweise genausokein Fehler drin, wie in deinem vorherigen Posting.

gehe einfach mal dein Lisp im VL-Editor - im debuggmodus durch und überwache mal (getvar "cmdactive")
irgendwo wird die Setvar bei einem Commandbefehl auf 1 stehen - vielleicht sogar schon bevor du zu dem draworder - command kommst.
Aber der Fehler wird sicherlich bei irgendeinem command liegen, das nicht beendet wurde.


Das bedeutet, sollange ich noch ein Command-Befehl offen habe, sprich cmdactive ist ungleich 0, oder in diesem Falle 1, dann bricht Lisp mir den draworder-Befehl ab oder führt ihn nicht richtig aus. Aha. Und wie schließe ich noch offene Commands? Die benutze ich ganz selten in meinem Code.

Aber mal was anderes. Ich habe das Problem mit dem draworder-Befehl andersweitig gelöst. Es gibt eine ARX-Prozedur namens Acadunsupport.
Ich habe daraus den VBA-Befehl "EvalLispExpr" benutzt und siehe da, dort funktioniert es.
Aber trotzdem vielen Dank für deine Hilfe. Werde am Lisp-Command dran bleiben und bei mir mal ergründen, wo noch ein offener Command steht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 17. Nov. 2004 15:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kramer24 10 Unities + Antwort hilfreich

Frage:
Und wie schließe ich noch offene Commands?
Antwort
(while(>(getvar "cmdactive")0)(command))

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz