| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Automatischer Druck aus AutoCAD (204 mal gelesen)
|
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 06. Mrz. 2023 16:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo miteinander, ich möchte ein Programm schreiben um das Drucken aus AutoCAD zu vereinfachen und gleich duplex zu drucken. Das Problem dabei, wir arbeiten komplett im Modellbereich. Hat jemand da schonmal etwas gemacht bzw. hat einen Ansatz für mich? Mein Plan war folgender Ablauf: -Eingabemaske (Auswahl wie viele Seiten) -Druck als PDF aller Seiten (feste Positionen der Seiten) -PDF zusammenfügen und drucken Das größste Problem ist der Druck der Seiten mit den Vorgaben der Positionen. Die PDF's zusammenfügen und anschließen drucken sollte ich hinbekommen.
------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 07. Mrz. 2023 08:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
Hallo Felix, ich weiß noch nicht so recht wo dein Problem / was deine Frage ist. Den Code zum Drucken hast du bereits und weißt jetzt nur nicht, wie du die Option Drucken-Fenster einstellst? Oder weißt du nicht, wie du an die Koordinaten der festen Seitenpositionen kommst? Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
 defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 14. Mrz. 2023 07:45 <-- editieren / zitieren --> Unities abgeben:         
Hallo Holger, Nein den Code zum Drucken habe ich noch nicht. Mir fehlt der Teil des Drucks in ACAD, d.h. Blattcoordinaten festelegen und als PDF unter bestimmten Namen speichern. Den Code für das anschließende zusammenfügen der PDF und dem Duplexdruck bekomme ich hin. ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 14. Mrz. 2023 13:14 <-- editieren / zitieren --> Unities abgeben:         
Ich habe nochmal weiter probiert und habe in einem anderen Thema einen Code gefunden welchen ich für meine Zwecke umgeschrieben habe. Der Code druckt zumindest eine PDF. Meine Fragen sind jetzt aber noch: 1. Wo gebe ich den Pfad für den Druck vor (aktuell wird im Ordner "Documents" abgelegt) 2. Wie gebe ich Coordinaten für den Druck vor? Ich habe 4 Seiten die immer gleich liegen. Hier mein Code: Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'GetPossibleMedia("") Dim Fehlerzeile As Decimal = 0 ' ------ Quelle: https://www.keanw.com/2007/09/driving-a-basic.html '_Log.WriteFuncName((New StackTrace).GetFrame(0).GetMethod.Name) '_Log.WriteParameter("PlotFullName", PlotFullName) Dim doc As Autodesk.AutoCAD.ApplicationServices.Document = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument Dim ed As Autodesk.AutoCAD.EditorInput.Editor = doc.Editor Dim db As Database = doc.Database Dim tr As Transaction = db.TransactionManager.StartTransaction()
Fehlerzeile = 1 Using tr Try Dim btr As BlockTableRecord = CType(tr.GetObject(db.CurrentSpaceId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead), BlockTableRecord) Dim lo As Layout = CType(tr.GetObject(btr.LayoutId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead), Layout) Dim pi As Autodesk.AutoCAD.PlottingServices.PlotInfo = New Autodesk.AutoCAD.PlottingServices.PlotInfo() Fehlerzeile = 1.1 pi.Layout = btr.LayoutId Dim ps As PlotSettings = New PlotSettings(lo.ModelType) Fehlerzeile = 1.2 ps.CopyFrom(lo) Dim psv As PlotSettingsValidator = PlotSettingsValidator.Current 'psv.SetPlotType(ps, Autodesk.AutoCAD.DatabaseServices.PlotType.Extents) psv.SetPlotType(ps, Autodesk.AutoCAD.DatabaseServices.PlotType.Window) 'angepasst psv.SetUseStandardScale(ps, True) psv.SetStdScaleType(ps, StdScaleType.StdScale1To1) 'angepasst psv.SetPlotCentered(ps, True) Fehlerzeile = 1.3 ' HINWEIS: hier den internen Namen des Papierformates ermitteln ' Dim fPlot As New EBL.Acad.Plotten() ' Dim ListPossibleDeviceMedium As String = fPlot.GetPossibleMedia("_DWG To PDF_NoPreview.pc3") 'psv.SetPlotConfigurationName(ps, "DWG To PDF.pc3", "ISO_A4_(297.00_x_210.00_MM)") 'A4 Hochformat 'psv.SetPlotConfigurationName(ps, "DWG To PDF.pc3", "ISO_A4_(210.00_x_297.00_MM)") 'A4 Querformat 'psv.SetPlotConfigurationName(ps, "DWG To PDF.pc3", "ISO_A3_(420.00_x_297.00_MM)") 'A3 Hochformat psv.SetPlotConfigurationName(ps, "DWG To PDF.pc3", "ISO_A3_(297.00_x_420.00_MM)") 'A3 Querformat Fehlerzeile = 1.31 'psv.SetPlotConfigurationName(ps, "_DWG To PDF_NoPreview.pc3", "UserDefinedMetric (1040.00 x 1040.00mm)") pi.OverrideSettings = ps Fehlerzeile = 1.32 Dim piv As Autodesk.AutoCAD.PlottingServices.PlotInfoValidator = New Autodesk.AutoCAD.PlottingServices.PlotInfoValidator() Fehlerzeile = 1.33 piv.MediaMatchingPolicy = Autodesk.AutoCAD.PlottingServices.MatchingPolicy.MatchEnabled Fehlerzeile = 1.34 piv.Validate(pi) Fehlerzeile = 2
If Autodesk.AutoCAD.PlottingServices.PlotFactory.ProcessPlotState = Autodesk.AutoCAD.PlottingServices.ProcessPlotState.NotPlotting Then Dim pe As Autodesk.AutoCAD.PlottingServices.PlotEngine = Autodesk.AutoCAD.PlottingServices.PlotFactory.CreatePublishEngine() Using pe Dim ppd As Autodesk.AutoCAD.PlottingServices.PlotProgressDialog = New Autodesk.AutoCAD.PlottingServices.PlotProgressDialog(False, 1, True) Fehlerzeile = 2.1 Using ppd ' -- mit den nachfolgenden ppd-Parametern bin ich nicht klargekommen ''ppd.PlotMsgString(PlotMessageIndex.DialogTitle = "Custom Plot Progress") ''ppd.PlotMsgString(PlotMessageIndex.CancelJobButtonMessage, "Cancel Job") ''ppd.PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage, "Cancel Sheet") ''ppd.PlotMsgString(PlotMessageIndex.SheetSetProgressCaption, "Sheet Set Progress") ''ppd.PlotMsgString(PlotMessageIndex.SheetProgressCaption, "Sheet Progress") ppd.LowerPlotProgressRange = 0 ppd.UpperPlotProgressRange = 100 Fehlerzeile = 2.2 ppd.PlotProgressPos = 0 Fehlerzeile = 2.3 ppd.OnBeginPlot() ppd.IsVisible = True Fehlerzeile = 2.4 pe.BeginPlot(ppd, Nothing) pe.BeginDocument(pi, doc.Name, Nothing, 1, True, "Test1") 'PlotFullName) ppd.OnBeginSheet() Fehlerzeile = 2.5 ppd.LowerSheetProgressRange = 0 ppd.UpperSheetProgressRange = 100 ppd.SheetProgressPos = 0 Fehlerzeile = 2.6 Dim ppi As Autodesk.AutoCAD.PlottingServices.PlotPageInfo = New Autodesk.AutoCAD.PlottingServices.PlotPageInfo() pe.BeginPage(ppi, pi, True, Nothing) pe.BeginGenerateGraphics(Nothing) pe.EndGenerateGraphics(Nothing) pe.EndPage(Nothing) Fehlerzeile = 2.7 ppd.SheetProgressPos = 100 ppd.OnEndSheet() Fehlerzeile = 2.8 pe.EndDocument(Nothing) ppd.PlotProgressPos = 100 ppd.OnEndPlot() Fehlerzeile = 2.9 pe.EndPlot(Nothing) End Using 'ppd End Using 'pe Else ed.WriteMessage(vbLf & "Another plot is in progress.") '_Log.WriteAsError("Another plot is in progress!") End If Catch ex As System.Exception MsgBox("Fehler bei der Plotausgabe!" & vbCrLf & vbCrLf & "Fehlerzeile:" & Fehlerzeile & vbCrLf & vbCrLf & Environment.NewLine & ex.ToString) '_Log.WriteAsError("Fehler bei der Plotausgabe!" & Environment.NewLine & ex.ToString) End Try End Using End Sub
------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 15. Mrz. 2023 06:57 <-- editieren / zitieren --> Unities abgeben:         
Ich konnte es selber lösen: 1. in der Zeile Code: pe.BeginDocument(pi, doc.Name, Nothing, 1, True, "Test1") 'PlotFullName)
kann man den kompletten Dateinamen angeben, also in meinem Fall Code: pe.BeginDocument(pi, doc.Name, Nothing, 1, True, "C:\Infra\Test1") 'PlotFullName)
2. Das schlüsselwort ist der Befehl: SetPlotWindowArea ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 16. Mrz. 2023 13:31 <-- editieren / zitieren --> Unities abgeben:         
Jetzt muss ich doch nochmal fragen... Also wie bereits oben gesagt funktioniert das erstellen der einzeknen PDF´s ohne Probleme. Jetzt will ich die Dateien zusammenfügen und drucken. Beim zusammenfügen gibt es aber ein Problem. Mein Testcode:
Code:
Dim SourcePdfPath As String = "C:\Infra\" Dim File1 As String = "1.pdf" Dim File2 As String = "2.pdf" Dim filenames As String() = System.IO.Directory.GetFiles(SourcePdfPath) Dim outputFileName As String = "Merge.pdf" Dim outputPath As String = SourcePdfPath & outputFileName Dim doc As PdfDocument = New PdfDocument() Dim writer As PdfCopy = New PdfCopy(doc, New FileStream(outputPath, FileMode.Create)) Dim reader As PdfReader = New PdfReader(SourcePdfPath & File1) reader.ConsolidateNamedDestinations() Dim page As PdfImportedPage = writer.GetImportedPage(reader, 1) writer.AddPage(page) reader.Close()
reader = New PdfReader(SourcePdfPath & File2) reader.ConsolidateNamedDestinations() page = writer.GetImportedPage(reader, 1) writer.AddPage(page) reader.Close() writer.Close() doc.Close() MsgBox("Fertig") Exit Sub
in der Zeile:
Code: Dim reader As PdfReader = New PdfReader(SourcePdfPath & File1)
Kommt der Fehler: System.IO.IOException: "C:\Infra\1.pdf not found as file or resource." Die Datei ist aber vorhanden. Wenn jemand eine andere/bessere Möglichkeit als mit itextsharp sieht, bin ich über Tipps erfreut. ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 16. Mrz. 2023 13:56 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
Hallo Felix, schön, dass du das mit dem Drucken hinbekommen hast und super, dass du das Ergebnis hier auch gepostet hast! Fürs Pdf-Handling nutze ich aktuell nur noch die Telerik-Bibliotheken. Die kosten zwar vermeintlich viel Geld - für das, was ich die seit Jahren nutze (sowohl für die Desktop- Web und auch App-Entwicklung) und dabei an Zeit spare ist das verdammt gut angelegt. Damit kann man z.Bsp. Excel-Dateien erzeugen, ohne dass man Excel auf dem Zielrechner installiert haben muss, weil das vollständig ohne Rückgriff auf die Com-Schnittstelle erfolgt und damit auch wirkliche Performance bietet. Früher habe ich PDFsharp verwendet. Damit sollten deine Aufgaben zu erledigen sein - das war (ist?) kostenfrei erhältlich. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
 defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 16. Mrz. 2023 15:07 <-- editieren / zitieren --> Unities abgeben:         
PDFSharp habe ich auch am Anfang genommen und auch die PDF zusammengefügt bekommen. Aber es gibt ja das Problem, dass mit PDFSharp nicht gedruckt werden kann. ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 16. Mrz. 2023 15:14 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
... das kann sein?! Zum Drucken habe ich dann wahrscheinlich den Acrobat Reader genommen, den kann man in einer Batch bzw. als Process mit Parametern aufrufen. Mit den Telerik-Bibliotheken kann man auch die PDF's drucken, allerdings gibts da dann Probleme, wenn in einer PDF-Datei Seiten mit unterschiedlichem Format oder Ausrichtung enthalten sind - was also auch suboptimal ist. Dafür muss man dann einen Workaround basteln, dass die Zeichnungen einzeln gedruckt werden oder alle auf dem gleichen Format und gleicher Ausrichtung erzeugt werden. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
 defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 16. Mrz. 2023 15:57 <-- editieren / zitieren --> Unities abgeben:         
Ok. Ich habe jetzt einen Code zum Drucken der PDF, allerdings nur einseitig. Ich hätte den Druck gern beidseitig.
Zitat:
Dim processFilename As String = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("App Paths").OpenSubKey("AcroRd32.exe").GetValue(String.Empty).ToString() Dim info As New ProcessStartInfo() info.Verb = "print" info.FileName = processFilename info.Arguments = String.Format("/p /h {0}", FileMerge) info.CreateNoWindow = True '(It won't be hidden anyway... thanks Adobe!) info.WindowStyle = ProcessWindowStyle.Hidden info.UseShellExecute = False Dim p As Process = Process.Start(info) p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
Dim counter As Integer = 0 Do While Not p.HasExited System.Threading.Thread.Sleep(1000) counter += 1 If counter = 5 Then Exit Do End If Loop If Not p.HasExited Then p.CloseMainWindow() p.Kill() End If
------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 16. Mrz. 2023 16:01 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 16. Mrz. 2023 16:06 <-- editieren / zitieren --> Unities abgeben:         
|
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 16. Mrz. 2023 16:12 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
|
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 17. Mrz. 2023 07:01 <-- editieren / zitieren --> Unities abgeben:         
Ja, berichtigt mich aber ich dachte man muss den Drucker in dieser Zeile setzen. Code: info.Arguments = String.Format("/p /h {0}", FileMerge, "P-4531DN (duplex)")
Aber so klappt es leider nicht. Und noch ein Problem, ich muss noch die Anzahl festlegen, wie viele Ausdrucke gemacht werden sollen. ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 17. Mrz. 2023 08:47 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
... in deinem Code Code:
info.Arguments = String.Format("/p /h {0}", FileMerge, "P-4531DN (duplex)")
fehlt auch die Angabe, wo das 2. Argument hin soll. Im folgenden mal den 2. Parameter {1} hinzugefügt, die Position musst du aber entsprechend der Verwendung der Parameter ggf. korrigieren Code:
info.Arguments = String.Format("/p /h {0} {1}", FileMerge, "P-4531DN (duplex)")
Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
 defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 17. Mrz. 2023 09:08 <-- editieren / zitieren --> Unities abgeben:         
Das klappt leider auch nicht. Er Druck wieder 2 einzelne Blätter und Bringt danach noch die Meldung "Das Dokument konnte nicht geöffnet werden" Wie definiere ich die Position entsprechend der Verwendung der Parameter? ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 17. Mrz. 2023 09:19 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
... weiter oben habe ich einen Link zu den Parametern gepostet, schau da mal rein. Code:
The FAQ notes that the use of the command line switches is unsupported.To open a file it's: AcroRd32.exe <filename> The following switches are available: /n - Launch a new instance of Reader even if one is already open /s - Don't show the splash screen /o - Don't show the open file dialog /h - Open as a minimized window /p <filename> - Open and go straight to the print dialog /t <filename> <printername> <drivername> <portname> - Print the file the specified printer.
Du wirst den Paranmeter /t brauchen und gibst diesem den Dateinamen und den Druckernamen mit, ... (ungetestet) Code:
info.Arguments = String.Format("/h /t \"{0}\" \"{1}\"", FileMerge, "P-4531DN (duplex)")
Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
 defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 17. Mrz. 2023 09:37 <-- editieren / zitieren --> Unities abgeben:         
|
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 17. Mrz. 2023 12:55 <-- editieren / zitieren --> Unities abgeben:         
Ich wollte zumindest das zusammenfügen der PDF in meine Programm für DWG´s einfügen und nutzen. Dabei kommt aber jetzt eine Fehlermeldung bei der Nutzung aus AutoCAD (siehe Anhang) Womit hängt das zusammen? Kennt jemand die Lösung für das Problem? ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4179 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 17. Mrz. 2023 13:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Fiedel93felix
... versuche mal die entsprechenden DLL's beim Laden deiner Programm-Dll nachzuladen. Ich kenne das auch von den Telerik-Dlls, die nicht mitgeladen bzw. gefunden werden, wenn man Programme, die überall sonst ohne Probleme funktionieren, in AutoCAD nutzt. Code:
// Laden der DLL-DLLs FileInfo _fi = new FileInfo(Assembly.GetExecutingAssembly().Location); DirectoryInfo _di = _fi.Directory; foreach (FileInfo _cf in _di.GetFiles("Telerik*.dll")) { Assembly.LoadFrom(_cf.FullName); }
Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
 defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 20. Mrz. 2023 12:03 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe es versucht die .dll zu laden aber leider macht der Code gar nicht. Code:
