Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  PDF Plotten und dann öffnen

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 präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  PDF Plotten und dann öffnen (1768 mal gelesen)
tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1218
Registriert: 30.05.2002

erstellt am: 04. Sep. 2014 11:10    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

Moin!

wir sind dabei eine VBA-Funktion zu erstellen die zum einen eine PDF erstellen soll und diese Datei im Anschluss öffnen soll. Hinweis in diesem Zusammenhang - es wird PlotToFile verwendet um auf eine spezielle PC3-Datei zugreifen zu können damit die Randeinstellungen Berücksichtigung finden können.

Unser Code sieht derzeit so aus

Code:
Sub PLOT_PDF()
  Dim PLOT As AcadPlot
  Dim PlotOK As Boolean
  Dim ConfigName As String
  Dim BackPlot
  Dim PFAD As String
  Dim DATEI As String
  Dim DATEINAME As String
  Dim ART As String
  Dim FSO As Object
  Dim AppShell As Object
  Set AppShell = CreateObject("Shell.Application")
  Set PLOT = ThisDrawing.Plot
  Set FSO = CreateObject("Scripting.FileSystemObject")

  ....

  If DATEINAME <> "" Then
    BackPlot = ThisDrawing.GetVariable("BACKGROUNDPLOT")
    ThisDrawing.SetVariable "BACKGROUNDPLOT", 0
    ConfigName = "_DWG To PDF.pc3"
    PlotOK = PLOT.PlotToFile(DATEINAME, ConfigName)
   
    If PlotOK = True Then
      If DIALOG = "Dialog" Then
        MsgBox "PDF Ausdruck ist erfolgt"
      Else
' hier liegt irgendwo das Problem
        AppShell.Open DATEINAME
      End If
    Else
      If DIALOG = "Dialog" Then MsgBox "PDF Ausdruck nicht erfolgt"
    End If
    Set PLOT = Nothing
    ThisDrawing.SetVariable "BACKGROUNDPLOT", BackPlot
  Else
    If DIALOG = "Dialog" Then MsgBox "Der Ausduck wurde abgebrochen"
  End If
    Set AppShell = Nothing
    Set FSO = Nothing
End Sub


Das Problem ist jetzt nicht das Erstellen der PDF-Datei und auch nicht das Öffnen allein. Zu letzterem gibt es nämlich eine Testfunktion

Code:
Sub TEST()
  Dim AppShell As Object
  Set AppShell = CreateObject("Shell.Application")
  DATEINAME = "C:\daten\test.PDF"
  AppShell.Open DATEINAME
  Set AppShell = Nothing
End Sub

Bei welcher das Öffnen einer PDF aus AutoCAD heraus funktoniert.

Unser Problem liegt in der Verbindung dieser beiden Aufgaben. Die vermtutliche Problemstelle habe ich im Source gekennzeichnet. Es wird die Datei angegt und gedrückt - aber nicht geöffnet. Wir haben verschiedene Test an dieser Stelle schon eingebaut - Datei vorhanden geprüft, Sleep(100000) und die Code-Stellen werden auch erreicht. Aber es wird einfach nichts geöffnet.

Ich kann mir nur noch vorstellen das irgendwie der Plot-Mechanismus selber die Sache blockiert oder sonstige Gemeinheiten am Werke sind.

Hat einer eine Idee oder kann uns irgendwie anders weiterhelfen?

------------------
jan :-)

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9807
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 04. Sep. 2014 12:58    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 tappenbeck 10 Unities + Antwort hilfreich

Nur ein erster Blick in den Code:
Wenn der Plot nicht OK ist (ELSE Fall) soll das PDF angezeigt werden, das wird wohl nicht gehen.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1218
Registriert: 30.05.2002

erstellt am: 04. Sep. 2014 13:10    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 Udo,

vielen Dank erst einmal für die Rückmeldung.

Also, Du beziehst Dich auf diesen Absatz...

Code:

    If PlotOK = True Then
      If DIALOG = "Dialog" Then
        MsgBox "PDF Ausdruck ist erfolgt"
' hier liegt irgendwo das Problem
        AppShell.Open DATEINAME
      End If
    Else
      If DIALOG = "Dialog" Then MsgBox "PDF Ausdruck nicht erfolgt"
    End If

Wenn also If PlotOK = True Then, damit der Plot OK ist, dann wird der nächste If-Baustein ausgeführt; das ist der mit If DIALOG...

Es kann jetzt aber nur noch das "tötliche" Kriterium sein der Wert in der Variablen DIALOG. Das ist aber ausgeschlossen, weil wir msgbox-Test eingebaut hatten - wie geschrieben in:

Zitat:
Wir haben verschiedene Test an dieser Stelle schon eingebaut - Datei vorhanden geprüft, Sleep(100000) und die Code-Stellen werden auch erreicht. Aber es wird einfach nichts geöffnet

In den  von Dir angesprochenen Else steckt der Code:

Code:
If DIALOG = "Dialog" Then MsgBox "PDF Ausdruck nicht erfolgt"

und der würde zumindest eine Message liefern.

Liege ich richtig oder habe ich einen Knoten in den Gedanken?

------------------
jan :-)

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: 2855
Registriert: 02.05.2006

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

erstellt am: 04. Sep. 2014 13:43    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 tappenbeck 10 Unities + Antwort hilfreich

Das Problem ist ganz banal
Die AppShell.Open erwartet einen Variant
Ändere die Definition von DATEINAME dann klappt es 

Muß man nicht verstehen ...

Grüße
Klaus 

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



Anzeige:Infos zum Werbeplatz >>

Layer-Manager CAD APP für Allgemeine Werkzeuge, Datenaustausch, Andere

Der Layer-Manager bringt Ordnung in das Layer-Chaos. Mit dem Layer-Manager können Sie Layer in einer hirarchischen Struktur verwalten und sortieren. Diese wird über den Namen des Layers abgebildet und im Layer-Manager entsprechend gekürzt. Das Ideale Werkzeug, wenn man mit vielen Layern arbeitet.

tappenbeck
Mitglied
Vermessungsingenieur


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

Beiträge: 1218
Registriert: 30.05.2002

erstellt am: 06. Sep. 2014 10:33    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 !

danke - jetzt hat es funktioniert.

Gruß Jan :-)

------------------
jan :-)

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