Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  SSGET einfügen bzw. ENTGET mit fenser picken

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:  SSGET einfügen bzw. ENTGET mit fenser picken (660 mal gelesen)
RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

ACAD 2006
AMD Athlon XP +4800 X2
1,5 GB Ram
500 GB HD
ATI Radeon XT1900

erstellt am: 13. Jul. 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 an alle die hier fleißig anderen Leuten helfen,
habe hier auch schon eine Menge nützlicher Tipps und Tricks gefunden, die mir auch schon sehr weitergeholfen haben.... Danke hierfür...
Nun zu meiner Frage ich habe folgenden Code gefunden. (und eingebaut)

(defun c:layer01 ()
    (if(and(setq Objekt_1 (entget (car (entsel))))
        (tblobjname "LAYER" "01-KNT")
    )
  (entmod (subst (cons 8 "01-KNT")(assoc 8 Objekt_1) Objekt_1))
)
)

Dadurch soll 1 Objekt das sich auf der Zeichnung befindet in Layer 01-KNT den ich definiert habe umgewandelt werden incl. Farbe und Linientyp. Das klappt auch sehr gut nun wollte ich aber nicht nur 1 Objekt wählen sondern mit "kreuzen" oder Fenster mehrere Objekte gleichzeitig. Ich habe Versucht die Funktion SSGET einzubauen aber leider bekomme ich es nicht hin das die Objekte die dann in der Variablen gespeichert sind auch geändert werden. Wie kann ich den ENTGET Befehl so formulieren das ich auch ein Fenster wählen kann bzw. mehrere Objekte bevor der Befehl ausgeführt wird? Ich habe es so versucht:
(defun c:layer01 ()
  (setq A (ssget))
(if(and(setq Objekt_1 (entget (car (entsel))))
        (tblobjname "LAYER" "01-KNT")
    )
  (entmod (subst (cons 8 "01-KNT")(assoc 8 A) A))
)
)
Hierbei muss ich die Objekte "doppelt" markieren aber der gewünschte Effekt tritt nicht ein! würde gerne das entget so abwandeln das ich auf ssget verzichten könnte aber ich bekomme das nicht hin... Habe auch schon im Tutorial bei Mapcar geschaut aber irgendwie wende ich dieses wissen falsch an....

Schon mal rechtherzlichen Dank für eure Vorschläge.

Thomas aus Saarbrücken

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: 13. Jul. 2005 15:18    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 RSt-Stahl 10 Unities + Antwort hilfreich

(if(and(setq AWS (ssget))
      (tblobjname "LAYER" "01-KNT") 
  )
  (progn
    (setq INDEX -1)
    (repeat (sslength AWS)
      (setq Objekt_1 (ssname AWS (setq Index(1+ Index))))
      (entmod (subst (cons 8 "01-KNT")(assoc 8 Objekt_1) Objekt_1))
    )
  )
)

------------------
- 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

RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

ACAD 2006
AMD Athlon XP +4800 X2
1,5 GB Ram
500 GB HD
ATI Radeon XT1900

erstellt am: 13. Jul. 2005 15:28    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,
vielen dank für die schnelle Antwort!
leider bekomme ich folgende Fehlermeldung:

; Fehler: Es ist ein Fehler innerhalb der *error*-Funktion
aufgetreten.Fehlerhafter Argumenttyp: lentityp nil

aber das Objekte auswählen Funktioniert genau wie gewünscht!

Gruß Thomas

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: 13. Jul. 2005 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 RSt-Stahl 10 Unities + Antwort hilfreich

sorry .. hatte ich direkt in den antworteditor getippt.. fehlt ein entget

(if(and(setq AWS (ssget))
      (tblobjname "LAYER" "AM_0") 
  )
  (progn
    (setq INDEX -1)
    (repeat (sslength AWS)
      (setq Objekt_1 (entget(ssname AWS (setq Index(1+ Index)))))
      (entmod (subst (cons 8 "AM_0")(assoc 8 Objekt_1) Objekt_1))
    )
  )
)

------------------
- 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

RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

ACAD 2006
AMD Athlon XP +4800 X2
1,5 GB Ram
500 GB HD
ATI Radeon XT1900

erstellt am: 13. Jul. 2005 15: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

Spitze! vielen Dank! Funktioniert Absolut perfekt!

10 Units für die Megaschnelle Antwort!


Gruß

Thomas

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