| |
| 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 – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: _amvars mit externer xls (800 mal gelesen)
|
schnurlos Mitglied
Beiträge: 116 Registriert: 07.04.2002 HP Workstation, Win10Pro, 128 GB RAM, Nvidia Quadro P5000, IV2018
|
erstellt am: 21. Feb. 2006 15:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe ein Problem. Ich habe einen Satz dwg, die alle mit dem gleichen (global) xls-File verknüpft sind. Diese möchte ich jetzt alle (automatisch natürlich) mit einem anderen xls verknüpfen, akualisieren, .... Ich hab aber das Problem das nach '(command "_amvars"' ich nicht auf die globalen Variablen komme. Auch umschalten von filedia bringt in diesem Fall nichts. Gibt es eine Möglichkeit, oder kanns Lisp nicht und VBA schon? PS: ich arbeite (bisher) nur in Lisp. ------------------ mfg schnurlos Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 21. Feb. 2006 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für schnurlos
keine Ahnung, was du vorhast, aber gib mal (command "_-amvars") ein. P.S. Das ist MDT-Funktionalität und alles was über "commands" geht, ist nicht unbedingt mit Lisp oder VBA zu erschlagen.. ------------------ - Thomas - "Du bist einen uns unbekannten Weg in eine andere Form des Seins gegangen. - Wir sehen uns wieder in deinem Paradies! - Tschüß Axel.." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schnurlos Mitglied
Beiträge: 116 Registriert: 07.04.2002
|
erstellt am: 21. Feb. 2006 15:29 <-- editieren / zitieren --> Unities abgeben:
|
schnurlos Mitglied
Beiträge: 116 Registriert: 07.04.2002 HP Workstation, Win10Pro, 128 GB RAM, Nvidia Quadro P5000, IV2018
|
erstellt am: 11. Sep. 2006 15:13 <-- editieren / zitieren --> Unities abgeben:
So, jetzt wärme ich mal den alten Thread wieder auf Ist es möglich, so etwas zu programmieren (einen Satz von dwg mit der gleichen xls zu verlinken bzw. den Link auf diese xls zu aktualisieren, die dwg danach zu aktualisieren, die geänderte dwg danach speichern)? Mit VBA? Mit lisp gehts ja nicht ... Hat vielleicht jemand so etwas in der Schublade? ------------------ mfg schnurlos Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter Mitglied Ing
Beiträge: 1 Registriert: 23.10.2000
|
erstellt am: 11. Sep. 2006 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für schnurlos
Hallo schnurlos, Zitat: Original erstellt von schnurlos: So, jetzt wärme ich mal den alten Thread wieder auf Ist es möglich, so etwas zu programmieren (einen Satz von dwg mit der gleichen xls zu verlinken bzw. den Link auf diese xls zu aktualisieren, die dwg danach zu aktualisieren, die geänderte dwg danach speichern)? Mit VBA? Mit lisp gehts ja nicht ... Hat vielleicht jemand so etwas in der Schublade?
schau mal hier das VBA ChangeLinkedFile Re-link Utility an. Das kann die xls für eine dwg mit Dialogbox tauschen. Satzweise mußt Du Hand anlegen. Gruß Peter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Sep. 2006 15:58 <-- editieren / zitieren --> Unities abgeben: Nur für schnurlos
(if(and(setq DICT(cdr (assoc 350(member '(3 . "MDT_EXT_FILES")(entget (namedobjdict)))))) (setq DICT(entget DICT)) (setq DICT(cdr (assoc 350 DICT))) (setq XLS(entget DICT)) (setq XLS(cdr(assoc 1 XLS))) ) XLS ) so sollte man rankommen ... was in VBA machbar ist, kann man sicher auch in Lisp umsetzen und dann auch ohne Dialog und in ein Script für mehrere DWGs integriert. Thx an Peter!
------------------ - 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 |
schnurlos Mitglied
Beiträge: 116 Registriert: 07.04.2002
|
erstellt am: 11. Sep. 2006 16:25 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal, werde sehen was ich damit anfange kann! So, wenn ich jetzt die Variable XLS habe (alter Name der xls) und die Variable XLS_NEU auf die neue xls zeigt, kann ich das jetzt mit entmod und entupd ändern oder wie soll das gehen (hab Schwierigkeiten damit) ? ------------------ mfg schnurlos [Diese Nachricht wurde von schnurlos am 11. Sep. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schnurlos Mitglied
Beiträge: 116 Registriert: 07.04.2002 HP Workstation, Win10Pro, 128 GB RAM, Nvidia Quadro P5000, IV2018
|
erstellt am: 12. Sep. 2006 14:39 <-- editieren / zitieren --> Unities abgeben:
Also jetzt hab ich es mit entmod und entupd doch soweit hingekriegt, so daß beim Abspeichern, neu öffnen und erneutem Auslesen die neue xls angezeigt wird, aber im Browser steht immer noch die alte xls. Auch wenn ich mit _amupdate arbeite, ändert sich nichts. Anbei mein Code: (if (and (setq DICT1 (cdr (assoc 350 (member '(3 . "MDT_EXT_FILES")(entget (namedobjdict)))))) (setq DICT2 (entget DICT1)) (setq DICT3 (cdr (assoc 350 DICT2))) (setq XLS1 (entget DICT3)) (setq XLS (cdr (assoc 1 XLS1))) ) XLS ) (setq XLS_ALT XLS) (princ "\nDICT1 vorher: ")(princ DICT1)(princ "\n########################################\n") (princ "\nDICT2 vorher: ")(princ DICT2)(princ "\n########################################\n") (princ "\nDICT3 vorher: ")(princ DICT3)(princ "\n########################################\n") (princ "\nXLS1 vorher : ")(princ XLS1)(princ "\n########################################\n") (princ "\nAlter xls-Name: ")(princ XLS_ALT)(princ "\n########################################\n") (princ "\nNeuer xls-Name: ")(princ XLS_NEU)(princ "\n########################################\n") ;### jetzt xls-Name austauschen (setq XLS1 (subst (cons 1 XLS_NEU)(assoc 1 XLS1) XLS1)) (entmod XLS1) (entupd DICT3) (setq DICT2 (subst (cons 350 DICT3)(assoc 1 DICT2) DICT2)) (entmod DICT2) (entupd DICT1) (if (and (setq DICT1 (cdr (assoc 350 (member '(3 . "MDT_EXT_FILES")(entget (namedobjdict)))))) (setq DICT2 (entget DICT1)) (setq DICT3 (cdr (assoc 350 DICT2))) (setq XLS1 (entget DICT3)) (setq XLS (cdr (assoc 1 XLS1))) ) XLS ) (princ "\nXLS1 nachher : ")(princ XLS1)(princ "\n########################################\n") (princ "\nDICT3 nachher: ")(princ DICT3)(princ "\n########################################\n") (princ "\nDICT2 nachher: ")(princ DICT2)(princ "\n########################################\n") (princ "\nDICT1 nachher: ")(princ DICT1)(princ "\n########################################\n")
------------------ mfg schnurlos Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter Mitglied Ing
Beiträge: 1 Registriert: 23.10.2000
|
erstellt am: 12. Sep. 2006 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für schnurlos
Hallo schnurlos, Zitat: Original erstellt von schnurlos: ..Also jetzt hab ich es mit entmod und entupd doch soweit hingekriegt, so daß beim Abspeichern, neu öffnen und erneutem Auslesen die neue xls angezeigt wird, aber im Browser steht immer noch die alte xls...
schau mit dbview bei MDT_EXT_FILES nach ob der alte Eintrag überschrieben oder ein neuer angelegt wird. Hört sich nach letzterem an. Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schnurlos Mitglied
Beiträge: 116 Registriert: 07.04.2002 HP Workstation, Win10Pro, 128 GB RAM, Nvidia Quadro P5000, IV2018
|
erstellt am: 12. Sep. 2006 15:35 <-- editieren / zitieren --> Unities abgeben:
So, und jetzt für alle, die das gleiche Problem haben: Man nehme den Mausrekorder: http://www.freeware.de/Windows/Tools_Utilities/System/Sonstiges/Detail_Mouse_R ecorder_12274.html Starte die exe, öffne alle Dateien im Desktop, die editiert werden sollen, drücke beim Mausrekorder auf "Record", 3,2,1 beginne mit dem händischen Update (so wie immer), aktualisiert den xls, amupdate, abspeichern, ... Datei schließen, und jetzt die ESC Taste drücken. Damit hat man dem Mausrekorder alle Schritte gezeigt. Jetzt kann man die Anzahl bei "Repeats" umstellen, drückt auf "Play" und geht in die Mittagspause... Hat zwar nichts mit LISP zu tun, hilft aber hoffentlich vielen !!! Danke noch mal an alle für die Mühe !!! ------------------ mfg schnurlos [Diese Nachricht wurde von schnurlos am 12. Sep. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 12. Sep. 2006 21:40 <-- editieren / zitieren --> Unities abgeben: Nur für schnurlos
|