Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  lisp code?

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 code? (1290 mal gelesen)
chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 02. Feb. 2011 10: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

hey leute!!

ganz kurze frage wie lautet der code um aus einem auswahlsatz auszuschliessen??

mit

(ssget "x"(list(cons 62 7))) wählt mal z.b. alle was die farbe weiß/schwarz hat aus.

wie kann ich zum beispiel, wenn alles markiert ist genau diese farbe aus meinem auswahlsatz entfernen??

danke

mfg

chris

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 02. Feb. 2011 11: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 chris888 10 Unities + Antwort hilfreich

Hallo chris,
mit (ssget "X" '((-4 . "<NOT") (0 . "LINE") (-4 . "NOT>"))) schließt Du z.B. alle Linien aus.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 02. Feb. 2011 11:22    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 chris888 10 Unities + Antwort hilfreich

hallo chris

ein beispiel:
(ssget '((0 . "INSERT")(-4 . "<NOT")(66 . 1)(-4 . "NOT>"))))

hoffe das hilft dir.


gibt gnoch ander varianten so viel ichs im hinterkopf habe.

gruss steff


ps.: da war wider mal einer schneller 

[Diese Nachricht wurde von Steff179 am 02. Feb. 2011 editiert.]

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 02. Feb. 2011 11:23    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 chris888 10 Unities + Antwort hilfreich

hallo chris,

(setq ss (ssget "_x"(list '(0 . "LWPOLYLINE")
                         '(-4 . "<NOT")
                           (cons 62 color)
                         '(-4 . "NOT>"))))

es werden alle lwpolyline ausgewaehlt, die nicht auf farbe color liegen.

edit: da war ich woll etwas zu langsam

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

[Diese Nachricht wurde von neurosis am 02. Feb. 2011 editiert.]

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 02. Feb. 2011 11:26    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 chris888 10 Unities + Antwort hilfreich

Das sind 2 Fragen.

1. ssget mit Filterung NOT

Das hier wählt alle nicht roten Linien (außer wenn vonlayer zufälllig rot ist)
(ssget "X" (list (0 . "LINE") (-4 . "<not") (62 . 1) (-4 . "not>") ) )

siehe auch http://www.autolisp-tutorial.mapcar.net/ssget.html

und
2. Bestehender Auswahlsatz (impliziter Auswahlsatz _I) in ssget Ausewahlsatz übernehmen

(ssgetfirst)
bzw. (ssget "_I" ...

Dieser Code erstellt einen Auswahlsatz aller NICHT roten Linien aus der aktuellen Markierung/Auswahl

Befehl: (ssget "_I" '((0 . "LINE") (-4 . "<not") (62 . 1) (-4 . "not>")))

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 02. Feb. 2011 13:14    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

das nenn ich mal ne hilfe^^

danke für die vielen beiträge werde es gleich mal austesten...

mfg
chris

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 02. Feb. 2011 14:58    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

sooooo

habs jetzt mal ausprobiert und

1. die eingaben mit (0."line") also die . eingabe funktioniert iwie nicht kommt immer in der befehlszeile "fehlerhafte punktbezeichnung"
[ich habs zumindest jetzt hinbekommen den befehl mit (cons 0 "line") hinzubekommen]

2. alles toll was ihr mir da gezeigt habt aber ich will aus einem schon bestehenden auswahlsatz ausschliessen so wie wenn man die "shift" taste drückt.

Problem: Ich hab objekte in einem bestimmten bereich die ich markieren will aber auf dem gleichen eigenschaften liegen wie die ausenrum.

mein befehl sah bis jetzt so aus das er den bereich markiert mit blauem fenster, und jetzt will ich nur noch die linien die noch ausgewählt sind aus dem auswahlsatz entfernen.

hoffe ihr versteht mein anliegen^^

mfg

chris

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: 02. Feb. 2011 15: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 Nur für chris888 10 Unities + Antwort hilfreich

zu 1. (0 . "LINE") .. da haste ein Leerzeichen vergessen

zu 2. siehe UDO...
      (sssetfirst nil (ssget "_I" '((0 . "LINE") (-4 . "<not") (62 . 1) (-4 . "not>"))))

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 04. Feb. 2011 11: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

ich kriegs immer noch nicht hin -.-

habe mich soweit vorgearbeitet das ich jetzt schonmal mit ssget einen auswahlfenster erstelle

(defun c:12()(command "_select" (ssget "_w" '(-0.1 -0.1)'(0.1 0.1))))

wie kann ich aus diesem fenster jetzt alle objekte die auf der farbe (62 . 32) liegen ausschließen???

ich kriegs nicht hin -.-.-.-.-

HILFE

mfg chris

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 04. Feb. 2011 12:03    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 chris888 10 Unities + Antwort hilfreich

Code:

(ssget "_w" '(-0.1 -0.1)'(0.1 0.1)  '((-4 . "<not") (62 . 32) (-4 . "not>")))


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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 04. Feb. 2011 14:16    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 chris888 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von chris888:
 

ich kriegs immer noch nicht hin -.-

habe mich soweit vorgearbeitet das ich jetzt schonmal mit ssget einen auswahlfenster erstelle

(defun c:12()(command "_select" (ssget "_w" '(-0.1 -0.1)'(0.1 0.1))))

wie kann ich aus diesem fenster jetzt alle objekte die auf der farbe (62 . 32) liegen ausschließen???

ich kriegs nicht hin -.-.-.-.-

HILFE

mfg chris


Was willst Du denn mit der Auswahl dann weiter anstellen? Wenn Du, was anzunehmen ist, von Lisp aus auch einen Befehl aufrufst, mit dem Du dann diesen Auswahlsatz irgend wie bearbeitest, dann brauchst Du das (command "_select" ...) nicht.

Speichere den Auswahlsatz in einer Variablen:
(setq sset (ssget ...))

Und dann kannst Du mit dem Auswahlsatz weiter arbeiten. Wenn Du nun den Auswahlsatz in eine Liste von Entitynamen umwandelst, dann kannst Du beliebige solche Auswahlsätze bilden, und diese mit geeigneten Listenverarbeitungsmethoden zu neuen Auswahlsätzen zusammensetzen.

Als Beispiel: Du möchtest einen Auswahlsatz aller Linien, Bögen und Polylinen:
(setq sset (ssget "X" '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
Und nun möchest Du einen Auswahlsatz, aller Linien, Bögen und Polylinen, die NICHT Farbe 1 haben. Dazu bildest Du einen Auswahlsatz aller Linien, Bögen und Polylinen, die Farbe 1 haben, und subtrahierst diese Menge von der Menge des vorherigen Auswahlsatzes.

Damit bist Du sehr viel flexibler als mit den für Anfänger etwas kryptischen (-4 ...) Operatoren von SSGET.

Voraussetzung ist natürlich, dass Du Dir eine kleine Bibliothek von Lisp-Funktionen schreibst, mit denen Du Bool'sche Operationen auf Listen anwenden kannst. Diese Funktionen sind sehr einfach zu schreiben und die perfekte Übung für einen Lisp-Anfänger, und sie werden Dir Dein ganzes weiteres Leben wertvollste Dienste leisten.

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 04. Feb. 2011 15:31    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

Zitat:
Original erstellt von Steff179:
Code:

(ssget "_w" '(-0.1 -0.1)'(0.1 0.1)  '((-4 . "<not") (62 . 32) (-4 . "not>")))


-.-.- genau so hatte ich es schon ausprobiert -.-.-

kann es sein das die leerzeichen zwischen den ) ( relevant für die verarbeitung sind?? hatte nämlich alles zusammen geschrieben...

VIELEN DANK JETZT GEHTS

ENDLICH

mfg chris

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