| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: IDW über Inventor View Drucken (2800 mal gelesen)
|
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 10. Feb. 2013 13:55 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte gerne aus Access heraus mit Inventor View idw Dateien automatisiert ausdrucken, mit Pdf Dateien funktioniert das, die Druckqualität ist mir aber nicht ausreichen. Kennt jemand vieleicht eine Lösung. Gruß HSTR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 12. Feb. 2013 07:03 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
Moin Wie druckst du denn mit InventorView? Codeschnipsel? Was gefällt dir an der Qualität nicht? Ich glaube kaum das sich irgendjemand hier erstmal hinsetzt, von null auf ein Tool schreibt das mit InventorView aus Access heraus IDW's druckt und dann mal versucht zu erraten was dir daran nicht gefällt. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 12. Feb. 2013 22:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, gefällt Dir meine Fragestellung nicht oder hast Du sie nicht genau gelesen? Ich habe meine Anwendung mit pdf Dateien realisiert, aber wie du sicher selber weißt sind Originalausdrucke besser lesbar als pdf Dateien, darum der Versuch über Inventor View oder einen anderen Viewer der über VBA ansprechbar ist die Dateien auszudrucken. Leider reagiert Inventor View beim ShellExecute nur auf "open" und nicht auf "print". Gruß HSTR. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 13. Feb. 2013 00:39 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
|
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 18. Feb. 2013 21:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, ein,zwei Sätze mehr hätten sicher nicht geschadet. Bin leider kein Programmierer sondern nur ein Anwender der sich eine Funktion zusammenstupft. Ich kann weder eine funktionierende Deklaration noch einen geeigneten Befehlssatz finden. Funktioniert das Überhaupt mit Access 2003? Schöne Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 18. Feb. 2013 22:05 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
Zitat: Original erstellt von rkauskh: MoinWie druckst du denn mit InventorView? Codeschnipsel? Was gefällt dir an der Qualität nicht?
Zitat: Original erstellt von ASDF: Hallo Ralf, gefällt Dir meine Fragestellung nicht oder hast Du sie nicht genau gelesen?
Hallo ASDF, kann es sein, dass DU die Fragen ignorierst? Was mich interessieren würde ist: Zitat: Original erstellt von ASDF: Hallo zusammen, ich möchte gerne aus Access heraus mit Inventor View idw Dateien automatisiert ausdrucken, mit Pdf Dateien funktioniert das, die Druckqualität ist mir aber nicht ausreichen.
Glaubst du durch die Automatisierung ändert sich die Druckqualität? Es liegt an dir, dass dir hier nicht geholfen wird. Lade einfach hoch was der Helfer benötigt um dir zu helfen, und fang nicht stattdessen mit "funktionierende Deklarationen", "geeigneten Befehlssätzen"... Es wird nicht besser wenn du mit zusammenhangslosen Fachbegriffen um dich wirfst. Jeez…
------------------ Grüße Igor FX64 Software Solutions - Inventor Tools FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 18. Feb. 2013 22:36 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
Touché Setze in VBA einen Verweis auf die "Autodeks Inventor Object Library" (RxInventor.tlb). Die müßte InventorView irgendwo in seinem Installationsverzeichnis mitgebracht haben. Danach müßte etwas gehen wie: Sub PrintSample() Dim sFullFileName As String sFullFileName = "C:\Pfad\zu\deiner\Datei\Dokumment.Endung" Dim oAppr As New Inventor.ApprenticeServerComponent Dim oApprDoc As ApprenticeServerDocument Set oApprDoc = oAppr.Open(sFullFileName) Dim oApprDrgPrintMgr As ApprenticeDrawingPrintManager Set oApprDrgPrintMgr = oApprDoc.PrintManager 'ein paar Einstellungen oApprDrgPrintMgr.Printer = "HP LaserJet 4150" oApprDrgPrintMgr.PaperSize = PaperSizeEnum.kPaperSizeA4 oApprDrgPrintMgr.Orientation = PrintOrientationEnum.kLandscapeOrientation oApprDrgPrintMgr.NumberOfCopies = 1 oApprDrgPrintMgr.AllColorsAsBlack = True oApprDrgPrintMgr.ScaleMode = kPrintBestFitScale oApprDrgPrintMgr.RemoveLineWeights = True 'und ab dafür Call oApprDrgPrintMgr.SubmitPrint End Sub Das Beispiel ist nicht vollständig, sollte dir aber richtigen Weg zeigen. Zusätzlich lies mal diesen Blogeintrag. Auf den Seiten von Brian Ekins findet sich sicher noch mehr nützliches. EDIT: @Igor Ich glaub er meint das er aktuell erst ein PDF erstellt und das dann druckt. Dabei leidet die Qualität. Ich weiß zwar nicht wo da der Verlust herkommen soll, aber jeden Tag bekomm ich Beweise für Dinge die nicht sein dürften. Hast du den Usernamen beim Zitieren manuell geändert oder ist das der "kreative" Part der Forensoftware?
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 18. Feb. 2013 22:50 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 18. Feb. 2013 22:52 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
|
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 20. Feb. 2013 19:48 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, also wenn ich mich nicht klar ausgedrückt habe bitte ich das natürlich zu entschuldigen. Ich dachte lieber kurz und knapp als lange Romane schreiben, aber kein Problem, kann ich nachholen. Dann aber auch zu Ende lesen. Für mich war die Situation klar, aber kann ja keiner wissen das wir die Zeichnungen neben der idw auch als pdf abspeichern. Bei uns werden aus den Zeichnungen Werkstücke gefertigt. Wir haben ca. 10.000 verschiedene Zeichnungen nach denen wir wiederholt produzieren. Diese Abläufe werden als Fertigungsaufträge bezeichnet und in einer Accessdatenbank verwaltet. Nun haben die Zeichnungen und die Fertigungsaufträge dieselbe Bezeichnung. Was liegt also näher, den Fertigungsauftrag zusammen mit der Zeichnung auszudrucken, als viele Ordner zu wälzen und die Zeichnungen zu suchen. Fertigungsaufträge mit zugehörigen Formularen drucken läuft. Integriertes Zeichnungen Drucken auf knopfdruck macht eben Probleme. 1. Versuch mit ShellExecute funktioniert aber nur mit pdf Dateien. und diese sind eben von der Druckqualität nicht ausreichend. Deklaration der ShellExecute Api Private Declare Function ShellExecute Lib _ "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal bShowCMD As Long) As Long Befehlssatz Call ShellExecute(Me.hwnd, "print", s, "", "", 0) in der Variablen s steckt der Pfad und die Datei. 2. IDW Datei Öffnen mit shellExecute über Inventor View funkioniert auch, aber der Inventor Viewer bringt das Kontext Menü für Drucken nicht mit, daher ein Drucken nicht möglich. Deklaration wie oben, Befehlssatz Call ShellExecute(Me.hwnd, "open", s, "", "", 0) So und nun kam der Tipp von Ralf mit ApprenticeServer, hab ich aber noch nicht geprüft. Werd mich aber melden wenn ich was weiß. Herzlichen Dank und schöne Grüße HSTR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 21. Feb. 2013 21:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, Weißt Du wie sich der Apprentice verhält? Reicht das normalerweise aus um die Zeichnung in Inventor View zu öffnen? Sub PrintSample() Dim sFullFileName As String sFullFileName = "C:\Pfad\zu\deiner\Datei\Dokumment.Endung" Dim oAppr As New Inventor.ApprenticeServerComponent Dim oApprDoc As ApprenticeServerDocument Set oApprDoc = oAppr.Open(sFullFileName End Sub Bei mir tus sich erst mal garnichts. Als Rückmeldung bekomme ich oAppr = Objektvariable oder With-Block nicht festgelegt. oApprDoc = Nothing Der Verweiß ist gesetzt, die Classen sind vorhanden. Gruß HSTR
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 21. Feb. 2013 22:11 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
Hallo 1. Du hast "C:\Pfad\zu\deiner\Datei\Dokumment.Endung" schon mit einem richtigen Pfad zu deiner Datei ersetzt oder? Ändere mal bitte noch die Zeile
Code: Dim oApprDoc As ApprenticeServerDocument
in
Code: Dim oApprDoc As ApprenticeServerDrawingDocument
2. Du hast das mißverstanden. Der ApprenticeServer ist ein eigenständiges Programm. Er wird nur u.a. zusammen mit InventorView und Inventor ausgeliefert. Der ApprenticeServer hat kein grafisches Interface. Da wirst du nie etwas zu sehen bekommen. Außer im Idealfall deinen Ausdruck im Drucker. Gib mir mal den Namen deines Druckers und mit welchen Druckoptionen du die IDW im normalen Inventor-Druckdialog drucken würdest. Also Format, Ausrichtung und einem Screenshot wie den angehängten. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 22. Feb. 2013 22:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, ich hab den Code mal so eingesetzt, Private Sub Befehl27566_Click() Dim strDatei As String strDatei = "F:\0037\37892.idw" Dim oAppr As New Inventor.ApprenticeServerComponent Dim oApprDoc As ApprenticeServerDrawingDocument Set oApprDoc = oAppr.Open(strDatei) Dim oApprDrgPrintMgr As ApprenticeDrawingPrintManager Set oApprDrgPrintMgr = oApprDoc.PrintManager oApprDrgPrintMgr.Printer = "HP Officejet 6500 E790n Series" oApprDrgPrintMgr.PaperSize = kPaperSizeA4 oApprDrgPrintMgr.Orientation = kLandscapeOrientation oApprDrgPrintMgr.NumberOfCopies = 1 oApprDrgPrintMgr.AllColorsAsBlack = True oApprDrgPrintMgr.ScaleMode = kPrintBestFitScale oApprDrgPrintMgr.RemoveLineWeights = True Call oApprDrgPrintMgr.SubmitPrint End Sub jetzt siehts bereits etwas besser aus, ich hab Rückmeldungen auf den Variablen, aber der Drucker wird als falsch erkannt. vielen Dank für Deine Hilfe HSTR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 22. Feb. 2013 22:57 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
|
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 23. Feb. 2013 09:49 <-- editieren / zitieren --> Unities abgeben:
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 23. Feb. 2013 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für HSTR
|
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 23. Feb. 2013 10:18 <-- editieren / zitieren --> Unities abgeben:
Die VBA default Abfrage (siehe Screenshot) brachte das "HP Officejet 6500 E709n Series fax" zurück, obwohl ich als Standart Drucker den HP "Officejet 6500 E709n Series" eingestellt habe. Die Änderung auf das Fax brachte keine Änderung. Einen anderen hab ich im moment nicht installiert. Werde es aber noch probieren. Gruß HSTR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HSTR Mitglied
Beiträge: 15 Registriert: 10.02.2013
|
erstellt am: 23. Feb. 2013 14:59 <-- editieren / zitieren --> Unities abgeben:
Freunde, es funktioniert, mit untem stehendem Code bekomme ich einen erstklassigen Ausdruck. Der Drucker ist über Netzwerk angeschlossen, ich hab ihn in den Eigenschaften freigegeben, den Freigabenamen eingetragen und dann hats gedruckt. Private Sub Befehl27566_Click() Dim strDatei As String strDatei = "F:\0037\41084.idw" Dim oAppr As New Inventor.ApprenticeServerComponent Dim oApprDoc As ApprenticeServerDrawingDocument Set oApprDoc = oAppr.Open(strDatei) Dim oApprDrgPrintMgr As ApprenticeDrawingPrintManager Set oApprDrgPrintMgr = oApprDoc.PrintManager oApprDrgPrintMgr.Printer = "HPOffice" oApprDrgPrintMgr.PaperSize = kPaperSizeA4 oApprDrgPrintMgr.Orientation = kPortraitOrientation oApprDrgPrintMgr.NumberOfCopies = 1 oApprDrgPrintMgr.AllColorsAsBlack = True oApprDrgPrintMgr.ScaleMode = kPrintBestFitScale oApprDrgPrintMgr.RemoveLineWeights = True Call oApprDrgPrintMgr.SubmitPrint End Sub Viele Dank für die entscheidenden Hinweise und das Interesse Gruß HSTR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |