| |
| 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: Attributswerte übertragen (2674 mal gelesen)
|
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 09:34 <-- editieren / zitieren --> Unities abgeben:
Hab da mal eine Frage: Das folgende, sehr nützliche Tool, kann Attributinhaltswerte von einem Block zum anderen übertragen. Vorraussetzung, die Attributebezeichnungen sind gleich. Nun habe ich im alten Quellblock einige gleiche Attributbezeichnungen.. Im neuen habe ich diese schon eindeutig gemacht, damit es zukünftig keine Probleme mehr gibt. Trotz dessen, kann man das Tool erweitern, dass die nicht eindeutigen Attribute nacheinanderfolgend in die neu definierten Attribute geschrieben werden können? Beispiel (abgesehen von den eindeutigen Attributen): Block alt: BESCHREIBUNG DAT NAME BESCHREIBUNG DAT NAME BESCHREIBUNG DAT NAME Block neu: BESCHREIBUNG-A DAT-A NAME-A BESCHREIBUNG-B DAT-B NAME-A BESCHREIBUNG-C DAT-C NAME-C Hat da jemand eine Idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 09:36 <-- editieren / zitieren --> Unities abgeben:
Hatte den Quelltext vergessen, auf dem ich mir das vorstellen könnte: ;;; *********************************************************************** ;;; * ATT-CLONE dient zum Übertragen von Attributwerten eines Blockes auf * ;;; * beleibige andere Blöcke. * ;;; * Bei identischen "Feldnamen" (also AttributNAMEN) wird der Wert des * ;;; * Quellblocks als Wert des zu klickenden Zielblocks eingetragen. * ;;; * Versuch's mit der dem Original-Zip Archiv beiliegenden * ;;; * "Test-Att-Clone.dwg" * ;;; * * ;;; * Written by Marc Scherer in 2002 * ;;; * * ;;; * Anregungen/Kritik an "marc.scherer@zvo.com" * ;;; * * ;;; * Dieses Programm folgt der "Better than Nothing" Philosophie des * ;;; * Leonid Nemirovsky: (http://home.pacifier.com/~nemi/) * ;;; * Zitat: * ;;; * The AutoLISP programs you are about to check - are NOT shareware * ;;; * or freeware. They are BTN - Better Than Nothing Software. * ;;; * You can freely use them in any way you choose. * ;;; * Just remember one thing....... * ;;; * If they do not perform the way you expect - * ;;; * it is still BETTER THAN NOTHING !!! * ;;; * I wrote those programs for my every day work. * ;;; * Some of them are more useful, some - are SO SO. * ;;; * ... Good Luck ! * ;;; *********************************************************************** ;;; Funktionsaufruf zum Pinselübertragen ;;; Überträgt Attributwerte von einem Quellblock auf beliebig ;;; viele Zielblöcke (defun C:ATT-CLONE (/ ATT-LST CHK OBJ OBJ-DATA) (while (/= (if (setq OBJ (car (entsel "\nBitte Quellblock für Attributwert-Übertragung wählen: " ) ;_ end of entsel ) ;_ end of car ) ;_ end of setq (progn (setq CHK (cdr (assoc 0 (setq OBJ-DATA (entget OBJ))))) (if (/= CHK "INSERT") (princ "\nKein BLOCK-Objekt geklickt, versuch's noch einmal...") ) ;_ end if CHK ) ;_ end of progn (princ "\nNICHTS geklickt, versuch's noch einmal...") ) ;_ end of if "INSERT" ) ;_ end of /= ) ;_ end of while (if OBJ-DATA (progn (if (CHK-ENT OBJ) (progn (setq ATT-LST (ALL-BL-TXT OBJ)) (if (not ATT-LST) (princ "\nQuell-Block enthält keinerlei Attributsdaten... Funktionsende !" ) ;_ end princ (progn (while (setq OBJ (car (entsel "\nBitte Zielblock für Attributwert-Übertragung wählen (R.Klick=Ende): " ) ;_ end of entsel ) ;_ end of car ) ;_ end of setq (if (CHK-ENT OBJ) (progn (if (assoc 66 (entget OBJ)) (progn (foreach ELEM ATT-LST (princ (ED-ATT ELEM OBJ)) ) ;_ end foreach ) ;_ end progn (princ "\nZielblock enthält keine Attribute !") ) ;_ end if ) ;_ end progn (princ "\nObjekt war KEIN Block oder UNGÜLTIG!") ) ;_ end of if ) ;_ end of while ) ;_ end progn ) ;_ end if ) ;_ end progn (princ "\nObjekt war KEIN Block oder UNGÜLTIG!") ) ;_ end of if ) ;_ end of progn ) ;_ end of if (princ) ) ;_ end defun
;;; Funktion checkt, ob Objekt ein regulärer Block oder'n Xref ;;; ist, bzw. ob's überhaupt 'n Insert ist... ;;; Rückgabe: Wenn kein Block, dann nil, ansonsten Ausgabe wie Eingabe (defun CHK-ENT (ENT / ENT-DATA) (if (= (type ent) 'ENAME) (setq ent-data (entget ent)) (setq ent-data (entget (car ent))) ) ;_ end of if (cond ((= (cdr (assoc 0 ENT-DATA)) "INSERT" ) ;_ end = (if (>= (cdr (assoc 70 (tblsearch "BLOCK" (cdr (assoc 2 ENT-DATA)))) ) ;_ end cdr 4 ) ;_ Wenn T dann Xref!!! (progn (princ "\nGeklicktes Objekt war ein XREF. Versuch's noch mal..." ) ;_ end princ (setq ENT NIL) ) ;_ end progn (setq ENT ENT) ) ;_ end if ) (t (princ "\nGeklicktes Objekt war KEIN Block. Versuch's noch mal..." ) ;_ end princ (setq ENT NIL) ) ) ;_ end cond ENT ) ;_ end defun
;;; Funktion tauscht Attributwerte aus. ;;; Zu übergeben ist eine cons List aus ;;; ("ATTBEZEICHNUNG" . "NEUER TEXTWERT") ;;; sowie der Elementname des Blocks, dessen Werte verändert werden sollen (defun ED-ATT (CHANGELST OBJNAME / ATTNAME BACK CHK OBJDATA TXTWRT) (setq ATTNAME (car CHANGELST) TXTWRT (cdr CHANGELST) OBJDATA (entget OBJNAME) ) ;_ end of setq (while (/= (cdr (assoc 0 OBJDATA)) "SEQEND") (setq OBJDATA (entget (entnext (cdr (assoc -1 OBJDATA))))) (if (eq (cdr (assoc 2 OBJDATA)) ATTNAME) (progn (setq OBJDATA (subst (cons 1 TXTWRT) (assoc 1 OBJDATA) OBJDATA)) (entmod OBJDATA) (setq CHK (entupd OBJNAME) OBJDATA (list (cons 0 "SEQEND")) ) ;_ end setq ) ;_ end progn ) ;_ end if ) ;_ end while (if CHK (setq BACK (strcat "\nWert: \"" TXTWRT "\" für: \"" ATTNAME "\" eingesetzt..." ) ;_ end strcat ) ;_ end of setq (setq BACK (strcat "\nFeld: \"" ATTNAME "\" im Zielblock nicht vorhanden...") ) ;_ end of setq ) ;_ end of if BACK ) ;_ end of defun
;;; Funktion durchsucht den Block, der über ename übergeben wird, ;;; nach ATTRIB's und erzeugt 'ne Textliste ;;; Retval: Liste der Texte oder nil (defun ALL-BL-TXT (ENAME / EDATA RETVAL) (setq RETVAL '() ;_ Liste initialiseren EDATA (entget ENAME) ) ;_ end setq (if (assoc 66 EDATA) ;_ GC 66 fehlt, wenn Block keine Attrib's hat (progn (while (/= (cdr (assoc 0 EDATA)) "SEQEND") ;_ Solange die Sequenz nicht endet... (setq EDATA (entget (entnext (cdr (assoc -1 EDATA))))) (if (= (cdr (assoc 0 EDATA)) "ATTRIB") (setq RETVAL (cons (cons (cdr (assoc 2 EDATA)) (cdr (assoc 1 EDATA))) RETVAL ) ;_ end cons ) ;_ end setq ) ;_ end if ) ;_ end while (setq RETVAL (reverse RETVAL)) ) ;_ end progn ) ;_ end if RETVAL ) ;_ end defun
(princ "\n\"ATT-CLONE\"->\"Pinselübertragung\" von Attribut-WERTEN...") (princ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2008 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Hallo Ian, wäre es nicht einfacher, den Block mit neuen, eindeutigen Attributsnamen zu definieren, und die vorhandenen Blöcke über den AutoCAD-Befehl "attsync" zu aktualieren, und dann Marc sein Programm durchlaufen zu lassen??? ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 01. Apr. 2008 10:57 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Zitat: wäre es nicht einfacher, den Block mit neuen, eindeutigen Attributsnamen zu definieren, und die vorhandenen Blöcke über den AutoCAD-Befehl "attsync" zu aktualieren
an dem Problem häng ich auch, weil ja nach der sauberen Definition der Attributsnamen die Referenzen nicht synchron zur Definition sind. Dadurch werden alle Value rausgeschmissen und die alten Attribute mit neuen Attributen ausgetauscht. Was hier angebracht wär ist eine Art Übersetzer BLOCK1->ATT_ALT Werte übertragen auf BLOCK2->ATT_NEU usw. erst dann könnte man den alten Block kübeln und den neuen evt. sogar umbenennen ich habe schon angedacht sowas zu schreiben, bin aber noch nie dazu gekommen lg Wolfgang S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 10:59 <-- editieren / zitieren --> Unities abgeben:
Hmm, habe ich das richtig verstanden? Ich nehme den alten Block und mache die falschen Attribute so wie die des neuen Blocks? Und dann den Block in alle Zeichnungen einfügen wo der alte Block mit den alten Attributen drin ist und dann "attsync" drüber her laufen lassen? Tauscht er dann den Block aus und behält die Werte bei? Danach den neuen Block rein und Marc sein Programm nutzen? Viel zig Zeichnungen ist das ein ganz schöner Workflow der da zu stande kommt... Die Mitarbeiter werden das nicht mitmachen. Es geht darum, ich hab ein alte Schriftfeld als Block mit Attributen in sehr vielen Zeichnungen. Nun hat sich das Schriftfelddesign etwas geändert, die dargestellte Atribute sind jedoch gleich. Marc sein Programm kommt da sehr gelegen: Neuen Schriftfeldblock in die Zeichnung einfügen und Marcs Funktion benutzen. Das war es... Alles sauber, bis auf die Attribute die vor vor Jahren leider nicht als Eindeutig definiert wurden... Die doppelt vorhandenen Attributnamen werden leider nicht übertragen bzw. wieder überschrieben... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 01. Apr. 2008 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Also ist es da nicht einfacher, das neue Schriftrfeld wie das alte zu benennen und zu ersetzen? Einfach via -EINFÜGE alterSchriftfeldblock=C:\irgendwo\NeuerSchriftfeldblock.dwg ersetzen/ aktualisieren? Dabei werden die Attribute gar nicht angefasst. (allerdings sitzen sie dann noch an den voehrigenen Positionen). Zur Positionsanpassung an die nue Blockdefinition ein ATTSYNC oder BATTMAN>synchronisieren ausführen. ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 12:01 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 01. Apr. 2008 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Zitat: Original erstellt von Ian_K: ...Nun hat sich das Schriftfelddesign etwas geändert, die dargestellte Atribute sind jedoch gleich. ...
Zitat: Original erstellt von Ian_K: Das führt leider zu unerwarteten Problem, da die Änderungen im Schriftfeld zu komplex sind.
Was wurde denn jetzt geändert, das Nur das Design oder die Attributsdefinitionen im erheblichen Umfang?
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 12:21 <-- editieren / zitieren --> Unities abgeben:
Ich würde eigentlich ehrlich gesagt gern mit dem Vorschlag von Wolfgang S weitermachen... Das entwickelt sich langsam wieder zu einer Unterhaltung zur Sinnigkeit. Diese Übertragungsmodi könnte man nämlich auch noch in anderen Bereichen einsetzen. Die Funktion mit dem Reinkopieren oder Neueinfügen von geänderten Blöcken kenne ich wohl, kenne jedoch auch deren Probleme und dass das nicht immer klappt und man weiß häufig nie woran das genau liegt - der Normalnutzer sowieso nicht. Eindeutige Funktionalitäten wie der Vorschlag von Wolfgang S in einer separaten Funktion sind da glaub eher für den Mitarbeiter erlernbar. Außerdem sind diese hier angesprochenen Schriftfeldblöcke mit der Jahreszahl belegt. Das neue Schriftfeld müsste somit dem alten Jahr entsprechen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2008 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Hallo Ian, ist denn die Reihenfolge der Attribute immer fest eingehalten?? Dann könnte man nämlich Grundsätzlich sagen: 1. Attribut wird BESCHREIBUNG-A 2. Attribut wird DAT-A 3. Attribut wird NAME-A 4. Attribut wird BESCHREIBUNG-B .... Das in eine Funktion gepackt, die Marc seiner Funktion vorgeschaltet ist. Wenn die Reihenfolge aber nicht immer gleich ist gibt das ein großes Durcheinander. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 13:10 <-- editieren / zitieren --> Unities abgeben:
Jupp! Das kann ich bestätigen. Genauso wie ich es eingangs dargestellt habe. Obwohl ich das Script bei Bedürftigkeit bestimmt noch etwas selbst anpassen können - Namen ändern oder drehen. Bin von Haus aus eigentlich VBA´ler. Mit Lisp hab ich so meine Schwierigkeiten, aber das schöne Script von Marc gibts ja nun schon mal. Eine kleine Erweiterung in der Schleife oder nach der Schleife, wo man die von der Funktion erstellte Liste der Texte mit einigen Variablen erweitern könnte wäre nicht schlecht nach dem Motto: Lies BESCHREIBUNG aus und trage ein bei BESCHREINUNG-A dann weiter Lies BESCHREIBUNG aus und trage ein bei BESCHREINUNG-B etc C und D dann weiter Lies DAT aus und trage ein bei DAT-A dann weiter oder nach dem Reihenfolgenmusster wie Eingangs... oder sogar in einer separten Funktion wiederum auslagern, dann kann man das auch alleinig für was anderem benutzen...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2008 13:29 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Hallo Ian, Du kannst ja mal folgende Funktion ausprobieren: starten mit "attnames" Code:
(defun c:attnames ( / LISTE N OBJ) (setq liste '("BESCHREIBUNG-A" "DAT-A" "NAME-A" "BESCHREIBUNG-B" "DAT-B" "NAME-B" "BESCHREIBUNG-C" "DAT-C" "NAME-C")) (if (setq obj (car(entsel "\nBlock auswählen:"))) (progn (setq n 0) (mapcar '(lambda(A) (if (<= n 6) (entmod(subst (cons 2 (nth n liste))(assoc 2 A)A))) (setq n (+ n 1))) (attnames:liste obj))))) (defun attnames:liste(obj / list_att) (if (and (entnext obj)(=(cdr(assoc 0(entget (entnext obj))))"ATTRIB")) (while (and(setq obj (entnext obj)) (/= "SEQEND" (cdr(assoc 0(entget obj))))) (if (=(cdr(assoc 0(entget obj)))"ATTRIB") (setq list_att (cons (entget obj)list_att))))) (if list_att (reverse list_att) nil))
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 13:55 <-- editieren / zitieren --> Unities abgeben:
Hmmm, ich habe das mal in eigenständigen lsp Datei getestet und da kommt folgendes bei raus: Befehl: attnames Block auswählen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29) Ich kann das leider nicht interpretieren. Wie baut man das denn in Marcs Code ein? Ich vermute mal, hinsichtlich meiner VBA Kenntnisse: setq liste erstellt ein 2dimensionalen Array. Eine Dimension wird mit den ZielAttributen belegt. Dann die Blockwahl als Wenn dann Prüfung N<=6 ? Keine Ahnung Dann werden irgendwann alle Attribute des Blocks einzeln durchgegangen und der zweiten Dimension des Arrays geschrieben. Nur wo werden die in den Zielblock bzw. in den Zielattributen geschrieben und wo ist die Ziel Blockauswahl. Kleine Anmerkung noch. Einige Attribute des Quellblocks sind eindeutig und Konform mit dem Zielblock. Diese Konformen bräuchten hier nicht berücksichtigt werden, da das ja das Script von Marc übernimmt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2008 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
|
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 14:15 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2008 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Hallo Ian, ich glaube wir verstehen uns falsch: Das Programm ändert von einem Block der ausgewählt wird die ersten 6 Attributsnamen, mehr passiert nicht. Wie hast Du das überprüft? Ich habe bei mir einen Testblock genommen, und mit einem Doppelklick den Attributseditor aufgerufen. Die Attributsnamen waren geändert. Wie auch immer, wenn diese Attributsnamen geändert sind könntest Du das Programm von Marc verwenden. Das einbinden in Marc's Routine würde ich erst machen wenn es auch funktioniert. Vielleicht solltest Du es mit VBA probieren, dann kannst Du die VBA-Funktion von LISP aus starten, mit folgenden Zeilen: (vl-vbaload "c:/test/meine_VBA_datei.dvb") (vl-vbarun "meine_VBA_Funktion")
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ian_K Mitglied
Beiträge: 40 Registriert: 22.06.2006
|
erstellt am: 01. Apr. 2008 15:02 <-- editieren / zitieren --> Unities abgeben:
Ich hab es gerade nochmal probiert. Hatte versucht den Block anschließend zu sprengen und dann zu schauen, ob die Parameter geändert sind. Als ich in dessen Koniguration geschaut habe ohne sprengen, da waren die Werte geändert. Die Attribute werden wohl nur im Speicher geändert - ähnlich wie bei JavaScript. Sorry. Nun brauch ich diese Anpassung aber leider nur für die Attribute, die mehr als doppelt vorhanden sind - sprich nicht eindeutig sind. [Diese Nachricht wurde von Ian_K am 01. Apr. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 01. Apr. 2008 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Hallo Ian, da muss ich dann leider passen, das würde den Rahmen der Forenhilfe sprengen, vielleicht hift Dir da ja noch ein anderer weiter. Vielleicht solltest Du Dich ein bisschen mit dem Code beschäftigen, daraus lernen ist das Ziel dieses Forum's. Falls Du Dich in LISP ein bißchen einarbeiten möchstest kann ich Dir das Kochbuch AutoLISP empfehlen. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 01. Apr. 2008 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für Ian_K
Die Idee mit dem << attnames >> Code gefällt mir gut. damit kann man im vorhinein die Att. der Referenzen umstellen und erst danach auf eine neue Blockdef synchronisieren! beginnt von der anderen Richtung (von mir aus gesehen) ist aber sehr reizvoll. lg wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |