Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Attribut Eingabeaufforderung ändern im Block

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:  Attribut Eingabeaufforderung ändern im Block (2401 mal gelesen)
Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 07. Sep. 2018 09: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

Hallo Forum,

ich habe folgendes Problem: für einen Kunden müssen unsere eingefügten Blöcke ein wenig modifiziert werden. D.h. ich muss den Attributnamen und die Eingabeaufforderung ändern.
Der Attributname lässt sich ja noch leicht finden mit den Bit. Aber welchen Bit hat die Eingabeaufforderung?
((-1 . <Objektname: 1e1603d04c0> ) (0 . "INSERT") (330 . <Objektname: 1e126680750> ) (5 . "2B2C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "Gerät") (100 . "AcDbBlockReference") (66 . 1) (2 . "DAW_HP-Z4") (10 310.0 205.0 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))
_$
Weiß jemand weiter?

Vielen Dank!
Grüße Sven

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: 07. Sep. 2018 10: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 Nur für Big Sven 10 Unities + Antwort hilfreich

Für das Ändern der Eingabeaufforderung mußt du in die Attributdefinition im BLOCK gucken..da ändern und dann ein attsync nachschieben

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

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: 07. Sep. 2018 10:13    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 Big Sven 10 Unities + Antwort hilfreich


180907-1.JPG

 
AutoLisp,
DXF-Code 3 in der entsprechenden Attributdefinition, bei den Blockreferenzen bist du falsch.
Dort wo du auch den Namen der Attributdefinition ändern mußtest (mußtest = >wenns ordentlich werden soll).


VL,
PromptString

___________
Befehl: BLOCK?

Startet...
Enter block name <Return to select>: www

Enter an entity type <Return for all>:

Press ESC to exit or any key to continue.

((0 . "BLOCK") (2 . "www") (70 . 2) (4 . "Blockbeschreibung<hier eintragen>") (10 0.0 0.0 0.0) (-2 . <Objektname: 7ff73ec1d570> ))

((-1 . <Objektname: 7ff73ec1d570> ) (0 . "CIRCLE") (330 . <Objektname: 7ff73ec1d540> ) (5 . "267") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbCircle") (10 0.0 0.0 0.0) (40 . 5.12718) (210 0.0 0.0 1.0))

((-1 . <Objektname: 7ff73ec1d580> ) (0 . "ATTDEF") (330 . <Objektname: 7ff73ec1d540> ) (5 . "268") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbText") (10 -1.77081 -1.09047 0.0) (40 . 2.5) (1 . "V1") (50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "Standard") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbAttributeDefinition") (280 . 0) (3 . "E1") (2 . "A1") (70 . 0) (73 . 0) (74 . 0) (280 . 1))

____

Steinalt, aber zur Veranschauung
http://ww3.cad.de/foren/ubb/Forum145/HTML/000482.shtml

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: 07. Sep. 2018 11:13    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 Big Sven 10 Unities + Antwort hilfreich


ATTNEWPROMPT.zip

 
Anbei mal was zum Testen ...
Kann man auch auf Listen und als Scriptlösung erweitern.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 07. Sep. 2018 12:35    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 und schon einmal vielen Dank für die Hilfe!
Ich bin jetzt mit dem Befehl (tblsearch "BLOCK" HP_Z4") rangegangen. Dort bekomme ich auch die Attributabfrage, allerdings habe ich noch ein wenig Probleme beim zurückschreiben meiner geänderten Einträge.
Das Hauptproblem allerdings ist, dass nun auch die Werte der Attribute überschrieben werden mit dem "ersten" Eintrag...
Gibt's da keine andere Möglichkeit?

Grüße Sven

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: 07. Sep. 2018 12:56    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 Big Sven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Big Sven:

Gibt's da keine andere Möglichkeit?

Grüße Sven


Was passt denn an ATTNEWPROMPT nicht ?

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 07. Sep. 2018 14:01    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,

Dein Programm ist sehr gut, allerdings passiert auch hier das mein ausgewähltes Attribut auf den Vorgabewert gesetzt wird, nachdem ich den Namen geändert habe. Zudem möchte ich nicht jeden Block einzeln auswählen, sondern möchte, dass jeder Block untersucht wird.

Grüße Sven

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: 07. Sep. 2018 14:59    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 Big Sven 10 Unities + Antwort hilfreich

am Textstring des Attributes wird nichts geändert ...
Probier mal nur ein attsync auf dein Attribut ... nicht das da noch mehr im Argen ist ... ne DWG wäre bei sowas nett ...

und das jeder Block untersucht wird, ist natürlich machbbar, war in der Aufgabenstellung jedoch nicht formuliert, du möchtest also unabhängig vom Block jedes Attribut mit einem bestimmten Namen / und / oder Einer bestimmten Eingabeaufforderung zeichnungsweit ändern? Bei dynamischen Blöcken soll es auch funktionieren ?

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 10. Sep. 2018 09:46    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


blkattribname.lsp


S_030201_Quer1.dwg

 
Hallo CADmium,

ich habe jetzt mal eine DWG und meine gebastelte LSP angehängt. Dein Programm funktioniert halt auch zum Teil.
Wir haben sogenannte Geräteblöcke nach dem Kundenstandard. Diese werden bei uns ausgelesen und mit Kabelnummern versehen. Das Problem entsteht bei der Übergabe der Doku an den Kunden hier sollen die Blöcke nicht mehr einheitliche Attributnamen haben, sonder wo jetzt der Gerätename (Attribut DEVISE)steht soll dann DAW stehen. Ich hoffe das ist verständlich.
Mein Problem bei Deinem Programm ist, dass die Eintrage (Attributwert) verändert werden.

Grüße Sven

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: 10. Sep. 2018 13: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 Big Sven 10 Unities + Antwort hilfreich


ATTNEWDEF.zip

 
anbei noch was anderes zum probieren ohne attsync

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 10. Sep. 2018 14:11    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

Ja, das funktioniert jetzt! Was ist denn bei dem Programm anders?

Grüße Sven

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: 10. Sep. 2018 14:19    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 Big Sven 10 Unities + Antwort hilfreich

Kein attsync  .. die Änderungen werden an der Blockdefinition und deren Referenzen vorgenommen ....  kannste auch für verschiedenen Blöcke mit dem gleichen Attribut nehmen und sollte auch bei dynamischen Blöcken funktionieren ...

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 14. Sep. 2018 08:17    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!
Irgendwie bin ich mit meinem Problem noch nicht weiter gekommen! Ich habe immer noch das Problem, wenn ich den Attributnamen und die Eingabeaufforderung geändert habe und diese Einträge mit entmake und entupd zurückschreibe, dann wird mein Attributwert leider auf den Ursprungswert zurückgesetzt und der Eintrag geht verloren!
Kann mir da jemand weiter helfen?

Grüße Sven

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 14. Sep. 2018 09: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

Oder anders gefragt, wie bekomme ich es hin, die Änderungen vorzunehmen ohne Attsync oder entupd?

Grüße Sven

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: 14. Sep. 2018 10:59    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 Big Sven 10 Unities + Antwort hilfreich

Mit separater Änderung in Blockdefinition und allen Referenzen ... wie im von mir geposteten Tool.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 14. Sep. 2018 11: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

Vielleicht stehe ich ein wenig auf dem Schlauch, aber Dein Tool kann ich nicht lese, weil es kompiliert ist oder habe ich da etwas verpasst!?
Grüße Sven

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 18. Sep. 2018 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

Hallo!
Leider bin ich mit meinem Problem immer noch nicht weiter gekommen.
Ich stecke immer noch an der Stelle fest, wo ich die neuen Einträge an das Attribut übergeben habe. Schreibe ich diesen Datensatz mit entmod zurück, dann sehe ich in der DWG keine Veränderung. Erst wenn ich diesen Block in Ursprung setzte oder neu einfüge, dann sehe ich den neuen Attributnamen und die Anfrage.
Ich möchte jedoch gleich in allen eingefügten Blöcken diese Änderungen sehen, ohne das die eingetragenen Werte überschrieben werden, sowie in den Tool von CADmium.
Kann mir jemand weiterhelfen?

Grüße Sven

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: 18. Sep. 2018 15:43    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 Big Sven 10 Unities + Antwort hilfreich

Die Eingabeaufforderung kommt nur von der Attributdefinition (also von dem ATTDEF in deinem BLOCK),

Der Attributname ist Eigenschaft von deinen Attributen (also die bestehenden Attribute deiner Blockreferenzen),
wie auch von der Attributdefinition in deinem Block, welche als Vorlage für Attribute an neuen Blockreferenzen dient.

Möchtest du die Eingabeaufforderung ändern:
BLOCK->ATTDEF->Gruppencode DXF 3

Möchtest du den Attributnamen für Attribute zukünftiger Blockreferenzen ändern,
ändere die Blockdefinition:
BLOCK->ATTDEF->Gruppencode DXF 2

Möchtest du den Attributnamen für Attribute an bestehnden Blockreferenzen ändern,
ändere die Attribute aller gewünschten Blockreferenzen:
INSERT->ATTRIB->Gruppencode DXF 2

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 19. Sep. 2018 07: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 Big Sven 10 Unities + Antwort hilfreich

Hallo Sven,
ich habe mal ein Beispiel gemacht:

In der Variablen BlockName musst Du Deinen Blocknamen eintragen.
In der Liste AttListe wird
- unter "Name" der alte Attributname und dann der neue Attributname eingetragen.
- unter  "Eingabeaufforderung" nur im 2.ten Wert die neue Eingabeaufforderung eingetragen.

Code:

(defun c:test( / ATTLISTE AWS BLOCKNAME N VLA-ATT VLA-ATTDEF)
  (setq BlockName "BATPKT"
        AttListe '(("Name" "Hoehe" "z-Wert")
                  ("Eingabeaufforderung" nil "Geben Sie den z-Wert ein")
                  ))

  (if(setq vla-AttDef (test:vlaAttDef BlockName (cadr(assoc "Name" AttListe))))
    (progn
      ;;;Name in AttDefinition ändern
      (vla-put-TagString vla-AttDef
        (caddr(assoc "Name" AttListe)))
      ;;;Eingabeaufforderung in Definition ändern
      (vla-put-PromptString vla-AttDef
        (caddr(assoc "Eingabeaufforderung" AttListe)))

      ;;;Auswahlsatz mit allen Blöcken in Zeichnung
      (if (setq aws (ssget "_X"
                          (list (cons 0 "INSERT")
                                (cons 2 BlockName)
                                )))
      (progn
        (setq n 0)
        (repeat (sslength aws)
          (if(setq vla-att(test:vlaAtt
                            (vlax-ename->vla-object(ssname aws n))
                            (cadr(assoc "Name" AttListe))))
            ;;:wenn alter AttributName vorhanden in Blockreferenz
            ;;;dann den Attributname ändern
            (vla-put-TagString vla-att (caddr(assoc "Name" AttListe)))
            )         
          (setq n (+ n 1)))
        )
      )
    )
  )

  )

(defun test:vlaAttDef (BlockName Attname / LISTE)
 
  (if (tblsearch "BLOCK" BlockName)
    (vlax-for ITEM
            (vla-item
              (vla-get-blocks
                (vla-get-activedocument
                  (vlax-get-acad-object)))BlockName)
        (if (and(= (vla-get-Objectname ITEM)
                  "AcDbAttributeDefinition")
                (=(strcase(vla-get-TagString ITEM))
                  (strcase Attname)))
          (setq vla-AttDef ITEM))))
  vla-AttDef)


(defun test:vlaAtt (vla-obj Attname / elem list_att)
  (if (=(vla-get-hasattributes vla-obj):vlax-true)
    (cadr(assoc(strcase AttName)
              (mapcar '(lambda(A)
                          (list(strcase(vlax-get A 'TagString))A))
                (vlax-safearray->list
                  (vlax-variant-value
                    (vla-getattributes vla-obj)))))
        )
    )
  )
 
       
     



Starten des Codes mit "test", Ergebnisse auf Plausibilität prüfen, bei mir hat es funktioniert.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Attribute freistellen Youtube

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 19. Sep. 2018 11:19    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 cadffm,

vielen Dank dafür, aber die Einträge in die entsprechenden Gruppencodes zu bekommen ist nicht mein Problem. Das hat bereits geklappt!
Beim Zurückschreiben (z. B. mit Attsync) kam aber immer der ursprünglich festgelegte Wert als Eintrag zurück in alle Blöcke. Also:
BLOCK->ATTDEF->Gruppencode DXF 1
wird übernommen!

Grüße Sven

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 19. Sep. 2018 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

Hallo Jörn,

vielen Dank für Dein Beispiel!   Es funktioniert, wenngleich ich auch noch nicht genau verstehe warum. Mir sind diese VisualLisp Funktionen leider noch nicht alle bekannt, so dass ich mich da nicht ran traue!

Grüße Sven

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: 19. Sep. 2018 12:50    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 Big Sven 10 Unities + Antwort hilfreich

@Sven
Wenn du dem Weg (den Antworten) folgen würdest, so würdest du überhaupt kein Attsync "zu übernehmen" benötigen und die Werte wprden sich nicht ändern.

Ich kann ausschliessen dass du in der Sache unseren Ausführungen gefolgt bist, denn ein anschliessendes UNNÖTIGES Attsync hätte dann keine Attributwert-Änderung zur Folge.

Hier noch mal was du gemacht hast:
Änderung der Blockdefinition inkl. Änderung von Attributdefinitions-Namen.
Anschließend ein Attsync.

Was passiert dabei:
Alte Attribute der Blockreferenzen werden gelöscht und neue Attribute (mit anderen Namen) werden erstellt.
Beim erstellen von Attributen wird der Vorgabewert übernommen(daher die Änderung des Attributwertes).

Umgehen kann man dies, wie oben angesprochen, indem man selbst die Attribute der Blockreferenzen umbenennt.
Also nicht nur die Attdef im Block ändert, sondern auch Gruppencode 2 der ATTRIB an den INSERT Objekte der Zeichnung.

VLisp:
Letztendlich ist es egal ob AutoLisp oder mit VLisp Erweiterung, der Weg ist grundsätzlich gleich.

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 19. Sep. 2018 13: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

Hallo cadffm,

das tut mir leid, aber ich habe die Lösung so nicht gefunden. Ich weiß dass ich kein Attsync nehmen soll, aber was dann? Die Gruppencodes habe ich geändert, aber wir zurückschreiben? Bei meinen Blöcken/Attributen hat sich so nichts getan. Halt nur mit Attsync.
Viellicht brauche ich eine Brille, ich finde die Lösung nicht...

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: 19. Sep. 2018 13:52    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 Big Sven 10 Unities + Antwort hilfreich

Was liefert dir folgende Zeile zurück wenn du auf dein Versuchskaninchen-Attribut klickst:
(setq VERSUCHSKANINCHEN (entget(car(nentsel))))

Was passiert wenn du über BEDIT den Namen (und Eingabeaufforderung) der zugehörigen Attributdefinition änderst
und anschließen das Versuchskaninchen-Attribut wie folgt änderst:
(entmod(subst '(2 . "NEUERNAME")(assoc 2 VERSUCHSKANINCHEN) VERSUCHSKANINCHEN))

Beim einfügen neuer Blockreferenzen sollte nun alles wie gewünscht verlaufen
und unser bereits bestehendes Versuchskaninchen sollte ebenfalls den neuen Attributnamen anzeigen,
mit dem alten/unveränderten Attribwert.

Ist es nicht so?

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 19. Sep. 2018 15: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

Wenn ich über BEDIT die Einträge manuell ändere, dann sind diese auch nicht sichtbar, wenn ich hinterher den Block mit EATTedit anschaue. Nur in der Eingabeaufforderung steht plötzlich nichts mehr. Wenn ich jetzt mit ATTSYNC den Block auswähle sind die geänderten Attributname und Eingabeaufforderung sichtbar, allerdings überschreibt er bei allen eingefügten Blöcken die eingetragenen Werte.
Das Gleiche passiert halt, wenn ich das über mein Programm ablaufen lasse.
Wenn ich dann den Block neu einfüge, dann ist es gleich richtig, allerdings ist im Wert natürlich dann nur der Vorgabewert zu sehen.

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: 19. Sep. 2018 15:51    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 Big Sven 10 Unities + Antwort hilfreich

An welchem Teil meiner Antwort stolperst du? LinkZurAntwortOben


"Wenn ich über BEDIT die Einträge manuell ändere,"
GUT


" dann sind diese auch nicht sichtbar, wenn ich hinterher den Block mit EATTedit anschaue.Nur in der Eingabeaufforderung steht plötzlich nichts mehr."
1. In dem Moment verfügt dein Block über keine Attributdefinition mit gleichem Namen wie dieses Attribut,
also kann auch keine Eingabeaufforderung aus der Blockdefinition ermittelt werden.
2. Der Name des Attributes wurde in dem Moment nicht nicht geändert, also siehst du logischerweise "den alten" Namen.


"Wenn ich jetzt mit ATTSYNC den Block auswähle "
Solltest du das machen? Ich habe dies nicht geschrieben -> LinkZurAntwortOben


" sind die geänderten Attributname und Eingabeaufforderung sichtbar, allerdings überschreibt er bei allen eingefügten Blöcken die eingetragenen Werte."
Das habe ich hier im Detail erklärt -> https://ww3.cad.de/foren/ubb/Forum145/HTML/004621.shtml#000021


"Das Gleiche passiert halt, wenn ich das über mein Programm ablaufen lasse."
Weil du das gleiche machst in deinem Programm, also ist es gut wenn das Ergebnis identisch ist.


"Wenn ich dann den Block neu einfüge, dann ist es gleich richtig, "
Logisch, nach geänderter Blockdefinition werden alle neuen Blockreferenzen mit den
Attributen gemäß der aktuell(geänderten) Blockdefinition erstellt.


" allerdings ist im Wert natürlich dann nur der Vorgabewert zu sehen."
Was ich hier erklärt hatte -> https://ww3.cad.de/foren/ubb/Forum145/HTML/004621.shtml#000021

Dir ist einfach nicht bewußte dass Attribute(hängen an Blockreferenzen) NICHTS mit der Blockdefinition zutun haben.
Dialog wie eattext zeigen die Eingabeaufforderung der aktuellen Attributdefiniton an, WENN eine vorhanden ist mit gleichem Namen.

Bitte gehe doch mal in der (original, nicht verkorksten) DWG meine Antwort durch und berichte!
Hier noch mal der direkte Link um nichts zu verwechseln https://ww3.cad.de/foren/ubb/Forum145/HTML/004621.shtml#000023


Allgemeiner Lesetip
http://ww3.cad.de/foren/ubb/Forum54/HTML/013223.shtml


Ich kann an den Fakten nichts ändern, drauf schlagen würde also nicht helfen, sorry. 


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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 20. Sep. 2018 11:38    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

Was liefert dir folgende Zeile zurück wenn du auf dein Versuchskaninchen-Attribut klickst:
(setq VERSUCHSKANINCHEN (entget(car(nentsel))))

Bevor mein Programm und nachdem mein Programm durchgelaufen ist steht dort halt:
((-1 . <Objektname: 1a838d62ce0> ) (0 . "ATTRIB") (330 . <Objektname: 1a838d62cc0> ) (5 . "2B2E") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "T35") (100 . "AcDbText") (10 310.0 210.0 0.0) (40 . 3.5) (1 . "DAW1") (50 . 0.0) (41 . 0.9) (51 . 0.0) (7 . "ISO-35") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbAttribute") (280 . 0) (2 . "DEVISE") (70 . 0) (73 . 0) (74 . 0) (280 . 0))

Stehen sollte dort aber nach folgenden Zeilen aus meinem Programm:
(setq unter-blk-datenb (subst (cons 2 neutext) (assoc 2 unter-blk-datenb) unter-blk-datenb))
(setq unter-blk-datenb (subst (cons 3 "INTAK") (assoc 3 unter-blk-datenb) unter-blk-datenb))
(entmod unter-blk-datenb)

Dieses hier:
((-1 . <Objektname: 1a81c893c10> ) (0 . "ATTDEF") (330 . <Objektname: 1a838d62c10> ) (5 . "6BB1") (100 . "AcDbEntity") (67 . 0) (8 . "T35") (100 . "AcDbText") (10 0.0 5.0 0.0) (40 . 3.5) (1 . "CPU") (50 . 0.0) (41 . 0.9) (51 . 0.0) (7 . "ISO-35") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbAttributeDefinition") (280 . 0) (3 . "INTAK") (2 . "DAW") (70 . 0) (73 . 0) (74 . 0) (280 . 0))

Allerdings ist hier schon der Fehler, dass im Gruppercode 1 der Vorgabewert drin steht. Diesen möchte ich aber nicht haben, sondern den jetzigen Eintrag behalten!

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 20. Sep. 2018 11:51    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 CADffm,

gernerell denke ich, dass wir aneinander vorbei reden. Ich bin mir schon bewusst, wie sich ein Block verhält und was mit Attributen in bestimmten Fällen passiert oder eben nicht, dafü arbeite ich auch schon zu lange mit AutoCAD.
Allerdings liegt das Programmieren mit Lisp oder VisualLisp leider nicht in meinem täglichen Aufgabengebiet. Da habe ich deutlich Nachholbedarf, auch bei den Begrifflichkeiten. Deshalb hoffe ich ja auf Hilfe bei meinem Problem!
Mein Problem mit dem ATTSYNC (entmod/entupd) ist mir klar, nur wie kann ich es umgehen? Du kannst mir wieder vorwerfen ich lese die Antworten nicht, aber ich sehe leider keine Anwort auf meine Frage!

Vielen Dank!

Grüße Sven

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: 20. Sep. 2018 12:59    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 Big Sven 10 Unities + Antwort hilfreich

Keine Ahnung warum du nicht einfach mal dieser Anleitung folgst:
http://ww3.cad.de/foren/ubb/Forum145/HTML/004621.shtml#000023
ich war&bin in der Hoffnung es würde dann KLICK machen. Hier mal eine (schlechte) Aufnahme wenn ich es machen: http://recordit.co/qY91UahwsT
Den Namen(dxf2) und die Eingabeaufforderung(dxf3) kannst du gerne später mit Lisp machen wie bisher,
es geht in der Anleitung&gif nur darum einmal erfolgreich ein Attribut geändert zu haben.

"gernerell denke ich, dass wir aneinander vorbei reden."
Eigentlich nein.


"Mein Problem mit dem ATTSYNC (entmod/entupd) ist mir klar, nur wie kann ich es umgehen?
Angenommen es wäre dir klar, dann sind dies die Antworten welche du nicht als diese erkennst:

Zitat:
die Änderungen werden an der Blockdefinition und deren Referenzen vorgenommen

Zitat:
Mit separater Änderung in Blockdefinition und allen Referenzen ... wie im von mir geposteten Tool.
Zitat:
...
Der Attributname ist Eigenschaft von deinen Attributen (also die bestehenden Attribute deiner Blockreferenzen),
wie auch von der Attributdefinition in deinem Block, welche als Vorlage für Attribute an neuen Blockreferenzen dient.
...
Möchtest du den Attributnamen für Attribute zukünftiger Blockreferenzen ändern,
ändere die Blockdefinition:
BLOCK->ATTDEF->Gruppencode DXF 2

Möchtest du den Attributnamen für Attribute an bestehnden Blockreferenzen ändern,
ändere die Attribute aller gewünschten Blockreferenzen:
INSERT->ATTRIB->Gruppencode DXF 2


"Du kannst mir wieder vorwerfen ich lese die Antworten nicht, aber ich sehe leider keine Anwort auf meine Frage!"

Mehr Mühe wie bisher möchte ich mir nicht machen. Da keine konkreten Rückfragen zu den jeweiligen Antworten kamen
mu0 man davon ausgehen du hast alles verstanden, denn ansonsten würdest du ja nachfragen und dich auf die konkrete Aussagen beziehen.

Zitat:
Möchtest du die Eingabeaufforderung ändern:
BLOCK->ATTDEF->Gruppencode DXF 3

Möchtest du den Attributnamen für Attribute zukünftiger Blockreferenzen ändern,
ändere die Blockdefinition:
BLOCK->ATTDEF->Gruppencode DXF 2

Möchtest du den Attributnamen für Attribute an bestehnden Blockreferenzen ändern,
ändere die Attribute aller gewünschten Blockreferenzen:
INSERT->ATTRIB->Gruppencode DXF 2



Zitat:
Umgehen kann man dies, wie oben angesprochen, indem man selbst die Attribute der Blockreferenzen umbenennt.
Also nicht nur die Attdef im Block ändert, sondern auch Gruppencode 2 der ATTRIB an den INSERT Objekte der Zeichnung.

Und jetzt frage bitte ganz explizit nach dem Teil den du nicht verstehst, daraus könnte ein Dialog
entstehen der dich zum Ziel bringt, so kann man ganz konkret und GERNE auf genau diesen Punkt eingen.

PS: Wenn noch mal eine Aussage kommt bei der ersichtlich ist du bist nur den halben Weg gegangen
oder aber hast wieder keine konkrete Frage gestellt, bin ich auch raus   - ein oder zwei funktionierende
Programme hast du ja schon und im Forum finden sich sicher noch 5 Stück.

 

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: 20. Sep. 2018 12:59    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 Big Sven 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Big Sven:
Mein Problem mit dem ATTSYNC (entmod/entupd) ist mir klar, nur wie kann ich es umgehen?

... indem du mit deinem Programm an ALLEN Stellen die Änderungen durchführst , also in der Blockdefinition, den Referenzen und Attributen ..

O.T. Wenn das Proggen nicht dein täglich Brot ist ... du auch nicht dazu kommst, dich tiefgründiger da einzuarbeiten ... , also ich kauf meine Brötchen beim Bäcker.

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 21. Sep. 2018 10:19    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 cadffm,

vielen Dank für Deine Geduld, jetzt habe ich tatsächlich meinen Fehler gefunden! Ich bin fehlgeleitet durch die ersten beiden Posts, nur an der Blochdefinition am werkeln gewesen. jetzt habe ich es ein wenig geändert, so dass die Eingabeaufforderung in der Blockdefinition für alle ändere, während ich den Blocknamen im Blockinsert ändere. Habe wohl ein wenig auf dem Schlauch gestanden.
Allerdings taucht ein Problem noch immer auf: Meine Eingabeaufforderung ist immer leer bei den eingefügten Blöcken, nach dem auch der Name geändert ist.
Ich kann ja mal kurz berichten, was ich jetzt mache:
Zuerst bild ich einen Auswahlsatz über alle eingefügten Blöcke.
(setq blk-aws (ssget "X" '((0 . "INSERT"))))

Wenn der richtige Block gefunden ist, dann nehme ich mir den Blocknamen und bilde einen neuen Auswahlsatz um den Blockinsert zu bearbeiten.
(setq blk-aws2 (tblsearch "BLOCK" blkname))

Wenn ich am richtigen Attribut angekommen bin, dann schreibe ich die neue Eingabeaufforderung rein.
(setq unter-blk-datenb (subst (cons 3 "INTAK") (assoc 3 unter-blk-datenb) unter-blk-datenb))

Anschließend schreibe ich es in die Blockdefinition zurück.
(entmod unter-blk-datenb)
(entupd (cdr (assoc -1 unter-blk)))

Jetzt steht überall die richtige Eingabeaufforderung.

Jetzt bearbeite ich noch alle Blöcke des selben Typs und tausche den Attributnamen gegen den neuen Namen aus.
(setq unter-blk (subst (cons 2 neutext) (assoc 2 unter-blk) unter-blk))

Anschließend schreibe ich es auch hier wieder zurück.
(entmod unter-blk)
(entupd (cdr (assoc -1 unter-blk)))

Jetzt ist in jedem Block die EIngabeaufforderung leer! Auch wenn ich das letzte entupd rausnehme oder die Abfolge ändere (also zuerst alle Blockeinserts und dann die Definition) , bleibt das Ergebnis leider gleich. Da habe ich meinen Fehler noch nicht entdeckt. Ich hoffe Du kannst ihn sehen!

Grüße Sven

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: 21. Sep. 2018 10:37    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 Big Sven 10 Unities + Antwort hilfreich

Freut mich wenn du weiter gekommen bist, nur deiner Beschreibung ist noch etwas schwer
zu folgen denn du verwechselst Block mit Blockreferenz und daher ist man unsicher "was sonst noch".


Mit SSGET wählst du NIE Blöcke aus, nur Blockreferenzen=INSERT/attributs
Mit Tblobjname kommst du an die Blockdefinition=BLOCK/attdefs
In deinem Text steht es etwas durcheinander m.M.

"Meine Eingabeaufforderung ist immer leer"
Deine Beschreibung (die Lisp-Ausdrücke) klingen gut, aber die Aussage Eingabeaufforderung=Leer
läßt nur einen einzigen Schluß zu: Deine aktuelle Blockdefinition enthält keine Attributdefinition mit diesem Namen!

Den Acad schaut nach dem Attributname, sucht in der BlockDef nach einem Attdef dieses Namens und falls vorhanden wird gc3 angezeigt, falls dieser leer ist wird gr2 angezeigt. Wenn nichts angezeigt wird, dann
gibt es kein ATTDEF was zu deinem ATTRIB passt.
Dies wäre meine vorsichtige Aussage ohne deine DWG-Daten&Code zu kennen, bitt prüfe GANZ GENAU die Werte des dxf 2 in Attdef und Attrib.

Eine allgemeine Anmerkung habe ich an dieser Stelle noch:
Deine DWG zeigte auch "dynamische Blöcke", auf diesen besonderen Umstand bist du IMHO auch noch nicht
vorbereitet, daher teste bitte zunächst immer nur mit "normalen Blöcken". Denn solange du mit normalen
Blöcken kämpfst brauchst du dich mit dem Thema Struktur dynamischer Blöcke nicht befassen.

Feedback wäre schön.

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 129
Registriert: 14.09.2005

HP Book
Intel Core i7 2,9GHz
32GB RAM
Nvidia Quadro M2200
Windows 10 Pro
AutoCAD 2018

erstellt am: 21. Sep. 2018 14: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

So, jetzt läuft es endlich!
Auch auf die Gefahr hin, dass ich wieder falsche Begriffe benutze, möchte ich die Rückmeldung mit meinen Worten versuchen. Ich habe jetzt folgendes gemacht:
Zuerst habe ich in der Blockdefinition die Gruppencodes 2 und 3 für die Attribute geändert und nur mit entmod zurück geschrieben. Anschließend habe ich die Attribute im Insert/Blöcke nocheinmal auf den richtigen Namen gesetzt und wieder nur mit entmod zurück geschrieben.
Ich hoffe es ist so einigermaßen verständlich, was ich gemacht habe!

Was mir Probleme gemacht hat, war die Frage wie ich verhindern kann, dass meine eingetragenen Attributwerte überschrieben werden, wenn ich den Block mit dem Blockeditor ändere.

Also nochmals vielen Dank!

Grüße Sven

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: 21. Sep. 2018 14:36    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 Big Sven 10 Unities + Antwort hilfreich

Beim ändern der Blockdefinition mit BEDIT wurde kein Attributwert geändert,
das hast du erst mit ATTSYNC erzeugt.

Jetzt aber bist den Weg gegangen der beschrieben wurde, well done. 

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