| |
| 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: block in Zeichnung beim öffnen autom. einfügen (606 mal gelesen)
|
schachtelmacher Mitglied Verpackungsmittelmechaniker, Entwicklung
Beiträge: 86 Registriert: 07.01.2004
|
erstellt am: 29. Jan. 2004 08:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe folgende Frage: wie kann ich beim Öffnen einer vorhandenen Datei - einen Block sofort, unmerklich, ganz automatisch - in den jeden vorhandenen Papierbereich einfügen - mit der Abfrage vorher, ob der Block auf allen Papierbereichen vorhanden ist . Wenn ja nicht einfügen und wenn nein überall da einfügen wo er fehlt? - danach sichern. Hintergrund der Sache ist: Ich möchte einen Block mit RText-Elementen in ein Arbeitsblatt im Papierbereich einfügen. Diesen Block brauche ich um z.B. wer das Dokument ausdruckt und wann festzuhalten. Das war bisher nicht nötig. Jetzt brauche ich es, auch bei alten Dokumenten. Manuell möchte ich das nicht machen, da man dies ja vergessen könnte. Noch was: Der Block und der Einfügepunkt ist immer gleich Gruss Ralf
------------------ "Es gibt keine Probleme, sondern nur Lösungen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 29. Jan. 2004 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für schachtelmacher
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 29. Jan. 2004 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für schachtelmacher
Hi, ganz einfach. Du mußt erst einmal diverse Funktionen schreiben. # eine die für jedes Dokument die Layouts ermitteln kann # eine die den entsprechenden Block finden kann # eine die den entsprechenden Block einfügen kann und abschließend: # eine die all' diese Funktionen sinnvoll miteinander kombiniert Dann brauchst Du diese Funktion nur nch in die S::STARTUP von AutoCAD einbauen (am besten in die Acaddoc.lsp) und dann sollte das gehen. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Jan. 2004 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für schachtelmacher
Hallo Ralf, du schreibst dir eine Lisp, die deine Layouts nach einem bestimmten Block durchsucht, und wenn dieser gefunden wird dann auch durch den neuen ersetzt. Allerdings, musst du beachten, dass, sofern der Block auch Attribute enthält, die Werte dann von Alt nach Neu übertragen werden. Diese Lisp packst du mit in die Startgruppe. Anderer Vorschlag: Erfahrungsgemäß handelt es sich bei diesen Eintragungen meist um Schriftköpfe. Wenn diesem Block wirklich nur Textelemente (RText) hinzugefügt wurden, also an den Attributen nichts weiter geändert wurde, dann erstelle auch wieder eine LISP in der brauch dann folgendes stehen: ;Test ist der Blockname, den du dann ersetzen musst, natürlich auch den Pfad (if (tblsearch "BLOCK" "TEST") (progn (command "_.insert" "test=c:\\adt_r2\\test.dwg" '(0 0 0)"" "" "") (entdel(entlast)) ) ) Somit werden die Blockdefinitionen aktualisiert. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schachtelmacher Mitglied Verpackungsmittelmechaniker, Entwicklung
Beiträge: 86 Registriert: 07.01.2004
|
erstellt am: 29. Jan. 2004 09:29 <-- editieren / zitieren --> Unities abgeben:
Hi, soweit sogut. Ihr habt mir schon mal weitergeholfen. Aber noch eine Frage: Wie schreibe ich mir eine Schleife, die mir in jeden vorhandenen Papierbereiche diesen Block einfügt. Muss ich auf jeden Papierbereich wechseln, oder kann ich den Block unmerklich in den P-Bereich einfügen? Ich starte meine Zeichnungen immer im Modellbereich. und wie kann ich sichern, ohne nachfrage, da ich ja überschreiben will. Gruss Ralf P.S. Eure schnelle Hilfe finde ich Klasse Allerdings kann es jetzt wieder ein bisschen dauern, bis ich mich melde, denn ich muss noch haufenweise Konstruktionen zaubern. ------------------ "Es gibt keine Probleme, sondern nur Lösungen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Jan. 2004 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für schachtelmacher
|
schachtelmacher Mitglied Verpackungsmittelmechaniker, Entwicklung
Beiträge: 86 Registriert: 07.01.2004
|
erstellt am: 29. Jan. 2004 10:16 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 29. Jan. 2004 10:23 <-- editieren / zitieren --> Unities abgeben: Nur für schachtelmacher
Hallo Frank, dann nimm doch diese Zeilen (if (tblsearch "BLOCK" "TEST") (progn (command "_.insert" "test=c:\\adt_r2\\test.dwg" '(0 0 0)"" "" "") (entdel(entlast)) ) ) , dann passiert der Austausch unmerklich, da nur die Blockdefinition aktualisiert wird. Somit brauchst du nicht die Layouts nach diesem Block abgrasen und einfügen. Ist (in meinen Augen) das Einfachste. Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schachtelmacher Mitglied Verpackungsmittelmechaniker, Entwicklung
Beiträge: 86 Registriert: 07.01.2004
|
erstellt am: 03. Feb. 2004 07:36 <-- editieren / zitieren --> Unities abgeben:
Hi Leute, bin bis heute noch nicht dazugekommen mit diesem Problem weiter zu basteln. @ Holger geht das auch, wenn der Block noch nicht vorhanden ist? Eventuell mit (or (if ....)nil)-Anweisung Er kann auch ausgetauscht werden, wenn er vorhanden ist, da nur ein Dieselausdruck eingefügt wird plus Text davor. und noch was: Ich habe es bis jetzt noch nicht geschafft, den Block anständig einzufügen. Das Problem ist, dass zwar der Einfügepunkt 0,0,0 ist aber der Block auf ca. -99999.99,-99999.99,0 sitzt, obwohl der Text in der .dwg auf 0,0,0 ist. Liegt das am Dieselausdruck? ($(getenv,username),$(edtime, 0, DD"."mo"."YYYY - HH:MM)) Ich habe das Einfügen mit einem anderen Block ausprobiert, und das hat funktioniert. Gruss Ralf
------------------ "Es gibt keine Probleme, sondern nur Lösungen" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 03. Feb. 2004 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für schachtelmacher
Hallo Ralf, den Unterschied vom Einfügepunkt und der tatsächlichen Lage kann ich mir nicht erklären. Evtl. ist der Block in der Zeichnung(Blockzeichnung) eben so weit vom Nullpunkt entfernt. Das kannst du mal prüfen. Immer eingefügt wird der Block wenn du diese Zeilen nimmst:
Code:
(if (tblsearch "BLOCK" "TEST") (progn (command "_.insert" "test=c:\\adt_r2\\test.dwg" '(0 0 0)"" "" "") (entdel(entlast)) ) (progn (command "_.insert" "c:\\adt_r2\\test.dwg" '(0 0 0)"" "" "") (entdel(entlast)) ) )
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |