| | | 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
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 / zitieren --> Unities abgeben:
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 / zitieren -->
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
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 / zitieren --> Unities abgeben:
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 / zitieren -->
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
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 / zitieren --> Unities abgeben:
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 / zitieren -->
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
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 / zitieren --> Unities abgeben:
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 >>)
|