| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Attribut durchnummerieren. (1272 mal gelesen)
|
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 30. Mai. 2005 16:58 <-- editieren / zitieren --> Unities abgeben:
Hallo CAD'ler, gibt es schon mal so ein Lisp, mit dem man die Attributen wahlweise benennen / umbenennen kann. Angenommen ich habe 2 Attributen: 1. Gebiet / 03 2. Hausnummer / 152 Gebiet ändert sich nicht, zumindest selten, also ich brauche nur Attribut Nr.2 beschreiben. Kann man in diesen Fall die Anfangswert für Attribut 2 setzen, und danach aufsteigend durchnummerieren, durch z.B. Auswählen von Blöcken. Ich kenne so ein Lisp der funktioniert mit dem Text, aber nicht mit Attributen. Danke. Gruß.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 30. Mai. 2005 18:00 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
|
Bernhard GSD Mitglied
Beiträge: 505 Registriert: 29.08.2002 AutoCAD 2025(Deu); Revit 2025(Deu); Windows 11 PRO x64(Deu)
|
erstellt am: 31. Mai. 2005 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Das folgende kleine Lisp ermöglicht ein aufsteigendes Numerieren von Attributen, die durch anklicken zu wählen sind. Zweite Variante absteigend... (DEFUN C:ATT+ () (SETQ wert (GETINT "Startwert: ")) (SETQ attribut T) (WHILE attribut (SETQ attribut (NENTSEL)) (IF attribut (PROGN (SETQ text (ITOA wert)) (COMMAND "_-attedit" "_Y" "*" "*" "*" attribut "_value" "_replace" text "_Next") (SETQ wert (1+ wert)))) ) ) (DEFUN C:ATT- () (SETQ wert (GETINT "Startwert: ")) (SETQ attribut T) (WHILE attribut (SETQ attribut (NENTSEL)) (IF attribut (PROGN (SETQ text (ITOA wert)) (COMMAND "_-attedit" "_Y" "*" "*" "*" attribut "_value" "_replace" text "_Next") (SETQ wert (1- wert)))) ) )
------------------ Gruß aus Wien Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 31. Mai. 2005 11:42 <-- editieren / zitieren --> Unities abgeben:
|
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 31. Mai. 2005 11:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernhard, tolle Sache Nur sehe ich da 2 Sachen, die die volle Funktionalität, für meine Zwecke, nicht nicht ausnutzen. 1. Beispiel: Erste Attriebut: Startwert: AX-100 < Erfordert einen ganzzahligen Wert > Also akzeptiert nur Zahlen, wenn ich das richtig verstehe. In diesen Fall brauche ich die Buchstaben auch 2. Wenn ich angenommen "001" eintippe - schreibt er nur "1". Aber sonst klappt es alles. Danke dir [Diese Nachricht wurde von AutoCAD-Nutzer am 31. Mai. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 31. Mai. 2005 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Hallo AutoCAD-Nutzer, ich habe Bernhards lisp mal etwas modifiziert, so dass jetzt auch ein Vortext (z. B: AX-) genommen und die nachfolgende Zahl dreistellig mit Vornullen geschrieben wird. Weiteres kannst Du Dir ja dann noch anpassen. (DEFUN C:ATT () (setq vortext (getstring "Vortext: ")) (SETQ wert (GETINT "Startwert: ")) (SETQ attribut T) (WHILE attribut (SETQ attribut (NENTSEL)) (IF attribut (PROGN (setq werttext (strcat "000" (itoa wert))) (setq werttext (substr werttext (- (strlen werttext) 2))) (SETQ text (strcat vortext werttext)) (COMMAND "_-attedit" "_Y" "*" "*" "*" attribut "_value" "_replace" text "_Next") (SETQ wert (1+ wert)))) ) ) Viele Grüße spider Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AutoCAD-Nutzer Mitglied 1
Beiträge: 89 Registriert: 26.03.2004
|
erstellt am: 31. Mai. 2005 13:58 <-- editieren / zitieren --> Unities abgeben:
|
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 29. Jan. 2009 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Ich weiss, das Thmea ist asbach, aber irgendwie krieg ich obiges Lisp nicht zum laufen. Ich erhalte diese Fehlermeldungen: Code: Befehl: att+ Startwert: 2 Objekt wählen: _-attedit Attribute einzeln editieren? [Ja/Nein] <J>: _Y Blocknamenspezifikation eingeben <*>: * Spezifikation für Attributbezeichnung eingeben <*>: * Spezifikation für Attributwert eingeben <*>: * Attribute wählen: Befehl: _value Unbekannter Befehl "VALUE". Drücken Sie F1-Taste für Hilfe. Befehl: _replace Unbekannter Befehl "REPLACE". Drücken Sie F1-Taste für Hilfe. Befehl: 2 Unbekannter Befehl "2". Drücken Sie F1-Taste für Hilfe. Befehl: _Next Unbekannter Befehl "NEXT". Drücken Sie F1-Taste für Hilfe. Befehl:
Weiss jemand was ich tun muss?------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. [Diese Nachricht wurde von CADuceus am 29. Jan. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 Sie nannten ihn google.
|
erstellt am: 29. Jan. 2009 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Klickst du bei der Auswahl ein Attribut an? Ausserdem fehlt in deiner Auflistung eine Textzeile - oder kommt die bei dir nicht vor?
Code:
Command: att Vortext: Meins Startwert: 1Select object: _-attedit Edit attributes one at a time? [Yes/No] <Y>: _Y Enter block name specification <*>: * Enter attribute tag specification <*>: * Enter attribute value specification <*>: * Select Attributes: 1 found 1 attributes selected. Enter an option [Value/Position/Height/Angle/Style/Layer/Color/Next] <N>: _value Enter type of value modification [Change/Replace] <R>: _replace Enter new attribute value: Meins001 Enter an option [Value/Position/Height/Angle/Style/Layer/Color/Next] <N>: _Next Command:
------------------ Grüsse Thomas Korrekturen zum Kochbuch AutoLISP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 29. Jan. 2009 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Zitat: Original erstellt von tunnelbauer: Klickst du bei der Auswahl ein Attribut an?[...]
Ähm, nein. Ich klicke einen Block an der ein einziges Attribut enthält. Geht das nicht? Zitat: Original erstellt von AutoCAD-Nutzer: Hallo CAD'ler, [...] Kann man in diesen Fall die Anfangswert für Attribut 2 setzen, und danach aufsteigend durchnummerieren, durch z.B. Auswählen von Blöcken. [...] Danke.Gruß.
Ein referenziertes Attribut lässt sich doch nicht auswählen ohne dass der ganze Block gewählt wird?! (Auf die Version mit den Vortext habe ich einfachheitshalber verzichtet, deshalb "fehlt" eine Zeile.) ------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. [Diese Nachricht wurde von CADuceus am 29. Jan. 2009 editiert.] [Diese Nachricht wurde von CADuceus am 29. Jan. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 29. Jan. 2009 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Zitat: Original erstellt von CADuceus: Ähm, nein. Ich klicke einen Block an der ein einziges Attribut enthält. Geht das nicht?
Nein .. jedenfalls nicht mit dem Code ..
------------------ - 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 |
CADuceus Mitglied LWL-Netzplaner GIS
Beiträge: 359 Registriert: 20.01.2005 LWL Netzplanung AutoCAD Map 3D 2020 Win10 64bit / Chrome Intel® Core™ i7-4770K 3.50GHz / 32GB NVidia Quadro P400 HP DesignJet T795
|
erstellt am: 29. Jan. 2009 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
Du hast zu schnell geantwortet. Ich habe meinen vorherigen Beitrag extra nochmal editiert um zu zitieren, dass auch meine "Vorschreiber" sich auf das Auswählen von Blöcken bezieht. Item: Kennt denn jemand ein entsprechendes Lisp? (Das, welches die Blöcke beim einfügen hochzählt kenn' ich schon, doch die Blöcke sind schon bestehend.) ------------------ Du kannst in anderen nur entzünden, was in Dir selber brennt! Wollte noch ein File anhängen, aber habe die Kiste schon heruntergefahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 29. Jan. 2009 13:29 <-- editieren / zitieren --> Unities abgeben: Nur für AutoCAD-Nutzer
nentsel wählt das angeklickte Unterobjekt bei komplexen Objekten .. hier also das Attribut .. wollst du die Blockreferenz wählen, mußt du entsel nehmen und die via entnext zum Attribut durchhangeln.. beispielcode für ähnliche Aufgabenstellungen sollten im Forum zu finden sein, d.h. JA, ich kenne solche Lisps. ------------------ - 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 |