Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Plotten aus VBA

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:  Plotten aus VBA (2272 mal gelesen)
GüSo
Mitglied
Elektrotechniker


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

Beiträge: 138
Registriert: 22.01.2009

Windows 7 Professional SP1, AutoCAD 2011, Office 2013
Windows 10, Office2019

erstellt am: 22. Dez. 2010 12:00    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 Allerseits!
Ich habe ein Problem beim Plotten aus VBA heraus. Das Problem besteht darin, daß ich dem Plotkonfigurations-Objekt nicht den Wert acLimits zu weisen kann.
(AutoCAD 2008 unter XP Professional)
Hier der Code:

...
....
Zeichnung.PlotConfigurations.Add "VRS"
....
.....
Zeichnung.PlotConfigurations("VRS").PlotType = acLimits

Dieser Befehl "Zeichnung.PlotConfigurations("VRS").PlotType = acLimits" löst einen Laufzeitfehler aus, der meldet "ungültige Eingabe" (-2145386493(80200003)

Was ist an diesem Befehl falsch? Die Limiten in der Zeichnung wurden vorher auf gültige Werte eingestellt. Mittels dem LokalFenster habe ich das auch vor Aufruf dieser Befehlszeile nachgeprüft, daß diese Werte auch drin stehen. Ach so, das aktive Layout ist der Modellbereich.

Hätte da jemand eine Idee, wie man an die Ursache heran kommen kann?

Günter

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


Ex-Mitglied

erstellt am: 22. Dez. 2010 15:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Du plottest nicht etwa aus dem Layout heraus? In diesem Fall ==> Limits gibt's als Plotoption nur für Modellbereich.

Für mehr Ideen brächte es mehr Code (zum Reproduzieren)     [EDIT] u. ev. Zeichnung [/EDIT]

- alfred -

------------------
www.hollaus.at

[Diese Nachricht wurde von a.n. am 22. Dez. 2010 editiert.]

GüSo
Mitglied
Elektrotechniker


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

Beiträge: 138
Registriert: 22.01.2009

Windows 7 Professional SP1, AutoCAD 2011, Office 2013
Windows 10, Office2019

erstellt am: 22. Dez. 2010 17:56    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

Hier erstmal in Kürze, bin nämlich noch unterwegs.

Ich plotte den Modellbereich. Der Modellbereich ist auch das aktive Layout. Das ist im Code sicher gestellt (Zeichnung.ActiveLayout = Zeichnung.Layouts("Model"). Was ich vorhin vergaß zu erwähnen: Es handelt sich im mehrere DXF-Dateien, die ich eingelesen habe.

  If Zeichnung.PlotConfigurations.Count = 0 Then
    Zeichnung.PlotConfigurations.Add ("VRS")
    Zeichnung.PlotConfigurations("VRS").PaperUnits = acMillimeters
    Zeichnung.PlotConfigurations("VRS").PlotType = acLimits 'funktioniert nicht - Laufzeitfehler
    Zeichnung.PlotConfigurations("VRS").StandardScale = acScaleToFit
  End If

Auch wenn ich die Zuweisung "Zeichnung.PlotConfigurations("VRS").PlotType = acLimits" nach der Zuweisung der Limiten mache erscheint der Fehler. (Zeichnung.Limits = Grenzen)

Ich habe zwischenzeitlich zwar eine Lösung gefunden, weiß aber trotzdem noch nicht warum die andere Variante nicht funktioniert. So klappt es jedenfalls: "Zeichnung.ActiveLayout.PlotType = acLimits"

Die Zeichnungen kann ich Dir jetzt aber nicht schicken, da ich sie hier nicht zur Verfügung habe.

Gruß
Günter

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


Ex-Mitglied

erstellt am: 22. Dez. 2010 19:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ich kann das Problem reproduzieren und kann ahnen, was hier passiert, aber zumindest mit .PlotType = acLimits nicht lösen. Genau Dein Hinweis mit ActiveLayout.PlotType lässt mich vermuten, dass das PlotConfiguration-Objekt für sich ja eigentlich (noch) nicht weiss, ob es letztlich auf ein Layout oder auf den Modellbereich angewendet werden soll; von daher wäre auch verständlich, dass das Setzen auf acLimits dann nicht zulässig werden könnte und der Fehler ausgelöst wird.

Nun denn, ich würde damit entweder bei Deinem WorkAround bleiben oder aus den Limits die Koordinaten rauslesen und statt Plot-Limits dann Plot-Fenster simulieren und als Fensterkoordinaten die Werte aus den Limits verwenden.

- alfred -

------------------
www.hollaus.at

GüSo
Mitglied
Elektrotechniker


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

Beiträge: 138
Registriert: 22.01.2009

Windows 7 Professional SP1, AutoCAD 2011, Office 2013
Windows 10, Office2019

erstellt am: 23. Dez. 2010 09:02    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

Hi Alfred,

ja das klingt logisch. Ich habe deshalb nochmals in der Hilfe gewühlt und bin zu folgendem Ergebnis gekommen.

Die Eigenschaft "PlotConfiguration.ModelType" ist "False", d.h. die Plotkonfiguration ist angewendet auf alle Layouts, auch Papierbereichslayouts. Mein jetziges Problem ist, daß diese Eigenschaft schreibgeschützt ist. Wie kann ich nun das Plotkonfigurationsobjekt bewegen, diese Eigenschaft auf "True" zu setzen?

------------------
MfG

Günter

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


Ex-Mitglied

erstellt am: 23. Dez. 2010 09:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

die Eigenschaft wird auch schreibgeschützt bleiben, da ja durch Erstellung einer PlotConfig eben noch nicht bekannt ist, ob Modell oder Layout.
Wieso gehst Du nicht den Weg mit Fenster? Welchen Grund gibt es, unbedingt auf '.acLimits' zu bestehen?

- alfred -

------------------
www.hollaus.at

GüSo
Mitglied
Elektrotechniker


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

Beiträge: 138
Registriert: 22.01.2009

Windows 7 Professional SP1, AutoCAD 2011, Office 2013
Windows 10, Office2019

erstellt am: 23. Dez. 2010 10:07    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

Hi,
einmal ist es alte Gewohnheit und zweitens die Neugier als eine Quelle der Erkenntnis. Deine Lösung "Plot Fenster" ist bei mir wohl registriert und soll nicht abgewertet werden. Man muß sehen das ganze Problem kam mit einigen (60) DXF-Dateien, die nur mal schnell auszudrucken waren. Das ist schon lange geschen. Was ich jetzt noch mache ist rein Hobby und Erkenntnisgewinn.

------------------
MfG

Günter

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