'''' Laden der DLL-DLLs Dim _fi As System.IO.FileInfo = New System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location) Dim _di As System.IO.DirectoryInfo = _fi.Directory For Each _cf As System.IO.FileInfo In _di.GetFiles("PdfSharp*.dll") MsgBox(_cf.FullName) System.Reflection.Assembly.LoadFrom(_cf.FullName) Next For Each _cf As System.IO.FileInfo In _di.GetFiles("Spire*.dll") MsgBox(_cf.FullName) System.Reflection.Assembly.LoadFrom(_cf.FullName) Next
Es werden mir nichtmal die Msgboxen angezeigt, daher denke ich findet er nichts... ------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 20. Mrz. 2023 13:02 <-- editieren / zitieren --> Unities abgeben:         
|
Fiedel93felix Mitglied Konstrukteur
 
 Beiträge: 463 Registriert: 19.02.2014 Autodesk Inventor 2022 AutoCAD Mechanical 2021 Microsoft Visual Basic 2010
|
erstellt am: 22. Mrz. 2023 11:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo, jetzt ist doch noch ein Problem aufgetreten. Bei mir am Rechner funktioniert alles wie gewünscht. Bei meinen Kollegen kommt beim doppelseitigen Druck die Rückseite falsch herum raus. Um den Drucker auszutricksen wollte ich die PDF für die Rückseite auf dem Kopf erstellen. Dazu habe ich folgenden Code eingefügt, leider passiert hier nicht.
Code:
BlattAusrichtung = PlotRotation.Degrees180 psv.SetPlotRotation(ps, BlattAusrichtung)
------------------ ---------------------------------- Mit freundlichen Grüßen Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |