Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Mehrere Layer mit Button schalten

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:  Mehrere Layer mit Button schalten (3546 mal gelesen)
Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

erstellt am: 23. Feb. 2005 15:10    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.
Wir haben eine feste Layerstruktur. Jetzt möchte ich ein paar Button erzeugen wo man bestimmte Layer z.B. Layer mit dem Suffix A_DU*** anschalten kann. Zum Ausschalten möchte ich den gleichen Button verwenden.
Gibt es dazu einen Grundbefehl in den man eine Datei einbinden kann wo mehrere Layer aufgeführt sind die geschaltet werden. Diese Datei möchte ich beliebig erweitern können.
Mit dieser Funktion kann ich bestimmte Layerbereiche bequem dazu - oder abschalten.
Wenn es da etwas gäbe... super

Ich hoffe ich habe alles verständlich ausgedrückt.

Gruß Carsten

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 23. Feb. 2005 15: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 Kodat 10 Unities + Antwort hilfreich

guck mal hier zum schalten mehrerer Layer und
hier für die Sache mit einem Button..

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

erstellt am: 24. Feb. 2005 09:49    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 CADmium.

Habe es gelesen. Funzt auch. Ich hab den Button belegt zum Ausschalten der Layer. Ich möchte aber die Layer ( Alle mit z.B. A_GRS*) mit einem Knopf einschalten und dann ausschalten. So kann ich mir mehrere Button mit den Gruppen belegen.

Wie geht das denn ? Kannst Du deas Lisp abändern so das ich mir die Gruppen selber anpaassen kann?
Wäre toll.

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 24. Feb. 2005 09:57    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 Kodat 10 Unities + Antwort hilfreich

Hallo Carsten,

du brauchst dafür eigentlich gar kein Lisp. Du kannst doch einfach
^C^C-layer;se;"0";a;A_GRS*;;
auf einen Button legen. Das kann man auch noch auf einschalten usw ändern.

Bei Fragen ...

Grüße Holger
CAD on demand GmbH AUGCE - Manager Deutschland

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

Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

erstellt am: 24. Feb. 2005 10:45    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 Holger.

Das habe ich ja auch hinbekommen. Wie aber geht es mit nur einem Button der wechselweise die Gruppe an oder ausschaltet.
Dann kann ich mehrere Gruppen jewils nur mit einem Knopf steuern.
Wäre für unsere Layerstruktur optimal

Carsten

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 24. Feb. 2005 11:46    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 Kodat 10 Unities + Antwort hilfreich

Probier das:
(defun DT:LAYER-ON-OFF (LAYERS / NAME STATUS)
  (vl-load-com)
  (if (and(=(type LAYERS) 'LIST)
          (setq LAYERS (vl-remove-if-not
                          '(lambda(x) x)
                          (mapcar '(lambda(X)(if(=(type X)'STR)(strcase X) nil)) LAYERS)
                      )
          )                                                                     
      )
   
    (vlax-for LAYER (vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
      (setq NAME(strcase (vla-get-name LAYER)))
      (if (member 'T (mapcar'(lambda(x) (wcmatch NAME X))
                            LAYERS
                    )
          )
        (progn
          (or STATUS (setq STATUS(vla-get-layeron LAYER)))           
          (if (= STATUS :vlax-true)           
            (vla-put-layeron LAYER :vlax-false)
            (vla-put-layeron LAYER  :vlax-true)
          )
        )   
      )       
    )
  )
)

