Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Layouts auslesen

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:  Layouts auslesen (1330 mal gelesen)
pietro
Mitglied


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

Beiträge: 8
Registriert: 26.12.2002

erstellt am: 29. Jul. 2006 12:44    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 Leute!

Ich hoffe es kann mir jemand einen Gedankenanstoss geben.
Die Situation is folgende: Wir bekommen sehr oft von anderen Firmen DWG Dateien mit vielen Layouts, und da sind immer die Druckerkonfiguration von der jeweiligen Firma gespeichert. Kennt sicher jeder die blöde Fehlermeldung.
Mein Gedanke ist, mir ein Lisp zu schreiben das alle Layouts durchschaut und alle Drucker auf den von mir definierten Drucker wechselt.
Meine Frage ist wie ich an die Daten der Layouts komme, um sie für mich abzuändern.

Vielen Dank im voraus


Peter

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

benwisch
Mitglied
Bautechniker, CAD-Konstrukteur


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

Beiträge: 375
Registriert: 01.02.2001

Autocad 2005-2010
Microstation V8
Photoshop CS4 + Camera Raw
Nikon Capture NX2
Nikon D90

erstellt am: 29. Jul. 2006 14:47    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 pietro 10 Unities + Antwort hilfreich

Zitat:
Meine Frage ist wie ich an die Daten der Layouts komme, um sie für mich abzuändern.

in diesem Fall würde ich Daten mittels ActiveX sammeln

Code:
(vlax-for layout (vla-get-layouts
  (vla-get-activedocument (vlax-get-acad-object))
)
  (setq rl (cons layout rl))
)

Siehe dir die Eigenschaften und Methoden mittels
(vlax-dump-object (car rl)'t);_ hier als Beispiel erstes Layout
an

Greets Rolf

------------------
CADmaro.de

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 29. Jul. 2006 15:16    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 pietro 10 Unities + Antwort hilfreich

Hi

Mittels ActiveX müsste es klappen (Eigenschaft ConfigName ändern):

Code:

;;;----------------------------------------------------
;;; Setzt ConfigName von allen Layouts auf 'newname'
;;;----------------------------------------------------
(defun layouts-put-configname (newname /)
  (vlax-for layout (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
    (vla-put-configname layout newname)
  )
)

Mit folgender Funktion kannst Du Dir die weiteren Eigenschaften/Methoden des aktiven Layouts angucken:

Code:

;;;-----------------------------------------------------
;;; Eigenschaften und Methoden von ActiveLayout anzeigen
;;;-----------------------------------------------------
(defun c:lay-dump (/)
  (vlax-dump-object (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object)))
                    't
  )
)

Grüße
Andi

Na toll ! da war einer schneller...

[Diese Nachricht wurde von andi2050 am 29. Jul. 2006 editiert.]

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

pietro
Mitglied


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

Beiträge: 8
Registriert: 26.12.2002

erstellt am: 29. Jul. 2006 16:29    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.
Erstmal danke für eure Antworten.
Das muß doch auch über Gruppencodes gehen oder? Ich kenn mich ActiveX überhaupt nicht aus.

danke im voraus


Peter

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 29. Jul. 2006 17:29    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 pietro 10 Unities + Antwort hilfreich

Hallo

Geht auch über Gruppencodes...
Die Layoutinfos sind in einem Dictionary gespeichert, da muß man sich erst mal durchhangeln !
Folgender Code gibt die DXF-Listen aller Layout im Textfenster aus.
Die zu ändernden Gruppencodes musst Du selber raussuchen.

Code:
(defun c:layouts-dxflist (/)
  (foreach item (entget (cdr (assoc 350 (member '(3 . "ACAD_LAYOUT") (entget (namedobjdict))))))
    (if (= 350 (car item))
      (progn (princ "\n******************\nDXF-Liste für LAYOUT:\n******************\n")
            (prin1 (entget (cdr item)))
      )
    )
  )
  (princ)
)

Ich finde aber, daß der Weg über ActiveX einfacher und elegenater ist.
Folgender Code ändert bei allen Layouts die Plotkonfiguration auf "FAX"

Code:
(defun c:change-configname (/)
  (vl-load-com)
  (vlax-for layout (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
    (vla-put-configname layout "FAX")
  )
)

Grüße
Andi

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

mundal
Mitglied
Techniker


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

Beiträge: 320
Registriert: 14.02.2005

erstellt am: 04. Aug. 2006 10:27    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 pietro 10 Unities + Antwort hilfreich

Hallo,
wir hatten das gleiche Problem. www.jobocad.de hat uns durch eine Software geholfen und seither drucken wir optimal und schnell aus.

Lass Dir einfach mal ein Angebot erstellen.

Irene

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