| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: (dxf 5) Handle ändern wg. Attout/Attin (1184 mal gelesen)
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jun. 2003 10:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde... Habe mir folgende Aufgabe gestellt und komme nicht weiter... ( genauer: selbst der Anfang fehlt ) Es geht um die Nutzung der ET-Befehle Attin/Attout die sich am Handle (dxf 5) orientieren - mein Problem, welches wohl auch andere haben ist: Die Blockreferenz (Stempel) die ich aussauge hat in mehreren Plänen das gleiche Handle ! - Die einzige Möglichkeit die ich kenne den Namen/Wert zu ändern ist das Objekt neu einzufügen (zB copyclip / pasteclip) ,dumm ist dabei das ACAD immer nach dem gleichen Schema den Wert vergibt- wenn ich also in allen betroffenen Dateien den Block 1x neu einfüge so hat sich der Wert zwar geändert, aber immer auf den (wieder) gleichen Wert, bringt mir also nichts. ;;;zum besseren Verständnis: habe eine Datei (Plot-Layout) 30x kopiert (30 Etagen) - nun hat die Blockreferenz "Stempel" welche 1x im Plan vorhanden ist, in jeder der 30 Dateien das gleiche Handle. Wenn ich mir mit attout eine Datei erstelle, die mir die Attributwerte der Bl.Referenz Stempel aus allen Dateien liefert, kann ich die Werte nicht zurückschreiben lassen wegen dem genannten Problem ! F R A G E :
welche Möglichkeiten gibt es das Händle eines Objektes zu ändern und 2. -welche Ideen könnt ihr mir mit auf den Weg geben ? es sollte halt möglichst was universelles sein, da diese Problematik immer wieder vorkommt... Hoffend auf Antwort: Sebastian Mattis cadffm ------------------ Gruß Sebastian , Ffm Der Feind des Guten ist das Bessere. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 05. Jun. 2003 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für cadffm
Hai Ich denke Dein Vorhaben wird sich so nicht ändern lassen, Da du meines Wissens NICHT den GC 5 ändern kannst. Du bist doch mit sicherheit viel schneller Fertig, wenn du dir ein eigense attout/attin prog schreibst. Das kannst du dann ja genau auf Deine Bedürfnisse zurechtschnitzen. Zu dieser Geschichte gibt's ja auch einiges an Bausteinen im Netz :-) ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jun. 2003 14:20 <-- editieren / zitieren --> Unities abgeben:
Hi Martin, was du mir alles zutrauen tust .... (kopfschüttel) -aber evtl kann ich ja "ein bestehendes Programm" umschreiben, welches dann nach meinen Wünschen läuft ! Dafür benötige ich aber noch eine Aussage !!!
In (m)einem Buch steht geschrieben: "Während sich Entity-Namen von ACAD-Sitzung zu ACAD-Sitzung ändern können, bleiben die Referenzbezeichnungen immer dieselben" Mir ist bisher noch nicht aufgefallen das der gc -1 sich ändert - wann also ändert er sich - oder ist es einfach Bullshit was in dem Buch steht ? --------------------------------------------------------------- Hatte nun daran gedacht das ganze an gc -1 zu orientieren, der variiert mehr... geändert: gc 0 in gc -1 ------------------ Gruß Sebastian , Ffm Der Feind des Guten ist das Bessere. [Diese Nachricht wurde von cadffm am 05. Juni 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 05. Jun. 2003 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für cadffm
Hi Sebastian, ich verstehe dein Problem nicht ganz - der Handle ist doch extra dafür eingeführt worden, damit Eindeutigkeit herrscht. Es gibt jeden Handle in jeder Zeichnung nur einmal, und wenn du ein Entity löschst, bleibt der Handle trotzdem belegt - er wird nicht wiederverwendet. Wenn du mit Attout rausschreibst, hast du doch eine eindeutige Zuordnung: E4BDDF aus Z. 1 ist was anderes als E4BDDF aus Z. 2 usw., und bei Attin darfst du ja die Textdateien auch nicht verwechseln. Wenn du die Daten aus den Einzelzeichnungen parallel verarbeiten willst, kannst du im externen Programm ja 1-E4BDDF, 2-E4BDDF usw. draus machen und die Zeichnungsnummer vor dem attin wieder abtrennen. Das ist doch das Selbe wie die Ortsvorwahl beim Telefon. Die Handles kann man jedenfalls nicht ändern, und das ist gut so. Und mit den Enamen, das solltest du ganz schnell vergessen. Das sind letztendlich bloss benannte Speicherstellen. Und es ist auch mit Bedacht so eingerichtet, dass man auch da nicht manipulieren kann: Alles in Lisp, was in der Form <...: ...> erscheint, ist manipulationsgeschützt. Wesentlich dabei ist die Leerstelle nach dem Doppelpunkt - die macht ein read usw. unmöglich. Also auch da nix zu holen, und selbst wenn das gelänge, dann hättest du den POKE-Befehl vom C64 nach Acad portiert.
Also: Über Datenstrukturen und Benennungskonventionen nachdenken - die Mittel in AuoCAD reichen aus. Gruss, Axel ------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Meine Überzeugung... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 05. Jun. 2003 16:46 <-- editieren / zitieren --> Unities abgeben:
Danke Axel, werde darüber nachdenken . Hier mal eine Übersicht über mein bisheriges Vorgehen: 1.) per script attout über 30 Dateien laufen lassen. ---> nun habe ich 30 txt-Dateien mit je einem Datensatz (weil ich attout nur auf einen bestimmten Block pro Datei anwende) 2.) nun die Dateien zusammenführen zu einer: copy *.txt c:\gesamt.txt ---> jetzt habe ich eine Datei mit allen Datensätzen. 3.) Attributwerte ändern --->Sinn dieser Prozedur 4.) via Script die Attributwerte zurück in Datei schreiben ---break-----
Hier habe ich nun das Problem- attin wertet jede Zeile mit dem richtigen Handle aus- Da der Block in Ebene (zB. 01-30 das gleiche Handle hat werden also zuerst der 1. Datensatz in die Datei zurückgeschrieben, dann wird der 1.DS mit dem 2.Datensatz überschrieben (gleiches Handle). Nun überschreibt man dies mit dem 3. usw usw. Also steht später überall der gleich DS drin, nämlich der Letzte in der "attout" Datei. werde mir Gedanken machen - danke an alle, (P.S.: wird etwas dauern)
------------------ Gruß Sebastian , Ffm Der Feind des Guten ist das Bessere. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 05. Jun. 2003 17:21 <-- editieren / zitieren --> Unities abgeben: Nur für cadffm
sach mal - wie oft gibt's denn den zu ändernden Block in der Zeichnung? und soll denn in den Attributen aller gleichnamigen Blöcken das gleiche rein? Wenn es 'nur' um globales Ausfüllen von Att in Blöcken geht, mach das doch mit entmod Such über 'nen ssget AWS alle betreffenden Blöcke raus, geh mit entnext in die Teile Rein, und ersetze Die Attributwerte durch gen neuen Wert. Du kannst ja vorher 'ne ascii-datei erstellen, worin die Attributnamen mit den neuen Werten stehen. Die liest du per Read-line ein und vergleichst die Attribute mit bspw. wcmatch. Bei übereinstimmung wird's Alte durch's Neue ersetzt. Vergiss entmod am ende nicht.
------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 06. Jun. 2003 07:33 <-- editieren / zitieren --> Unities abgeben:
hey Wiesel, da sind ein paar Schlagwörter drin mit denen ich arbeiten kann ! - Pro Datei wird nur ein Block "gesaugt" - der Name ist Stempel und soll hierbei der Schriftkopf sein... Ich meld mich die Tage wieder... ------------------ Gruß Sebastian , Ffm Der Feind des Guten ist das Bessere. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|