Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Auswahlsatz

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:  Auswahlsatz (3053 mal gelesen)
woppi
Mitglied
cnc-programmierung


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

Beiträge: 65
Registriert: 16.01.2009

Acad Architecture 2020

erstellt am: 27. Mai. 2010 16:42    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, ich habe in Lisp einen Auswahlsatz gefiltert, und damit einen Auswahlsatz nur mit Blöcken erhalten. Die Blöcke habe ich dann mit  (command "_.EXPLODE" awsblock "") aufgelößt.

Weiß einer eine Möglichkeit wie ich die Teile der aufgelößten Blöcke zu einem schon vorhandenen Auswahlsatz addiere?

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: 27. Mai. 2010 16: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 woppi 10 Unities + Antwort hilfreich

(command "_Explode" ..) löst IMHO nur eine Blockreferenz auf ..du mußt schon durch den Auswahlsatz iterieren.


und die aufgelösten Objekte bekommt man, indem man vor dem _explode sich das letzte Element merkt -> (entlast) und nach dem explode mit (entnext ...) alle neuen Objekte einsammelt und mit ssadd einem Auswahlsatz hinzufügt.

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

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: 27. Mai. 2010 18: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 woppi 10 Unities + Antwort hilfreich

Hallo,
nach "explode" stehen die aufgelösten Elemente im "V"orgerigen Auswahlsatz. (ssget "_P")

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 65
Registriert: 16.01.2009

Acad Architecture 2020

erstellt am: 28. Mai. 2010 08:40    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 jetzt auch festgestellt das leider immer nur ein Block aufgelöst wird, jetzt verstehe ich was CADmium mit iterieren meint.
Wird nach dem auflösen des einen Blockes der direkt aus dem Auswahlsatz entfernt? Und ich muss dann in einer Explode in einer Schleife laufen lassen bis der AWS leer ist?

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

Alles

erstellt am: 28. Mai. 2010 08: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 woppi 10 Unities + Antwort hilfreich

Der Auswahlsatz wird doch garnicht geändert, jedoch gibt es die dort "gemerkten" Objekte nicht mehr,
das INSERT wurde ja aufgelöst, stattdessen gibt es nun viele andere Objekte die dein Aws nicht kennt.

EDIT: Das nur eine Referenz aufgelöst wird bei deinem Vorhaben ist auch in auch dokumentiert,
so ein abweichendes Verhalten von AutoCAD-Befehlen gibt es öfters bei Script/Makro/Lisp etc.

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

[Diese Nachricht wurde von cadffm am 28. Mai. 2010 editiert.]

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: 28. Mai. 2010 08: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 woppi 10 Unities + Antwort hilfreich

na rudimentär und ungetestet so :
(if(setq AWS (ssget "_X" (list '(0 . "INSERT")(cons 410 (getvar "CTAB")))))
    (progn
      (setq I -1)
      (repeat (sslength AWS)
        (setq OBJ(ssname AWS(setq I(1+ I))))
        (command "_explode" OBJ )
      )
    )
  )

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 65
Registriert: 16.01.2009

Acad Architecture 2020

erstellt am: 28. Mai. 2010 11: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

Vielen Dank für Eure Infos,

habe auch schon eine großen Teil in meine Lisp eingebaut. (was so meinem Wissenstands entspricht  )
Habe noch eine Grundsätzliche Frage zu ssget:
Ich weiß etwas über die Möglichkeiten mit: "_X" ,"_P" etc.  Auch <OR .....
Aber kann man auch einen schon vorhandenen Auswahlsatz ein zweites mal Filtern um dann zum Beispiel nur Kreise oder Blöcke zu erhalten, wenn einem die Option "_P" nicht mehr zur Verfügung steht (schon eingesetzt)

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

Alles

erstellt am: 28. Mai. 2010 11: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 woppi 10 Unities + Antwort hilfreich

Also (SSGET "_P" '((0 . "CIRCLE,LINE"))) würde aus dem "vorherigen Auswahlsatz" die Kreise und Linien filtern.

(SSGET "_X" '((0 . "CIRCLE,LINE"))) alle Linien und Kreise aus der ganzen Datei wählen

und wenn ich bereits einen AWS habe und bestimmte Elemente entfernen will aus dem AWS
dann muß man sich selbst was basteln (Auswahlsatz-Funktionen fangen mit "ss" an: ssadd ssdel , schau mal in die Hilfe)

------------------
CAD.de System-Angaben  -  CAD on demand  -  User:FAQ(Acad)

[Diese Nachricht wurde von cadffm am 28. Mai. 2010 editiert.]

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: 29. Mai. 2010 21:09    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 woppi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadffm:
und wenn ich bereits einen AWS habe und bestimmte Elemente entfernen will aus dem AWS
dann muß man sich selbst was basteln [i](Auswahlsatz-Funktionen fangen mit "ss" an: ssadd ssdel , schau mal in die Hilfe)

[/i]


Dazu mein immer gleich lautender Hinweis: am besten wandelt man sich Auswahlsätze in Elementlisten um. Damit umgeht man erstens einige unlispische Beschränkungen von Auswahlsätzen (der Datentyp 'PICKSET ist nur Pointer auf einen Auswahlsatz und repräsentiert nicht den Auswahlsatz selbst, ähnlich wie eine filehandle auf eine offene Datei; es gibt eine Obergrenze von gleichzeitig offenen Auswahlsätzen), und zweitens stehen dann alle schönen Listenoperationen zur Verfügung, die man hoffentlich sowieso in seiner Library stehen hat. Der Performanceverlust bei der Um- und späteren Rückwandlung ist fast nicht messbar.

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 31. Mai. 2010 10: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 woppi 10 Unities + Antwort hilfreich

Nach dem Ursprung, sind alle neu erzeugte Objekte zum Schluss ind er datenbank

Mit (setq elLast (entlast)) das letzte Objekt merken

Ursprung

Mit (while (setq elLast (entnext elLast)) ...) die zuletzt (also seit dem ursprung erzeugten Objekte aufsammeln.

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 65
Registriert: 16.01.2009

Acad Architecture 2020

erstellt am: 01. Jun. 2010 09:09    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

Vielen Dank für die Infos, ich habe auch noch eine Idee, muß aber gerade mehr CNC als Lisp programmieren.
Ich versuche das nächste Woche umzusetzen, und melde mich dann wieder.

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 65
Registriert: 16.01.2009

Acad Architecture 2020

erstellt am: 02. Jun. 2010 17:27    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

Zu der Angelegenheit, einen vorhandenen AWS zu filtern der nicht mehr der "letzte" ist (also "_P") nicht funktioniert, habe ich als Lisp Anfänger folgenden Code geschrieben:

(command "_select" aws "")
  (setq aws (ssget "_P")
                                ;setzt den aws wieder aktuell
awsPoint (ssget "_P" '((0 . "POINT")))
)
                                ; Auswahlsatz Punkte um Punkte nach unten zu verschieben
  (command "_select" aws "e" awsPoint "")
                                ;Punkte aus aws entfernen
  (command "_draworder" awsPoint "" "U")
  (command "_select" aws awsPoint "")
                                  ; Auswahlsätze wieder zusammenlegen
  (setq aws (ssget "_P"))

ist doch im groben auch OK? oder verstoße ich da gegen duzende von Regeln?

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 02. Jun. 2010 18:40    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 woppi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von woppi:
ist doch im groben auch OK? oder verstoße ich da gegen duzende von Regeln?

nö - ja; jaa - nöö
mal was zum lesen
autolisp-tutorial.mapcar.net
und in der Hilfe findet man auch einiges

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."

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