Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Objekte auf Layer vorhanden

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:  Objekte auf Layer vorhanden (871 mal gelesen)
Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 05. Dez. 2013 16:07    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 liebe Community,

ich steh irgendwie im Wald.
Könnt ihr mir bitte helfen.

Code:

(defun C:Plaene_on (/ obj1 obj2)
      (if (tblsearch "Layer" "Plaene")               ; ---> TEIL1
        (  (command "-Layer" "_on" "Plaene" "")
           (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene"))))
           (command "_chprop" elem1 "" "_layer" "0" "")
        )
      )
    (command "-Layer" "_on" "0" "")              ; ----> TEIL2
    (setq elem2 (ssget "X" '((0 . "IMAGE"))))
    (command "_draworder" elem2 "" "_back")
    (princ)
)


Es funktioniert so weit alles.
  D.h.: Wenn Bilder auf dem Layer "Plaene" vorhanden sind werden sie auf den Layer 0 verschoben.

Mein Problem:
*) Wenn keine Bilder auf Layer "Plaene" liegen, dann soll er automatisch mit Teil 2 weitermachen.
*) Wenn zusätzlich keine Bilder auf dem Layer 0 liegen,
         dann soll er den gesamten Befehl beenden/ abbrechen.

BITTE UM HILFE.          

DANKE
  

------------------
Grüße

Christian

[Diese Nachricht wurde von Christian01 am 05. Dez. 2013 editiert.]

[Diese Nachricht wurde von Christian01 am 05. Dez. 2013 editiert.]

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

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



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

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 05. Dez. 2013 16:15    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 Christian01 10 Unities + Antwort hilfreich

Servus,

hast das If nicht schon abgeschlossen?

Code:
(defun C:Plaene_on (/ obj1 obj2)
      (if (tblsearch "Layer" "Plaene")              ; ---> TEIL1
        (command "-Layer" "_on" "Plaene" "")
        (cond
            (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene"))))
            (command "_chprop" elem1 "" "_layer" "0" "")
        )
      ) ---->  end if!?!?!
    (command "-Layer" "_on" "0" "")              ; ----> TEIL2
    (setq elem2 (ssget "X" '((0 . "IMAGE"))))
    (command "_draworder" elem2 "" "_back")
    (princ)
      ) ---->  sollte es nicht da enden
)

------------------
<----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark  Bernd P. Sport ist Mord
Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX

[Diese Nachricht wurde von Bernd P am 05. Dez. 2013 editiert.]

[Diese Nachricht wurde von Bernd P am 05. Dez. 2013 editiert.]

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

Christian01
Mitglied
Technischer Zeichner


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

Beiträge: 281
Registriert: 17.04.2007

erstellt am: 05. Dez. 2013 16:24    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 Bernd

Leider habe ich LISP nie wirklich irgendwo gelernt, hauptsächlich in Eigenregie.
Kannst mir bitte weiterhelfen.
Habe den Code nochmals geändert!!!

Zitat:

) ---->  end if!?!?!

Meinst du das end if fehlt ??

Zitat:

) ---->  sollte es nicht da enden

Was sollte hier enden?
Der IF Befehl?


Mein Problem:
*) Wenn keine Bilder auf Layer "Plaene" liegen, dann soll er automatisch mit Teil 2 weitermachen.
*) Wenn zusätzlich keine Bilder auf dem Layer 0 liegen,
        dann soll er den gesamten Befehl beenden/ abbrechen


------------------
Grüße

Christian

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: 05. Dez. 2013 17:41    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 Christian01 10 Unities + Antwort hilfreich

Hier mal zum Vergleich:
Code:
(defun C:Plaene_on (/ obj1 obj2)
  (if (tblsearch "Layer" "Plaene")      ; ---> TEIL1
    (progn
      (command "-Layer" "_on" "Plaene" "")
      (if
        (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene"))))
        (command "_chprop" elem1 "" "_layer" "0" "")
        ) ;_ ende von if
      ) ;_ ende von progn
    ) ;_ ende von if
  (command "-Layer" "_on" "0" "")      ; ----> TEIL2
  (if (setq elem2 (ssget "X" '((0 . "IMAGE"))))
    (command "_draworder" elem2 "" "_back")
    ) ;_ ende von if
  ) ;_ ende von defun

dein code:

Code:
(defun C:Plaene_on (/ obj1 obj2)
      (if (tblsearch "Layer" "Plaene")              ; ---> TEIL1
        ( (command "-Layer" "_on" "Plaene" "") ;diese Klammer darf nicht alleine stehen, es muss eine progn oder cond Anweisung dahinter
          (setq elem1 (ssget "X" '((0 . "IMAGE") (8 . "Plaene"))))
          (command "_chprop" elem1 "" "_layer" "0" "")
        )
      )
    (command "-Layer" "_on" "0" "")              ; ----> TEIL2
    (setq elem2 (ssget "X" '((0 . "IMAGE"))));wenn dieser  Auswahlsatz nil ist produziert die nächste Zeile einen Fehler
    (command "_draworder" elem2 "" "_back")
    (princ)
)

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

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