Möglichkeiten für Knöppchen wären z.B.
^C^C(DT:LAYER-ON-OFF '("AM_0" "AM_7"))
^C^C(DT:LAYER-ON-OFF '("AM*"))
^C^C(DT:LAYER-ON-OFF '("0"))
^C^C(DT:LAYER-ON-OFF '("A_DU***"))

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

erstellt am: 24. Feb. 2005 12: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

@CADmium

Wahnsinn dass klappt. Es taucht nur noch das Layerfenster auf , das bestätige ich mit ok und dann sind die Layer aus oder an.

Meldung im Acad Fenster : Befehl: (DT:LAYER-ON-OFF '("A_GRS_***")) nil

Kann du das noch abstellen. Den Aufruf hab ich so eingetragen wie du angegeben hast.

Ich bin begeistert.


Carsten

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 24. Feb. 2005 12: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 Kodat 10 Unities + Antwort hilfreich

hmm .. mit Layerfenster kann ich nichts feststelen.. kommt bei mir nicht, zur Not dann mit Initdia-Aufruf , ob's was bringt: keine Ahnung:

(defun DT:LAYER-ON-OFF (LAYERS / NAME STATUS)
  (vl-load-com)
  (if (and(=(type LAYERS) 'LIST)
          (setq LAYERS (vl-remove-if-not
                          '(lambda(x) x)
                          (mapcar '(lambda(X)(if(=(type X)'STR)(strcase X) nil)) LAYERS)
                      )
          )                                                                     
      )
   
    (vlax-for LAYER (vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
      (setq NAME(strcase (vla-get-name LAYER)))
      (if (member 'T (mapcar'(lambda(x) (wcmatch NAME X))
                            LAYERS
                    )
          )
        (progn
          (or STATUS (setq STATUS(vla-get-layeron LAYER)))       
          (initdia 0) 
          (if (= STATUS :vlax-true)           
            (vla-put-layeron LAYER :vlax-false)
            (vla-put-layeron LAYER  :vlax-true)
          )
        )   
      )       
    )
  )
)

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

erstellt am: 24. Feb. 2005 13:53    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

Nee, das geht immer noch auf.  Hab 2000i . Vielleicht liegts daran.
Kann ich nicht im Werkzeugkasten etwas ergänzen.
Einfach ein -Befehl für das ok Drücken auf dem Layer Fenster.

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

Intel CoreI 5/750 8GB Ram , W7Prof. 64bit
Nvidia Quadro 2000
AC 2012 / RAC 2012.sp2

erstellt am: 24. Feb. 2005 15:05    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 CADmium.
Ich nochmal.  Also nach einer Weile tritt folgendes auf.
Das Layerfenster taucht nun nicht mehr auf.
Dafür kann ich im Acad-Befehlfenster sehen das von meiner Applikation befehle wiederholt werden.
Wie hängt das denn jetzt zusammen.
Hier der Fensterablauf in AC:
--------------------------------------------
Befehl:
Befehl:
Befehl: (DT:LAYER-ON-OFF '("A_GRS_***")) nil
Befehl:  IEZ_PLOPMA
speedikon A: Wand identifizieren
check: k:\5167_aik_st_augustin\5167_aik_st_augustin.spd\std\mcr\deu\bin\opn 0
check: M:\speedikon\Standard\std\main\mcr\deu\bin\opn 0
check: M:\speedikon\Standard\mcr\deu\bin\opn 1
check: M:\speedikon\Standard\mcr\deu\bin\opn 1
check: C:\Programme\IEZ\speedikon A\System\std\mcr\deu\bin\opn 1
check: C:\Programme\IEZ\speedikon A\System\std\mcr\deu\bin\opn 1
*Abbruch*
Befehl:
Befehl:
Befehl: (DT:LAYER-ON-OFF '("A_GRS_***")) nil
Befehl: *Abbruch*
----------------------------------------

Wir haben ArchitekturAufsatz " Speedikon A "

Gruß Carsten

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Kodat
Mitglied
Architekt


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

Beiträge: 310
Registriert: 27.01.2004

erstellt am: 25. Feb. 2005 09:38    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 cadmium.

Jetzt habe ich es eine Weile getestet mit mehreren Neustarten.
ANscheinend gibt es jetzt keine Probs mehr. Alles geht.
Die Units gehen an Dich, super super..

Wenn ich das auch mal könnte mit den Lisp Befehlen etc..

Gruß Carsten

------------------
Vielen Dank für jeden Hinweis.
Carsten

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 25. Feb. 2005 09: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 Kodat 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kodat:
Wenn ich das auch mal könnte mit den Lisp Befehlen etc..

Was hindert dich daran, es zu lernen ?  Du siehst ja, das kann manchmal recht hilfreich sein...und langfristig haste dadurch den damit verbundenen Aufwand wieder drin

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cad4fun
Ehrenmitglied



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

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
ATI FirePro V (FireGL V) Graphics Adapter
Treiberversion: 15.201.1151.1008

erstellt am: 22. Apr. 2005 13:01    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 Kodat 10 Unities + Antwort hilfreich

hallo Cadmium
ich bekomme die Meldung
(DT:LAYER-ON-OFF '("*HAT***" "SOL*")) ; error: no function definition:
DT:LAYER-ON-OFF
und natürlich nicht das gewünschte ergebnis. Was mache ich falsch?
Wäre Spitzentool, wenn's funkt.
lG

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 22. Apr. 2005 13: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 Nur für Kodat 10 Unities + Antwort hilfreich

geladen hastes es aber ? -> FAQ
bei mir funzt es problemlos

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

cad4fun
Ehrenmitglied



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

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
ATI FirePro V (FireGL V) Graphics Adapter
Treiberversion: 15.201.1151.1008

erstellt am: 22. Apr. 2005 13:17    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 Kodat 10 Unities + Antwort hilfreich

ich habe es sicher geladen, da ich auch zuerst dachte, es wird nicht mitgeladen beim Start. Daher habe ich es dann nochmals nachgeladen und habe es auch jetzt nochmals so gemacht-> Ergebnis _appload LAY**** successfully___usw.). Ergebnis wie vor.
Frage: warum verwendest Du defun DT: und nicht C:

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 22. Apr. 2005 13:32    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 Kodat 10 Unities + Antwort hilfreich

DT: is ne Kennung .. kann auch ÄtschBätsch+#:Tool davorschreiben , hat nix mit C: zu tun! nur wenn (defun C:TOOLNAME( /..)..) ist es als ACAD-Kommando verfügbar! Da kann ich aber keine Paramter, wie in diesem Fall notwendigerweise die LAYER-LISTE, übergeben.
du mußt das Teil nach dem LADEN in der Befehlszeile oder auf 'n Button schon mit
(DT:LAYER-ON-OFF '("A*" "B*")) aufrufen !!

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

AutoCADify
Mitglied
Information Technology


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

Beiträge: 13
Registriert: 24.03.2017

Windows 8
GTX GPU
AutoCAD 16/17
C3D 16/17

erstellt am: 03. Jul. 2017 16:00    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 Kodat 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!


Zitat:
Original erstellt von CADmium:
Probier das:
(defun DT:LAYER-ON-OFF (LAYERS / NAME STATUS)
  (vl-load-com)
  (if (and(=(type LAYERS) 'LIST)
          (setq LAYERS (vl-remove-if-not
                          '(lambda(x) x)
                          (mapcar '(lambda(X)(if(=(type X)'STR)(strcase X) nil)) LAYERS)
                       )
          )                                                                     
      )
   
    (vlax-for LAYER (vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
      (setq NAME(strcase (vla-get-name LAYER)))
      (if (member 'T (mapcar'(lambda(x) (wcmatch NAME X))
                             LAYERS
                     )
          )
        (progn
          (or STATUS (setq STATUS(vla-get-layeron LAYER)))            
          (if (= STATUS :vlax-true)           
            (vla-put-layeron LAYER :vlax-false)
            (vla-put-layeron LAYER  :vlax-true)
          )
        )   
      )       
    )
  )
)

Möglichkeiten für Knöppchen wären z.B.
^C^C(DT:LAYER-ON-OFF '("AM_0" "AM_7"))
^C^C(DT:LAYER-ON-OFF '("AM*"))
^C^C(DT:LAYER-ON-OFF '("0"))
^C^C(DT:LAYER-ON-OFF '("A_DU***"))



Bezug auf diese Lisp:

Hallo Cadmium,

nicht erschrecken, ich habe so ziemlich das selbe anliegen im Moment. Ist zwar ein paar Jährchen her, aber vielleicht kannst du mir ja weiterhelfen?

Wäre dir sehr dankbar!

LG
AutoCADify

------------------
Nichts ist unmöglich - AutoCAD

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 03. Jul. 2017 21: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 Kodat 10 Unities + Antwort hilfreich

und wie?


------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

AutoCADify
Mitglied
Information Technology


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

Beiträge: 13
Registriert: 24.03.2017

Windows 8
GTX GPU
AutoCAD 16/17
C3D 16/17

erstellt am: 04. Jul. 2017 08:55    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 Kodat 10 Unities + Antwort hilfreich

Ich habe deine Lisp ausprobiert und jetzt weist mir C3D auf, dass ich zu wenige Argumente habe. Woran kann das liegen?

BTW. ist es auch möglich per E-Mail zu kommunizieren?

Gruß

------------------
Nichts ist unmöglich - AutoCAD

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 04. Jul. 2017 09:19    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 Kodat 10 Unities + Antwort hilfreich

Sieht so aus, als ob du die Funktion als Befehl aufrufst ...

du kannst in der Befehlszeile testen
(DT:LAYER-ON-OFF '("AM_0" "AM_7"))  , wobei "AM_0" "AM_7" deine Layer sind

oder du bastelst dir einen Befehl ( am besten in der Lispdatei )

(defun C:MeineLayer()(DT:LAYER-ON-OFF '("AM_0" "AM_7")))

den du dann in der Befehls zeile mit MeineLayer aufrufen kannst

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

AutoCADify
Mitglied
Information Technology


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

Beiträge: 13
Registriert: 24.03.2017

Windows 8
GTX GPU
AutoCAD 16/17
C3D 16/17

erstellt am: 04. Jul. 2017 12: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 Kodat 10 Unities + Antwort hilfreich

Ich habe jetzt mal die Zeile umgeschrieben und bekomme diese Fehlermeldung:

; Fehler: no function definition: DT:LAYER-ON-OFF

Hier nochmal das ganze Skript:

(defun C:LEWLYR()(DT:LAYER-ON-OFF '("AM_0" "AM_7")))
  (vl-load-com)
  (if (and(=(type LAYERS) 'LIST)
          (setq LAYERS (vl-remove-if-not
                          '(lambda(x) x)
                          (mapcar '(lambda(X)(if(=(type X)'STR)(strcase X) nil)) LAYERS)
                      )
          )                                                                   
      )
 
    (vlax-for LAYER (vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
      (setq NAME(strcase (vla-get-name LAYER)))
      (if (member 'T (mapcar'(lambda(x) (wcmatch NAME X))
                            LAYERS
                    )
          )
        (progn
          (or STATUS (setq STATUS(vla-get-layeron LAYER)))     
          (initdia 0)
          (if (= STATUS :vlax-true)         
            (vla-put-layeron LAYER :vlax-false)
            (vla-put-layeron LAYER  :vlax-true)
   
  )
        ) 
      )     
    )
  )
)

------------------
Nichts ist unmöglich - AutoCAD

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 04. Jul. 2017 14: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 Kodat 10 Unities + Antwort hilfreich

Die Frage ist: Warum schreibst du die (funktionierenden) Zeilen um (die dann ggf nicht mehr funktionieren können)?

; Fehler: no function definition: DT:LAYER-ON-OFF

Bedeutet: Es ist keine Funktion "DT:LAYER-ON-OFF" definiert (also nicht geladen)
------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

CADblue
Mitglied



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

Beiträge: 117
Registriert: 20.07.2011

acad2016 + civil 3d

erstellt am: 05. Jul. 2017 14:21    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 Kodat 10 Unities + Antwort hilfreich

ich denke CADify wollte auf sowas hier raus

Code:

(defun C:LEWLYR()
(defun DT:LAYER-ON-OFF (LAYERS / NAME STATUS)
  (vl-load-com)
  (if (and(=(type LAYERS) 'LIST)
          (setq LAYERS (vl-remove-if-not
                          '(lambda(x) x)
                          (mapcar '(lambda(X)(if(=(type X)'STR)(strcase X) nil)) LAYERS)
                      )
          )                                                                   
      )
 
    (vlax-for LAYER (vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
      (setq NAME(strcase (vla-get-name LAYER)))
      (if (member 'T (mapcar'(lambda(x) (wcmatch NAME X))
                            LAYERS
                    )
          )
        (progn
          (or STATUS (setq STATUS(vla-get-layeron LAYER)))           
          (if (= STATUS :vlax-true)         
            (vla-put-layeron LAYER :vlax-false)
            (vla-put-layeron LAYER  :vlax-true)
          )
        ) 
      )     
    )
  )
)
(DT:LAYER-ON-OFF '("AM_0" "AM_7"))
)


mfg
blue

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