| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Funktion Falsch -.- (681 mal gelesen)
|
chris888 Mitglied Technischer Zeichner
Beiträge: 141 Registriert: 11.11.2010 AutoCAD 2002, 2005, 2008, 09, 10, 11
|
erstellt am: 04. Mai. 2011 14:48 <-- editieren / zitieren --> Unities abgeben:
Hi!!! kleine Funktionsrichtigstellung bitte. Ich komm nicht drauf -.- Damit habe ich wieder den letzten auswahlsatz zum verschieben: (defun C:a()(setq sset (ssget "_P"))(if sset(progn(sssetfirst sset sset)(command "_move")))) wie kann ich nun die (entget) Attribute anzeigen bzw. auslesen lassen? Habs schon auf verschiedene weisen versucht ich komm einfach nicht drauf -.-
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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: 04. Mai. 2011 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für chris888
|
chris888 Mitglied Technischer Zeichner
Beiträge: 141 Registriert: 11.11.2010 AutoCAD 2002, 2005, 2008, 09, 10, 11
|
erstellt am: 04. Mai. 2011 15:02 <-- editieren / zitieren --> Unities abgeben:
sorry mein fehler. habe mich falsch ausgedrückt weiß leider nicht die genaue bezeichnung -.- Ich will die Gruppencodes des ausgewählten objektes auslesen. geht warscheinlich nur wenn es ein einziges objekt ist und keine gesammte auswahl. das würde ich dann aber schon ab-(IFfen)^^ und nur dann funktionieren wenn auch die vorraussetzungen erfüllt werden. hoffe jetzt is verständlicher... mfg chris [Diese Nachricht wurde von chris888 am 04. Mai. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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: 04. Mai. 2011 15:47 <-- editieren / zitieren --> Unities abgeben: Nur für chris888
Hallo Chris, aaaalso, fangen wir von vorne an: die Objektnamen der Elemente eines Auswahlsatzes bekommst Du mit (SSNAME [Auswahlsatz] [Nummer des Elements]. Ist die Nummer größer als die Anzahl der Objekte wird NIL zurück gegeben. Einen Auswahlsatz kannst Du also so abarbeiten: Code: (setq ss (ssget) z -1) (while (setq ele (ssname ss (setq z (1+ z)))) [MACH WAS] )
hat ein INSERT Attribute, steht im GC 66 eine 1. Um Sicherzustellen, dass nur Inserts mit Attributen gewählt werden, solltest Du also ssget mit Filter anwenden:Code: (setq ss (ssget '((0 . "INSERT") (66 . 1))) z -1);nur Blöcke mit Attributen wählen
Die Attribute ["ATTRIB"] stehen in der Datenbank immer unmittelbar hinter dem INSERT, Du greifst darauf also dann mit ENTNEXT zu, und zwar solange bis ein "SEQEND"-Objekt erreicht ist.Code: (setq ss (ssget '((0 . "INSERT") (66 . 1))) z -1);nur Blöcke mit Attributen wählen (while (setq ele (ssname ss (setq z (1+ z)))) (while (/= "SEQEND" (cdr (assoc 0 (setq att (entget (setq ele (entnext ele))))))) (print att) ) )
Ich würde Dir aber dringend empfehlen, Dich erst mal etwas mit Lisp zu beschäftigen, bevor Du Dich an Attribute machst:TUTORIAL
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 |
chris888 Mitglied Technischer Zeichner
Beiträge: 141 Registriert: 11.11.2010 AutoCAD 2002, 2005, 2008, 09, 10, 11
|
erstellt am: 04. Mai. 2011 17:08 <-- editieren / zitieren --> Unities abgeben:
nochmal ich will keine (Block)attribute auslesen. ich sagt doch schon: tut mir leid für die missverständliche ausdrucksweise... Trotzdem danke das du versucht hast mir zu erklären wie der befehl aufgebaut ist. oder umgeschrieben werden könnte. Irgendwann wird mir dieser Beitrag sicher behilflich sein. aber momentan verfolge ich ein anderes Ziel. Ich habs aber schon hinbekommen dank deiner erklärung. (defun C:g()(setq sset (ssget "_P"))(setq gg(cdr(assoc 10(entget(ssname sset 0)))))(command "_move" "v" "" gg)) auswertung eines Auswahlsatztes... DANKE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |