Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Plotkonfiguration eines Layout ändern

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Plotkonfiguration eines Layout ändern (3190 mal gelesen)
Andreas Widmann
Mitglied
ATHENA Support/Training


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

Beiträge: 218
Registriert: 24.08.2005

erstellt am: 17. Nov. 2011 10:51    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 muss einen haufen Zeichnungen mit neuen Ploteinstellungen und Rahmen versehen.

Um die Ploteinstellungen zu ändern habe ich mir per VBA eine Plotkonfig erstellt und diese dann per .copyfrom dem Layout zugewiesen.

folgenden Code verwende ich:

Code:

Dim nmb As Integer
nmb = 3
Dim np As AcadPlotConfiguration

'Config erstellen und definieren
Set np = ThisDrawing.PlotConfigurations.Add("seele_small", False)
np.ConfigName = "DWF6 ePlot.pc3"
np.CanonicalMediaName = "ISO_A0_(841.00_x_1189.00_MM)"
np.StandardScale = ac1_1
np.PlotWithPlotStyles = True
np.StyleSheet = "monochrome.ctb"
np.PlotType = acLayout

'Config dem Layout zuweisen
ThisDrawing.Layouts(nmb).CopyFrom np
ThisDrawing.Regen acAllViewports


Nach dem Ausführen dieses Codes wurde alles übernommen AUSSER die Einstellung "Layout" (aclayout) und Maßstab 1:1 (ac1_1).
Stattdessen stehen die Einstellungen auf "Grenzen" und "Einpassen".
Es funktioniert wenn ich das Layout aktiv habe und nach dem Ausführen "_.pagesetup" eingebe und die Maske schließe ohne was zu ändern.
Habe ich das Layout nicht aktiv oder wechsel das Layout ohne "_.pagesetup" einzugeben werden wie beschrieben alle ausser die beiden Einstellungen übernommen.

Selbst wenn ich die beiden Einstellungen ganz zum Schluss direkt dem "ActiveLayout" zuweise behält AutoCAD sie nicht.  

Was mache ich falsch? Was kann ich tun?  

------------------
Gruß Andreas


edit: wird die Routine auf ein Layout mit Einstellung "Layout" und "1:1" angewendet während dieses nicht aktiv ist, steht danach die Einstellung auf "Grenzen" und "Einpassen"
------------------------------------------------------------------------------------------------------------------------------------
Die Antwort ist 42! Die Antwort ist 42! Die Antwort ist 42! ...wenn ich nur die Frage wüsste...

[Diese Nachricht wurde von Andreas Widmann am 17. Nov. 2011 editiert.]

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2799
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 10. Dez. 2011 12:51    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 Andreas Widmann 10 Unities + Antwort hilfreich

Schon eine Lösung gefunden? Oder besteht noch Hilfebedarf?
Hatte das vor zwei Jahren mal programmiert und könnte nachschauen wenn es noch nicht läuft.

[Diese Nachricht wurde von KlaK am 10. Dez. 2011 editiert.]

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

Andreas Widmann
Mitglied
ATHENA Support/Training


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

Beiträge: 218
Registriert: 24.08.2005

erstellt am: 12. Dez. 2011 13:15    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 Klak,

ich könnte deine Hilfe noch gebrauchen.
Bei meinem Programm muss nämlich nun einer vor dem Bildschirm sitzen und ständig die Seiteneinrichtungsdialoge wegklicken damit es funktioniert.

------------------
Gruß Andreas

------------------------------------------------------------------------------------------------------------------------------------
Die Antwort ist 42! Die Antwort ist 42! Die Antwort ist 42! ...wenn ich nur die Frage wüsste...

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2799
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 13. Dez. 2011 09:42    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 Andreas Widmann 10 Unities + Antwort hilfreich

Ok, habe es mal verglichen.
Was mir auffällt, nach den Einstellungen der Plotconfigurationen habe ich noch ein

Code:
np.RefreshPlotDeviceInfo

Das machst Du momentan händisch. Bau das mal vor dem CopyFrom ein, dann sollte das passen.

Mal gespannt ob's das war.

Grüße
Klaus

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

Andreas Widmann
Mitglied
ATHENA Support/Training


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

Beiträge: 218
Registriert: 24.08.2005

erstellt am: 13. Dez. 2011 10:25    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

nein, leider kein Erfolg.

Code:
np.RefreshPlotDeviceInfo
lay.CopyFrom np

die Einstellungen standen wieder auf Grenzen und Einpassen

------------------
Gruß Andreas

------------------------------------------------------------------------------------------------------------------------------------
Die Antwort ist 42! Die Antwort ist 42! Die Antwort ist 42! ...wenn ich nur die Frage wüsste...

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2799
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 13. Dez. 2011 13:03    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 Andreas Widmann 10 Unities + Antwort hilfreich

So, gerade mal getestet.
Ist schon merkwürdig. Erzeugt man ein neues Layout funktioniert der Copyfrom einwandfrei
Auf dieses kann dann auch eine andere PlotConfig kopiert werden.
Bei bestehenden gibts es ein Problem

Aber ich hätte eine Lösung für Dich:

Füge in Deinen Code mal die Zeilen

Code:
Dim nL As AcadLayout
Set nL = ThisDrawing.Layouts(nmb)
Call Change_PC(nL, np)

ein
sowie
Code:
Sub Change_PC(pL As AcadLayout, pC As AcadPlotConfiguration)

pL.ConfigName = pC.ConfigName
pL.CanonicalMediaName = pC.CanonicalMediaName
pL.StandardScale = pC.StandardScale
pL.PlotWithPlotStyles = pC.PlotWithPlotStyles
pL.StyleSheet = pC.StyleSheet
pL.PlotOrigin = pC.PlotOrigin
If Not (pL.Name = "Model") Then pL.PlotType = pC.PlotType

End Sub


Damit sollte es auf alle Fälle funktionieren. In meinem Programm hatte ich das CopyFrom gar nicht verwendet sondern direkt die Einstellungen aus einer Tabelle übernommen, aber die Idee mit einer eigenen PlotConfiguration habe ich mir gleich mal für zukünftige Projekte gespeichert 

Viel Erfolg und gib mal Rückmeldung
Klaus

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)2024 CAD.de | Impressum | Datenschutz